TGViewer
Channel ✦ Verified Channel
Типичный программист

Типичный программист

@tproger_official

Всё самое интересное по программированию

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

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

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

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

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Subscribers
78.3K
Photos
3.8K
Videos
1.2K
Links
8.4K

Showing posts older than #14792 · Back to latest

Older Posts 20 shown
Post #14791 8.72K
Ускоритель для ИИ молча возвращал неверный угол вместо ошибки

Tenstorrent — компания Джима Келлера, того самого, кто проектировал AMD Zen и первый чип автопилота Tesla. Она делает ускорители для нейросетей на RISC-V, то есть пытается подвинуть NVIDIA. Софт к ним, tt-metal, открытый, и в нём нашлась занятная вещь.

Есть стандарт IEEE 754, ему сорок лет, и он в том числе описывает, что должен вернуть арктангенс от бесконечности. Ответ π/2. Так считает Python, так считает PyTorch, так считает любая видеокарта. Ядро Tenstorrent на том же входе выдавало ровно 0, а на минус нуле вместо π/2 приезжало π.

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

Если у вас в проде считает что-нибудь не на процессоре, отчёт об аудите стоит взять как чеклист.
DEV Community How I Found an IEEE 754 Violation in an AI Chip Company's Math Kernel ttnn.atan2(inf, 0) returned 0 instead of pi/2. A field report on finding IEEE 754 special-case violations in hardware math kernels.
  • 💊 9
  • 👍 8
  • ❤ 6
  • 👏 2
  • 🤝 2
  • ⚡ 1
  • 😁 1
  • 🎉 1
  • 🤩 1
  • 🕊 1
  • 💯 1
Post #14790 6.91K

Forwarded from IT Юмор

Кто уже потестил Басню 5.1?
  • ❤ 18
  • 👍 12
  • 💊 7
  • 🔥 4
  • 👏 4
  • 😁 3
  • 💯 3
  • 🤝 2
  • 🤨 1
  • 🤷 1
Post #14789 7.44K

Forwarded from IT Юмор

  • 🤣 176
  • 😁 41
  • ❤ 3
  • 🔥 3
  • 🎉 3
  • 👎 2
  • 👏 2
  • 👍 1
  • 🤔 1
  • 💯 1
Post #14788 7.43K

Forwarded from Веб-страница

Браузер дорос до того, чтобы конвертировать файлы без сервера

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

Отсюда исчезает не только загрузка. Пропадают очередь на обработку, требование завести аккаунт и серверный шаг целиком, а вместе с ними и вопрос, что стало с копией вашего файла.

Автор разбирает механику и честно очерчивает границы: где локальная конвертация выигрывает, а где браузеру не хватает сил и сервер всё-таки нужен. Прочесть стоит до того, как закладывать такой инструмент в план.
DEV Community How to Convert Files in the Browser Without Uploading Them Most file-conversion workflows start with a trade-off that is easy to miss: Choose a file from your...
  • 💯 13
  • ❤ 4
  • 🔥 3
  • 👍 2
  • 🎉 2
  • ⚡ 1
  • 👏 1
  • 🤔 1
  • 🤝 1
Post #14787 7.36K

Forwarded from Точка входа в программирование

Что делать, если ключ от сервиса уехал в публичный репозиторий

Поздний вечер, код наконец заработал, git add ., коммит, пуш. Через несколько минут расход по API растёт, появляются запросы, которых вы не делали, а счёт больше ожидаемого.

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

Разбор проходит порядок действий целиком, включая удаление секрета из уже опубликованных коммитов. А чтобы не возвращаться к этому, заведите привычку: перед первым пушем нового проекта убедитесь, что .env лежит в .gitignore.

#основы
freeCodeCamp.org How to Fix a Leaked API Key: A Developer’s Guide to Git Security Imagine this: you're working late, your code finally works, and you're ready to push it to GitHub. You run: git add . git commit -m "Fix API integration" git push A few minutes later, you notice some
  • 👍 10
  • ❤ 7
  • 🔥 5
  • 🗿 4
  • 😢 3
  • 🍌 2
  • 🎉 1
  • 🌭 1
  • 🙉 1
  • 💊 1
  • 🙊 1
