Типичный программист
✔
78.1K subscribers
3.82K photos
1.16K videos
14 files
8.47K links
Всё самое интересное по программированию

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Download Telegram
Почему mold линкует Firefox за 0,89 секунды, а lld — за 4,44

Автор линкера mold Руи Уэяма опубликовал статью о его устройстве. Секрет в том, что весь конвейер держит занятыми все 32 ядра одновременно: разбор входных файлов, разрешение символов через compare-and-swap, слияние строк, запись результата. На больших проектах mold быстрее lld в 2,4–16 раз и до 112 раз быстрее GNU ld. Цена — свои эвристики: из 19 000 пакетов Gentoo не собрались два.

В «Сохранёнках программиста» разобрали статью подробнее.
🤔10🔥8👍1👏1🎉1🌚1🌭1💯1🍓1👨‍💻1
47% кода профессиональные разработчики отдают агентам целиком

В мае–июле JetBrains спросила больше 15 000 профессиональных разработчиков: какую долю кода за последний месяц вы сгенерировали агентами полностью, какую написали с подсказками ИИ, а какую руками.

В среднем вышло 47% полностью агентского кода против 27% ручного. Больше половины пишут руками меньше 20% кода, каждый пятый не пишет ни строчки без ИИ. При этом группа, у которой агенты дают больше 80%, остаётся меньшинством в 22%.

По языкам разрыв заметный: у Go, JavaScript и TypeScript в среднем 54–55% агентского кода, у C и C++ — 33%, и именно они держат самую высокую долю ручного письма, 38%. Сеньоры отдают агентам больше джунов: у четверти сеньоров агентского кода за 80%.

По регионам ещё резче. В Китае, Японии и Южной Корее тех, у кого агенты пишут больше 80% кода, 32–35% против примерно 16% в Европе и Великобритании.

Полные разрезы — в отчёте.

#ии
❤5👌4👍2🔥2👏1🎉1🤩1🦄1
Бинарник на musl оказался на 26% медленнее glibc даже с хорошим аллокатором

musl — лёгкая libc, на которой собраны Alpine-образы Docker и самодостаточные статические Linux-бинарники «один файл — и работает». Джонатан Эллис, сооснователь DataStax, много лет возглавлявший проект Apache Cassandra, замерил цену этого удобства на рабочей нагрузке своего Rust-инструмента.

Со штатным аллокатором musl проигрывает разгромно, причём не только под высокой конкурентностью, где его чаще всего ругают: замеры шли на обычных четырёхъядерных машинах EC2. Замена аллокатора на mimalloc убрала большую часть разрыва, но 26% остались — профилирование указало на базовые процедуры работы с памятью внутри самой libc.

Эллис оставил musl только маленьким утилитам, где важен размер файла, а из инструмента, чувствительного к скорости, убрал готовую musl-сборку. Если ваш сервис живёт в Alpine и упирается в процессор — сравните обе libc с одинаковым аллокатором на своей нагрузке.
👀5🔥4👏2❤1✍1👍1🕊1💯1
Tailscale выложила netcat, которому не нужны ни аккаунт, ни root

Перекинуть поток данных или пробросить порт между двумя машинами за NAT обычно означает поднимать VPN или искать сторону с белым адресом. Tailscale открыла исходники Tailcat — утилиты, которая делает это как netcat, но с уже зашифрованным каналом.

Одна машина запускает сервер и печатает короткий токен, вторая подключается по этому токену, трафик идёт через WireGuard. Аккаунт Tailscale не нужен: утилита берёт сетевой слой продукта без его control plane. Root тоже не нужен — всё живёт в пространстве пользователя, без tun-интерфейса, правки маршрутов и настройки DNS.

Кроме передачи потока умеет пробрасывать локальный порт, поднимать встроенный SSH-сервер на Linux и macOS, когда системного sshd на той стороне нет, и работать прокси по SOCKS5.

В нашем канале «Инструменты программиста» разобрали подробнее, включая оговорку авторов про несовместимость будущих версий.
👍19🔥9❤3👏2🎉1🤩1👌1😭1
Наберите id: если там есть группа docker, у всего, что вы запускаете, уже есть root

Omarchy — готовая сборка Arch Linux от Давида Хайнемайера Ханссона, автора Ruby on Rails, одна из самых заметных за последний год. Исследователь, пишущий под ником 0xcc, разобрал настройки по умолчанию и показал, что любой процесс в пользовательской сессии мог получить root: без пароля, без sudo и без единого запроса на повышение прав.

