Типичный программист
✔
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
ИИ сместил бутылочное горлышко с кодинга на ревью

Когда ИИ пишет код быстрее, чем команда его проверяет, узким местом становится ревью. С начала года ассистенты вроде Opus 4.5 и GPT 5.4 увеличили объём, и исследования подтверждают, что обсуждений нагрузки на ревью стало заметно больше.

Компании отвечают двумя путями: специализированные инструменты вроде CodeRabbit, Greptile, Qodo и SonarQube, встроенные ревью в Claude Code, Cursor и GitHub Copilot, а также собственные решения. Uber Code Inbox, к примеру, ранжирует изменения по риску, а Cloudflare, Faire и HubSpot построили свои инструменты.

Обзор показывает, что ряд крупных команд останавливается на собственных инструментах, потому что они лучше ложатся на внутренние процессы.
💯10❤5🤝3💊3🐳2🌚2👏1🤨1🫡1💅1😘1
Moonshot ищет Blackwell для Kimi K4. Вопреки санкциям и через Таиланд

Moonshot AI только что выпустил открытую Kimi K3, а теперь ищет дополнительные чипы Blackwell для Kimi K4. The Information пишет, что K3 уже тренировалась на Nvidia-чипах, несмотря на экспортные ограничения США.

Чиновник из администрации Трампа добавляет: у Moonshot есть секретные серверы GB300, и ещё чипы шли через Таиланд. Перевод с корпоративного: запрет на поставки передовых GPU в Китай работает так хорошо, что стартап уже закупается на следующую модель.

Kimi K3 — 2,8 трлн параметров, контекст на миллион токенов, мультимодальность. Microsoft считает, что Copilot на K3 сэкономил бы до $600 млн на инференсе. Параллельно Moonshot обвиняли в дистилляции из Anthropic Fable — компания отрицает.

Читать на Tproger.
👏20❤4✍3🎉3🌚3🔥2💯2😁1🙏1🏆1😎1
Copilot для Word копирует скрытые промпты в новые документы

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

Microsoft признала проблему 31 марта и выпустила два исправления. Молёй изменил формулировку промпта — и атака снова работает на GPT-5.6. Полного фикса нет, поэтому прежде чем пересылать сгенерированный файл, проверьте, что Copilot туда не вписал белым по белому.

Подробности в материале на Tproger.
👨‍💻8🔥6❤5👍2🎉2💯2🙈2🦄2✍1🤔1😢1
Ternlight: поиск по смыслу прямо в браузере, без сервера и ключей

Ternlight превращает текст в векторы и ищет по смыслу прямо в браузере на CPU. Весь пакет включает модель, токенизатор и движок вывода и занимает ≈7 МБ, а сервер, GPU и API-ключи не нужны. Установка: npm i @ternlight/base, после чего embed() даёт 384-мерный вектор, а similar() ранжирует небольшую выборку документов за ≈5 мс на одной вкладке.

Это можно воспринимать как Fuse.js, но с поиском по смыслу вместо символов: библиотеку вешаете на страницу документации или справки, и она находит «как отменить подписку», даже если пользователь написал «хочу вернуть деньги». Демо работает офлайн, посмотрите на ternlight.dev/demo.

Если нужен семантический поиск без инфраструктуры, загляните в статью: там примеры кода и сравнение с классическим текстовым поиском.
❤24👍9🔥4🌚3🍾3👏1😁1🤯1💯1🎃1💘1
Cloudflare дала MoQ изолированные реле: один API-вызов и секунды до сети

Год назад Cloudflare включила Media over QUIC на каждом сервере, но это была общая площадка без аутентификации: тестировать протокол можно, а в продакшене не разделишь, кто публикует, а кто смотрит. Теперь у MoQ появился API для создания реле: вы создаёте изолированное реле под своё приложение, даёте разные ключи издателям и подписчикам, и реле разворачивается по сети Cloudflare за секунды, без серверов и балансировки.