Post #14786 7.78K
Мне всегда было интересно, как именно происходит поиск такси с технической точки зрения. Если вам тоже, то я нашёл видео, где всё подробно объясняется.
  • 👍 78
  • 🔥 19
  • 💯 6
  • ❤‍🔥 5
  • 👏 3
  • 😁 3
  • 🎉 3
  • ❤ 2
  • 😢 1
  • 🤪 1
  • 🤷 1
Post #14785 7.21K
128 килобайт памяти, в которых каждый бит — отдельное ферритовое колечко

В европейской лаборатории Spacelab, которую возили в отсеке шаттла, стояли три французских миникомпьютера Mitra 125 MS. Память в них на магнитных сердечниках: бит хранится направлением намагниченности крошечного кольца на пересечении проводов, блок из семи плат занимает треть корпуса, а тепло уходит через плотный контакт с боковой панелью без обдува. Кен Ширрифф разобрал модуль до отдельных проводов и объяснил, почему чтение здесь стирает значение и его приходится записывать обратно.

В нашем канале «Сохранёнки программиста» разобрали подробнее.
  • 👍 8
  • 🔥 3
  • 👏 2
  • 🤝 2
  • 🤔 1
  • 🙏 1
  • 💯 1
  • 😘 1
Post #14784 7.3K
Разработчик писал свою математику, а нашёл одинаковый баг в Rust и musl

Shnatsel реализовывал fused multiply-add, операцию a*b+c с одним округлением, и обнаружил, что на субнормальных числах результат округляется не туда. Проверил стандартную библиотеку Rust: f32::mul_add ошибается так же. Проверил std::simd: то же. Проверил fmaf() в musl, libc, на которой собран Alpine: то же самое. Контрпример к первой версии его собственного патча нашла языковая модель, которую он попросил поискать ошибки.

Разница в один младший бит, около 15 частей на миллион, и только там, где FMA эмулируется программно: старые Intel без AVX2, Hygon, 32-битный ARM. Сам автор честно пишет: важно ли это на практике, он не знает, но называет риск для детерминированных симуляций, которые обязаны давать одинаковые биты на разных машинах.

Проверка занимает три hex-числа и одну строку на C; какие исправления уже влиты, а какие висят на ревью, на сайте.
  • 👍 24
  • 🔥 3
  • ⚡ 2
  • ❤ 2
  • 👏 1
  • 😍 1
  • 💯 1
  • 🆒 1
Post #14783 7.59K
Два простаивающих соединения на хост по умолчанию разгоняют хвост задержек в Go-сервисе

Каждый сервис на Go, который ходит в соседний, использует http.Transport, даже не вспоминая о нём. У MaxIdleConnsPerHost значение по умолчанию равно двум, и это самая частая ошибка конфигурации в парках микросервисов на Go.

Арифметика простая. Сервис на 500 запросах в секунду с медианой 20 мс держит около десяти одновременных соединений. Восемь закрываются после каждого запроса, и каждый следующий поход платит за рукопожатие TCP, а на TLS ещё и за проверку сертификата. Ошибок в логах нет, всё выходит наружу только хвостом времени ответа.

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

#golang
DEV Community net/http Transport Internals: Connection Pool Mechanics, Dial Contention, and Tuning for Microservice Workloads Deep dive into Go's http.Transport connection pooling, dial serialization, idle timeout races, and per-host tuning for high-throughput microservice traffic.
  • ❤ 6
  • 👏 4
  • 🙉 3
  • 💯 2
  • 🤝 2
  • 🤷‍♂ 1
  • 🤩 1
  • 🍓 1
  • 😭 1
  • 👻 1
  • 😇 1
Post #14782 7.1K
SpaceWeb в этом году стукнуло 25 — возраст, в котором самое время поностальгировать. Так и родилась идея: SpaceWeb и Типичный программист сделали анкету прямо как в школе — любимый спорт, лучший друг, обои на рабочий стол.

Между вопросами будут слайды с историей веба и компании: от диал-апа до нейросетей, а по пути встретятся аська, скайп, биткоин и прочие приветы из 2001–2026 годов. В конце заглянем в будущее, дадим промокод на услуги SpaceWeb и скажем, какой вы носитель информации!
  • 🔥 6
  • ❤ 4
  • 💅 3
  • 👍 2
  • 👏 2
  • 🌚 2
  • 💯 2
  • ⚡ 1
  • 🤔 1
  • 🙈 1
  • 🎅 1
