80631
Всё самое интересное по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site VK: vk.com/tproger Регистрация в перечне РКН: https://tprg.ru/mJwo
GitHub запустил нативные Stacked PRs — альтернатива Graphite
Если ваши пулл-реквесты разрастаются до 2000 строк и ревьюеры тонут в диффе — у GitHub теперь есть родной способ разбить большую задачу на стэк маленьких PR. Stacked PRs пока в Private Preview, но CLI-клиент gh stack уже опубликован (правда, работает только если вас пустили в preview).
Stacked PR — это цепочка пулл-реквестов, где каждый нацелен не на main, а на ветку PR ниже. Вместо одного огромного реквеста с пятью разными по смыслу изменениями вы делаете пять маленьких, которые читаются независимо и строятся один на другом.
Раньше стэки делали сторонними инструментами: облачный Graphite, консольные ghstack от Meta или spr. Все они симулировали стэки поверх обычного GitHub и ломались на ребейзах, merge queue и branch protection. Нативная реализация разобрали на Tproger — теперь можно не объяснять джунам, почему у команды три CLI для одного пулл-реквеста.
@tproger
Читайте также в VK, Max и Дзен
jj — CLI поверх Git, где конфликты решаются автоматически, а любую операцию можно откатить
Представьте Git без staging area, где rebase не останавливается на конфликтах, а любую ошибку можно отменить одной командой. Это не фантазия — это jj, CLI для Jujutsu, который работает поверх вашего .git/ и не требует от коллег ничего менять.
Ключевые отличия: рабочая копия — это коммит (любое изменение файла формирует новую версию с тем же change ID). Конфликты хранятся в истории как часть коммита, а не как маркеры в файле — rebase продолжается, потомки перестраиваются автоматически. И главное: jj undo откатывает любую операцию. Потерять работу в jj сложнее, чем в Git.
Стив Клабник (автор «The Rust Programming Language») написал учебник по jj — с объяснением концепций и тем, чем они отличаются от Git.
@tproger
Читайте также в VK, Max и Дзен
Zig наконец решил проблему раскраски функций — ту самую, которая мучает разработчиков асинхронного Rust
В версии 0.16.0 (вышла 14 апреля) синхронный и асинхронный код имеют одинаковую сигнатуру — отличается только переданный I/O-интерфейс. Никаких async fn, никакого заражения кодовой базы маркерами асинхронности. Если вы писали async Rust и упирались в то, что половина экосистемы живёт в параллельной реальности — посмотрите, как это решено здесь.
Второе крупное изменение — «Juicy Main». Точка входа теперь получает готовые зависимости через параметр std.process.Init: аллокаторы, I/O, переменные окружения. Раньше каждая программа начиналась с одного и того же бойлерплейта — создать аллокатор, дёрнуть env, получить аргументы. Теперь это подаётся снаружи.
Релиз ломает API стандартной библиотеки — придётся переписывать проекты. Но если это означает, что асинхронный код перестанет быть отдельным языком внутри языка, оно того стоит.
@tproger
Читайте также в VK, Max и Дзен
Появились новые скриншоты грядущей GTA
@tproger
Читайте также в VK, Max и Дзен
Я тут в комментариях увидел интересную идею от нашего подписчика.
Предлагаю вам придумать название для такой премии, а самый крутой вариант возьмем в качестве названия рубрики и будем рассказывать вам об интересных случаях.
Вы в деле? Тогда пишите в комментарии 👇
@tproger
Читайте также в VK, Max и Дзен
Устали от уймы API-ключей и танцев с бубном вокруг OpenAI, Claude и Gemini?
Снять эту головную боль может один API-роутер.
Разбираемся на Tproger, почему три разных API могут тормозить ваш проект и как подключить GPT-5.4, Claude Sonnet 4.6 и Gemini 3.1 Pro через единую точку входа без переписывания кода.
Кратко о содержании:
— Что умеет хороший роутер: fallback, балансировка, кеш, единый биллинг.
— Пошаговый гайд подключения через одни API на Python и Node.js.
— Реальный кейс: мультимодельный бот с авто-переключением за 30 минут.
— Подводные камни: контекстные окна, latency, rate limits (и как их обойти).
Читать материал: https://tprg.ru/YWhU
@tproger
Читайте также в VK, Max и Дзен
😁😆😁 надо спросить у пользователей какого контента им не хватает и чего хочется видеть больше. А то мы стараемся ищем, а реакций и комментариев мало
Читать полностью…
Открыл NYT почитать новости — браузер скачал 49 МБ и сделал 422 сетевых запроса
Разработчик залогировал загрузку нескольких страниц крупных новостных сайтов. Результат NYT: 49 МБ данных, 422 запроса, две минуты до полной загрузки. Для сравнения — Windows 95 весила 28 дискет, то есть меньше этой одной страницы.
Большая часть веса — не текст и не картинки. Пока пользователь читает заголовок, браузер параллельно скачивает и выполняет несколько мегабайт трекинг-JS, проводит программатик-аукцион среди рекламных бирж и отправляет поведенческие POST-маяки на десятки эндпоинтов. Именно эти скрипты греют телефон и разряжают батарею.
Автор называет это «архитектурой враждебности»: viewability и time-on-page — ключевые метрики для CPM, поэтому каждое UX-решение оптимизирует задержку пользователя на странице, а не его удобство. Cookie-баннеры с намеренно блёклыми кнопками закрытия, два одновременных модала, запрос на пуш-уведомления — всё это не баги, а фичи монетизации.
Полный разбор можно прочитать по ссылке.
#безопасность
Жду ваши варианты в комментариях
@tproger
Читайте также в VK, Max и Дзен
Учим LLM работать с файлами локально
На Тпрогер вышла пошаговая инструкция о том, как поднять локальную агентную AI‑систему из трёх компонентов:
— LibreChat — удобный UI для общения с LLM
— MCP‑сервер — стандартный доступ к файлам и инструментам
— Langflow — визуальный конструктор для многоступенчатых сценариев (с валидацией и расчётами)
Всё работает в изолированной Docker‑сети. Данные никуда не уходят.
В статье готовые docker-compose.yml, конфиги librechat.yaml, пример кастомного Python‑компонента для расчётов и таблиц, а также схемы работы каждого этапа.
@tproger
Читайте также в VK, Max и Дзен
Главное — быть внимательным и открытым, а не идеальным
Пожалуй, это одно из важнейших правил стажировки. Никто не ждет от стажера готового сеньора. Ошибаются все. Критично только одно — пассивность и нежелание учиться на своих ошибках.
В этом году в YADRO открыто более 30 направлений, можно попробовать себя в разработке, бизнесе и продуктовых ролях.
А в этой статье есть еще пара годных лайфхаков о том, как проходить стажировку. Ловите:
— Развиртуализируйтесь. Если есть возможность работать из офиса, хотя бы иногда, то обязательно туда гоняйте. Как говорит Михаил, который проходил стажировку «Импульс»: «В офисе можно быстро подойти и уточнить вопрос, а в онлайне приходится ждать ответа в чате или согласования созвона».
— Собирайте базу знаний. Не держите информацию в голове и чатах. Заводите заметки (хоть в Obsidian, хоть в блокноте), фиксируйте решения задач, чтобы потом не гуглить одно и то же.
— Ходите на лекции. Даже если кажется, что работы много. В YADRO для стажеров читают отдельный блок по soft skills и продуктовым вещам. Это помогает лучше понять, какой вклад вы лично вносите в общее дело.
— Запрашивайте фидбек. Не ждите, пока коллеги сами подойдут и погладят по голове. Напишите руководителю: «Мне важно понимать, в правильном ли направлении двигаюсь. Можете дать обратную связь по задачам?».Читать полностью…
Русскоязычный ИИ-рентгенолог из бесплатных запчастей — это реально
Большинство открытых медицинских моделей говорят только по-английски. Один разработчик решил это исправить — собрал мультимодальную нейросеть из двух публично доступных моделей и запустил на бесплатных GPU Kaggle.
Архитектура — классический Vision-Language подход: Google ViT смотрит на снимок и извлекает визуальные фичи, ruGPT-3 от Сбера генерирует текст. Проблема в том, что они не умеют работать вместе из коробки. Пришлось «взломать» конфиг ruGPT-3, чтобы Hugging Face создал новые веса кросс-внимания между моделями, — именно их и обучали.
Датасет взяли американский (Indiana University Chest X-Ray), перевели 7000 медицинских заключений через Helsinki-NLP прямо на Kaggle. Обучение 15 эпох на двух T4 заняло 2.5 часа — с fp16, gradient accumulation и JS-скриптом в браузере, чтобы сессия не отвалилась по тайм-ауту. В итоге модель распознаёт «кальцифицированные гранулемы» и чистые лёгкие на русском языке. Да, немного галлюцинирует, но в целом держится.
Код открыт, живое демо на Hugging Face Spaces — можно потрогать прямо сейчас. А прочитать подробности по ссылке: https://tproger.ru/articles/frankenwtejn-v-medicine--kak-ya-skrestil-vit-i-rugpt-3--chtoby-nau
#machinelearning #python
Думали я забыл? Ни в коем случае! Пора хвастаться, коллеги
Вот чем в прошлый раз вы хвастались:
— убийца Power Point;
— отреставрированный Вконтакте образца 2013 года;
— опенсорс курсы для программистов;
— стеганографический «швейцарский нож» для изображений;
— тайм-трекер;
— API для управления ресторанами.
Давайте обновим информация. Делитесь своими апдейтами и свежими проектами!
@tproger
Читайте также в VK, Max и Дзен
Какие доки может распознавать ИИ
Субботнее разглядывательное: у нас на сайте вышла статья про задачи, в которых помогает распознавание документов. Так вот, там уйма наглядных примеров с картинками: какие документы под силу нейросетке, и как это распознавание выглядит. Всех приглашаю к залипанию.
А вы любите разглядывать документы?😏
@tproger
Читайте также в VK, Max и Дзен
Постоянный доступ в Kubernetes: как атакующие закрепляются в кластере и остаются незамеченными
Вы думаете, что если злоумышленник получил доступ к ноутбуку администратора на пять минут — это не страшно? А зря.
Чтобы изменить мнение, советуем почитать перевод статьи Рори Маккьюна «Beyond the Surface» — детальный разбор одного реального вектора атаки на Kubernetes. Автор показывает, как с помощью встроенных механизмов (kubectl debug, containerd, статические манифесты, CSR API, Token Request API) можно:
— получить root-доступ к узлу;
— запустить скрытый контейнер в обход API;
— организовать удалённое управление через Tailscale;
— создать вечные учётные данные, которые невозможно отозвать без ротации корневого сертификата.
В статье — не только техники атак, но и чёткие признаки обнаружения, а главное — меры защиты: изоляция API-сервера от интернета, минимальные привилегии RBAC, централизованные логи узлов.
Полный текст: https://tprg.ru/gfJ6
@tproger
Читайте также в VK, Max и Дзен
Три ИТ-события, которые вы могли пропустить (а зря)
Пока все гонятся за хайповыми новостями, мы вместе с коллегой Андреем Дмитриевым из JUG.ru собрали события, которые уже повлияли на мир разработки.
В пилотном выпуске нового подкаста:
— Хакеры стерли десятки тысяч ПК через Microsoft Intune
— Дефицит оперативной памяти до 2030 года
— Оптимизация glibc под x86_64
О других событиях вы можете узнать, послушав подкаст.
Особое внимание предлагаем уделить рефлексии. В выпуске мы подсветили, почему те или иные истории важны для ИТ-сообщества. А теперь призываем вас в комменты под видео: что уже вошло в вашу жизнь из этих кейсов? И как думаете, что из этого не производит резонанса?
Смотрите подкаст и присоединяйтесь к дискуссии: https://tprg.ru/S7jD
@tproger
Читайте также в VK, Max и Дзен
Регистрация на Альфа ЦТФ уже открыта ⚡️
25 апреля Альфа-Банк проводит соревнование по захвату флага — Цепляй Трофейный Флаг. Будете искать уязвимости на городских высотах и бороться за призовой фонд 3 100 000 рублей.
Что нужно сделать:
➡️ Выпить бодрящий кофе перед стартом и настроиться на маршрут
➡️ Сгонять на велозаезд — или хотя бы сделать вид
➡️ Искать флаги как в городе, так и внутри систем
➡️ Не теряться на сложных участках
➡️ Находить и разбирать уязвимости
Во время соревнования будут доступны ИТ-хабы в Москве, Санкт-Петербурге, Екатеринбурге и Сочи, а также коворкинги в вузах-партнёрах: Финансовом университете, ИТМО и Научно-технологическом университете «Сириус».
Будет 4 направления:
🚩 ЦТФ-трек для специалистов по ИБ и опытных игроков, которые готовы к сложным заданиям
🔢 ИТ-трек для ИТ-специалистов кроме тех, кто работает в кибербезопасности или участвовал в соревнованиях по спортивному хакингу
😁 Студенческий трек для учащихся вузов и колледжей
👟 Школьный трек — впервые могут участвовать подростки 14–18 лет
Вот и прошла неделя... Пора снова хвастаться!
Это проекты, про которые вы рассказали на в прошлый раз:
— движок для ведения личного блога;
— голосовой помощник для автомобилей с Android Automotive;
— система автоматизированной проверки строительной документации;
— проект для криптоторговли;
— два приложения уже доступных в AppStore.
Не стесняйтесь и продолжайте хвастаться даже незначительным прогрессом. Это помогает сохранять мотивацию. И лайкать чужие успехи не забывайте!
Это ж сколько можно было программистов нанять на эти деньги
@tproger
Читайте также в VK, Max и Дзен
Уже через несколько дней состоится большая конференция K2 Cloud Conf ☁️
➡️ Что вас ждёт:
🟦Экспертные мнения
Бизнес- и тех- взгляд от руководителей K2 Cloud
🟦Актуальные дискуссии
Обсуждение вопросов облака, ИИ, ИБ с участием Айсберри, Ашан Тех, ТК Центр, Calzedonia
🟦Профессиональные треки
Подробный технический трек для специалистов и бизнес-трек с практическими кейсами
📆 Дата: 14 апреля
📍 Место: Москва, ЦДП (доступно также онлайн)
➡️ Зарегистрироваться
Не только для собеседований: зачем разработчикам алгоритмы
Алгоритмическое мышление нужно не только чтобы размять извилины на задачках от LeetCode или показать свои навыки на собеседовании. В реальных проектах оно проявляется, когда нужно оценить сложность до того, как написан первый коммит, или найти граничный случай, который сломает прод через месяц.
Городские сервисы Яндекса дают возможность проверить этот навык не в академической, а в практической плоскости — через задачи от разработчиков.
Сегодня в 15:00 стартует вторая задача от Ильи Царева, руководителя разработки Яндекс Go, а 12 апреля стартует задача от Миши Левина, руководителя направления машинного обучения Городских сервисов Яндекса. Если решите одну из задач правильно, то получите шанс выиграть проходку на конференцию Day&Night*, которая пройдёт 18 апреля в Москве.
Про конференцию
Day&Night — мероприятие Городских сервисов Яндекса. В фокусе то, что обычно остаётся за кадром: как городские продукты связывают онлайн и офлайн, какие инженерные решения за этим стоят и с какими компромиссами приходится работать.
Формат — клубы с лидерами индустрии. У вас будет возможность обсудить кейсы лично с теми, кто эти системы проектирует.
Подать заявку на конференцию можно стандартным способом. Но задачи — это отдельный трек участия, где можно бросить вызов экспертам индустрии.
*День и Ночь
Как джуниору доказать, что в него нужно вкладываться
В комьюнити вот уже который год живет стандартная присказка: «Джунов больше не берут». Да и вы сами замечаете, что на ваше резюме с уникальными сопроводительными письмами тоже никто не отвечает. Получается, в ИТ путь закрыт?
На самом деле, нет. Компании продолжают нанимать новичков, платить им, тратить время на их обучение. Только делают они это осторожно, потому что боятся, что:
— вы накрутите опыт и сольетесь за полгода,
— из-за этого они потеряют время и деньги на ваш и будущий наём.
Поэтому задача джунов трансформируется: теперь нужно доказать, что вы стоите инвестиций. Как это делать, читайте в статье на сайте Тпрогер.
Один из важных и непростых инсайдов — сразу на добротную зарплату претендовать не получится. Нужно будет принять, что первый год придется работать за минимальную сумму, которая покрывает ваши базовые потребности. Зато дальше — больше. Но об этом в материале.
@tproger
Читайте также в VK, Max и Дзен
Ubuntu 26.04 теперь требует больше ресурсов, чем Windows 11
Это не баг, это фича. Добро пожаловать в будущее.
@tproger
Читайте также в VK, Max и Дзен
Кто?
@tproger
Читайте также в VK, Max и Дзен
Инженер психанул, что все мессенджеры живут по чужим правилам, и написал свой
Когда Telegram падает, облако лежит, а условия сервиса меняются без предупреждения — это не ваш канал связи, это аренда. Автор решил это исправить: PWA-мессенджер на собственном бэкенде, без инвесторов и презентаций.
Внутри оказалось куда интереснее, чем «просто чатик»:
— идемпотентность доставки и дедупликация, потому что «отправил» ≠ «дошло»;
— race condition между потоками онлайн-статуса;
— optimistic update против серверной истины на нескольких устройствах сразу;
— graceful degradation для клиентов с сетью «между EDGE и молитвой».
Плюс живое сравнение двух SQL-запросов для полнотекстового поиска: наивный вариант против варианта с partial GIN-индексом — разница на реальном объёме 10x и выше.
Ещё — UIN-рулетка до регистрации в духе ICQ: снаружи фан, внутри резервация ресурса с TTL и защитой от ботнета.
Cursor 3: агенты вместо вкладок — IDE с нуля вокруг ИИ
Cursor выпустил третью версию — и это не обновление редактора. Команда построила новый интерфейс с нуля, где в центре архитектуры не файлы, а ИИ-агенты. VS Code-база никуда не делась: переключиться можно в любой момент через меню.
Что изменилось: все агенты — локальные и облачные — в одной боковой панели. Можно запустить агента с телефона через Slack или Linear, и он появится там же. Облачный агент, если надо протестировать на своём десктопе, переносится на локальную машину в несколько кликов. И наоборот: локальный агент можно отправить в облако, чтобы он продолжал работать, пока ноутбук закрыт.
Для кодинга выпустили Composer 2 — собственную frontier-модель с высокими лимитами. Плюс встроенный браузер для тестирования веб-приложений прямо из интерфейса и маркетплейс плагинов с поддержкой MCP-серверов.
Источник: https://tproger.ru/news/cursor-3--ii-redaktor-postroen-s-nulya---agenty-vmesto-vkladok
#cursor #vscode
7 TUI-инструментов, которые сделают консоль удобнее
Переключение в браузер ради конвертации видео или добавления лицензии к проекту — привычка, от которой сложно избавиться. Но новые TUI-утилиты закрывают эти задачи прямо в терминале.
Среди подобранного:
— MONICA — интерактивная надстройка над ffmpeg без необходимости помнить флаги;
— lic — одна команда для создания файла LICENSE из официальной базы GitHub;
— PNANA — терминальный редактор между nano и vim с tree-sitter подсветкой синтаксиса и поддержкой мыши;
— CodeWeaver — собирает всю кодовую базу в один Markdown-файл, чтобы удобно скармливать проект ИИ-ассистенту.
Плюс ещё три утилиты: поиск торрентов в консоли, часы и таймер для терминала, генератор .gitignore. Все свежие, большинство вышли в последние месяцы.
Подборка: https://tproger.ru/articles/ot-ffmpeg-do-torrentov-dlya-terminala--7-novyh-tui-instrumentov--kotorye-sovetuem
#инструменты
@tproger
Читайте также в VK, Max и Дзен
Oracle уволила 30 000 письмом в 6 утра — деньги пойдут на ИИ
31 марта тысячи сотрудников Oracle в нескольких странах проснулись и нашли письмо от «Oracle Leadership»: должность ликвидирована, сегодня последний рабочий день, доступ к системам закрыт. Не встреча с HR, не звонок — письмо в шесть утра без предупреждения.
По оценке TD Cowen, сокращения затронули от 20 до 30 тысяч человек — до 18% глобального штата. На Reddit и Blind сотрудники в реальном времени подтверждали увольнения: в некоторых подразделениях сократили минимум 30% команд. Часть позиций внутри Oracle, по данным Bloomberg, была внутренне отмечена как «заменяемые ИИ».
Ирония в том, что чистая прибыль Oracle за последний квартал выросла на 91% до $6,1 млрд. Компания не в кризисе — она просто меняет структуру расходов: сэкономленные $8–10 млрд пойдут на строительство ИИ-дата-центров в рамках плана на $156 млрд.
Читать полностью: https://tproger.ru/news/oracle-uvolnyaet-30-000-sotrudnikov-pismom-v-6-utra---sekonomle
#новости
Amazon научил ИИ-агентов эволюционировать: фреймворк A-Evolve поднимает результаты без ручной настройки
Исследователи Amazon и Университета Пенсильвании выпустили open-source фреймворк A-Evolve, который автоматически улучшает ИИ-агента. Вместо ручного тюнинга система запускает агента-эволюционера: он модифицирует промпты, скиллы и инструменты, прогоняет изменения через бенчмарки и оставляет только те, что дают прирост. Весь процесс фиксируется через git.
На бенчмарке MCP-Atlas эволюция подняла агента на Claude Opus 4.6 до 79,4% — первое место в рейтинге. Прирост на других тестах — до 15 процентных пунктов. Для запуска достаточно трёх строк кода на Python.
Фреймворк работает с LLM от Anthropic, OpenAI и Amazon Bedrock. Это не дообучение модели, а эволюция поведения агента через управляемые мутации его конфигурации. Подробности о технике, бенчмарках и коде читайте в материале.
@tproger
Читайте также в VK, Max и Дзен