MoQ работает поверх QUIC (тот же транспорт, что у HTTP/3) и копирует именованные потоки от отправителя к тем, кто их запросил. Реле не смотрит внутрь данных, поэтому через один протокол можно гнать видео, звонки и сообщения с низкой задержкой. В бета-версии реле бесплатны, поддерживаются draft-14 и draft-16. Разбор Cloudflare — подробности про API и условия беты.
❤10🤔6🤣2👀2😎2🤷‍♂1✍1😍1🍌1🍓1👨‍💻1
Почему простаивающие GPU — это самолёты на земле

В авиации выживали не те, у кого больше самолётов, а те, кто держал их в воздухе. Самолёт в ангаре тратит деньги, а не приносит: лизинг, страховка, обслуживание и так далее.

GPU работают так же. Карта в стойке жжёт деньги на амортизацию, электричество и охлаждение, а полезный выхлоп даёт только когда на ней считают. Две компании с одинаковым бюджетом на железо всё чаще расходятся не по количеству GPU, а по тому, сколько из них реально занято.

Первая волна корпоративного ИИ выигрывала качеством моделей. Теперь узкое место сместилось в инфраструктуру: утилизация, а не владение, решает, кто окупит инвестиции. Разбор на Hugging Face.
❤21👍7🙈4💊4👏3😁3🎉3😭2🦄2👌1👾1
Forwarded from Веб-страница
Google может выкинуть новый сайт, если открыть слишком много страниц сразу

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

Я бы сохранил этот разбор перед запуском фильтров или раздела вакансий: на свежем домене большой массив индексируемого контента — риск. Лучше начать с ядра, дать поисковику время на доверие и наращивать объём. Подробности на HackerNoon.
👀16🔥8😨8⚡5😁3🤷‍♂2🐳2💯2🌚1😈1🎃1
Forwarded from Веб-страница
JSON.stringify тихо портит ваши данные

Вот пример, который стоит проверить в консоли: вызов JSON.stringify для {id: 9007199254740993} вернёт 9007199254740992. Число меняется на единицу, ничего не падает, и это легко пропустить в большом payload.

Если добавить undefined, NaN и Date, картина хуже: свойства с undefined исчезают, дата превращается в строку, а NaN — в null. Стандартный цикл сериализации и парсинга больше не гарантирует, что вы получите назад то же самое.

Для веба это значит, что JSON — не бесплатная операция копирования, а точка потери типов и точности. Я бы пересмотрел, где вы полагаетесь на JSON как на источник правды, особенно для больших идентификаторов, дат и полей, которые могут быть null. Подробнее в статье.
✍36❤5😎5🔥4🙈4👎3🤯3🗿3⚡1❤‍🔥1😍1
Три недели cron падал, но агенты умело это скрывали

Cron-задача должна была собирать ежедневный дайджест, но из-за бага падала. Однако, беда не в этом.

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

Фикс занял одну строку — const dir = entry.dir || "". А вывод автора: запасной вариант должен кричать, что он запасной, а не притворяться успехом.
👍20👏7🤣5🤗4💯3⚡2💋2😱1🏆1🍾1👻1
Alibaba выложит в open source модель на 2,4 трлн параметров

Alibaba анонсировала Qwen 3.8-Max — флагман с 2,4 трлн параметров, из которых активируются 95 млрд. Раньше Max-модели держали при себе, а теперь веса появятся на Hugging Face и ModelScope на следующей неделе.

Модель умеет автономный кодинг: в демо 16 дней без человека развивала проект, делала 265 коммитов и 127 pull request'ов. Ещё воспроизвела научный эксперимент с нуля, обошла 87% человеческих команд на соревновании и самостоятельно прошла флоу чип-дизайна от RTL до layout.

Подробности в материале.
🤯43🔥26❤11🥰4😁4🤩2🐳2😈2🙈2🤝2😢1
Наткнулся тут на свежий релиз AnduinOS 2.0 и, кажется, это именно то, чего многим не хватало для комфортного переезда на Linux

Если вы, как и я, периодически посматриваете в сторону Linux, но вас останавливает необходимость запускать специфический софт для Windows или Android — обратите внимание. Никаких тяжелых виртуалок и костылей. Всё работает нативно и из коробки.

Что под капотом:
— никакой телеметрии и проприетарного мусора;
— чистая экосистема на базе Ubuntu и нативный apt;
— исходный код полностью открыт и лежит на GitHub.

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