Post #14781 7.31K
Переключение на резервный регион не доедет до вашего сервиса на Java

Инженер разобрал свой ночной инцидент, и повторить его может любой, кто ходит наружу стандартным HTTP-клиентом Java и не трогал настройки.

В 3:40 один регион начал сыпать пятисотыми примерно на 8% запросов. Дежурные перевели запись в DNS целиком на здоровый регион. Ошибки не ушли: сорок пять минут часть серверов долбилась в мёртвый регион, притом что dig показывал новый адрес через пару секунд.

Причина в самой JVM. Она не смотрит на время жизни вашей DNS-записи: у неё свой кеш и два свойства, о которых почти никто не знает, networkaddress.cache.ttl и negative.ttl. Под SecurityManager удачный ответ кешируется навсегда, без него тридцать секунд, и это тоже константа внутри JVM, а не то, что настроил ваш DNS. Правило приехало из начала двухтысячных, когда так защищались от подмены адресов в апплетах.

Проверьте оба свойства у себя, иначе узнаете о них в момент аварии. Рабочие значения: 30 секунд на удачные ответы и 10 на отрицательные. И не через -Dsun.net.inetaddr.ttl, под SecurityManager оно не работает вовсе, на чём авторы инцидента потеряли ещё двадцать минут.

#devops #java
DEV Community We Failed Over to a Healthy Region. The JVM Never Noticed — It Had Cached the DNS Answer Forever. The problem 3:40 AM. One region's load balancers started throwing 5xx at roughly 8% of...
  • 👍 10
  • ❤ 6
  • 👏 4
  • 🔥 2
  • 💯 2
  • 🤔 1
  • 💊 1
  • 😎 1
Post #14780 7.93K
CERN уходит с CentOS на Debian: последней каплей стал один флаг компилятора

Организация, которая сама сопровождала Scientific Linux и десять лет жила на CentOS, объявила на MiniDebConf, что 2200 с лишним промышленных компьютеров управления ускорителями переезжают на Debian 13 до конца 2026 года. Последней каплей инженеры назвали -march=x86-64-v2 по умолчанию в RHEL: система собирается под инструкции, которых нет у процессоров старше примерно 2009 года, и старое сертифицированное железо просто перестаёт грузиться. В CERN это назвали принудительным устареванием.

Дата-центры и вычисления экспериментов остаются на RHEL и AlmaLinux. А в Debian им не хватило инструментов для автоматической сборки пакетов и хранения нескольких версий одного пакета, это придётся собирать самим.

Проверить свой парк можно одной командой: /lib64/ld-linux-x86-64.so.2 --help | grep supported покажет, какие уровни x86-64 тянет машина. Что делать, если ниже v2, на сайте.
  • 💅 11
  • 👍 10
  • 👏 2
  • 😨 2
  • 🤝 2
  • ❤ 1
  • 🔥 1
  • 🤔 1
  • 🎉 1
  • 🙈 1
Post #14779 7.8K
Модель на 125 миллиардов параметров запустили на ноутбуке с 48 ГБ памяти

Веса Qwen3.8-Flash-Next занимают 105 ГБ на диске, и обычный загрузчик на MacBook с 48 ГБ уходил в подкачку и умирал до первого токена. Карлос Галарса написал slotstream: модель устроена как mixture of experts, на каждый токен нужны 10 экспертов из 512, поэтому инструмент держит в памяти фиксированный пул слотов и дочитывает нужных экспертов с SSD через pread.

Итог: 3,8 ГБ постоянно в памяти, около 33 ГБ на процесс, 12 токенов в секунду генерации. Плата за это: промпт на 8000 токенов обрабатывается 39 секунд, на 32 000 три минуты. Только Apple Silicon и macOS 14, API совместим с Ollama и OpenAI, так что Open WebUI подключается сразу.

Почему ленивый mmap тоже не спас и что проверить перед запуском, разобрали на сайте.
  • ❤ 19
  • 👍 9
  • 🔥 3
  • 👏 2
  • 🤔 2
  • 💯 2
  • ⚡ 1
  • 🤯 1
  • 🎉 1
  • 🕊 1
  • 😍 1
