80630
Всё самое интересное по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site VK: vk.com/tproger Регистрация в перечне РКН: https://tprg.ru/mJwo
Заражённый arrayref запускал чужой код на cargo build
Build-скрипт в Rust выполняется, когда вы собираете проект. Этим и воспользовались: 20 августа команде безопасности сообщили про пакет proc-macro1, чей build-скрипт тянул вредоносную нагрузку с чужого сервера. Запускать ничего не надо, хватает сборки.
В то же утро кто-то перевыпустил популярный arrayref и добавил ему зависимость на этот пакет. Обновили зависимости, сказали cargo build — и чужой код уже отработал у вас на машине. Следом досталось internment и append-only-vec того же автора. Владельца аккаунта никто не винит: похоже, увели машину или ключи.
Заражённые версии сняли за 86–107 минут. Кажется, что мало, но ночная сборка в CI попадает в такое окно легко. Загляните в ~/.cargo/registry/cache: если одна из версий там лежит, чистите кэш и пересобирайтесь, в реестре уже безопасные.
Список удалённых пакетов и готовая команда для поиска — в блоге Rust.
⚡️ Каким должен быть идеальный ИТ-работодатель
Каждый год Хабр и ЭКОПСИ проводят исследование, чтобы узнать, что действительно важно ИТ-специалистам при выборе работодателя.
По результатам прошлого года, в топ-3 факторов выбора места работы вошли:
1️⃣ Качество продуктов компании
2️⃣ Соответствие ценностям соискателя
3️⃣ Профессиональная среда
Делаем из плоского фото 3D-сцену со светом и тенями
В новом туториале Codrops Dominik Fojcik показывает, как обычное 2D-изображение начинает отбрасывать настоящие тени: без 3D-модели, одной текстурой. Берёте картинку, генерируете карту глубины и пропускаете свет через WebGPU-шейдер в Three.js.
Фишка в том, что готовые карты глубины обычно 8-битные, всего 256 градаций, и на гладких поверхностях свет ловит ступеньки. Автор же разбирает, как конвертировать карту в float, слегка размыть и сохранить в half-float, чтобы шум исчез.
Работает пока только где есть WebGPU. Пошаговый туториал на Codrops.
Разработчик заставил печатать HP Laser 1008a на macOS с помощью Claude Code
У HP Laser 1008a нет родного драйвера и AirPrint. Кубера Мехта из PolyThink это не остановило. Он взял Claude Code и за 30–40 промптов, потратив 4% месячного лимита, собрал патч к открытому драйверу SpliX.
Мехт говорит, что не разбирался в macOS-драйверах, но учился по ходу. Claude Code делал уверенные заявления, которые приходилось проверять и поправлять, и снял рутину, позволив одному человеку закрыть задачу, которая раньше требовала узкой специализации.
Разбор на The Register.
⚡️ О!Хакатон возвращается — на кону миллион
Приглашаем Go- и Python-разработчиков, аналитиков и продакт-менеджеров на тревел-тех хакатон от Островка.
Вам предстоит решить одну из двух AI-задач в сфере тревел-теха и побороться за главный приз — 1 000 000 ₽.
Присоединиться к хакатону можно из любой точки мира. Участвуйте командой до пяти человек и выбирайте один из двух треков:
✔️ «О!дин запрос». Цель для junior-специалистов — создать AI-агента для путешествий и отелей.
✔️ «О!дин шаг до идеального отеля». Задача для специалистов уровней middle и senior — «переизобрести» опыт бронирования пользователя с помощью AI и новых интерфейсных механик.
📎 Регистрация открыта до 16 октября 2026 года. Стартуем 23 октября.
Скорее присоединяйтесь по ссылке!
— Зачем ты залил код сразу в прод?
— Кто я такой, чтобы идти против божественных методов?
— Ты уволен.
Куда прятать ключи API, когда работает ИИ-ассистент
API-ключ, по сути пароль к сервису, который часто лежит в файле .env, а ИИ-ассистент читает его, чтобы запустить ваш проект. Проблема в том, что ключ попадает в окно диалога: ассистент может случайно вывести его в лог или выполнить чужую инструкцию из стороннего файла.
Автор статьи предлагает выход: не давать ассистенту ключи напрямую. Храните их в менеджере секретов, передавайте через прокси, который подставляет ключ сам, или запускайте команды так, чтобы значение оставалось за пределами контекста. Разбор на dev.to поможет понять, как устроить это на своём первом проекте.
Модель, которая помещается в 14 МБ вместе с весами
Вызов функции по фразе человека обычно уезжает в облако или тянет локальную модель на сотни мегабайт. Cactus Compute выложила под MIT Needle 2: модель на 45 миллионов параметров, которая может делать это и на телефоне и в умном доме, а заодно вынимает из текста структуру по схеме.
Веса вшиты в движок, бинарник занимает 14 МБ, сессия держится в пределах 28 МБ оперативки и не растёт с длиной разговора: контекст обрезан окном в 256 токенов, описания функций закреплены в нём как якоря. На бенчмарках авторов идёт вровень с FunctionGemma 270M, будучи в несколько раз меньше.
Схемы функций компилируются в грамматику, ограничивающую каждый токен, поэтому ответ приходит структурой, а не текстом под парсинг. Ставится через pip install cactus-needle, а посмотреть без установки можно в браузерной песочнице, там же кнопка дообучения.
#ии #опенсорс
Mojo добрался до 1.0 и зафиксировал синтаксис
В ветке 1.x обещают в основном аддитивные изменения. Ломающие правки останутся возможны, но проводить их будут по правилам взрослых языков вроде C++. Modular понимает, что язык менялся слишком часто, и сообществу было тяжело вести на нём долгие проекты.
Заодно закончили чистку. Где было несколько способов сказать одно и то же, оставили один: переменные объявляются только через var, замыкания унифицированы, тип указателя ровно один. Появилась диагностика, которая ловит момент, когда List.append перевыделяет память и ссылка внутрь списка становится недействительной.
Пока открыта только стандартная библиотека, куда пришли почти 200 контрибьюторов с 1 100 пул-реквестами. Исходники компилятора и тулчейна закрыты, пользоваться можно, но чинить или форкать сам компилятор может только Modular. Открыть его обещают в 2026 году, то есть срок истекает через несколько месяцев, и следить я бы стал именно за этим.
Пробовали этот язык в деле? Как вам?
#mojo
GPU необязательно покупать — его можно арендовать
Топовая карта стоит как подержанная машина, а без неё модели от 70B не запустить. При этом мощность часто нужна не постоянно: протестировать гипотезу или закрыть пик нагрузки можно арендованными ресурсами.
Собрали 6 сервисов аренды GPU для инференса моделей: облака с посекундной тарификацией и managed-платформы с оплатой за токены. Разобрались, какие видеокарты доступны, сравнили по ключевым показателям и тарифам.
Пригодится всем, кто хочет потестировать модель, но пока не готов вложиться в железо.
https://tproger.ru/digest/gde-arendovat-gpu-dlya-inferensa-modelej-5-servisov
Хомяку дали Strava Premium, и он закрыл августовский челлендж на второй день
Физик из Утрехта хотел узнать, сколько наматывает за ночь его хомяк Молли, и начал с дешёвого велокомпьютера: там тоже магнит и датчик. Не сработало: велокомпьютер уходил в спящий режим, если колесо стояло дольше пяти минут, а Молли регулярно отлучается попить.
Итоговая сборка проще, чем кажется. Магнит на колесе проходит мимо датчика Холла, тот считает обороты, ESP32 копит данные за ночь. Утром скрипт на ноутбуке собирает их в файл формата Strava и заливает через её API. Сверху навесили экранчик со скоростью в реальном времени, автоматический учёт рекордов и больше сотни вариантов названий забега.
Результаты: почти 10 километров за ночь, рекорд 10,8 километра, старт пять ночей из семи в одно и то же десятиминутное окно. Автоматическая загрузка потребовала платного тарифа, поэтому Premium у хомяка теперь тоже есть.
Автор сам бегает и ждёт двадцатой пробежки Молли: после неё Strava начнёт прогнозировать время на 5 километров и марафон. Говорит, что немного опасается сравнения.
#новости #кек
Наверное, в каждом втором резюме среди навыков есть «системное мышление». С ним не рождаются, ему учатся в процессе работы, с накоплением опыта. Оно помогает видеть картину целиком и структурировать всё, что вы делаете.
Сейчас у этого навыка появилось новое применение: с появлением ИИ-агентов умение поставить задачу и проверить результат стало ещё важнее. И ему можно научиться.
Какие ошибки часто совершают разработчики, стараясь мыслить системно, и что с этим можно сделать, читайте в статье: https://tproger.ru/articles/sistemnoe-mywlenie-dlya-razrabotchika-owibki-kotorye-vy-delaete
Last call для тех, кто давно тянет с запуском своего проекта
Онлайн-магистратура МФТИ+Сколково «Технологическое предпринимательство» закрывает приём заявлений 14 августа.
TL;DR: 2 года, полностью онлайн, 8–12 часов в неделю, реальный проект с ментором, диплом МФТИ гособразца. Средний возраст студентов — 34 года.
Посмотреть лендинг программы: https://tprg.ru/Id4i
Задать вопросы и записаться на бесплатный разбор вашего проекта: Юлия @BelousovaYV.
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 #хранилища
Агент просит разрешить 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%.
#ии #безопасность
Водяной знак Claude: как статистика выдаёт машинный текст
Если вы гоняете через Claude черновики, переводы или правки, знайте: в сгенерированных текстах новых моделей появится скрытый след. Не невидимые символы, а смещение выбора между близкими по смыслу словами по секретному ключу.
Anthropic объяснила: на «равноправных» шагах модель получает лёгкий толчок к одним кандидатам и от других. Отдельный выбор незаметен, но на дистанции складывается в узнаваемую подпись, которую проверит только сама компания.
Спорная деталь — асимметрия: вы не убедитесь, что текст чист, а вот Anthropic может. Переводы и переписывания проходят через Claude целиком, поэтому маркируются сильнее. Если пишете важный текст, берите черновик у Claude и переписывайте своими словами.
Он не был в отпуске с того самого релиза, который «вот-вот стабилизируется». Пришло время отправить Типичного Программиста в отпуск!
В новой мини-игре нужно откопать разработчика, найти билет, сложить чемодан и подобрать гардероб, в котором не три одинаковые чёрные футболки. Спойлер: он всё равно попытается запихнуть ноутбук в чемодан. Ваша задача — чтобы шорты тоже влезли. Найдите все пасхалки от партнёров и помогите разрабу уйти в отпуск со спокойной душой!
Играть → https://tprg.ru/fbmY
Вы уже заметили, что сайты банков и контрагентов стали открываться с предупреждением «Подключение не защищено»?
Дело в том, что GlobalSign отзывает SSL-сертификаты у российских компаний, и те переходят на сертификаты Национального удостоверяющего центра Минцифры (НУЦ). Chrome, Safari, Firefox и Edge таким сертификатам не доверяют — и сайты перестают открываться. Под ударом платежи, ЭДО и закупки на госплощадках.
Решение есть — Яндекс Браузер для организаций. Он поддерживает все нужные сертификаты безопасности, поэтому сайты открываются в нём без ошибок.
Почему str.lower() иногда ломает проверку имён доменов
Регистр символа в Python зависит от версии Unicode интерпретатора. Сейчас unicodedata.unidata_version — 17.0.0, а протокол подготовки строк stringprep, который лежит в основе международных доменных имён, зафиксирован на Unicode 3.2.
Поэтому str.lower() и str.encode('idna') в разных версиях Python могут считать разные строки одинаковыми. В обычном коде это проходит незамеченным, а в проверке доменов или авторизации получается обход валидации.
В контексте безопасности не зовите str.lower() напрямую. Берите пакет idna: он реализует стандарт IDNA 2008 и не использует встроенные таблицы Unicode.
Seth Larson разбирает уязвимость и показывает, как это выглядит на практике.
Обычный Wi-Fi превратили в камеру
Исследователи показали, что по сигналу обычного Wi-Fi можно строить изображения находящихся рядом людей и их окружения. Без специального оборудования — достаточно стандартной Wi-Fi-сети и алгоритмов обработки отражённого сигнала.
Технология ещё в стадии исследований, но сам факт, что для этого хватает домашнего роутера, уже меняет ощущение приватности.
Пока это лабораторный результат, а не функция в вашем роутере. Но контур понятен: железо умеет больше, чем разрешено и как от этого обезопасить себя, пока непонятно. Подробнее в материале Slashdot.
15 MCP-серверов, которые подключают ИИ к вашим инструментам
ИИ-агент может написать код, но без связи с реальными системами он работает вслепую: не видит ваш репозиторий, не читает дизайн и не проверяет ошибки в проде. В обзоре LogRocket собрали 15 серверов: GitHub для кода и пулреквестов, Figma для перевода дизайна в код, Sentry для отладки, Playwright для браузерных тестов, плюс облачные сервисы вроде AWS, Cloudflare и Netlify.
Полный список с примерами — хорошая старт для начала любого проекта.
Как OpenClaw прошёл проверку на прочность среди 50 опенсорс-проектов
Когда репозиторий растёт быстрее всех на GitHub, к нему приходят и хорошие контрибьюторы, и странные PR, и новые атаки. Поддерживать безопасность в таком темпе, всё равно что собирать самолёт во время полёта.
OpenClaw взяли в четвёртую сессию GitHub Secure Open Source Fund: 50 проектов, 71 мейнтейнер, 22 страны и больше $500 тысяч поддержки. За сессию команда написала план реагирования на инциденты, пересмотрела GitHub Actions и внедрила secret scanning, code scanning, Dependabot и приватные репорты уязвимостей.
Разбор, как это устроено, — в статье на GitHub Blog: цифры, методы и чему научились мейнтейнеры.
Почему учиться в IT стало сложнее?
Вайбкодинг создал иллюзию, что теперь любой может сделать продукт быстро и легко, всего лишь с парой подписок.
Работает это не так: необходимость разбираться в том, как всё устроено, применять знания и читать код никуда не делась.
Разбор задачи, на который раньше уходил месяц, теперь укладывается в десять минут. Именно за этот месяц набирался опыт, а теперь без хорошей базы почти невозможно оценить то, что модель выдала за минуты.
Почему разбираться теперь приходится глубже и быстрее, и что с этим делать — читайте на Tproger: https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding
Карьерный потолок не щадит никого: время идёт, таски закрываются, приходит скука и предел. Можно ли вырваться из «Матрицы»?
https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu
Почему хорошие идеи так и остаются в заметках?
«Инициатива наказуема» — знакомое выражение? Промолчал, ничего не сделал: не накажут. Предложил и ошибся: накажут почти наверняка.
Например, некоторые компании переняли у Toyota контроль качества, только наоборот. У японцев за найденный брак поощряли, а в других компаниях стали наказывать. Так и пропадает желание что-то предлагать.
В новом материале на Tproger разбираем три ловушки, которые убивают инициативу внутри компании.
https://tproger.ru/articles/chto-mewaet-zapustit-novye-produkty-vnutri-kompanii
Код никогда не был сложной частью
Этот тезис, который недавно назвали оскорблением профессии, звучит на каждой второй конференции. Мол, модели уже неплохо пишут код, куда сложнее понять, что именно писать.
С каждым днём с этим всё сложнее не согласиться. Посмотрите сами, сколько времени у вас сегодня уходит на набор кода, а сколько на выяснение, чего хочет бизнес, на согласования и на разбор чужих решений трёхлетней давности?
Похоже, дальше будет только хуже. Неужели та часть работы, где руки на клавиатуре, будет и дальше дешеветь, а ценность переедет в постановку задачи, продумывание ТЗ для агентов и проверку результата?
Если считаете, что это чушь, приглашаю вас в комментарии.
#обсуждение
Готовы отдать гигабайт оперативки за прогноз погоды?
Столько занимает встроенная «Погода» в Windows 11, а если полистать и позумить, аппетит доходит до 1,6 ГБ. На ноутбуке с 8 ГБ это пятая часть памяти за информацию о том, что завтра дождь.
Разгадка кроется в диспетчере задач: там висит пачка процессов Chromium. По факту «Погода» не нативное приложение, а веб-страница MSN, завёрнутая в WebView2.
Для сравнения, та же «Погода» на macOS укладывается в 250 МБ.
Загляните в диспетчер: внутри половины «лёгких» системных приложений сегодня обнаружится целый браузер. Видимо, такова цена экономии: один веб-код и на сайт, и в приложение.
#кек
В ящике вашего стола лежит сервер, за который вы уже заплатили
Возьмём характеристики не очень старого смартфона: восемь ARM-ядер, 8 ГБ памяти, 128 ГБ флеша, свой модем и аккумулятор, работающий как ИБП без всякого ИБП. За VPS с такими параметрами вы бы платили ежемесячно, а этот уже оплачен и пылится. Особенно обидно сейчас, когда память подорожала и собирать мини-ПК под пет-проекты откровенно невыгодно.
Один разработчик решил пойти по пути осознанного потребления и приспособил свой Android-смартфон под серверные задачи.
В материале он рассказывает:
— как уговорил систему, вся суть которой в засыпании, не спать сутками;
— чем заменил systemd;
— как гоняет обычные Linux-образы без Docker.
Кстати, всё получилось. VPS отключён, а сервисы переехали на телефон.
Кто-нибудь уже пробовал так?
#devops #diy
Чему учиться взрослому профессионалу?
Свою работу трудно оценить со стороны. Каждый день смотришь на неё одинаково и не замечаешь того же, чего не замечал вчера. Тут выручают чужие модели: короткая формулировка переворачивает привычную картину, и становится понятно, чего не хватало.
Кажется, что хороший результат говорит сам за себя. Но код, о котором никто не узнал, карьеру не двигает. Кажется, что учится тот, кто проходит курс. А по-настоящему разбирается тот, кто объясняет материал другому.
В новом материале на Tproger собрали семь таких моделей. Они помогают увидеть свою работу как систему и понять, куда двигаться дальше.
https://tproger.ru/articles/kak-ponyat-chemu-uchitsya-vzroslomu-7-modelej-dlya-professionaln
«Если вы пришли воровать мои данные — начните отсюда»
Так начинается отчёт человека, который год воевал со скраперами и в итоге выложил все свои правила фаервола целиком. Сайт у него на 1,5 млн страниц, аналитика показывала уютные 6 тысяч просмотров в неделю. Сервер за ту же неделю отдал 1,28 миллиона страниц.
Разбираясь, кто это всё читает, он нашёл метрику, которая экономит все дальнейшие споры: сколько страниц краулер прочитал на одного приведённого посетителя. Google свои визиты отрабатывает. У поискового бота Claude соотношение оказалось 35 000 к 1 — 420 680 страниц за неделю и 12 живых человек. Он его заблокировал, и бот послушно ушёл с 60 тысяч запросов в день до 25 попыток: вежливые краулеры действительно уважают 403.
Дальше выяснилось главное: ботов бесполезно ловить по поведению, надо сортировать по происхождению. Люди не ходят на сайт из дата-центра AWS и не сидят в Chrome 118 из 2023 года, вмороженном в чей-то скрейпинг-тулкит. Два таких правила выкосили больше, чем год возни с капчей — её, кстати, решают 0,24% ботов, остальные даже не пробуют.
Но хуже другое: год он не видел собственную аудиторию — реальные читатели просто утонули в шуме, и он не понимал, что писать дальше.
Загляните в логи, если давно не заглядывали. Сколько у вас там ботов на одного человека?
#веб