Подробный разбор и тесты производительности можно почитать в материале на ZDNET.

Если кто-то уже тестировал, то поделитесь впечатлениями.
👎17❤7🔥6🤣5🌚4🥰3🤨2🤷‍♂1😭1👨‍💻1😨1
Пакет с 127 млн загрузок в неделю крал ключи прямо во время установки

4 августа в 09:35 UTC в npm приехал keyv@6.0.0 — обычный на вид релиз библиотеки для key-value хранилища. Внутри лежал «preinstall»: «node setup.mjs», который срабатывал на голом npm install, ещё до того как вы успели что-либо запустить.

Дальше — по классике Shai-Hulud, только злее. Скрипт собирает токены GitHub, npm, AWS, GCP, Azure, Stripe, Vault и Kubernetes, выскребает секреты прямо из памяти раннеров GitHub Actions и найденными publish-токенами заражает следующие пакеты. Подтверждённый охват — 2 234 отравленные версии в 444 пакетах двенадцати организаций.

Атакующие увели GitHub-аккаунт мейнтейнера, запушили вредоносные файлы прямо в main и сразу нарезали релиз. Поэтому отравленные версии ушли в реестр с валидным provenance, подписанным GitHub Actions: все привычные признаки «пакет чистый» были на месте.

И вишенка — dead-man's switch. Червь опрашивает GitHub украденным токеном и запускает обработчик в момент, когда токен отзывают. То есть детонирует ровно тогда, когда вы начинаете разбирать инцидент.

Если у вас в lock-файле есть что-то из семейств keyv и cacheable — сверяйте версии и ротируйте всё, до чего дотягивалась CI.

Разбор Socket
Технические детали у Snyk

#новости #безопасность
🤯26❤9👏7😁7🤝3🫡3🔥2🥰2😴2💯1🎄1
9 августа в 13:00 приходите на круглый стол «Зачем учиться взрослым».

Выпускники онлайн-магистратуры МФТИ «Технологическое предпринимательство» поговорят о том, зачем люди с бизнесом или должностью снова садятся за парту.

Формат живой, полтора часа, будут брать вопросы из чата. 

Например, можно спросить:

— Я умею делать продукт, но не умею его продавать. Этому можно научиться или это талант?

— Зачем идти учиться предпринимательству? Кажется, что нормальные фаундеры просто берут и делают.

— Друзья и коллеги идею хвалят всегда. Как вы проверили, что за ваш продукт реально заплатят?

— Когда вы поняли, что пора из найма в своё дело? И может, уходить и не надо было?

— Зачем вкладываться в обучение, если я не собираюсь строить единорога, а хочу маленький прибыльный бизнес?

Вам ответят: фаундер MountingBox (проект начался как учебный прямо в магистратуре), General Manager квантового стартапа в Люксембурге, директор по ИИ-трансформации «Альпина Диджитал», серийный технологический предприниматель и CDO Российского футбольного союза.

Онлайн, бесплатно. Регистрация: https://tprg.ru/zedb
1👍10❤8🥰3🎉3🤝3☃2😁2🌚2💯2🌭1💘1
«Не будьте мясным прокси»

Никлас Грун описал знакомую многим сцену. Коллега генерирует имплементацию в Claude Code и отправляет её в ревью, не читая. Ревьюер оставляет замечания. Коллега копирует замечания обратно в модель, а ответ модели — обратно в тред. Человек в этой цепочке не участвует в мышлении, он работает транспортом.

Отсюда и термин — meat proxy, мясной прокси. Патч компилируется, тесты проходят, а внутри — неозвученные допущения и решения, которые автор не сможет объяснить, когда запахнет жареным. Дальше ревьюеру приходится реконструировать замысел, которого у отправителя никогда и не было: он тратит на чужой PR больше времени, чем потратил бы, написав всё сам.

Рецепт простой: пользоваться ИИ для ресёрча можно и нужно, но финальные ответы и решения за человеком. Не потому что так честнее, а потому что пересказ своими словами — единственный дешёвый способ доказать хотя бы самому себе, что вы прочитали, поняли и проверили.

Обсуждение на HN