Post #14778 7.94K
OpenAI начала выпуск GPT-6 Astra: модель придёт всем на Plus, в API $10 и $50 за миллион токенов

Сегодня модель получил ограниченный круг организаций, в ближайшие дни она появится у всех подписчиков ChatGPT Plus, Pro, Business и Enterprise, в API под именем gpt-6-astra и в Amazon Bedrock. Fast-режим до 2,5 раза быстрее за двойную цену.

Главная заявка в агентных задачах: на Terminal-Bench 4.0 модель чуть впереди Claude Fable 5.1 и далеко впереди GPT-5.6 Sol, при этом задача по оценке OpenAI обходится дешевле. Не везде первая: на Humanity's Last Exam и в индексе Artificial Analysis уступает Fable 5.1 и Opus 5.

Кибербезопасность стала ограничением: модель достигла критического уровня по шкале OpenAI, во время тестов сама нашла две уязвимости нулевого дня, и релизная версия отказывается писать эксплойты, а в API задача может остановиться по решению мониторинга. Цифры, оговорки и что менять в Codex разобрали на сайте.

В нашем канале «Нейроканал» разобрали подробнее, там пишем и про другие темы, полезные для всех, кто программирует с ИИ.
  • ❤ 19
  • 👍 5
  • ⚡ 3
  • 🎉 3
  • 😁 2
  • 🔥 1
  • 🥰 1
  • 🤔 1
  • 🌭 1
  • 💔 1
  • 💊 1
Post #14777 7.66K
Файл на 21 байт роняет FFmpeg делением на ноль

Четыре нулевых байта на нужном смещении, и либа падает с делением на ноль. Ломается разборщик формата VPK, звука из игр для PS2, о котором почти никто не слышал. Безвестность и есть причина: OSS-Fuzz, гугловый сервис фаззинга, долбит FFmpeg годами, но такие углы достаются ему последними.

Фаззер, нашедший баг, собран с помощью модели: 10 часов 43 минуты и 495 211 запусков на одной машине. Оговорка важная: на обычном ffmpeg из командной строки файл не падает. Краш ловится только через собственный ввод-вывод фаззера, где данные при опознании формата и при чтении пакета расходятся и делению достаётся ноль каналов.

Такую же проверку предлагали в рассылку ffmpeg-devel почти два года назад, и до нужного пути она не доехала. В разборе ценна честность: автор выкладывает и находку, и собственное неудавшееся воспроизведение.

#безопасность #ffmpeg
DEV Community 21 Bytes Can Crash FFmpeg: Inside the Vibecoded Fuzzer That Found What Years of Audits Missed Twenty-one bytes. That is the entire attack. A file smaller than a URL, with four zero bytes sitting...
  • ❤ 9
  • 👍 6
  • 🙏 2
  • 🤝 2
  • 😎 2
  • ☃ 1
  • ❤‍🔥 1
  • 🔥 1
  • 🎉 1
  • 💋 1
  • 😨 1
Post #14776 8.07K
NGINX теперь читает тело запроса до того, как решит, куда его отправить

Классический nginx сортирует запросы как почту по адресу на конверте: смотрит на URI, выбирает location, и только потом кто-то вскрывает письмо. В NGINX 1.31.5, который вышел 2 сентября, конверт можно вскрыть раньше: директива client_body_early_read читает тело до выбора location, новый JSON-модуль кладёт поля в переменные, а location $json_method {} разводит запросы на общий /graphql или /mcp по бэкендам. Всё на C, без njs и Lua.

Ещё в открытую версию перенесли Control API из NGINX Plus: перезагрузка конфига по HTTP с ошибкой в ответе вместо чтения error.log. Аутентификации у него нет, поэтому только UNIX-сокет. Обновиться стоит и без новых фич: исправлен use-after-free в буферизованном проксировании по HTTP/2, а njs 1.0.1 закрыл обход проверки js_access. Что менять в конфиге и кому обновляться первыми, разобрали на сайте.
  • ✍ 11
  • ❤ 4
  • 👍 3
  • 👏 3
  • ⚡ 2
  • 🕊 1
  • 💯 1
  • 🤝 1
  • 🤪 1
Post #14775 7.81K
GitHub разрешил Copilot ставить approve, который засчитывается в merge-требования

