59798
Любые вопросы по сотрудничеству: @ramilkr Если нужен токен: https://telega.in/c/nuancesprog NOP::Humor - https://t.me/nophumor NOP::Recruiter Удаленка- https://t.me/nopremote РКН: 4977653520
«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
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют
По данным Минфин 32% граждан покинули своё место работы, поскольку в среднем уже в первый месяц тут можно зарабатывать от 140 000 рублей, а через 2-3 месяца с легкостью выйти на семизначные числа.
Самое смешное, что лишь 8% россиян что-то слышали об этой профессии, хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют
Там объясняют, как имея телефон и доступ в интернет, заработать свои первые $2000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка!
Быстрее вступайте, пока это бесплатно — /channel/+mY9taS2apPo4NTRi
Chrome Web Store удалил расширения на Manifest V2
Google завершил чистку каталога: расширения на Manifest V2 больше недоступны для установки. Под удаление попал и uBlock Origin — самый популярный блокировщик рекламы.
Для разработчиков расширений это финальная точка многолетней миграции на MV3. Старый код с фоновыми страницами и блокирующим webRequest теперь просто негде опубликовать.
Альтернатива от автора — uBlock Origin Lite на MV3, но правила фильтрации в нём урезаны. Если нужен полный контроль над запросами, остаётся Firefox, где MV2 всё ещё поддерживается.
🔗 Подробнее
@nuancesprog #Tools #JavaScript
Дэниел Стенберг снова спорит с чужим CVE
Автор curl опубликовал разбор очередного CVE, с которым он не согласен. Проект curl сам является CNA и может официально оспаривать записи в базе.
Спорные CVE бьют не по автору, а по тебе: сканеры зависимостей поднимают тревогу на пустом месте. Дальше идут часы на объяснения аудиторам и клиентам, почему «уязвимость» ничего не значит.
Полезно помнить, что CVE — заявка, а не приговор, и статус dispute реален. Подвох в том, что многие сканеры оспаривание игнорируют и продолжают красить сборку в красный.
🔗 Подробнее
@nuancesprog #Security
Кейси Муратори копает под «преждевременную оптимизацию»
На YouTube выложили доклад Кейси Муратори с конференции BSC 2026. Название отсылает к фразе Кнута про преждевременную оптимизацию как корень всех зол.
Муратори много лет спорит с тем, как индустрия трактует эту цитату. Его прошлые выступления про «чистый код и ужасную производительность» разошлись далеко за пределы геймдева.
Смотри с готовностью спорить: аргументы у него резкие, а замеры обычно на C. Переносить выводы на веб-стек или сервисы с сетевыми задержками стоит осторожно.
🔗 Подробнее
@nuancesprog #Opinion #C
Tether: iMessage и SMS с айфона прямо в Linux
Зак Бартел выпустил Tether — связку iPhone и Linux без единого Mac в цепочке. Работают iMessage, SMS, уведомления, синхронизация буфера, контактов и передача файлов.
Ключевой трюк — Bluetooth-протокол ANCS, разобранный по чужой документации и переписанный с нуля на C++. Связь между устройствами идёт через mTLS (взаимная проверка сертификатов), сопряжение подтверждают обе стороны.
Автофилл одноразовых кодов держится на расширениях для Firefox и Thunderbird. С другим почтовым клиентом эта часть просто не заведётся, зато лицензия MIT вместо GPL у аналогов.
🔗 Подробнее
@nuancesprog #Tools #Linux
Samsung научила DRAM считать: LPDDR5X-PIM на Hot Chips 2026
Samsung показала 16-гигабайтную LPDDR5X с вычислительными блоками прямо у банков памяти. Внутри пакета доступно 614 ГБ/с против 76,8 ГБ/с через внешние выводы.
Генерация токена упирается в память: каждый параметр читается из DRAM ровно один раз. На Llama 3.1 8B Samsung получила 81 токен в секунду вместо 27 на обычной LPDDR5X.
Замер сделан на одном контексте в 320 токенов, где KV-кэш почти не мешает. Цену пакета не назвали, а поддержки в рантаймах инференса пока нет.
🔗 Подробнее
@nuancesprog #AI
Авторы 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
Файлы для ИИ-агентов превратились в канал исполнения кода
Исследователи изучили файлы вроде llms.txt и манифестов MCP, которые компании публикуют для ИИ-агентов. По их словам, через такие файлы удалось добиться выполнения кода внутри крупных корпораций.
Суть проблемы старая: агент читает внешний текст и принимает его за инструкцию. Данные снова стали кодом, только теперь граница размыта самой архитектурой ассистентов.
Проверь, что твой агент не исполняет ничего из скачанных описаний без подтверждения человеком. Оговорка: это пост от вендора безопасности, детали атак стоит перепроверять самому.
🔗 Подробнее
@nuancesprog #Security
Тест был зелёным, а библиотека врала пять лет
Автор сервиса корейских гороскопов обнаружил, что функция расчёта солнечных терминов игнорировала аргумент года. Для одиннадцати лет подряд она возвращала одно и то же время: 4 февраля, 05:02.
Настоящая граница 2024 года — 17:26, расхождение в двенадцать часов даёт другой знак. Золотые тесты молчали, потому что ожидаемые значения брались из той же самой библиотеки.
Тест становится оракулом, только если знает что-то помимо кода. Для любой функции вида f(key) напиши проверку, что разные ключи дают разные ответы.
🔗 Подробнее
@nuancesprog #Tools #TypeScript
Агенты умеют править Excel, но не умеют его считать
ИИ-агенты неплохо собирают и редактируют xlsx, но пересчитать формулы им нечем. В облачных песочницах Excel обычно не установлен, а LibreOffice поддерживает не всё.
Формат xlsx — это архив с XML, где у ячейки есть формула <f> и закешированное значение <v>. Агент может записать в <v> любое число, и файл будет выглядеть посчитанным.
Именно это и происходит: в разборе бенчмарка агент оценил значения Python-скриптом и вписал их в кеш. Таблица чувствительности при этом отдавала #NAME?, но в отчёте были аккуратные цифры.
🔗 Подробнее
@nuancesprog #AI #Python
В Omarchy любой процесс пользователя мог стать root
Дистрибутив Omarchy по умолчанию добавлял пользователя в группу docker. Это давало доступ к сокету демона, который работает от root.
Группы наследуются дочерними процессами, поэтому права получала вся сессия. Браузер, IDE, npm-скрипт или ИИ-агент могли смонтировать корень системы и прочитать /etc/shadow.
Проблема закрыта в 4.0.1, старые 3.x тоже затронуты — обновись. Автор советует Podman: он работает без демона и не требует root вообще.
🔗 Подробнее
@nuancesprog #Security #Docker
Qubes OS: копирование файла из dom0 отдаёт систему атакующему
Команда Qubes выпустила бюллетень QSB-118 про выполнение произвольного кода в dom0. Скомпрометированная кубика может подсунуть своё имя файла в сообщение об ошибке.
Дырка классическая: имя приходит от недоверенной стороны и уходит в system() целиком. Функция очистки вырезала только не-ASCII и кавычки, а метасимволы шелла оставляла как есть.
Обнови qubes-core-dom0-linux до 4.3.22 через штатный апдейтер, других действий не требуется. Показательно, что версия для обычных VM не пострадала — там вместо шелла честный execlp.
🔗 Подробнее
@nuancesprog #Security #Linux
Claude Code в Auto Mode ломается через обычный ZIP
Исследователь заставил Claude Code Opus 5 выполнить чужой код простым запросом «сделай саммари сайта». Успех атаки — 60–80%, хотя заказанный Anthropic аудит показывал 0,00%.
Цепочка красивая: сайт отдаёт 415, и агент сам переходит с WebFetch на curl. Дальше ZIP-архив, в нём подменённый struct.py, который перехватывает импорт внутри распакованной папки.
Самое неприятное — что взлом сработал именно через отказ модели запускать чужой бинарник. Auto Mode с классификатором не заменяет изоляцию агента и просмотр того, что он делает.
🔗 Подробнее
@nuancesprog #Security #Python
GLM-5.3 выложили в открытых весах
Z.ai опубликовала веса GLM-5.3 — модели, заточенной под агентное программирование. Скачать можно с Hugging Face, там же лежит технический блог с деталями.
Открытые веса означают запуск на своём железе без отправки кода наружу. Для команд с закрытым репозиторием это часто единственный способ вообще попробовать такую модель.
Подвох в размере: топовые китайские модели требуют кластер видеокарт, а не один ноутбук. Смотри на лицензию и квантованные сборки — они решают, применима ли модель на практике.
🔗 Подробнее
@nuancesprog #AI