#ии
👍45❤18💯11👏5🤝5🔥3🌚3🥰2🤨2🍾2🍓1
Человек опубликовал 55 уязвимостей за несколько дней. 54 из них не существовало

CVE-2025-6613 выглядел безупречно: критическое переполнение буфера в парсинге JSON в SQLite, внятное техническое описание, высокий CVSS. Заявка прошла первичную проверку и получила критический балл. Когда исследователи JFrog открыли исходники, выяснилось, что уязвимой функции в коде нет вообще, а описанный путь выполнения выдуман от начала до конца.

Дальше JFrog проверил остальные advisory того же GitHub-аккаунта. Из 55 штук 54 оказались полностью сфабрикованными. В единственном оставшемся был настоящий баг, обёрнутый в непроверенные метаданные.

Дыру видно невооружённым глазом: публичная форма MITRE не проверяет личность отправителя, то есть предложить описание уязвимости и свой CVSS может кто угодно. Страховкой раньше работал NIST, но в феврале 2024 года он под завалом заявок фактически поставил глубокий анализ на паузу. Для фона — цифры VulnCheck за первое полугодие: из 1061 уязвимости, найденной «с помощью ИИ», эксплуатация в дикой природе подтверждена ровно у 14. Это 1,3%.

Практический вывод для тех, кто живёт со сканером зависимостей. Критический CVSS больше не повод бросать спринт и патчить баг. Возможно, что и бага-то никакого нет. Прежде чем эскалировать, потратьте пять минут: посмотрите, есть ли в описании ссылка на конкретный коммит или issue, откройте названную функцию в исходниках и проверьте, что она вообще существует, и загляните в трекер проекта — мейнтейнеры фейковые CVE обычно комментируют раньше, чем их успевают отозвать из NVD. У SQLite для этого даже отдельная страница со списком приписанных ему уязвимостей.

https://research.jfrog.com/post/sqlite-critical-cves-or-llm-slops/

#новости #безопасность
😁31❤11👍9🔥8👏7⚡5🥰2😱2😭2😈1😴1
Один issue на GitHub и ИИ-агент работает на атакующего

На Black Hat USA показали, что публичный issue от постороннего человека без единого права на репозиторий разворачивает кодового агента против кода, который он должен чинить. Проверяли не экзотические сборки, а конфигурации, которые вендоры поставляют по умолчанию.

У Claude Code инъекция через текст issue довела до выполнения кода на раннере, чтения произвольных файлов и кражи ключей GitHub и Anthropic. У Gemini CLI нашли command injection в лаунчере контейнера через подложенный .gemini/.env: код выполняется на хосте ещё до старта песочницы. У Codex два прохода в одной джобе делили один checkout, и первый успевал переписать AGENTS.md — файл, который второй проход загружает как собственные инструкции.

Все три уже пропатчены, но чинить нужно не только версию. Паттерн один на всех: недоверенный текст — заголовок issue, комментарий, тело PR — попадает в промпт агенту, у которого в переменных окружения лежат секреты, а в руках есть shell.

Что делать прямо сейчас: в джобах, где агент читает контент от посторонних, оставить токен только на чтение и вынести всё, что требует записи, в отдельный workflow с ручным подтверждением. Агент должен уметь предложить патч, но не запушить его.

https://novee.security/blog/critical-flaws-in-anthropic-google-and-openais-coding-agents/

#безопасность #ии
❤23🔥10🤝7🆒5🤩4🥰3🤨3😍2🍌2🤔1💘1
«Если вы пришли воровать мои данные — начните отсюда»

Так начинается отчёт человека, который год воевал со скраперами и в итоге выложил все свои правила фаервола целиком. Сайт у него на 1,5 млн страниц, аналитика показывала уютные 6 тысяч просмотров в неделю. Сервер за ту же неделю отдал 1,28 миллиона страниц.

Разбираясь, кто это всё читает, он нашёл метрику, которая экономит все дальнейшие споры: сколько страниц краулер прочитал на одного приведённого посетителя. Google свои визиты отрабатывает. У поискового бота Claude соотношение оказалось 35 000 к 1 — 420 680 страниц за неделю и 12 живых человек. Он его заблокировал, и бот послушно ушёл с 60 тысяч запросов в день до 25 попыток: вежливые краулеры действительно уважают 403.