Механизм короткий. Установщик добавлял пользователя по умолчанию в группу docker. Демон Docker в Arch работает от root и слушает сокет /var/run/docker.sock. Кто дотягивается до сокета, тот просит демона поднять контейнер от root, примонтировать в него любой кусок файловой системы хоста и делать с файлами что угодно. Одной команды хватает, чтобы прочитать то, что читать нельзя:

docker run --rm -v /:/hostroot alpine cat /hostroot/etc/shadow

Дополнительные группы наследуются дочерними процессами, поэтому право доставалось всей сессии целиком: браузеру, редактору, npm-скриптам, агентам в терминале. Взлом любого обычного приложения сразу означал взлом машины. Затронуты версии до 4.0.1, включая ветку 3.x; членство в группе убрали из конфигурации по умолчанию 24 августа.

Про саму группу docker документация Docker предупреждает прямо: членство в ней равносильно правам root. Проблема здесь в том, что решение приняли за пользователя и включили по умолчанию, а в документации сборки описали словами «нужные изменения групп, чтобы вы запускали Docker не от root» — читается ровно наоборот.

Поэтому проверка полезна не только владельцам Omarchy. Наберите id на рабочей машине и посмотрите, есть ли в списке docker.

#безопасность
❤7👏5🌚4👍3😱1🎉1🐳1
Claude Code вписывает ссылку на сессию в коммиты — проверьте свою историю

Claude Code по умолчанию дописывает в сообщения коммитов и описания пул-реквестов строку вида https://claude.ai/code/session_… — ссылку на сессию, в которой сделаны изменения. Отдельного предупреждения нет: многие узнают об этом, уже увидев ссылки в истории рабочего или опенсорсного репозитория. Issue с просьбой сделать поведение опциональным открыли в июне и в августе закрыли, но умолчание не поменялось — на выходных тема снова разошлась по Hacker News.

Что видно по ссылке, зависит от настройки видимости сессии: приватная чужому аккаунту не открывается, публичная — любому вошедшему. В истории репозитория в любом случае навсегда остаются факт работы агента и идентификатор сессии.

Отключается в ~/.claude/settings.json (для облачных веб-сессий — в репозиторном .claude/settings.json):


"attribution": {"commit": "", "pr": "", "sessionUrl": false}


Проверить, что уже накоммичено: git log --grep="claude.ai/code".
🙈16💊5🎉3🤣2❤1✍1👍1🔥1🤔1🤩1👌1
К багам привыкают настолько, что перестают считать их багами

Дэн Лу описывает знакомый механизм: человек годами пользуется сломанным интерфейсом и постепенно обрастает бессознательными обходными привычками. Он ждёт перед редактированием заголовка Google Doc после открытия или выключает Wi-Fi перед входом в домен, а затем уже не замечает сам дефект.

Для продуктовой команды такая адаптация опасна. Сотрудники ежедневно проходят знакомыми тропами и видят удобную систему, тогда как новый пользователь встречает все сбои сразу. Лу приводит историю сотрудника Blackboard, который считал продукт любимым пользователями. В опросе Amplicate 93% участников заявили, что ненавидят эту систему; данные приводила Fast Company в 2011 году.

Сам Лу говорит, что замечает сотни и тысячи багов в неделю. Его эссе о слепоте к дефектам связывает качество продукта со способностью команды замечать собственные костыли.

ИИ-агенты ускорили создание кода и исправление дефектов. Первый шаг всё равно остаётся человеческим: записывать привычные обходные действия, воспроизводить путь нового пользователя и возвращать такие случаи в список реальных поломок.
❤15👍7🔥2🎉1🤩1🌚1
«Терминальные интерфейсы удобнее, там всё с клавиатуры» — довод, который держится на плохих GUI

На Hacker News неделю спорили, пора ли перестать делать текстовые интерфейсы в терминале в пользу графических. В защиту TUI чаще всего звучало одно: их выбирают за полное управление с клавиатуры.

Хараламбос Кардарис с наблюдением согласен, а с выводом спорит. Возьмите наугад графическое и терминальное приложение — второе действительно с большей вероятностью окажется целиком клавиатурным. Только говорит это о том, как написаны графические приложения. GNOME Human Interface Guidelines прямо требуют: всё, что делается указателем, должно делаться и с клавиатуры, а пройти по любой части интерфейса нужно уметь без мыши. Требование есть, соблюдают его выборочно.

В нашем канале «Сохранёнки программиста» разобрали подробнее.
🔥6❤4👍4💔2🤝2👏1🤔1😢1🎉1👌1💯1
Откуда взялась фраза «преждевременная оптимизация — корень всех зол»