С 1 сентября Copilot code review не только комментирует, но и может одобрить pull request как обычный ревьюер. Если в репозитории merge закрыт правилом «нужно одно одобрение», при включённой настройке код доедет до main без единого человека.

Настройка выключена по умолчанию и включается администратором на уровне enterprise, организации или репозитория. В репозитории можно ограничить approve списком путей: документацию и тесты Copilot одобряет, к src/auth/ не прикасается. Новый коммит снимает одобрение, как и у людей. Функция в public preview для тарифов Pro, Pro+, Max, Business и Enterprise.

Я бы прямо сегодня проверил правила защиты веток: если требуется ровно одно одобрение, а бот попал в число допустимых ревьюеров, стоит поднять планку до двух или прописать обязательного человека в CODEOWNERS. Настройки и подводные камни разобрали на сайте.
  • 🙈 11
  • ❤ 9
  • 👍 4
  • 👎 2
  • 🎉 2
  • 💯 2
  • 👏 1
  • 😱 1
  • 🕊 1
Post #14774 7.46K
Разработчик переписал 65 тысяч строк Go на Rust за $400 и говорит, что секрет в том, чтобы сначала не просить код

Юрий Красношёк, автор терминального редактора rune, переписал его с Go на Rust с помощью Claude Fable 5. Для сравнения он приводит недавний перенос Bun с Zig на Rust: 535 496 строк Zig без комментариев и $165 000 в токенах по API-тарифам по классической схеме «файл за файлом, потом чинить ошибки компилятора».

Его метод из трёх шагов: сначала попросить модель представить код как данные (граф, онтологию, иерархический конечный автомат, ограничения, формулы), потом упростить это представление, например сократить число состояний или убрать скрытые каналы связи через общую таблицу, и только затем попросить код, хоть на другом языке. Плюс совет главному агенту поменьше дёргать Grep, Glob и Edit самому и отдавать это субагентам.

Оговорка от самого автора: цифр о покрытии тестами и проценте собравшегося с первого раза кода в заметке нет, есть только счёт и метод.

Верите, что представление «код как данные» реально экономит порядок денег, или $400 объясняются размером проекта?

#обсуждение
  • ❤ 9
  • 👍 5
  • 🔥 3
  • 👏 2
  • 🙉 2
  • 🤔 1
  • 🕊 1
  • 😍 1
  • 💔 1
Post #14773 6.79K
Открытый ИИ-агент, который живёт на вашей машине и читает вашу почту по вашим правилам

OpenClaw ставится локально, подключается к мессенджерам и почте и выполняет задачи вроде «следи за письмами из школы и пересылай важное в Telegram». Провайдера модели выбираете сами: подписки ChatGPT и Claude, API-ключи, локальные модели. Вышла версия 2.0, крупнейшая в истории проекта: больше 16 000 pull request от 933 контрибьюторов, половина всех за всё время.

Плата за независимость от одной компании известна: установка и безопасность на вашей стороне. В нашем канале «Инструменты программиста» разобрали подробнее.
  • 👌 6
  • 🔥 4
  • ⚡ 2
  • 🥰 2
  • 👏 2
  • ❤ 1
Post #14772 6.81K
Трансформер на 75 млн параметров взял 44% на ARC-AGI-1 за 67 центов

ARC-AGI много лет был аргументом в спорах «умеют ли нейросети рассуждать»: тысяча задач на цветных сетках, у каждой своё правило, запомнить ответы нельзя. Исследователь Митхил Вакде обучил маленький трансформер с нуля и получил 44% на публичном eval-наборе. Полтора часа на одной RTX 5090, аренда карты обошлась примерно в $0,67.

Трюк в обучении во время теста: модель дообучается на самих задачах при скрытых ответах, а для двумерных сеток используются обучаемые 3D RoPE. Самое честное место поста: когда автор убрал обучение на входных токенах, результат вырос с 40% до 44%, и он пишет «я не понимаю почему». На ARC-2 та же модель даёт 7%.

Код открыт под MIT, эксперимент можно повторить на игровой видеокарте. Что именно измеряет бенчмарк после такого результата, обсуждаем на сайте.
  • 🔥 8
  • 🤔 4
  • 👏 2
  • 🎉 2
  • 🤓 2
  • ❤ 1
  • 👍 1
  • 👌 1
  • 🤝 1
  • 🆒 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →