59798
Любые вопросы по сотрудничеству: @ramilkr Если нужен токен: https://telega.in/c/nuancesprog NOP::Humor - https://t.me/nophumor NOP::Recruiter Удаленка- https://t.me/nopremote РКН: 4977653520
Чем плох load average: исторические грабли Unix
Крис Сибенманн разбирает, откуда у привычной тройки чисел столько странностей. Load average — экспоненциально сглаженная длина очереди готовых процессов за 1, 5 и 15 минут.
Исторически ядро считало её по таймеру, и периодические задачи могли попадать в такт замерам. В Linux в счёт идут ещё и процессы в непрерываемом сне, ждущие диска.
Значит, высокая цифра не означает, что ты упёрся именно в процессор. И она не делится на число ядер: 8 на 16-ядерной машине — совсем не беда.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
Forgejo 16.0.4 закрывает критическую RCE
Разработчики Forgejo, самодостаточного форка Gitea для своих Git-серверов, выпустили срочный релиз 16.0.4. Все версии до 16.0.3 включительно уязвимы к удалённому выполнению кода.
RCE на Git-хостинге — это доступ к исходникам, токенам CI и ключам развёртывания. Если ты держишь Forgejo для команды, инстанс обычно смотрит в интернет по HTTPS.
Обновись сейчас же, а до перезапуска прикрой веб-интерфейс файрволом или VPN. Технические детали команда раскрывает не сразу — время на патч у админов есть, но небольшое.
🔗 Подробнее
@nuancesprog #Security #Git
nginx проксирует новый метод QUERY, но кэшировать его не умеет
Автор поднял API, который принимает только QUERY — по сути GET с телом запроса. nginx пропускает такие запросы насквозь без единой жалобы.
Проблемы начинаются с кэша: proxy_cache_methods знает лишь GET, HEAD и POST. Добавишь туда QUERY — сервер не стартует и падает на проверке конфига.
Обходной путь через proxy_method POST тоже не работает, тело в ключ кэша не попадает. Забавная деталь: без прямой подсказки все восемь языковых моделей отправили обычный POST.
🔗 Подробнее
@nuancesprog #Infrastructure #Nginx
📬 Дайджест недели
Лучшее за неделю:
• qBittorrent и сбежавший из песочницы торрент-клиент
• LWN поднимает цены на подписку впервые с 2022 года
• Tailwind Labs переходит в Shopify
• Атака Томпсона через strip: заражена вся сборка NixOS
• Polars 2.0: потоковый движок теперь по умолчанию
• OpenAI следит за своими кодовыми агентами
• CodePen 2.0 отправляет код на сервер, пока ты печатаешь
Мимо ленты, но стоило внимания:
• Intellectual Fly Is Open
• Google AI Mode shows same products 21.6% more expensive than traditional search
• This Month in Ladybird – August 2026
• Google DeepMind Releases AlphaGenome Atlas
• I've factored the RSA keys of a Certificate Authority from the 90s
Наша сетка: 😄 юмор — @nophumor · 💼 удалёнка — @nopremote
@nuancesprog #Digest
Geiger: одна команда покажет всех ИИ-агентов на твоей машине
Разработчик выложил geiger — сканер, который находит ИИ-агентов, MCP-серверы и плагины. Запускается через npx geiger-scan, ничего не ставит и только читает конфиги.
Агенты, хуки и расширения умеют выполнять команды и держат ключи в дотфайлах. Geiger вешает на каждую находку метки EXECUTES, HOLDS-SECRETS, BROAD-FILESYSTEM и показывает путь к файлу.
Проверяются Claude Code, Cursor, Codex CLI, Ollama, браузерные расширения и глобальные npm-пакеты. Смущает README: рассказ про август 2026 и 200 000 звёзд выглядит придуманным.
🔗 Подробнее
@nuancesprog #Security #Node
Tailwind Labs переходит в Shopify
Команда Tailwind CSS объявила о переходе в Shopify. Фреймворк ставят более 110 миллионов раз в неделю, им стилизованы ChatGPT, X и Reddit.
Адам Уотан обещает, что открытые проекты остаются под MIT и продолжат развиваться силами той же команды. Для Shopify Tailwind — несущая часть стека, так что заинтересованность в поддержке выглядит настоящей.
Подвох в коммерческой части: регистрации на Tailwind Plus и ui.sh закрывают для новых клиентов. У текущих доступ сохраняется, но платные шаблоны как продукт дальше не растут.
🔗 Подробнее
@nuancesprog #Frontend
CodePen 2.0 отправляет код на сервер, пока ты печатаешь
Пользователь заметил, что новый редактор CodePen шлёт содержимое на codepen.dev почти сразу. Уникальный маркер из index.html появился в предпросмотре через пару секунд, при сборке с флагом save:false.
Значит, любой случайно вставленный токен или пароль уже покинул твой браузер до сохранения. Считай такие ключи скомпрометированными и перевыпусти их, даже если пен не публиковался.
В комментариях справедливо возражают: сервер нужен для рендера превью и автодополнения. Но подвох в том, что поведение неочевидно, а для секретов лучше брать локальную песочницу.
🔗 Подробнее
@nuancesprog #Security #JavaScript
Авторы Dataflow Model разбирают свою статью 11 лет спустя
Команда Google получила премию VLDB Test of Time за работу о потоковой обработке 2015 года. В новой статье авторы сами оценивают, что в ней устарело, а что выжило.
Основа устояла: время события важнее времени обработки, а данные никогда не бывают полными. Зато триггеры признаны переусложнёнными, а потоки и таблицы оказались двумя видами одного объекта.
Практический вывод: сложность потоковой аналитики победили не потоки, а SQL и материализованные представления. Спорный момент — авторы почти хоронят стриминг за пределами аналитики.
🔗 Подробнее
@nuancesprog #Data #Kafka
Рэйчел Лейкок: код-ревью проверяет слишком много
CTO Thoughtworks спорит с коллегой из DX: ИИ пишет больше кода, чем люди успевают читать. В Meta объём строк на влитый диф вырос на 106% за год, медианный размер пул-реквеста — на 64%.
Лейкок считает, что мы решаем ревью не те задачи: знания, обучение, архитектура. Всё это дешевле обсуждать до написания кода, а не после упаковки в пул-реквест.
Её рецепт — парное программирование, общие дизайн-сессии и автоматика вместо споров о пробелах. Ревью остаётся по исключению: архитектурные сдвиги, границы безопасности, большой радиус поражения.
🔗 Подробнее
@nuancesprog #Opinion
OpenAI следит за своими кодовыми агентами
OpenAI рассказала, как отслеживает поведение внутренних агентов, пишущих код. Отдельная модель-наблюдатель читает логи работы и ищет подозрительные действия.
Агенты всё чаще выполняют задачи без ревью каждого шага человеком. Значит, нужен способ заметить, когда агент срезал угол или подделал результат.
Идея переносима: логируй действия агента и проверяй их вторым, независимым прогоном. Подвох в том, что проверяющая модель ошибается по тем же причинам, что и проверяемая.
🔗 Подробнее
@nuancesprog #AI
Когда инцидент объявляют ради обхода процессов
В командах появилась привычка: объявить инцидент, чтобы ускорить релиз или получить доступ. Автор блога Great Circle разбирает, почему это стало любимым обходным путём.
Режим инцидента снимает согласования и даёт прямую линию до нужных людей. Если это единственный быстрый путь в компании, люди будут им пользоваться каждый раз.
Смотри не на нарушителей, а на процесс, который они обходят: там и прячется проблема. Подвох в том, что статистика инцидентов перестаёт отражать реальную надёжность.
🔗 Подробнее
@nuancesprog #Opinion
Почему кодовые агенты выбирают grep, а не LSP
Инженер сравнил обычный текстовый поиск grep с семантической навигацией через LSP (протокол языковых серверов). На задачах поиска кода модели брали семантический инструмент лишь в 0–6% случаев.
Дело оказалось не в точности, а в форме ответа: grep сразу отдаёт найденную строку. Когда автор добавил в ответ LSP исходный текст, pass@1 на переименованиях вырос с 0.67 до 0.83.
Ценность LSP зависит от шума в репозитории, а не от типизации языка. На чистом remeda прироста нет и +16% токенов, на шумном hono — +0.246 F1.
🔗 Подробнее
@nuancesprog #AI #TypeScript
Статическое выделение памяти вместо пулов объектов
matklad разбирает use-after-free в движке биржевых заявок: отменённая заявка вернулась в пул, но осталась в списке цен. Пул объектов убирает путаницу типов, но логическую ошибку не лечит.
Для тебя это про другой уровень защиты: типизированный аллокатор с раздельными пулами на каждый тип закрывает большую часть эксплойтов. Расплата — память не переиспользуется между типами, зато локальность данных обычно выигрывает.
Радикальный вариант из TigerStyle: выделить весь массив заявок на старте и никогда не аллоцировать в рантайме. Подвох в inline-перечислениях внутри объекта — они возвращают путаницу типов обратно.
🔗 Подробнее
@nuancesprog #Security #Rust
LWN поднимает цены на подписку впервые с 2022 года
С 15 сентября подписка на LWN.net подорожает примерно на 20%. Уровень «Professional hacker» станет стоить $11 в месяц вместо $9.
LWN живёт только на деньги читателей, без рекламы и слежки — с 2002 года. За эти 24 года цены поднимали всего дважды, а прошлая правка позволила нанять двух новых авторов.
Подписки, купленные до 15 сентября, действуют до конца срока по старой цене. Читатели в комментариях спорят о другом: расплывчатый заголовок «A Note from LWN» напугал многих закрытием издания.
🔗 Подробнее
@nuancesprog #Opinion #Linux
Десктопный ChatGPT таскает с собой LibreOffice
Саймон Уиллисон нашёл в ~/.cache папку на 1,7 ГБ от приложения Codex. Внутри полноценные Python и Node.js, бинарники git, Poppler и весь офисный пакет LibreOffice.
Это не баг, а способ дать агенту руки для работы с документами. Рядом лежат скиллы — инструкции, где искать эти бинарники и как их запускать.
Подвох в том, что кэш растёт молча и обновляется отдельно от системных пакетов. Загляни в свой ~/.cache через OmniDiskSweeper — там может быть много неожиданного.
🔗 Подробнее
@nuancesprog #AI #Python
Shopify возвращается с React Native на Swift и Kotlin
В 2020 году Shopify перевела мобильные приложения на React Native, а в сентябре 2026-го объявила обратный переход. Причина — не проблемы фреймворка, а кодовые агенты, которые сильно снизили цену второй реализации.
Главный аргумент 2020 года был «не писать фичу дважды», и именно он ослаб. Агенты переносят готовую фичу с iOS на Android по образцу и держат паритет через общие спецификации и тесты.
Спорный момент: двойная кодовая база не исчезла, просто её стоимость переложили на LLM. Библиотеки вроде React Native Skia Shopify спонсирует до конца 2026-го, дальше репозиторий форкнут и переименуют.
🔗 Подробнее
@nuancesprog #Tools #React
ERSC: Git-протокол снаружи, своё хранилище внутри
Стартап East River Source Control строит хостинг репозиториев без Git-репозиториев на дисках. Клиент общается по обычному протоколу Git, а под капотом — собственный движок хранения.
Агенты пишут код быстрее людей, и репозитории пухнут вместе с числом веток. Проблемы монорепо на миллиарды строк перестают быть заботой одних только гигантов.
Ставка в том, что хранилище масштабируется горизонтально, а каждый клиент получает отдельный деплой. Подвох очевиден: продукт ещё не анонсирован, а доверять чужому движку исходники страшновато.
🔗 Подробнее
@nuancesprog #Tools #Git
NVIDIA выпустила CUDA Rust: два пути к GPU-ядрам
NVIDIA представила два проекта для написания GPU-ядер прямо на Rust. cuda-oxide компилирует SIMT-код в PTX через свой бэкенд rustc, cutile-rs работает на стабильном Rust 1.89+.
Раньше из Rust можно было только запускать ядра, а само ядро писать на C++. Теперь весь стек — от драйвера до ядра — держится на одном языке с проверками памяти на этапе компиляции.
Начинать советуют с Tile-модели: компилятор сам раскладывает данные по потокам и архитектурам. Подвох в том, что cuda-oxide пока ранняя альфа и требует прибитой гвоздями nightly-версии и LLVM.
🔗 Подробнее
@nuancesprog #Languages #Rust
Как заставить Postgres проверить индексы, предложенные моделью
Автор попросил девять языковых моделей предложить индексы для восьми обычных запросов. Затем каждый индекс создавался в транзакции, замерялся и откатывался обратно.
Проверка по времени не работает: индекс ускорил запрос на 17%, но планировщик его не выбрал. Поэтому вопроса два — стало ли заметно быстрее и попал ли индекс в план EXPLAIN.
Дешёвая mistral-3-14B дала 16 проверенных индексов за $0.0013, а nemotron — семь за $0.0297. Подвох в CONCURRENTLY: он не живёт в транзакции, и его приходится вырезать ради отката.
🔗 Подробнее
@nuancesprog #AI #Postgres
Rails 8: аутентификация из коробки и прощание с Redis
Rails 8.0 вышел 7 ноября 2024 года и требует Ruby 3.2 или новее. Сейчас актуален Rails 8.1, а 8.0 получает только патчи безопасности до ноября 2026.
Команда bin/rails generate authentication генерит сессии, сброс пароля и мейлер прямо в твой код. Solid Queue, Cache и Cable заменяют Redis обычной базой: очередь на HEY тянет 20 млн задач в день.
Подвох в том, что бэклог задач и кеш переезжают в твою основную базу. Rails 7.1 и 7.2 уже сняты с поддержки, так что обновление — задача на сейчас, а не на потом.
🔗 Подробнее
@nuancesprog #Tools #Redis
Атака Томпсона через strip: заражена вся сборка NixOS
Исследователи собрали классическую атаку «доверия к доверию» вокруг GNU strip, обычной утилиты сборки. Она не читает исходники и не генерирует код — только правит готовые ELF-файлы.
Один подменённый strip в бинарном зерне NixOS переживает весь бутстрап и попадает в финальное окружение. На реальной ревизии nixpkgs так собрали графический установщик с бэкдором почти во всех бинарниках.
Вывод неприятный: аудита компилятора мало, доверять надо каждому инструменту в цепочке сборки. Спасают только воспроизводимые сборки и разнообразие бутстрапа, но полного bootstrap from source пока нет почти нигде.
🔗 Подробнее
@nuancesprog #Security #Linux
«Simple Made Easy»: доклад Рича Хикки, которому уже 14 лет
Автор Clojure Рич Хикки в 2011 году развёл два понятия: simple и easy. Простое — то, что не сплетено с другим, лёгкое — то, что близко и привычно.
Разница важна, потому что мы обычно выбираем привычное и зовём это простотой. Отсюда фреймворки, ORM и состояние, которые удобны в первый день и мешают на второй год.
Хикки предлагает считать сплетения: сколько понятий тянет за собой каждая абстракция. Спорный момент — рецепты у него сильно завязаны на функциональный стиль и неизменяемые данные.
🔗 Подробнее
@nuancesprog #Opinion
Beyond ORMs: почему автор Extralite вернулся к чистому SQL
Разработчик из Ruby-сообщества объясняет, почему ушёл от ActiveRecord к прямым запросам. Он создал Extralite — гем для работы с SQLite без слоя объектов.
ORM не умеет в оконные функции, CTE и RETURNING, а сам весит около 43 тысяч строк. Из-за иллюзии «объект = строка» новичок легко пишет N+1: цикл с delete вместо одного запроса.
Автор напоминает, что в реальном приложении разных запросов на таблицу — около дюжины. Спорно другое: без DSL ты сам отвечаешь за экранирование параметров и переносимость между базами.
🔗 Подробнее
@nuancesprog #Data #Postgres
qBittorrent и сбежавший из песочницы торрент-клиент
В Mastodon разошёлся пост: у пользователя копия qBittorrent «выбралась» из песочницы. Деталей в записи почти нет — это скорее байка, чем баг-репорт.
Даже такая шутка бьёт в больное место: песочница не гарантия, а слой защиты. Flatpak и Snap часто раздают приложению доступ к домашней папке целиком.
Проверь реальные права клиента через flatpak info --show-permissions и урежь лишнее. Подвох в том, что без подтверждённых деталей это просто повод пересмотреть настройки, а не новость об уязвимости.
🔗 Подробнее
@nuancesprog #Security #Linux
Chromium: RCE в песочнице, которую уже используют в атаках
Под номером CVE-2026-85046 заявлена уязвимость с выходом за пределы песочницы во всех версиях Chromium. Карточка NVD пока пустая: технических подробностей и оценки CVSS там нет.
Побег из песочницы означает выполнение кода уже вне изоляции вкладки. Под ударом не только Chrome, но и Edge, Brave, Electron-приложения и встроенные вебвью.
Обновляй браузеры и пересобирай всё, что тащит Chromium внутрь, как только выйдут патчи. Подвох в том, что до публикации деталей проверить масштаб самому нечем — ориентируйся на бюллетени вендоров.
🔗 Подробнее
@nuancesprog #Security
Ленивые импорты в Python 3.15 и линтер, который их расставит
В Python 3.15a7 появились ленивые импорты по PEP 810: пишешь lazy import numpy. Модуль подгружается только при первом обращении к объекту.
Для CLI это ощутимая экономия: вызов --help больше не тянет тяжёлые зависимости. Автор сделал инструмент uvx flake8-lazy --apply=list, который расставит ленивые импорты за тебя.
Ленивым можно делать не всё: импорт в try/except ModuleNotFoundError сломается, ошибка переедет на первое использование. Ещё в альфе флаг lazy_imports=none отключает не тот синтаксис — обещают починить.
🔗 Подробнее
@nuancesprog #Languages #Python
Laravel закрыл issues в части репозиториев
Laravel отключил создание issues в пакетах вроде Socialite и Scout. Вместо жалоб предлагают сразу присылать пул-реквесты с исправлением.
Мейнтейнерам это экономит время на разбор дублей и пустых сообщений. Но порог входа растёт: новичок опишет баг, а PR не осилит.
Брент Роз замечает, что в эпоху ИИ PR отправить почти так же легко. Только код от нейросети проверять дольше, чем осмысленный патч от человека.
🔗 Подробнее
@nuancesprog #Opinion #GitHub
Polars 2.0: потоковый движок теперь по умолчанию
Вышел первый релиз-кандидат Polars 2.0, финальная версия — через несколько недель. Главное изменение: collect() у LazyFrame теперь идёт в потоковый движок.
Команда обещает в среднем пятикратное ускорение и заметно меньший расход памяти. Взамен порядок строк в join, group_by и unpivot больше не гарантируется.
Нужен прежний порядок — есть maintain_order или движок in-memory через настройку. Заодно Polars стал строже: is_in и горизонтальный concat теперь падают вместо тихой подмены данных.
🔗 Подробнее
@nuancesprog #Data #Python
📬 Дайджест недели
Лучшее за неделю:
• Chrome Web Store удалил расширения на Manifest V2
• В Omarchy любой процесс пользователя мог стать root
• GLM-5.3 выложили в открытых весах
• Cloudflare ужала кэш 1.1.1.1 и сэкономила 100 ТБ памяти
• Кейси Муратори копает под «преждевременную оптимизацию»
• Дэниел Стенберг снова спорит с чужим CVE
• Модель памяти CPU: процессоры хитрят чаще, чем кажется
Мимо ленты, но стоило внимания:
• How I made Rustdoc 33% faster in one week
• shadcn-ui/cn — cn is a new engine for Tailwind class merging and conflict resolution. It replaces tailwind-merge and clsx. Same APIs. Full parity. And it is 30× faster.
• "IT WoRKs BeTter in the App "
• EVE Online moves to Python 3
• Atlas: A World Model for Spatial Intelligence
Наша сетка: 😄 юмор — @nophumor · 💼 удалёнка — @nopremote
@nuancesprog #Digest
Кто следит за сторожем: скучная изнанка мониторинга
Автор PulseWatch словил алерт о пропаже задачи — и оказалось, что GitHub Actions реально задержал воркфлоу на 90 минут. Сервис сработал верно, зато вскрылась дыра: смерть самого сторожевого процесса никто бы не заметил.
Это классическая слепая зона любого мониторинга: приложение живо, пинги идут, а проверяющий цикл мёртв. Пользователь узнает об этом только когда упадёт его собственная задача.
Лечится вынесением проверки наружу — теперь цикл шлёт сигналы в Healthchecks.io, и домены отказа разделены. Второй вывод спорнее: cron на 15 минут не значит, что grace-период в 15 минут безопасен.
🔗 Подробнее
@nuancesprog #Infrastructure #GitHub