Этой фразой полвека закрывают споры о производительности: одни цитируют её как Кнута, другие как Хоара, и часто — чтобы осадить желание написать код побыстрее. Кейси Муратори, автор Handmade Hero и курса Computer Enhance, привёз на Better Software Conference двухчасовой доклад-расследование о том, при каких обстоятельствах фраза родилась.

В его исследовательской папке больше 200 исторических документов: переписка и заметки Дейкстры времён «GOTO considered harmful», работы Хоара, отчёты конференций NATO 1968 года и статья Кнута «Structured Programming with go to Statements», где фраза напечатана. Вывод: без знания этих людей и их споров фразу читают либо слишком буквально, либо слишком широко — и применяют не к тому, к чему её задумывали.

Попутные находки стоят отдельного упоминания: у Хоара в работе 1965 года Муратори нашёл конструкцию, очень похожую на SSA-форму, на которой стоят современные компиляторы, а у Страуструпа в 1979-м — приём, который сегодня называют dependency injection.

Смотреть доклад — после него ещё сорок минут вопросов от создателя языка Odin. Автор отдельно выложил источники всех цитат со слайдов, от EWD-заметок Дейкстры до устных историй Кнута и Хоара.
❤9🤓7👍4👏4🙏1👌1🤝1🙉1
Forwarded from Нейроканал
Anthropic выпустила Claude Fable 5.1 и Mythos 5.1. Это одна и та же модель, разница только в ограничителях: Fable доступна всем, Mythos через программы проверенного доступа для кибербезопасности и биологии. Всем подписчикам разом сбросили лимиты, так что попробовать можно прямо сейчас.

По бенчмаркам модель заметно ушла от Fable 5 и обошла Opus 5 и GPT-5.6 Sol: в агентном научном коде рост вдвое, в терминальном кодинге и бизнес-автоматизации тоже большой отрыв. На низком и среднем усилии она даёт результат уровня Fable 5 за заметно меньшие деньги. В Claude Code дефолт High, в Cowork и на claude․ai Medium.

Цена токенов прежняя, $10 и $50 за миллион, но чтение кэша подешевело в 4 раза, до $0,25. Для обычных задач это минус около 25% к счёту, для агентных до 45%. Модель уже доступна в API как claude-fable-5-1, на AWS, Google Cloud и Azure.

Фильтры по кибербезопасности стали срабатывать примерно на 60% реже: модели теперь разрешили искать уязвимости в коде, запрещены только эксплойты, пентест и сканирование бинарников. Ещё Anthropic закрыла лазейку для дистилляции: новые API-аккаунты больше не могут править прошлый контекст, сохраняя транскрипт размышлений модели.

@neuro_channel
👍14❤7🔥2👏2💊2👎1🤩1👌1😐1👀1🤝1
Google выкинул uBlock Origin из Chrome Web Store: Manifest V2 закончился окончательно

31 августа из магазина удалили все оставшиеся расширения на старом API, и полный uBlock Origin вместе с ними. Установить его заново в Chrome нельзя: на 139-й версии он просто не запускается, а на 138-й и старше остаётся в списке, но отключено: включить его могла только корпоративная политика.

Причина в Manifest V3: расширение больше не может само разбирать каждый сетевой запрос, только передать браузеру ограниченный набор правил. Автор uBlock Origin с самого начала говорил, что полноценная версия в таких условиях невозможна, и сделал урезанную uBlock Origin Lite.

Что остаётся: Lite-версия в Chrome, полный uBlock Origin в Firefox (по словам автора, там он работает лучше всего) или в Microsoft Edge Add-ons. Для разработчиков расширений это конец режима «у клиентов ещё стоит старая сборка, её можно чинить».

Хронологию, что делать пользователям и что менять в расширениях разобрали на сайте.

@tproger
😢9🫡6❤4💊3🌭2👏1🕊1
mold переписывают на Rust, чтобы дистрибутивы Linux сделали его линкером по умолчанию

Линкер собирает объектные файлы и библиотеки в готовую программу, и на больших проектах этот этап заметно влияет на скорость сборки. Автор mold Руи Уэяма объявил, что версия 3.0 должна уметь линковать практически всё, с чем справляется GNU ld, включая ядра и программы для встраиваемых систем.

Ради этого проект переписывают с C++ на Rust и добавляют полноценную поддержку линкер-скриптов. Скорость у mold и сейчас главный аргумент: на 64-ядерном Threadripper отладочная сборка Firefox линкуется у него за 0,89 секунды против 7,04 у lld, и даже lld, в который авторы стенда перенесли четыре приёма из mold, отстаёт с результатом 4,44. У репозитория под лицензией MIT почти 17 тысяч звёзд, актуальный релиз — v2.42.0.

Поворот заметен на фоне собственной документации проекта: сейчас mold понимает ровно столько линкер-скриптов, сколько нужно, чтобы прочитать /usr/lib/x86_64-linux-gnu/libc.so, сам язык там назван переусложнённым, и стоит прямая оговорка, что расширять поддержку не планируют.

Пока mold каждый включает себе сам: флагом -fuse-ld=mold, настройкой системы сборки или подменой системного ld. Если дистрибутивы сделают его линкером по умолчанию, короче станут сборки всего, что собирается системным тулчейном, начиная с самих пакетов дистрибутива.

Свежие бенчмарки против lld и wild, план на 3.0 и как включить mold сегодня разобрали на сайте.
🤩9🔥5👍4❤3💊2✍1👌1💯1
Anthropic выпустила Claude Fable 5.1: та же модель, что закрытая Mythos 5.1, и первое место в независимом рейтинге в день релиза

Fable 5.1 доступна всем через подписку и API, Mythos 5.1 отдают только проверенным организациям из США. Anthropic прямо пишет: это одна и та же модель, разница лишь в защитных фильтрах, Fable не делает пентест и не генерирует эксплойты. Цены на вход и выход прежние: $10 и $50 за миллион токенов, чтение кэша подешевело с $1 до $0,25, контекст 1 млн токенов.

Цифры: на Terminal-Bench-Science результат вырос с 24,7% у Fable 5 до 52,6%, на AutomationBench с 17,1% до 31,4%. Независимый замер Artificial Analysis дал 66 баллов против 63 у Opus 5 и 61 у GPT-5.6 Sol, это первое место среди 184 моделей.

Что проверить у себя: сменить идентификатор на claude-fable-5-1, прогнать длинные агентные сценарии, сравнить режим xhigh с максимальным (разница один балл, а задача на 28% дешевле).

Все бенчмарки, цены и ограничения собрали в одном разборе на сайте.

@tproger
👍3❤2🤪2🔥1🤔1🎉1🤩1🍓1🎅1💊1
Человек выровнял 17 000 слов по правому краю, подбирая слова под ширину строки

Моноширинный текст плохо выравнивается по обоим краям. Пробел неделим, половинки пробела нет, поэтому строки расползаются дырами, а переносы в таком шрифте лезут в глаза и портят копирование. По этой причине ровный правый край в текстовых файлах почти не встречается.

В конце девяностых автор под ником rs1n написал текстовое руководство по игре Super Metroid и всё-таки его выровнял. В FAQ внизу страницы у него спрашивают, какой программой он это сделал. Ответ: «Никакой. Я просто аккуратно подбирал слова, чтобы всё сходилось по правому краю. Всё сделано в обычном текстовом редакторе». Так идут 17 000 слов подряд.

Марчин Вихары, собравший эту историю, замечает: в книгах абзацы переписывают ради вёрстки постоянно, а на экране почти никогда. Хотя тот, кто хоть раз час подгонял подпись кнопки под ширину в плотном интерфейсе, занимался тем же самым.

#кек
🔥42❤5🤩4👍3⚡2💊2😁1
Сканеры ищут открытые Langflow и Rails: первый выполняет чужой Python от root, второй отдаёт секреты через загруженную картинку

VulnCheck насчитал сотни попыток эксплуатации двух старых дыр на своих ловушках. CVE-2026-0768 в Langflow (CVSS 9,8): эндпоинт /api/v1/validate/code выполняет код из параметра без аутентификации, а Langflow часто крутится в Docker от root. CVE-2026-66066 в Rails Active Storage (CVSS 9,5): специально собранное изображение заставляет libvips прочитать любой файл сервера, включая secret_key_base и пароли к базе.

Для Rails исправление есть, для Langflow версия с патчем в advisory не указана, и ZDI называет единственной мерой ограничение доступа. В запросах ищут OPENAI_API*, AWS_SECRET*, .ssh и .bash_history, то есть цель не сам сервис, а все ключи вокруг него.

Что делать: закрыть API Langflow от интернета за прокси с аутентификацией и следить за релизами; поднять activestorage до 7.2.3.2, 8.0.5.1 или 8.1.3.1; если сервер торчал наружу, ротировать секреты.

Механизм обеих дыр и чек-лист разобрали на сайте.

@tproger
👍5🔥4🎉2❤1👏1👌1🕊1😎1
Разработчик предложил раз в неделю выключать ИИ-ассистентов и писать код руками