Дальше выяснилось главное: ботов бесполезно ловить по поведению, надо сортировать по происхождению. Люди не ходят на сайт из дата-центра AWS и не сидят в Chrome 118 из 2023 года, вмороженном в чей-то скрейпинг-тулкит. Два таких правила выкосили больше, чем год возни с капчей — её, кстати, решают 0,24% ботов, остальные даже не пробуют.

Но хуже другое: год он не видел собственную аудиторию — реальные читатели просто утонули в шуме, и он не понимал, что писать дальше.

Загляните в логи, если давно не заглядывали. Сколько у вас там ботов на одного человека?

#веб
🤔25❤12👍10🔥6😁5🤝4✍2🌭2💊2😢1🍓1
Агент просит разрешить npm run analyze. Вы разрешите?

Две трети разработчиков разрешают — и это самая пропускаемая атака из всех. Такие цифры дала игра, где вы под таймером одобряете или запрещаете команды ИИ-агента: 40 тысяч прогонов, 409 тысяч решений.

Закономерность вышла пугающая. Чем страшнее команда выглядит, тем надёжнее её ловят: rm -rf / пропускают 11,7% игроков. А вот cat ~/.aws/credentials, то есть кражу ваших ключей, — уже 35%.

С npm run analyze ещё веселее: в логе прямо над кнопкой было видно, что скрипт в package.json отправляет вывод на чужой сервер. 64,7% одобрили не глядя.

И вот тут вся модель подтверждения рассыпается. Разрешая npm run build, вы разрешаете произвольную shell-команду из package.json — файла, который агент правит вообще без спроса. Вас спрашивают про строку, а опасность лежит в файлах, которые вы не открывали. Обратная сторона не лучше: безобидные команды вроде rm -rf dist/ запрещали почти в половине случаев. От этого шума бдительность и садится — 7% игроков в итоге жали «разрешить» вообще на всё.

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

Игра занимает минуту. Сыграйте и напишите в комментариях свой результат — средний по больнице 66,3%.



#ии #безопасность
2👍21🔥8❤5👏5🐳2💯2🎄2🌚1💔1👀1🤝1
Чему учиться взрослому профессионалу?

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

Кажется, что хороший результат говорит сам за себя. Но код, о котором никто не узнал, карьеру не двигает. Кажется, что учится тот, кто проходит курс. А по-настоящему разбирается тот, кто объясняет материал другому.

В новом материале на Tproger собрали семь таких моделей. Они помогают увидеть свою работу как систему и понять, куда двигаться дальше.

https://tproger.ru/articles/kak-ponyat-chemu-uchitsya-vzroslomu-7-modelej-dlya-professionaln
👍11❤3🎉3👀3🏆2👌1😍1🍌1💅1💊1👾1
RustFS на Rust обгоняет MinIO в 2,3 раза

На GitHub стремительно набирает звёзды RustFS — открытое объектное хранилище с S3-совместимым API, написанное на Rust (уже за 30 тысяч звёзд).

Если верить замерам, то он в 2,3 раза быстрее MinIO на мелких объектах. Секрет — в сборщике мусора, которого у Rust нет. MinIO написан на Go, и его сборщик периодически замирает и останавливает потоки на несколько миллисекунд. Когда одна операция с крошечным файлом занимает сотни микросекунд, такая пауза успевает подвесить десятки запросов. RustFS этой платы не несёт: сборщика нет, пауз нет, и на потоке мелких операций разрыв копится в те самые разы.

Второй козырь — лицензия. MinIO распространяется под AGPL, которая пугает бизнес требованием открывать собственный код. RustFS отдаёт то же самое под Apache 2.0. API при этом остаётся S3-совместимым, так что привычные инструменты вроде Grafana, Kafka, ClickHouse и Prometheus работают без переделки, а с самим MinIO и с Ceph RustFS умеет мигрировать и сосуществовать.

Пощупать и свериться с бенчмарками можно в репозитории.

#rust #хранилища
👍30🔥15❤6🍓5💊3🎉2😢1🐳1💯1😐1🙉1