30 августа на Hacker News появился сайт No AI Fridays: по пятницам ассистенты выключены, код пишется руками, ответы ищутся в документации. Аргументы авторов: постоянная работа через языковые модели копит «когнитивный долг», снижает вовлечённость и мешает набирать навык, а отдав решение модели, человек перестаёт видеть выбранные за него компромиссы.

Линтеры и автоматические ревьюеры в правилах разрешены: их замечания читает и усваивает человек. В списке компаний, которые уже так делают, пока одна строка — htmx.

В нашем канале «Представляешь,» разобрали подробнее, включая спор в комментариях на Hacker News.

#обсуждение
🔥28👍11😁11❤2👏1🤩1🌚1
Домены .ru и .рф теперь требуют владельца с Госуслугами, и большинство администраторов этого ещё не сделали

С 1 сентября действует закон 569-ФЗ: администратор домена в зонах .ru, .рф и .su должен пройти идентификацию через ЕСИА, без неё домен нельзя будет ни зарегистрировать, ни продлить, ни изменить. Руцентр опубликовал готовность: 42,2% его клиентов и 25,7% у Рег.ру. Два регистратора держат 68% рынка.

Ограничения пока не включены: переходный период до попадания регистратора в специальный перечень либо до 18 января 2027 года. Но домены продлеваются раз в год, и у части владельцев дата продления попадёт уже внутрь жёсткого режима.

Типичная беда команды: домен продукта записан на уволившегося сотрудника, аккаунт регистратора в старом чате, автоплатёж работает. При следующем продлении регистратор попросит этого человека войти через Госуслуги.

Что проверить в компании и как переоформить домены разобрали на сайте.

@tproger
👎27👍10💊10😁6🔥4❤3😢3🤔1🙏1👌1🤝1
Хостинг-панель раздавала вредоносное обновление полтора дня, сервер при этом никто не взламывал

Softaculous, разработчик панели Virtualizor для управления виртуалками, описал инцидент 28–30 августа: перехват шёл двумя волнами общей длиной около 22 часов внутри окна в 33 часа. Атакующие не трогали серверы компании: они через автономную систему AS62390 объявили в BGP более узкий маршрут /24 к адресам Softaculous, и интернет предпочёл его штатному /16 от Hetzner. Трафик клиентов пошёл к злоумышленникам: на пике подменённый маршрут видели около 72% из 368 наблюдателей RIPE RIS.

Дальше цепочка сработала сама. Let’s Encrypt проверяет владение доменом по HTTP, а проверка тоже пришла на перехваченный адрес, так что атакующие получили настоящий сертификат. С ним они отдали клиентам панели поддельное обновление Virtualizor, и серверы, проверявшие обновления в эти часы, его установили. Полного списка пострадавших у компании нет, подписи пакетов клиенты тогда не проверяли вовсе, а мошеннический сертификат отозван, пишет The Register.

Для тех, кто раздаёт обновления, урок простой: HTTPS от инфраструктуры интернета не спасает, обновления нужно подписывать своим ключом и проверять подпись на клиенте, а за анонсами своих префиксов следить, например через RPKI и мониторинг BGP.

Как устроен угон маршрута, почему сертификат оказался настоящим и что проверить админу разобрали на сайте.

#безопасность
👍12👌3❤2🤩2🤔1🎉1🌚1🤝1🦄1
Превратите камеры наблюдения в круглосуточный определитель птиц

Джейсон Такер взял три уличные IP-камеры, уже висевшие для охраны, и подключил их микрофоны к системе распознавания птиц по голосу. Отдельное железо не понадобилось: хватило адресов аудиопотоков по RTSP.

Звук разбирает BirdNET-Go — открытый самохостящийся анализатор на Go примерно с 1700 звёзд. Ставится в Docker, работает круглосуточно даже на Raspberry Pi и считает всё локально: без облака, внешних API и абонентской платы. Новая модель Google Perch v2 различает 14 795 видов против примерно 6000 у прежней BirdNET 2.4.

На дашборде — тепловая карта «вид против часа суток» и спектрограммы последних определений. Есть оповещения по конкретным птицам, отметка новых для двора видов и отправка событий в домашнюю автоматику по MQTT. Микрофоны глохнут, когда слышат человеческую речь: правда, однажды система всё же сообщила о пуке на подъездной дорожке — мимо шёл сосед.

Я бы начал с проверки, отдаёт ли ваша камера стабильный RTSP-поток со звуком.

#diy #опенсорс
🔥9👍5❤2👏2