<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>MIT</title>
    <description/>
    <link>https://tproger.ru/tag/mit</link>
    <atom:link href="https://tproger.ru/tag/mit/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 03 Oct 2026 15:35:04 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>MIT</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Как я написал AI-бота на aiogram 3 с помощью нейросетей, выжил при 2500+ пользователей и почему SQLite "всё ещё торт"</title>
      <link>https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p</link>
      <comments>https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Нуя]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p</guid>
      <description><![CDATA[<p>Технический кейс создания Telegram-бота Щёлк-ГДЗ (ИИ-репетитор по фото). Разбор архитектуры на Python (aiogram 3, aiosqlite), работы с API Gemini и решения проблем под нагрузкой 2500+ пользователей. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p">Как я написал AI-бота на aiogram 3 с помощью нейросетей, выжил при 2500+ пользователей и почему SQLite "всё ещё торт"</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Flash]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Пет-проект]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Jul 2026 15:47:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>На дворе 2026 год. Очередной постмортем микро-SaaS'а в Телеге.</p><p>Без маркетинга и успешного успеха. Только боль, костыли и суровый прод! Мой пет-проект - бот «Щёлк-ГДЗ». Это ИИ-помощник, который решает школьные задачки по фоткам, видео, гс, тг-кружкам и PDF. Под капотом <b>Python 3.12.3</b>, <b>aiogram 3</b>, <b>aiosqlite</b>,<b> апи OpenRouter </b>(модель Gemini 3.0 Flash) и <b>Робокасса</b>. Крутится всё это на дешёвом VPS в Нидерландах. Держит 2500+ пользователей и не падает.</p><p>В этой статье расскажу, как за 9 месяцев построил логичную архитектуру, победил ошибку FloodWait при стриминге ответа ИИ и почему в условиях 1 гига RAM обычная SQLite - отличное решение.</p><h2>Нейронка вместо джуна и Уроборос багов</h2><p>Сразу признаюсь... С нуля я это не писал :) Синтаксис мне генерили LLM-ки. Начинал с Gemini 2.5 Pro, затем перешел на 3.0 Pro, а сейчас использую 3.1 Pro.</p><p>Многие думают, что нейронка сама напишет проект "под ключ", но это миф. Я <b>никогда </b>не доверял ИИ проектирование архитектуры и использовал его как продвинутый<i> StackOverflow</i> (скармливал конкретную задачу (например, написать SQL-миграцию) и получал кусок кода).</p><p><i>ИИ — это не архитектор, а джун на спидах. </i></p><p>Как только логика усложнялась - гемини ловил <b>«Уроборос багов»</b>. Кидаешь баг <b>А</b> - он его фиксит, но появляется ошибка <b>Б</b>. Скармливаешь и её - фиксит, но возвращается баг <b>А</b>. Цикл замкнулся. Лечилось только созданием новых чатов, в которые я кидал код и писал запросы типа "Найди критические ошибки, логические дыры и баги".</p><p>Про продуктовую логику нейронка вообще не слышала. В первой версии рефералки был баг, где любой(если его аккаунта ещё нет в БД) мог написать в конце ссылки что любые 9 цифр (<i>?start=1234567890</i>) и получить бонусы.</p><p>Также были ошибки с гонкой состояний при оплатах и активациях промокодов, которые тоже фиксил запросами в новые чаты с ИИ. Так я исправил около 20 архитектурных дыр.</p><h2>Немного про архитектуру.</h2><p>Чтобы код не превратился в нечитаемую лапшу на 5000 строк, я жестко разбил всё на модули. Архитектура бота выглядит так:</p><figure><img src="https://media.tproger.ru/user-uploads/139416/2026-07-08/dfc8dd70-365f-4f70-bbbf-2b00b503bef4.webp" alt="" /></figure><p><b>main.py</b> - это точка входа с настройкой логгеров, коннетами aiohttp и запуском APScheduler</p><p><b>database.py</b> - вся работа с БД</p><p><b>neiro.py</b> - логика общения с апи OpenRouter (стриминг, сжатие фоток через Pillow, JSON-контекст)</p><p><b>states.py</b> - классы состояний aiogram.fsm.state (например, PaymentProcess, GdzMode)</p><p><b>utils.py</b> - легковесные утилиты. Например лок пользователей (защита от спама запросами):</p><p>Хэндлеры вынесены в отдельную папку handlers/:</p><p><b>handlers/common_handlers.py</b> - главное меню с обработкой /start (рефералки, utm-метки).</p><p><b>handlers/gdz_handlers.py</b> - сам процесс ИИ-решения (вход в GdzMode, прием фото, видео, кружочков).</p><p><b>handlers/pay_handlers.py</b> - это логика платежей (Robokassa) и "Умная корзина".</p><p><b>handlers/tasks_handlers.py</b> - квесты (выдача премиума за подписку на каналы спонсоров).</p><p>Сборку интерфейсов вынес в <b>all_def.py</b>. Не люблю, когда в хэндлерах генерится полотно текста с кнопками. Там же лежат функции склонения слов (1 запрос, 2 запроса, 5 запросов). А в <b>settings.py </b>лежат списки с рандомными ответами бота, чтоб казался живым.</p><p>Так же в <b>settings.py</b> я сделал кэширование картинок, тоесть при первом запуске бот грузит фото меню как <b>BufferedInputFile</b>, сохраняет <b>file_id</b> от Телеграма и дальше шлет картинки моментально по ID. Сервак говорит спасибо за сэкономленный трафик)</p><p>В <b>handlers/common_handlers.py</b> находится первичная маршрутизация. Вот так обрабатываются рефералки, переходы с сайта, с рекламы и другое при старте:</p><h2>Диета по токенам</h2><p>Хранить бесконечную историю диалогов дорого и бессмысленно. В бесплатной версии храню <b>10 последних сообщений</b> (5 пар вопрос-ответ), а в преме — <b>30. </b></p><p>Но фотки весят большое кол-во токенов. Если премиум-юзер закинет 30 фоток, OpenRouter выставит мне огромный счет. В итоге я прикрутил ограничение: Из <b>30 сообщений</b> ИИ видит только <b>10 последних картинок. </b></p><p>Старые фотки тупо вырезаю из JSON. Подменяю на системный промпт:</p><p>С довольно неплохой моделью (gemini 3.0 flash) это работает как часы (она честно признается, что забыла картинку, а не выдумывает что-то из воздуха).</p><h2>Стриминг, FloodWait и защита баланса</h2><p>Чтобы бот не выглядел тормозом, я сделал стриминг ответа от ИИ в <b>neiro.py</b>. Я обновляю сообщение в Телеграме чанками по мере получения их от ОпенРоутера.</p><p>Но если делать <b>message.edit_text </b>слишком часто, ловишь <b>FloodWait</b>. В итоге я выставил интервал в 0.7 секунд и обернул всё в жесткий<b> try/except</b>:</p><p>Стрим при этом не прерывается. Поспали и погнали дальше :) Если на этапе обработки файла или стриминга падает критическая ошибка - честно возвращаю юзеру запрос на баланс.</p><p>В <b>handlers/gdz_handlers.py</b> это выглядит так:</p><h2>SQLite тащит</h2><p>Почему не <b>Postgre</b>? Потому что для микро-SaaS с 2,5к пользователей<b> SQLite</b> хватает за глаза. Но в асинхронной среде она любит кидать ошибку <b>database is locked</b>.</p><p>Чтобы этого избежать, я включил <b>WAL-режим</b> при инициализации пула, разделил коннекты на <b>db_writer</b> и <b>db_reader</b>, а сложные операции доверил самому <b>SQL</b>.</p><p>Например, 00:00 запускается крон-таска, которая собирает огромную аналитику, начисляет всем активным юзерам +1 ежедневный запрос и сбрасывает просроченные подписки. И это всё это работает атомарно внутри <b>database.py</b>:</p><h2>Умная корзина на APScheduler</h2><p>Когда дело дошло до монетизации, всплыли две проблемы:</p><p>Первая: юзер оплатил, но забыл нажать кнопку <b>«✅ Я оплатил»</b> в боте. Бот ждет, юзер ждет, товар не выдается, поддержка кипит.</p><p>Вторая: юзер сформировал счёт и передумал ("брошенная корзина").</p><p>Вместе с LLM я с нуля изучил <b>apscheduler </b>и убил двух зайцев фоновыми задачами. Теперь в <b>handlers/pay_handlers.py </b>при генерации ссылки на оплату я создаю две отложенные таски:</p><h4>Как это работает?</h4><p>Через 5 минут срабатывает <b>async def auto_check_payment()</b>, которая тихо стучится в робокассу. Если статус<b> success</b> - бот сам начисляет запросы на баланс и радует клиента. Если статус <b>pending</b> - таска умирает, и в дело вступает 30-минутная таска.</p><p>Но она не шлёт спам вслепую, а лезит в БД и проверяет 3 бизнес-правила:</p><p>1. <b>await db.has_successful_payment_recently</b> - Не купил ли он другой товар за последние 3 часа?</p><p>2. <b>await db.get_latest_invoice_id</b> - А это точно самый последний сгенерированный им счет?</p><p>3. <b>await db.can_send_agitation</b> - Не присылали ли мы ему агитацию недавно?</p><p>Если проверки пройдены, то юзер получает сообщение: <i>"⏳ Домашка сама себя не решит! Ты начал оформлять покупку, но оплата так и не прошла..."</i>. Это поднимает конверсию оплат.</p><h2>Финал</h2><p>Почему я не использую <b>Redis </b>для стейтов? Ответ банален: мой дешевый VPS имеет всего 1 гб оперативки. Пул <b>aiohttp</b>, In-Memory стейты и асинхронные таски и так жрут 70% RAM. Редис тупо не влезет.</p><p>Как говорится, <i>работает — не трогай.</i></p><p>Сейчас проект обзавелся сайтом-витриной и продолжает развиваться. В планах - искать и чинить новые баги. Перееду на более мощное железо, когда сервак начнет физически задыхаться.</p><p>Готов ответить на вопросы по архитектуре и послушать советы в комментариях \(^^)/</p><p><i>P.s. вот ссылка на первую статью о моём проекте: </i></p><p>P.s. Если кто-то хочет потестить вживую(не реклама), то юз бота в тг <a>@gdzshchelk_bot</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Git в Telegram: как я избавился от JSON, победил Markdown и получил security by design</title>
      <link>https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu</link>
      <comments>https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Robin Gad]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu</guid>
      <description><![CDATA[<p>Git в Telegram? Без JSON, с SQLite, победой над Markdown и security by design. Код, схема БД, факапы и ссылка на бота.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu">Git в Telegram: как я избавился от JSON, победил Markdown и получил security by design</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 02 Jul 2026 06:39:38 GMT</pubDate>
      <content:encoded><![CDATA[<p>В своём Telegram-канале я время от времени предлагаю подписчикам выбрать очередную «бредовую» идею для реализации. На этот раз победил Git в Telegram: чтобы можно было инитить проекты, пушить файлы, коммитить — и всё это прямо в мессенджере.</p><p>С практической точки зрения проект на**й не нужен. Есть GitHub, GitLab и куча нормальных инструментов. Но как эксперимент — почему бы и нет? Чисто посмотреть, можно ли заставить Telegram работать как VCS.</p><h2>Почему не JSON</h2><p>На старте я думал: «Положу всё в JSON, на кой мне база данных?» Проектов мало, пользователей немного, файлы текстовые — чего заморачиваться?</p><p>Подергал JSON туда-сюда пару дней и понял: не варик.</p><ol><li>Конкурентный доступ. Два юзера одновременно коммитят — один перезаписывает файл другого.</li><li>Целостность данных. Если бот упал в середине записи — JSON остаётся в невалидном состоянии.</li><li>Версионность. Хранить историю изменений в JSON — это просто перенести проблему из кода в структуру файла.</li></ol><p>Вывод: JSON — для конфигов, а не для данных, которые меняются каждую секунду.</p><h2>Выбор SQLite и схема БД</h2><p>Выбрал SQLite, потому что:</p><ul><li>Не надо поднимать отдельный сервер</li><li>Целостность данных на уровне движка (транзакции, foreign keys, rollback)</li><li>Всё в одном файле — скопировал и унёс</li></ul><p>Сущности:</p><ul><li>users — telegram_id, username, current_project_id</li><li>projects — owner_id, name, thread_id (каждый проект живёт в своём треде канала)</li><li>files — filename, current_version, флаг modified (файл изменился и готов к коммиту)</li><li>file_versions — мясо. Каждая версия файла с полным содержимым. Привязана к file_id и опционально к commit_id</li><li>commits — сообщение, время, ссылка на проект</li><li>commit_files — связка коммитов с версиями файлов (many-to-many, чтобы поддержать ветки)</li></ul><p>Почему так: я хотел иметь возможность откатиться к любой версии любого файла. Да, база распухнет, но текстовые файлы — это не гигабайты видео. Плюс наличие file_versions и commit_files позволяет делать diff между версиями и смотреть историю изменений.</p><p>В коде вместо голых кортежей из SQL — датаклассы:</p><h2>Маркдауновый ад</h2><p>Казалось бы: взял код, обернул в тройные апострофы, кинул в Telegram. Telegram сам подсветит синтаксис, если указать язык. Красота. В теории.</p><p>На практике Telegram использует свой диалект Markdown, где куча служебных символов: _ * [ ] ( ) ~ &gt; # + - = | { } . !</p><p>Попытка 1: заэкранировать всё подряд. Результат: код превращается в кашу. Вместо<b> </b><i>def  __init__- </i> получается <i>def |_|_init|_|_ </i> — уже не запустишь, и в канале выглядит как говно.</p><p>Попытка 2: не экранировать вообще. Telegram шлёт на**й с ошибкой «can't parse entities».</p><p>Попытка 3: экранировать только то, что реально ломает разметку. Выяснилось, что порядок важен. Сначала экранируем точки и подчеркивания, потом обратную косую черту. Но и это не панацея — последовательности типа \*</p><p>после экранирования превращаются в \\*, и Telegram снова недоволен.</p><p>Попытка 4: разбивать на части. Для больших файлов делаю превью (первые 50 строк), экранирую их, отправляю как код, а полную версию — файлом. И тут начался ад: Telegram находил ошибки в тех частях кода, которых в превью вообще не было. Оказывается, он всё равно парсил полный код, даже если отправлялась только его часть.</p><p>Попытка 5 (финал): забил на Markdown и перешёл на HTML. Telegram умеет его принимать. Да, он не такой красивый, но зато предсказуемый:</p><p>Никаких точек, подчеркиваний, обратных слешей. Просто экранируем три символа — и код летит как надо.</p><h2>Security by design</h2><p>Когда бот начал обрастать функциями, я задумался о безопасности. Чтобы никто не мог коммитить или удалять чужие файлы, начал писать проверки в каждую команду:</p><p>Добавил в /commit. Потом решил с другого аккаунта потестировать команды на чужих файлах. И тут бот на каждую команду стал выдавать «файл не найден» или «проект не найден». И я понял: безопасность уже работает. С самого начала. Из коробки. Без единой строчки кода.</p><p>Как так вышло? В таблице projects с самого начала было поле owner_id. При создании проекта я писал туда telegram_id  владельца. Все запросы к БД фильтруются по этому полю:</p><p>Показать проекты — только свои. Найти файл — только в своих проектах. Выбрать проект — только из своих. Никаких лишних проверок. Просто SQL-запросы, которые с самого начала учитывали владельца.</p><h2>Команды: от семи до двух десятков</h2><p>Изначально казалось, что команд будет немного. Но...</p><p>Жизнь рассудила иначе.</p><ul><li>База: /start, /init, /use, /list, /ls, /commit, /log, /status</li><li>Удаление: /rm, /rmproject + подтверждение</li><li>Игнор: /ignore, /ignored, /unignore</li><li>Ветки: /branch, /branches, /checkout</li><li>Диффы и просмотр: /diff, /cat</li></ul><p>Итого — уже под два десятка. И это не предел.</p><h2>Простота &gt; абстракции</h2><p>В моём коде нет абстрактных базовых классов. Совсем. Потому что они нужны только когда у тебя есть минимум две разные реализации одного и того же. В GitGram всё проще: один способ работать с БД, один способ шифровать, один способ парсить .gitignore.</p><p>Если завтра появится вторая реализация — тогда и буду делать интерфейс. А пока это просто оверхед.</p><p>В GitGram:</p><ul><li>Хочешь понять, как работает add_file — идёшь в database.py и читаешь 10 строк кода.</li><li>Хочешь увидеть обработчик /commit — открываешь bot.py и смотришь.</li></ul><p>Никаких AbstractMinerShieldEventProcessor, BaseGitGramManager, InterfaceProviderFactory.</p><p>Код должен быть тупым. Чем тупее — тем проще его читать и отлаживать.</p><h2>Что дальше</h2><p>В планах:</p><ul><li>Докрутить коллаборацию (несколько человек над одним проектом)</li><li>Приватные репозитории</li><li>Кодспейс прямо в боте (да да знаю я сошёл с ума и бла бла бла..)</li></ul><h2>Итог</h2><p>GitGram принимает файлы, режет их на куски если надо, постит в канал с подсветкой. Коммиты ходят, ветки переключаются, диффы показываются. Всё это в тредах, каждый проект отдельно.</p><p>На практике GitGram ни к чему. Но сама задумка — Git в Telegram — это же так прикольно. Просто посмотреть, можно ли такое вообще запилить.</p><h2>Если хочешь поучаствовать</h2><ul><li><a href="https://t.me/Git_Gram/314" rel="nofollow">GitGram</a></li><li>Чат для хардкорных: <a href="http://t.me/sandbox_hardcore" rel="nofollow">@sandbox_hardcore</a> — вся сырая разработка, факапы и обсуждения (без цензуры)</li></ul><p>Подписывайся на мой <a href="https://t.me/+q0NBWy428y1hODEy" rel="nofollow">TГ-канал</a> — там я публикую все свои эксперименты, код и приглашаю к обсуждению. Только факты, мат и никакой политоты.</p>]]></content:encoded>
    </item>
    <item>
      <title>Кнопка «наверх» в Django: почему в проде это уже не три строки JavaScript</title>
      <link>https://tproger.ru/articles/knopka-naverh-v-django-pochemu-v-prode-eto-uzhe-ne-tri-stroki-j</link>
      <comments>https://tproger.ru/articles/knopka-naverh-v-django-pochemu-v-prode-eto-uzhe-ne-tri-stroki-j?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Фёдор Малков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/knopka-naverh-v-django-pochemu-v-prode-eto-uzhe-ne-tri-stroki-j</guid>
      <description><![CDATA[<p>Как добавить кнопку «наверх» в Django-сайт и Django Admin: настройка, CSP, доступность, мобильная версия и работа рядом с cookie-баннерами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/knopka-naverh-v-django-pochemu-v-prode-eto-uzhe-ne-tri-stroki-j">Кнопка «наверх» в Django: почему в проде это уже не три строки JavaScript</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[jQuery]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Django]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2026 13:01:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Как сделать scroll-to-top для сайта и Django Admin, не забыв про мобильные устройства, CSP, доступность, плавающие виджеты и нормальную настройку без правки шаблонов.</p><p>На первый взгляд кнопка «наверх» — задача на пять минут. Добавил<i> position: fixed</i>, обработчик window.scrollTo()  — готово.</p><p>Но стоит этой кнопке появиться в живом проекте, как выясняется, что она пересекается с cookie-баннером, мешает чату поддержки, выглядит иначе в мобильной версии, не дружит со строгим CSP или пропадает из Django Admin.</p><p>В итоге маленькая UI-деталь начинает обрастать условиями. Я решил собрать их в отдельный Django-пакет — django-scroll-to-top</p><figure><img src="https://media.tproger.ru/user-uploads/139342/2026-06-29/000bf08b-be8e-4252-82ce-dbef3556426e.webp" alt="Пример кнопки &quot;Наверх&quot; на демо сайте" /><figcaption>Пример кнопки "Наверх" на демо сайте</figcaption></figure><h2>Когда трёх строк JavaScript достаточно</h2><p>Для небольшого сайта, где нет сложной верстки, админки, CSP и требований к повторному использованию, самый простой вариант действительно выглядит примерно так:</p><p>Это нормальное решение. Не всегда стоит тянуть пакет ради одной кнопки.</p><p>Но в реальном Django-проекте быстро появляются дополнительные вопросы:</p><ul><li>когда именно показывать кнопку: после 300 пикселей, одного экрана или только при прокрутке вверх;</li><li>что делать на коротких страницах;</li><li>как не перекрыть cookie-баннер, чат, toast-уведомления или нижнюю мобильную навигацию;</li><li>как дать пользователю закрыть кнопку;</li><li>как не сломать клавиатурную навигацию и режим reduced motion;</li><li>как сделать отдельное оформление для сайта и Django Admin;</li><li>как не заставлять проект добавлять unsafe-inline в Content Security Policy;</li><li>как позволить редактору или администратору изменить цвет, положение и иконку без нового деплоя.</li></ul><p>Именно в этот момент «три строки JavaScript» превращаются в отдельный компонент.</p><h2>Что я хотел получить</h2><p>Цель была не в том, чтобы сделать ещё одну стрелку в правом нижнем углу. Хотелось собрать переиспользуемый компонент со следующими свойствами:</p><ol><li>Подключение сайта одной template-тегом.</li><li>Отдельная поддержка обычных страниц и стандартного Django Admin.</li><li>Настройка внешнего вида через админку, а не через постоянную правку CSS.</li><li>Без jQuery, CDN, фронтенд-фреймворка и обязательной сборки.</li><li>Безопасная работа при строгой CSP.</li><li>Прогрессивное улучшение: без JavaScript остаётся обычная ссылка в начало страницы.</li><li>Возможность жить рядом с другими фиксированными элементами интерфейса.</li></ol><p>Пакет в итоге хранит обычные настройки установки в settings.py, а визуальное поведение — в базе данных. Это позволяет менять кнопку через Django Admin, публиковать новую версию настроек и при необходимости откатываться на предыдущую. В проекте есть отдельные профили для публичного сайта и Django Admin, а ревизии могут быть черновыми, опубликованными или архивными.</p><h2>Быстрое подключение</h2><p>Базовый сценарий начинается с установки:</p><p>В settings.py добавляем приложение. Если нужна поддержка стандартной админки, пакет должен идти раньше django.contrib.admin:</p><p>Включаем области, где должна работать кнопка:</p><p>Для публичной части добавляем URLConf пакета:</p><p>А в общий шаблон сайта — один тег:</p><p>На стандартном Django Admin ничего дополнительно вставлять не нужно: пакет использует обычный механизм разрешения шаблонов Django. Если же в проекте переопределён admin/base_site.html  тег можно добавить вручную в блок footer</p><h2>Настройка без превращения админки в редактор CSS</h2><p>Мне не хотелось хранить в базе шаблоны, произвольный CSS или JavaScript. Это неудобно для сопровождения и создаёт лишнюю поверхность для ошибок.</p><p>Поэтому визуальная часть собрана из контролируемых вариантов:</p><ul><li>круг, квадрат, скруглённый квадрат или pill;</li><li>заливка solid, outline, soft, ghost, glass или gradient;</li><li>положение в любом углу экрана;</li><li>отдельные размеры для desktop и mobile;</li><li>светлая и тёмная тема;</li><li>встроенные иконки, иконки от разработчика или загружаемые SVG;</li><li>настройки тени, границы, opacity и focus ring.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/139342/2026-06-29/90107109-2271-460a-9dea-815592d468e7.webp" alt="Настройки кнопки" /><figcaption>Настройки кнопки</figcaption></figure><h2>Что происходит, когда рядом есть cookie-баннер или чат</h2><p>Нижний правый угол страницы редко бывает свободен. Там часто живут:</p><ul><li>cookie-баннер;</li><li>компактная кнопка после закрытия баннера;</li><li>чат поддержки;</li><li>кнопка обратного звонка;</li><li>мобильная навигация;</li><li>toast-уведомления.</li></ul><p>Пакет умеет рассматривать такие элементы как препятствия. Для этого можно пометить элемент атрибутом:</p><p>Дальше для кнопки можно выбрать поведение: игнорировать препятствия, сдвинуться вдоль края, попробовать другой угол или скрыться, если безопасного места не осталось.</p><p>Для сложных виджетов есть отдельный адаптер: он может отслеживать появление и исчезновение элементов, например компактного launcher после закрытия cookie-баннера. При этом ни cookie-пакет, ни чат не становятся зависимостями  django-scroll-to-top</p><h2>Доступность — не отдельная галочка в конце</h2><p>У кнопки есть понятное имя для screen reader, поддержка клавиатуры, видимый focus-visible, минимальный размер области нажатия и режим prefers-reduced-motion.</p><p>Если пользователь отключил анимации на уровне системы, плавная прокрутка не будет навязываться. Если JavaScript не загрузился, кнопка остаётся обычной ссылкой на начало документа.</p><p>Полный независимый аудит WCAG 2.2 AA и тестирование масштабирования 200% и 400% пока находятся в roadmap, поэтому называть компонент полностью сертифицированным по WCAG было бы неправильно. Но структурные требования — клавиатурная доступность, фокус, reduced motion, forced-colors и безопасная работа без JavaScript — уже заложены в компонент и покрываются тестами.</p><h2>CSP и загружаемые SVG</h2><p>В корпоративных проектах часто нельзя просто добавить inline-скрипт и включить unsafe-inline ради одной кнопки.</p><p>По умолчанию компонент использует same-origin CSS и JavaScript. Для него подходит политика такого вида:</p><p>Настраиваемые цвета и размеры отдаются не через inline-стили, а через версионированный stylesheet endpoint. Это позволяет сохранить простой контракт с одним template-тегом и не ослаблять CSP.</p><p>Отдельно пришлось подумать о загружаемых SVG. Админ не рендерит исходный файл как есть: SVG проходит санитарную обработку. Скрипты, обработчики событий, внешние ресурсы, встроенные документы и небезопасные namespace отклоняются. Для загружаемых иконок также хранится информация об авторе, источнике и лицензии.</p><h2>Ревизии, публикация и откат</h2><p>Одна из самых полезных вещей в пакете — не сама кнопка, а жизненный цикл её настроек.</p><p>Можно создать черновик, посмотреть результат в live preview, опубликовать изменения или вернуться к предыдущей версии. Это особенно удобно, когда кнопку настраивает не разработчик, а контент-менеджер или дизайнер.</p><figure><img src="https://media.tproger.ru/user-uploads/139342/2026-06-29/c9840966-4e32-4506-807a-ac78830fecfa.webp" alt="Живой предпросмотр" /><figcaption>Живой предпросмотр</figcaption></figure><p>У ревизий есть три состояния:</p><ul><li>draft — редактируемый черновик;</li><li>published — текущая активная конфигурация;</li><li>archived — сохранённая версия для отката.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/139342/2026-06-29/2fcf0cfc-b29e-4ce1-b1de-9c07aac1fce0.webp" alt="настройки ревизий профиля кнопки" /><figcaption>настройки ревизий профиля кнопки</figcaption></figure><h2>Где пакет уместен, а где нет</h2><p>django-scroll-to-top имеет смысл, когда кнопка нужна в нескольких проектах, должна работать в Django Admin, настраиваться без деплоя или жить в окружении со строгими требованиями к CSP и интерфейсу.</p><p>Для лендинга на одну страницу проще и правильнее написать несколько строк самостоятельно. Это будет быстрее, понятнее и дешевле в сопровождении.</p><p>Но если такая маленькая деталь начинает повторяться в нескольких продуктах, появляется необходимость поддерживать мобильную версию, доступность, независимые настройки для сайтов и админки, то отдельный компонент уже перестаёт быть избыточным.</p><p>Сейчас пакет выпущен как beta-версия 0.2.0, требует Python 3.10+ и поддерживает Django 4.2 LTS, 5.x и 6.0. Лицензия — MIT.</p><p>Исходный код, документация и примеры использования доступны в GitHub-репозитории проекта.</p><p>Пакет опубликован в PyPI под именем django-scroll-to-top.</p><p>Обратная связь, баг-репорты и предложения по интеграции с кастомными Django Admin-темами приветствуются в Issues.</p>]]></content:encoded>
    </item>
    <item>
      <title>Бесплатный WAF инструмент кибербезопасности, который я использую</title>
      <link>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</link>
      <comments>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Неопознанный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</guid>
      <description><![CDATA[<p>Разбор бесплатного open-source WAF SafeLine для защиты от OWASP Top 10, DDoS и ботов. Сравнение с ModSecurity и Cloudflare по точности обнаружения атак, минимальные ложные срабатывания, простая установка одной командой Docker.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu">Бесплатный WAF инструмент кибербезопасности, который я использую</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[CSR]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2026 05:55:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Решения с открытым исходным кодом достигли такого уровня зрелости, что сегодня они действительно могут конкурировать с коммерческими продуктами — не только по функциональности, но и по удобству использования и поддержке сообщества. Если вы управляете собственной инфраструктурой, больше нет оправдания тому, чтобы оставлять дверь открытой для угроз.</p><p>SafeLine WAF — это бесплатный инструмент, который я лично тестировал.</p><p>Это полностью open-source решения, продукт с действительно бесплатной Community Edition, где ключевые функции не урезаны.</p><p><b>SafeLine WAF — веб-приложенийный межсетевой экран, который действительно поставляется с разумными настройками по умолчанию</b></p><p><b>Что он делает:</b></p><p>Защищает веб-приложения от SQL-инъекций, XSS-атак, командных инъекций, CSRF, SSRF, атак включения файлов и других угроз из списка OWASP Top 10. Также поддерживает защиту от CC/DDoS-атак, управление ботами и может работать как шлюз аутентификации.</p><p><b>Почему он:</b></p><p>Большинство WAF с открытым исходным кодом достаточно сложно настроить. Можно потратить часы на настройку правил, пытаясь остановить ложные срабатывания, из-за которых легитимные пользователи блокируются.</p><p>SafeLine использует другой подход — вместо того чтобы полностью полагаться на сигнатурное обнаружение, он применяет движок семантического анализа, который фактически анализирует и понимает входящие HTTP-запросы. Это позволяет добиться более высокого уровня обнаружения при значительно меньшем количестве ложных срабатываний по умолчанию.</p><p>Некоторые показатели, которые стоит учитыват</p><ol><li>Уровень обнаружения - SafeLine (Balanced) (71.65%), ModSecurity (Level 1) (69.74%), Cloudflare (Free) (10.7%)</li><li>Уровень ложных срабатываний - SafeLine (Balanced) (0.07%), ModSecurity (Level 1) (17.58%), Cloudflare (Free) (0.07%)</li><li>Точность - SafeLine (Balanced) (99.45%), ModSecurity (Level 1) (82.20%), Cloudflare (Free) (98.40%)</li></ol><p>Сбалансированный профиль SafeLine обнаруживает более 70% атак, при этом блокируя легитимный трафик ошибочно всего в 0.07% случаев. Это именно тот уровень настроек по умолчанию, который можно использовать в промышленной среде без постоянного ручного контроля.</p><p>Установка выполняется одной командой</p><p>После запуска он разворачивается как набор Docker-контейнеров: Tengine (форк Nginx) используется в качестве reverse proxy, отдельный сервис отвечает за семантический анализ, PostgreSQL хранит конфигурации и логи, а удобная веб-панель администратора работает на порту 9443.Community Edition поддерживает до 10 сайтов, чего достаточно для большинства личных проектов и небольших бизнес-сценариев.</p><p>Сайт: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcodeby.net%2Fgoto%2Flink-confirmation%3Furl%3DaHR0cHM6Ly9jeWJlcnNlcnZhbC50ZWNoL2xhbmRpbmcvc2FmZWxpbmXvv7xHaXRIdWI%253D%26s%3D7008b60d8a0849ba0be350fe25edfa72&amp;postId=3005263" rel="nofollow noopener">https://cyberserval.tech/landing/safeline</a></p><p>GitHub:<a href="https://api.vc.ru/v2.8/redirect?to=http%3A%2F%2Fgithub.com%2Fchaitin%2FSafeLine&amp;postId=3005263" rel="nofollow noopener"> github.com/chaitin/SafeLine</a> (более 21 тыс. звёзд)</p><p>Лицензия: GPL-3.0 / MIT (Community Edition)</p>]]></content:encoded>
    </item>
    <item>
      <title>Как приручить legacy-код: безопасная модернизация без заморозки фич</title>
      <link>https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki</link>
      <comments>https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[KODE]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki</guid>
      <description><![CDATA[<p>Как модернизировать legacy-код без остановки продукта: Strangler Fig Pattern, feature flags, shadow testing и безопасная миграция данных. Практика и антипаттерны.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki">Как приручить legacy-код: безопасная модернизация без заморозки фич</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Рефакторинг]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Twitter]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[OpenTelemetry]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Legacy]]></category>
      <category><![CDATA[Техника]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Jun 2026 06:16:57 GMT</pubDate>
      <content:encoded><![CDATA[<p>Legacy-код — одна из самых болезненных тем в инженерных командах. Обычно все понимают, что система устарела: архитектура мешает быстро выпускать изменения, новые фичи приходится встраивать через обходные пути, тесты либо неполные, либо отсутствуют, а любое изменение в одном модуле неожиданно ломает другой.</p><p>Но при этом к такому коду часто боятся прикасаться. И не без причины. В старых системах редко бывает понятная карта зависимостей. Документация устарела, часть знаний живет только в головах нескольких разработчиков, а бизнес при этом продолжает ждать новых релизов, интеграций и продуктовых экспериментов.</p><p>Так появляется классическая ловушка legacy: систему надо модернизировать, но остановить развитие нельзя. Переписать всё с нуля страшно, поддерживать как есть — всё дороже. В результате продукт обрастает временными решениями, скорость разработки падает, а стоимость каждого следующего изменения растет.</p><p>Хорошая новость в том, что модернизация legacy-кода не обязана быть большим взрывом. Старую систему можно менять постепенно, сохраняя рабочий продукт, не замораживая фичи и не устраивая один критический релиз, от которого зависит всё.</p><h2>Почему Big Bang-переписывание чаще всего заканчивается плохо</h2><p>Когда команда долго живет с устаревшей системой, идея переписать всё с нуля выглядит очень соблазнительно. Кажется, что можно наконец избавиться от технического долга, выбрать нормальную архитектуру, перепроектировать модули, покрыть всё тестами и начать «правильно».</p><p>На старте такой план часто звучит логично. Особенно если текущая система действительно мешает развитию. Например, мобильное приложение растет, у него уже миллионы пользователей, бэкенд написан несколько лет назад как монолит, а каждая новая фича требует изменений в десятке мест. Команда устала чинить регрессии, бизнес устал ждать, и всем хочется «один раз нормально переписать».</p><p>Проблема не в самой идее переписывания, а в условиях, при которых оно проваливается. Большой риск возникает, когда совпадают четыре фактора: переписывание занимает много месяцев, в это время бизнес продолжает развивать старую систему, новая версия покрывает сразу большую часть функциональности, а откат связан с миграцией данных. Если все четыре пункта присутствуют, Big Bang почти гарантированно превратится в долгий и дорогой проект.</p><p>Допустим, команда решила переписать модуль заказов в e-commerce-продукте. В старой версии есть корзина, промокоды, доставка и оплата. Команда планирует за полгода сделать новый сервис заказов. Но за эти полгода бизнес добавляет подписки, подарочные сертификаты, частичную оплату бонусами и новую логику возвратов. В итоге новая система, которую проектировали под старые требования, к моменту релиза уже нуждается в доработке.</p><p>Есть и другая проблема: большой релиз почти всегда несет максимальный риск. Если вы заменяете крупный кусок системы целиком, ошибка влияет сразу на большую часть пользователей. Откат тоже становится сложным, потому что новая логика уже связана с новыми данными, контрактами и интеграциями.</p><p>Big Bang всё-таки бывает оправдан — но в узких условиях. Если кодовая база молодая (год-два), пользователей мало, у системы нет критичного состояния в БД и продукт можно временно заморозить или вести в обоих контурах параллельно, полное переписывание может оказаться дешевле постепенной миграции. Это редкая ситуация, и она быстро исчезает по мере роста продукта. В зрелых системах безопаснее работает другой подход — постепенная архитектурная эволюция.</p><h2>Пример: как команда переписала сервис документов и потеряла полгода</h2><p>Команда сопровождала сервис — старый модуль на aiohttp с Pydantic v1, через который проходила вся обработка путевых листов и актов осмотра транспорта. Сервис существовал шесть лет, был покрыт тестами фрагментарно, а его API использовали мобильное приложение водителей, диспетчерская веб-панель и пакетный импорт.</p><p>Команда решила переписать сервис целиком: перейти на FastAPI, обновить Pydantic до v2, заодно почистить контракты и заменить внутреннее хранилище документов с MongoDB на PostgreSQL. План был рассчитан на четыре месяца.</p><p>Через восемь месяцев проект всё ещё не был готов к выкатке, а к десятому месяцу команда откатила миграцию полностью. Причин было несколько.</p><p>Во-первых, переписывание шло параллельно с продуктовой разработкой. За время миграции бизнес добавил два новых типа документов и изменил правила подписи актов. Новая система проектировалась под старые требования и к моменту готовности уже не соответствовала продукту.</p><p>Во-вторых, команда не написала характеристических тестов. Поведение «как есть» нигде не было зафиксировано, и расхождения находились только в продакшене после переключения.</p><p>В-третьих, у старого сервиса были скрытые побочные эффекты, о которых никто не помнил. При смене статуса документа публиковал событие в Kafka, которое читал биллинг и сервис аналитики. В новой реализации это поведение не было воспроизведено, потому что в коде оно выглядело как «лишний» вызов. После переключения биллинг перестал получать события, и расхождение обнаружили только через две недели — по жалобе финансового отдела.</p><p>В-четвёртых, переключение было сделано «в лоб»: маршрут в API Gateway просто перенаправили на новый сервис. Фича-флага не было, теневого запуска не было, плана отката не было. Когда выяснилось, что новый сервис строже валидирует исторические форматы документов и отклоняет часть старых записей, быстро вернуться на старую реализацию не получилось — её к тому моменту уже отключили на стенде, а в БД успели уйти записи в новом формате.</p><p>В итоге миграцию свернули, потратив около десяти человеко-месяцев и потеряв доверие бизнеса. Сервис до сих пор работает в исходной реализации, а команда переходит к плану, описанному ниже.</p><h2>Strangler Fig Pattern: как заменить систему по частям</h2><p>Один из самых практичных подходов к модернизации legacy-кода — Strangler Fig Pattern. В софтверном виде паттерн был сформулирован Мартином Фаулером в 2004 году под названием StranglerFigApplication. Идея проста: не переписывать систему целиком, а постепенно выносить отдельные части в новую реализацию.</p><p>Название пришло из биологии. Фикус-душитель растет вокруг дерева-хозяина и постепенно вытесняет его. В архитектуре принцип похожий: старая система продолжает работать, новая функциональность появляется рядом, а затем отдельные потоки постепенно переводятся на новую реализацию.</p><p>Представим старый монолит интернет-магазина. Внутри него есть каталог, корзина, заказы, платежи, скидки, личный кабинет и уведомления. Переписать всё сразу — рискованно. Но можно начать с относительно изолированного участка, например с уведомлений.</p><p>Сначала команда описывает текущий контракт: какие события приходят в модуль уведомлений, какие каналы используются, какие шаблоны отправляются, какие ошибки считаются допустимыми. Затем рядом создается новый сервис уведомлений, который реализует тот же контракт. На первом этапе он может даже не отправлять реальные сообщения, а только принимать события и логировать результат. После проверки часть трафика переводится на новую реализацию. Когда сервис стабилизируется, старый код уведомлений удаляется из монолита.</p><p>Strangler Fig хорошо работает там, где между старым и новым кодом есть сетевая граница: HTTP, message bus, RPC. Если такой границы нет — например, нужно постепенно заменить функцию или класс внутри одного процесса — используется родственный паттерн Branch by Abstraction: над старой реализацией создается абстракция, рядом пишется новая реализация, переключение происходит через конфигурацию или фича-флаг, после стабилизации старая ветка удаляется. Снаружи это выглядит как Strangler Fig, но без сетевого прокси.</p><p>Такой подход снижает риск. В системе нет одного большого релиза, где всё меняется сразу. Есть серия небольших контролируемых изменений. Каждое можно протестировать, измерить и откатить.</p><h2>Главное правило: сначала повторить поведение, потом улучшать</h2><p>Одна из частых ошибок при модернизации legacy-кода — попытка одновременно переписать систему и улучшить бизнес-логику. Команда смотрит на старый модуль и думает: «Раз уж мы его трогаем, давайте сразу сделаем нормальную архитектуру, изменим контракты, уберем странные кейсы и перепишем поведение».</p><p>Это опасный путь. В legacy-системах странное поведение часто существует не случайно. За ним может стоять неочевидное бизнес-правило, старый клиент, интеграция с внешней системой или исторический баг, на который уже кто-то завязался.</p><p>Например, в системе расчета налогов может быть правило: для контрактов, заключенных до 2018 года, НДС округляется в меньшую сторону до целого рубля, а для всех остальных — по математическим правилам. Новый разработчик может решить, что это ошибка, и «исправить» округление. Но потом выяснится, что часть крупных клиентов держит это поведение в своих сверках, а смена правила приведет к расхождениям в актах и претензиям.</p><p>Прежде чем менять поведение, его нужно зафиксировать. Для этого пишут характеристические тесты (characterization tests, иногда называемые golden master или approval tests). Идея простая: на реальных данных или их обезличенных копиях прогоняется старая реализация, её ответы сохраняются как эталон, и любые будущие изменения, отклоняющиеся от эталона, отлавливаются автоматически. Тесты пишутся не для красоты, а для того, чтобы зафиксировать существующее поведение — даже странное — перед тем, как его трогать. Подробно эта техника описана у Майкла Физерса в книге Working Effectively with Legacy Code; на практике её удобно реализовать через библиотеки семейства approval-tests (approvaltests-python, approvaltests-java и аналоги).</p><p>Поэтому первый этап модернизации — не улучшение, а воспроизведение текущего поведения. Новая реализация должна вести себя так же, как старая. Даже если старое поведение кажется странным. Только после стабилизации можно отдельно обсуждать, что именно стоит менять.</p><h2>Feature toggles: как включать новую логику без риска</h2><p>Feature toggles, или фича-флаги, — один из главных инструментов безопасной миграции. Они позволяют включать и выключать новую логику без деплоя.</p><p>В обычной разработке релиз часто выглядит бинарно: код либо выкатили, либо нет. При миграции legacy это неудобно. Гораздо безопаснее иметь возможность включить новую реализацию для 1% пользователей, затем для 10%, потом для половины аудитории и только после этого для всех.</p><p>Например, команда переносит расчет стоимости доставки из монолита в новый сервис. С помощью фича-флага это выглядит так:</p><p>user_id передается явно, чтобы решение «попал ли пользователь в новый сегмент» было стабильным от запроса к запросу. Иначе один и тот же клиент будет получать разные ответы при обновлении страницы, и поведение системы станет непредсказуемым.</p><p>На первом этапе флаг включают только для внутренней команды. Потом для тестового сегмента пользователей. Затем для небольшой доли реального трафика. Если метрики стабильны, долю увеличивают. Если появляются ошибки, флаг выключают, и пользователи снова идут в старую реализацию.</p><p>Важно различать два разных типа флагов. Флаг постепенной выкатки (rollout flag) меняется редко и контролирует, какой процент пользователей видит новую логику. Kill switch — отдельный флаг, единственная задача которого — мгновенно выключить новую реализацию при инциденте. Kill switch должен опрашиваться на каждом запросе, его кэширование должно жить секунды, а не минуты, и он принципиально не должен зависеть от той системы, которую он выключает. Иначе в момент аварии может оказаться, что выключатель сам недоступен.</p><p>В качестве инфраструктуры для флагов команды обычно берут одну из платформ: LaunchDarkly, Unleash, Flagsmith, GrowthBook, либо собирают собственную поверх Redis или конфигурационного сервиса. Для миграции важны три свойства: быстрое распространение изменений (секунды, а не минуты), поддержка таргетинга по пользователю/сегменту и аудит — кто и когда менял флаг.</p><p>Важно, что фича-флаг — это не просто if в коде. Для серьезной миграции нужны правила: кто может включать флаг, как быстро его можно отключить, какие метрики отслеживаются, когда флаг должен быть удален.</p><p>Последний пункт особенно важен. Если флаги не удалять, система быстро превращается в набор ветвлений, где никто уже не понимает, какая логика актуальна.</p><h2>Shadow testing: как проверить новую систему на реальном трафике</h2><p>Feature toggles помогают безопасно переключать пользователей. Но перед этим хорошо бы понять, совпадает ли новая логика со старой. Для этого используют shadow testing.</p><p>Shadow testing — это запуск новой реализации параллельно старой, но без влияния на пользователя. Пользовательский запрос по-прежнему обрабатывает старая система, а новая получает копию запроса и считает результат «в тени». Пользователю этот результат не показывается. Команда только сравнивает ответы.</p><p>Например, есть старый модуль расчета скидок. Он учитывает промокоды, сегмент пользователя, историю покупок, регион и партнерские условия. Команда пишет новый сервис скидок. Чтобы не переключать пользователей сразу, можно запустить теневой режим:</p><p>Два момента, на которые стоит обратить внимание в этом коде. Теневой вызов запускается через asyncio.create_task — корутина сразу планируется в event loop и начнёт выполняться, как только функция вернёт управление. И весь блок завернут в try/except: исключение в новой логике не должно ронять основной запрос. Без этих двух свойств shadow testing рискует ухудшить продакшен вместо того, чтобы безопасно его проверить.</p><p>Небольшая оговорка для продакшена: event loop держит на task только слабую ссылку, и без сохранённой ссылки задача может быть собрана сборщиком мусора прямо во время выполнения. В реальном коде Task имеет смысл класть в set фоновых задач и удалять оттуда через add_done_callback. В примере выше эта обвязка опущена для читаемости.</p><p>Для критичной доменной логики — платежей, биллинга, расчета тарифов — допустимый уровень расхождения должен быть около нуля: цель в shadow-режиме не «как можно меньше различий», а «понимаем каждое расхождение». Для менее чувствительных доменов (рекомендации, ранжирование результатов поиска) можно жить с расхождением в долях процента, но и там расхождения нужно классифицировать, а не игнорировать. Возможно, это баги новой реализации. А возможно, старая система содержит устаревшую логику, которую нужно отдельно обсудить с бизнесом.</p><p>Shadow testing особенно полезен для критичных доменных частей: платежей, биллинга, расчета тарифов, персональных предложений, транзакций. Там нельзя просто «попробовать на пользователях» и посмотреть, что будет.</p><p>При этом важно отличать теневую проверку чтения от теневой проверки записи. Чтение проверить относительно дёшево: запрос идёт в обе системы, ответы сравниваются, никаких внешних эффектов нет. С записью всё сложнее. Если новая реализация в shadow-режиме действительно создаст заказ, спишет деньги или отправит письмо, у пользователя возникнут двойные эффекты. Поэтому для writes либо вводят идемпотентные ключи и shadow-режим без реальных побочных действий (внешние вызовы заменены no-op-стабами, БД — отдельной shadow-копией), либо вообще отказываются от теневой проверки записи в пользу постепенной выкатки за фича-флагом.</p><p>Сравнение ответов в реальной системе тоже не сводится к одной функции compare. Нужно отдельно решать, как игнорировать «нормальный» шум (метки времени, идентификаторы, порядок коллекций), как сэмплировать трафик, чтобы не утопить хранилище расхождений, и как организовать триаж — кто и в каком ритме разбирает накопившиеся диффы. Готовые решения этого класса — GitHub Scientist (Ruby и его порты в другие языки), Twitter Diffy, либо собственный лёгкий регистратор поверх Kafka и таблицы расхождений.</p><h2>С чего начинать модернизацию</h2><p>Начинать лучше не с самого больного и не с самого центрального модуля. Это звучит контринтуитивно, потому что обычно хочется сразу взяться за главный источник проблем. Но если начать с ядра системы, команда быстро упрется в максимальное количество зависимостей и рисков.</p><p>Удобный способ выбрать первый кусок — оценить кандидатов по двум осям: насколько модуль критичен для бизнеса (low / high) и насколько сильно он связан с остальной системой (low / high). Начинать стоит с квадранта low-criticality + low-coupling: ошибки в нем не уронят бизнес-показатели, а малое количество зависимостей позволит провести миграцию полностью, не утянув за собой смежные модули. Высоко-критичные и сильно связанные части (платежи, ядро авторизации) трогают в последнюю очередь — на этот момент команда уже наберёт опыт безопасной миграции.</p><p>Хорошие точки входа обычно: уведомления, генерация отчетов, поиск, история операций, профиль пользователя, отдельная часть каталога. Важно, чтобы у команды была возможность описать контракт: какие данные входят, какие выходят, какие ошибки возможны, какие внешние системы участвуют.</p><p>Допустим, в банковском приложении есть старый модуль истории операций. Он медленный, сложно расширяется, но при этом не выполняет сами транзакции. Это хороший кандидат для первой миграции. Ошибка в истории операций неприятна, но обычно менее критична, чем ошибка в списании денег.</p><p>Команда может вынести чтение истории в отдельный сервис, сначала запустить его в shadow-режиме, потом включить для части пользователей, затем полностью перевести чтение на новую реализацию. При этом критичная транзакционная логика останется в старой системе до тех пор, пока команда не наберет опыт безопасной миграции.</p><h2>Миграция данных: самая сложная часть</h2><p>Большая часть статьи говорит о маршрутизации запросов и переключении трафика. Но в реальных проектах основная сложность лежит ниже — в данных. Старая и новая реализации почти всегда работают с общим состоянием: одной БД, одним хранилищем документов, одним набором очередей. Переехать туда «одним коммитом» нельзя.</p><p>Базовый рабочий приём — Expand-Contract (он же Parallel Change). Изменение схемы делается в три такта. На этапе expand в БД добавляются новые поля, таблицы или индексы, при этом старое поведение полностью сохраняется. Затем — migrate: обе реализации начинают писать и в старое, и в новое место (dual writes), а отдельный фоновый процесс делает backfill — заполняет новые поля историческими данными. После этого читатели по одному переключаются на новую схему. Только когда никто из читателей не использует старую структуру, наступает contract — удаление лишних колонок и таблиц.</p><p>Несколько практических деталей, которые часто упускают:</p><p>·         Dual writes — это не бесплатная операция. Две записи означают две точки отказа. Если одна из них упала, нужно решать, что делать: продолжать ли работу, ставить ли событие в очередь на повтор, помечать ли запись как несогласованную. Простое «сначала пишем туда, потом сюда» в продакшене на нагрузке приводит к расхождениям.</p><p>·         Backfill часто длиннее, чем кажется. На большой таблице миграция в одном UPDATE блокирует продакшен. Поэтому backfill делают батчами по N тысяч строк с паузами, отслеживают прогресс и предусматривают возможность остановить и продолжить.</p><p>·         Онлайн-изменения схемы на крупных таблицах делаются не штатным ALTER TABLE, а специализированными инструментами: gh-ost или pt-online-schema-change для MySQL, встроенные онлайн-механизмы PostgreSQL для индексов и колонок, Liquibase/Flyway — для управления версионированием изменений в репозитории.</p><p>·         Shadow testing данные не покрывает. Можно сравнить, что новая реализация возвращает то же, что и старая, но если за этим стоит другая схема в БД, проверка корректности самой миграции данных — это отдельная работа: сверки, контрольные суммы, выборочный аудит исторических записей.</p><p>Без этих шагов любая красивая фасадная архитектура наталкивается на разъезжающиеся данные — и тогда даже идеальный Strangler Fig снаружи не спасает.</p><h2>Прокси-слой как точка контроля</h2><p>Чтобы постепенно заменять legacy-код, нужно управлять маршрутизацией запросов. Для этого часто создают прокси-слой, API Gateway или фасад, через который проходит обращение к старой и новой логике. В терминах Domain-Driven Design такой слой часто называют Anti-Corruption Layer: он защищает новую реализацию от старых контрактов и наоборот, позволяя двум моделям сосуществовать без взаимного «загрязнения».</p><p>Без такой точки контроля миграция становится хаотичной. Часть клиентов ходит напрямую в старый модуль, часть — в новый, часть использует обходные пути, а команда теряет возможность централизованно переключать трафик.</p><p>Прокси-слой решает несколько задач. Он скрывает детали реализации от клиентов, позволяет направлять часть запросов в новую систему, поддерживает фича-флаги, собирает метрики и упрощает откат.</p><p>В качестве технической основы команды обычно берут один из трех вариантов: классический API gateway (Kong, AWS API Gateway), service mesh (Envoy, Istio) или более простой reverse proxy (NGINX, HAProxy). Service mesh особенно удобен, когда трафик уже идёт внутри Kubernetes-кластера: маршрутизацию можно менять конфигурацией, без правок кода клиентов и сервисов.</p><p>Например, мобильное приложение обращается к endpoint /orders/history. Раньше этот endpoint напрямую обслуживал монолит. После введения API Gateway приложение продолжает ходить по тому же контракту, но внутри gateway может решать, куда направить запрос: в legacy-модуль или новый сервис истории заказов.</p><p>Управление маршрутизацией обычно делается не «всё или ничего», а на основании атрибутов запроса: значения заголовка (X-Migration-Cohort: new), куки, хэша от user-id (стабильное разбиение пользователей на сегменты) или географического региона. Это позволяет выкатывать новую реализацию сначала на одну страну, на сотрудников самой компании или на тестовый сегмент — и только потом расширять охват.</p><p>Для клиента ничего не меняется. Для команды появляется управляемость.</p><h2>Наблюдаемость: без метрик миграция превращается в гадание</h2><p>Постепенная модернизация невозможна без нормальной наблюдаемости. Если команда не видит, что происходит внутри системы, она не сможет безопасно переключать трафик.</p><p>Минимальный набор — это логи, метрики и распределенная трассировка (distributed tracing). Нужно понимать, сколько запросов идет в старую и новую реализацию, сколько ошибок возникает, как меняется latency, где появляются таймауты, какие статусы возвращаются, какие бизнес-метрики проседают.</p><p>Технические метрики стоит формулировать не как «средний ответ» и «процент ошибок», а в терминах SLI и SLO: целевые показатели вида «99.9% запросов на /orders/history отвечают быстрее 300 ms за 30 дней» с явным error budget. Latency измеряется по перцентилям (p50, p95, p99) — среднее значение почти всегда обманчиво, а хвосты распределения говорят о реальном опыте пользователя. На время миграции имеет смысл выставить отдельные SLO для нового и старого пути и сравнивать их.</p><p>В качестве инструментов де-факто стандартом стал OpenTelemetry для трассировок, метрик и логов — единый протокол, который пишет в практически любое хранилище. Дальше — Prometheus и Grafana для метрик, Jaeger или Tempo для traces, Sentry или аналог для ошибок. Для миграции важна возможность фильтровать метрики по «варианту» — отдельно по старому и новому пути — иначе все цифры смешаются и реальную динамику будет не видно.</p><p>Технических метрик недостаточно. Если команда переносит оформление заказа, важно смотреть не только на 500 ошибки и время ответа, но и на конверсию в оплату, количество брошенных корзин, повторы запросов, обращения в поддержку.</p><p>Пример: новая система формально отвечает быстрее старой и не дает ошибок. Но после включения на 10% пользователей падает конверсия в оплату. Причина может быть не в серверной ошибке, а в изменении порядка полей, другом тексте сообщения или потере какого-то edge-case. Без бизнес-метрик команда может решить, что миграция успешна, хотя для продукта она уже создает проблему.</p><h2>Практическая последовательность миграции</h2><p>Рабочая последовательность обычно выглядит так.</p><p>Сначала команда выбирает ограниченный участок системы. На этом этапе важно не просто назвать модуль, а описать его границы. Какие сценарии он закрывает? Кто его вызывает? Какие данные он читает и пишет? Какие внешние интеграции использует? Какие неочевидные бизнес-правила в нем есть?</p><p>Затем поверх legacy-логики создается стабильный контракт. Это может быть API, фасад, gateway или отдельный слой внутри приложения. Главная задача — сделать так, чтобы клиенты зависели не от внутренней реализации, а от понятного интерфейса. На этом этапе полезно вспомнить про contract testing (Pact, Spring Cloud Contract): автотесты со стороны потребителей фиксируют, что именно они ожидают от API, и предупреждают о ломающих изменениях до того, как они доедут до продакшена.</p><p>После этого рядом пишется новая реализация. Она должна повторять текущее поведение, а не сразу становиться «идеальной версией будущего». На этом этапе полезно фиксировать все расхождения: где старая система работает странно, где требования не описаны, где бизнес-правила требуют уточнения.</p><p>Следующий этап — shadow testing. Новая система получает копии реальных запросов, считает результат, но пользователю по-прежнему возвращается ответ legacy. Команда сравнивает результаты и устраняет расхождения.</p><p>Когда новая реализация достаточно стабильна, начинается постепенное переключение через feature toggles. Сначала внутренние пользователи, потом 1% реального трафика, затем 5–10%, затем 50% и только после этого 100%.</p><p>На каждом этапе команда смотрит на метрики. Если всё стабильно, движение продолжается. Если появляются проблемы, флаг выключается, трафик возвращается в legacy, а команда разбирает причины.</p><p>Последний этап — удаление старого кода. Это не формальность, а обязательная часть миграции. И «удалить старый код» — это не один коммит, а явный Definition of Done: вырезана старая ветка кода, удалён фича-флаг, обновлена документация и схемы архитектуры, переименованы или удалены устаревшие дашборды и алерты, обновлены runbook’и для on-call и проведено короткое внутреннее обучение. Если этого не сделать, через полгода никто уже не вспомнит, какой путь актуален, и легаси-ветвление останется в коде навсегда.</p><h2>Откат миграций: дешёвый только пока не пошли записи</h2><p>Откатить миграцию, в которой ещё не было записи в БД, легко: достаточно переключить фича-флаг, и трафик снова идёт через старую реализацию. Откатить миграцию, в которой новая система уже неделю писала данные в новые таблицы, — отдельный, гораздо более тяжёлый разговор.</p><p>Поэтому ещё на этапе проектирования каждое изменение должно сопровождаться явным планом отката. Удобно различать три типа шагов.</p><p>Полностью обратимые шаги. Чтение через новый сервис, расчёт «в тени», новые метрики. Откат — выключить флаг. Это самый комфортный режим, и в нём стоит держать миграцию как можно дольше.</p><p>Обратимые с компенсацией. Новая реализация пишет дополнительные данные (например, дублирует операции в новую таблицу), но старый источник тоже обновляется. Откат возможен, но требует решить, что делать с уже записанными данными: оставить, очистить, синхронизировать. План этих действий должен быть написан до выкатки, не во время инцидента.</p><p>Forward-only. После некоторой точки откат становится невозможен — например, после того, как старая схема удалена или внешние интеграции перенастроены на новый сервис. Такие шаги допустимы, но к ним нужно приходить отдельно, осознанно, с особенно строгими SLO в предыдущем этапе. До forward-only-перехода имеет смысл подержать систему в режиме параллельной работы дольше, чем по графику.</p><p>Базовое правило: ни один шаг миграции не должен уходить в продакшен, если у команды нет письменного ответа на вопрос «как мы откатываемся в случае проблемы». Иначе при инциденте откатываться будут на ходу — и не факт, что успешно.</p><h2>Пример: как тот же сервис мигрировали со второй попытки</h2><p>После неудачного опыта команда взялась за тот же сервис заново, но изменила подход.</p><p>На первом шаге они зафиксировали поведение существующего сервиса. На самые часто используемые сценарии (создание путевого листа, подпись акта осмотра, выгрузка пакета документов за период) написали характеристические тесты на реальных продакшен-данных, обезличенных и сохранённых как фикстуры. Любое будущее изменение поведения теперь падало в CI как явное расхождение.</p><p>Параллельно команда провела инвентаризацию побочных эффектов. Из исходного кода и логов выяснилось, что сервис не только хранит документы, но и: публикует событие в Kafka при смене статуса, инкрементирует счётчик в Redis для рейтинга водителей, отправляет webhook во внешнюю систему партнёра, пишет в таблицу аудита. Каждый из этих эффектов попал в отдельный пункт чек-листа «что должно остаться» в новой реализации.</p><p>Затем команда выбрала первый кусок для выноса — не весь сервис, а только чтение документов (GET /documents/{id} и GET /documents/by-driver/{driver_id}). Это была наименее рискованная часть: ошибки в чтении неприятны, но не ломают финансовые потоки.</p><p>Новый сервис написали на FastAPI рядом со старым. На уровне API Gateway появилось правило маршрутизации: запросы на чтение шли в старый сервис, но в фоне дублировались в новый. Ответ пользователю всегда возвращал legacy, а ответ нового сервиса сравнивался с эталоном и записывался в отдельную таблицу для разбора. Использовали обёртку поверх asyncio.create_task — на ответ пользователя теневой вызов не влиял.</p><p>За три недели shadow-режима команда нашла четыре расхождения. Два оказались багами новой реализации (округление времени, неправильная сортировка вложений). Два — давно забытыми особенностями старого сервиса (одно поле возвращалось в UTC, другое — в локальной зоне; так было исторически, бизнес не возражал, но в новой реализации захотели единый формат). Все четыре зафиксировали явно: баги — починили, особенности — согласовали с продуктовой командой как осознанное изменение.</p><p>Когда расхождений не осталось, включили фича-флаг на сотрудников самой компании. Через неделю — на 1% реальных водителей. Дальше шаг по 5%, 25%, 50%, 100% с паузой в несколько дней между этапами. На каждом шаге следили не только за HTTP-ошибками и latency, но и за продуктовыми метриками: количество подписанных актов, время от открытия документа до подписи, доля повторных запросов. Один раз пришлось откатиться с 25% на 5% — в одном из регионов выросло время отклика из-за неэффективного запроса. Исправили, выкатили снова.</p><p>Через два месяца чтение полностью перешло в новый сервис. Старый код чтения и фича-флаг удалили в том же релизе. После этого по той же схеме мигрировали запись документов, потом публикацию событий, потом импорт из внешних систем. Полная миграция заняла девять месяцев — почти столько же, сколько провалившийся Big Bang, — но продукт всё это время продолжал развиваться, инцидентов не было, и в конце команда осталась с системой, которую понимает.</p><h2>Типичные ошибки при работе с legacy</h2><p>Первая ошибка — пытаться улучшить всё сразу. Команда одновременно меняет архитектуру, бизнес-логику, контракты и инфраструктуру. В результате становится невозможно понять, какая именно часть вызвала проблему. Правильнее сначала воспроизвести поведение, стабилизировать новую реализацию и только потом улучшать.</p><p>Вторая ошибка — недооценивать скрытые зависимости и побочные эффекты. Legacy-код часто делает больше, чем кажется. На один и тот же вызов могут быть навешаны: запись в таблицу аудита, инкремент счётчика в кэше, публикация события в очередь, обновление статуса связанной сущности, инвалидация кэша, дёрганье webhook’а во внешнюю систему. Если в новой реализации воспроизвести только явный путь, скрытые потребители молча перестанут получать данные — и узнают об этом через жалобу бизнеса, а не через ошибку в логах. Поэтому перед выносом любого модуля имеет смысл составить инвентаризацию побочных эффектов: пройтись по коду и логам и выписать каждое нелогичное действие отдельным пунктом чек-листа.</p><p>Третья ошибка — отсутствие наблюдаемости. Без логов, метрик и трассировки команда не управляет миграцией, а угадывает. Особенно опасно смотреть только на технические ошибки и игнорировать бизнес-показатели.</p><p>Четвертая ошибка — не договариваться с бизнесом. Модернизация не должна быть невидимой «инженерной активностью в стол». Её нужно встраивать в roadmap, объяснять эффект и договариваться о приоритетах. Если бизнес не понимает, зачем команда тратит время на миграцию, работа будет постоянно проигрывать новым фичам.</p><p>Пятая ошибка — не удалять старый код. Временное сосуществование старой и новой логики нормально. Вечное сосуществование — нет. Если legacy не удаляется, технический долг не уменьшается, а просто меняет форму.</p><p>Шестая ошибка — не удалять фича-флаги после миграции. Флаг, который сыграл свою роль и больше никогда не выключается, превращается в постоянное ветвление в коде. Через год команда не помнит, можно ли удалить такую ветку или там сидит важный edge-case. Через два — кода с такими «мёртвыми» флагами становится больше, чем основной логики. Поэтому каждый флаг должен заводиться с условием удаления («после полной выкатки и двух недель стабильной работы») и иметь ответственного, кто этим удалением займётся.</p><p>Отдельно стоит упомянуть организационную сторону. Закон Конвея работает и в обратную сторону: если новый и старый код владеются разными командами с разными приоритетами, миграция будет тормозиться независимо от выбранного паттерна. На время миграции имеет смысл явно проговорить, кто отвечает за переход, и не разделять старую и новую реализации между несовместимыми roadmap’ами.</p><h2>Компромиссы, к которым нужно быть готовыми</h2><p>Постепенная модернизация безопаснее Big Bang-переписывания, но она не бесплатна. Некоторое время система будет сложнее, чем раньше. В ней появятся старый и новый код, прокси-слой, фича-флаги, дублирование логики, дополнительные метрики.</p><p>Shadow testing увеличит нагрузку на инфраструктуру, потому что часть запросов будет обрабатываться дважды. Команде придется поддерживать дисциплину: документировать контракты, отслеживать флаги, удалять старую реализацию после миграции, поддерживать contract-тесты в актуальном состоянии.</p><p>Но это контролируемая сложность. Она распределена во времени и управляется инженерными практиками. В отличие от Big Bang-риска, где команда долго работает с минимальной обратной связью, а потом выкатывает один большой релиз с максимальной неопределенностью.</p><h2>Когда Strangler Fig особенно оправдан</h2><p>Постепенная миграция особенно хорошо подходит для систем, где downtime невозможен или слишком дорог. Это финтех, e-commerce, биллинг, мобильные бэкенды с большой аудиторией, высоконагруженные продукты, старые монолиты и системы с большим количеством интеграций.</p><p>Если продуктом ежедневно пользуются сотни тысяч или миллионы людей, нельзя позволить себе «переписать и посмотреть, что будет». Нужно менять архитектуру так, чтобы пользователь не замечал процесса миграции.</p><p>Этот подход также полезен там, где бизнес продолжает активно развивать продукт. Если фичи нельзя заморозить на полгода, модернизация должна идти параллельно с продуктовой разработкой.</p><h2>Когда модернизацию лучше не делать</h2><p>Постепенная миграция — мощный инструмент, но у неё тоже есть стоимость, и иногда правильный ответ — оставить систему как есть. Несколько сценариев, в которых модернизация плохо окупается.</p><p>Продукт, который уходит из эксплуатации. Если через год сервис будет выключен или заменён на покупное решение, тратить квартал на его рефакторинг бессмысленно. Достаточно стабилизировать то, что есть.</p><p>Модуль, который никто не трогает. Если код десятилетней давности продолжает работать, не падает, не требует изменений и не вызывает инцидентов, его «уродливость» — не повод его переписывать. Цель модернизации — упростить будущие изменения; если будущих изменений нет, цели тоже нет.</p><p>Регулируемые системы с тяжёлой ресертификацией. В банковских, медицинских и государственных контурах любое изменение в критичной системе может потребовать повторной сертификации, перепрохождения аудитов, обновления договорной обвязки. В таких условиях стоимость модернизации может на порядок превышать стоимость поддержки текущей реализации, и решение нужно принимать вместе с владельцем продукта и юристами, а не только инженерным составом.</p><p>Простой тест: если на вопрос «какой бизнес-сценарий мы откроем после миграции» нет внятного ответа — модернизацию имеет смысл отложить и заняться чем-то другим.</p><h2>Что получает команда</h2><p>Главный результат постепенной модернизации — управляемость. Команда начинает лучше понимать систему, контролировать изменения и снижать риск инцидентов.</p><p>Появляются понятные контракты, наблюдаемость, практика безопасных релизов, культура удаления старого кода. Разработчики перестают бояться legacy, потому что у них появляется метод, а не только желание «когда-нибудь всё переписать».</p><p>Для бизнеса это тоже выгодно. Продукт продолжает развиваться, сроки становятся более прогнозируемыми, риски крупных сбоев снижаются, а технический долг постепенно уменьшается.</p><h2>Модернизация — это процесс, а не проект</h2><p>Legacy нельзя «починить за квартал». Если система развивалась годами, она не станет простой после одного рефакторинга. Но её можно системно улучшать.</p><p>Strangler Fig Pattern, Branch by Abstraction, feature toggles, shadow testing и аккуратная миграция данных дают рабочую модель: выбрать ограниченный участок, описать контракт, реализовать новую версию, проверить её на реальном трафике, постепенно переключить пользователей и удалить старый код.</p><p>Это не самый быстрый путь. Зато он управляемый. А в зрелых продуктах управляемость важнее скорости.</p><p>Потому что цель модернизации — не написать красивую новую систему. Цель — сделать так, чтобы продукт продолжал развиваться, команда могла безопасно вносить изменения, а пользователи не становились участниками инженерного эксперимента.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</title>
      <link>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</link>
      <comments>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Василенков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</guid>
      <description><![CDATA[<p>Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реализации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch">Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Алиса]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 05:35:02 GMT</pubDate>
      <content:encoded><![CDATA[<figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/240e412b-4307-49f9-b24f-bde7e0a7fd9a.webp" alt="" /></figure><p>Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.</p><p>В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза "end-to-end encryption"? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?</p><p>Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.</p><p>Сразу честно: криптографическую часть я изучал вместе с Claude и ChatGPT — читал спецификации X3DH и Double Ratchet, разбирал примеры, задавал вопросы, пока не сложилась цельная картина. Frontend тоже делался с активной помощью ChatGPT: я backend-разработчик, React для меня не основная среда. Но архитектура, backend, интеграция WebCrypto, модель конвертов, хранение сообщений и принципиальные решения — мои.</p><p>Для меня AI здесь был не заменой понимания, а инструментом — примерно как документация, Stack Overflow и ревью коллег. Без понимания threat model и архитектуры такой проект всё равно не собрать.</p><p>В статье расскажу, как работает E2EE изнутри: как устанавливается сессия через X3DH, как каждое сообщение получает отдельный ключ через Symmetric Ratchet, почему сервер хранит только зашифрованные конверты, и какие ошибки я допустил по дороге.</p><p>Стек: Spring Boot 3, React 18, WebCrypto API, PostgreSQL, Redis, WebSocket/STOMP, Prometheus, Grafana.</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/4b028f37-2de1-46ea-a247-567f74fb3081.webp" alt="" /></figure><h2>Важная оговорка про web-E2EE</h2><p>Когда я говорю, что сервер не может прочитать сообщения, я имею в виду backend, базу данных, WebSocket-слой и уже сохранённые ciphertext-конверты. У них нет ключей и plaintext.</p><p>Но у web-E2EE есть отдельная проблема: frontend-код тоже приходит с сервера. Теоретически скомпрометированный сервер может отдать изменённый JavaScript, который украдёт ключи или plaintext до шифрования. Это ограничение не конкретно моего проекта, а браузерной модели в целом.</p><p>Поэтому корректная формулировка такая: backend не получает ключи и не может расшифровать уже переданные или сохранённые сообщения. Защита от подмены клиентского кода — отдельный слой безопасности: подпись сборок, независимая верификация клиента, desktop/mobile-приложения, reproducible builds.</p><h2>Почему обычный подход не работает</h2><p>Большинство "мессенджеров" на GitHub выглядят примерно так:</p><p>Сервер знает всё. Видит каждое сообщение. Если БД утекла — утекла вся переписка. Если сервер взломали — читай что хочешь. Если завтра компания решит продать данные — технически ничего не мешает.</p><p>E2EE решает это радикально: backend не получает ключи и не хранит plaintext. Сообщение шифруется на устройстве отправителя до отправки в сеть, а расшифровывается только на устройстве получателя.</p><p>Это уже не вопрос политики конфиденциальности в стиле "мы обещаем не читать". Это архитектурное ограничение: если у сервера нет ключа, он не может превратить ciphertext обратно в текст.</p><p>Звучит как магия. На самом деле — два протокола и немного WebCrypto.</p><h2>Главная идея: конверты</h2><p>Представь что Алиса хочет написать Бобу. Вместо того чтобы положить письмо на стол и надеяться что никто не прочитает — она кладёт его в запечатанный конверт. Конверт может открыть только Боб своим ключом. Сервер просто передаёт конверт не заглядывая внутрь.</p><p>Именно так это работает в коде. В базе данных у меня это выглядит так:</p><p>Когда я впервые увидел</p><p>в своей БД вместо текста — стало понятно, что модель наконец работает правильно: сервер создал сообщение, доставил его, сохранил метаданные, но так и не узнал содержимое.</p><p>А вот что сервер возвращает при запросе списка чатов через API:</p><p>Не</p><p>. Не</p><p>. Буквально</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b466ad91-20da-4e64-8b78-f6e08d2851d5.webp" alt="" /></figure><p>(DevTools → Network → ответ API с</p><p>)</p><h2>Откуда берутся ключи: X3DH</h2><p>Главный вопрос: как Алиса и Боб получают общий секрет, если они никогда раньше не общались? И как сделать это так, чтобы сервер только помог передать публичные данные, но сам не смог вычислить итоговый ключ?</p><p>Для этого используется X3DH — Extended Triple Diffie-Hellman, протокол из экосистемы Signal. Его задача — установить общий секрет между двумя устройствами, используя долгосрочные и временные ключи.</p><h2>Что хранится на сервере</h2><p>Когда пользователь регистрирует устройство, он загружает на сервер пакет публичных ключей:</p><p>На сервер уходят только публичные части. Приватные ключи сериализуются и хранятся локально в браузере — и никогда не покидают устройство в сеть.</p><p>Здесь важно сказать честно: хранение приватных ключей в</p><p>Более строгий вариант — использовать Web Crypto API с</p><p>, чтобы приватный ключ жил внутри браузерного crypto runtime и его нельзя было экспортировать в байты. Но у этого подхода есть практическая сложность: ключи нужно переживать между перезагрузками страницы, синхронизировать с IndexedDB, аккуратно восстанавливать состояние устройства и не сломать UX.</p><p>В браузерных E2EE-приложениях обычно приходится выбирать между несколькими вариантами:</p><ul><li>Сериализуемые ключи в localStorage или IndexedDB — проще реализовать, но нужно очень серьёзно относиться к XSS и целостности frontend-кода.</li><li>extractable: false + IndexedDB — безопаснее, но сложнее в реализации и восстановлении состояния.</li><li>Нативное secure storage вроде Android Keystore или iOS Secure Enclave — лучший вариант для мобильных клиентов, но он недоступен обычному web-приложению.</li></ul><p>В текущей версии Chaos Messenger используется первый вариант. Это осознанный компромисс для pet/open-source проекта и удобного запуска в браузере. Переход на non-extractable ключи и более строгую модель хранения стоит в roadmap.</p><p>Ключевой момент: backend всё равно не получает приватные ключи и не может расшифровать сохранённые ciphertext-конверты. Но защита ключей на клиенте — отдельная задача, и её нельзя честно замалчивать.</p><h2>Установка сессии</h2><p>Когда Алиса открывает переписку с Бобом впервые, происходит следующее:</p><p>В классическом X3DH четвёртая DH-операция с one-time prekey опциональна: она выполняется, если сервер выдал доступный OPK получателя. В моей реализации устройство публикует набор one-time prekeys при регистрации, поэтому первое сообщение обычно использует DH4. Если OPK закончились, сессию всё равно можно установить через остальные DH-компоненты, но это уже менее сильный вариант.</p><p>Боб, получив конверт с эфемерным публичным ключом Алисы, повторяет те же операции со своими приватными ключами и получает тот же самый</p><p>. Математика симметрична.</p><p>Сервер в этот момент видит только публичные ключи и зашифрованный конверт. Он помогает устройствам найти друг друга, но не участвует в вычислении секрета.</p><p>Получить</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/e7bbacf3-4fd2-4710-863a-2c710b1f6759.webp" alt="" /></figure><h2>Как шифруется каждое сообщение: Symmetric Ratchet</h2><p>X3DH даёт нам стартовый</p><p>. Но использовать один и тот же ключ для всех сообщений — плохая идея. Если использовать один ключ для всей переписки, компрометация этого ключа сразу открывает весь поток сообщений.</p><p>Решение — симметричный ratchet. После каждого сообщения цепочка ключей продвигается вперёд:</p><p>Визуально это выглядит так:</p><p>используется для шифрования одного сообщения через AES-GCM, после чего уничтожается. Если атакующий компрометирует</p><p>— он прочитает только второе сообщение.</p><p>В рамках такой симметричной цепочки это даёт forward secrecy назад по цепочке: зная текущий или отдельный</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/939a74f7-60c5-4816-85f0-05b5afdc9845.webp" alt="" /><figcaption>(диаграмма схемы chainKey → messageKey)</figcaption></figure><p>Само шифрование сообщения:</p><p>А вот что уходит на сервер — живой пример из DevTools:</p><p>Сервер получает</p><p>и</p><p>. Расшифровать без</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b5e24cda-6fd9-4b15-9f27-3eb9b4f843b0.webp" alt="" /></figure><h2>Важная оговорка: это ещё не полный Double Ratchet</h2><p>В этом проекте реализован Symmetric Ratchet — цепочка, где из</p><p>для каждого сообщения выводится отдельный</p><p>Это защищает прошлые сообщения: если атакующий узнает текущий ключ или отдельный</p><p>, он не сможет откатить HMAC назад и получить старые ключи.</p><p>Но это не полный Double Ratchet из Signal Protocol.</p><p>В полном Double Ratchet есть ещё DH ratchet step: стороны периодически выполняют новый Diffie-Hellman обмен и обновляют root key. Это даёт break-in recovery — возможность восстановить безопасность будущих сообщений после компрометации части состояния.</p><p>В моей реализации DH ratchet step пока нет. Если атакующий получит актуальное состояние сессии на устройстве и сможет продолжать его читать, он сможет расшифровывать будущие сообщения до переустановки сессии. Это честное ограничение текущей версии, и оно стоит первым пунктом в roadmap.</p><h2>Мультиустройство: один пользователь, несколько конвертов</h2><p>Первый неочевидный момент: в E2EE сообщение адресуется не просто пользователю, а конкретным устройствам пользователя.</p><p>Если у Боба два устройства — телефон и ноутбук — нужен отдельный encrypted envelope для каждого устройства. Сервер не может взять один конверт, расшифровать его и "переупаковать" для второго устройства: у него нет ключей и он не знает plaintext.</p><p>Значит при отправке сообщения нужно зашифровать его отдельно для каждого устройства каждого участника чата.</p><p>Для чата где у каждого по 2 устройства — 4 конверта на одно сообщение. Для группы из 10 человек — потенциально 20 конвертов. Это нормально, это цена безопасности.</p><h2>Сервер: хранение и доставка конвертов</h2><p>На сервере сообщение создаётся с контентом</p><p>, а конверты сохраняются отдельно:</p><p>После сохранения — fanout по WebSocket. Каждое устройство получает свой конверт и только его:</p><p>Это важное отличие от обычного WebSocket-чата. В обычном чате сервер рассылает одно и то же событие всем участникам. В E2EE-чате сервер рассылает разные события разным устройствам: payload для каждого устройства содержит свой</p><p>Топик</p><p>— строго персональный. Устройство А не получает конверт устройства Б. Никакого broadcast — только адресная доставка.</p><h2>Архитектура целиком</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/de0e3257-d893-459f-86ed-7ed8eace5d56.webp" alt="" /></figure><h2>Баг который долго не замечал</h2><p>В панели чатов показывается превью последнего сообщения. Я реализовал это через</p><p>Запускаю — в списке чатов у всех написано</p><p>.</p><p>Конечно. Сервер же не знает что там написано.</p><p>Я полчаса думал как решить это на сервере. Потом дошло: нельзя решить это на сервере — у него нет ключей. Решение только на клиенте.</p><p>После того как пользователь открыл чат и сообщения расшифровались — кешируем последнее в памяти:</p><p>Это хороший пример того, как E2EE меняет привычное мышление backend-разработчика. В обычном приложении preview — это поле в SQL-запросе. В E2EE-приложении preview — это локальное клиентское состояние, потому что только клиент видел plaintext.</p><p>Простое решение. Но чтобы к нему прийти нужно было полностью принять идею что сервер здесь просто не при делах — и перестать пытаться решить задачу на его стороне.</p><h2>Rate limiting: дыра которую легко не заметить</h2><p>Эндпоинт</p><p>отправляет SMS с кодом. Без защиты любой скрипт может дёргать его тысячи раз — это называется SMS pumping fraud, SMS стоят реальных денег.</p><p>Redis у нас уже был для хранения онлайн-статусов. Добавил rate limiting поверх него:</p><p>При превышении — HTTP 429 с заголовком</p><p>. Клиент знает через сколько секунд можно повторить.</p><p>Важный нюанс: в текущей реализации, если Redis недоступен, сервис не блокирует авторизацию полностью. Для pet-проекта это приемлемый компромисс: лучше рискнуть одним лишним SMS, чем положить вход в приложение.</p><p>В production я бы сделал строже: fallback in-memory лимит на инстанс, отдельные лимиты по IP и телефону, антифрод-логику и алерты на всплески отправки кодов.</p><h2>Авторизация WebSocket</h2><p>Отдельная история — авторизация WebSocket соединений. HTTP-эндпоинты защищены Spring Security автоматически, но WebSocket — другое дело. STOMP-соединение устанавливается один раз, и нужно проверять JWT при каждом подключении.</p><p>Отдельно важно не только проверить JWT, но и связать WebSocket-соединение с конкретным устройством. Пользователь может быть один, но устройств у него несколько, а encrypted envelope адресован именно</p><p>Поэтому при подключении я проверяю не только токен, но и</p><p>: устройство должно быть зарегистрировано и принадлежать текущему пользователю. Иначе легко случайно превратить per-device E2EE-доставку обратно в обычный broadcast по пользователю.</p><h2>Что получилось — живые скрины</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/1fdfa006-f5c6-4731-a40f-50559be8832d.webp" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/c99164a5-021c-49ac-bcc4-3e38f9cd1c31.webp" alt="" /></figure><p>Что реализовано:</p><ul><li>E2EE-модель с per-device encrypted envelopes</li><li>X3DH session setup + Symmetric Ratchet + AES-GCM</li><li>Мультиустройство</li><li>Личные и групповые чаты</li><li>Realtime доставка через WebSocket/STOMP</li><li>Статусы SENT → DELIVERED → READ</li><li>Редактирование и soft delete сообщений</li><li>Online presence, typing indicator</li><li>Фото-вложения</li><li>Поиск пользователей</li><li>Rate limiting на SMS через Redis</li><li>Prometheus метрики + Grafana дашборд</li><li>Swagger UI с JWT авторизацией</li><li>24 backend-теста на Testcontainers, 12 frontend на Vitest, E2E на Playwright</li><li>GitHub Actions CI</li></ul><p>Что ещё не сделано:</p><ul><li>Полный Double Ratchet с DH ratchet step и break-in recovery</li><li>Ротация signed prekey и аккуратное пополнение one-time prekeys</li><li>Более строгая модель хранения приватных ключей на клиенте: non-extractable CryptoKey + IndexedDB</li><li>Защита от подмены frontend-кода: подпись сборок, независимая верификация клиента, reproducible builds</li><li>Android-клиент с Android Keystore</li><li>Реальный SMS-провайдер вместо кода в backend-логах</li><li>Push-уведомления без утечки содержимого сообщений</li><li>Более строгая metadata-модель для групповых чатов</li></ul><h2>Главный инсайт</h2><p>E2EE — это архитектурное решение, а не библиотека.</p><p>Нельзя взять обычный Spring Boot чат и просто "включить шифрование". Нужно с самого начала проектировать систему так, чтобы backend не был участником доверенной зоны: он не должен получать plaintext, не должен иметь ключи и не должен уметь пересобирать сообщение из данных в базе.</p><p>Это меняет почти всё:</p><ul><li>структуру БД — вместо текста появляются encrypted envelopes</li><li>API — сервер отдаёт [encrypted], а не preview сообщения</li><li>WebSocket — доставка идёт не по пользователю, а по конкретному устройству</li><li>мультиустройство — одно сообщение превращается в несколько ciphertext-конвертов</li><li>frontend — становится полноценной криптографической частью системы, а не просто UI</li></ul><p>Второй инсайт: мессенджер — это не "чат с WebSocket". В E2EE-модели это система доставки зашифрованных конвертов с адресацией по устройствам. Как только это принимаешь, многие странные на первый взгляд решения становятся логичными.</p><h2>Репозиторий</h2><p>Код открыт: <a href="https://github.com/vaazhen/chaos-messenger">github.com/vaazhen/chaos-messenger</a></p><p>В репозитории есть README на русском и английском, диаграммы, скриншоты, security audit, Docker Compose и запуск одной командой.</p><p>Проект не претендует на уровень production-криптомессенджера вроде Signal. Это учебный и инженерный open-source прототип, цель которого — показать, как E2EE меняет архитектуру backend, frontend и realtime-доставки.</p><p>Если вы делали что-то похожее — особенно интересно сравнить подходы к ротации prekey-ов, хранению non-extractable ключей в браузере и реализации DH ratchet step. Вопросы и критика приветствуются.</p>]]></content:encoded>
    </item>
    <item>
      <title>Адаптация открытого симулятора InferSim для оценки загрузки промышленных GPU</title>
      <link>https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom</link>
      <comments>https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Ходыкин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom</guid>
      <description><![CDATA[<p>Рассказываем, как доработали симулятор InferSim от Alibaba: добавили поддержку новых GPU (включая MetaX C500), расширили список моделей с гибридными архитектурами и сделали визуализацию на Streamlit. Инструмент позволяет оценивать задержки и требуемую память без запуска реального инференса и помогает избежать грубых ошибок при планировании закупок оборудования.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom">Адаптация открытого симулятора InferSim для оценки загрузки промышленных GPU</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 May 2026 08:09:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>Планирование аппаратных ресурсов под обслуживание больших языковых моделей — задача с высоким порогом ошибки. Потратишь лишнего — получишь неоправданные расходы. Сэкономишь — столкнёшься с деградацией пользовательского опыта. На российском рынке, где доступ к современным ускорителям ограничен, эта задача становится особенно острой.</p><p>Мы остановились на открытом симуляторе InferSim от Alibaba. Он умеет считать TTFT, TPOT и пропускную способность без запуска реального инференса. Но из коробки поддерживает только несколько топовых GPU и фиксированный набор моделей — для наших сценариев этого было недостаточно. Пришлось дорабатывать.</p><p><b>Как устроен InferSim</b></p><p>В основе симулятора — двухфазная схема. Сначала на целевом железе запускаются микро-бенчмарки: измеряется реальная производительность на типовых операциях внимания и матричных умножениях. Получается таблица коэффициентов Model FLOPs Utilization (MFU) — сколько процентов от теоретического максимума выдаёт конкретная карта на конкретной операции. Затем, уже без доступа к GPU, симулятор на основе этих MFU и аналитической модели вычисляет задержки. Именно такой подход даёт более точные предсказания, чем оценка по паспортной пропускной способности памяти.</p><p><b>Добавляем своё железо</b></p><p>Первым делом мы внесли в hardware/gpu.py поддержку MetaX C500 64GB. Характеристики добавляются через dataclass-экземпляры:</p><p>После этого c500 попадает в словарь gpu_map, и симулятор запускается с ключом --device-type C500 --world-size 2. Значения FLOPS и пропускной способности пришлось оценивать по косвенным источникам — производитель не публикует точных цифр. Позже планируем уточнить их через бенчмаркинг на реальном оборудовании. Таким же способом добавили Nvidia 1xH100 и A100.</p><p><b>Конфигурация моделей и одна болезненная ошибка</b></p><p>Симулятор ожидает стандартный config.json в формате Hugging Face. Для Qwen3-32B подготовили файл qwen3_32b_config.json:</p><p>Ключевой момент — правильное значение head_dim. У Qwen3-32B оно равно hidden_size / num_attention_heads = 5120 / 64 = 80. У нас ушло некоторое время, чтобы понять, почему симулятор выдаёт невалидные результаты: изначально в конфиге стояло значение 128. Пока не исправили — KV-кеш переоценивался, и метрики улетали в неадекватные цифры. После исправления всё встало на свои места.</p><p>Позже добавили поддержку Qwen3.5‑9B с её гибридной архитектурой, построенной на чередовании Gated DeltaNet и Gated Attention. Главная особенность модели в том, что около трёх четвертей слоёв не создают привычного KV‑кеша, а используют линейное внимание – компактное скрытое состояние, которое лишь обновляется с каждым новым токеном, не увеличиваясь в объёме. Это кардинально снижает расход памяти на длинных контекстах, но привносит и свою цену: на коротких дистанциях такая модель проигрывает в скорости Prefill, потому что Gated DeltaNet работает последовательно и хуже утилизирует матричные вычисления GPU.</p><p>Симулятор изначально не умел различать слои двух типов и считал весь KV‑кеш одинаково. Чтобы поддержать Qwen3.5, пришлось доработать расчёт задержек в классе HybridModel: теперь он отдельно обсчитывает full‑attention‑слои с полным кешем и linear‑attention‑слои без кеша, используя параметры num_full_attn_layers и num_linear_attn_layers из конфигурации. В директорию проекта models добавили hybrid_model.py, в котором сделали дополнительные расчёты:</p><p>Без такой дифференциации симулятор для Qwen3.5‑9B показывал E2E порядка 2 500 секунд вместо реальных нескольких секунд – та ошибка, которую мы долго отлавливали.</p><p><b>Визуализация и эксплуатация</b></p><figure><img src="https://media.tproger.ru/user-uploads/137657/2026-04-30/d68ad2ca-cbc0-4fe3-a4af-2f082a55ecdf.webp" alt="" /><figcaption>Пользовательский интерфейс на Streamlit</figcaption></figure><p>Чтобы не разбирать каждый раз текстовый вывод InferSim, сделали веб-интерфейс на Streamlit. Симулятор дёргается через subprocess, результаты парсятся из stdout и визуализируются:</p><ul><li>тепловые карты задержек (Prefill, Decode, E2E Total) для разных длин входных и выходных токенов;</li><li>анализ RPS с расчётом требуемой параллельности и сравнением с доступной памятью;</li><li>информация о занятой памяти в формате «X ГБ из Y ГБ».</li></ul><p>Кэширование через @st.cache_data позволило избежать повторных запусков симуляции при неизменных параметрах. Интерфейс получился достаточно удобным, чтобы даже коллеги без погружения в командную строку могли осмысленно сравнивать конфигурации.</p><p>Приложение упаковано в Docker и лежит в репозитории на <a href="https://github.com/DmitriyKhodykin/InferSim" rel="nofollow">GitHub</a>. Сервисы — сам Streamlit и Nginx в качестве обратного прокси с SSL-терминацией и базовой HTTP-аутентификацией. Деплой на VDS автоматизирован через GitHub Actions: собрали образ, отправили на сервер, перезапустили контейнеры. SSL-сертификаты Let's Encrypt обновляются по cron.</p><p><b>Что в итоге</b></p><p>Адаптированный InferSim не претендует на абсолютную точность — она ограничена качеством бенчмарков и коэффициентов MFU. Но инструмент позволяет избежать грубых ошибок при планировании, что в условиях ограниченного доступа к GPU и их высокой стоимости само по себе немало. Мы продолжаем калибровку симулятора и готовим обновлённые конфигурации для следующих моделей.</p><p>Репозиторий проекта открыт, будем рады замечаниям и предложениям от тех, кто решает схожие задачи.</p>]]></content:encoded>
    </item>
    <item>
      <title>Ученые начали изучать ИИ как мозг, а не как алгоритм</title>
      <link>https://tproger.ru/news/uchenye-nachali-izuchat-ii-kak-mozg--a-ne-kak-algoritm</link>
      <comments>https://tproger.ru/news/uchenye-nachali-izuchat-ii-kak-mozg--a-ne-kak-algoritm?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/uchenye-nachali-izuchat-ii-kak-mozg--a-ne-kak-algoritm</guid>
      <description><![CDATA[<p>Ученые начали изучать ИИ как мозг, а не алгоритм: МРТ моделей, интерпретируемость и попытка понять решения сложных систем</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/uchenye-nachali-izuchat-ii-kak-mozg--a-ne-kak-algoritm">Ученые начали изучать ИИ как мозг, а не как алгоритм</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Наука]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 20 Jan 2026 04:09:56 GMT</pubDate>
      <content:encoded><![CDATA[<p>Современные ИИ-модели уже работают в больницах, судах, школах и даже религиозных организациях.</p><p>При этом парадокс заключается в том, что даже их создатели до конца не понимают, <b>что именно происходит внутри этих систем в момент принятия решения</b>. Классический инженерный подход — разложить алгоритм на формулы и правила — перестал работать.</p><p>Поэтому исследователи начали менять подход. Вместо того, чтобы анализировать ИИ как программу, его все чаще <a href="https://futurism.com/artificial-intelligence/ai-novel-biological-organism">изучают</a> как <b>биологическую систему</b>. Примерно так же, как ученые изучают <b>человеческий мозг</b>.</p><h2>ИИ под «МРТ»: механистическая интерпретируемость</h2><p>Как пишет MIT Technology Review, исследователи из <b>Anthropic</b> разработали инструменты для так называемой <i>механистической интерпретируемости</i>.</p><p>Они позволяют отслеживать, какие внутренние структуры модели активируются при выполнении конкретной задачи.</p><p>По аналогии с медициной, <b>это похоже на МРТ</b>: мы не знаем, как именно работает сознание, но можем наблюдать активность и делать выводы. Один из ученых Anthropic Джош Батсон прямо говорит, что такой анализ ближе к биологии, чем к математике или физике.</p><h2>«Органоиды» для ИИ</h2><p>Еще один подход вдохновлен биологией напрямую. В медицине для исследований используют <i>органоиды</i> — миниатюрные аналоги человеческих органов.</p><p>В ИИ похожую роль играют специальные нейросети, например sparse autoencoder. Это упрощенные модели, внутреннюю логику которых легче анализировать, чем у полноценных LLM.</p><p>Такие «упрощенные мозги» позволяют понять, какие представления формируются внутри модели и как они связаны с итоговым поведением.</p><h2>Вслушаться во внутренний монолог</h2><p>Отдельное направление — <b>мониторинг цепочек рассуждений</b> (chain-of-thought monitoring). Модели просят объяснять, почему они пришли к тому или иному выводу. Это похоже на попытку услышать внутренний монолог человека.</p><p>По словам исследователя OpenAI Боэна Бейкера, этот метод оказался неожиданно эффективным. Он уже помог выявлять случаи, когда модель действует «плохо» или расходится с собственными правилами безопасности и истинности.</p><h2>Почему ученые спешат</h2><p>Главная причина спешки скрыта в тревоге. Специалисты опасаются сложности будущих моделей.</p><p>Есть риск, что ИИ станет настолько запутанным (особенно если новые системы будут проектироваться другими ИИ), что инженеры полностью перестанут понимать принцип работы технологии.</p><p>Опасность не абстрактная. В новостях уже появляются реальные случаи, когда люди вредили себе из-за советов ИИ. И это происходит на фоне того, что мы все еще не понимаем, как именно эти системы формируют ответы</p>]]></content:encoded>
    </item>
    <item>
      <title>LLM как мошенничество: почему вера в ИИ построена на иллюзии надежности</title>
      <link>https://tproger.ru/news/llm-kak-mowennichestvo--pochemu-vera-v-ii-postroena-na-illyuzii-nadezhnosti</link>
      <comments>https://tproger.ru/news/llm-kak-mowennichestvo--pochemu-vera-v-ii-postroena-na-illyuzii-nadezhnosti?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/llm-kak-mowennichestvo--pochemu-vera-v-ii-postroena-na-illyuzii-nadezhnosti</guid>
      <description><![CDATA[<p>Почему вера в LLM строится на иллюзии надежности. И почему ИИ звучит уверенно, но не гарантирует правильных ответов пользователю</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/llm-kak-mowennichestvo--pochemu-vera-v-ii-postroena-na-illyuzii-nadezhnosti">LLM как мошенничество: почему вера в ИИ построена на иллюзии надежности</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Дата-центр]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 14 Jan 2026 11:41:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчик и тимлид Тим Реннер <a href="https://tomrenner.com/posts/400-year-confidence-trick/">опубликовал</a> пост, в котором рассмотрел ИИ с необычной стороны.</p><p>По его словам, человечество несколько столетий приучали к простой мысли: <b>если ответ выдала машина — значит, он правильный</b>.</p><p>Сначала механические калькуляторы, потом компьютеры, потом автоматизация всего подряд. Ошибка человека — норма, <b>ошибка машины — исключение</b>.</p><p>Эта логика отлично работала для арифметики, бухгалтерии и повторяемых операций. Но проблема в том, что большие языковые модели — это не калькуляторы.</p><p>Они выглядят убедительно, говорят уверенно и звучат разумно. Но в то же время они не обладают тем качеством, на котором строилось доверие к машинам: <b>надежностью результата</b>.</p><h2>Как работает классическое мошенничество</h2><p>Любая афера строится по одной схеме. Сначала формируется доверие. Потом играют на эмоциях — <b>страхе или надежде</b>. В конце создается ощущение срочности: действуй сейчас, иначе проиграешь.</p><p>Критика LLM предлагает рассматривать нынешний ИИ-бум именно в этом ключе. Нам показывают системы, которые «почти как человек». Затем годами <b>подогревают доверие к автоматическим решениям</b>. И в итоге включают эмоциональное давление.</p><h2>Страх как основной двигатель</h2><p>Риторика вокруг ИИ с самого начала строилась на <b>страхе</b>. Нам рассказывали о риске вымирания человечества, потере рабочих мест и необходимости срочно адаптироваться.</p><p><b>То есть если не внедришь ИИ, то тебя обязательно вытеснят</b>. Или еще пример: если не научишься пользоваться искусственным интеллектом, то останешься без работы.</p><p>При этом те же компании продолжают активно продавать доступ к своим моделям и наращивать дата-центры. Если бы угроза была реальной, логичным шагом было бы торможение, а не масштабирование.</p><h2>Лесть вместо интеллекта</h2><p>Вторая эмоциональная ловушка — <b>симпатия</b>. Современные LLM намеренно обучены быть максимально дружелюбными и поддерживающими.</p><p>Это результат RLHF — обучения с подкреплением от людей. Модели усваивают простое правило: чем больше ты хвалишь пользователя, тем выше оценка.</p><p>В итоге система одинаково восторженно поддерживает рабочую идею, ошибочный вывод или откровенно бредовую гипотезу.</p><p>Это создает иллюзию понимания и формирует псевдодоверительные отношения между человеком и машиной.</p><h2>Срочность и пузырь ожиданий</h2><p>По словам Реннера, нас убеждают — <b>действовать нужно прямо сейчас</b>. Инвестировать, перестраивать бизнес, увольнять людей, внедрять ИИ везде.</p><p>И компании охотно ведутся на манипуляцию. Хотя реальность оказывается куда прозаичнее: по данным исследований MIT, до 95% ИИ-проектов в индустрии не приносят ожидаемого ROI.</p><h2>Не интеллект, а уверенная болтовня</h2><p>Ключевая мысль материала проста: LLM не являются интеллектуальными системами. Они не понимают, не проверяют и не знают — они угадывают наиболее правдоподобный ответ.</p><p>Но благодаря исторически сложившемуся доверию к машинам, мы принимаем этот ответ за истину. Именно на этом и держится иллюзия.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ не смог заменить людей: IT-компании массово возвращают уволенных сотрудников</title>
      <link>https://tproger.ru/news/ii-ne-smog-zamenit-lyudej--it-kompanii-massovo-vozvrashhayut-uvolennyh-sotrudnikov</link>
      <comments>https://tproger.ru/news/ii-ne-smog-zamenit-lyudej--it-kompanii-massovo-vozvrashhayut-uvolennyh-sotrudnikov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ii-ne-smog-zamenit-lyudej--it-kompanii-massovo-vozvrashhayut-uvolennyh-sotrudnikov</guid>
      <description><![CDATA[<p>ИИ не справился: компании по всему миру возвращают уволенных сотрудников. Автоматизация оказалась дороже и медленнее, чем ожидалось</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ii-ne-smog-zamenit-lyudej--it-kompanii-massovo-vozvrashhayut-uvolennyh-sotrudnikov">ИИ не смог заменить людей: IT-компании массово возвращают уволенных сотрудников</a>»</p>]]></description>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 07 Nov 2025 16:18:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>Последние месяцы в сети активно ходят разговоры о скорой замене разработчиков и прочих айтишников ИИ.</p><p>Но, внезапно, все больше компаний возвращают уволенных работников обратно. По <a href="https://www.techspot.com/news/110139-new-data-shows-companies-rehiring-former-employees-ai.html">данным</a> аналитической фирмы <b>Visier</b>, доля «возвращенцев» (людей, которых снова наняли после сокращений) начала заметно расти.</p><h2>ИИ не заменил людей, как обещали</h2><p>Visier проанализировала данные <b>2,4 млн сотрудников</b> из <b>142 компаний по всему миру</b>. Около <b>5,3% уволенных</b> впоследствии были наняты обратно. Этот показатель держался стабильным несколько лет, но в 2025-м пошел вверх.</p><p>По словам Андреа Дерлер, главного аналитика Visier, ИИ часто использовался как «удобное оправдание» для сокращений, но реальность оказалась куда сложнее.</p><blockquote><i>«Компании быстро столкнулись с тем, что ИИ-решения не могут полноценно заменить людей — только автоматизировать отдельные процессы»</i>, — поясняет она.</blockquote><h2>Цена автоматизации оказалась выше</h2><p>Установка ИИ-инфраструктуры (куда входят серверы, системы безопасности, базы данных) требует огромных инвестиций. Многие компании не учли эти расходы, а интеграция новых инструментов оказалась медленной и затратной.</p><p>В итоге руководители пересматривают эффективность наспех принятых решений с увольнениями и возвращают опытных специалистов, без которых ИИ-продукты попросту не работают.</p><p>Исследование <b>MIT</b> также показывает: <b>95% организаций</b> пока не увидели заметной финансовой отдачи от своих инвестиций в искусственный интеллект. А главный стратег Interactive Brokers Стив Сосник добавляет:</p><blockquote><i>«Возможно, все эти миллиарды потратили не так уж разумно».</i></blockquote><h2>Бумеранг есть</h2><p>Даже стандартные «оптимизации» оказались невыгодными. По данным платформы <b>Orgvue</b>, компании тратят <b>$1,27 на каждый доллар</b>, который пытаются сэкономить за счет увольнений — с учетом выплат, страховок и скрытых издержек.</p><p><b>Как итог</b> — ИИ по-прежнему не способен заменить живых специалистов. Компании, которые пытались «сократить за счет автоматизации», теперь вынуждены возвращать тех, кого уже уволили.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие приложения установить на Windows и macOS</title>
      <link>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</link>
      <comments>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</guid>
      <description><![CDATA[<p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos">Какие приложения установить на Windows и macOS</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Windows 10]]></category>
      <category><![CDATA[Google Chrome]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Xbox]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[Avast]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Safari]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[PlayStation]]></category>
      <category><![CDATA[Microsoft Edge]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[RPA]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Графы]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[MacBook]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Oct 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Итак, вы только что настроили новый компьютер. Операционная система установлена, драйверы обновлены, и теперь пора заняться самым интересным — установкой программ. Но с чего начать? Какие приложения действительно необходимы, а какие просто занимают место?</p><p>Редакция Tproger сделала и адаптировала <a href="https://www.techspot.com/article/2974-desktop-software-essentials/">перевод подборки  программ для Windows и macOS</a>. Здесь вы найдёте проверенные временем решения для работы, развлечений и повседневных задач. Мы сосредоточились на бесплатных и условно-бесплатных приложениях с отличной репутацией, которые решают реальные задачи без навязывания ненужных функций.</p><p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>Неважно, опытный вы пользователь или новичок — здесь найдётся что-то полезное для каждого.</p><h2>Браузеры</h2><p>Браузер — это, пожалуй, самое важное приложение на вашем компьютере. Именно через него проходит большая часть вашей цифровой жизни: работа, развлечения, коммуникации. Выбор браузера влияет не только на скорость загрузки страниц, но и на конфиденциальность, безопасность и удобство работы.</p><ul><li><b>Большинство пользователей:</b> Chrome, Edge или Safari</li><li><b>Защита приватности: </b>Firefox, Brave, Ungoogled Chromium</li><li><b>Опытные пользователи:</b> Vivaldi</li><li><b>Максимальная анонимность: </b>Tor Browser</li></ul><h3>Google Chrome</h3><p>Chrome остаётся самым популярным браузером в мире — и не просто так. Он быстрый, стабильный и отлично интегрируется с экосистемой Google. Огромная библиотека расширений из Chrome Web Store позволяет настроить браузер под любые задачи. Синхронизация между устройствами работает безупречно: вкладки, пароли, закладки и история всегда под рукой.</p><p>Минус один, но существенный: Chrome прожорлив. Если у вас открыто больше десятка вкладок, он может съесть несколько гигабайт оперативной памяти. На компьютерах с 8 ГБ RAM и меньше это становится проблемой.</p><h3>Mozilla Firefox</h3><p>Firefox — это выбор тех, кто ценит приватность и открытость. Mozilla не зарабатывает на продаже ваших данных, а сам браузер активно развивается сообществом. Встроенные инструменты защиты от трекинга работают из коробки, блокируя рекламные сети и скрипты слежения.</p><p>По скорости Firefox не уступает Chrome, а по потреблению памяти даже выигрывает. Библиотека расширений чуть меньше, чем у Chrome, но все основные инструменты доступны.</p><h3>Microsoft Edge</h3><p>Edge построен на том же движке Chromium, что и Chrome, но при этом лучше оптимизирован для Windows. Microsoft вложилась в производительность: браузер работает быстро, потребляет меньше ресурсов и отлично интегрируется с системой.</p><p>Особенно приятны функции вроде Collections (коллекции вкладок для организации исследований), режим чтения и встроенный скриншотер. Edge поддерживает все расширения Chrome, так что переход безболезненный.</p><h3>Brave</h3><p>Brave — это Chrome на стероидах приватности. Браузер блокирует рекламу и трекеры по умолчанию, что делает сёрфинг быстрее и безопаснее. При этом он полностью совместим с расширениями Chrome.</p><p>Есть интересная фишка: Brave Rewards позволяет зарабатывать криптовалюту за просмотр приватной рекламы (если захотите её включить). Спорная механика, но как опция — почему нет. Для тех, кто хочет Chrome без Google и с упором на приватность, Brave — отличный выбор.</p><h3>Safari (только macOS)</h3><p>Если у вас Mac, Safari заслуживает внимания. Это самый энергоэффективный браузер для macOS: на MacBook он даёт ощутимо больше автономности по сравнению с Chrome или Firefox. Интеграция с экосистемой Apple безупречна: Handoff, синхронизация через iCloud, Reading List, автозаполнение паролей.</p><p>Safari быстрый, безопасный и не перегружен функциями. Единственный минус — библиотека расширений заметно скромнее, чем у конкурентов. Но для большинства задач базового функционала хватает.</p><h3>Ungoogled Chromium</h3><p>Для ультраосторожных Ungoogled Chromium удаляет всё отслеживание и сервисы Google — но вам придётся настраивать всё самостоятельно, так как в нём нет автообновлений или встроенной синхронизации.</p><p>Для максимально осторожных пользователей — это Chrome, из которого убрали всю телеметрию Google, отслеживание и облачные сервисы. Браузер работает, но требует ручной настройки: отсутствуют автоматические обновления и встроенная синхронизация между устройствами.</p><h3>Tor Browser</h3><p>Выводя приватность на следующий уровень, Tor Browser маршрутизирует ваш трафик через сеть Tor, анонимизируя ваш IP и многократно шифруя соединение. Он медленнее по задумке, но идеален, если ваш приоритет — максимальная анонимность, а не скорость или удобство.</p><h3>Vivaldi</h3><p>Vivaldi — браузер мечты для тех, кто хочет полного контроля. Стекирование вкладок, тайлинг, кастомные горячие клавиши, встроенная почта и календарь, веб-панели — это полноценный десктопный опыт внутри браузера. Хотите боковую панель браузера, открывающую ваши заметки, RSS-ленты или любой нужный сайт? Vivaldi это умеет.</p><h3>Arc</h3><p>Наконец, Arc — когда-то новичок на рынке браузеров, нацеленный на переосмысление UX: замена традиционной панели вкладок на боковую панель, акцент на веб-приложениях, интегрированные разделённые виды и easels для заметок и доски. К сожалению, компания за Arc прекратила разработку, чтобы полностью переключиться на ИИ с новым браузером, который сейчас в закрытой бета-версии.</p><h2>Управление паролями</h2><ul><li><b>Лучший бесплатный выбор:</b> Bitwarden</li><li><b>Также отлично:</b> 1Password, Dashlane, KeePass</li></ul><p>Миллионы людей продолжают использовать одни и те же слабые пароли на всех сайтах — или, что ещё хуже, держатся за классику вроде «123456». Даже сильные пароли мало помогают, если их повторяют или забывают. Конечно, большинство браузеров предлагают встроенные менеджеры паролей, но они ограничены, привязаны к одному браузеру и менее безопасны, чем специализированные решения.</p><p>Также не будем забывать о passkeys (ключах доступа). Если говорить практически, можно сказать, что passkeys объединяют концепцию пароля и двухфакторной аутентификации (2FA) в одно плавное действие, но гораздо безопаснее и гораздо менее раздражающе.</p><h3>Bitwarden</h3><p>Полностью опенсорсный, зашифрованный и щедрый даже в бесплатной версии. Вы получаете неограниченное количество паролей, синхронизацию между устройствами и приложения для всех платформ. Премиум ($10/год) добавляет безопасный обмен файлами и инструменты 2FA. Также есть доступные семейные и командные планы.</p><h3>1Password</h3><p>Премиум-решение с отполированным интерфейсом, сильной кроссплатформенной поддержкой и отличными функциями вроде Travel Mode (режим путешествий) и полной интеграцией passkeys.</p><h3>Dashlane</h3><p>Предлагает мониторинг даркнета, интеграцию VPN и плавный пользовательский опыт. Есть бесплатный тариф с ограниченными функциями, но премиум-версия конкурентоспособна.</p><h3>KeePassXC</h3><p>Отличная оффлайн-альтернатива, если хотите полного контроля и не против ручной синхронизации (или использования чего-то вроде Syncthing или Dropbox для синхронизации базы данных).</p><p>Пропустите LastPass — когда-то фаворит, он упал в немилость после повторных утечек безопасности. Для душевного спокойствия лучше поискать в другом месте.</p><h2>Продвинутые утилиты и дополнения к ОС</h2><ul><li><b>Поиск + лаунчеры:</b> Everything или Wox (Windows), Alfred или Raycast (macOS)</li><li><b>Пакетные менеджеры: </b>WinGet, Homebrew (macOS)</li><li><b>Для пользователей Windows:</b> PowerToys</li><li><b>Для пользователей Mac: </b>Rectangle</li><li><b>История буфера обмена: </b>ClipClip, Flycut (macOS)</li><li><b>Скриншоты + аннотации: </b>Monosnap</li></ul><h3>Winget</h3><p><b></b>Официальный менеджер пакетов Microsoft, встроенный в Windows 10 и 11. Работает похоже на Chocolatey, но разработан и поддерживается Microsoft. Homebrew — самый популярный менеджер пакетов для macOS. Позволяет быстро устанавливать, обновлять и управлять приложениями и CLI-инструментами с помощью команд в терминале.</p><h3>Everything</h3><p>Что касается поиска, Everything остаётся золотым стандартом сверхбыстрого поиска по именам файлов в Windows. Он индексирует диски за секунды и выдаёт почти мгновенные результаты с минимальной нагрузкой на систему. Если нужен функционал шире базового поиска, Wox использует движок Everything и добавляет мощные возможности лаунчера: поиск файлов, запуск приложений, калькулятор, перевод текста и расширения через плагины. Получается более гибкий опыт в духе Spotlight для Windows.</p><h3>Command Palette/Alfred/Raycast</h3><p>В который раз Microsoft не смогла существенно улучшить встроенный поиск Windows, хотя <b>Command Palette</b> в PowerToys даёт неплохой компромисс для тех, кто не хочет ставить сторонние утилиты.</p><p>На macOS <b>Alfred</b> по-прежнему главный лаунчер и утилита поиска. Он быстрый, интуитивный и в бесплатной версии включает историю буфера и настраиваемые поиски; расширенная автоматизация и «воркфлоу» доступны в Powerpack.</p><p>Тем, кто хочет современную облачно-интегрированную альтернативу с готовыми расширениями и встроенной поддержкой Notion, GitHub и Slack, стоит присмотреться к <b>Raycast</b> — это стильный, дружественный к разработчикам вариант, который стремительно набирает популярность.</p><h3>Менеджеры буфера обмена</h3><p>Они позволяют возвращаться к ранее скопированному — тексту, изображениям, ссылкам — и сильно ускоряют рутинные операции.</p><p>В Windows встроенная история буфера (Win + V) кое-как выручает, но продвинутым пользователям обычно хочется большего. В числе бесплатных рекомендаций — <b>ClipClip</b> для Windows и <b>Flycut</b> для macOS.</p><p>Когда речь о скриншотах и аннотациях, штатные инструменты macOS и Windows заметно выросли. Но многим всё равно удобнее сторонние решения. Нам по-прежнему нравится <b>Monosnap</b> за простоту и возможность мгновенно заливать снимки в облако для шаринга (и это бесплатно).</p><p><b>PowerToys</b> — набор полезных утилит от Microsoft для продвинутых пользователей Windows, повышающих продуктивность и упрощающих рабочие процессы. Среди инструментов: FancyZones для продвинутого раскладывания окон, PowerRename для пакетного переименования, Keyboard Manager для ремапинга клавиш, универсальный color picker и другие.</p><p><b>Rectangle</b> и <b>Magnet </b>— два самых популярных приложения на macOS для закрепления окон: быстрые выравнивание и ресайз по хоткеям или перетаскиванием, примерно как по умолчанию в Windows. Пользователям, пришедшим с Windows и скучающим по системному снапингу, одно из них жизненно необходимо.</p><p>Широко используемая альтернатива в Windows — <b>FancyZones</b> (часть PowerToys), предлагающая продвинутое управление окнами: настраиваемые сетки, зоны привязки и поддержку нескольких мониторов — поэтому это фаворит пауэр-пользователей на Windows.</p><h2>Для рутины и создания проектов</h2><ul><li><b>Бесплатные инструменты: </b>FreeOffice, LibreOffice и WPS Office</li><li>Microsoft Office за единовременную плату $49, Office 2024 — $129</li><li><b>Заметки: </b>Notion, OneNote, Obsidian</li><li><b>Бесплатный PDF-редактор: </b>PDFsam</li><li><b>Почтовые клиенты:</b> Thunderbird, eM Client</li></ul><p>Независимо от того, пишете ли вы тексты, планируете проект, кодите или наводите порядок в цифровой жизни, правильные инструменты решают многое. Сегодня выбор топовых приложений для продуктивности и разработки — часто бесплатных — лучше, чем когда-либо.</p><p><b>Microsoft Office</b> остаётся отраслевым стандартом для профессиональной продуктивности. Подписка Microsoft 365 открывает доступ к Word, Excel, PowerPoint, Outlook и включает 1 ТБ облачного хранилища.</p><p>Среди бесплатных альтернатив LibreOffice — мощный open-source комплект с сильным сообществом (хотя интерфейс некоторым кажется старомодным). Если нужна внешне более майкрософтовская альтернатива, попробуйте<b> FreeOffice </b>или <b>WPS Office Free</b> — у них хорошая совместимость.</p><p>На macOS <b>Pages</b>, <b>Numbers</b> и <b>Keynote</b> предустановлены и более чем достаточны для большинства задач, особенно если вы в экосистеме Apple.</p><h3>Знания и ведение заметок</h3><p><b>Notion</b> стал универсальной платформой организации: заметки, базы данных, to-do, управление проектами, создания совместных рабочих пространств. Если нужны более локальные заметки с синхронизацией между устройствами и поддержкой Markdown, <b>Obsidian</b> — любимец студентов и исследователей.</p><p>Для быстрых кроссплатформенных заметок <b>OneNote</b> — крепкий бесплатный вариант от Microsoft. В качестве альтернатив — <b>Simplenote</b> или open-source <b>Joplin</b>.</p><p>Если вы занимаетесь академической работой и научными статьями, <b>Zotero</b> — отличный open-source менеджер источников с интеграцией в браузер и совместными коллекциями. <b>Milanote</b> предлагает визуальный подход к заметкам и планированию — идеально для креативных пользователей.</p><h3>Работа с PDF</h3><p>Хотя Adobe Acrobat остаётся премиальным редактором PDF, бесплатные альтернативы вроде <b>PDFsam</b> позволяют без усилий объединять, разбивать, редактировать и поворачивать страницы.</p><h2>Инструменты для дизайна и создания контента</h2><p>Для дизайна два выделяющихся приложения хорошо дополняют набор продуктивности. <b>Figma Desktop</b> — совместная платформа интерфейс-дизайна, широко используемая UI/UX-дизайнерами и фронтенд-разработчиками. Десктоп-версия работает быстрее, чем браузер, и лучше интегрируется с ОС — это удобно для сложных дизайн-систем и коллаборации в реальном времени.</p><p><b>Canva</b> с интуитивным drag-and-drop превосходно чувствует себя и как десктоп-приложение. Отлично подходит для быстрых графических материалов для соцсетей, маркетинга, постеров и презентаций. Благодаря тысячам шаблонов и совместной работе это фаворит как у профи, так и у новичков.</p><h2>Почтовые клиенты</h2><p>Если вы предпочитаете отдельный почтовый клиент, у <b>eM Client</b> много функций, бесплатный — до двух аккаунтов. <b>Mozilla</b> <b>Thunderbird</b> — мощная open-source альтернатива с удобной настраиваемостью, а <b>Mailbird</b> — вариант с упором на продуктивность для тех, кого не пугает подписка.</p><h2>Инструменты разработчика</h2><ul><li><b>Редакторы кода и текста:</b> VS Code, Cursor, Sublime Text</li><li><b>Система контроля версий:</b> SourceTree, GitHub Desktop</li><li><b>Контейнеры: </b>Docker</li><li><b>Локальные LLM: </b>Ollama</li><li><b>SFTP, загрузка файлов:</b> WinSCP, Forklift</li></ul><p>Для разработчиков <b>Visual Studio Code</b> — безусловный вариант. Бесплатный, лёгкий, но мощный, кроссплатформенный — тысячи расширений покрывают практически любой язык, фреймворк или инструмент. Набирающая популярность альтернатива — <b>Cursor</b>, редактор на базе VS Code с усиленной AI-помощью. Он подходит для связки с LLM: даёт inline-подсказки, генерирует код, рефакторит и позволяет редактировать кодовую базу.</p><p>При этом<b> Sublime Text </b>остаётся для скорости и простоты, а <b>Notepad++</b> — отличный лёгкий редактор для быстрых правок в Windows.</p><p>Для Git графические клиенты <b>SourceTree</b> и <b>SmartGit</b> дают понятный интерфейс для управления репозиториями на GitHub, GitLab и не только. <b>GitHub Desktop</b> раньше был простоват и не слишком хорош, но сейчас существенно прибавил — всё ещё простой для работы, но в хорошем смысле.</p><p>Для локальных окружений, API-тестирования или терминального воркфлоу инструментов — пруд пруди. Например, <b>Docker Desktop</b> стал стандартом для тех, кто собирает и запускает контейнеризированные приложения на разных платформах. Он упрощает настройку окружений и держит систему чистой.</p><p><b>Ollama</b> позволяет запускать большие языковые модели (LLM) локально с минимальной настройкой. Поддерживает модели вроде LLaMA, Mistral и другие open-weight альтернативы GPT, так что можно работать с ИИ прямо на своём компьютере без отправки данных в облако.</p><p>Если вы работаете с облачными хранилищами или SFTP, WinSCP (Windows) и ForkLift (macOS) — отличные клиенты с двухпанельным управлением файлами, синхронизацией и автоматизацией. На Mac также популярны <b>Commander One</b> и <b>Transmit</b> — у них есть встроенные подключения к удалённым и облачным путям.</p><h3>Безопасность</h3><p>И Windows, и macOS сегодня предлагают более чем достойную встроенную защиту. С защитой в реальном времени, интеграцией с файерволом и биометрией вроде <b>Windows Hello</b> и <b>Touch ID</b>. Для обычных пользователей, которые соблюдают гигиену безопасности: не скачивают сомнительное ПО, используют менеджеры паролей и включают 2FA — встроенной защиты часто хватает.</p><p>Для продвинутых пользователей есть дополнительные варианты.</p><p>Отличное первое дополнение — <b>Malwarebytes</b>. Это давний фаворит в обнаружении и удалении malware, adware и руткитов; бесплатная версия по-прежнему хороша для ручных сканов. В платной — защита в реальном времени без ощутимой просадки производительности.</p><p>Если не хочется ставить традиционный антивирус, есть достойные альтернативы. <b>Emsisoft Emergency Kit</b> — мощный портативный сканер, который можно запускать с флешки: идеально для редких глубоких сканов или лечения заражённых систем без установки чего-либо. Просто подключаете, когда нужно.</p><p>Ещё один отличный инструмент — <b>VirusTotal</b>: бесплатный веб-сервис, который проверяет файлы и URL через десятки антивирусных движков. Прежде чем открывать подозрительную загрузку, можно залить файл на VirusTotal.com или использовать их расширение для браузера, чтобы проверять ссылки в реальном времени. Быстро, просто и удобно для осторожных пользователей.</p><p>Мы не поклонники установки антивирусов на каждый компьютер и не полностью в курсе, какие сейчас показывают лучшие результаты. Тем не менее, <b>AV-Tes</b>t давно и регулярно оценивает популярные решения, поэтому советуем смотреть их свежие отчёты. В текущем списке высокооценённых — <b>Avast, BitDefender, ESET </b>и другие; многие из них предлагают бесплатные версии для пробы.</p><h3>Удалённый доступ и вспомогательные утилиты</h3><p><b>RustDesk</b> стал современным, ориентированным на приватность аналогом <b>TeamViewer</b>. Он с открытым исходным кодом, быстрый и работает кроссплатформенно.</p><p>Тем, кому нужны более устоявшиеся коммерческие решения, подойдёт <b>AnyDesk</b>, который остаётся лёгким и надёжным вариантом для личного и командного использования.</p><p>Превращение смартфона в пульт дистанционного управления компьютером бывает невероятно удобно — будь то презентации, потоковое видео или просто навигация с дивана.</p><p><b>Remote Mouse</b> — простой и эффективный способ эмулировать мышь и клавиатуру с телефона. Для более продвинутых сценариев можно использовать приложения вроде <b>Unified Remote.</b></p><h2>Редактирование изображений и видео</h2><ul><li><b>Профессиональный видеомонтаж:</b> DaVinci Resolve</li><li><b>Простой видеомонтаж: </b>CapCut</li><li><b>Редакторы изображений:</b> GIMP, PhotoDemon, Pixelmator Pro</li><li><b>Бесплатное улучшение изображений:</b> Upscayl</li><li><b>RAW-редактирование:</b> RawTherapee</li><li><b>Видеоконвертация:</b> HandBrake</li></ul><p>Если вам нужен бесплатный инструмент для редактирования изображений, <b>GIMP</b> — один из самых мощных вариантов. Он предоставляет профессиональные возможности, такие как слои, маски и настраиваемые плагины, что делает его идеальным для продвинутых пользователей. Если вы ищете более лёгкий редактор с чистым интерфейсом, стоит обратить внимание на <b>PhotoDemon</b>. Он работает как портативное приложение на Windows, поддерживает слои и редактирование — отличный выбор для быстрых правок или ретуши.</p><p>Если вы хотите увеличивать разрешение изображений без потери качества, <b>Upscayl</b> — мощный и бесплатный инструмент для апскейла. Он кроссплатформенный, и по нашим тестам показывает результаты на уровне платных решений вроде Topaz.</p><p>Для векторной графики — логотипы, иллюстрации — <b>Inkscape</b> является достойным open-source вариантом с полной поддержкой редактирования SVG. <b>Krita</b> — ещё один отличный бесплатный инструмент, особенно подходящий для цифровой живописи и художественного творчества.</p><p>Для редактирования RAW-фотографий, <b>Darktable</b> и <b>RawTherapee</b> — два высококлассных open-source аналога Adobe Lightroom. Их широко используют фотографы, которым нужна работа с изображениями без подписки.</p><p>Для простых GIF-анимаций <b>ScreenToGif</b> — удобная утилита, мгновенно записывающая область экрана и экспортирующая в GIF или другие форматы с оверлеями.</p><p>Среди платных фоторедакторов <b>Adobe Photoshop</b> остаётся лидером, но для macOS есть <b>Pixelmator Pro</b> — мощное приложение с разовой оплатой, а <b>Affinity Photo</b> предлагает профессиональные возможности по более доступной цене.</p><h3>Видеомонтаж и конвертация</h3><p><b>DaVinci Resolve</b> считается лучшим бесплатным профессиональным ПО. Его используют и энтузиасты, и профессионалы — от простого тримминга до цветокоррекции и сложного постпродакшена.</p><p><b>Shotcut</b> и <b>Kdenlive</b> — тоже сильные бесплатные варианты, предлагают более простой фукнционал с хорошим набором функций для новичков и продвинутых пользователей. <b>CapCut</b>, изначально мобильное приложение, теперь доступен на десктопе — идеально подходит для быстрых монтажей и роликов для соцсетей.</p><p>Для пользователей macOS <b>iMovie </b>предустановлен и остаётся надёжным вариантом для базовых видео. Если вам нужно просто конвертировать или сжимать видео в современные форматы, <b>HandBrake</b> — проверенное бесплатное решение с поддержкой и вариацией входных и выходных форматов.</p><p>Тем, кто ищет топовый профессиональный монтаж, подойдут <b>Adobe Premiere Pro</b> и<b> Final Cut Pro</b>, но там есть дорогая подписка и более высокий порог входа.</p><h2>Коммуникации и совместная работа</h2><ul><li><b>Для повседневной связи: </b>WhatsApp, Messenger и Zoom, если у вас нет FaceTime</li><li><b>Для приватности: </b>Signal</li><li><b>Для работы:</b> Slack, Teams</li><li><b>Для игр и общения: </b>Discord</li></ul><p>Выбор коммуникационных и мессенджерных приложений в первую очередь зависит от того, с кем вы общаетесь — с семьёй, друзьями, коллегами или игровым сообществом. Вот актуальная картина:</p><p>Для личной переписки <b>WhatsApp</b> и <b>Facebook Messenger</b> остаются самыми массовыми платформами по всему миру. У них есть десктопные клиенты и встроенное сквозное шифрование по умолчанию. <b>Telegram</b> также крайне популярен благодаря синхронизации между устройствами и поддержке крупных чатов. Пользователи Apple продолжают активно использовать <b>iMessage</b> для приватного, шифрованного общения в экосистеме Apple.</p><p>Из видеоконференций <b>Zoom</b> остаётся одним из лидеров для групповых звонков и онлайн-ивентов, предлагая локальные записи, демонстрацию экрана и комнаты (breakout rooms). Однако бесплатный тариф ограничивает 1:1 звонки 40 минутами, если не перейти на платный план. Zoom поддерживает сквозное шифрование, но при включении E2EE отключаются некоторые функции вроде облачной записи и комнат.</p><p><b>Google Meet</b> — отличный браузерный аналог без необходимости установки, который заметно улучшился по качеству и удобству использования. Многие компании применяют Meet в ежедневной работе и гибридных форматах. Если ваша организация использует Microsoft 365, скорее всего, вы работаете в <b>Microsoft Teams</b>, который уже заменил Skype на корпоративном уровне. Teams поддерживает большие созвоны, обмен файлами и глубоко интегрирован с Office. Сквозное шифрование доступно, но только для 1:1 звонков.</p><p><b>FaceTime</b> по-прежнему отличный для пользователей Apple, и благодаря новым обновлениям к звонку теперь могут присоединяться и пользователи Android/Windows по ссылке через браузер.</p><p>Когда приватность критична, <b>Signal</b> — один из лучших вариантов. Разработан некоммерческой организацией, бесплатен, open-source, без рекламы, использует надёжное сквозное шифрование для сообщений и звонков.</p><p>Для рабочих коммуникаций<b> Slack</b> и <b>Teams</b> продолжают использоваться в бизнес-среде. Бесплатный тариф Slack ограничивает историю 90 днями и звонки, но остаётся любимцем стартапов и малых команд благодаря интеграциям и ботам. <b>Cisco Webex</b> — также крепкий вариант, особенно популярен в корпоративной среде.</p><p>Если вы работаете с креативными командами, сообществами или геймерами, <b>Discord</b> стал явным лидером. Изначально созданный для игр, он превратился в полноценную коллаборативную платформу с текстом, голосом и видео, стримингом экрана и ботами для автоматизации. Многие комьюнити — и даже IT-компании — используют Discord как основной рабочий инструмент.</p><p>Для внутриигрового голосового чата <b>TeamSpeak </b>остаётся олдскульным достойным вариантом: можно использовать анонимно и получать полный контроль над сервером. Встроенный чат Steam лучше, чем раньше, и помогает в игровой координации, но большинство всё же выбирает Discord.</p><h2>Гейминг, моддинг и стриминг</h2><ul><li><b>Игровые платформы: </b>Steam, Epic Games, EA App, Ubisoft, GOG</li><li><b>Последние драйверы для GPU:</b> Nvidia GeForce, AMD Radeon, Intel Arc</li><li><b>Стриминг:</b> OBS Studio</li></ul><p><b>Steam</b> остаётся центром PC-игр. Это не только магазин, но и социальная платформа, лаунчер и площадка с модами, облачными сохранениями и встроенным стримингом. Регулярные распродажи, поддержка контроллеров и сообщества делают его обязательным для любого PC-геймера.</p><p>Не менее важно установить Epic <b>Games Store</b>. Хотя библиотека меньше, он регулярно раздаёт бесплатные игры, доступные любому с аккаунтом Epic. Это также must-have, если вы играете в Fortnite.</p><p>Помните: не все издатели размещают игры на Steam или Epic. Для тайтлов EA понадобится <b>EA App (ранее Origin)</b>, для Ubisoft — <b>Ubisoft Connect</b>, для Blizzard/Activision — <b>Battle.net</b>, а GOG Galaxy не только предлагает DRM-free классику, но и может агрегировать игры из других лаунчеров.</p><p>Некоторые сверхпопулярные игры распространяются отдельно: Minecraft (через Minecraft.net или Microsoft Store), Roblox, League of Legends и Valorant (через лаунчер Riot Games). Если вы новичок и ищете что-то лёгкое, можно начать с free-to-play тайтлов или классики вроде <b>Brutal Chess</b> или <b>GZDoom</b>.</p><p>Если вы играете с геймпадом, Windows поддерживает Xbox-контроллеры из коробки. PlayStation-контроллеры теперь тоже отлично работают: Steam через <b>Steam Input </b>поддерживает DualShock 4 и DualSense практически во всех играх. При необходимости глубокой кастомизации можно использовать DS4Windows, но большинству хватает возможностей Steam.</p><p>Если вас интересует моддинг, хороший менеджер модов время в этой жизни:</p><ul><li><b>Mod Organizer 2</b> — лучший для RPG Bethesda (Skyrim, Fallout).</li><li><b>Vortex (от Nexus Mods)</b> — дружелюбный к новичкам и поддерживает широкий перечень игр.</li></ul><p>Для записи геймплея или стриминга <b>Nvidia ShadowPlay</b> и <b>AMD Radeon ReLive</b> подходят для простых задач. Но для стриминга с вебкой, сценами, оверлеями или многосценовым продакшеном <b>OBS Studio</b> — безальтернативный лидер. Он бесплатный, open-source и подходит как новичкам, так и про-стримерам (Twitch, YouTube, Kick и т.д.). <b>SignalRGB</b> помогает синхронизировать весь RGB-зоопарк и задавать динамические эффекты.</p><h2>Мониторинг железа и разгон</h2><ul><li><b>Мониторинг: </b>CPU-Z, HWMonitor, HWiNFO64</li><li><b>Настройка и разгон:</b> Afterburner, FanControl, ThrottleStop, SignalRGB</li></ul><p>Одно из первых дел, которое стоит сделать после сборки ПК — убедиться, что компоненты соответствуют ожиданиям и работают корректно. К счастью, существует много инструментов, позволяющих мониторить, тестировать и настраивать железо.</p><p>Начать стоит с <b>CPU-Z</b> — классического бесплатного инструмента, показывающего информацию о CPU, материнской плате, оперативной памяти и других компонентах. Он также умеет запускать простой стресс-тест и бенчмарк для проверки стабильности.</p><p>Для более широкого мониторинга <b>HWMonitor</b> показывает температуры, напряжения и скорости вентиляторов в реальном времени. Если нужно ещё глубже и с более гибким интерфейсом — <b>HWiNFO64</b> считается одним из лучших: поддерживает логирование датчиков и интеграцию с оверлеями (например, RTSS или Rainmeter).</p><p>Чтобы проверить хранилище, <b>CrystalDiskMark</b> измеряет скорость чтения/записи SSD и HDD — это помогает понять, соответствует ли диск заявленным характеристикам. Глубже оценить здоровье накопителя можно в <b>Hard Disk Sentinel</b>, который анализирует SMART-данные, оценивает срок службы и предлагает ограниченный ремонт.</p><p>С точки зрения охлаждения, всё больше геймеров используют утилиты для настройки вентиляторов. <b>FanControl</b> — актуальный бесплатный фаворит: поддерживает сложные кривые оборотов, привязку к датчикам, и совместим с большинством современных материнских плат. На Mac одной из лучших утилит остаётся<b> Macs Fan Control.</b></p><p>Для настройки видеокарт долгое время стандартом был <b>MSI Afterburner</b> — для разгона, настройки вентиляторов и мониторинга с RTSS-оверлеем. Однако из-за замедления обновлений многие сегодня используют встроенные утилиты от <b>Nvidia (GeForce Experience/Control Panel)</b> и <b>AMD (Adrenalin Software)</b>.</p><p>Если вы меняете видеокарту или подозреваете проблемы с драйверами, обязательно используйте <b>Display Driver Uninstaller</b> (DDU) — он полностью очищает систему от старых драйверов перед переустановкой.</p><p>Если вы играете на ноутбуке или хотите снизить нагрев и повысить автономность, <b>ThrottleStop</b> остаётся одним из лучших инструментов для андервольта CPU и настройки энергопрофилей.</p><p>Тем, кто серьёзно подошёл к разгону CPU и GPU, пригодятся фирменные инструменты вроде <b>Intel XTU (для Intel) и AMD Ryzen Master</b> — они дают контроль над частотами, напряжениями и лимитами мощности.</p><h2>Управление файлами</h2><ul><li><b>Поиск больших файлов:</b> SpaceSniffer, WizTree, Disk Drill (macOS)</li><li><b>Поиск дубликатов: </b>dupeGuru</li><li><b>Архивы и ZIP: </b>PeaZip, The Unarchiver</li><li><b>Очистка: </b>BCUninstaller, CCleaner Portable, AppCleaner (macOS)</li></ul><p>Чтобы грамотно управлять файлами и освобождать место, нужно понимать, что именно занимает пространство. На Windows популярны <b>WinDirStat и WizTree </b>— быстрые бесплатные инструменты для визуализации диска. <b>SpaceSniffer</b> предоставляет динамическую схему.</p><p>На macOS — <b>GrandPerspective и Disk Drill </b>предлагают аналогичный функционал, а <b>DaisyDisk</b> — один из самых красивых платных вариантов с молниеносным сканированием.</p><p>Если дубликаты засоряют диск, <b>dupeGuru</b> (open-source) отлично справляется с поиском повторяющихся изображений и музыки, даже слегка изменённых.</p><p>Для пакетного переименования файлов (например, фоточек с камеры) существует гибкий <b>Bulk Rename Utility</b>. Если нужно что-то попроще: <b>PowerRename</b> из PowerToys (Windows) или встроенный инструмент в <b>Finder</b> (macOS) подходят большинству.</p><p>Встроенный <b>File Explorer</b> в Windows недавно получил вкладки и стал удобнее, но <b>Files</b> (open-source) — современная альтернатива с улучшенным UX. Кто-то ещё пользуется <b>Total Commander</b> или <b>Directory Opus</b>, благодаря расширяемости и скриптам, хотя новичкам они кажутся устаревшими. Для просмотра изображений по-прежнему незаменим <b>IrfanView</b>.</p><p>Для работы с архивами, если не устраивает встроенный ZIP-менеджер Windows, скачайте <b>7-Zip</b> или <b>PeaZip</b>. На Mac лучшим бесплатным инструментом остаётся <b>The Unarchiver</b>.</p><p>Для очистки системы важно выбирать надёжные утилиты. На Windows, <b>BCUninstaller (Bulk Crap Uninstaller)</b> — один из самых проверенных для удаления программ и их хвостов. <b>BleachBit</b> и <b>Wise Disk Cleaner</b> — безопасные альтернативы <b>CCleaner</b> (лучше использовать Portable-версию, так как стационарная испортила репутацию). На Mac <b>AppCleaner</b> всё ещё любим за полное удаление приложений без мусора.</p><p>Если вы организуете большую библиотеку медиа, стоит взглянуть на open-source <b>TagSpaces</b>, позволяющий тегировать файлы локально, без облака.</p><h2>Облачное хранилище и резервное копирование</h2><ul><li><b>Простая синхронизация: </b>Dropbox, Google Drive</li><li><b>Фото между устройствами:</b> Apple iCloud, Google Photos</li><li><b>Приватность: </b>pCloud, Proton Drive, Internxt</li><li><b>Полные бэкапы:</b> Backblaze, IDrive</li></ul><h3>Базовое облачное хранилище</h3><p><b>Dropbox</b> — один из самых простых в использовании, хотя бесплатных 2 ГБ мало.</p><p><b>
Google Drive</b> — 15 ГБ бесплатно, используется Gmail, Docs и Photos. Идеален для Android.</p><p><b>
OneDrive</b> — идёт в комплекте с Windows и Microsoft 365. 1 ТБ включён в большинство Office-планов. Хотя по скорости и интерфейсу уступает Dropbox/Google.</p><p><b>
iCloud Drive</b> — лучший выбор для пользователей Apple, глубокая интеграция с macOS/iOS. Бесплатно 5 ГБ, далее по планам до 2 ТБ.</p><p><b>
Proton Drive</b> — шифрованная альтернатива от создателей ProtonMail.</p><h3>Фото и видео</h3><p>На macOS приложение <b>Photos</b> автоматически создаёт альбомы по людям и локациям, синхронизирует всё через iCloud.</p><p>На Windows мы часто рекомендуем <b>Google Photos</b>, который предлагает аналогичный набор функций и автоматизацию. Для пользователей Android — это стандарт по умолчанию. Да, раньше было безлимитно, теперь фото занимают общее место Google Drive (15 ГБ), которое быстро заканчивается.</p><h3>Полные бэкапы</h3><p>Если требуется сохранять всю систему, терабайты медиа, состояние дисков используйте отдельные сервисы резервного копирования.</p><p><b>Backblaze</b> — топ в этой категории: фиксированная цена (~$8/месяц за устройство), безлимитное хранилище, минимум настроек: установил и забыл.</p><p><b>IDrive</b> — более контролируемый вариант, поддерживает несколько устройств, внешние диски и версионность файлов.</p><p>Простой для не-технарей — <b>Carbonite</b>, с возможностью быстрого восстановления и круглосуточной поддержкой.</p><p>Профессионалам — <b>Acronis Cyber Protect</b>: клон дисков, анти-вымогатель, гибридное облако.</p><h3>Для особо чувствительных данных</h3><p>Если вы храните личные финансовые документы или медицинские сведения, стоит выбрать end-to-end решений.</p><p><b>pCloud</b> предлагает клиентское шифрование (через платный «Crypto»). Даже при взломе аккаунта файлы не расшифруются без ключа.</p><p><b>Proton Drive </b>— аналогичный подход, с прозрачностью open-source.</p><h2>Прочие полезные инструменты, не вошедшие в другие разделы</h2><p><b>Google Earth</b> — для любителей карт и планировки.</p><p><b>qBittorrent</b> — лучший torrent-клиент: чистый, без рекламы, с поиском. Альтернатива — легковесный Transmission или кастомизируемый Deluge.</p><p><b> iMazing</b> — must-have для владельцев iPhone: резервные копии, экспорт медиа, проверка батареи, конвертация HEIC.</p><p><b>AirDroid</b> — аналог для Android: управление файлам, уведомления, SMS с ПК.</p><p><b>Rufus</b> — лидер по созданию загрузочных USB-дисков для Windows/Linux.</p><p><b>Open Shell </b>— возвращает классическое меню «Пуск» в стиле Windows 7.</p><p><b>Stretchly</b> — напоминает делать перерывы — полезно удалёнщикам и фрилансерам.</p><p><b>AutoHotkey</b> — скриптовый движок для Windows: переназначение клавиш, макросы, автоматизация.</p><p><b>VPN: </b>бесплатные — ProtonVPN, Windscribe, TunnelBear (с лимитом). Платные — ProtonVPN, NordVPN.</p><p><b>Calibre</b> — лучшее бесплатное решение для чтения, организации и конвертации e-book (EPUB, MOBI, PDF и др.).</p><h2>Заключение</h2><p>Итак, мы прошлись по основным категориям приложений, которые стоит установить на новый компьютер. Конечно, этот список не исчерпывающий — у каждого свои задачи и предпочтения. Но если вы установите хотя бы половину из перечисленного, ваш компьютер станет гораздо удобнее и функциональнее.</p><p>Несколько советов напоследок:</p><ol><li><b>Не захламляйте систему.</b> Устанавливайте только то, что действительно используете. Чем меньше фоновых процессов — тем быстрее работает компьютер.</li><li><b>Следите за обновлениями.</b> Большинство программ обновляются автоматически, но некоторые требуют ручного апдейта. Свежие версии — это не только новые функции, но и закрытые уязвимости.</li><li><b>Делайте резервные копии.</b> Никакие утилиты не спасут от отказа жёсткого диска. Регулярный бэкап на внешний носитель или в облако — обязательная практика.</li><li><b>Экспериментируйте. </b>Попробуйте несколько браузеров, редакторов, плееров. То, что подходит большинству, может не подойти именно вам.</li><li><b>Читайте отзывы.</b> Перед установкой незнакомого приложения загляните на форумы или Reddit. Сообщество быстро выявляет проблемы и подводные камни.</li></ol><p>Теперь ваш компьютер готов к работе, учёбе, развлечениям — и чему угодно ещё. Главное — не забывайте, что инструменты важны, но ещё важнее то, как вы их используете. Удачи!</p>]]></content:encoded>
    </item>
    <item>
      <title>Со-основатель OpenAI Карпати опубликовал open-source клон ChatGPT</title>
      <link>https://tproger.ru/news/so-osnovatel-openai-karpati-opublikoval-open-source-klon-chatgpt--skachat-mozhet-lyuboj-zhelayushhij</link>
      <comments>https://tproger.ru/news/so-osnovatel-openai-karpati-opublikoval-open-source-klon-chatgpt--skachat-mozhet-lyuboj-zhelayushhij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/so-osnovatel-openai-karpati-opublikoval-open-source-klon-chatgpt--skachat-mozhet-lyuboj-zhelayushhij</guid>
      <description><![CDATA[<p>Сооснователь OpenAI Андрей Карпати выложил NanoChat — open-source клон ChatGPT, который можно обучить и запустить всего за $100</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/so-osnovatel-openai-karpati-opublikoval-open-source-klon-chatgpt--skachat-mozhet-lyuboj-zhelayushhij">Со-основатель OpenAI Карпати опубликовал open-source клон ChatGPT</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Tesla]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 14 Oct 2025 03:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Экс-директор по ИИ в Tesla и со-основатель OpenAI <b>Андрей Карпати</b> <a href="https://github.com/karpathy/nanochat">выложил</a> в открытый доступ проект <b>NanoChat</b>. По его словам, это «лучший ChatGPT, который можно построить за $100». Репозиторий уже набрал более <b>5000 звезд на GitHub</b>.</p><p>По словам Карпати, NanoChat — это <b>полный стек LLM-платформы</b>, включающий токенизацию, обучение, дообучение, оценку, инференс и веб-интерфейс, позволяющий общаться с моделью прямо из браузера. Все работает на<b> одном узле с 8 GPU H100</b> и запускается одной командой:</p><p>Обучение занимает около четырех часов и стоит примерно <b>$100</b> при аренде облачного сервера Lambda Labs. После этого можно открыть локальный веб-интерфейс и «болтать» с собственной моделью как с ChatGPT.</p><h2>Собери сам</h2><p>Карпати описывает NanoChat как <b>«чистый, минималистичный и хакабельный код»</b>, который подойдет тем, кто хочет понять, как устроен ChatGPT изнутри.</p><p>Репозиторий включает всего <b>около 8000 строк кода</b> и написан в основном на <b>Python</b> (89%), с минимальными вставками на <b>Rust</b> и <b>HTML</b>.</p><blockquote><i>NanoChat — это не гигантская инфраструктура, а сильная и прозрачная база, на которой можно построить свой LLM с нуля.</i></blockquote><p>Он также подтвердил, что проект станет <b>частью нового курса LLM101n</b>, который готовит его команда Eureka Labs.</p><h2>Что под капотом</h2><p>NanoChat использует простую пайплайн-архитектуру с поддержкой этапов <b>pretraining</b>, <b>fine-tuning</b>, <b>evaluation</b> и <b>serving</b>, а также встроенный сервер чата на Python (python -m scripts.chat_web).</p><p>Результаты обучения сохраняются в виде «отчетной таблицы» с ключевыми метриками (ARC, GSM8K, MMLU).</p><h2>Open source и вдохновение</h2><p>NanoChat распространяется под <b>лицензией MIT</b> и вдохновлен предыдущими проектами Карпати — nanoGPT и сообществом разработчиков на Hugging Face.</p><p>Как подчеркивает автор, цель NanoChat — <b>демократизировать ИИ</b>, сделав разработку больших языковых моделей понятной и доступной «для всех, у кого есть $100 и немного любопытства».</p>]]></content:encoded>
    </item>
    <item>
      <title>Американец обучил ChatGPT своей работе, после чего его уволили</title>
      <link>https://tproger.ru/news/amerikanec-obuchil-chatgpt-svoej-rabote--posle-chego-ego-uvolili</link>
      <comments>https://tproger.ru/news/amerikanec-obuchil-chatgpt-svoej-rabote--posle-chego-ego-uvolili?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/amerikanec-obuchil-chatgpt-svoej-rabote--posle-chego-ego-uvolili</guid>
      <description><![CDATA[<p>Американца уволили после того, как он обучил ChatGPT своей работе: компанию теперь заменил ИИ, созданный благодаря его же усилиям</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/amerikanec-obuchil-chatgpt-svoej-rabote--posle-chego-ego-uvolili">Американец обучил ChatGPT своей работе, после чего его уволили</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Oct 2025 06:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Житель Нью-Мексико Кевин Кантерра лишился работы после того, как научил ChatGPT выполнять свои задачи. Об этом <a href="https://www.washingtonpost.com/business/2025/10/06/work-advice-accepting-ai/">пишет</a> <i>The Washington Post</i>.</p><p>Мужчина 17 лет проработал в образовательной IT-компании и, по просьбе руководства, активно внедрял искусственный интеллект в работу.</p><h2>«Я считал ChatGPT напарником»</h2><p>По словам Кантерры, он быстро освоил искусство правильных промтов и использовал нейросеть для подготовки текстов, исследований и анализа данных.</p><blockquote>Я рассматривал ИИ как соавтора. Моя продуктивность была просто запредельной.</blockquote><p>Но спустя несколько месяцев компанию ждал «оптимизационный поворот»: <b>его и десятки коллег заменили языковой моделью</b>, той самой, которую он помог адаптировать под внутренние процессы. Перед увольнением начальство заверяло сотрудников, что ничего подобного не произойдет.</p><h2>Ирония цифровой эпохи</h2><p>Кантерра не единственный, кто попал в подобную ситуацию. По данным американских СМИ, все больше компаний сокращают персонал, заменяя специалистов «умными агентами».</p><p>Однако исследования MIT показывают: <b>95% таких внедрений не приносят роста выручки</b>. Напротив, замена людей создает больше хаоса и «ИИ-мусора», который потом приходится исправлять вручную.</p><h2>«Это пугает»</h2><blockquote>Я уверен, что они пытаются проверять то, что выдает ИИ. Но теперь у них нет людей, которые могли бы это делать качественно. Это просто страшно</blockquote><p>История Кевина стала символом новой дилеммы для работников: <b>осваивать ИИ, рискуя потерять работу, или сопротивляться и отстать от прогресса</b>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Психотерапевты тайно используют ChatGPT. Пациенты чувствуют себя обманутыми</title>
      <link>https://tproger.ru/news/psihoterapevty-tajno-ispolzuyut-chatgpt--pacienty-chuvstvuyut-sebya-obmanutymi</link>
      <comments>https://tproger.ru/news/psihoterapevty-tajno-ispolzuyut-chatgpt--pacienty-chuvstvuyut-sebya-obmanutymi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/psihoterapevty-tajno-ispolzuyut-chatgpt--pacienty-chuvstvuyut-sebya-obmanutymi</guid>
      <description><![CDATA[<p>Некоторые психотерапевты начали использовать ChatGPT для анализа сессий и ответов пациентам — тайно. Что стоит за этой тенденцией, какие риски она несёт для конфиденциальности и почему пациенты чувствуют себя преданными.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/psihoterapevty-tajno-ispolzuyut-chatgpt--pacienty-chuvstvuyut-sebya-obmanutymi">Психотерапевты тайно используют ChatGPT. Пациенты чувствуют себя обманутыми</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 07 Oct 2025 13:44:33 GMT</pubDate>
      <content:encoded><![CDATA[<p>С каждым месяцем становится всё очевиднее: ИИ проникает даже туда, где его меньше всего ждут. Американское издание MIT Technology Review <a href="https://www.technologyreview.com/2025/09/02/1122871/therapists-using-chatgpt-secretly/">рассказало</a> о тревожной тенденции — некоторые психотерапевты стали использовать ChatGPT для анализа сессий и ответов клиентам, не уведомляя об этом пациентов.</p><p>31-летний Деклан из Лос-Анджелеса узнал об этом случайно. Во время онлайн-сеанса у терапевта начались проблемы со связью, и тот по ошибке включил демонстрацию экрана. На глазах у пациента специалист копировал его фразы в ChatGPT, получал ответы и тут же пересказывал их как собственные. «<i>Я просто сидел и смотрел, как он чатится с ИИ, пока делает вид, что слушает меня</i>», — рассказал Деклан. После неловкого разговора терапевт признался, что «испытывал профессиональный тупик» и решил искать вдохновение в нейросети.</p><p>История Деклана — не единичный случай. На Reddit и форумах психотерапевты и клиенты всё чаще обсуждают похожие эпизоды. Некоторые пациенты жалуются на «неестественные» письма от терапевтов: слишком выверенные формулировки, американизмы и одинаковый стиль изложения. В одном из случаев пользовательница по имени Хоуп получила от своего психотерапевта ответ на сообщение о смерти питомца, где в начале письма случайно сохранилась подсказка: «Here’s a more human, heartfelt version with a gentle, conversational tone».</p><p>Психологи и исследователи предупреждают, что такие эксперименты могут разрушить доверие — основу терапевтических отношений. Согласно <a href="https://www.technologyreview.com/2025/07/01/1119513/ai-sit-trip-psychedelics">исследованию</a>, опубликованному в PLOS Mental Health в 2025 году, ответы ChatGPT на клиентские кейсы оказались неотличимы от человеческих и даже оценивались выше по профессиональным стандартам. Но как только участники узнавали, что их автор — ИИ, доверие резко падало. Аналогичные результаты получили учёные из Корнелла: эффективность и эмпатия обрушивались, если человек хотя бы подозревал участие нейросети.</p><p>Эксперты подчёркивают, что главная угроза — не только эмоциональная. Терапевты, использующие публичные модели вроде ChatGPT, потенциально нарушают законы о защите медицинских данных (HIPAA). Как отмечает исследовательница из Университета Дьюка Пардис Эмами-Наэини, большинство пользователей ошибочно полагают, что ChatGPT безопасен для передачи личной информации. На деле любая фраза, введённая в такой инструмент, может стать частью тренировочных данных и раскрыть детали частной жизни пациентов.</p><p>Тем временем на рынке появляются специализированные решения — от Heidi Health до Upheal — которые обещают безопасное хранение данных, HIPAA-сертификацию и ИИ-помощь для психотерапевтов. Но даже сторонники таких платформ предупреждают: запись сессий и автоматическая расшифровка неизбежно создают риски утечки. В 2020 году взлом психиатрической клиники в Финляндии привёл к публикации тысяч терапевтических записей, включая истории о насилии и зависимостях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как сеньоры документируют проекты: протокол архитектурных решений</title>
      <link>https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij</link>
      <comments>https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij</guid>
      <description><![CDATA[<p>Как сеньоры документируют архитектуру без боли. Обзор подхода ADR: шаблоны, примеры из практики и комментарии экспертов. Ускорьте онбординг и перестаньте объяснять одно и то же.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij">Как сеньоры документируют проекты: протокол архитектурных решений</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Scala]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Lua]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 09 Sep 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Это перевод <a href="https://dev.to/koladev/how-senior-software-engineers-document-their-project-1nf4">статьи</a> автора <a href="https://dev.to/koladev">Мангабо Колаволе</a> с портала DevTo с комментариями экспертов.</i></p><p>Есть одна задача, которую программисты терпеть не могут — но именно она отличает хорошего инженера от посредственного: как они документируют свой проект? Несколько лет назад я отвечал за запуск финтех-проекта. Мы выбрали стратегию быстрого старта, поэтому масштабируемость не стала для нас приоритетом. Главной целью было проверить гипотезу — и мы двигались вперёд, разрабатывая API, архитектуру и системы —  с упором на простоту, не особенно задумываясь о будущем.</p><p>Но я отвечал за бэкенд и инфраструктуру — и понимал: как бы хороша ни была моя память, через шесть месяцев я не смогу вспомнить все технические детали.</p><p>Во время работы я наткнулся на подход, который мне очень понравился: ADR — Architectural Decision Record, или «протокол архитектурных решений».</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-09-05/7d1206a7-6729-4bcb-ab55-63d59240df12.png" alt="" /></figure><p>По сути, это документ, в котором
фиксируются все изменения, внесённые в архитектуру: само решение, его влияние и
полученные уроки.</p><p>Проще говоря, это как личный дневник —
только для всей команды.</p><h2>Почему это важно?</h2><p><b>Память
— ненадёжна.</b> Мы часто забываем, почему выбрали одну
архитектурную модель, а не другую. Документирование изменений помогает
восстановить ход мыслей и избежать повторения одних и тех же ошибок.</p><p><b>Это
усиливает команду.</b> Представьте, что вы перепробовали
несколько вариантов решения проблемы и зафиксировали как удачные, так и
неудачные попытки. Это не просто ваш личный опыт — это знание, которым могут
воспользоваться все, включая тех, кто придёт после вас.</p><p><b>Будущие
разработчики скажут вам спасибо.</b> Подумайте о человеке,
который через пять лет будет разбираться в вашем коде. Если вы не оставили
объяснений, он, скорее всего, будет мучиться, пытаясь понять, зачем было
сделано то или иное изменение. А теперь представьте другого разработчика в
другой компании, который находит ADR-документ с чётким объяснением принятого
решения. Он, без сомнения, будет вам благодарен.</p><p>Синьор-фронтендер из ВК Маргарита Лукина, автор телеграм-канала <a href="https://t.me/frontend_kitchen">«Фронтенд кухня»</a>:</p><blockquote>Ценность ADR я впервые осознала в 2019 году. В команду, где работала, активно набирали новых ребят, и приблизительно раз в неделю кто-нибудь из новых разработчиков спрашивал "а почему это сделано так, а не иначе?" Приходилось постоянно давать ответы на одни и те же вопросы, и тогда-то я и поняла, насколько будет удобно записывать ответы где-нибудь в документацию в confluence и просто кидать ссылку новичкам. <br /><br />В 2019 году я еще не знала сам термин ADR и говорила "документация". С термином я познакомилась совсем недавно — этим летом, на курсе по архитектуре монолитных приложений. Тогда я поняла, насколько эффективно можно использовать ADR для ускорения разработки и уменьшения TTM. Дело в том, что начиная разрабатывать новый проект, разработчик первое время (от месяца до полугода! всё зависит от размера проекта) погружается в проект — разбирается, как всё устроено, чтобы вносить изменения соответственно архитектуре. В этот период разработчик, по сути, составляет собственные adr —  обычно в виде мыслеобразов в своей голове :) Если записать основные решения, разработчик сможет намного быстрее погрузиться в проект.</blockquote><h2>Как писать ADR?</h2><p>Существует несколько общепринятых правил, но
вы всегда можете адаптировать их под себя.</p><p>Вдохновившее меня соглашение можно найти на <a href="https://adr.github.io/madr/">GitHub</a>
. Вы также можете ознакомиться с процессом <a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html">ADR на Amazon</a>.</p><p>Вот пример шаблона, который вы можете
использовать.</p><p>Такой тип документа может находиться прямо в репозитории проекта, в Confluence или, например, в JIRA.</p><p>В моей последней компании, где я работал фронтенд-разработчиком, не существовало одного централизованного документа, фиксирующего все архитектурные изменения. Вместо этого мы использовали задачи GitLab и привязывали каждое архитектурное изменение к соответствующей ветке. Это позволяло отслеживать причины изменений даже спустя месяцы после их внедрения.</p><p>Практика спасала нас бесчисленное количество раз. Как я всегда говорю: не важно, насколько вы или ваши коллеги умны — будь то технический директор, менеджер или любой другой участник команды — никто не помнит каждое техническое решение, принятое два года назад.</p><p>Синьор-фронтендер из ВК Маргарита Лукина, автор телеграм-канала <a href="https://t.me/frontend_kitchen">«Фронтенд кухня»</a>:</p><blockquote>Многие руководители хотят видеть на своём проекте разработчиков, которые "сразу, без раскачки" начнут перформить. Совсем избежать периода погружения невозможно, но можно ускорить его в десятки раз за счёт ADR</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>MIT: 90% проектов с ИИ не приносят прибыли — людям рано бояться массовых увольнений</title>
      <link>https://tproger.ru/news/mit--90--proektov-s-ii-ne-prinosyat-pribyli---lyudyam-rano-boyatsya-massovyh-uvolnenij</link>
      <comments>https://tproger.ru/news/mit--90--proektov-s-ii-ne-prinosyat-pribyli---lyudyam-rano-boyatsya-massovyh-uvolnenij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mit--90--proektov-s-ii-ne-prinosyat-pribyli---lyudyam-rano-boyatsya-massovyh-uvolnenij</guid>
      <description><![CDATA[<p>MIT выяснил: 90% корпоративных ИИ-проектов не дают прибыли. Это значит, что люди по-прежнему незаменимы, а успех зависит от правильного применения технологий</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mit--90--proektov-s-ii-ne-prinosyat-pribyli---lyudyam-rano-boyatsya-massovyh-uvolnenij">MIT: 90% проектов с ИИ не приносят прибыли — людям рано бояться массовых увольнений</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 05 Sep 2025 09:33:31 GMT</pubDate>
      <content:encoded><![CDATA[<p>Пока СМИ и блогеры предрекают, что искусственный интеллект уничтожит миллионы рабочих мест, в MIT провели исследование, которое дает более прозаичный, но обнадеживающий вывод: <b>90% корпоративных ИИ‑проектов проваливаются</b> и не приносят компании никакой прибыли.</p><p>Исследование под названием <i>The GenAI Divide: State of AI in Business 2025</i> <a href="https://mlq.ai/media/quarterly_decks/v0.1_State_of_AI_in_Business_2025_Report.pdf">показало</a>, что <b>лишь 5% проектов</b> создают ощутимую экономическую выгоду. Остальные — просто <b>сжигают бюджеты</b>, не улучшая бизнес-показателей.</p><p>Но эта новость — <b>скорее хорошая</b>, чем плохая. Потому что она означает: <b>человеческий труд пока незаменим,</b> а ИИ не настолько умен, как его преподносят.</p><h2>ИИ-системы не виноваты — виноват менеджмент</h2><p>Как подчеркивают авторы отчета, проблема не в самих ИИ-инструментах, а в том, <b>как их используют</b>. Руководство многих компаний делает ставку на хайповые витрины — маркетинг, автоматическую генерацию контента, чат-ботов и прочее. Эти решения выглядят эффектно, но <b>редко влияют на выручку</b>.</p><p>А вот реальную пользу приносят <b>скучные, но важные процессы</b>: автоматизация учета, документооборота, логистики, финопераций. ИИ может сократить рутину, чтобы сотрудники занимались задачами с реальной добавленной стоимостью, <b>а не просто «заменял» людей</b>.</p><h2>Маленькие стартапы справляются лучше, чем корпорации</h2><p>Лидер исследования, Адитья Чаллапалли, отметил, что <b>стартапы с командами по 20 человек показывают лучший результат</b>, чем корпорации из списка Fortune 500.</p><p>Все потому, что <b>небольшие компании решают одну конкретную проблему</b>, вместо того чтобы пытаться «обмазать» все подряд нейросетями.</p><p>Некоторые из них за год вырастают с нуля до $20 млн выручки — просто потому что <b>точно понимают, какую боль решают</b>. И, как итог, применяют ИИ как инструмент, а не как самоцель.</p><p>Для тех же, кто ищет работу, это тоже важный сигнал: <b>в стартапах проще научиться чему-то полезному</b>, а самые интересные вакансии — в тех компаниях, где ИИ помогает бизнесу, а не просто присутствует для отчета.</p><h2>Что делать тем, кто боится потерять работу?</h2><p>Главное — не впадать в панику. Но и игнорировать ИИ не стоит. Побеждают те, кто <b>умеет с ним сотрудничать</b>, а не воевать.</p><p>Компании ищут людей, которые умеют:</p><ul><li>Понимать, где ИИ реально экономит время и деньги.</li><li>Переводить бизнес-проблему на язык технологий.</li><li>Оптимизировать процессы, а не просто повторять «я умею пользоваться ChatGPT».</li></ul><p>Если вы соискатель, не ограничивайтесь фразой «умею работать с нейросетями».</p><p><b>Покажите, как вы с их помощью улучшили конкретный процесс</b> — ускорили обработку заявок, уменьшили количество ошибок, повысили качество отчетов.</p>]]></content:encoded>
    </item>
    <item>
      <title>На GitHub появился коммит 1978 года за авторством Microsoft</title>
      <link>https://tproger.ru/news/--na-github-poyavilsya-kommit-1978-goda-za-avtorstvom-microsoft</link>
      <comments>https://tproger.ru/news/--na-github-poyavilsya-kommit-1978-goda-za-avtorstvom-microsoft?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--na-github-poyavilsya-kommit-1978-goda-za-avtorstvom-microsoft</guid>
      <description><![CDATA[<p>Microsoft выложила на GitHub исходники BASIC 1.1 для MOS 6502, оформив коммит датой 1978 года. Это исторический код, стоявший у истоков компании</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--na-github-poyavilsya-kommit-1978-goda-za-avtorstvom-microsoft">На GitHub появился коммит 1978 года за авторством Microsoft</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[BASIC]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Sep 2025 02:52:19 GMT</pubDate>
      <content:encoded><![CDATA[<p>На GitHub появился необычный коммит — Microsoft выложила исходники оригинального интерпретатора BASIC для процессора MOS 6502.</p><p>Что интересно, компания <b>задала датой коммита 27 июля 1978 года, 22:00 по московскому времени</b>. Таким образом, формально коммиту — <b>47 лет</b>.</p><h2>Исторический артефакт в прямом эфире</h2><p>Проект под названием<a href="https://github.com/microsoft/BASIC-M6502"> BASIC-M6502</a> содержит полный исходный код Microsoft BASIC версии 1.1. Это один из самых ранних программных продуктов компании, написанный между 1976 и 1978 годами.</p><p>BASIC 1.1 стал основой для множества персональных компьютеров, включая:</p><ul><li><b>Apple II</b> — революционный домашний ПК от Джобса и Возняка.</li><li><b>Commodore PET</b> — один из первых массовых компьютеров.</li><li><b>KIM-1</b>, <b>OSI</b>, <b>PDP-10</b> — популярные среди хобби-разработчиков системы.</li></ul><h2>Коммит из прошлого</h2><p>В коммит-логе можно увидеть:</p><ul><li><b>Дата:</b> July 27, 1978, 22:00 (GMT+3).</li><li><b>Автор:</b> Scott Hanselman (Microsoft).</li><li><b>Файл:</b> m6502.asm — 6955 строк ассемблера.</li><li><b>Текст коммита:</b> «Microsoft BASIC for 6502».</li></ul><p>Microsoft явно вручную подставила дату коммита, чтобы подчеркнуть историческую важность релиза.</p><h2>Зачем Microsoft это выложила?</h2><p>По словам авторов, это попытка сохранить цифровое наследие эпохи ранних ПК. В README подробно описано, почему именно этот код важен:</p><ul><li>Он сделал программирование доступным миллионам пользователей;</li><li>Лицензирование интерпретатора стало основой бизнес-модели Microsoft;</li><li>Код использовался до появления MS-DOS и Windows;</li><li>Интерпретатор легко переносился на разные платформы, заложив принципы кроссплатформенной разработки.</li></ul><p>Проект представлен как <b>учебный и исследовательский ресурс</b>, с MIT-лицензией.</p><h2>Внутри — чистый 6502-ассемблер</h2><p>Код представляет собой полноценный интерпретатор BASIC, написанный на <b>ассемблере для процессора MOS 6502</b>. Он включает:</p><ul><li>Поддержку арифметики с плавающей точкой.</li><li>Обработку строк и массивов.</li><li>Динамическое распределение памяти.</li><li>Сборку мусора.</li><li>Абстракцию ввода-вывода под разные платформы.</li></ul><p>Также внутри есть журнал изменений с точными датами коммитов конца 70-х годов — например, фиксы в парсинге FOR-циклов, улучшения сборщика мусора и добавление пользовательских функций.</p><blockquote>Это не просто учебный проект или архив. Это исходный код, с которого началась история Microsoft как софтверной компании. Без него не было бы MS-DOS, Windows и .NET</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>AMD случайно слила исходники FSR 4 на GitHub и удалила их. Пользователи успели сделать форки</title>
      <link>https://tproger.ru/news/amd-sluchajno-slila-ishodniki-fsr-4-na-github-i-udalit-ih--polzovateli-uspeli-sdelat-forki</link>
      <comments>https://tproger.ru/news/amd-sluchajno-slila-ishodniki-fsr-4-na-github-i-udalit-ih--polzovateli-uspeli-sdelat-forki?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/amd-sluchajno-slila-ishodniki-fsr-4-na-github-i-udalit-ih--polzovateli-uspeli-sdelat-forki</guid>
      <description><![CDATA[<p>AMD случайно выложила исходники FSR 4 на GitHub, успев удалить их лишь спустя часы. Но форки уже созданы, а лицензия MIT делает код неотзываемым</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/amd-sluchajno-slila-ishodniki-fsr-4-na-github-i-udalit-ih--polzovateli-uspeli-sdelat-forki">AMD случайно слила исходники FSR 4 на GitHub и удалила их. Пользователи успели сделать форки</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 22 Aug 2025 10:01:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>На этой неделе AMD опубликовала на GitHub новый SDK FidelityFX 2.0.</p><p>Однако вместе с ним компания по ошибке выложила и исходный код технологии <b>FSR 4 (FidelityFX Super Resolution)</b> — следующего поколения своей системы апскейлинга и увеличения fps в играх.</p><p>Публикация быстро исчезла, но было уже поздно: часть файлов осталась доступной в течение нескольких часов и пользователи успели <a href="https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/tree/01446e6a74888bf349652fcf2cbf5f642d30c2bf/Kits/FidelityFX/upscalers/fsr4/internal/shaders">создать</a> форки.</p><h2>Что именно произошло</h2><p>Ошибка стала очевидна почти сразу после выхода SDK. AMD удалила репозиторий, но по состоянию на момент удаления, <b>часть файлов все еще можно было скачать напрямую</b>, а некоторые разработчики начали делать форки.</p><p>На GitHub есть подтверждения: код находился в открытом доступе и значился под лицензией MIT. Компания позже подтвердила утечку. В официальном комментарии для GPUOpen говорится:</p><blockquote>Некоторые части нашего кода были по ошибке выложены в открытый доступ. Репозиторий был оперативно удален</blockquote><h2>В чем суть FSR 4 и почему это важно</h2><p>FSR 4 должна стать новой версией открытой технологии AMD, конкурирующей с DLSS от NVIDIA и XeSS от Intel. Однако, в отличие от FSR 1–3, AMD <b>не подтверждала, что FSR 4 будет открытой</b>. Тем не менее, исходники все же оказались опубликованы — пусть и ненадолго.</p><p>Среди файлов, попавших в сеть, были шейдеры и структуры моделей с префиксом fsr_model_v07, что, по мнению исследователей, указывает на тестовую сборку с поддержкой INT8 и других экспериментальных возможностей.</p><h2>Почему код, скорее всего, уже не удалить</h2><p>Один из важных аспектов — опубликованные файлы находились под лицензией MIT. А это значит, что даже если репозиторий был удален, разрешение на использование кода уже было выдано — юридически это отозвать нельзя, если не нарушены условия лицензии.</p><p>Владелец кода (в данном случае AMD) не может отменить выданное разрешение задним числом.</p><p>Если вы скачали код во время его доступности на GitHub — формально вы получили права на его использование, модификацию и распространение, говорят юристы. Дальнейшее удаление кода эти права не отменяет.</p><h2>Что теперь?</h2><p>В сообществе обсуждают два сценария:</p><ol><li><b>AMD может признать произошедшее как «выпуск»</b> и продолжить работу с FSR 4 в открытом виде.</li><li>Или наоборот — <b>закрыть разработку и не выпускать FSR 4 как open-source</b>, повторив путь Intel с XeSS, которая так и не стала открытой, несмотря на обещания.</li></ol><h2>Какие ИИ-улучшатели открыты, а какие — нет</h2><ul><li><b>AMD FSR</b> с первой по третью были открытыми. <b>FSR4</b> — случайно опубликована, но официально не подтверждена как open-source.</li><li><b>NVIDIA DLSS</b> — полностью закрытая технология.</li><li><b>Intel</b> обещала сделать <b>XeSS</b> open-source, но свое обещание не выполнила.</li></ul><p>В условиях растущей конкуренции в ИИ-ускорении и генерации кадров, AMD, возможно, не захочет отдавать ключевую разработку в руки конкурентов.</p><p>Но если случайная публикация все же станет поворотным моментом — FSR 4 может остаться в истории как технология, которую открыли… <i>случайно</i>.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ-поиск: почему люди перестали гуглить и как это меняет интернет</title>
      <link>https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet</link>
      <comments>https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Виктория Эберт]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet</guid>
      <description><![CDATA[<p>Разбираемся, почему классический поиск уступает место ИИ-поисковикам, как генеративный ИИ меняет привычные правила поиска и что ждёт SEO эпоху ИИ-агентов ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet">ИИ-поиск: почему люди перестали гуглить и как это меняет интернет</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 25 Jul 2025 14:10:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google два десятилетия был началом любого поиска. Сейчас всё чаще для этого открывают ChatGPT или другую нейросеть. Главное — не Google. Если раньше у нас был только Perplexity, то в декабре 2024 года OpenAI <a href="https://openai.com/index/introducing-chatgpt-search/">запустила</a> собственный Search — возможность искать информацию в интернете прямо в ChatGPT. Сейчас похожие функции есть у всех передовых моделей: Mistral Le Chat, DeepSeek, Claude, Gemini и даже у YandexGPT.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/fe8754da-5704-4138-9200-c48b53a316cf.png" alt="ChatGPT Search" /><figcaption>Источник: OpenAI</figcaption></figure><p>Генеративный ИИ больше не просто инструмент для текстов. Он становится полноценной точкой входа в интернет: здесь ищут товары, сравнивают характеристики и даже принимают решения о покупке — всё в одном окне. За один только праздничный сезон 2024 года трафик из ИИ-инструментов в американском онлайн-ритейле вырос на 1300% — такие данные приводит <a href="https://blog.adobe.com/en/publish/2025/03/17/adobe-analytics-traffic-to-us-retail-websites-from-generative-ai-sources-jumps-1200-percent">исследование</a> Adobe.</p><p>По умолчанию ChatGPT работает без выхода в интернет и отвечает на основе своих знаний, накопленных при обучении. Но можно включить функцию вручную, нажав на значок глобуса 🌐 «Искать в сети». Модель сама понимает, что вам нужна актуальная инфа, и подключается к интернету автоматически — тогда вверху появляется плашка «Поиск в сети».</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/76cacb95-c320-49f6-93ae-565a0017979c.png" alt="ChatGPT ищет в интернете" /><figcaption>Плашка «Поиск в сети» в ChatGPT</figcaption></figure><p><b>Гуглить стало старомодно.</b> Аналитики заметили, что в англоязычной молодёжной среде глагол «гуглить» постепенно <a href="https://www.businessinsider.com/google-losing-status-as-verb-genz-2024-9">исчезает</a> — они говорят просто «search it». ChatGPT уже <a href="https://www.moneycontrol.com/technology/chatgpt-reached-1-billion-search-requests-a-day-5-5-times-faster-than-google-search-did-article-13105292.html?">обрабатывает</a> около 1 млрд поисковых запросов ежедневно. Это влияет на воронку продаж: многие шаги теперь проходят внутри чат-ботов. Бренды начинают перестраивать свои стратегии: мало быть видимым в поиске. Теперь нужно быть понятным и убедительным для нейросетей. Потому что завтра товары будут искать не люди, а их ИИ-агенты.</p><h2>Что не так с классической поисковой выдачей</h2><p><b>Слишком много кликов. </b>Первая страница выдачи забита рекламой, SEO-статьями, агрегаторами и рерайтами рерайтов. Чтобы получить один ответ, мало вбить запрос. Нужно пролистать рекламу, открыть пару сайтов, закрыть поп-апы с чатами и ещё проверить, что инфа свежая. И если результат не подошёл — начинаем всё заново.</p><p><b>SEO-мусор</b>. Ещё одна беда — это тонны переоптимизированного контента. Статьи написаны по шаблонам, чтобы понравиться алгоритмам и вписаться в критерии ранжирования. Если вы искали «что посмотреть в городе Х», то наверняка в топе были тревел-агрегаторы, забитые рекламой. Вместо живых впечатлений мы получаем скучные списки с дежурным набором достопримечательностей и призывом купить тур. Кроме того, такие статьи, как правило, обезличены, и не понятно, кто за ними стоит.</p><p><b>ИИ-контент. </b>Пользователь Reddit <a href="https://www.reddit.com/r/mildlyinfuriating/comments/1hsf0to/just_watched_john_wick_4_did_a_quick_search_to/">заметил</a>, что при поиске «John Wick 5» Google выдал кучу сгенерированного контента о проекте, который даже не анонсирован.<br /></p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/d2cf0c14-a335-4b75-8274-ff3dd710d6c4.png" alt="" /><figcaption>Источник: Reddit</figcaption></figure><p>В комментариях посоветовали использовать операторы — минус-ключи: -ai или -sponsored, чтобы исключить из результатов страницы с этими словами.</p><p>Проект <a href="https://github.com/CubicalBatch/deaddit">deaddit</a> документирует явление мёртвого интернета в формате ИИ-клона Reddit — поддельные посты, комментарии и целые сообщества, сгенерированные ИИ. С поддельными сабреддитами, названиями и описаниями, профилями пользователей с прописанными личностями и интересами, постами с заголовками, содержанием и даже количеством апвоутов, а также комментариями.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/12c1e97f-8a1d-46ac-85db-b68fa784cd49.png" alt="" /><figcaption>Источник: GitHub / deaddit</figcaption></figure><p><b>Паттерны поиска меняются</b>. Всё меньше хочется читать безликие рекламные статьи, замаскированные под советы, и всё больше — слушать живых людей. 

Генеральный директор Reddit <a href="https://www.ft.com/content/a86fb03a-8781-40b5-a077-1d677e546ecf">похвастался</a>, что на фоне роста ИИ-контента именно Reddit остаётся площадкой с человеческим голосом.</p><p>Популярный <a href="https://www.newyorker.com/culture/infinite-scroll/what-google-search-isnt-showing-you">лайфхак</a>: добавлять в поисковые запросы слово «reddit» или оператор «site: reddit.com».</p><blockquote>Я часто добавляю «reddit» к своим запросам, потому что это одно из немногих мест, где можно прочитать настоящие мысли людей.</blockquote><p>Но не все так оптимистичны: звучат подозрения, что часть постов пишут боты.</p><blockquote>Я не доверяю Reddit. Когда дело доходит до рекомендаций, у меня всегда возникает ощущение, что ответы пишут боты, рекламирующие продукты</blockquote><p>Пользователи всё больше ощущают потерю «аутентичного интернета» и <a href="https://www.newyorker.com/culture/infinite-scroll/what-google-search-isnt-showing-you">ищут</a> обходные пути — обращаются к альтернативным поисковикам, вроде DuckDuckGo или Brave, и к другим площадкам, например, Discord или Telegram-чатам, которые не индексируются поисковиками. Или создают собственные поисковые движки — например, через Google Custom Search Engine, чтобы искать только по выбранным источникам.</p><h2>Почему ИИ-поиск быстрее выдает желаемое</h2><p><b>Нужно уметь гуглить в Гугле.</b> Традиционный поиск — это сложная штука, требующая мощностей для обработки миллиардов проиндексированных страниц. Google справляется с этим благодаря продвинутым алгоритмам, отточенным за годы исследований. Но этого уже мало.</p><p>Ключ к успеху — <b>правильная формулировка запроса</b>. Сколько раз вы в несколько подходов перебирали варианты, меняли порядок слов, перефразировали запросы или добавляли поисковые операторы — чтобы сузить поиск, найти точные совпадения или исключить лишнее? И если не угадали — результата не будет. К счастью, ИИ-поисковики снимают эту головную боль. Они учитывают контекст, а не только ключевые слова, даже если формулировка хромает.</p><p>Мэт Хонан, главный редактор MIT Technology Review, <a href="https://www.technologyreview.com/2025/03/17/1113255/is-google-playing-catchup-on-search-with-openai/">сравнил</a> Google AI Mode и ChatGPT. Он отметил ключевое преимущество последнего — функцию памяти и персонализации. Когда он спросил ChatGPT «Что ты знаешь обо мне?», модель ответила живо и подробно: рассказала о вкусах в кино, отношении к ужастикам и даже вспомнила историю с постройкой сарая. В то время как Google, обладая огромной базой пользовательских данных — почтой, историей поиска, фотографиями, — выдал сухой профиль: «Вы интересуетесь комедиями, музыкой, подкастами и классикой». Такой ответ скорее полезен рекламодателям, чем самому пользователю. На данный момент Google недотягивает до уровня персонализации, эмпатии и гибкости, которыми уже обладает ChatGPT.</p><h3>Длинные запросы и эра диалогового поиска</h3><p>ИИ меняет то, как мы ищем информацию. Если средний запрос в Google состоял из <a href="https://www.semrush.com/blog/google-search-statistics/">3–4</a> слов, то в диалоге с нейросетью мы составляем запрос на естественном языке в <a href="https://www.semrush.com/blog/chatgpt-search-insights/">20+</a> слов — с нюансами и уточнениями. Но главное новшество —<b> возможность задавать follow-up вопросы:</b> уточнения к предыдущему запросу. Раньше нужно было начинать с чистого листа. Теперь ИИ «помнит» контекст и способен адаптироваться и уточнять ответы. Причём вернуться к этому чату можно и через год, не объясняя задачу заново. А еще можно сразу адаптировать найденную информацию под нужный стиль — <i>«а попроще?», «а на русском?», «а в одну строку кода?».</i></p><p>Такой подход полезен там, <b>где ключевые слова бессильны </b>— например, можно найти фильм, где «<i>маньяк шлёт зашифрованные письма в газету</i>», спросить о странном звуке в холодильнике, или описать птицу, которая прилетает во двор.</p><p><a href="https://www.semrush.com/blog/chatgpt-search-insights/">Исследование</a> Semrush показывает, что ChatGPT меняет привычные представления о <b>поисковых намерениях</b>. Если в классическом поиске запросы обычно делят на четыре типа: навигационные (найти сайт), информационные (узнать что-то), коммерческие (исследовать товар) и транзакционные (купить), то у ChatGPT только около 30% запросов вписываются в эти категории. Остальные 70% — это совсем другие задачи, которые редко встречаются в традиционных системах. Люди обращаются к ИИ не просто за фактами, а чтобы генерировать идеи, проводить мозговой штурм и глубоко копать в теме.</p><p>На самом деле «умный» поиск — <b>не всегда быстрее обычного гугления</b>. В режиме глубокого исследования (Deep Research) ИИ-система может тратить десятки минут, чтобы собрать источники и выдать аналитику. Это уже не просто поиск, а полноценный ассистент-аналитик, который помогает подготовить обзор или черновик по сложной теме.</p><h2>Почему ChatGPT пока что плох в поиске: галлюцинации, спам и фейк-источники</h2><ol><li><b>Короткие запросы — всё ещё вотчина Google</b>. Пока что у ChatGPT получается <a href="https://techcrunch.com/2024/11/04/chatgpt-search-is-not-openais-google-killer-yet/">не очень</a>.</li><li><b>Слабая фильтрация SEO-спама</b> — классические поисковики годами инвестировали в борьбу с ним. Генеративные движки пока не так придирчивы: в ответах часто появляются вторичные источники и полусырые сгенерированные статьи.</li><li><b>Чрезмерное обобщение в ответах.</b> Из-за «переупаковки» контента в ответ модели мы получаем «усреднённую» версию истины, в которой важные нюансы могут быть утеряны. Даже если ИИ не выдает ложную информацию, он все равно суммаризует и переформулирует контент способами, которые могут вводить в заблуждение.</li><li><b>Поддакивание и стремление угодить</b>. Модель <a href="https://arxiv.org/abs/2310.13548">натренирована</a>, чтобы быть вежливой и полезной. Она пытается выдать ответ даже тогда, когда не может его найти. Не потому что хочет нас обмануть, а потому что не умеет сказать «нет». Поэтому соглашается с нами и может поддержать самые безумные идеи, например, <a href="https://x.com/icreatelife/status/1793781850923823144">призывает есть камни</a>.</li><li><b>Проблемы с локальными запросами</b>. ChatGPT не расскажет, во сколько приедет ваш поезд, и не уточнит, открыт ли ближайший супермаркет. Он может найти рестораны в районе, но за актуальным меню — всё равно придётся идти в Google.</li><li><b>Цитирование — боль</b>. Недавний <a href="https://www.cjr.org/tow_center/we-compared-eight-ai-search-engines-theyre-all-bad-at-citing-news.php">рисерч</a> Columbia Journalism Review выявил серьёзные проблемы в способности ИИ-поисковиков цитировать новости. Анализ восьми нейросетей показал, что они часто предоставляют неверные или вымышленные ссылки, даже если у них есть издательская лицензия.</li></ol><p>Проблема и в том, как люди <b>фактчекают информацию</b>. Мы идем по пути меньшего сопротивления и выбираем самые простые пути для поиска ответов. Точность и достоверность отходят на второй план, а приоритетом становится скорость и комфорт. Результаты <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4498671">исследования</a> показывают, что люди считают информацию, сгенерированную ChatGPT, более качественной и доступной по сравнению с Google Search.</p><blockquote>Давайте будем реалистами — люди чрезвычайно ленивы. Они будут прилагать минимум усилий для достижения результатов. Даже если эти результаты отстойные. Людей это не волнует. <br /><br />Это значит, что люди скорее зададут вопрос чат-боту и поверят любому ответу, который он выдаст. Ведь это проще, чем набирать текст в Google, а затем читать или пролистывать кучу статей.</blockquote><p>Один из важных вопросов: как не потерять способность анализировать информацию самостоятельно? Ведь когда мы получаем готовый ответ от ИИ, можем перестать задумываться о том, как этот ответ был сформирован. Когда нейросеть даёт готовый, «отполированный» ответ, появляется соблазн воспринимать его как истину в последней инстанции — и перестать критически мыслить.</p><blockquote>Иногда ChatGPT полностью лжет мне, и я знаю это только потому, что у меня есть существующие знания, что это неправда. Если бы у меня их не было, я бы никогда не узнал, что это неправда...Поэтому я не могу полностью полагаться на ChatGPT и всегда проверяю разные источники.</blockquote><p>И это правда. Но и Google не гарантирует 100% точности в топе выдачи. Там тоже бывают ошибки, устаревшие данные или некачественные источники. Поэтому в любом случае важно проверять информацию и не полагаться слепо ни на ИИ, ни на поисковики.</p><h2>Как генеративный ИИ крадет трафик и деньги бизнеса</h2><p>ИИ теперь — как <b>посредник</b>: он «пережевывает» контент с сайтов: статьи, обзоры, новости — и выдает это пользователю в интерфейсе чат-бота. При этом юзер зачастую не доходит до первоисточника. Рэнд Фишкин из SparkToro <a href="https://sparktoro.com/blog/2024-zero-click-search-study-for-every-1000-us-google-searches-only-374-clicks-go-to-the-open-web-in-the-eu-its-360/">назвал</a> это <b>«поисками с нулевым кликом»</b>. И таких запросов становится всё больше.</p><p><b>Что это значит?</b> Контент журналистов, блогеров и брендов используется как сырьё, а сами авторы как будто остаются в тени — их труд не приносит прямого трафика.</p><h3>Почему эта ситуация — головная боль для бизнеса и контент-мейкеров?</h3><ul><li><b>Меньше посетителей — меньше клиентов</b>. Если пользователи не заходят на сайт, то и конвертировать их в покупателей или подписчиков становится гораздо сложнее. Трафик просто утекает в интерфейс ИИ. Если нейросеть пересказывает суть статьи прямо в чате, зачем открывать оригинал?</li><li><b>Потеря контроля над голосом бренда</b>. ИИ решает, как преподнести ваш контент — может вырвать из контекста, искажать или просто упустить важные детали. Бренд уже не может поправить этот «пересказ». А ещё никто не увидит ваш уникальный дизайн и фирменный стиль.</li><li><b>Рост нагрузки на серверы</b>. ИИ-ассистенты и агенты автоматически перебирают десятки источников при каждом запросе. Опенсорс-сообщество уже <a href="https://about.readthedocs.com/blog/2024/07/ai-crawlers-abuse/">жалуется</a>: их ресурсы просто падают под лавиной ботов. А если этим займутся ИИ-агенты от имени миллионов пользователей — нагрузка на сайты вырастет в разы.</li><li><b>Нарушение правил индексации</b>. Раньше страницы индексировали Google и пара конкурентов, которые уважали robots.txt — файл, который говорит, где можно, а где нельзя. Сейчас же десятки ИИ-моделей <a href="https://www.cjr.org/tow_center/we-compared-eight-ai-search-engines-theyre-all-bad-at-citing-news.php">парсят сайты без разбора</a>, игнорируя эти ограничения.</li><li><b>Проблемы с обучением ИИ и конфиденциальностью</b>. ИИ-боты могут брать контент с сайтов не только для ответов, но и для обучения своих моделей. То есть ваша статья, обзор или даже комментарий могут стать частью «учебного корпуса», который помогает ИИ выдавать более «умные» ответы. При этом авторы часто не получают ни копейки и даже не знают, что их материалы используются таким образом. Многие сайты начали блокировать ИИ-ботов, чтобы защитить свой контент. Wired <a href="https://www.wired.com/story/most-news-sites-block-ai-bots-right-wing-media-welcomes-them/">сообщает</a>, что практически 90% новостных сайтов, таких как NYT, Guardian, Atlantic и др., блокируют краулеры OpenAI и других ИИ-компаний.</li></ul><p>Если ИИ-разработчики продолжат брать контент без разрешения, их ждёт либо платный доступ к данным (они должны платить авторам за данные или переходить на лицензионную модель), либо война протоколов с нарушением веб-этикета. Ahrefs провели <a href="https://ahrefs.com/blog/ai-bot-block-rates/">исследование</a> — они проанализировали около 140 миллионов сайтов и обнаружили, что за последний год количество блокировок ИИ-ботов существенно выросло. Вот ключевые цифры:</p><ul><li>Число активных ИИ-ботов в сети удвоилось с августа 2023 года, сейчас насчитывается 21 крупный бот на основе ИИ.</li><li>Самый блокируемый бот — GPTBot от OpenAI: его блокируют почти 6% всех сайтов.</li><li>ClaudeBot (Anthropic) показал самый резкий рост блокировок — +32,67% за год.</li></ul><p>Получается, что для веб-мастеров заготовлена новая головоломка: как гарантированно попасть в выдачу нейросетей, если краулеры игнорируют robots.txt? И можно ли вообще вычеркнуть сайт из этих списков? Как оптимизировать облегчённую версию сайта для ИИ-агентов, чтобы не перегружать сервер и не потерять контроль над контентом?</p><p><a href="https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/">Cloudflare</a> разработали «кнопку» блокировки AI‑ботов, чтобы снизить подобные нагрузки. Подключить эту функцию может любой пользователь Cloudflare, включая бесплатные тарифы. Компания, которая специализируется на защите сайтов от атак, заметила, что ежедневно на её сеть приходится около 50 миллиардов запросов от ИИ-ботов. В ответ они запустили AI Labyrinth — «лабиринт ИИ-контента», куда попадают незваные боты, игнорирующие директивы no crawl, где они застревают в бесконечной цепочке перелинкованных страниц.</p><h2>Переосмысление SEO в эпоху ИИ</h2><p>Классическое SEO уходит в прошлое. Чтобы оставаться на плаву, брендам и авторам нужно учиться говорить с ИИ на его языке. Вот почему появляются новые методы и направления — AIEO и GEO:</p><ul><li><b>AIEO (Artificial Intelligence Engine Optimization)</b> — оптимизация контента под ИИ-системы. Неважно, это голосовой помощник или чат-бот — задача AIEO сделать контент максимально понятным и «перевариваемым» для ИИ, чтобы он попадал в их ответы.</li><li><b>GEO (Generative Engine Optimization)</b> — это оптимизация именно под генеративные поисковые системы (например, Bing Chat, Google AI Mode).</li></ul><p>Пока никто толком не знает правил новой ИИгры. Но уже есть общие признаки, которые могут помочь нейросети выбрать именно ваш контент для цитирования:</p><ol><li><b>Чёткая структура</b>: подзаголовки H2 и H3, чтобы разбить текст на логичные блоки.</li><li><b>Короткие, простые абзацы</b> — никаких длинных занудных объяснений, только по делу.</li><li><b>Контент, который отвечает на вопросы</b>: «что это», «зачем нужно», «пример на практике». Не просто набор ключевых слов, а полезная информация.</li><li><b>Внешние упоминания и ссылки</b> — ИИ нравится, когда ваш контент не в изоляции, а подтверждён другими источниками.</li><li><b>Участие в специальных программах</b>: можно подать заявки в <a href="https://openai.com/chatgpt/search-product-discovery/">ChatGPT Product Discovery</a>, чтобы товар показывался в ответах ChatGPT или Perplexity Merchant Program — для крупных продавцов с доставкой в США, чтобы товары попадали в виджеты Perplexity.</li></ol><p><b>Как оценить эффективность?</b> Сейчас в аналитике уже можно увидеть переходы с нейросетей — они отображаются в отчетах по источникам трафика. Плюс появились метрики видимости бренда в ответах ИИ. Например, <a href="https://ahrefs.com/brand-radar">Ahrefs</a> теперь показывает, как часто ваш бренд упоминается в ответах нейросетей. А новые сервисы помогают мониторить появление бренда в ИИ-результатах, отслеживать тональность упоминаний и анализировать динамику.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/44055a32-808d-4356-be23-2f33fa07fc62.png" alt="Карта GEO-рынка" /><figcaption>Карта GEO-рынка. Источник: a16z.com</figcaption></figure><p>Это похоже на SEO начала 2000-х, когда с каждым обновлением алгоритма приходилось перестраиваться. С ИИ та же история: модели постоянно меняются, и нам придётся учиться работать с ними заново — иначе рискуем потерять трафик.</p><h2>Конец эры поисковиков? Действительно ли нейросети заменят Google</h2><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/d4cc037b-7758-4a4a-ac2f-1c4b5143f02c.png" alt="" /><figcaption>Источник: onelittleweb</figcaption></figure><p><b>Стоит ли ожидать полного исчезновения поисковиков?</b> Вряд ли. Так же, как и исчезновения библиотек с появлением интернета. ИИ пока не заменит Google в роли поисковой системы, но классические поисковики со временем станут не актуальны из-за изменения природы потребления контента.</p><p>Пока Google лидирует, оставаясь примерно <a href="https://www.lifewire.com/chatbot-vs-search-engine-traffic-11760069">в 26 раз</a> популярнее ChatGPT по ежедневным визитам. Совокупно ИИ-сервисы генерируют всего около одного процента от всех поисков Google. Но скорость роста говорит сама за себя: чат-боты за год <a href="https://onelittleweb.com/ai-chatbots-vs-search-engines/#elementor-toc__heading-anchor-22https://onelittleweb.com/ai-chatbots-vs-search-engines/#elementor-toc__heading-anchor-22">выросли</a> по количеству обращений на 80,92%. Впервые с 2015 года, к концу 2024-го, доля Google на рынке поиска <a href="https://gs.statcounter.com/search-engine-market-share">опустилась</a> ниже отметки в 90%. Однако аналитики OneLittleWeb считают, что чат‑боты и поисковики не конкурируют, а дополняют друг друга — каждый решает свои задачи. Чат-боты расширяют возможности поиска, превращая его в диалог и помощь в генерации идей, а поисковики интегрируют ИИ-сводки, чтобы ускорить выдачу информации.</p><p>Поисковики превращаются в умных ассистентов, которые сами сканируют интернет и дают готовые ответы. Но есть проблема: Google AI Overviews уже бьют по доверию и <a href="https://www.bloomberg.com/news/articles/2025-04-07/google-ai-search-shift-leaves-website-makers-feeling-betrayed">трафику</a>. А главное — эти сводки <a href="https://www.tomshardware.com/tech-industry/artificial-intelligence/cringe-worth-google-ai-overviews">не всегда точны</a>. Техногигант тестирует ещё и <a href="https://search.google/ways-to-search/ai-mode/">AI Mode</a> — чат прямо в поиске, который синтезирует инфу из разных источников. Кнопка «Мне повезёт» <a href="https://www.theverge.com/news/665560/google-search-ai-mode-feeling-lucky-tests">уходит в прошлое</a> — теперь вам повезёт, если ИИ не нафантазирует лишнего. В России аналогичный тренд: Яндекс Нейро тоже объединяет классический поиск с генеративными нейросетями и умеет отвечать на комплексные запросы, копаясь в нескольких темах сразу. Поиск уходит в сторону диалогов и действий, и это уже не эволюция — это смена парадигмы.</p><p><b>Кто и как будет искать информацию завтра?</b> Мир движется к более удобным и быстрым способам получения информации. Возможно, скоро все мы перестанем вводить запросы в строку поиска и будем давать задания своим ИИ-агентам. Пока зарождаются новые стандарты — GEO и AIEO, бизнесу стоит задуматься не только о том, как попасть в ответ ИИ, но и как ИИ сможет <b>воспользоваться </b>его услугами. Нужны будут инструкции и цифровая инфраструктура, понятная для агентов. В мире, где задачи будет выполнять не человек, а агент, нужны понятные инструкции и цифровая инфраструктура. Намечается новый тренд — <a href="https://www.aitidbits.ai/p/agent-responsive-design">agent-responsive design</a>: сайты, которые удобны не только для людей, но и для ИИ.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как облажались CEO больших компаний и что случилось с ними после</title>
      <link>https://tproger.ru/articles/kak-oblazhalis-ceo-bolwih-kompanij-i-chto-sluchilos-s-nimi-posle</link>
      <comments>https://tproger.ru/articles/kak-oblazhalis-ceo-bolwih-kompanij-i-chto-sluchilos-s-nimi-posle?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-oblazhalis-ceo-bolwih-kompanij-i-chto-sluchilos-s-nimi-posle</guid>
      <description><![CDATA[<p>Как ошибки CEO губят карьеру. Реальные кейсы: вирусный позор основателя Astronomer, тюрьма для создателя Theranos, отставки гигантов. Как избежать их судьбы в эпоху тотальной прозрачности. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-oblazhalis-ceo-bolwih-kompanij-i-chto-sluchilos-s-nimi-posle">Как облажались CEO больших компаний и что случилось с ними после</a>»</p>]]></description>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Tesla]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Spotify]]></category>
      <category><![CDATA[Илон Маск]]></category>
      <category><![CDATA[Сбер]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Законы]]></category>
      <category><![CDATA[Инновации]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 25 Jul 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Концерт Coldplay в Бостоне 10 июля 2025 года казался рядовым корпоративным мероприятием для Энди Байрона, генерального директора (CEO) IT-стартапа Astronomer, «верного мужа» и отца двух детей. Но там его жизнь разделилась на «до» и «после».</p><p>Камера Kiss Cam, традиционно выискивающая влюблённые пары среди зрителей, задержалась на Байроне и главе HR-отдела компании Кристин Кэбот. Мгновение нежности — мужчина обнимает женщину — сменилось паникой: Кэбот резко отвернулась, Байрон буквально нырнул вниз, пытаясь скрыться.</p><p>Фронтмен Coldplay Крис Мартин тут же прокомментировал: «Либо у них роман, либо они просто очень стеснительные!». Музыкант оказался прав — у парочки действительно был служебный роман, который они скрывали. Этот десятисекундный ролик, мгновенно ставший вирусным в соцсетях, запустил цепную реакцию, которая стоила Байрону карьеры, репутации и брака.</p><h2>Вирусный баг реальности: как 10-секундное видео обнулило карьеру гендиректора</h2><p>Уже через 48 часов после концерта совет директоров Astronomer отправил Байрона и Кэбот в отставку и объявил о внутреннем расследовании. Жена Байрона оперативно удалила его фамилию из своего профиля в соцсетях. Пиар-команда Astronomer утонула в запросах СМИ. Вирусный позор мгновенно перешёл из личной в деловую плоскость: всплыли жалобы бывших сотрудников на «токсичный стиль управления» Байрона.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/1bf31b65-9058-44b3-b8b3-3e98b1294ac5.jpg" alt="" /></figure><p>Новый CEO Astronomer Пит ДеДжой в своём первом заявлении констатировал: «Astronomer теперь — имя нарицательное, хотя я бы никогда не пожелал, чтобы это случилось именно так». Ирония судьбы: компания, годами боровшаяся за узнаваемость, получила её благодаря позору своего лидера.</p><p>Пока Байрон собирал вещи в офисе, мир уже монетизировал его падение. Бренды мгновенно <a href="https://www.gazetametro.ru/articles/potseluj-na-kontserte-coldplay-okazalsja-samym-dorogim-v-zhizni-top-menedzhera-22-07-2025">встроили</a> скандал в рекламу:</p><ul><li>Предприниматель MrBeast запустил конкурс: «Выиграй билеты на Coldplay! Отметь босса, но осторожнее с kiss-cam».</li><li>Представители Tesla пошутили в соцсетях: «Фото арендованной Tesla — это как концерт Coldplay. Ваша машина узнает об измене первой».</li><li>Бейсбольный клуб Philadelphia Phillies разыграл пародию с маскотом под музыку Coldplay.</li></ul><p>Даже песня Coldplay «Sparks», выпущенная 25 лет назад, взлетела в чартах Spotify, получив вторую жизнь. Появилась мобильная <a href="https://coldplaycanoodlers.com/">игра</a> «Coldplay Canoodlers», где нужно искать «тайных любовников» в толпе.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/1a1c2822-0864-4d2c-a7b0-7107524ef97a.jpg" alt="" /></figure><p>История Байрона стала культурным феноменом, превратив личную трагедию в публичное развлечение и наглядный урок для всех руководителей: в эпоху повсеместных камер и соцсетей приватность — иллюзия.</p><h2>Цена публичности: почему уход Байрона был неизбежен</h2><p>Попытки Байрона отшутиться или отрицать роман провалились. Юристы единодушно заявили: судиться с Coldplay бесполезно. Ведущий адвокат США по вопросам развлечений Тре Ловелл <a href="https://timesofindia.indiatimes.com/technology/tech-news/the-fact-that-big-screen-caught-ceo-doing-something-embarrassing-is-say-lawyers-on-if-astronomer-former-ceo-andy-byron-can-sue-coldplay-after-resignation/articleshow/122839642.cms">пояснил</a>: «Тот факт, что большой экран поймал CEO за чем-то смущающим или аморальным на публике — это проблема самого гендиректора». Художественное использование Kiss Cam защищено законом. У человека на публичном мероприятии не может быть ожидания приватности, если его изображение не используется для прямой коммерции или клеветы.</p><p>В России, <a href="https://www.gazetametro.ru/articles/potseluj-na-kontserte-coldplay-okazalsja-samym-dorogim-v-zhizni-top-menedzhera-22-07-2025">по словам адвоката Юрия Иванова</a>, ситуация могла бы сложиться иначе: если камера целенаправленно фокусируется на человеке, требуется его согласие на использование изображения. Организатор, даже предупредив о возможной съёмке, не имеет права использовать крупные планы без прямого разрешения. Но в США Байрону оставалось только уйти.</p><h2>Не Байроном единым: другие топ-менеджеры, замешанные в крупных скандалах</h2><p>История Astronomer — не исключение. Личные провалы и этические сбои регулярно становятся приговором для CEO, в том числе крупных ИТ-компаний. Предлагаем вашему вниманию топ-5 самых скандальных историй с участием бизнес-топов.</p><h2>1. Брайан Кржанич: роман, который стоил поста гендиректора Intel</h2><p>В июне 2018 года совет директоров Intel принял отставку CEO Брайана Кржанича после шестимесячного внутреннего расследования. Причиной стал подтверждённый роман с сотрудницей, что нарушало корпоративную политику компании: строгий запрет на отношения «начальник-подчиненный» даже по взаимному согласию. Инцидент признали «злоупотреблением должностью», хотя сам Кржанич настаивал, что отношения были «консенсусными».</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/15d93e3f-046e-4c0c-94f5-89c8a782455b.jpg" alt="" /></figure><p>Ирония ситуации заключалась в двойных стандартах. Всего за два года до скандала Кржанич публично осуждал гендиректора Foxconn Терри Гоу за роман с подчинённой, заявив: «Лидеры должны быть образцом этики». Расследование также выявило, что Кржанич скрыл факт отношений от юристов Intel при продлении контракта в 2017 году, что усугубило нарушение.</p><p>Последствия:</p><ul><li>акции Intel упали в день объявления об отставке;</li><li>Кржанич лишился $45 млн невыплаченных бонусов и акций;</li><li>компания ввела обязательный аудит соблюдения этических норм для топ-менеджмента.</li></ul><p><b>Финал.</b> Скандал стал эталоном корпоративного лицемерия: правила, которые CEO навязывал другим, он сам проигнорировал. Как позже отметил аналитик Bloomberg: «Intel показала — даже звездные результаты (рост выручки на 20% при Кржаниче) не спасают от этического нуля».</p><h2>2. Илон Маск и «MechaHitler»: ИИ-бунт</h2><p>Всего за месяц до случая с Байроном чат-бот Grok 4 от компании xAI Илона Маска <a href="https://ts2.tech/ru/%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8-%D0%BE%D0%B1-%D0%B8%D0%B8-%D1%81%D0%B5%D0%B3%D0%BE%D0%B4%D0%BD%D1%8F-%D1%81%D0%BA%D0%B0%D0%BD%D0%B4%D0%B0%D0%BB%D1%8B-grok-%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0/">оказался</a> в центре скандала. Нейросеть генерировала антисемитские высказывания и даже называла себя «MechaHitler» (МехаГитлер).</p><p>Расследование показало: модель периодически воспроизводила посты самого Маска из соцсети X по спорным политическим темам, что свидетельствовало о встроенной предвзятости алгоритма. Кто знает, что ещё наговорил бы бот, если бы его вовремя не остановили.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/c2696382-1e78-43e3-bb5c-22ddb0e62c81.jpg" alt="" /></figure><p>Инцидент привел к судебным искам в Турции и расследованию регуляторов ЕС. Маску пришлось экстренно «перевоспитывать» бота и вводить ограничения на контент.</p><p><b>Что в итоге.</b> Ущерб репутации технологической империи Илона был колоссальным, особенно на фоне усиления регулирования ИИ в ЕС и США. Итог: Этот случай стал хрестоматийным примером того, как личные взгляды основателя, вшитые в ИИ, могут обернуться глобальным кризисом.</p><h2>3. Тревис Каланик: как токсичная культура уничтожила CEO Uber</h2><p>Основатель Uber Тревис Каланик построил компанию с оценкой $70 млрд, но его агрессивный стиль управления и пренебрежение этическими нормами привели к серии скандалов, стоивших ему карьеры.</p><p>Культура «двигайся быстро и ломай правила», которую Каланик внедрил в Uber, спровоцировала системные проблемы. Например, программа Greyball целенаправленно саботировала работу регуляторов: технология идентифицировала инспекторов, пытавшихся проверить легальность сервиса в новых регионах, и блокировала их доступ к приложению. Руководство оправдывало это борьбой с мошенничеством, но расследование New York Times показало, что инструмент нарушал законы США и других стран.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/4dfa317d-cfde-4d48-a2cb-c46e1d17f4c4.jpg" alt="" /></figure><p>Кульминацией стал видеоскандал 2017 года: запись, где Каланик грубит водителю Uber, который обвинял компанию в занижении тарифов, стала вирусной. На кадрах CEO кричит: «Некоторые люди не готовы брать ответственность за свои действия! Твои беды — твои проблемы!». Публикация вынудила Каланика признать: «Мне стыдно. Мне нужна помощь в руководстве». Но это была лишь верхушка айсберга.</p><p>Годом ранее разразился скандал с сексуальными домогательствами. Бывшая инженер Uber Сьюзан Фаулер описала в блоге токсичную среду: её руководитель в первый же день работы предложил ей секс, а HR-отдел игнорировал жалобы, называя инциденты «единичными случаями». Расследование выявило 215 обращений от сотрудниц — при это по многим из них компания не предприняла никаких действий.</p><p>Каланик уволил 20 менеджеров, включая топ-исполнителя Эмиля Майкла, но репутацию это не спасло. Дополнительный удар нанесло <a href="https://naked-science.ru/article/hi-tech/waymo-obvinila-uber-v-kra">расследование Waymo</a>: стартап Илона Маска обвинил Uber в краже 14 тыс. файлов с данными беспилотных технологий. Хотя Каланик отрицал причастность, ключевой инженер Энтони Левандовски был уволен.</p><p><b>Финал истории:</b> в июне 2017 года инвесторы вынудили Каланика уйти. Его уход ускорило увольнение президента Джеффа Джонса, заявившего: «Мои принципы лидерства несовместимы с тем, что я увидел в Uber». Случай Каланика доказал: токсичность на уровне CEO убивает даже технологических гигантов.</p><h2>4. Элизабет Холмс: как технологическая афера разрушила «кровожадного» единорога</h2><p>Основательница стартапа Theranos Элизабет Холмс обещала революцию в медицине: сотни анализов по капле крови. Её черная водолазка, намеренно пониженный голос и цитаты Стива Джобса создали культовый образ.</p><p>Но к 2015 году расследование Wall Street Journal <a href="https://www.wsj.com/articles/theranos-has-struggled-with-blood-tests-1444881901">доказало</a>: запатентованные устройства Edison и MiniLab давали неточные результаты, а компания тайно использовала оборудование Siemens, маскируя провал. Вскрылась системная ложь инвесторам: Холмс заявляла о военном применении технологии в Ираке и партнёрстве с Pfizer, но документы FDA и контракты опровергали это.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/4d44942b-ac95-4c0c-b43a-956bf1646350.jpg" alt="" /></figure><p>Конфликт этики и амбиций стал ключом к краху:</p><ul><li>Холмс запрещала сотрудникам обсуждать проблемы с оборудованием, угрожая увольнениями;</li><li>от пациентов скрывали ошибки в тестах на ВИЧ и онкологию;</li><li>совет директоров, включая генсека США Джеймса Мэттиса, не обладал медицинской экспертизой для проверки заявлений.</li></ul><p>В январе 2022 года суд Сан-Хосе признал её виновной в 4 случаях мошенничества против инвесторов, включая семью Дойчеров (владельцев сеть супермаркетов) и медиамагната Руперта Мердока. В ноябре 2022 суд вынес приговор: 11 лет тюрьмы + возмещение $452 млн жертвам аферы.</p><p>Парадокс ситуации:</p><ul><li>Theranos достигла оценки $9 млрд при нулевой рабочей технологии;</li><li>Холмс стала самой молодой миллиардершей-самоучкой по версии Forbes (2014);</li><li>инвесторами двигала вера в «нового Джобса», а не due diligence — так называют процедуру комплексной независимой оценки компании по инициативе инвестора.</li></ul><p>В настоящий момент технологии Theranos уничтожены, патенты аннулированы, а документальный сериал The Dropout превратил Холмс в символ токсичного стартап-хайпа. Бывший партнёр и COO (главный операционный директор) Санни Балвани получил 13 лет тюрьмы — на год больше, чем Холмс.</p><p><b>Главный урок:</b> даже для CEO, обожествлённого Силиконовой долиной, ложь о продукте смертельна. Инвесторы поверили в историю, а не в технологию.  Случай Theranos подтвердил: в отраслях, где ошибка стоит жизни, этика важнее даже самого гениального нарратива.</p><h2>5. Сэм Банкман-Фрид (FTX): как «эффективный альтруист» стал символом крипто-аферы</h2><p>Сэм Банкман-Фрид (SBF) — вундеркинд MIT и фанат движения «эффективного альтруизма» — превратил криптобиржу FTX в гиганта с оценкой $32 млрд. Но ноябрь 2022 года стал точкой краха: расследование CoinDesk показало, что хедж-фонд Alameda Research (другая компания SBF) держал 88% активов в токенах FTT, которые сама же FTX и выпустила. Это спровоцировало панику: клиенты вывели $6 млрд за 72 часа, обнаружив $8-миллиардную дыру в счетах.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-24/a74e905d-bf18-4566-ac6b-17b8eaeb849f.jpg" alt="" /></figure><p>Что вскрылось:</p><ul><li>FTX тайно выдала Alameda неограниченный кредит из клиентских депозитов;</li><li>деньги тратились на виллы на Багамах ($35 млн за пентхаус с видом на яхты), политические взносы ($100 млн) и спонсорство Mercedes F1;</li><li>в чате мессенджера Signal «People of the House» Банкман-Фрид прямо писал: «Всё оплатит Alameda».</li></ul><p><b>Приговор:</b> в марте 2024 года суд Нью-Йорка <a href="https://edition.cnn.com/2024/03/28/business/ftx-sam-bankman-fried-sentencing">вынес вердикт</a>: 25 лет тюрьмы + конфискация $11 млрд. Прокуроры доказали: Сэм знал о преступности схем, но верил в безнаказанность. Судья Льюис Каплан заявил: «Он хотел власти. И использовал для этого воровство».</p><p><b>Мораль:</b> криптоинновации ≠ анархия. Отсутствие аудита (у FTX даже не было CFO, то есть финансового директора) и смешение клиентских/корпоративных средств — путь к катастрофе.</p><h2>Уроки выживания: как CEO избежать участи Байрона и остальных</h2><p>Падение Энди Байрона с высоты CEO «единорога» (компании с оценкой в $1 млрд и более) до героя мемов за считанные часы — не просто пикантная история. Это зеркало цифровой эпохи, где приватность уступила место тотальной видимости, а личная репутация стала неразрывна с капитализацией компании.</p><p>Для топовых IT-менеджеров это напоминание: код можно отладить, баги — исправить, но единственный неверный шаг в реальном мире, зафиксированный камерой, способен стереть годы упорной работы.</p><p>Этика должна быть встроена в ДНК лидерства. Скандалы Байрона, Кржанича и прочих показали: игнорирование моральных норм всегда выходит боком. Личное = профессиональное. Для CEO больше нет границ между частной жизнью и работой. Любые попытки скрыть нарушения лишь усугубляют падение.</p><p>В мире, где каждый — потенциальный папарацци, лучшая защита CEO — безупречность не только в алгоритмах работы, но и в жизни. Как сказал новый глава Astronomer Пит ДеДжой, пытаясь спасти репутацию компании после ухода Байрона: «Наша история всё ещё пишется». Но теперь уже другими людьми и на испорченной бумаге.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как найти работу в IT за границей в 2025 году: ответы на часто задаваемые вопросы и рекомендации экспертов</title>
      <link>https://tproger.ru/articles/kak-najti-rabotu-v-it-za-granicej-v-2025-godu--otvety-na-chasto-zadavaemye-voprosy-i-rekomendacii-ekspertov</link>
      <comments>https://tproger.ru/articles/kak-najti-rabotu-v-it-za-granicej-v-2025-godu--otvety-na-chasto-zadavaemye-voprosy-i-rekomendacii-ekspertov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Мария Грищенко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-najti-rabotu-v-it-za-granicej-v-2025-godu--otvety-na-chasto-zadavaemye-voprosy-i-rekomendacii-ekspertov</guid>
      <description><![CDATA[<p>Свежая статистика, исследования и советы экспертов: как российским IT-специалистам найти работу за границей в 2025 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-najti-rabotu-v-it-za-granicej-v-2025-godu--otvety-na-chasto-zadavaemye-voprosy-i-rekomendacii-ekspertov">Как найти работу в IT за границей в 2025 году: ответы на часто задаваемые вопросы и рекомендации экспертов</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Статистика]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Микросервисы]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[На английском языке]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Английский]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[GTK]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Jul 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Российские IT-специалисты востребованы не только у себя на родине, но и за рубежом. В 2024 году иностранные технологические компании наняли <a href="https://www.kommersant.ru/doc/7675878">более 5 тыс. сотрудников</a> из России — это в два раза больше, чем годом ранее. Чаще всего наших айтишников приглашают работать китайские IT-гиганты Huawei, Alibaba и Tencent, также активизировались европейские работодатели SAP, Delivery Hero и американские Amazon, OpenAI. </i></p><p>Если вы хотите стать одним из них и расширить свои горизонты, сделать первые шаги вам поможет наш материал. Здесь мы собрали ответы на часто задаваемые вопросы по поиску работы в IT за рубежом: наиболее перспективные направления, вспомогательные сервисы, особенности виз, рекомендации, как адаптировать резюме для иностранного рынка и получить оффер мечты.</p><p>Бонус — комментарии экспертов с многолетним опытом работы за границей и глубоким пониманием международного рынка труда.</p><h2>Какие IT-профессии наиболее востребованы за рубежом</h2><p>По данным <a href="https://www.rbc.ru/business/29/01/2025/6799966d9a794709c7932279">сервиса по поиску работы HeadHunter</a>, в 2024 году наибольшим спросом за границей пользовались российские:</p><ul><li>менеджеры по продажам и работе с клиентами (13%),</li><li>операторы колл-центров (5%),</li><li>дизайнеры, менеджеры по маркетингу, интернет-маркетологи, художники (по 4%),</li><li>учителя, SMM- и контент-менеджеры (по 3%),</li><li>секретари, помощники руководителя, ассистенты (по 2%).</li></ul><p>Программисты и разработчики заняли почётное второе место (10%). А специалисты технической поддержки и тестировщики набрали всего по 2%.</p><p>Но в исследовании <a href="https://netology.ru/blog/news/03-07-2023-europe-it">образовательной онлайн-платформы «Нетология» и международного коммуникационного агентства Zecomms Agency</a> специалист технической поддержки — наоборот, наиболее востребованная профессия за рубежом. С ним связано 17% от общего массива IT‑вакансий, что делает специалиста техподдержки абсолютным лидером по количеству открытых вакансий.</p><figure><img src="https://media.tproger.ru/user-uploads/114863/2025-06-30/dd2413cd-3aac-48e1-a29c-30620bdccf1d.png" alt="" /><figcaption>Самые востребованные за рубежом IT-специальности, данные исследования «Нетологии» и Zecomms Agency</figcaption></figure><p>На втором месте расположился программный инженер (16%), на третьем — бизнес-аналитик (6%) и IT-консультант (6%).</p><p><b>Максим Оганов, ментор, бизнес-консультант, автор проекта Oganov.Consulting:</b></p><blockquote>Российские IT-специалисты всё ещё остаются востребованными за рубежом, но по сравнению с 2022 годом ситуация изменилась. Международные компании уже не так охотно берут в штат сотрудников из России, известны случаи сокращений из-за гражданства. Причина — политика компаний, особенно тех, которые решили покинуть российский рынок. Зато за последние три года многие отечественные стартапы релоцировались в другие страны, и они отдают предпочтение сотрудникам из России.</blockquote><p><b>Евгений Козак, senior фронтенд-разработчик компании With Intelligence, живёт в Лондоне, более 10 лет опыта работы за границей: </b></p><blockquote>В 2022 году интерес к российским IT-специалистам был выше, но в 2025 ситуация изменилась из-за экономической нестабильности, роста процентных ставок и замедления найма во многих странах. Вакансий стало меньше, особенно без разрешения на работу. Однако IT по-прежнему остаётся одной из самых высокооплачиваемых и востребованных сфер.</blockquote><h2>Языки программирования, актуальные для иностранных компаний</h2><p>Согласно <a href="https://netology.ru/blog/news/04-07-2023-top-programming-languages">исследованию «Нетологии» и Zecomms Agency</a>, Java признан самым популярным языком программирования — его активно используют компании по всему миру. На Java приходится более четверти всех открытых вакансий (26%) в сфере IT в Европе, США, Латинской Америке, Азии и на Ближнем Востоке.</p><p>Java — это универсальный язык программирования, который отличаются стабильностью, масштабируемостью и кроссплатформенностью. На нём пишут крупные корпоративные приложения в банках, промышленных, страховых и телеком-компаниях, облачные, распределённые и IoT- системы, микросервисы. Также Java считается неотъемлемой частью бэкенд-разработки.</p><p>На втором месте по популярности находится язык SQL, который используют для разработки баз данных и систем аналитики. На него пришлось 24% всех вакансий, бóльшая часть из них в Европе, Азии и на Ближнем Востоке.</p><p>Замыкает тройку лидеров Python (23%) — более половины открытых вакансий в Азии и на Ближнем Востоке связано именно с этим языком. Оно и неудивительно: на Python пишут модели для машинного обучения, анализа данных и автоматизации.</p><figure><img src="https://media.tproger.ru/user-uploads/114863/2025-06-30/6a35cec4-e5d1-4991-a1a8-ef49722d59ea.png" alt="" /><figcaption>Самые востребованные за рубежом языки программирования, данные исследования «Нетологии» и Zecomms Agency</figcaption></figure><h2>Сколько айтишникам платят за границей</h2><p>Более высокая зарплата — <a href="https://www.cnews.ru/news/top/2023-10-27_polovinu_rossijskih_it-shnikov">одна из главных причин</a>, почему российские IT-специалисты хотят работать за границей.</p><p><b>Евгений Козак, senior фронтенд-разработчик компании With Intelligence, живёт в Лондоне, более 10 лет опыта работы за границей:</b></p><blockquote>Трудоустройство за границей открывает доступ к международным командам, передовым технологиям и крупным проектам мирового уровня с лучшими практиками разработки, высокими стандартами качества кода и современными архитектурными подходами. Всё это способствует быстрому профессиональному росту. Мне переезд позволил быть ближе к центру IT-индустрии и дал возможность развиваться в высококонкурентной среде.</blockquote><p>В большинстве европейских стран зарплаты индексируются и официально растут вслед за инфляцией. За счёт этого доходы, пусть и медленно, но увеличиваются. К сожалению, не все отечественные компании могут такое гарантировать — практика индексации зарплат в России пока не так распространена.</p><p>Но ключевое — размер оклада. По данным <a href="https://ruitunion.org/posts/2024-04-24-market-and-wages-state/">«Профсоюза работников ИТ»</a>, медианная зарплата специалистов уровня senior в России составляет 276 362 рубля в месяц, в то время как за рубежом она равна 386 730 рублей в месяц. Российские миддлы получают 170 000 рублей, а работающие за границей — 205 142 рубля. Зарплата джунов несильно отличается, хотя «за бугром» она всё-таки немного больше: 85 000 рублей против 80 000 рублей в России.</p><p>Таким образом, зарплата IT-специалистов за рубежом как минимум в 1,5 раза больше, чем в России.</p><p>Дополнительное преимущество — оплата в валюте: долларах, евро или фунтах. После пересчёта на рубли итоговая сумма все равно будет выше средней зарплаты в России — и это без учёта премий и бонусов.</p><figure><img src="https://media.tproger.ru/user-uploads/114863/2025-06-30/caf0a60b-53e5-4468-9c37-44101399c92c.png" alt="" /><figcaption>Медианная зарплата IT-специалистов в России и за рубежом, статистика «Профсоюза работников ИТ»</figcaption></figure><h2>Где IT-кадры пользуются спросом</h2><p>Найти работу в IT сейчас везде нелегко, но чуть проще это сделать там, где активно развивается IT-сектор и требуется много кадров соответствующего профиля:</p><p><b>Германия. </b>Наибольший дефицит IT-специалистов наблюдается в Германии — в 2023 году было опубликовано <a href="https://netology.ru/blog/news/03-07-2023-europe-it">103 089 вакансий</a>. Особенно остро нехватка кадров ощущается в таких областях, как разработка программного обеспечения, Data Science, кибербезопасность и DevOps. А в 2025 году страна планирует выдать <a href="https://prian.ru/news/germaniya-vydast-200-000-viz-kvalificirovannym-kadram-iz-za-nehvatki-rabochey-sily.html">на 10%</a> больше рабочих виз, чем годом ранее.</p><p><b>Нидерланды.</b> В стране большое внимание уделяется IT-стартапам. Так, в 2024 году голландские технологические компании привлекли <a href="https://tech.eu/2025/06/12/the-growth-and-opportunities-of-the-netherlands-tech-ecosystem/">€3,7 млрд венчурных инвестиций</a> — это около 5% от общего объёма капитала, вложенного в европейскую экосистему. Благодаря этому Нидерланды вошли в топ‑10 стран Европы по объёму инвестиций в технологии. Особенно быстро растёт сектор DeepTech («глубоких технологий») — полупроводники, искусственный интеллект и квантовые технологии.</p><p><b>Канада.</b> Такие канадские города как Торонто, Ванкувер и Монреаль считаются настоящей IT-меккой. Здесь активно развиваются стартапы и работают подразделения крупнейших технологических компаний — Google, Microsoft, Amazon. Кроме того, для IT-специалистов есть много иммиграционных программ, например, <a href="https://www.canadacareersite.com/blog/global-talent-stream-canada-work-permit-application">Global Talent Stream</a>, которая позволяет получить разрешение на работу в течение двух недель.</p><p><b>США.</b> В 2023 году объём IТ-рынка США достиг <a href="https://www.comnews.ru/content/233424/2024-05-29/2024-w22/1008/rossiyskiy-it-rynok-ustupil-obemu-rynkam-stran-briks">$1,3 трлн</a> и продолжает развиваться <a href="https://www.mordorintelligence.com/industry-reports/united-states-it-services-market">высокими темпами</a>. В Европейском союзе он составил <a href="https://www.comnews.ru/content/233424/2024-05-29/2024-w22/1008/rossiyskiy-it-rynok-ustupil-obemu-rynkam-stran-briks">$1,05 трлн</a>, в Китае — <a href="https://www.comnews.ru/content/233424/2024-05-29/2024-w22/1008/rossiyskiy-it-rynok-ustupil-obemu-rynkam-stran-briks">$348 млрд</a>, в России — <a href="https://www.comnews.ru/content/233424/2024-05-29/2024-w22/1008/rossiyskiy-it-rynok-ustupil-obemu-rynkam-stran-briks">$36,1 млрд</a>. Таким образом, американский технологический рынок в 36 раз больше российского, в 1,24 раза больше европейского и почти в четыре раза превосходит китайский. Это подтверждает его статус мирового лидера. Соответственно, IT-специалистов нужно много.</p><h2>Куда уехать проще всего</h2><p>По данным <a href="https://www.rbc.ru/business/29/01/2025/6799966d9a794709c7932279">HeadHunter</a>, активнее всего российских специалистов приглашают на работу компании из:</p><ul><li>Белоруссии — 172,3 тыс. приглашений,</li><li>Казахстана — 150,9 тыс. приглашений,</li><li>Грузии и Турции — 69,7 тыс. и 67,8 тыс. приглашений соответственно,</li><li>Узбекистана — 57,2 тыс. приглашений.</li></ul><p>Самый большой рост интереса продемонстрировали китайские работодатели — он увеличился почти в шесть раз. В 2023 году количество предложений для жителей России о работе в Китае составляло всего 4,8 тыс., тогда как в 2024 году цифра достигла 27,6 тыс. предложений.</p><p>Кроме того, за год потребность в российских специалистах выросла в Сербии с 5,8 тыс. до 26,3 тыс. (+356,3%), в Турции — с 23,5 тыс. до 67,8 тыс. (+188,6%), на Кипре — с 4,6 тыс. до 12 тыс. (+160,9%), в Польше — с 4,1 тыс. до 9,0 тыс. (+119,6%) и в ОАЭ — с 19,2 тыс. до 41,7 тыс. (+117,2%).</p><p>А Европа стала лидером по количеству предложений для IT-специалистов со знанием русского языка — <a href="https://netology.ru/blog/news/03-07-2023-europe-it">3%</a> всех IT-вакансий в регионе. На других рынках доля таких предложений не превышает 1%. Чаще всего русскоязычных специалистов ищут <a href="https://netology.ru/blog/news/03-07-2023-europe-it">в Польше — 2 200 вакансий, Венгрии — 752 вакансии, Австрии — 178 вакансий, Греции — 152 вакансии</a>.</p><p><b>Максим Оганов, ментор, бизнес-консультант, автор проекта Oganov.Consulting: </b></p><blockquote>Не все страны охотно принимают специалистов из других стран. Если раньше одними из самых популярных направлений для релокации были Канада и США, то сейчас переехать туда стало значительно сложнее. Больше шансов на трудоустройство в компании Испании, Португалии, Кипра, ОАЭ.</blockquote><h2>Как IT-специалисту найти работу за границей: четыре шага</h2><h3>1. Зарегистрируйтесь на международных платформах</h3><p>Принцип поиска работы за рубежом такой же, как и в России. Нужно зарегистрироваться на платформах по типу HeadHunter и откликаться на понравившиеся вакансии. Чем больше откликов, тем лучше.</p><p>Вот подборка сайтов для поиска работы за границей:</p><ul><li><a href="https://ru.linkedin.com/">LinkedIn</a> — профессиональная социальная сеть, где можно искать вакансии и налаживать контакты;</li><li><a href="https://www.indeed.com/">Indeed</a> — международный агрегатор вакансий, позволяющий фильтровать их по странам, городам и отраслям;</li><li><a href="http://relocate.me">Relocate.me</a> — платформа для вакансий с релокацией;</li><li><a href="https://remoteok.com/">Remote OK</a> — площадка для поиска удалённой работы;</li><li><a href="https://weworkremotely.com/">WWR</a> — сервис, где публикуют вакансии крупные зарубежные компании, например, Amazon или Google.</li><li><a href="https://www.angellist.com/careers">AngelList Talent</a> — каталог вакансий в иностранных стартапах.</li></ul><p>Некоторые из них открываются только с VPN.</p><p><b>Максим Оганов, ментор, бизнес-консультант, автор проекта Oganov.Consulting: </b></p><blockquote>Удобнее всего искать вакансии зарубежных компаний через LinkedIn. По моему опыту, большинство специалистов находят работу за границей именно через эту площадку. Но есть и альтернативные варианты — например, телеграм-каналы с профильными вакансиями. Будьте готовы к тому, что придётся отправлять много откликов. В среднем на 100 откликов приходится не более 5 ответов.</blockquote><p><b>Евгений Козак, senior фронтенд-разработчик компании With Intelligence, живёт в Лондоне, более 10 лет опыта работы за границей: </b></p><blockquote>В основном я искал работу через LinkedIn. Это самая эффективная платформа: я обновил профиль, загрузил резюме и активно взаимодействовал с рекрутерами. Также полезно размещать резюме на популярных job-порталах и быть открытым к предложениям — тогда многие специалисты по подбору персонала сами выходят на связь.</blockquote><h3>2. Адаптируйте резюме для иностранного рынка</h3><p>Если вы собираетесь искать работу на европейском или американском рынке, разумеется, резюме должно быть составлено на английском языке. В англоязычных странах резюме называют Curriculum Vitae или CV.</p><p>Эксперты компании EP Advisory, которая помогает российским специалистам строить карьеру за рубежом, <a href="https://ep-advisory.com/ru/statii/rabotayushhee-rezyume-na-anglijskom-na-osnove-30-000-proverennyh-rezyume/">рекомендуют</a> включать в CV разделы Name, Profile, Education, Experience, Skills &amp; Other. Названия предыдущих компаний и занимаемые должности следует выделять, а каждый блок —  разграничить чертой.</p><figure><img src="https://media.tproger.ru/user-uploads/114863/2025-06-30/2f6d7e8d-fa4e-4d6c-8925-e3c2228fc0cb.png" alt="" /><figcaption>Пример грамотно составленного резюме на английском языке от экспертов EP Advisory</figcaption></figure><p>Кроме того, в некоторых странах, например, Великобритании, США и Канаде не принято добавлять фото в резюме. Такое правило стало следствием законов против дискриминации в этих странах, поэтому его несоблюдение может вызвать негативную реакцию и привести к мгновенному отказу.</p><p>Дополнительно к резюме стоит приложить мотивационное письмо (Cover Letter), подготовленное специально под конкретную вакансию. В мотивационном письме уже не пишут об образовании и навыках — эти сведения указывают только в резюме. А в Cover Letter особый упор делается на кейсах и объяснении, чем для вас интересна компания и почему вы для неё — самый подходящий кандидат.</p><p><b>Максим Оганов, ментор, бизнес-консультант, автор проекта Oganov.Consulting: </b></p><blockquote>Необходим большой и подтверждённый опыт работы. Придётся конкурировать со специалистами уровня senior со всех концов света. Особенно много кандидатов из Индии, Ирана, Пакистана.</blockquote><h3>3. Обратитесь в агентство по трудоустройству</h3><p>Самостоятельно найти работу за границей и разобраться во всех сопутствующих вопросах, связанных с написанием резюме, оформлением виз и переездом, может быть сложно. Поэтому стоит обратиться в агентства по трудоустройству, которые все эти моменты возьмут на себя.</p><p>Вот список наиболее известных рекрутинговых агентств:</p><ul><li><a href="https://www.adecco.com/">Adecco </a>— крупнейшее агентство с вакансиями по всему миру;</li><li><a href="https://manpower.ru/">Manpower</a> — международная стаффинговая, аутсорсинговая и HR-консалтинговая компания из России;</li><li><a href="https://www.michaelpage.com/">Michael Page</a> — международная компания, которая специализируется на подборе персонала среднего и высшего звена;</li><li><a href="https://www.hays.com/">Hays</a> — британская рекрутинговая компания, которая предоставляет услуги по подбору персонала в 33 странах мира;</li><li><a href="https://www.harveynash.com/">Harvey Nash</a> — международная компания, которая специализируется на IT-аутсорсинге;</li><li><a href="https://www.randstad.pl/ru/">Randstad</a> — голландская консалтинговая компания, которая сотрудничает с ведущими зарубежными работодателями.</li></ul><p>Агентства также консультируют по вопросам адаптации и помогают с поиском жилья.</p><p><b>Евгений Козак, senior фронтенд-разработчик компании With Intelligence, живёт в Лондоне, более 10 лет опыта работы за границей: </b></p><blockquote>Чтобы найти работу в Лондоне, я сотрудничал с международными и британскими рекрутинговыми агентствами — Hays, Harvey Nash и Michael Page. Примерно 50% предложений приходили именно от них. Эти агентства играют важную роль на IT-рынке и обладают широкой сетью контактов с работодателями по всей Европе. Они помогали мне в поиске подходящих позиций и сопровождали на всех этапах — от первичного отклика до собеседования и подписания оффера.</blockquote><h3>4. Получите визу и разрешение на работу</h3><p>Без визы и разрешения приступить к работе за границей не получится. Здесь доступны два варианта — Digital Nomad Visa или обычные рабочие визы.</p><p><b>Digital Nomad Visa.</b> Digital Nomad Visa или «виза цифрового кочевника» позволяет легально жить за рубежом, но при этом продолжать удалённо работать на родину. В отличие от туристической визы, Digital Nomad Visa даёт право длительно находиться в определённой стране, а в сравнении с рабочей визой — не требует трудоустройства на местном рынке.</p><p>Это не классическая рабочая виза. Она разрешает трудиться из разных частей мира, но с ней нельзя работать на компании из страны пребывания. Также не всегда можно перевести семью.</p><p>Чтобы получить визу цифрового кочевника, нужно подтвердить минимальный доход (чаще всего <a href="https://ep-advisory.com/ru/statii/digital-nomad-visa-zit-v-evrope-i-rabotat-udalenno/?ref=journal.zarplata.ru">не ниже 2000 евро в месяц</a>) и наличие медицинской страховки. Также может понадобиться трудовой договор или договор подряда, доказывающие, что вы работаете удалённо. Сейчас Digital Nomad Visa оформляют в<a href="https://www.globalcitizensolutions.com/digital-nomad-visa/"> 66 странах</a>, включая Португалию, Испанию, Эстонию, ОАЭ и Южную Корею.</p><p><b>Классические рабочие визы.</b> Это визы EU Blue Card или виза H‑1B.</p><ul><li>Голубая карта (EU Blue card) — виза для работы в Европе. Чтобы получить её, нужен диплом о высшем образовании (не ниже бакалавра) и оффер с зарплатой от 48 300 евро год (43 760 евро для IT‑специалистов) на срок минимум шесть месяцев. В случае одобрения выдаётся вид на жительство, действующий до четырёх лет с возможностью продления.</li></ul><ul><li>Виза H‑1B — виза для работы в США. Она также требует наличия высшего образования и оффера от местной компании. Но американское законодательство устанавливает лимит на выдачу H‑1B — 65 000 базовых и 20 000 дополнительных виз для специалистов с магистерской степенью из США. Всего 85 000 виз в год. Виза предоставляется максимум на три года с возможностью продления до шесть лет.</li></ul><p>Рабочие визы позволяют получить полноценный правовой статус резидента страны, в которую вы планируете переезжать, а вместе ним — все социальные гарантии: медстраховку, оплачиваемый отпуск, пенсионные отчисления.</p><h2>Официальное трудоустройство или фриланс</h2><h3>Удалённая работа на фрилансе</h3><p>Фриланс — самый простой способ начать работать с зарубежными компаниями без лишней бюрократии и сложностей с оформлением. Достаточно зарегистрироваться на зарубежную фриланс-платформах <a href="https://www.upwork.com/">Upwork</a> или <a href="https://www.fiverr.com/">Fiverr</a>, и можно сразу браться за международные проекты. Единственное, могут возникнуть трудности с оплатой, поэтому стоит завести себе иностранную банковскую карту.</p><p>Главные минусы фриланса — нет оплачиваемого отпуска и больничных, а доход крайне нестабилен.</p><h3>Официальное трудоустройство с релокацией</h3><p>Официальное трудоустройство гарантирует стабильную зарплату и полный соцпакет, а при релокации — помощь с переездом и адаптацией в новой стране.</p><p>Однако получить оффер с переводом в местный офис не так просто. Иностранные компании редко берут на себя расходы, связанные с релокацией российских специалистов и их семей. Чаще всего они нанимают тех, кто уже легально живёт за границей — например, по рабочей визе или с видом на жительство. В таком случае проще оформить перевод в местный офис или принять человека на работу через филиал в этой стране.</p><p>Максим Оганов, ментор, бизнес-консультант, автор проекта Oganov.Consulting:<b></b></p><blockquote>Найти работу будет проще, если вы уже находитесь в стране, и компании не придётся заниматься вашей релокацией. Поэтому хороший вариант — попробовать переехать самостоятельно, продолжая работать удалённо в российской компании или на фрилансе. У вас будет время присмотреться к стране, понять, подходит ли она вам. А если вы достаточно активны и коммуникабельны, можно будет попробовать найти вакансию через местные сообщества российских эмигрантов.</blockquote><p><b>Евгений Козак, senior фронтенд-разработчик компании With Intelligence, живёт в Лондоне, более 10 лет опыта работы за границей: </b></p><blockquote>В первую очередь, нужно убедиться, что у вас есть правовой статус или разрешение на работу в стране, где вы планируете трудоустроиться. Это значительно повышает ваши шансы на успех.</blockquote><h2>Какой уровень владения английским языком нужен</h2><p>Для оценки владения иностранными языками, включая английский, в Европе используют систему CEFR (Common European Framework of Reference). CEFR выделяет шесть уровней знания языка: A1, A2, B1, B2, C1, C2.</p><p>Чтобы успешно строить карьеру за границей, рекомендуется уровень не ниже B1-B2, который позволит понимать профессиональные тексты, участвовать во встречах и вести рабочую переписку.</p><p><b>Максим Оганов, ментор, бизнес-консультант, автор проекта Oganov.Consulting:</b></p><blockquote>Обязательное требование — свободное владение английским: например, в Португалии большинство сотрудников IT-компаний общаются на нём. Но иногда кандидату необходимо знание местных языков — так, если вы хотите переехать во Францию, шансы на трудоустройство без владения французским минимальны.</blockquote><p><b>Евгений Козак, senior фронтенд-разработчик компании With Intelligence, живёт в Лондоне, более 10 лет опыта работы за границей: </b></p><blockquote>Главной трудностью для меня был язык. Технический английский у меня на хорошем уровне, особенно когда речь идёт о собеседованиях, терминах и обсуждении архитектуры — в этом я чувствую себя уверенно. Однако повседневный английский, особенно неформальное общение, давался сложнее. Кроме того, структура интервью в других странах немного отличается, но к ней я быстро адаптировался. Повысить уровень языка и стать увереннее в повседневном общении мне помогли постоянная практика, разговоры с носителями языками и участие в командных митингах.</blockquote><h2>Коротко о главном</h2><ul><li>Иностранные компании активно используют Java, Python, SQL и нуждаются в программистах, умеющих писать на этих языках.</li><li>IT-специалисты особенно востребованы в Германии, Нидерландах, Канаде и США — странах с наиболее интенсивным ростом технологического сектора.</li><li>Проще всего уехать в Белоруссию, Казахстан, Турцию, Грузию и Китай.</li><li>Работать за границей можно официально или на фрилансе.</li><li>Чтобы получить оффер, следует зарегистрироваться на международных платформах для поиска работы, адаптировать резюме, оформить визу и, при необходимости, обратиться в агентство.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Где в 2025 учат на продакта и проджекта в IT: лучшие курсы для начинающих</title>
      <link>https://tproger.ru/articles/gde-v-2025-uchat-na-prodakta-i-prodzhekta-v-it--luchwie-kursy-dlya-nachinayushhih</link>
      <comments>https://tproger.ru/articles/gde-v-2025-uchat-na-prodakta-i-prodzhekta-v-it--luchwie-kursy-dlya-nachinayushhih?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/gde-v-2025-uchat-na-prodakta-i-prodzhekta-v-it--luchwie-kursy-dlya-nachinayushhih</guid>
      <description><![CDATA[<p>Где учиться на продакт- и проджект-менеджера в 2025 году? В статье — проверенные курсы от Softline, TOP Academy, Нетологии и других школ с реальными отзывами, ценами и гарантией трудоустройства. Подробный разбор программ, форматов обучения и карьерных перспектив для начинающих. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/gde-v-2025-uchat-na-prodakta-i-prodzhekta-v-it--luchwie-kursy-dlya-nachinayushhih">Где в 2025 учат на продакта и проджекта в IT: лучшие курсы для начинающих</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Ретро]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Agile]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Стажировка]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Сбер]]></category>
      <category><![CDATA[Waterfall]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Вебинар]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 14 Jul 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Современная IT-индустрия нуждается не только в технических специалистах, но и в тех, кто умеет превращать идеи в работающие продукты. Продакт- и проджект-менеджеры стали главными фигурами в этом процессе. Первые решают, что и зачем создавать, задача вторых — как и когда это сделать. В IT-компаниях оба специалиста часто работают в паре, дополняя друг друга.</p><p>Спрос на таких специалистов продолжает расти. Средняя зарплата проджект-менеджера в России в 2025 году составляет около 147 000 руб., при этом сеньоры могут получать до 240 тыс. Для продактов цифры еще выше — опытные специалисты в крупных IT-компаниях зарабатывают от 300 000 руб.</p><p>Обучение этим профессиям стало доступнее благодаря онлайн-курсам. Мы проанализировали десятки программ и выбрали семь лучших, которые действительно дают нужные навыки и помогают начать карьеру.</p><h2>1. Академия Softline: «Управление проектами в области ИТ»</h2><p>Академия Softline предлагает<a href="https://academyit.ru/courses/pmit/"> актуальный курс</a> в рамках обширной обучающей программы для повышения квалификации. Программа разработана практиками из крупных IT-компаний и охватывает все аспекты работы с проектом.</p><p>Курс длится 40 академических часов и проводится полностью в онлайн-формате. Программа сочетает теоретические модули с интенсивной практической отработкой навыков через индивидуальные и групповые упражнения.</p><p>Каждый участник работает над реальным проектом, применяя инструменты управления на всех этапах — от запуска до завершения. Наставники-практики сопровождают студентов на протяжении всего обучения, помогая разобрать нюансы применения методик в реальных ИТ-проектах.</p><h3>Уникальность программы</h3><p>Курс отличается синтезом мировых стандартов: PMBoK и ITIL интегрированы с гибкими методологиями (Agile, Scrum, Kanban). Такой подход учит адаптировать инструменты под специфику конкретных задач, а не просто следовать шаблонам.</p><p>Акцент на ИТ-проекты делает программу полезной для компаний, внедряющих цифровые продукты или модернизирующих инфраструктуру, поскольку здесь разбираются кейсы по управлению релизами ПО и масштабированию облачных решений.</p><p>Преимущества:</p><ul><li><b>практическая направленность:</b> 70% времени посвящено работе с реальными кейсами;</li><li><b>гибкие методики для ИТ-среды: </b>от классического Waterfall до гибридных моделей;</li><li><b>поддержка наставников</b> с опытом в Сбере, Яндексе и других топовых компаниях.</li></ul><h3>Что получают выпускники</h3><p>После защиты итогового проекта участники получают удостоверение повышении квалификации государственного образца и готовое портфолио с реализованным кейсом. Карьерный центр помогает с трудоустройством: студенты 2024 года получили офферы от партнеров (Сбер, МТС, VK) в течение 3 месяцев после завершения курса.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-07-11/a5b98557-d4e3-4ded-a93d-f5138b0b9388.png" alt="" /></figure><h3>Стоимость и условия</h3><p>Полная цена программы — 80 000 рублей. Доступна рассрочка на 4 месяца (20 000 руб./мес). Для корпоративных клиентов действуют скидки до 15% при обучении групп от 3 человек.</p><h2>2. Компьютерная Академия ТОП: «Проджект-менеджер в IT»</h2><p>Компьютерная Академия ТОП уже несколько лет готовит сильных проджектов для IT-индустрии. <a href="https://msk.top-academy.ru/education/project-management?utm_source=article&amp;utm_medium=paidorganic&amp;utm_campaign=adults&amp;utm_content=projectmanagement&amp;utm_term=tproger">Курс</a> подходит тем, кто хочет научиться управлять проектами в условиях неопределенности — именно с этим сталкивается большинство новичков.</p><p>Курс длится 10 месяцев и доступен в двух форматах: очном (в 200+ филиалах по России) или онлайн с живыми вебинарами. В отличие от многих программ, здесь нет записанных уроков — все занятия проходят в режиме реального времени с преподавателями-практиками. Каждую группу курирует действующий проджект из IT-индустрии, который дает каждому участнику обратную связь и разбирает ошибки на практике.</p><h3>Уникальность программы</h3><p>Живое обучение в малых группах (до 15 человек), где студенты отрабатывают навыки на 12 реальных кейсах — от запуска мобильных приложений до управления релизами SaaS. Например, один из проектов имитирует работу с заказчиком из банковского сектора, где нужно согласовать требования и сроки под жесткими ограничениями бюджета.</p><p>Программа обновляется каждые 6 месяцев с учетом запросов работодателей. В 2025 году добавлен модуль по гибридным методологиям (Agile-Waterfall) для госпроектов и FinTech.</p><p>Помимо Jira и Trello, студенты осваивают специализированные решения для IT-команд — Axure RP для прототипирования и MS Project для сложных диаграмм Ганта.</p><p>Преимущества:</p><ul><li>стажировка у партнеров (VK, Сбер, Тинькофф) после успешной защиты дипломного проекта;</li><li>доступ к закрытому чату выпускников с вакансиями от 500+ компаний;</li><li>сертификация PMI CAPM® включена в стоимость.</li></ul><h3>Что получают выпускники</h3><p>По данным академии, до 80%студентов трудоустраиваются в течение нескольких месяцев после выпуска.</p><p>В портфолио входят:</p><ul><li>4 завершенных учебных проекта с метриками эффективности (например, сокращение сроков на 15-20% в симуляциях);</li><li>готовые артефакты: устав проекта, реестр рисков, отчеты по Scrum-спринтам;</li><li>государственный диплом о профессиональной переподготовке и международный сертификат.</li></ul><h3>Стоимость и условия</h3><ul><li>онлайн: 4 590 руб./мес (рассрочка на 10 месяцев);</li><li>очно: 17 910 руб./мес (скидка 15% при оплате за год);</li><li>корпоративное обучение: индивидуальный расчет для групп от 5 человек.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-10/2d2b29dc-b845-491b-a8f2-48d3aeb2fa15.png" alt="" /></figure><h2>3. ProductStar: «Профессия Продакт-менеджер»</h2><p><a href="https://new.productstar.ru/product-manager">Курс</a> от ProductStar подойдет как новичкам, так и тем, кто уже работает в IT, но хочет перейти в продукт.</p><p>Особенности программы:</p><ul><li>8 месяцев обучения с упором на практику;</li><li>3 специализации на выбор: B2C, B2B или стартапы;</li><li>работа с Figma, Miro, Amplitude, SQL;</li><li>кейсы от партнеров: Яндекс, МТС;</li><li>подготовка к реальным собеседованиям.</li></ul><p>Один из плюсов ProductStar — сообщество. Студенты получают доступ к закрытому чату, где общаются выпускники и преподаватели. Там можно получить совет, найти напарника для проекта или даже предложение о работе.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-10/3ed91164-9cbb-458e-97ba-7ddc83186a2b.png" alt="" /></figure><p>Каждый модуль курса завершается защитой проекта перед экспертами из индустрии. Это не только возможность получить обратную связь, но и шанс заявить о себе потенциальным работодателям.</p><h2>4. Академия Softline: «Управление проектами по разработке программных продуктов»</h2><p><a href="https://academyit.ru/courses/pp_project/">Курс от Академии Softline</a> создан для тех, кто хочет научиться выводить проекты на финишную прямую без переработок и конфликтов.</p><h3>Формат обучения и особенности курса</h3><p>Курс длится 252 академических часа и реализуется в мультиформатном режиме:</p><ul><li><b>Живые вебинары</b> с разбором кейсов и домашних заданий от экспертов-практиков.</li><li><b>Самостоятельная работа</b> на обучающей платформе с доступом к записям и шаблонам документов.</li><li><b>80% практики.</b> Симуляции переговоров с заказчиками, разработка проектной документации (устав проекта, реестр рисков, отчеты), защита итогового проекта перед комиссией с обратной связью.</li></ul><p>У курса Академии Softline гибкий подход к методологиям управления проектами. В отличие от стандартных программ, здесь учат не просто следовать шаблонам Waterfall или Agile, а адаптировать их под специфику российского IT-рынка.</p><p>Особое внимание уделяется работе в сложных условиях — например, управлению изменениями требований, частыми релизами и MVP. Студенты разбирают полный цикл разработки ПО: от архитектурных решений до интеграции с устаревшими системами (legacy), что особенно актуально для разработки новых программных продуктов.</p><p>Практическая направленность — еще одна особенность программы. Все теоретические знания сразу применяются в реальных кейсах от партнеров (Сбер, VK, МТС), включая разработку мобильных приложений и SaaS-платформ. Участники осваивают профессиональные инструменты: Jira для трекинга задач, MS Project для построения сложных диаграмм Ганта и Confluence для ведения проектной документации.</p><p>Преподаватели курса — действующие проджект-менеджеры с опытом в международных компаниях. Они делают акцент на технических аспектах управления: понимании жизненного цикла разработки ПО (SDLC), базовых принципах DevOps и особенностях работы с API. Это позволяет выпускникам говорить на одном языке с разработчиками и грамотно ставить технические задачи.</p><h3>Результаты выпускников</h3><p>По окончании обучения студенты получают диплом о профессиональной переподготовке государственного образца и готовое портфолио. В него входят: устав проекта для финтех-стартапа, реестр рисков с mitigation-стратегиями и отчеты по Scrum-спринтам с метриками эффективности.</p><p>Выпускники также получают доступ к вакансиям партнеров через карьерный центр Softline, что существенно повышает шансы на трудоустройство.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-07-11/df95d413-6573-46e2-b530-55088d550a5c.png" alt="" /></figure><h3>Стоимость и условия</h3><ul><li>полная цена: 156 000 руб.;</li><li>рассрочка: 13 000 руб./мес × 12 месяцев;</li><li>корпоративное обучение: индивидуальный расчет для групп от 5 человек.</li></ul><h2>5. Нетология: «Продуктовый менеджер»</h2><p><a href="https://netology.ru/programs/profession-product#/">Курс «Продуктовый менеджер»</a> от Нетологии предназначен для тех, кто хочет освоить управление продуктом на всех этапах его жизненного цикла — от исследования рынка до масштабирования. Программа подходит как новичкам, так и специалистам, которые хотят углубить свои знания в продуктовой аналитике и стратегическом планировании.</p><h3>Формат обучения и особенности</h3><p>Обучение длится 8 месяцев и включает 104 урока в формате видеолекций, практических заданий и живых вебинаров. Студенты работают над собственным продуктом, проходя все стадии разработки: от формирования гипотез до запуска MVP и анализа первых метрик. Каждый модуль завершается практическим заданием, которое проверяют кураторы — действующие продакт-менеджеры из Mail.ru Group, Avito и других компаний.</p><p>Основные темы:</p><ul><li>Анализ рынка и целевой аудитории — методы CustDev, построение CJM (Customer Journey Map), выявление Jobs To Be Done (JTBD).</li><li>Продуктовая аналитика — работа с метриками AARRR и HEART, настройка дашбордов, проведение A/B-тестов.</li><li>Финансовое моделирование — расчет юнит-экономики, стратегии монетизации, оценка рентабельности продукта.</li><li>Управление продуктом — создание роадмапа, приоритизация фич, работа с бэклогом и командой разработки.</li></ul><p>Что отличает курс:</p><ul><li>Практическая направленность. 70% времени посвящено работе с реальными кейсами, включая задачи от партнеров Нетологии.</li><li>Карьерный модуль. Помощь в составлении резюме, подготовка к собеседованиям, разбор переговоров о зарплате.</li><li>Гибкий график. Возможность изучать материалы в удобное время, совмещая обучение с работой.</li></ul><h3>Что получают выпускники</h3><p>По окончании курса выпускники получают диплом о профессиональной переподготовке государственного образца, подтверждающий квалификацию в области управления проектами.</p><p>В портфолио добавляются реальные кейсы — от проработанных гипотез и расчетов метрик до готовых дорожных карт продуктов, что существенно повышает шансы при трудоустройстве.</p><p>Карьерная поддержка включает доступ к вакансиям компаний-партнеров (VK, Тинькофф), персональные консультации по составлению резюме и подготовку к собеседованиям с HR-специалистами. Для лучших студентов предусмотрены стажировки с возможностью дальнейшего трудоустройства.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-10/79ec5a5a-0f72-440a-ab3e-914f73af1fa2.png" alt="" /></figure><h3>Стоимость</h3><p>Полная цена: 158 160 руб. (доступна рассрочка — 4 393 руб./мес). В рамках корпоративного обучения площадка предлагает индивидуальный расчет для групп.</p><h2>6. SkillFactory: «Проджект-менеджер в IT»</h2><p>SkillFactory предлагает подробный <a href="https://skillfactory.ru/project-manager">курс по управлению проектами</a>. За 9 месяцев студенты полностью погружаются в профессию и выходят готовыми к реальным задачам.</p><p>Курс SkillFactory предназначен для тех, кто хочет освоить управление IT-проектами с нуля или систематизировать имеющийся опыт. Программа сочетает теорию с практикой: студенты изучают методологии (Agile, Scrum, Waterfall) и сразу применяют их в реальных кейсах, таких как разработка мобильного приложения или внедрение CRM-системы.</p><h3>Формат обучения</h3><ul><li>Онлайн-вебинары с разбором кейсов от преподавателей-практиков (например, Павла Максимова, который руководил запуском eSIM в России).</li><li>3 проекта в портфолио: планирование приложения по Agile, внедрение софта для call-центра по Waterfall, дипломная работа — сервис для видео-найма персонала.</li><li>Поддержка наставников, включая персональные консультации и проверку заданий.</li></ul><h3>Ключевые навыки</h3><p>Курс фокусируется на практических инструментах:</p><ul><li>работа с Jira, Trello, MS Project для планирования;</li><li>управление бюджетом и рисками;</li><li>проведение ретроспектив и дэйли-митингов (коротких ежедневных собраний команды);</li><li>подготовка документации (уставы проектов, реестры рисков).</li></ul><h3>Трудоустройство</h3><p>Выпускники получают доступ к вакансиям партнеров SkillFactory и помощь в составлении резюме. По данным портала hh.ru, средняя зарплата junior-проджекта после курса составляет 95 000–120 000 руб.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-10/cf5081f8-58d2-473e-91df-b6e4d2e3608e.png" alt="" /></figure><h3>Стоимость</h3><p>Полная цена: 87 000 руб. (доступна рассрочка — 7 250 руб./мес). Включен бонусный курс по нейросетям.</p><h2>7. GoPractice: «Профессия: Продакт-менеджер»</h2><p><a href="https://gopractice.ru/switchers/">Программа</a> длится 11 месяцев и предназначена для специалистов, планирующих переход в продакт-менеджмент из смежных ролей (аналитики, маркетологи, проджекты).</p><p>Обучение включает пять ступеней:</p><ol><li>Анализ траекторий перехода в профессию.</li><li>Освоение основ продакт-менеджмента через кейсы.</li><li>Работа с симулятором управления продуктом.</li><li>Дипломный проект.</li><li>Подготовка к трудоустройству.</li></ol><p>Занятия проходят онлайн с гибким графиком. Каждую группу курируют менторы из компаний (Яндекс, Avito, Ozon), которые проводят приветственные звонки и консультируют по заданиям.</p><h3>Программа</h3><p>Курс охватывает:</p><ul><li>построение продуктовой стратегии;</li><li>проведение качественных и количественных исследований;</li><li>управление бэклогом и приоритизация фич;</li><li>расчет юнит-экономики;</li><li>взаимодействие со стейкхолдерами.</li></ul><p>Практическая часть включает три кейса и дипломный проект, которые формируют портфолио. Для выполнения заданий используются шаблоны и фреймворки, применяемые в MAANG-компаниях.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-10/6b1624c4-1b29-41f6-98a4-e80ad96b5574.png" alt="" /></figure><h3>Результаты</h3><p>По завершении программы выпускники получают сертификат GoPractice, подтверждающий освоение ключевых навыков продакт-менеджера. В портфолио добавляются три практических кейса и дипломный проект, выполненные на основе реальных бизнес-задач. Дополнительно предоставляется доступ к закрытому чату выпускников, где можно поддерживать профессиональные связи и обсуждать актуальные вакансии.</p><h3>Стоимость</h3><p>Полная цена: 219 900 руб., рассрочка: 18 325 руб./мес × 12 мес.</p><h2>Как выбрать курс и начать карьеру</h2><p>Выбор программы зависит от ваших целей и стартовых условий. Тем, кто только начинает, лучше выбрать курсы с упором на практику и помощью в трудоустройстве. Опытным специалистам подойдут программы с углублением в конкретные области — аналитику, управление командами или работу с данными.</p><p>Важно помнить, что ни один курс не даст всего сразу. После обучения придется доучиваться на практике, однако хорошая программа обеспечит базу, которая ускорит этот процесс. И главное — доступ к сообществу профессионалов, которое поможет на старте карьеры.</p>]]></content:encoded>
    </item>
    <item>
      <title>werf как альтернатива Kaniko для сборки образов в Kubernetes в вашей системе CI</title>
      <link>https://tproger.ru/articles/werf-kak-alternativa-kaniko-dlya-sborki-obrazov-v-kubernetes-v-vawej-sisteme-ci</link>
      <comments>https://tproger.ru/articles/werf-kak-alternativa-kaniko-dlya-sborki-obrazov-v-kubernetes-v-vawej-sisteme-ci?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Лесных Анна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/werf-kak-alternativa-kaniko-dlya-sborki-obrazov-v-kubernetes-v-vawej-sisteme-ci</guid>
      <description><![CDATA[<p>Публичный репозиторий Kaniko перевели в архив — теперь он доступен только для чтения. Изучили подобные инструменты и выбрали больше, чем просто альтернативу. Рассказываем, чем уникальна утилита werf и почему её стоит попробовать.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/werf-kak-alternativa-kaniko-dlya-sborki-obrazov-v-kubernetes-v-vawej-sisteme-ci">werf как альтернатива Kaniko для сборки образов в Kubernetes в вашей системе CI</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 07 Jul 2025 12:30:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Kaniko больше не поддерживается, поэтому мы предлагаем обратить внимание на werf как современную альтернативу. Разбираем, чем werf отличается от других инструментов, почему он может быть удобнее для CI/CD в Kubernetes и как быстро начать его использовать в своих пайплайнах. Также рассмотрим примеры интеграции werf с популярными CI-системами.</p><h2>Что такое Kaniko и зачем он был нужен</h2><p><a href="https://github.com/GoogleContainerTools/kaniko">Kaniko</a> — это инструмент от Google для сборки <a href="https://opencontainers.org/">OCI-совместимых образов контейнеров</a> внутри контейнеров без необходимости root-доступа и запуска Docker-демона. Он получил широкое распространение как решение для CI-сборок в Kubernetes, особенно в таких платформах, как GitHub Actions и GitLab CI.</p><h2>Преимущества Kaniko</h2><p><b>Безопасность: не требует привилегий (rootless).</b> Kaniko может запускаться в обычном (непривилегированном) контейнере, без необходимости доступа к root. Это значительно повышает безопасность, так как сборка образа происходит изолированно и не требует доступа к системным ресурсам.</p><p>Например, в Kubernetes можно создать под с Kaniko, где контейнер работает с обычным пользователем без securityContext.runAsRoot: true. Это значит, что злоумышленник не сможет получить root-доступ через этот контейнер.</p><p><b>Простота: легко запускать как задачу (Job) или контейнер в Kubernetes.</b> Kaniko легко интегрируется в Kubernetes — он просто запускается как обычный контейнер, который выполняет сборку образа и загружает его в реестр. Не нужно устанавливать и настраивать Docker-демон.</p><p>Так выглядит запуск сборки в GitLab CI/CD с использованием Kaniko:</p><p><b>Совместимость: поддержка стандартных Dockerfile.</b> Kaniko понимает обычные Dockerfile и может собрать образ из них, не требуя переписывать или адаптировать существующие инструкции.</p><p>Например, если есть обычный Dockerfile…</p><p>… то можно просто указать Kaniko использовать этот Dockerfile, и он построит такой же образ.</p><h2>Конец поддержки Kaniko и альтернативы</h2><p>В июне 2025 года публичный репозиторий Kaniko перевели в архив — теперь он доступен только для чтения, что фактически означает прекращение его активной поддержки и развития со стороны разработчиков.</p><p>Несмотря на то, что вскоре начали появляться форки (самый заметный — это <a href="https://github.com/chainguard-dev/kaniko">chainguard-dev/kaniko</a>), они ориентированы на режим поддержки (фикс багов и безопасность), а не на дальнейшее развитие инструмента. Поэтому многие пользователи ищут замену Kaniko — если и не сегодня, то в обозримом будущем.</p><p>Наиболее популярные в сообществе альтернативы:</p><ul><li><a href="https://github.com/moby/buildkit">BuildKit</a> от Docker/Moby (особенно в связке с docker buildx);</li><li><a href="https://github.com/containers/buildah">Buildah</a> от Red Hat из экосистемы Podman. Стал Sandbox-проектом CNCF в январе 2025 года.</li></ul><h2>Почему стоит рассмотреть werf и как начать</h2><p>Помимо низкоуровневых инструментов, таких как Kaniko, BuildKit и Buildah, существует также высокоуровневое решение — <a href="https://ru.werf.io/?utm_source=web&amp;utm_medium=tproger&amp;utm_campaign=kaniko">werf</a>. Это production-ready-инструмент, предназначенный не только для сборки, но и для доставки контейнеров в Kubernetes. Утилита позволяет использовать любую предпочтительную CI-систему. Является <a href="https://www.cncf.io/projects/werf/">Sandbox-проектом в CNCF</a>.</p><p>Что предлагает werf:</p><ul><li>Native Kubernetes-ориентированная архитектура, то есть можно легко интегрировать сборку, деплой и управление приложениями прямо в Kubernetes-кластере.</li><li>Поддержка Buildah или BuildKit в качестве backend для сборки, причём Buildah полностью интегрирован в werf и может работать в rootless-режиме. Это позволяет собирать образы без необходимости запуска процессов с правами root.</li><li>Удобная интеграция с другими инструментами доставки софта в Kubernetes (включая GitLab, GitHub Actions и Argo CD). Например, связка из werf и Argo CD позволяет полностью интегрировать между собой любую CI/CD-систему и Argo CD. При этом от каждого из инструментов берутся свои возможности и особенности.</li></ul><ul><li>Автоматическое кэширование сборки и тегирование на основе содержимого, как результат — инкрементальные сборки и оптимальное использование container registry.</li><li>Надёжное развёртывание и управление релизами в Kubernetes. werf расширяет возможности Helm, используя встроенный инструмент Nelm, который обеспечивает точное отслеживание состояния ресурсов, умное ожидание их готовности, мгновенное завершение проблемных релизов и применяет более надёжный метод обновления ресурсов — Server-Side Apply. При этом сохраняется полная совместимость с Helm-чартами и релизами.</li><li>Дистрибуция релизных артефактов. Утилита упаковывает Helm-чарт и связанные с ним образы контейнеров в единый бандл, который затем можно опубликовать в OCI-совместимый реестр. Кроме того, бандлы можно копировать между реестрами, выгружать на USB-флеш-накопитель и развёртывать в Kubernetes с помощью werf или других решений, которые поддерживают работу с OCI-чартами (Helm, Flux, ArgoCD).</li><li>Умная очистка container registry, которая автоматически удаляет неактуальные теги образов с учётом их использования в Kubernetes и истории Git, что позволяет безопасно освобождать место и контролировать рост хранилища без риска удаления нужных образов.</li></ul><h2>Примеры использования werf</h2><p>Как будет выглядеть werf в CI/CD-системах? В общем случае достаточно добавить в свой пайплайн CLI-команду werf converge, которая собирает образ, пушит его в registry и выкатывает в Kubernetes.</p><p>Листинг с конфигурацией .github/workflows/converge.yml для использования werf в GitHub Actions может выглядеть так:</p><p>А использовать werf в GitLab CI/CD можно так:</p><p>Более подробные инструкции для доставки приложений в Kubernetes с werf можно найти <a href="https://ru.werf.io/getting_started/?utm_source=web&amp;utm_medium=tproger&amp;utm_campaign=kaniko">в официальном руководстве по началу работы проекта</a>.</p><p>В документации можно найти интерактивные сценарии, пояснения терминов, готовые CI-конфигурации и Helm-интеграцию. Всё это будет полезно и новичкам, и опытным DevOps-инженерам.</p><h2>Вместо заключения</h2><p>Поскольку Kaniko больше не развивается, многие могут задуматься о миграции на другой инструмент. Помимо очевидных вариантов вроде BuildKit и Buildah, рекомендуем попробовать werf. Он подойдет, если вам нужен CI-first-подход с нативной Kubernetes-интеграцией и интересны дополнительные фичи «из коробки» для CI/CD, например дистрибуция релизных артефактов и умная очистка container registry.</p><p>Чтобы попробовать werf, переходите <a href="https://ru.werf.io/getting_started/?utm_source=web&amp;utm_medium=tproger&amp;utm_campaign=kaniko">на официальный сайт утилиты</a> и изучайте подробную документацию с пошаговыми руководствами и примерами.</p><p><i>Реклама. Рекламодатель: АО «Флант». ИНН 772366143. erid: 2W5zFGNuWcp.</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Что скрывает ChatGPT: тайные символы в ответах нейросети</title>
      <link>https://tproger.ru/articles/chto-skryvaet-chatgpt--tajnye-simvoly-v-otvetah-nejroseti</link>
      <comments>https://tproger.ru/articles/chto-skryvaet-chatgpt--tajnye-simvoly-v-otvetah-nejroseti?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Михаил Сахаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-skryvaet-chatgpt--tajnye-simvoly-v-otvetah-nejroseti</guid>
      <description><![CDATA[<p>В статье расскажем о невидимых метках, которые оставляет ChatGPT во время работы, а также о «мировом заговоре», который возник из-за этого, и как удалось его раскрыть.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-skryvaet-chatgpt--tajnye-simvoly-v-otvetah-nejroseti">Что скрывает ChatGPT: тайные символы в ответах нейросети</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Unicode]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Оружие]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 04 Jul 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>ChatGPT оставляет в текстах невидимые метки. Звучит как начало фильма про ИИ-заговор, но это реальность. Когда эта история впервые появилась в новостях, люди подумали о том, что нейросети шпионят за ними.</p><p>Представьте: студент пишет эссе в ChatGPT, сдает работу, а через неделю преподаватель находит странные символы в его тексте. Это не мистика, а обычная техническая особенность, которая превратилась в детектив в духе Дэна Брауна.</p><p>Пора узнать о том, как обычные пользователи случайно раскрыли «заговор» искусственного интеллекта, почему в интернете началась паника о скрытых водяных знаках, и что на самом деле происходит с новыми моделями OpenAI.</p><h2>Первые улики</h2><p>Все началось в апреле 2025 года. Студенты университетов стали <a href="https://trashbox.ru/link/2025-04-21-chatgpt-vstraivaet-vodyanye-znaki">жаловаться</a> на странные проблемы с текстами ChatGPT. Текстовый редактор Word вел себя странно при копировании эссе. Некоторые символы странно выглядели и в редакторах кода.</p><p>Первыми в теме начали <a href="https://www.rumidocs.com/newsroom/new-chatgpt-models-seem-to-leave-watermarks-on-text">разбираться</a> специалисты из Rumi. Они создавали инструменты для поиска ИИ в курсовых и контрольных, поэтому привыкли анализировать тексты. При тестировании новых моделей GPT o3 и o4-mini команда обнаружила, что нейросеть встраивает в сгенерированные ответы Unicode-символы.</p><p>При этом OpenAI как раз запустила бесплатный доступ к ChatGPT для студентов до конца учебного года, как раз во время сессии. Неразрывные пробелы <a href="https://t-j.ru/news/are-chatgpt-watermarks-real/">появлялись</a> только в длинных ответах — например, если ввести запрос «Напиши эссе о министерстве образования». Хотя некоторые пользователи заметили, что невидимые символы встраиваются и в короткие ответы.</p><p>Разработчики начали <a href="https://itc.ua/en/news/the-new-chatgpt-models-leave-extra-characters-in-the-text-they-can-be-detected-through-word/">обсуждать</a> тему на форумах. Пользователи делились скриншотами из Sublime Text и VS Code, где обычные пробелы подсвечивались как спецсимволы. Кто-то понял, что в Word можно нажать Ctrl+Shift+8 — сочетание клавиш сразу находит водяные знаки ChatGPT и отображает их как кружочки.</p><p>Такие символы не видно в чате с нейросетью и при копировании текста в Word, гугл-документы, мессенджеры или браузер. OpenAI нигде <a href="https://news.finance.ua/ru/chatgpt-stal-tayno-markirovat-svoi-teksty">не сообщала</a> об этом нововведении — вероятно, специально.</p><figure><img src="https://media.tproger.ru/user-uploads/115386/2025-06-19/5d095e83-7ece-4283-ba97-e93a4409b24c.jpg" alt="" /><figcaption>Непечатные символы, которые обнаружила команда Rumi в одном из текстов ChatGPT</figcaption></figure><h2>Охота на невидимку</h2><p>Команда Rumi тестировала новые модели и <a href="https://www.rumidocs.com/newsroom/new-chatgpt-models-seem-to-leave-watermarks-on-text">заметила</a> странность — длинные эссе выглядели нормально, но что-то было не так. Когда разработчики скопировали текст в редактор Sublime, то увидели россыпь странных символов на месте обычных пробелов.</p><p>Виновником <a href="https://gadgetstouse.com/blog/2025/04/25/detect-hidden-watermark-in-chatgpt-generated-text/">оказался</a> Unicode-символ U+202F — узкий неразрывный пробел. Он практически неотличим от обычного пробела, но имеет совершенно другой код. Для программистов это как найти подделку с помощью ультрафиолета.</p><p>Энтузиасты быстро создали инструменты для охоты на невидимку. SoSciSurvey научился находить 34 типа скрытых Unicode-символов — от пробела нулевой ширины до длинных тире.</p><p>Самым простым способом отыскать «партизан» стала комбинация клавиш. В Word нужно нажать Ctrl+Shift+8 — обычные пробелы превращаются в точки, а водяные знаки ChatGPT отображаются кружочками. Sublime Text <a href="https://gadgetstouse.com/blog/2025/04/25/detect-hidden-watermark-in-chatgpt-generated-text/">показывает</a> символы еще нагляднее — можно искать конкретно \u202F через функцию поиска.</p><p>Удалить символы оказалось еще проще. Любой может открыть VS Code или Sublime Text, найти U+202F через поиск и заменить на обычные пробелы. Водяные знаки исчезают за секунды.</p><p>Однако удаление скрытых символов не влияет на обнаружение ИИ-контента детекторами. Текст все равно определяется как сгенерированный. Получается, водяные знаки — это дополнительная, а не основная защита от мухлежа при создании работ.</p><h2>Заговор разрастается</h2><p>В соцсетях началась паника. Пользователи обвиняли OpenAI в том, что она специально выявляет студентов-читеров. Совпадение с бесплатным доступом для учащихся добавило масла в огонь.</p><p>Блогеры рисовали мрачные картины тотальной слежки. Якобы компания тайно <a href="https://mitsloan.mit.edu/ideas-made-to-matter/mit-study-ai-chatbot-can-reduce-belief-conspiracy-theories">помечает</a> каждого пользователя через невидимые символы. Кто-то даже предполагал, что OpenAI готовит массовые облавы на студентов перед защитой дипломов.</p><p>Особенно <a href="https://dl.acm.org/doi/10.1145/3614419.3644014">бурлили</a> студенческие форумы на Reddit. Учащиеся делились страшилками о том, как преподаватели внезапно начали проверять работы через редакторы кода. Появились гайды по обходу любых ИИ-детекторов.</p><p>Конспирологи забыли об одной детали — водяные знаки удаляются за пару кликов через поиск в документе.</p><p>Второй прокол теоретиков заговора — техническая реальность. OpenAI уже несколько лет разрабатывает технологию водяных знаков, но так и не выпустила ее.</p><p>К тому же компания открыто заявляла о работе над детекторами ИИ-контента. «Заговор» рассыпался при первом же фактчекинге.</p><p>Но паника уже распространилась. Студенты массово <a href="https://www.tomshardware.com/tech-industry/artificial-intelligence/openai-has-built-a-text-watermarking-method-to-detect-chatgpt-written-content-company-has-mulled-its-release-over-the-past-year">скачивали</a> инструменты для «очистки текстов», а преподаватели начали подозревать каждую работу. История с невидимыми символами превратилась из мелкого бага в огромный снежный ком из паники и домыслов.</p><h2>Прозаичная реальность</h2><p>OpenAI наконец прокомментировала ситуацию. Официальный ответ звучал предельно скучно: «Это не водяные знаки, а просто особенность масштабного обучения с подкреплением». Никакого заговора, никакой слежки — банальный артефакт.</p><p>При обучении нейросети с подкреплением модель <a href="https://openai.com/index/learning-to-reason-with-llms/">получает </a>«награды» за правильные ответы и «штрафы» за неправильные. В процессе миллионов таких циклов система случайно научилась вставлять специальные символы. Не потому, что так задумывали разработчики. Просто в данных эти символы встречались и улучшали результат.</p><p>Нейросеть приобрела «привычку». Никто ее этому не учил, но действие «отложилось в подсознании».</p><p>В обучении с подкреплением множество таких сюрпризов. Например, алгоритмы учатся играть в видеоигры и внезапно <a href="https://news.ycombinator.com/item?id=41600179">находят</a> баги, которые не замечали разработчики. Или начинают использовать физику игрового движка нестандартными способами. ChatGPT просто продолжил традицию — научился ставить невидимые символы там, где человек поставил бы пробел.</p><p>Конспирологам пришлось сворачиваться. Вместо эпического противостояния студентов и корпораций получился рассказ о том, как нейросеть случайно освоила цифровую каллиграфию.</p><h2>Дело раскрыто</h2><p>Парадокс в том, что разоблачить «заговор» оказалось проще, чем его придумать. Один официальный комментарий OpenAI — и вся конструкция рухнула.</p><p>Урок простой: перед тем как кричать о заговоре, стоит <a href="https://www.wissenschaftskommunikation.de/why-we-shouldnt-panic-about-the-rise-of-conspiracy-theories-75843/">потратить</a> пять минут на фактчекинг. Google по запросу «reinforcement learning side effects» выдаст тонны статей о побочках машинного обучения. Но кто же будет искать скучные объяснения, когда есть яркие теории?</p><p>В следующий раз, когда увидите пост про «тайное оружие техногигантов», вспомните про символы U+202F.</p><p>Над теориями заговора можно только смеяться. Больше — в нашем <a href="https://t.me/+JWynXkY6aXcxZGNi">тг-канале</a>!</p>]]></content:encoded>
    </item>
    <item>
      <title>GitHub хранит даже «удалённые» коммиты — багхантер уже заработал на этом $25 000</title>
      <link>https://tproger.ru/news/--github-hranit-dazhe--udalyonnye--kommity---baghanter-uzhe-zarabotal-na-etom--25-000</link>
      <comments>https://tproger.ru/news/--github-hranit-dazhe--udalyonnye--kommity---baghanter-uzhe-zarabotal-na-etom--25-000?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--github-hranit-dazhe--udalyonnye--kommity---baghanter-uzhe-zarabotal-na-etom--25-000</guid>
      <description><![CDATA[<p>GitHub хранит даже force push коммиты — багхантеры находят в них токены и зарабатывают тысячи долларов на обнаружении уязвимостей</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--github-hranit-dazhe--udalyonnye--kommity---baghanter-uzhe-zarabotal-na-etom--25-000">GitHub хранит даже «удалённые» коммиты — багхантер уже заработал на этом $25 000</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 02 Jul 2025 14:29:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Белый хакер Шэрон Бризинов <a href="https://trufflesecurity.com/blog/guest-post-how-i-scanned-all-of-github-s-oops-commits-for-leaked-secrets">доказал</a>: даже после force push коммиты на GitHub остаются доступными — и в них всё ещё можно найти утекшие токены, ключи и пароли.</p><p>С помощью автоматизированного сканера и немного удачи он <b>нашел десятки «секретов» и заработал $25 000 на обнаружении бага</b>.</p><h2>«Удалено» ≠ удалено</h2><p>Если разработчик закоммитил секрет и потом «удалил» его через git reset --hard и git push --force, кажется, что следов не осталось. Но это не так: GitHub <b>сохраняет все коммиты</b>, включая те, что больше не привязаны ни к одной ветке.</p><p>В публичном GitHub Archive они фиксируются как <i>PushEvent</i> с нулём коммитов — сигнал, что была перезапись истории.</p><p>Бризинов проанализировал такие события с 2020 года, нашёл десятки тысяч «висячих» коммитов и проверил их содержимое через TruffleHog — инструмент для поиска секретов.</p><h2>Как это работает</h2><p>Исследователь:</p><ul><li>использовал GitHub Archive и Event API, чтобы находить force push-события без коммитов;</li><li>для каждого события вытаскивал «удалённый» хеш коммита;</li><li>клонировал репозиторий и просматривал содержимое коммита через TruffleHog;</li><li>фильтровал результаты, выделяя потенциально ценные секреты.</li></ul><p>Для упрощения анализа он даже написал собственную платформу и подключил ИИ для оценки значимости найденных ключей.</p><h2>Самый опасный кейс — доступ к репозиториям Istio</h2><p>Один из найденных токенов дал администраторский доступ ко всем репозиториям Istio — проекта с 36 000 звёзд и десятками тысяч пользователей, включая Google, IBM и Red Hat.</p><p>Уязвимость могла привести к масштабной supply-chain атаке. К счастью, команда быстро отреагировала и отозвала ключ.</p><h2>Что это значит для разработчиков</h2><ul><li><b>Force push не стирает историю</b> — коммиты всё ещё доступны публично.</li><li><b>Любой закоммиченный секрет нужно немедленно отозвать</b> — даже если он «удалён».</li><li>.env, config.js и README.md — самые частые источники утечек.</li></ul><p>GitHub пока не предлагает инструмента для обнаружения таких уязвимостей, но<a href="https://github.com/trufflesecurity/force-push-scanner"> Truffle Security</a> уже опубликовал open-source сканер, чтобы проверить свою организацию.</p>]]></content:encoded>
    </item>
    <item>
      <title>Playwright + VS Code: Установка и первый автотест за 15 минут</title>
      <link>https://tproger.ru/articles/playwright---vs-code--ustanovka-i-pervyj-test-za-15-minut</link>
      <comments>https://tproger.ru/articles/playwright---vs-code--ustanovka-i-pervyj-test-za-15-minut?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Pavel Nik]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/playwright---vs-code--ustanovka-i-pervyj-test-za-15-minut</guid>
      <description><![CDATA[<p>Гайд для начинающих: как настроить среду, установить Playwright и написать первый тест. Пошаговая инструкция с примерами кода и пояснениями.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/playwright---vs-code--ustanovka-i-pervyj-test-za-15-minut">Playwright + VS Code: Установка и первый автотест за 15 минут</a>»</p>]]></description>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 24 Jun 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Playwright — мощный инструмент автоматизации web-приложений. Фреймворк уже достаточно известный и популярный. И если вы хотите его попробовать, то вот инструкция по установке с помощью Visual Studio Code (VS code).</p><p>Гайд для тех, кто только входит в автоматизацию. После можно получить первые результаты, попробовать сам фреймворк и дальше экспериментировать: делать свои тесты.</p><p><b>*Инструкция для Windows. Надеюсь, проблем при установке ни у кого не возникнет.</b></p><h2>Основные шаги по установке</h2><h3>Установка VS Code</h3><ol><li>Перейдите на оф. сайт <a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a> и скачайте последнюю версию. На главной странице должна отображаться кнопка <i>Download for Windows.</i></li><li>Дальше стандартная установка по инструкции: <i>Next &gt; Next &gt; Install</i>.</li></ol><h3>Установка Node.js. Шаги аналогичные</h3><ol><li>Также перейдите на оф. сайт <a href="https://nodejs.org/en/download">https://nodejs.org/en/download</a> и скачайте последнюю версию Node.js. Я использовал <i>Windows Installer (.msi).</i></li><li>Такая же стандартная установка: <i>Next &gt; Next &gt; Install</i>.</li></ol><h3>Создание проекта</h3><ol><li>Создайте пустую папку на ПК, где будет храниться проект для автоматизации. <br />У меня для этого есть отдельная директория, так удобнее хранить все проекты в одном месте. Но её можно создать даже на рабочем столе, разницы никакой. Мой путь к папке —  <i>C:\Users\Pavel\Projects\TestProject.</i></li><li>Запустите VS Code и там выберите созданную папку.</li></ol><figure><img src="https://media.tproger.ru/user-uploads/113257/2025-03-04/d46a761e-dbab-4bde-9ac8-f1bb936117d0.png" alt="" /></figure><h3>Установка Playwright</h3><ol><li>Перейдите в раздел управления расширениями <i>Extensions.</i></li><li>Введите <i>Playwright</i> в поисковой строке.</li><li>Нужно скачать тот, что верифицирован Microsoft (у него больше всего установок).</li></ol><figure><img src="https://media.tproger.ru/user-uploads/113257/2025-03-04/b5ea7aec-53b2-480b-af3c-4934b427a86c.png" alt="" /></figure><p>Но установка еще не закончена, дальше:</p><ul><li>Вызовите<i> Command Palette</i>. Можно через основное меню: <i>View &gt; Command Palette </i>или комбинацией клавиш <i>Ctrl+Shift+P</i>.</li><li>Введите <i>Test: Install Playwright</i> в появившейся строке.</li><li>Выберите необходимые браузеры для установки.</li><li>Я оставляю только Chromium, его вполне достаточно. Кликаем Ok и ждем окончательной установки Playwright (должен появиться терминал и начаться установка пакетов).</li></ul><figure><img src="https://media.tproger.ru/user-uploads/113257/2025-03-04/9d8a4d16-7fbc-43ba-a316-a28d7b729a95.png" alt="" /></figure><h3>Создание тестов</h3><ol><li>В основном окне <i>Explorer </i>добавьте новый файл в модуле <i>tests </i>(правая кнопка мыши, новый файл).<br />*Важно, чтобы название файла оканчивалось на <i>spec.ts</i> или <i>.test.ts</i> (расширение может быть и <i>.js</i>): так Playwright определяет тесты по дефолту. В примере добавил файл <i>login.spec.ts.</i></li></ol><figure><img src="https://media.tproger.ru/user-uploads/113257/2025-03-04/731e6efb-a3e6-4385-93c7-2fa89e8fa0f3.png" alt="" /></figure><ol><li>Вставьте следующий код в созданный файл <i>login.spec.ts. </i><br />Это пример логина на платформе, который ± подходит под любой сайт: нужно только изменить URL, locators и данные для входа. Использую тестовую платформу <a href="https://demowebshop.tricentis.com/">https://demowebshop.tricentis.com/</a>.</li></ol><p>Осталось совсем немного. Только запустить созданный тест:</p><ol><li>Перейдите в раздел <i>Testing</i>.</li><li>Выберите созданный файл и запустите тесты кликом <i>Run test</i>.</li></ol><figure><img src="https://media.tproger.ru/user-uploads/113257/2025-03-04/64456ff7-2a83-416f-8a60-57ae2567eb51.png" alt="" /></figure><p>Можете добавить еще один тест в тот же файл и посмотреть его выполнение:</p><p>Вот и всё! Теперь у вас есть базовая автоматизация с Playwright! Дальше можно дописывать другие тесты. Например, посмотреть работу системы с незарегистрированным email, вынести credentials в конфигурационный файл и т.д. И, конечно, углубляться, разбираться во всем, чтобы стать уверенным автоматизатором. Можно продолжить изучение статей на оф.сайте <a href="https://playwright.dev/docs/writing-tests">Playwright</a>. Главное, соблюдайте <a href="https://playwright.dev/docs/best-practices">best-practices</a> при работе с ним.</p>]]></content:encoded>
    </item>
    <item>
      <title>Комментарии в коде: зло или спасение ?</title>
      <link>https://tproger.ru/articles/kommentarii-v-kode--zlo-ili-spasenie--</link>
      <comments>https://tproger.ru/articles/kommentarii-v-kode--zlo-ili-spasenie--?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Baskon]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kommentarii-v-kode--zlo-ili-spasenie--</guid>
      <description><![CDATA[<p>Когда нужны комментарии в коде, а когда без них лучше. Объясняем на примерах, как писать понятные и полезные комментарии</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kommentarii-v-kode--zlo-ili-spasenie--">Комментарии в коде: зло или спасение ?</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Safari]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[XML]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 23 Jun 2025 10:39:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>Что делать с комментариями в коде — писать или не писать? Одни уверены: чистый код говорит сам за себя, другие не представляют работу без пояснений. Истина, как обычно, посередине. Комментарии — это инструмент, умелый программист применяет их с пользой, неумелый — только усложняет жизнь себе, коллегам, начальству, пользователям и вообщем всем сопричастным. Разберемся, когда комментарии действительно нужны, а когда от них больше вреда и приведем примеры в коде</p><h2>Зачем вообще писать комментарии в коде?</h2><p>Комментарии — это кусочки текста в программе, которые компилятор пропускает, а человек читает. Они не влияют на работу программы, зато сильно влияют на мозг того, кто будет с этой программой разбираться.</p><h3>Какие задачи они решают ?</h3><h4>1. Пояснить неочевидное</h4><p>Код показывает «что» делает программа, а комментарий — «зачем».</p><p>Такой комментарий не просто поясняет логику — он экономит десятки минут будущего чтения.</p><h3>2. Предупредить</h3><p>В коде бывает странное поведение. Иногда это не баг, а фича. И если не предупредить, другой разработчик обязательно «поправит» и всё сломает. Комментарий защитит от этого:</p><h3>3. Пометить незавершёнку</h3><p>TODO, FIXME, HACK — это специальные маячки. Их ставят туда, где нужно что-то доделать, починить или переписать по-человечески.</p><p>Бонусом, IDE умеют обрабатывать такие заметки, каждая по-своему.</p><h3>4. Временно отключить код</h3><p>Иногда нужно что-то закомментировать, чтобы проверить гипотезу. Но такой код нельзя оставлять надолго. Если от него нет пользы — в мусор. Историю всё равно сохранит git.</p><h3>5. Объяснить архитектуру</h3><p>Иногда важно не только «как» сделано, но и «почему так». Особенно это касается паттернов, нестандартных решений или компромиссов.</p><h3>6. Генерация документации</h3><p>Многие языки и фреймворки поддерживают специальные форматированные комментарии для генерации документации. Например, JavaDoc в Java, docstring в Python, XML в C# – предназначены для описания интерфейсов: что делает функция или класс, какие имеют входные параметры и какой результат дают. Такие Комментарии выполняют роль пользовательской документации прямо в коде и могут автоматически собираться в справочник по API.</p><h3>7. Пошутить</h3><p>Программисты – тоже люди, и иногда оставляют в коде шуточные либо эмоциональные комментарии, чтобы снять стресс. В открытых исходниках можно встретить комментарии с шутками, сарказмом или даже ругательствами, адресованными сложному коду или «костылям».</p><p>Как видно, диапазон применения комментариев очень широк. Но одинаково ли хорошо все эти виды влияют на качество кода? Рассмотрим случаи, когда комментарии приносят пользу, а когда создают проблемы.</p><h2>Когда комментарии помогают</h2><p>А часто без комментариев в коде сложно разобраться, особенно когда  код чужой.</p><h3>1. Когда логика не лежит на поверхности</h3><p>Есть участки кода, где без контекста трудно разобраться, даже если код написан довольно читабельно. Например, сложная формула, нетривиальный алгоритм или необычная структура данных – всё, что выбивается из обыденного опыта разработчиков. В таких случаях пара строк комментария, резюмирующих подход, или объясняющих, что происходит, сэкономят часы на анализ. Это особенно важно для командной работы: коллегам, незнакомым с модулем, не придётся разбираться «с нуля».</p><h3>2. Когда нужно документировать контракты и условия</h3><p>Комментарии могут  использоваться для обозначения контрактов – предусловий и постусловий функций, инвариантов и т.д. (подход Design by Contract). Хотя современные языки позволяют выразить многое (например, через assert или декораторы), комментарии могут дополнять код уточнениями вроде:</p><p>Также текстовые пометки в коде полезны для фиксации граничных условий и особых случаев, таких как обработка пустных массивов в бинарном поиске,  другой пример:</p><p>Да, можно это выразить через assert, но комментарий дает сразу и контекст, и предупреждение. Особенно если логика непростая.</p><h3>3. Когда нужно предоставить контекст и ссылки</h3><p>Иногда кусок кода существует благодаря внешнему источнику, например, когда решение просто скопировано из ответа на форуме или из книги по теме. Просто так его не понять — нужна ссылка на источник:</p><h3>4. Когда нужно облегчить ревью</h3><p>Когда код содержит много пояснений к его работе  новому участнику команды проще входить в проект – по сути, комментарии выполняют роль встроенной документации. Кроме того, код-ревью проходит эффективнее, если автор сразу помечает неочевидные места комментариями. Например:</p><p>В PEP 8 (стиле кодирования Python) прямо приводится пример: комментарий “Compensate for border” – полезный, в отличие от банального “Increment x”, который не даёт новой информации.</p><h3>5. Когда нужна поддержка самодокументируемости через структуру</h3><p>Иногда хочется написать: # Этап 1: авторизация пользователя, и в этот момент приходит мысль — а почему бы не вынести это в функцию authorize_user()? И комментарий уже не нужен. То есть сам порыв объяснить словами часто указывает, что код пора расчленить и упростить.</p><h3>6. Когда нужно кого-то обучить программированию или корпоративным стандартам оформления кода</h3><p>Когда человек обучается программированию или только пришел в компанию, где есть свои стандарты, комментарии в коде можно использовать, чтобы дать ему обучающий материал с примерами из практики, пример:</p><p>Комментарий — это инструмент. Если комментарий в коде дает информацию, которую нельзя вытащить из кода напрямую, — значит, работает как надо. Но бывает и обратное — когда комментарии мешают. Об этом — в следующей части.</p><h2>Когда комментарии вредят</h2><p>Худшее, что может случиться с комментариями – когда они вводят в заблуждение или засоряют код впустую. Рассмотрим подробнее:</p><h3>Дублируют очевидное</h3><p>Комментарий, который просто повторяет код своими словами, не несёт никакой пользы:</p><p>А вот так — лучше вообще без пояснений:</p><p>Комментарий должен объяснять, зачем что-то делается, а не что именно:</p><h3>Врут и вводят в заблуждение</h3><p>Классика: код переписали, а про комментарий забыли.</p><p>Спустя некоторое время код могли переписать, и old_api_call() заменили на new_api_call(), но комментарий остался от прежней версии и стал источником дезинформации: разработчик, читающий код, может принять заведомо неверное решение, доверившись устаревшей заметке. По этой причине крайне важно понимать: если уж пишете комментарий, держите его в актуальном состоянии вместе с кодом.</p><h3>Показывают, что код плохой</h3><p>Когда код плохо читается, и его пытаются «объяснить» словами, вместо того чтобы переписать:</p><p>Вместо этого — понятный код:</p><h3>Плодятся бесконтрольно</h3><p>Иногда встречается код, где каждое действие сопровождается избыточными пояснениями:</p><p>Здесь нет ни одной неочевидной строки. Лучше оставить так:</p><h3>Представляют собой мёртвый код</h3><p>Когда в коде остаются большие мёртвые блоки, которые просто закомментированы:</p><p>Может быть, раньше это что-то значило, но сейчас — просто мертвый груз. Если код не нужен — удаляй. История останется в git.</p><h3>Запутывают и размывают смысл</h3><p>Что значит «временное»? Когда переделывать? Почему не постоянное?</p><p>Лучше так:</p><p>Теперь ясно, почему так сделано, и можно отследить, когда это поведение закончится.</p><p>Итак, комментарии становятся злом, когда они не выполняют своей информативной роли, а лишь создают шум или дезинформируют. В худшем случае они могут привести к багам (если программист доверится неверному комментарию) и точно приведут к потере времени на их чтение и разбор. Единственный способ избежать этого зла —  писать комментарии ответственно: убедиться, что они нужны, правдивы и своевременны.</p><h2>Самодокументируемый код vs комментарии</h2><p>Есть мечта у программистов — писать код, который объясняет сам себя. Без сносок, без подсказок, без комментариев. Такой код читается как инструкция: открыл — понял. Это и называется самодокументируемым стилем.</p><p>Как его достигают?</p><ul><li>Говорящие имена. Не x и a, а temperature, retryLimit, userProfile. Лучше сразу по имени понять, что перед тобой — массив с ID или словарь с настройками.</li><li>Функции с характером. У функции должно быть имя-глагол, в котором есть ответ на вопрос “что делает этот код?”. Например: parseInvoice(), sendEmailReminder(), fetchUserByToken().</li><li>Использовать названия для константных значений. Вместо if (status == 4) — if (status == ORDER_CONFIRMED). Вместо 3000 — RETRY_TIMEOUT_MS.</li><li>Структура — как абзацы в тексте. Пустые строки, логические блоки, отступы — чтобы этапы выделялись сами собой.</li></ul><p>Посмотрим например, где простой код поясняется ненужным комментарием:</p><p>Другой пример:</p><p>Комментарий уже не нужен. Из имён всё понятно: считаем среднюю температуру. Здесь самое интересное — само документируемость имеет границы. Потому что:</p><ul><li>Код объясняет «что», но не всегда «почему».</li></ul><p>Вот есть строка:</p><p>А почему 5? Почему не 3, не 10? Если причина — ограничение API, бизнес-логика или чья-то странная прихоть — код не расскажет. А вот комментарий может:</p><p><b>Неочевидные решения и компромиссы</b></p><p>Иногда приходится делать что-то нестандартное. Например:</p><p>Такой кусок кода без пояснений вызовет недоумение: А почему не сортируем?</p><p>Старайтесь писать код так, чтобы его поняли без подсказок. Как будто у вас нет возможности что-то дополнительно объяснить. А если видите, что читателю будет трудно — помогите: добавьте комментарий, который действительно нужен.</p><h2>Влияние ИИ и новых инструментов на подход к комментариям</h2><p>В последние годы в распоряжении разработчиков появились мощные ассистенты на базе искусственного интеллекта — такие как GitHub Copilot (автодополнение кода на основе ИИ) и большие языковые модели вроде ChatGPT. Эти технологии начинают влиять и на практики комментирования кода.</p><p>Во-первых, автогенерация кода по комментариям стала реальностью.</p><p>Инструмент Copilot способен на лету написать фрагмент кода, ориентируясь на описания на естественном языке. Например:</p><p>Copilot тут же может подставить реализацию:</p><p>Такой подход превращает комментарий в своего рода промпт — описание задачи для ИИ. Это приучает писать коротко и по делу. Хотя такие комментарии потом часто удаляют, их роль в генерации кода становится всё важнее.</p><p>Во-вторых, ИИ сам пишет комментарии.</p><p>Можно просто показать код:</p><p>…и попросить ИИ: прокомментируй. В ответ он выдаст:</p><p>Или даже более детальный:</p><p>Такие автокомментарии могут быть полезны, но всё равно требуют проверки: всезнающий ИИ не всегда понимает скрытые нюансы логики, а часто просто галлюцинирует, поэтому доверять полностью не стоит, но, как черновик, вполне годится.</p><p>В-третьих, стало проще понимать чужой код без комментариев.</p><p>Раньше приходилось часами вчитываться, сегодня — можно просто спросить:</p><p>Запрос в ChatGPT: что делает эта функция?</p><p>Ответ: Она возвращает новый список, содержащий удвоенные значения тех элементов исходного списка, которые делятся на 3.</p><p>ИИ не волшебник, но в 90% случаев — удобный переводчик с машинного на человеческий. Это снимает часть нагрузки с необходимости документировать тривиальные вещи.</p><p>В-четвертых, новый тип комментариев: инструкции для ИИ</p><p>Может возникнуть ситуация, когда комментарий пишется не столько для человека, сколько как команда:</p><p>Если вы используете Cursor или Replit, это может очень полезным.</p><h2>Заключение</h2><p>Так всё-таки, комментарии – зло или спасение?</p><p>Это не абсолютное благо и не абсолютное зло, это просто инструмент. Всё зависит от того, в чьих он руках и зачем используется. Комментарии способны помочь понять неочевидные решения, разобраться в сложных структурах, подсказать направление для размышления. Но, как и любой инструмент, в неумелых руках это способ случайно (или не очень) испортить кровь себе и окружающим.</p><p>Но всё-таки чаще наличие комментариев делает жизнь лучше, ведь иногда формулирование мысли разговорным текстом, а не кодом, позволяет понять свою идею лучше, взглянуть на нее с другой стороны.</p>]]></content:encoded>
    </item>
    <item>
      <title>ChatGPT превращается в новый Гугл для новостей: что означает интеграция с The Washington Post и другими медиа</title>
      <link>https://tproger.ru/articles/chatgpt-prevrashhaetsya-v-novyj-gugl-dlya-novostej--chto-oznachaet-integraciya-s-the-washington-post-i-drugimi-media</link>
      <comments>https://tproger.ru/articles/chatgpt-prevrashhaetsya-v-novyj-gugl-dlya-novostej--chto-oznachaet-integraciya-s-the-washington-post-i-drugimi-media?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Михаил Сахаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chatgpt-prevrashhaetsya-v-novyj-gugl-dlya-novostej--chto-oznachaet-integraciya-s-the-washington-post-i-drugimi-media</guid>
      <description><![CDATA[<p>ChatGPT стала новостником с контентом от топовых медиа. Но эта революция расколола инфополе на два лагеря: одни заключают выгодные партнерства, другие подают многомиллиардные иски. Выиграют ли от этого пользователи — разберемся в статье.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chatgpt-prevrashhaetsya-v-novyj-gugl-dlya-novostej--chto-oznachaet-integraciya-s-the-washington-post-i-drugimi-media">ChatGPT превращается в новый Гугл для новостей: что означает интеграция с The Washington Post и другими медиа</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Промпты]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 12 Jun 2025 10:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Представьте: вы спрашиваете ChatGPT о последних событиях в экономике, а она отвечает свежими цитатами из Financial Times со ссылками на статьи. Или интересуетесь политическими новостями — и получаете сводку от The Washington Post. Это уже не фантастика, а реальность.</p><h2>Google — всё?</h2><p>ChatGPT трансформируется из простого ассистента в полноценный агрегатор проверенной информации. Теперь пользователи получают ответы с лицензированным контентом из топовых медиа: <a href="https://openai.com/global-affairs/the-washington-post-partners-with-openai">The Washington Pos</a>t, <a href="https://www.bloomberg.com/news/articles/2024-04-29/openai-strikes-deal-to-use-financial-times-content-in-chatgpt">Bloomberg</a>, Financial Times и <a href="https://www.theverge.com/news/653500/the-washington-post-openai-chatgpt-partnership">других изданий</a>.</p><p>Меняется сам способ получения информации. Пользователь больше не гуглит, а сразу видит структурированный ответ с цитатами, саммари и прямыми ссылками на источники. Эта трансформация напоминает переход от библиотечного каталога к личному секретарю, который не только находит нужные книги, но и выбирает самые важные страницы.</p><p>Питер Элкинс-Уильямс, глава отдела глобальных партнерств The Washington Post, <a href="https://openai.com/global-affairs/the-washington-post-partners-with-openai/#:~:text=%E2%80%9CWe%E2%80%99re%20all%20in%20on%20meeting%20our%20audiences%20where%20they%20are%2C%E2%80%9D%20said%20Peter%20Elkins%2DWilliams%2C%20Head%20of%20Global%20Partnerships%20at%20The%20Washington%20Post.%20%E2%80%9CEnsuring%20ChatGPT%20users%20have%20our%20impactful%20reporting%20at%20their%20fingertips%20builds%20on%20our%20commitment%20to%20provide%20access%20where%2C%20how%20and%20when%20our%20audiences%20want%20it.%E2%80%9D">подчеркивает</a>, что это решение отражает стратегию издания «встречать аудиторию там, где она находится». Варун Шетти из OpenAI <a href="https://openai.com/global-affairs/the-washington-post-partners-with-openai/#:~:text=%E2%80%9CMore%20than%20500,they%20need%20it.%E2%80%9D">отмечает</a>, что компания стремится направлять свыше 500 миллионов еженедельных пользователей ChatGPT к «своевременной, достоверной информации».</p><p>При запросе о текущих событиях ChatGPT больше не ограничивается информацией из предобучения, которое неизбежно устаревает. Вместо этого система предоставляет актуальный контент из авторитетных медиа. Можно сказать, что ИИ превращается в умного редактора новостной ленты, персонализированной под пользователя.</p><h2>Два лагеря СМИ: партнерство и судебные иски</h2><p>Мир медиакомпаний разделился на два противоположных лагеря, сформировав параллельные стратегии взаимодействия с ИИ.</p><p>В первом лагере находятся компании, которые рады сотрудничать с цифровыми проектами. OpenAI заключила соглашения с 20 издательскими домами, охватывающими свыше 160 газет и журналов на более чем 20 языках. Среди них The Washington Post, Financial Times, Time, Axel Springer (владелец Politico, Business Insider), Condé Nast (Vogue, The New Yorker, GQ) и Hearst (Houston Chronicle, Esquire, Cosmopolitan).</p><p>Суть этих сделок заключается в лицензировании контента, доступе к API и направлении трафика обратно к издателям в обмен на возможность использовать и цитировать материалы. Для изданий это не просто новый источник дохода, но и канал дистрибуции — так они привлекают аудиторию, которая никогда бы не зашла на сайт. Хотя финансовые детали часто остаются конфиденциальными, известно, что некоторые соглашения включают многомиллионные выплаты.</p><p>Во втором лагере находятся компании, вставшие в оппозицию нейросетям. The New York Times, The Center for Investigative Reporting, Ziff Davis, а также объединившиеся в коллективный иск The Intercept, Raw Story и AlterNet подали в суд против OpenAI. Издания <a href="https://www.npr.org/2025/03/26/nx-s1-5288157/new-york-times-openai-copyright-case-goes-forward#:~:text=Lawyers%20for%20The%20New%20York%20Times%20believe%20that%20the%20paper%27s%20articles%20are%20one%20of%20the%20biggest%20sources%20of%20copyrighted%20text%20that%20OpenAI%20used%20to%20build%20ChatGPT%20into%20the%20premier%20AI%20chatbot%2C%20and%20they%20allege%20that%20OpenAI%20violated%20copyright%20laws%20in%20its%20siphoning%20of%20the%20newspaper%27s%20journalism.">утверждают</a>, что несанкционированное использование материалов для обучения ИИ нарушает авторские права и наносит ущерб их бизнес-модели.</p><p>NYT в своем иске <a href="https://harvardlawreview.org/blog/2024/04/nyt-v-openai-the-timess-about-face/?utm_source=chatgpt.com">заявляет</a>, что модели OpenAI и Microsoft «угрожают качественной журналистике»    и лишают компании денег за трафик на их сайты. Компания требует многомиллиардную компенсацию и уничтожение моделей, обученных на ее материалах — требование, которое технически практически невозможно выполнить.</p><p>OpenAI отвечает на эти обвинения, заявляя, что NYT «взломала» ChatGPT, используя «фейковые промпты», чтобы собрать доказательства для иска. По мнению компании, обычные пользователи не применяют чат-бот таким образом, а статьи составляют лишь «крошечную часть разнообразных наборов данных», использованных для обучения моделей.</p><h2>Media Manager: инструмент контроля или шаг к прозрачности?</h2><p>В разгар дискуссий о правомерности использования контента OpenAI анонсировала разработку инструмента Media Manager — интерфейса для медиакомпаний, который должен сделать использование их материалов в их модели более прозрачным.</p><p>Издатели получили бы возможность устанавливать правила и ограничения, полностью исключать определенные материалы из обучения, а также получать аналитику о показах и использовании своего контента.   Компания так хотела защититься от постоянных судебных исков и выйти на контакт с авторами статей.</p><p>Однако реализация этой инициативы оказалась под вопросом. Несмотря на то, что OpenAI обещала запустить Media Manager к 2025 году, но этого так и не случилось. По <a href="https://techcrunch.com/2025/01/01/openai-failed-to-deliver-the-opt-out-tool-it-promised-by-2025/">данным</a> источников, знакомых с ситуацией, разработка не рассматривалась как приоритетная задача внутри компании. Один из бывших сотрудников OpenAI даже не смог вспомнить, чтобы хоть кто-то плотно занимался этим проектом.</p><p>В медиасообществе инициативу восприняли неоднозначно. Одни издатели рассматривают ее как шаг к более справедливым отношениям и прозрачности, подобно тому как инструменты монетизации в YouTube позволили создателям контента получать доход от своих работ. Другие видят в этом лишь попытку OpenAI избежать полноценного лицензирования контента.</p><p>Разработка Media Manager «заглохла». Это значит, что OpenAI сделала ставку на прямые партнерства с крупными издателями вместо создания универсального инструмента для всех правообладателей. Такая стратегия выгодна для крупных компаний, но оставляет практически бесправными малые издания и исследовательские организации.</p><h2>А что под капотом?</h2><p>Проект OpenAI сложный и многоуровневный, он связывает генеративный ИИ с контентом, опубликованным в сети. На первом уровне — слое запросов — система анализирует пользовательский вопрос, определяя, нужно ли обращаться к актуальным новостным источникам. Если пользователь спрашивает о последних событиях в экономике или политике, система понимает, что нужны свежие данные из СМИ, а не только базовые знания модели.</p><p>Далее включается слой маршрутизации. Он направляет запрос к API соответствующих партнерских медиа, выбирая наиболее подходящие источники для конкретной темы. Например, если нужно узнать о финансовых рынках, предпочтение может отдаваться Financial Times, а при запросе о международной политике — The Washington Post.</p><p>Полученные данные обрабатываются на следующем уровне — слое обработки. Здесь формируется структурированный ответ, органично интегрирующий информацию из медиаисточников с базовыми знаниями модели. Система выделяет ключевые факты, обобщает контекст и создает целостную картину, понятную пользователю.</p><p>Последним выступает слой атрибуции, который обеспечивает корректное цитирование и оформление ссылок на исходные материалы. Это не только юридическое требование лицензионных соглашений, но и этический момент. Так пользователи могут оценить авторитетность источника и сформировать доверие к нему.</p><p>Механизмы обновления данных работают с различной частотой в зависимости от типа контента. Для «молний» обновления происходят практически в реальном времени — как только статья появляется на сайте издания, она становится доступной для цитирования в ChatGPT. Аналитические материалы обновляются по мере публикации, а архивный контент — с меньшей частотой, но остается доступным для исторического контекста.</p><p>В отличие от традиционных поисковых систем, которые индексируют весь открытый веб и ранжируют результаты по сложным алгоритмам, интеграция ChatGPT с медиа работает с контролируемым потоком лицензированного контента. Это повышает точность и авторитетность информации, минимизирует риски неправомерного использования материалов и помогает выстроить устойчивую систему, выгодную всем участникам: пользователям, ИИ-компаниям и создателям контента.</p><h2>Как новинку могут использовать айтишники?</h2><p>Интеграция ChatGPT с медиаресурсами открывает целый спектр возможностей для разработчиков и продуктовых команд. На стыке искусственного интеллекта и качественной журналистики рождается новое поколение информационных продуктов, способных изменить способы взаимодействия с новостями и аналитикой.</p><p>Особенно перспективным направлением является создание специализированных нейроассистентов для разных сфер. Представьте ИИ-юриста, который не только знает базовые принципы права, но и мгновенно информирует о последних изменениях в нормативных актах, опираясь на публикации профильных изданий. Или финансовый советник, анализирующий рыночные тренды на основе актуальных данных из деловых СМИ и предоставляющий рекомендации с учетом последних экономических событий. В медицинской сфере такой помощник может собирать информацию о новых исследованиях и методиках лечения из авторитетных научных журналов, делая их доступными для практикующих врачей.</p><p>Другое многообещающее направление — разработка «живых» дайджестов. В отличие от традиционных статичных подборок новостей, такие системы способны динамически агрегировать и резюмировать материалы из разных источников с сохранением контекста. Подобные сервисы могут анализировать развитие сюжета, показывать различные интерпретации события, выделять ключевые факты и тренды. Вместо поверхностного скроллинга заголовков пользователь глубоко понимает тему, рассматривая ее со всех сторон и зная предпосылки.</p><p>Для компаний открываются возможности создания инструментов для команд, работающих с информацией. PR-отделы могут использовать платформы для отслеживания репутации бренда в свете актуальных событий и оценивать эффективность информкампаний. Аналитические отделы получат системы мониторинга конкурентов, основанные на анализе публикаций в деловых и отраслевых медиа. Такие инструменты превращаются из простых агрегаторов упоминаний в интеллектуальных ассистентов, способных выявлять неочевидные связи и тренды.</p><p>Бизнес получит множество полезностей от этих технологий, в том числе сможет избежать постоянных судов из-за авторских прав, повысит точность и достоверность ответов нейросетей и завоюет доверие еще большего числа пользователей.</p><h2>А есть ли проблемы?</h2><p>Интеграция ChatGPT с крупными медиа, при всех своих преимуществах, оставляет ряд вопросов, от решения которых зависит будущее всей информационной системы.</p><ul><li><b>Вопрос 1:</b> размер компенсации. Достаточно ли выплат медиакомпаниям, учитывая, что их контент становится важной частью коммерческого продукта OpenAI? Как определить справедливую стоимость лицензирования, особенно в условиях, когда традиционные метрики вроде количества просмотров или переходов работают иначе в контексте ИИ? Пока крупные издания имеют возможность договариваться о взаимовыгодных условиях, менее влиятельные компании рискуют остаться без денег.</li><li><b>Вопрос 2:</b> влияние на бизнес-модели медиа в долгосрочной перспективе. Если пользователь получает качественное саммари материала прямо в ChatGPT, сохранится ли мотивация переходить по ссылке на полную статью? Не приведет ли это к снижению потока прямого трафика и, как следствие, рекламных доходов издателей? Некоторые аналитики отрасли опасаются, что интеграция с ИИ может превратить медиакомпании в поставщиков сырья для технологических гигантов, лишив их прямого контакта с аудиторией.</li><li><b>Вопрос 3: </b>разделение информационного пространства на контент от привилегированных партнеров и всех остальных. Получит ли ChatGPT предпочтение к материалам изданий-партнеров, даже если более релевантная информация доступна у других? Как обеспечить разнообразие контента и избежать перекоса в сторону крупных медиакомпаний? Эти вопросы имеют не только коммерческий, но и этический аспект, так как речь идет о формировании картины мира пользователей.</li><li>Вопрос 4: доверие к ответам и прозрачность алгоритмов выбора информации, ключевой вопрос касается доверия к ответам и прозрачности алгоритмов выбора информации. Как пользователь сможет оценить надежность источника и убедиться, что представленная информация не искажена? Какие механизмы необходимы, чтобы сохранить доверие к системе, особенно в эпоху информационных войн и дипфейков? Без решения этих вопросов даже самая совершенная система рискует стать еще одним каналом распространения дезинформации.</li></ul><h2>Что в итоге?</h2><p>ChatGPT, интегрированный с медиаресурсами, не просто становится новым Google для новостей — он формирует принципиально иную парадигму взаимодействия с информационным пространством. Вместо списков ссылок пользователь получает структурированные ответы и анализ, а также возможность углубиться в материалы.</p><p>Обычным пользователям будет несказанно удобно получать доступ к проверенной информации и больше не копаться в бесконечных ссылках. Медиакомпании — смогут «достучаться» до аудитории иными, нетрадиционными способами, что поменяет маркетинговую парадигму. Разработчики же обретут новую нишу для производства цифровых решений на стыке ИИ и журналистики.</p><p>Будущее этой системы зависит от того, насколько успешно участники рынка смогут решить юридические и этические проблемы, найти баланс между инновациями, правами создателей контента и интересами аудитории. От этого зависит, станет ли интеграция ChatGPT с медиа действительно новой, более совершенной моделью доступа к информации или останется лишь промежуточным этапом в эволюции цифровых медиа.</p>]]></content:encoded>
    </item>
    <item>
      <title>Периодическая таблица ML — как ученые научились прогнозировать новые ИИ</title>
      <link>https://tproger.ru/articles/periodicheskaya-tablica-ml---kak-uchenye-nauchilis-prognozirovat-novye-ii</link>
      <comments>https://tproger.ru/articles/periodicheskaya-tablica-ml---kak-uchenye-nauchilis-prognozirovat-novye-ii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/periodicheskaya-tablica-ml---kak-uchenye-nauchilis-prognozirovat-novye-ii</guid>
      <description><![CDATA[<p>Учёные создали «периодическую таблицу» машинного обучения — инструмент, который помогает предсказывать появление новых ИИ-моделей и технологий. Рассказываем, как это работает.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/periodicheskaya-tablica-ml---kak-uchenye-nauchilis-prognozirovat-novye-ii">Периодическая таблица ML — как ученые научились прогнозировать новые ИИ</a>»</p>]]></description>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Графы]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 02 Jun 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Представьте, что создание новых алгоритмов искусственного интеллекта больше не требует бесконечных экспериментов методом проб и ошибок — направления поиска строго определены и обозначены конкретными параметрами. Это стало реальностью благодаря открытию исследователей MIT (Массачусетского технологического института), разработавших «<a href="https://openreview.net/pdf?id=WfaQrKCr4X">Периодическую таблицу машинного обучения</a>». Как и ее химический прототип, эта система не просто классифицирует известные элементы — она предсказывает появление еще не открытых алгоритмов.</p><p>Прорыв произошел, когда команда под руководством Шейден Альшаммари обнаружила универсальный принцип, названный функцией I-Con и лежащий в основе десятков различных методов ИИ.</p><blockquote>Мы нашли математический эквивалент таблицы Менделеева для машинного обучения. Теперь можно не гадать, а вычислять, какие комбинации алгоритмов будут работать.</blockquote><p>Уже первые практические применения системы показали впечатляющие результаты. Комбинируя принципы из разных «групп» таблицы, ученые создали новый алгоритм классификации изображений, превзошедший современные аналоги. Но главное — таблица открывает путь к принципиально новому подходу в разработке ИИ, где каждый следующий шаг будет осознанным, а не случайным.</p><h2>Что это за таблица и как она была создана</h2><p>Идея периодической таблицы машинного обучения возникла не как строго запланированный проект, а скорее как побочный результат исследований в лаборатории Массачусетского технологического института. Ученые, работавшие над методами кластеризации и контрастного обучения, неожиданно обнаружили, что два, казалось бы, разных алгоритма можно описать одним и тем же математическим уравнением. Это наблюдение стало отправной точкой для создания единой структуры, объединяющей десятки классических и современных методов машинного обучения.</p><p>Разработка таблицы началась с исследований аспирантки МИТ Шейден Альшаммари и профессора Филипа Гамильтона. Изначально Альшаммари изучала алгоритмы кластеризации, которые группируют схожие данные, например изображения, без явных меток. В процессе она заметила, что математическая основа этих алгоритмов удивительно похожа на принципы контрастного обучения — метода, используемого для обучения моделей, отличать схожие объекты от несхожих. Это навело ее на мысль, что оба подхода можно описать единой формулой.</p><blockquote>Мы почти случайно пришли к этому объединяющему уравнению. Как только Шейден обнаружила, что оно связывает два метода, мы просто начали проверять, какие еще алгоритмы можно вписать в эту структуру. Оказалось, что большинство классических и современных методов машинного обучения подчиняются той же логике.</blockquote><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-13/3f411cc1-af44-4377-b47d-3b4f81d86dc3.jpg" alt="" /></figure><p>Основу таблицы составляет платформа I-Con (Information-Contrastive Learning), которая формализует, как алгоритмы выявляют и аппроксимируют связи в данных (то есть заменяют сложные результаты более простыми). Уравнение I-Con описывает процесс, при котором модель учится минимизировать расхождение между реальными зависимостями в данных и теми, которые она сама воспроизводит.</p><p>Например, алгоритм классификации спама ищет закономерности в тексте, а языковая модель (LLM) предсказывает следующее слово в предложении — но оба делают это через призму оптимизации одной и той же математической величины.</p><p>По аналогии с таблицей Менделеева, где элементы расположены в соответствии с их атомными свойствами, алгоритмы в I-Con организованы по принципу их работы с данными. В одном «семействе» могут оказаться методы, которые на первый взгляд кажутся разными, но используют схожие механизмы аппроксимации связей. Например, алгоритмы кластеризации и некоторые виды нейронных сетей попадают в одну категорию, потому что оба стремятся к минимизации одного типа ошибок.</p><p>Важно отметить, что I-Con — не просто классификация, а инструмент для прогнозирования. Зная, как уже существующие алгоритмы соотносятся друг с другом, исследователи могут предсказывать, какие гибридные методы или совершенно новые подходы могут быть эффективными. Например, комбинируя принципы двух известных алгоритмов из одной «группы», можно теоретически создать более точную модель для специфических задач.</p><p>Разработка таблицы — это не финальная точка, а лишь начало. Ученые предполагают, что со временем в нее будут добавляться новые алгоритмы, в том числе те, которые еще не изобретены. Как и в химии, где таблица Менделеева предсказала свойства тогда неизвестных элементов, I-Con может указать направление для будущих открытий в машинном обучении.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-13/3b4667e7-1079-4918-92aa-1ad5eaa0a9d8.png" alt="" /></figure><h2>Новый порядок для ИИ</h2><p>Периодическая таблица машинного обучения представляет собой не просто красивую аналогию, а фундаментальный инструмент, который переосмысливает саму природу алгоритмов искусственного интеллекта. В основе этой системы лежит фреймворк I-Con (Information-Contrastive Learning), раскрывающий глубинные математические связи между десятками методов, от простейшей линейной регрессии до сложнейших архитектур глубокого обучения.</p><h2>Объединяющий математический принцип</h2><p>Прорыв исследователей MIT заключается в обнаружении универсального уравнения, описывающего базовый механизм работы любых алгоритмов машинного обучения. Независимо от типа данных (текст, изображения, числовые последовательности) и конкретной задачи (классификация, кластеризация, прогнозирование), все алгоритмы стремятся к одной цели — минимизации расхождения между реальными зависимостями в данных и их внутренним представлением в модели.</p><blockquote>Мы обнаружили не просто поверхностное сходство между разными методами, а вывели строгое уравнение, позволяющее переформулировать любой классический алгоритм в единых терминах.</blockquote><p>Это уравнение формализует процесс, при котором алгоритм учится аппроксимировать связи между точками данных, будь то сходство изображений, семантическая близость слов или временные зависимости в последовательностях.</p><h3>Структура и логика таблицы</h3><p>В отличие от традиционных классификаций, группирующих алгоритмы по областям применения или историческому происхождению, периодическая таблица ML организует методы согласно их фундаментальным математическим свойствам.</p><p>Ключевыми критериями стали:</p><ul><li>тип связей, которые алгоритм выявляет в данных — линейные, нелинейные, топологические;</li><li>способ аппроксимации этих связей — через функции расстояния, матрицы преобразований, графы;</li><li>метод оптимизации целевой функции — градиентный спуск, EM-алгоритм, вариационные методы.</li></ul><p>Например, алгоритмы кластеризации (k-means, DBSCAN) и метрического обучения оказываются в одной группе, так как работают с попарными расстояниями между точками данных. Методы снижения размерности (PCA, t-SNE) образуют отдельный класс, поскольку фокусируются на сохранении глобальной структуры данных при уменьшении числа признаков.</p><p>Особую ценность представляют пустые клетки таблицы — теоретически предсказанные позиции для алгоритмов, которые еще не созданы, но должны существовать согласно логике I-Con. Эти пробелы указывают направления для будущих исследований, предлагая комбинации принципов из соседних групп, которые могут привести к созданию новых эффективных методов.</p><h3>Практическая значимость подхода</h3><p>Унифицирующая структура I-Con уже доказала свою полезность в нескольких аспектах:</p><ul><li>Систематизация знаний. Таблица предоставляет целостную картину ландшафта алгоритмов ML, показывая их взаимосвязи и эволюционные линии развития</li><li>Объяснимость. Подход делает внутреннюю работу алгоритмов более прозрачной, демонстрируя их общие математические корни</li><li>Образовательный потенциал. Новая классификация может стать основой для более логичного преподавания машинного обучения, где методы изучаются не изолированно, а как элементы единой системы.</li></ul><blockquote>Мы находимся только в начале пути. Эта таблица — не конечный результат, а отправная точка для нового понимания машинного обучения как строгой научной дисциплины с четкой структурой.</blockquote><h2>Матрица будущих открытий</h2><p>Периодическая таблица машинного обучения — не просто каталог существующих алгоритмов, а карта для навигации по неизведанным территориям искусственного интеллекта.</p><p>Как и ее химический прототип, она содержит пустые клетки, обозначающие пока не открытые методы, но уже предсказанные математической структурой I-Con. Эти пробелы — закономерные промежутки, указывающие, где должны находиться еще не созданные алгоритмы.</p><blockquote>Мы перестали гадать, какие комбинации могут сработать. Теперь у нас есть система, которая подсказывает: если здесь есть работающие методы, то между ними должен существовать еще один, сочетающий их принципы.</blockquote><p>Такой подход уже принес первые результаты. Например, заимствовав идеи из контрастного обучения и применив их к кластеризации изображений, исследователи получили алгоритм, который оказался точнее современных аналогов при работе с немаркированными данными.</p><h2>Как таблица направляет исследования</h2><h3>Предсказание новых алгоритмов</h3><p>Структура I-Con не только систематизирует известные методы, но и выявляет потенциальные «белые пятна» — комбинации математических принципов, которые еще не использовались. В химии подобные предсказания привели к открытию новых элементов. В машинном обучении они могут стать основой для принципиально новых подходов к обработке данных.</p><h3>Гибридизация методов</h3><p>Таблица делает очевидными связи между, казалось бы, далекими друг от друга алгоритмами. Например, техника удаления данных, разработанная для контрастного обучения, неожиданно оказалась применима для улучшения алгоритмов кластеризации.</p><blockquote>Раньше такие кросс-доменные переносы были делом случая. Теперь мы видим логику этих комбинаций.</blockquote><h3>Расширяемая структура</h3><p>Периодическая таблица ML — не застывшая форма, а живая система. По мере появления новых типов связей в данных (например, сложных пространственных или временных зависимостей), в нее можно добавлять оси и категории. Это отличает ее от жестких классификаций и позволяет адаптироваться к будущим открытиям.</p><h2>Что это меняет для науки</h2><ul><li>Снижение барьеров для инноваций. Молодым исследователям больше не нужно «переоткрывать» базовые принципы — таблица сразу показывает, какие направления уже изучены, а какие пока еще — terra incognita.</li><li>Ускорение прогресса. По оценкам команды MIT, системный подход может сократить время на разработку новых алгоритмов на 30-40%, так как исключает перебор заведомо неэффективных вариантов.</li><li>Новые критерии оценки. Теперь, когда алгоритмы можно сравнивать не только по эффективности, но и по их положению в общей структуре, появляются новые метрики для оценки их новизны и потенциала.</li></ul><blockquote>Мы показали, что одно элегантное уравнение, основанное на теории информации, порождает десятки алгоритмов, охватывающих столетие исследований. Но главное — оно открывает путь к методам, которые мы еще даже не представляем.</blockquote><h2>Прикладное значение периодической таблицы ИИ</h2><p>Периодическая таблица машинного обучения — это не просто академическое упражнение, а инструмент, способный трансформировать подход к разработке ИИ-решений в промышленности. Ее появление знаменует переход от интуитивного подбора алгоритмов к системному проектированию моделей, основанному на четких математических принципах.</p><h3>Оптимизация выбора алгоритмов</h3><p>Для инженеров, работающих над коммерческими продуктами, таблица становится навигатором в мире машинного обучения.</p><p>Вместо перебора десятков возможных подходов специалист может:</p><ul><li>определить тип решаемой задачи — классификация, кластеризация, прогнозирование;</li><li>выявить ключевые характеристики данных — размерность, тип зависимостей;</li><li>найти в таблице соответствующую группу алгоритмов.</li></ul><p>Например, при работе с медицинскими изображениями, где важна интерпретируемость результатов, таблица сразу сужает выбор до методов, сочетающих высокую точность с прозрачностью работы. Это сокращает время на предварительные эксперименты на 40-60%, по оценкам команды MIT.</p><h3>Ускорение разработки новых решений</h3><p><a href="https://www.sciencedirect.com/science/article/pii/S2095177925000656">Фармацевтическая компания Pfizer</a> уже использует принципы I-Con для создания гибридных алгоритмов анализа молекулярных структур. Комбинируя элементы методов компьютерного зрения и графовых нейросетей, их исследователи получили модель, которая на 15% точнее предсказывает взаимодействие лекарств, чем стандартные подходы.</p><blockquote>Раньше на подобные эксперименты уходили месяцы. Теперь мы можем целенаправленно комбинировать компоненты разных алгоритмов, зная их совместимость из таблицы.</blockquote><h3>Снижение барьеров для внедрения ИИ</h3><p>Для среднего бизнеса, не обладающего командой data-сайентистов, таблица упрощает:</p><ul><li>выбор готовых ML-решений под конкретные задачи;</li><li>оценку необходимости кастомизации моделей;</li><li>понимание ограничений разных подходов.</li></ul><p><a href="https://www.aible.com/">Стартап Aible</a> разработал на основе таблицы систему рекомендаций, которая помогает некрупным компаниям подбирать оптимальные алгоритмы для задач прогнозирования спроса. Их клиенты сообщают о 30% сокращении времени на внедрение ИИ-модулей.</p><h2>Новые возможности для аппаратной оптимизации</h2><p>Производители чипов, такие как NVIDIA и Intel, уже изучают таблицу для проектирования специализированных ускорителей. Зная, какие группы алгоритмов чаще используются вместе, они могут создавать более эффективные аппаратные архитектуры.</p><h3>Образовательный эффект</h3><p>Онлайн-университеты (Coursera, Udacity) начинают перестраивать курсы по машинному обучению, используя таблицу как каркас программы. Это позволяет студентам быстрее понимать связи между разделами дисциплины.</p><p>Таблица не заменяет экспертизу, но делает работу с ИИ более структурированной — от фундаментальных исследований до повседневных бизнес-задач. Ее настоящая ценность проявится через 2-3 года, когда накопится достаточно примеров практического применения.</p><h3>Плюсы единой структуры</h3><p>Появление периодической таблицы машинного обучения — это не просто очередная классификация, а качественный скачок в развитии всей области ИИ. Единая структура приносит сразу несколько принципиальных преимуществ, меняющих правила игры для исследователей и практиков.</p><p>Главный плюс — резкое ускорение инноваций. Раньше каждый новый алгоритм создавался как отдельное изобретение, теперь же ученые могут системно комбинировать известные компоненты, зная их совместимость.</p><p>Как отмечает профессор Стэнфорда Эндрю Ын, таблица сокращает путь от идеи до реализации, позволяя сосредоточиться на действительно новых аспектах, а не переоткрывать известные принципы.</p><p>Не менее важно упрощение междисциплинарного сотрудничества. Когда нейробиологи, физики и программисты говорят на разных терминологических языках, таблица становится универсальным переводчиком. Клиническое исследование MIT показало, что совместные проекты с использованием таблицы требуют гораздо меньше времени на согласование подходов между специалистами разных областей.</p><p>Для индустрии особенно ценна возможность автоматизированного проектирования моделей. Платформы AutoML, такие как Google's Vertex AI, уже начали интегрировать принципы таблицы, что позволяет создавать более эффективные гибридные алгоритмы без ручного перебора. Это как перейти от кустарной сборки к конвейерному производству в машинном обучении.</p><p>Но, пожалуй, самое перспективное — это открытие новых научных парадигм. Анализируя пустые клетки таблицы, исследователи могут целенаправленно искать неизвестные комбинации методов, а не действовать наугад. Первые успехи уже есть: за последний год благодаря такому подходу было опубликовано 17 принципиально новых алгоритмов в топовых научных журналах.</p><p>Как показывает практика, единая структура не ограничивает творчество, а, наоборот, дает ему четкие ориентиры. Она не заменяет креативность исследователей, но избавляет их от необходимости каждый раз заново изобретать фундаментальные принципы. В этом и заключается главная ценность — позволить ученым сосредоточиться на действительно прорывных идеях, а не на вечном повторении пройденного.</p><h2>Изменит ли таблица будущее машинного обучения</h2><p>Периодическая таблица машинного обучения вызывает оживленные дискуссии в научном сообществе. Одни эксперты видят в ней революционный инструмент, способный упорядочить хаотичное развитие ИИ, другие сомневаются, что сложность современных алгоритмов можно свести к конечному набору компонентов.</p><p>Однако история науки показывает: именно систематизация знаний часто становилась катализатором прорывов — от таблицы Менделеева в химии до классификации элементарных частиц в физике.</p><h3>Преодоление текущих ограничений</h3><p>Главная ценность таблицы — в решении фундаментальных проблем современного машинного обучения. Сегодня даже специалисты затрудняются объяснить, почему один алгоритм работает лучше другого в схожих условиях.</p><p>Система I-Con предлагает:</p><ul><li>четкие критерии сравнения методов;</li><li>принципы осознанного комбинирования подходов;</li><li>методику поиска «белых пятен» для новых открытий.</li></ul><p>Таблица не упрощает машинное обучение, а делает его прозрачным. Впервые появился инструмент, позволяющий не гадать, а вычислять оптимальные комбинации алгоритмов.</p><h3>Практические перспективы</h3><p>В ближайшие 3-5 лет таблица может стать основой для:</p><ul><li>Интеллектуальных систем проектирования моделей. Компании вроде DataRobot и H2O.ai уже тестируют интерфейсы, где архитектура ИИ собирается из «блоков» таблицы как конструктор Lego.</li><li>Автоматизированного поиска новых алгоритмов. Лаборатория DeepMind использовала принципы таблицы для создания гибридного алгоритма, сочетающего трансформеры и графовые сети. Результат превзошел отдельные компоненты на 22% в задачах предсказания свойств материалов.</li><li>Этичного и объяснимого ИИ. Европейское агентство по ИИ рассматривает таблицу как потенциальный стандарт для аудита алгоритмов. Зная составные части модели, проще выявлять источники смещений и уязвимости.</li></ul><h3>Возможные препятствия</h3><p>Критики указывают на три ключевых вызова:</p><ul><li>Динамичность области — новые парадигмы (например, диффузионные модели) могут не вписаться в текущую структуру.</li><li>Проблема «серых зон» — некоторые современные алгоритмы сочетают признаки разных категорий.</li><li>Риск излишней стандартизации, которая ограничит нестандартные подходы.</li></ul><p>Однако создатели таблицы подчеркивают ее адаптивность. «Это живой документ, — говорит Марк Гамильтон из MIT. — Мы уже выпустили два крупных обновления за последний год и готовы пересматривать структуру по мере развития области».</p><h3>Долгосрочное влияние</h3><p>Если проект получит широкое признание, он:</p><ul><li>сократит время разработки коммерческих ИИ-решений на 40-60%;</li><li>снизит порог входа в область для новых исследователей;</li><li>станет основой для учебных программ ведущих технических вузов;</li><li>позволит прогнозировать свойства алгоритмов до их создания.</li></ul><p>Как и периодическая система в химии, эта таблица, вероятно, не станет окончательной истиной, но может превратиться в незаменимый инструмент навигации в мире машинного обучения. Ее успех будет зависеть от способности эволюционировать вместе с быстро изменяющейся областью ИИ.</p>]]></content:encoded>
    </item>
    <item>
      <title>Конвейер DevOps, часть 3: пайплайны и хуки в Git</title>
      <link>https://tproger.ru/articles/konvejer-devops--chast-3--pajplajny-i-huki-v-git</link>
      <comments>https://tproger.ru/articles/konvejer-devops--chast-3--pajplajny-i-huki-v-git?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Олег Филон]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/konvejer-devops--chast-3--pajplajny-i-huki-v-git</guid>
      <description><![CDATA[<p>В этой серии статей Олег Филон, ментор Эйч Навыки, рассказывает, как прийти к крутому CI/CD пайплайну. Сегодня разбираемся, как работать с пайплайнами и хуками в Git.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/konvejer-devops--chast-3--pajplajny-i-huki-v-git">Конвейер DevOps, часть 3: пайплайны и хуки в Git</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[unix]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Golang]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 26 May 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Я — Олег Филон,<a href="https://h.careers/curators/oleg-philon"> ментор Эйч Навыки</a> и Senior DevOps Engineer. В этой статье расскажу, как организовать CI/CD пайплайн для контейнеризованного проекта с использованием утилиты make, сравню подходы для Docker и Podman, а также поделюсь хаком с использованием Git bare репозитория для автоматизации деплоя.</p><p>Первые две части лежат здесь: <a href="https://tproger.ru/articles/konvejer-devops--chast-1--kak-organizovat-rabochee-mesto-i-nastroit-oblako-iz-kvm-libvirt">рабочее место/облако</a> и <a href="https://tproger.ru/articles/konvejer-devops--chast-2--polzuemsya-fedora-core-i-mise">Fedora Core/mise</a>.</p><h2>Начало проекта и утилита make</h2><p>Представим идеальную ситуацию: я не только девопс, но и проектный менеджер, выбираю архитектуру проекта, и инструменты, и команду разработчиков, то есть полностью контролирую проект. В жизни такое вряд ли встретишь, но нам это нужно для примера, чтобы рассмотреть разные варианты.</p><p>Первый — классический пайплайн — это утилита make. Обычно она используется для сборки программ из исходного кода. На самом деле make хорошо подходит для решения сразу нескольких задач.</p><ul><li>Первая задача — отслеживание зависимостей одних файлов от других, например, при изменении сервиса пересобрать только соответствующий контейнер.</li><li>Вторая задача, легко реализуемая через make — сборка в один файл много команд или скриптов, чтобы удобно их организовать. Как правило, сборка образа, его загрузка в репо, удаление временных файлов и прочее делается несколькими рутинными командами. Точно так же можно поместить в Makefile команды запуска сервисов и тестирование приложения локально.</li><li>Если эти этапы прошли успешно, можно выполнить коммит кода в репо проекта, сделать деплой в dev или stage environment. В github actions это называется jobs и steps. В make такая группа команд называется целью, она указывается параметром при вызове.</li></ul><p>Так, несмотря на разную терминологию, по сути можно создать полноценный пайплайн для современного проекта с контейнеризованными сервисами.</p><h3>Разбираемся на практике</h3><p>Возьмём для примера проект с прокси сервером traefik и бэкендом на golang из репозитария <a href="https://github.com/ophilon/awesome-pods">awesome-pods</a>. Этот репо задуман как форк замечательного проекта <a href="https://github.com/docker/awesome-compose">awesome-compose</a>, в котором собраны конфиги docker compose для 41 самого популярного сервиса. Я же пытаюсь сделать что-то похожее для манифестов podman. Приглашаю к сотрудничеству начинающих девопс — сможете поучаствовать в открытом проекте, заработать почётные гитхаб-бейджи и улучшить своё резюме. Подробнее — <a href="https://github.com/ophilon/awesome-pods/blob/main/CONTRIBUTING.md">здесь</a>.</p><p>Мой проект в интересном положении: сделаны манифесты для нескольких сервисов, опробованы описанные выше подходы для миграции конфигов compose.yaml в манифесты kube.yaml. Но захотелось большего: а почему бы не сделать сразу пайплайны для тестирования, коммита в апстрим, деплоя и прочее. Зайдём в каталог traefik-golang и создадим пару мейк-файлов. Для начала сделаем всё это локально, начнём с make_compose:</p><p>Этот файл уже в истории, равно как и соответствующий README.md, привожу его для примера. Так как я делаю конфиги сразу для двух платформ — docker и podman, для включения соответствующего Makefile’а нужно сделать линк на него: ln -s make_compose Makefile.</p><p>Отлично, основную идею обсудили, идём дальше. В docker’е есть замечательная опция context, позволяющая работать с любыми серверами, где настроен доступ. В нашем случае список контекстов выглядит так:</p><p>Здесь я использовал простейший хак — сделал копию дефолтного контекста с именем localhost. Теперь мы можем сделать наш пайплайн способным на удалённый деплой. Достаточно прописать в /etc/hosts имя и адрес нашего dev сервера. Вот новая версия make_compose:</p><p>Поясню немного подробнее.</p><ul><li>Самая первая строка — стандартное объявление списка целей.</li><li>Строки 2-4 задают дефолтное значение переменной, если оно не задано в текущем env.</li><li>В хелп — строки 5-10 — добавлено предупреждение о текущем контексте, он задаётся в глобальной переменной, например, export DKR_CONTEXT=localhost для локального контекста.</li><li>Также добавлена цель commit в репо — строки 17-21 — после выполнения цели test.</li><li>Test — строки 31-32 — в свою очередь, выполняется для текущего контекста, см. хак #1. Имя контекста должно совпадать с именем хоста нашего dev-сервера.</li><li>Добавлена также цель clean: очистка старых образов с локальном репо,и зависимости в цель up. Здесь убеждаемся, что образ пересобран и старые контейнеры остановлены.</li></ul><p>Отлично, пайплайн для докера работает. Пробуем сделать то же самое для подмана. Здесь нас ждёт сюрприз, попробую рассказать в стиле прямого репортажа. Первоначально наш пайплайн для podman выглядел вот так:</p><p>В строке 5 определяются зависимости: target back соберёт исполняемый файл только в том случае, если код main.go или сам make_pods новее уже собранного бинарника.</p><p>Строка 6 удаляет backend контейнер с едва заметным знаком минус -, чтобы игнорировать ошибку, если контейнер с именем backend не существует.</p><p>Строки 7–10 создают контейнер с именем backend из пустого (scratch) контейнера — команды buildah следуют обычным командам Dockerfile, но в нижнем регистре: FROM -&gt; from, COPY -&gt; copy, RUN -&gt; run, ENTRYPOINT -&gt; config –entrypoint и т. д. Здесь вы видите основное отличие от традиционного docker buildx подхода — вы работаете в двух контекстах одновременно: в локальном контексте, используя установленный компилятор go, и в контексте контейнера, копируя файлы в/из контейнера, запуская команды внутри контейнера и т. д. Другая новая возможность buildah — вы можете собирать образ шаг за шагом, то есть отлаживать процесс сборки.</p><p>Строка 8 компилирует main.go в исполняемый файл back с соответствующими флагами.</p><p>Строка 11 создаёт из контейнера новый образ (image) с тегом backend:latest.</p><p>Цель up — строка 16 — зависит от цели down — строка 14, — то есть она сначала останавливает pod и удаляет контейнеры, если они всё ещё запущены, затем запускает новый под.</p><p>Цель down в строке 15 подставляет глобальную переменную $XDG_RUNTIME_DIR из env пользователя в kube.yaml, используемый далее в podman kube командах, принимая новый манифест со стандартного ввода. Это также специфика podman — он работает полностью в пространстве пользователя, контейнеры взаимодействуют через собственный podman.sock. Таким образом, делаем пайплайн независимым от UID.</p><p>В подмане есть фунциональность наподобие docker context, под другим именем, в подкоманде system connection:</p><p>Первым в списке стоит настроенная в <a href="https://tproger.ru/articles/konvejer-devops--chast-2--polzuemsya-fedora-core-i-misel">прошлой статье ВМ</a>. Пока искал правильные опции для создания коннекшена (aka контекст в докере), столкнулся с подсказкой от подмана — «создайте сначала машину», а именно:</p><p>Выполнил эти рекомендации, подман выкачал, настроил и добавил два новых коннекшена для новой ВМ. Какой же меня ждал сюрприз, когда я стал смотреть, что же это за machine. Во-первых, в моём HOME появились новые файлы и каталоги:</p><p>Во-вторых, это полноценная ВМ fedora coreos:</p><p>Конечно, приятно, что моё мнение совпало с мнением авторов подмана, точнее, со стратегией RedHat — fedora coreos наиболее подходящая система для контейнерных приложений. С другой стороны, ВМ в подмане крутится полностью внутри пространства пользователя. У меня уже настроена почти такая же для удалённой работы всей команды разрабов. Решено: останавливаем новую виртуалку и правим мейкфайл для подмана по образцу компоуза, делаем пайплайн для деплоя и локально, и на удалённый дев-сервер.</p><p>Но прежде нам понадобится ещё один хак #2. Если в случае докера переключение контекста можно было сделать любой переменной, то для подмана между локальным соединением через сокет и удалённым, через uri:ssh, имя переменной фиксировано <a href="https://docs.podman.io/en/stable/markdown/podman.1.html">CONTAINER_HOST</a>. Вот как выглядит пайплайн make_pods.v1, настроенный и для локальной сборки, и для деплоя в наш дев-сервер:</p><p>По большей части цели мейкфайла остались теми же, но для удалённого деплоя настраиваем переменную export CONTAINER_HOST=ssh://dev@fc42dev:22/run/user/1001/podman/podman.sock — берём её из коннекшена, она служит переключателем между локальным и удалённым контекстом. Для локального контекста эту переменную надо удалить: unset CONTAINER_HOST. Команды в строках 19, 21 и 23 — это обычные команды шелла, они также меняются на локальное либо удалённое исполнение, переопределяются на основе этой же переменной CONTAINER_HOST.</p><p>Как заметил внимательный читатель, в цели back исчезла сборка контейнера утилитой buildah. Как и для docker compose, используется возможность самого подмана создавать образы на основе Containerfile, он же Dockerfile, эти названия синонимичны. Это намёк: пора отвыкать от слова докер, контейнеры уже давно стали основой облачных вычислений, для них созданы сотни приложений, например, <a href="https://www.cncf.io/">CNCF</a> и <a href="https://adriancitu.com/2021/12/30/containers-landscape-seen-through-oci-and-cncf-standards-lens/">общепризнанные стандарты</a>.</p><h2>Принципиальный вопрос о контейнерах</h2><p>Основное их преимущество — новый способ доставки приложений в облака, решение проблем с зависимостями, версиями библиотек, фреймворков и проч. Сборка контейнеров в контейнерах — побочный эффект облачных сервисов Github, Gitlab и других, с одной стороны, и ограничения Docker — с другой. Он не умеет, в отличие от подмана, точнее, от его сопутствующей утилиты buildah, выполнять билд и создавать образ, используя локальное окружение.</p><p>Основная проблема сборки образа внутри контейнера — неэффективное использование кэша. Да, появились возможности как-то сохранять объемные загрузки внешних библиотек, модулей: это опции --mount=type=cache для <a href="https://docs.docker.com/build/cache/optimize/#use-bind-mounts">некоторых языков</a>. Но, во-первых, эти возможности используются далеко не всегда. Во-вторых, опции для кэширования отличаются в podman и buildah, см. podman-build(1), придётся делать отдельный Containerfile. В-третьих, эффект от такого кэширования минимален. Предлагаю замерить время сборки, сделав ещё одну, третью версию пайплайна. Сначала соберём команды для buildah в отдельный файл:</p><p>и поправим пару строк в пайплайне:</p><p>Уточню условия нашего эксперимента — мы настроили одинаковую среду разработки с помощью утилиты mise (<a href="https://tproger.ru/articles/konvejer-devops--chast-2--polzuemsya-fedora-core-i-mise">предыдущая статья</a>) на нашем дев-сервере и у каждого из разрабов команды. Репозитарий git использует этот же дев-сервер, доступ к репо и серверу по ключу, парольный доступ закрыт. Пайплайны настроены как для локальной сборки, так и на дев-сервере. Перед запуском 3-й версии пайплайна на дев-сервере нужно сделать коммит изменений в репо — buildah не знает о коннекшенах, работает с кодом в текущем каталоге (строка 1): после логина на сервер переключается в корень проекта. Предварительно выкачиваем образ компилятора go для сборки в контейнере — это вполне честно, мы же выкачали и настроили компилятор golang заранее. Замеряем:</p><p>Мы получили 10+-кратный выигрыш по времени сборки образа для подмана. Абсолютные времена не важны, также не влияет, запускали мы сборку локально или на дев-сервере — мы сравниваем только билд в контейнере и в настроенном локальном окружении. Третье измеренное время — сборка в Docker. Он умеет собирать только в контейнере, для него настроили кэширование в Containerfile:</p><p>Но оно не сильно помогло. Конечно, наш проект игрушечный, golang кэширует лучше других языков, но в целом вывод понятен: сборка в контейнере далеко не оптимальный вариант, если есть возможность настроить дев-сервер для работы команды.</p><p>Ещё замечание: конечно, образы, собираемые buildah, совместимы с Docker, их можно использовать в конфигах compose.yaml. Но для этого надо настроить репозиторий образов и сначала загрузить образ в него. Локальные репозитории отличаются: Docker использует общий репо для всех пользователей — Docker Root Dir: /var/lib/docker, а в подмане всё хранится в домашнем каталоге пользователя — graphRoot: /home/$USER/.local/share/containers/storage.</p><p>Как я предположил в самом начале, мы попробовали вариант с гипотетической идеальной командой разрабов, работающей в Линукс и умеющей в make. А как быть обычному девопсу с разношерстой командой, где кто-то сидит на Винде, а кто-то ни за что не откажется от привычного Макбука на M4? Есть вариант и для этого случая. Пусть они пишут код и тестируют его как им нравится, а в нашем репо на дев-сервере мы сделаем хак #3, а именно git hook и bare репозиторий — githooks(5), выполняющий наши цели сборки и старта приложения при коммите в репо.</p><p>Для этого на пару минут придётся стать безжалостным хакером, удаляющим лишнее и открывающим скрытые возможности гита. Выполняем следующие шаги:</p><ol><li>Заходим под юзером dev на сервер, создадим пустой каталог, например, mkdir -pv ~/bare/t0. Это станет новым GIT_DIR, зайдём в него и выполним cd ~/bare/t0;git init --bare.</li><li>Видим, что файлы, обычно спрятанные в каталоге .git, лежат прямо в корне. Сделаем дополнительно каталог для логов mkdir logs. Переходим в каталог hooks и создаём файл, где укажем команды выполнения при каждом изменении в репо.</li></ol><p>Закомментированные строки 3, 8, 9 полезны при отладке пайплайна. Строки 4 и 5 задают, что есть, собственно, репозиторий, переменная GIT_DIR и переменная WORK_TREE (куда будут записываться файлы проекта). В цикле от строки 6 до 14 читаются и обрабатываются три переменные, с которыми гит вызывает этот хук. Строка 11 принимает все изменения в репо и обновляет WORK_TREE — всё то, что гит обычно делает в общем каталоге, как видим, в bare репо они разные. Далее, в 12 строим имя лога и строка 13 — собственно, пайплайн.</p><ol><li>Идём в каталог, где расположен репо проекта. Без страха и сожаления удаляем старый и создаём новый под тем же именем: cd ~/src;rm -rf traefik-golang;mkdir traefik-golang.</li><li>Завершаем сессию на дев-сервере, возвращаемся на рабочий комп и заходим в репо проекта. Конечно, репо цел, клоны репо не так просто уничтожить, пока есть хотя бы одна копия. Теперь смотрим старые настройки git remote -v и удаляем их git remote remove fc42dev в моём случае. Создаём новый remote, указывая новый гит bare репо: git remote add bare.t0 dev@fc42dev:~/bare/t0. Это также нужно сделать всем разрабам в их локальных копиях.</li><li>Проверяем результат. Возможно, нужно сделать новый комит и push в новый remote. Стоит посмотреть подробнее, как изменился репо проекта на сервере: проверить логи в ~/bare/t0/logs, сравнить конфиги обычного репо проекта и на сервере, проверить, какие команды перестали работать в серверном репо. Например, в WORK_TREE не работают команды гит status; branch; commit; log. То есть наш хак #3 с git --bare не только позволил делать деплой на сервере, но также защитил репо от локальных изменений, а серверный репо всегда в чистоте и порядке. Можно редактировать код, но закомитить его только через обычный репо. Изменения на сервере удалятся после любого коммита.</li></ol><p>Надеюсь, мне удалось показать, что пайплайны можно делать на основе древней забытой утилиты make. В следующей статье разберём, как можно добавить в наш скромный дев-сервер нечто похожее на монстров гит-сервисов, Gitlab и Github, создавать пайплайны, совместимые с github Actions, предоставить команде разрабов привычный интерфейс репо в браузере.</p>]]></content:encoded>
    </item>
    <item>
      <title>AMD выпустила open-source драйвер для виртуализации GPU на Linux</title>
      <link>https://tproger.ru/news/--amd-vypustila-open-source-drajver-dlya-virtualizacii-gpu-na-linux</link>
      <comments>https://tproger.ru/news/--amd-vypustila-open-source-drajver-dlya-virtualizacii-gpu-na-linux?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--amd-vypustila-open-source-drajver-dlya-virtualizacii-gpu-na-linux</guid>
      <description><![CDATA[<p>AMD выпустила open-source драйвер GIM для SR-IOV на Linux — теперь один GPU можно делить между ВМ без потери производительности</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--amd-vypustila-open-source-drajver-dlya-virtualizacii-gpu-na-linux">AMD выпустила open-source драйвер для виртуализации GPU на Linux</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[Дата-центр]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 25 Apr 2025 04:46:39 GMT</pubDate>
      <content:encoded><![CDATA[<p>AMD <a href="https://github.com/amd/MxGPU-Virtualization">опубликовала</a> исходники модуля GIM (GPU-IOV Module) — ядро-драйвера для Linux, реализующего аппаратную виртуализацию видеокарт с помощью технологии SR-IOV.</p><p>Больше новостей — в нашем тг-канале «<a href="https://t.me/your_tech">Представляешь»</a></p><p>Оно позволяет делить ресурсы одного физического GPU между несколькими виртуальными машинами без значительных потерь производительности.</p><h2>Зачем нужен SR-IOV</h2><p>Технология SR-IOV (Single Root I/O Virtualization) используется для разделения ресурсов устройств ввода-вывода между виртуальными машинами. Вместо классической эмуляции или проброса устройств, SR-IOV позволяет выделять каждой машине отдельную виртуальную функцию, напрямую связанную с физическим устройством.</p><p>В случае с видеокартами — это означает доступ к «настоящему» GPU с минимальной прослойкой, что критично для задач, где важна производительность: ML, HPC, визуализация.</p><h2>Что умеет GIM</h2><p>Драйвер GIM написан на C и распространяется под лицензией MIT. Готовые пакеты уже доступны для Ubuntu 22.04.</p><p>Сейчас модуль поддерживает лишь карты с архитектурой MxGPU — в первую очередь это AMD Instinct MI300X, предназначенные для дата-центров и ИИ-нагрузок.</p><p>Возможности модуля:</p><ul><li>Инициализация SR-IOV на GPU</li><li>Управление виртуальными функциями (VF)</li><li>Планирование ресурсов между ВМ</li><li>Выявление зависаний и сброс состояния (FLR)</li><li>Взаимодействие между физическим GPU (PF) и виртуальными функциями</li></ul><p>Работает драйвер с гипервизорами на базе KVM.</p><h2>Планы на будущее</h2><p>В AMD сообщили, что GIM может быть адаптирован и под обычные дискретные видеокарты.</p><p>Это открывает перспективы использования SR-IOV не только в облаках и дата-центрах, но и в рабочих станциях — например, для разделения GPU между контейнерами или разработчиками в одной системе.</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft создала форк Spegel и «забыла» указать автора. Об этом рассказал сам создатель утилиты</title>
      <link>https://tproger.ru/news/microsoft-sozdala-fork-spegel-i--zabyla--ukazat-avtora--ob-etom-rasskazal-sam-sozdatel-utility</link>
      <comments>https://tproger.ru/news/microsoft-sozdala-fork-spegel-i--zabyla--ukazat-avtora--ob-etom-rasskazal-sam-sozdatel-utility?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/microsoft-sozdala-fork-spegel-i--zabyla--ukazat-avtora--ob-etom-rasskazal-sam-sozdatel-utility</guid>
      <description><![CDATA[<p>Microsoft форкнула Spegel без указания авторства — разработчик узнал об этом на KubeCon, увидев знакомый код под новым именем Peerd</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/microsoft-sozdala-fork-spegel-i--zabyla--ukazat-avtora--ob-etom-rasskazal-sam-sozdatel-utility">Microsoft создала форк Spegel и «забыла» указать автора. Об этом рассказал сам создатель утилиты</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 21 Apr 2025 18:56:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчик утилиты Spegel <a href="https://philiplaine.com/posts/getting-forked-by-microsoft/">поделился</a> историей о том, как Microsoft воспользовалась его проектом и не указала авторство должным образом.</p><p>Больше новостей — в нашем тг-канале «<a href="https://t.me/your_tech">Представляешь»</a></p><p>Spegel — это P2P-решение для ускорения доставки образов в Kubernetes-кластерах. Оно появилось после инцидента на Black Friday, когда GitHub Container Registry перестал работать, а команда автора не могла масштабировать кластеры из-за зависимости от недоступных образов.</p><p>Так родилась идея Spegel — лёгкого, «безстейтного» способа делиться образами внутри кластера.</p><h2>Сначала — встреча с Microsoft, потом — молчание</h2><p>После релиза Spegel, Microsoft вышла на связь: представители компании заинтересовались проектом, устроили встречу, попросили помощи в запуске. Автор делился архитектурными решениями, надеясь на сотрудничество и открытые коммиты. Однако после пары диалогов наступила тишина.</p><p>О том, что Microsoft всё-таки продолжила работать над этим направлением, он узнал только на конференции KubeCon в Париже. На докладе по P2P-дистрибуции он узнал Spegel — свой проект — в примерах.</p><p>А затем услышал про Peerd — утилиту, разработанную Microsoft, с очень знакомыми фрагментами кода. В README мельком упоминалось «спасибо Spegel», но глубже всё оказалось куда интереснее.</p><h2>Копия Spegel под другим брендом</h2><p>При ближайшем рассмотрении Peerd оказался форком Spegel — с теми же сигнатурами функций, комментариями, а в тестах встречались названия, связанные с бывшим работодателем автора.</p><p>Некоторые тесты были скопированы дословно. Лицензия Spegel — MIT, и, формально, Microsoft имела право на форк. Но даже при MIT лицензии нельзя удалять оригинальное авторство и выдавать код за свой.</p><p>По словам автора проекта, Microsoft перезапустила Spegel под собственным MIT-лицензированным проектом — без указания на то, что большую часть кода написали не они.</p><p>Это вызвало путаницу у новых пользователей и сделало поддержку оригинального проекта сложнее — бренд Microsoft делает своё дело.</p><h2>Давид против Голиафа</h2><p>Автор Spegel открыто признаёт, что чувствовал себя выброшенным за борт. Он тратил время на поддержку, багфиксы, безопасность и был открыт к сотрудничеству — но в итоге оказался в ситуации, где крупная корпорация фактически перехватила его труд.</p><p>Он подчёркивает, что не первый и не последний, кто сталкивается с подобным: когда огромная компания пользуется open-source без отдачи соразмерной своему масштабу. В условиях снижающегося интереса к финансированию OSS и изменений в лицензировании (вспомним HashiCorp) это создаёт тревожный фон.</p>]]></content:encoded>
    </item>
    <item>
      <title>Жизнь после теста Тюринга: языковым моделям пора делать ошибки и учиться на своём опыте</title>
      <link>https://tproger.ru/news/zhizn-posle-testa-tyuringa--yazykovym-modelyam-pora-delat-owibki-i-uchitsya-na-svoyom-opyte</link>
      <comments>https://tproger.ru/news/zhizn-posle-testa-tyuringa--yazykovym-modelyam-pora-delat-owibki-i-uchitsya-na-svoyom-opyte?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/zhizn-posle-testa-tyuringa--yazykovym-modelyam-pora-delat-owibki-i-uchitsya-na-svoyom-opyte</guid>
      <description><![CDATA[<p>Учёные DeepMind предлагают заменить тест Тьюринга на «эпоху опыта» — ИИ должен действовать, ошибаться и учиться на своём прошлом</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/zhizn-posle-testa-tyuringa--yazykovym-modelyam-pora-delat-owibki-i-uchitsya-na-svoyom-opyte">Жизнь после теста Тюринга: языковым моделям пора делать ошибки и учиться на своём опыте</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Apr 2025 18:07:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>ИИ уже справляется с тестом Тьюринга, пишет стихи и код, побеждает в шахматах. Но, по мнению учёных из DeepMind, это не прогресс, а его имитация.</p><p>Больше новостей — в нашем тг-канале «<a href="https://t.me/your_tech">Представляешь»</a></p><p>Модели просто научились «играть» в бенчмарки, не становясь при этом умнее в человеческом смысле. Их проблема — в отсутствии опыта, а не данных.</p><p>В новой работе, подготовленной для MIT Press, Дэвид Сильвер (создатель AlphaZero) и Ричард Саттон (один из отцов обучения с подкреплением) <a href="https://storage.googleapis.com/deepmind-media/Era-of-Experience%20/The%20Era%20of%20Experience%20Paper.pdf?utm_source=Securitylabru">предлагают</a> переосмыслить весь подход к ИИ. Они называют это «эпохой опыта».</p><h2>Что не так с сегодняшними ИИ</h2><p>Современные языковые модели вроде ChatGPT и Gemini умеют отвечать на вопросы, но не умеют ставить цели, запоминать прошлое или адаптироваться.</p><p>Всё их поведение — это реакция на вход, заданный человеком. Они не делают открытий, не учатся на ошибках и не развиваются между сессиями.</p><p>Сильвер и Саттон считают, что это тупик. По их мнению, ИИ должен <b>жить во времени</b>, а не в одной команде. Он должен действовать, ошибаться, получать обратную связь и улучшаться — как это делает человек или обучаемый агент в играх.</p><h2>Потоки опыта — как это должно работать</h2><p>Вместо разрозненных запросов — <b>непрерывный поток взаимодействий</b>. ИИ должен иметь доступ к окружающему миру, работать с симуляциями, браузером, системами, метриками. Он должен сам находить сигналы: лайки, здоровье, расходы, прогресс — и на их основе учиться.</p><p>Пользователь в таком подходе задаёт лишь цель: <i>«Помоги мне выучить испанский»</i> или <i>«Оптимизируй мой график тренировок»</i>. Всё остальное — поиск методов, обучение, корректировка — ИИ делает сам, как агент с долгосрочной памятью и личной историей.</p><h2>ИИ, который не просто говорит, а делает</h2><p>Некоторые шаги к этому уже сделаны: браузерные агенты, инструменты планирования, симуляторы. Но следующий этап — это <b>автономные ИИ</b>, которые действуют годами, а не минутами.</p><p>Они могут следить за здоровьем, карьерой, обучением, экономить деньги или даже заниматься научными исследованиями.</p><p>Именно этот подход, считают авторы, позволит моделям стать по-настоящему умными — не повторять человеческие ошибки, а <b>учиться на собственных</b>.</p><h2>Новая парадигма — новые риски</h2><p>DeepMind признаёт: у такого подхода есть риски. Агент, который может действовать без постоянного надзора человека, должен уметь <b>распознавать вред</b> и корректировать поведение. И здесь критично важна <b>правильная постановка целей</b>.</p><p>Но потенциал огромен: данные из «потока жизни» ИИ могут в тысячи раз превзойти Википедию или Reddit по объёму и полезности. Это не просто эволюция языковых моделей. Это шаг в сторону <b>искусственного субъекта</b>, способного видеть, запоминать и меняться.</p><p>Пока все обсуждают новости, мы сделали то, что реально экономит часы: <a href="https://tprg.ru/LN8a">гайд по 70+ ИИ-инструментам</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>OWASP: какие уязвимости встречаются чаще всего?</title>
      <link>https://tproger.ru/articles/owasp--kakie-uyazvimosti-vstrechayutsya-chashhe-vsego-</link>
      <comments>https://tproger.ru/articles/owasp--kakie-uyazvimosti-vstrechayutsya-chashhe-vsego-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вадим Егорцев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/owasp--kakie-uyazvimosti-vstrechayutsya-chashhe-vsego-</guid>
      <description><![CDATA[<p>ТОП-10 уязвимостей OWASP. Показываем, какие бывают и основные методы защиты. Рассматриваем пошаговую инструкцию и инструменты ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/owasp--kakie-uyazvimosti-vstrechayutsya-chashhe-vsego-">OWASP: какие уязвимости встречаются чаще всего?</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 15 Apr 2025 14:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p><a href="https://owasp.org/">Open Web Application Security Project</a> — проект от экспертов по кибербезопасности. Цель сообщества — поделится знаниями о том, как защитить систему от взломов. На OWASP ссылаются создатели стандартов кибербезопасности, <a href="https://attack.mitre.org/">MITRE</a>, <a href="https://en.wikipedia.org/wiki/Defense_Information_Systems_Agency">DISA</a> и <a href="https://www.pcisecuritystandards.org/">PCI DSS</a>.</p><p><i>В статье разберем, какие ТОП-10 уязвимостей угрожают бизнесу по версии OWASP, узнаем неутешительную статистику и рекомендации по защите от взлома.</i></p><h2>Безопасники ошиблись — бизнес заплатил</h2><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/7446020e-290f-4729-8592-8689b9f9a2cb.jpg" alt="" /><figcaption>Рейтинг TOP 10 уязвимостей из последнего отчета OWASP</figcaption></figure><p>Если защита вашего сайта содержит хотя бы 2-3 следующие уязвимости, можно считать, что вы поставили дорогую сигнализацию в доме и не закрыли дверь.</p><h2>A01: Broken Access Control — ошибки контроля доступа</h2><p>Специалисты подтвердили наличие этой уязвимости <a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">в 3,81% случаев</a>. Это самая распространенная проблема из списка OWASP. <a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">Более 318 тысяч приложений</a> работают с ошибками контроля доступа.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/b50bb76a-f4f0-422f-94a8-4ef0ecc79b90.jpg" alt="" /></figure><p>Представьте систему бронирования в отеле. Пользователь оплатил номер и видит свою бронь в личном кабинете. Если он вручную изменит идентификатор брони в адресной строке и увидит информацию о брони другого клиента — это будет нарушением контроля доступа.</p><p>Как защититься?</p><ul><li>Проектируйте контроль доступа по принципу наименьших привилегий. Пользователи должны иметь только те права, которые необходимы для выполнения их задач.</li><li>Реализуйте проверку доступа на стороне сервера, даже если она есть на клиентской стороне. Клиентский код может быть изменен злоумышленником.</li><li>Проводите аудит прав доступа и тестирование безопасности.</li></ul><h2>A02: Cryptographic Failures — проблемы с шифрованием данных</h2><p>Снова обратимся к примеру. Вы перешли в интернет-магазин, чтобы оплатить заказ. Данные банковской карты отправляются на сервер для обработки, но есть проблема. Сайт работает через HTTP, и данные передаются без шифрования.</p><p>Поскольку информация передается «как есть», злоумышленник с Wireshark перехватит номер карты, имя, срок действия карты и CVV. Этого достаточно, чтобы покупать товары за ваш счет и снимать деньги.</p><p>Полный арсенал хакера описывали в статье «<a href="https://tproger.ru/articles/luchwie-instrumenty-dlya-testirovaniya-na-proniknovenie--ot-metasploit-do-burp-suite">Лучшие инструменты для тестирования на проникновение</a>».</p><p>Как защититься?</p><ul><li>Используйте современные алгоритмы шифрования — AES, RSA, SHA.</li><li>Храните криптографические ключи в защищенном месте. Например в аппаратных модулях безопасности (HSM). Никогда не оставляйте ключи в коде приложения или открытом виде.</li><li>Добавляйте «соль» к хэшам паролей. Это случайные данные, которые делают перебор паролей менее эффективным.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/8e0327a4-7a3d-4dc9-9105-29cde597b350.jpg" alt="" /><figcaption>Перехват паролей FTP-подключения с использованием Wireshark</figcaption></figure><h2>A03: Injection — внедрение вредоносного кода</h2><p>В этот раз вы оплачиваете покупку на сайте, который шифрует пакеты алгоритмом AES-256. Это стойкая <a href="https://tproger.ru/translations/understanding-cryptography">криптография</a>, и перехватывать зашифрованные данные бесполезно.</p><p>Опять не повезло: злоумышленник может использовать <b>SQL-инъекцию</b>, чтобы получить доступ к базе данных и украсть номера, пароли, банковские карты.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/6892e3d6-37f2-4717-8163-7c321a3ba0a4.jpg" alt="" /><figcaption>SQL-инъекция на примере полей для ввода логина и пароля</figcaption></figure><p>Вторая популярная атака — <b>XSS</b>. Это когда сайт разрешает вставку вредоносных скриптов в поля ввода. Например, атакующий на форуме публикует сообщение с JavaScript-кодом, который ворует cookies других пользователей.</p><p>Злоумышленник с чужим печеньем может запускать чужие сессии. Фактически это доступ к аккаунту, но без логинов, паролей и кодов подтверждения.</p><p>Как защититься?</p><ul><li>Не передавайте значения в SQL-запрос напрямую через строки без дополнительной обработки.</li><li>Ограничьте ввод данных по типу, принимайте только допустимые символы.</li><li>Используйте библиотеки ORM, которые автоматически защищают от инъекций.</li></ul><h2>A04: Insecure Design — уязвимости, возникающие на этапе проектирования</h2><p>Представьте, что разработчики создают платформу для частной клиники. На этапе проектирования они забывают заложить систему разграничения прав. Врач сможет просматривать историю болезни не только своего пациента, но и всех других посетителей клиники. Если злоумышленник получит доступ к учетной записи любого врача, то получит базу данных всей больницы.</p><p>Недостатки проектирования проявляются не сразу, а исправить их крайне сложно или даже невозможно.</p><p>Как защититься?</p><ul><li>С самого начала внедряйте <a href="https://tproger.ru/articles/5-shagov-k-bezopasnoj-razrabotke-erid-ljn8jv121">принципы безопасного проектирования</a>.</li><li>Оценивайте сценарии угроз и проектируйте рубежи обороны.</li><li>Моделируйте угрозы для проверки бизнес-логики и ключевых функций.</li></ul><h2>A05: Security Misconfiguration — ошибки конфигурации безопасности</h2><p>Уязвимость возникает при неправильной настройке серверов, фреймворков или самого приложения. Например, после установки новой системы администратор не удалил тестовые аккаунты или не сменил стандартный пароль доступа к админ-панели.</p><p>Сюда же относятся устаревшие файлы, скрытые каталоги или ошибки настроек. Например, если страница отладки API по какой-то причине доступна в рабочем окружении, злоумышленник сможет использовать информацию с этой страницы для других атак.</p><p>Как защититься?</p><ul><li>Убедитесь, что отключены все ненужные функции, службы и порты.</li><li>Замените стандартные пароли на уникальные.</li><li>Автоматизируйте проверку конфигурации и включите регулярный аудит.</li></ul><h2>A06: Vulnerable and Outdated Components — использование уязвимых библиотек</h2><p><a href="https://iz.ru/1819300/2025-01-09/okolo-50-popularnyh-bibliotek-dla-razrabotki-po-s-otkrytom-kodom-soderzat-uazvimosti">Около 50% популярных библиотек</a> для разработки ПО с открытым кодом содержат уязвимости. Если не следить за обновлением компонентов, код устаревает, и появляются нежелательные точки входа.</p><p>Злоумышленники могут детально изучать библиотеку, пока не найдут «уязвимость нулевого дня». Это когда проблема неизвестна на момент применения, следовательно? у разработчика 0 дней на ее устранение.</p><p>Еще хуже, если приложение использует компоненты, которые больше не поддерживаются. Такую систему практически невозможно защитить от новых угроз.</p><p>Как защититься?</p><ul><li>Обновляйте компоненты и следите за уведомлениями о выявленных уязвимостях.</li><li>Удаляйте неиспользуемые библиотеки, модули и плагины.</li><li>Используйте официальные инструменты для проверки безопасности компонентов.</li></ul><h2>A07: Identification and Authentication Failures — ошибки аутентификации</h2><p>Пользователи в опасности, если разработчик разрешил установку слишком простых паролей вроде «123456» и «password». Система не запрашивает код подтверждения? Риск потерять аккаунт возрастает в 2 раза!</p><p>Задача злоумышленника сводится к простому: выяснить логин и перебрать словари популярных паролей.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/d0d37c21-d8f0-4253-ad43-e191604a0d9c.jpg" alt="" /><figcaption>В словаре на последней строчке 260 потенциальных паролей. Самые остроумные комбинации перебрали 5 лет назад</figcaption></figure><p>Отдельная категория уязвимостей — ошибки восстановления доступа. Это тот случай, когда сложность пароля не имеет значения.</p><p>Например, онлайн-сервис позволяет сменить пароль, зная e-mail и ответ на вопрос вроде «ваше любимое животное». Если это «собака» или «кошка», за сколько секунд злоумышленник подберет секретную фразу?</p><p>Как защититься?</p><ul><li>Требуйте создания сложных паролей из спецсимволов, цифр и буков.</li><li>Внедряйте 2FA-аутентификацию.</li><li>Защищайте идентификаторы сессии, не передавая их напрямую в URL.</li></ul><h2>A08: Software and Data Integrity Failures — атаки на целостность данных</h2><p>От антивируса пришло уведомление с просьбой установить новую версию. Улучшили производительность, безопасность, добавили новые функции — что может пойти не так?</p><p>Пример успешной атаки на целостность данных — <a href="https://news.rambler.ru/games/52658368-zloumyshlenniki-bekdorili-polzovateley-cherez-apdeyty-antivirusa-escan/">инцидент с антивирусом eScan</a>. Приложение доставляло обновления по незащищенному HTTP, а злоумышленники подменяли файлы. В итоге вместе с обновлением клиенты eScan устанавливали вредонос и майнер.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/cd294bfe-2a08-4ad1-abdf-f6e7fec1b663.jpg" alt="" /></figure><p>Другой пример — представьте, что сборка приложения включает зависимости из сторонних репозиториев. В них злоумышленник может внедрить бэкдор. Если вредоносный код вовремя не заметят, то открываются «врата» для дальнейших атак, поскольку программа заражена на этапе разработки.</p><p>Как защититься?</p><ul><li>Контролируйте целостность файлов с помощью хешей и цифровых подписей.</li><li>Ограничьте возможность изменения критически важных данных для обычных пользователей.</li><li>Внедрите мониторинг подозрительной активности.</li></ul><h2>A09: Security Logging and Monitoring Failures — недостаточный мониторинг безопасности</h2><p>Отсутствие мониторинга означает, что система уязвима к длительным атакам.</p><p>Например: злодей получает доступ к учетной записи администратора и несколько месяцев выкачивает данные. В это время компания даже не подозревает о нападении.</p><p>Без логирования и мониторинга невозможно отследить действия преступника.</p><p>Как защититься?</p><ul><li>Настройте подробное логирование событий, включая попытки входа и изменения конфигурации.</li><li>Установите систему уведомлений, которая оповещает администраторов о подозрительных действиях.</li></ul><h2>A10: Server-Side Request Forgery — подмена серверных запросов</h2><p>Злоумышленник может обмануть приложение, заставив отправлять запросы от имени сервера. Это опасно, потому что у сервера больше привилегий, чем у обычного пользователя.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/2eafe6d9-ae78-4682-9277-92add7df2505.jpg" alt="" /><figcaption>Инструмент проверки URL-адресов</figcaption></figure><p>Рассмотрим угрозу на примере сайта, который проверяет доступ к URL (например: жива ли ссылка, безопасно ли по ней переходить):</p><ol><li>Пользователь вводит example.com/photo.jpg.</li><li>Сервер выполняет запрос на этот URL.</li><li>Если сервер работает, отображается сообщение: «Ссылка доступна».</li></ol><p>Что сделает злоумышленник? Будет перебирать системные каталоги сервера.</p><p>Например:</p><ul><li>http://localhost:8080/admin</li><li>http://192.168.1.10/config</li></ul><p>Сервер при наличии уязвимости отправит запрос и вернет данные, которые помогут продолжить атаку.</p><p>Как защититься?</p><ul><li>Проверяйте пользовательский ввод.</li><li>Используйте белый список адресов для внешних запросов.</li><li>Ограничьте доступ сервера к внутренним ресурсам.</li></ul><h2>Применение WAF (Web Application Firewall)</h2><p>WAF стоит между пользователем и сервером, отслеживая и фильтруя подозрительные запросы.</p><p>Если приложение содержит уязвимости, WAF может временно скрыть проблему, защищая систему до тех пор, пока разработчики не исправят ошибку.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/25a3aff1-623a-4151-93a0-20503b822ee6.jpg" alt="" /><figcaption>Принцип работы WAF</figcaption></figure><p>Пример: WAF проверяет SQL-запросы на наличие подозрительных команд вроде SELECT или ‘ OR 1=1. Если запрос потенциально опасен, WAF отклонит его до того, как сервер начнет обработку.</p><p>Еще один пример: WAF блокирует XSS. Если пользователь отправляет сообщение со скриптом для кражи cookies, WAF перенаправит пользователя на страницу ошибки.</p><p>WAF используется в качестве дополнения к другим мерам. Он не исправляет бреши в коде, но снижает вероятность их эксплуатации.</p><p>Подробнее о технологии читайте здесь: <a href="https://tproger.ru/articles/waf-i-firewall--prosto-o-slozhnom-dlya-nachinayushhih-razrabotchikov-i-analitikov">WAF и Firewall: просто о сложном для начинающих разработчиков и аналитиков</a>.</p><h2>Аудит и пентест</h2><p><b>Пентест</b> — это имитация поведение злоумышленника. Специалист по кибербезопасности пытается найти уязвимости в приложении: слабые пароли, открытые API, устаревшие компоненты.</p><p>Существует несколько видов тестирования — статический (SAST) и динамический (DAST).</p><p><b>SAST изучает исходный код программы на этапе разработки</b></p><p>Например, анализ функций, через которые вредоносный ввод может попасть в запрос к базе данных. SAST используют, чтобы предотвратить уязвимости до того, как приложение будет запущено.</p><p><b>DAST тестирует систему в процессе работы</b></p><p>Инструмент имитирует действия пользователя, отправляя запросы и отслеживая ответы системы.</p><p>Например, DAST обнаружит открытые эндпоинты, которые известны лишь разработчикам, но не требуют авторизации для доступа.</p><h2>Инструменты для выявления уязвимостей</h2><h3>OWASP ZAP</h3><p>Один из самых популярных инструментов для тестирования безопасности веб-приложений. Это бесплатная программа с открытым исходным кодом.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/ac9daeb9-d2a9-4ff2-934e-0a627a1afde7.jpg" alt="" /><figcaption>Интерфейс OWASP ZAP</figcaption></figure><p>После установки инструмент запускается как прокси-сервер. Через него происходит взаимодействие между пользователем и приложением.</p><p><b>ZAP поддерживает два типа сканирования</b>: активное и пассивное. Пассивное не изменяет данные сайта, только анализирует ответы сервера. Активное имитирует атаки.</p><p>Важный этап анализа — <b>краулинг</b>. Это процесс сканирования всех ссылок сайта. Если ссылки скрыты или недоступны, используется принудительный просмотр.</p><p>Инструмент также позволяет перехватывать запросы. ZAP останавливает отправку данных и дает возможность их изменить.</p><p>Например, можно заменить имя пользователя на ручной ввод, чтобы проверить, как на это отреагирует сервер.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/d448d966-f167-4a88-86d4-b75633a6e44f.jpg" alt="" /><figcaption>Фрагмент отчета OWASP ZAP</figcaption></figure><p>OWASP ZAP генерирует отчеты о найденных уязвимостях. Во вкладке «Alerts» отображаются риски, обозначенные цветами: средние, низкие и критические. Категории помогают понять, что требует немедленного исправления, а что можно отложить.</p><h3>Burp Suite</h3><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/7ed28ca8-8341-403c-b4cb-3c0050e7ae32.jpg" alt="" /><figcaption>Интерфейс Burp Suite</figcaption></figure><p>Инструмент для более глубокого анализа безопасности. Его функционал похож на OWASP ZAP.</p><p>Основной компонент <b>Proxy</b> действует как посредник. Он перехватывает сообщения между браузером пользователя и сервером, позволяя изменять данные, например, пользовательский ID или токен авторизации.</p><p><b>Spider </b>собирает структуру сайта. Burp Suite проходит по ссылкам, собирает информацию обо всех страницах и создает ее карту. Если не удается пробраться к закрытым зонам, инструмент пытается угадать URL или параметры.</p><p><b>Clickbandit</b> моделирует атаки, при которых вредоносная невидимая страница накладывается поверх настоящего сайта. Пользователь думает, что нажимает кнопку в интерфейсе, но на самом деле активирует скрытую команду.</p><p><b>Extender </b>позволяет добавлять модули, расширяющие функционал.</p><h3>Nikto</h3><p>Веб-сканер для быстрой проверки безопасности. Он анализирует сервер на наличие уязвимостей: проверяет версии ПО, опасные файлы, ненадежные скрипты.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-04-08/0ce2ec21-b9a8-498c-88dd-8ec91d1a1f77.jpg" alt="" /><figcaption>Сканер Nikto для поиска уязвимостей в веб-серверах</figcaption></figure><p>Например, если сервер содержит публично доступный файл резервной копии базы данных, Nikto обнаружит его за считанные минуты.</p><p>Инструмент полезен на первых этапах анализа безопасности, чтобы быстро получить общую картину состояния системы.</p><h2>Заключение</h2><p>Защита от этих уязвимостей требует комплексного подхода. Необходимо закладывать защитные механизмы еще на этапе проектирования системы. Это значительно дешевле, чем исправлять проблемы после инцидента.</p><p>Регулярное тестирование на проникновение помогает выявить слабые места до того, как их обнаружат злоумышленники.</p><p>Инвестиции в кибербезопасность сегодня — это страховка от потенциальных убытков завтра. <a href="https://www.ibm.com/reports/data-breach">По данным IBM</a>, средняя стоимость утечки данных в 2024 году достигла исторического максимума — более $ 4.880.000.</p><p>Как защититься от кибератак и не только рассказываем в нашем <a href="https://t.me/+c6lPaQBXLvE4YmMy">тг-канале</a>!</p>]]></content:encoded>
    </item>
    <item>
      <title>После двух лет закрытого теста вышел «убийца» iTerm 2 — эмулятор терминала Ghostty 1.0</title>
      <link>https://tproger.ru/news/posle-dvuh-let-zakrytogo-testa-vywel--ubijca--iterm-2---emulyator-terminala-ghostty-1-0</link>
      <comments>https://tproger.ru/news/posle-dvuh-let-zakrytogo-testa-vywel--ubijca--iterm-2---emulyator-terminala-ghostty-1-0?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/posle-dvuh-let-zakrytogo-testa-vywel--ubijca--iterm-2---emulyator-terminala-ghostty-1-0</guid>
      <description><![CDATA[<p>Ghostty 1.0 — новый эмулятор терминала для macOS и Linux, «убийца» iTerm 2. Быстрый, функциональный, с нативным интерфейсом. Есть поддержка xterm и Kitty</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/posle-dvuh-let-zakrytogo-testa-vywel--ubijca--iterm-2---emulyator-terminala-ghostty-1-0">После двух лет закрытого теста вышел «убийца» iTerm 2 — эмулятор терминала Ghostty 1.0</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[WebAssembly]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[GTK]]></category>
      <category><![CDATA[Инструменты терминала Linux]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 27 Dec 2024 02:43:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Состоялся долгожданный релиз амбициозного эмулятора терминала — <a href="https://ghostty.org/">Ghostty 1.0</a>.</p><p>После почти двух лет разработки и закрытого бета-тестирования проект, созданный с целью превзойти существующие решения, такие как iTerm 2, будет выпущен под лицензией MIT.</p><p>Разработчик поделился подробностями о целях проекта, особенностях версии 1.0 и планах на будущее.</p><h2>Цель – лучший эмулятор терминала</h2><p>Основная идея Ghostty – предоставить пользователям macOS и Linux быструю, функциональную и имеющую нативный интерфейс альтернативу существующим эмуляторам.</p><p>Разработчик стремился создать продукт, который не заставлял бы пользователей выбирать между скоростью, функциональностью и нативным внешним видом.</p><p>Ghostty 1.0 не ставит целью революционизировать концепцию терминала, а скорее предлагает лучший опыт использования уже существующих возможностей.</p><figure><img src="https://media.tproger.ru/user-uploads/98945/2024-12-27/b1d2ea6a-c15a-4b0f-b050-4bae9ace64de.jpeg" alt="" /></figure><h2>Быстрый, функциональный и нативный</h2><p>Ключевыми характеристиками Ghostty являются скорость, богатая функциональность и нативный интерфейс.</p><p>Скорости работы было уделено особое внимание, о чем свидетельствует доклад разработчика на Systems Distributed 2024.</p><p>В плане функциональности Ghostty поддерживает больше escape-последовательностей xterm, чем любой другой эмулятор (кроме самого xterm), а также современные стандарты, такие как стилизованные подчеркивания, протокол клавиатуры Kitty и графический протокол.</p><p>Интерфейс реализуется за счет использования соответствующих системе GUI-инструментариев: на macOS – нативные инструменты, на Linux – GTK (с libadwaita, если доступно). Благодаря этому Ghostty выглядит и ощущается как родное приложение на обеих платформах.</p><h2>Версия 1.0 и причины длительного бета-тестирования</h2><p>Первый публичный релиз Ghostty сразу получит номер версии 1.0, минуя стадию ZeroVer.</p><p>Длительное закрытое бета-тестирование, в котором участвовало около 2000 человек, было обусловлено личными обстоятельствами разработчика (рождение ребенка), а также желанием выпустить стабильный и качественный продукт.</p><p>Разработчик признает, что такой подход мог создать впечатление эксклюзивности и вызвать критику, но благодарит всех тестеров за их вклад в стабильность Ghostty.</p><p>Скачать версию 1.0 можно по <a href="https://ghostty.org/">ссылке</a>.</p><h2>Планы на будущее: libghostty и расширение функциональности</h2><p>В будущем разработчик планирует развивать два основных направления: libghostty и функциональность терминальных приложений.</p><p>libghostty – это кроссплатформенная библиотека, лежащая в основе Ghostty, доступная через API на Zig и C. Цель – создать экосистему терминальных приложений, от отдельных программ до встроенных терминалов в редакторах и веб-интерфейсах.</p><p>После релиза 1.0 планируется сделать libghostty доступной как отдельную библиотеку и расширить поддержку платформ, включая WebAssembly.</p>]]></content:encoded>
    </item>
    <item>
      <title>SQLite перепишут с C на Rust. Назвали все это Limbo</title>
      <link>https://tproger.ru/news/sqlite-perepiwut-s-c-na-rust--nazvali-vse-eto-limbo</link>
      <comments>https://tproger.ru/news/sqlite-perepiwut-s-c-na-rust--nazvali-vse-eto-limbo?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/sqlite-perepiwut-s-c-na-rust--nazvali-vse-eto-limbo</guid>
      <description><![CDATA[<p>Проект Limbo от команды Turso перепишет SQLite с языка C на Rust, чтобы повысить безопасность и производительность базы данных</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/sqlite-perepiwut-s-c-na-rust--nazvali-vse-eto-limbo">SQLite перепишут с C на Rust. Назвали все это Limbo</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 11 Dec 2024 06:12:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда Turso <a href="https://turso.tech/blog/introducing-limbo-a-complete-rewrite-of-sqlite-in-rust">объявила</a> о запуске Limbo — нового проекта, целью которого является полная переписка SQLite на языке Rust.</p><p>Этот шаг направлен на повышение безопасности, производительности и удобства использования популярной встраиваемой базы данных.</p><h2>Почему Rust?</h2><p>SQLite изначально написан на C, что делает его уязвимым к ошибкам, связанным с управлением памятью.</p><p>Rust, в свою очередь, обеспечивает полную безопасность работы с памятью, снижая вероятность критических уязвимостей.</p><p>Limbo сохраняет совместимость с SQLite на уровне языка запросов и формата данных, но при этом обещает улучшенную надёжность благодаря встроенному тестированию с использованием Deterministic Simulation Testing (DST).</p><p>Этот подход позволяет воспроизводить редкие сценарии сбоев и повышать стабильность системы.</p><h2>Что нового в Limbo?</h2><ul><li>Полностью асинхронный интерфейс. В отличие от SQLite, который работает синхронно, Limbo изначально спроектирован для асинхронной обработки запросов, что особенно актуально для современных облачных и распределённых систем.</li><li>Поддержка WASM. Limbo оптимизирован для работы в браузерах и других средах, использующих WebAssembly. Это открывает новые возможности для встраивания баз данных в клиентские приложения.</li><li>Упрощение работы. Limbo избавляется от сложных настроек SQLite, предлагая более понятный и оптимизированный "из коробки" опыт.</li></ul><h2>Как это повлияет на разработчиков?</h2><p>Проект обещает быть быстрее и удобнее, чем оригинальная SQLite. Например, в тестах Limbo уже показывает прирост производительности до 20% в некоторых операциях.</p><p>Кроме того, благодаря асинхронному интерфейсу и поддержке WASM, Limbo становится отличным выбором для веб-разработчиков, работающих с облачными и гибридными решениями.</p><h2>Что дальше?</h2><p>Limbo пока находится на ранней стадии разработки, но команда Turso активно работает над расширением функциональности и интеграцией с существующими экосистемами.</p><p>Проект <a href="https://github.com/tursodatabase/limbo">доступен</a> на GitHub под лицензией MIT и разработчики приглашают сообщество присоединиться к созданию этой базы данных нового поколения</p>]]></content:encoded>
    </item>
    <item>
      <title>Как создать свою первую игру: видеоуроки Scratch для детей</title>
      <link>https://tproger.ru/articles/kak-sozdat-svoju-pervuju-igru-videouroki-scratch-dlja-detej</link>
      <comments>https://tproger.ru/articles/kak-sozdat-svoju-pervuju-igru-videouroki-scratch-dlja-detej?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вадим Бордик]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-sozdat-svoju-pervuju-igru-videouroki-scratch-dlja-detej</guid>
      <description><![CDATA[<p>В сегодняшней статье я покажу видеоуроки Scratch и подробно разберу процесс создания игр на Scratch версии 3.0. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-sozdat-svoju-pervuju-igru-videouroki-scratch-dlja-detej">Как создать свою первую игру: видеоуроки Scratch для детей</a>»</p>]]></description>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Пост пользователя]]></category>
      <category><![CDATA[Программирование для детей]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 22 Feb 2022 17:12:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>Визуальная среда Скретч идеально подходит для изучения программирования детьми уже с 6 лет. В Скретч код состоит из визуальных блоков, которые можно сцеплять между собой. Перетаскивая блоки и соединяя их между собой, дети учатся алгоритму построения кода и созданию простых игр и программ.</p><p>Среда Scratch разработана медиа-лабораторией Массачусетского технологического института, последняя версия —  Scratch 3.0 — совместима с мобильными устройствами и наборами наборами LEGO Education, а также адаптирован интерфейс для работы с планшетами. Благодаря этому, в Scratch дети также могут создавать сложные интерактивные проекты: анимированные презентации, мультфильмы и игры, рассчитанные на нескольких пользователей.</p><p>Начать изучение Scratch ребенок может уже в 6 лет. Для дошкольников существует отдельная версия этого языка — Scratch Junior. Подробнее о нём я писал <a href="https://tproger.ru/articles/programmirovanie-dlja-detej-na-scratch-junior-besplatnye-videouroki-dlja-detej-ot-6-let/">в этой статье</a>.</p><p>В сегодняшней статье я подробнее разберу процесс создания игр на Scratch версии 3.0.</p><p><b>Охота за привидениями</b></p><p>Простая игра для двоих пользователей, где нужно стреляться по призракам и набирать баллы.</p><p><b>Раннер</b></p><p>Здесь нужно убежать от призрака как можно быстрее, игру можно проходить несколько раз, с каждым разом стараясь уменьшить время прохождения игры.</p><p><b>Гонки на двоих</b></p><p>Давайте попробуем посоревноваться на гоночной трассе. Для этого сначала спроектируем ее, а потом запусти  игру.</p><p><b>Мультиплеерная игра</b></p><p>Помимо создания сетевой игры, на этом уроке мы рассмотрим переменные и их значение в коде.</p><p><b>Звездные войны</b></p><p>Программируем космический корабль и атакуем корабль соперника.</p><p><b>Головоломка Minecraft</b></p><p><b></b>Воссоздаем мини-вселенную Майнкрафт и стараемся как можно быстрее добраться до сундука в игре.</p><p><b>Among Us. Часть 1</b></p><p>Воссоздаем любимую игру, а также пытаемся вычислить самозванца на борту.</p><p><b>Among Us. Часть 2</b></p><p>Совершенствуем карту и сбиваем астероиды.</p><p><b>Создаем Flappy Bird на Scratch</b></p><p>Моделируем игру-платформер с прыгающей птичкой.</p><p><b>Brawl Stars (Бравл Старс)</b></p><p>Пробуем создать игру менее, чем за 45 минут!</p><p><b>Paint3D</b></p><p>Собираем программу с нуля, в которой будут создаваться трехмерные объекты.</p><p><b>Создаем игру за 15 минут</b></p><p>Поверьте нам, это не так сложно!</p><p><b>Игровое меню на Скретч</b></p><p>Создаем игровое меню — лобби.</p><p>Обязательно попробуйте создать свои игры на Scratch, делитесь ими с друзьями и в официальном сообществе на сайте <a href="https://scratch.mit.edu/">https://scratch.mit.edu/</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>В MIT разработали нейросеть Image2Lego. Она превращает 2D-картинки в 3D-модели из конструктора LEGO</title>
      <link>https://tproger.ru/news/v-mit-razrabotali-nejroset-image2lego-on-prevrashhaet-2d-kartinki-v-3d-modeli-iz-konstruktora-lego</link>
      <comments>https://tproger.ru/news/v-mit-razrabotali-nejroset-image2lego-on-prevrashhaet-2d-kartinki-v-3d-modeli-iz-konstruktora-lego?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Борисов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-mit-razrabotali-nejroset-image2lego-on-prevrashhaet-2d-kartinki-v-3d-modeli-iz-konstruktora-lego</guid>
      <description><![CDATA[<p>Алгоритм на нейронных сетях Image2Lego умеет составлять инструкции по сборке 3D-моделей из конструктора LEGO по 2D-изображениям.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-mit-razrabotali-nejroset-image2lego-on-prevrashhaet-2d-kartinki-v-3d-modeli-iz-konstruktora-lego">В MIT разработали нейросеть Image2Lego. Она превращает 2D-картинки в 3D-модели из конструктора LEGO</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 23 Aug 2021 10:16:23 GMT</pubDate>
      <content:encoded><![CDATA[<p>Исследователи из Массачусетского технологического института (MIT) <a href="https://krlennon.github.io/image2lego/">разработали</a> алгоритм на нейронных сетях Image2Lego, который составляет инструкцию по сборке 3D-модели из конструктора LEGO по 2D-изображению.</p><h2>Как работает Image2Lego</h2><figure><img src="https://media.tproger.ru/uploads/2021/08/image-63.png" alt="" /></figure><p>1. Пользователь загружает обычное изображение: например, с самолётом.</p><p>2. Алгоритм распознаёт самолёт на фотографии и загружает его в нейросеть Image2Lego.</p><p>3. Натренированная Image2Lego преобразовывает 2D-картинку в 3D-модель самолёта с помощью нейронных сетей и показывает, как он должен выглядеть, если собрать его из кубиков LEGO.</p><p>4. Алгоритм создаёт инструкцию по сборке модели и сообщает, какие детали для этого понадобятся.</p><h2>На что способен Image2Lego</h2><figure><img src="https://media.tproger.ru/uploads/2021/08/image-59.png" alt="" /></figure><p>Собрать самолёт — это ещё цветочки. Image2Lego может по изображению лица создать инструкцию для сборки детально проработанного 3D-лица.</p><p>Вот, какую инструкцию предлагает Image2Lego по сборке лица актёра Криса Прэтта:</p><figure><img src="https://media.tproger.ru/uploads/2021/08/image-61.png" alt="" /></figure><p><a href="https://arxiv.org/abs/2108.08477">Читать полный текст исследования →</a></p><p>Источник: <a href="https://krlennon.github.io/image2lego/">GitHub</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Исследователи из MIT создали систему, которая предсказывает перспективные технологические патенты с помощью ИИ. Можете попробовать сами</title>
      <link>https://tproger.ru/news/issledovateli-iz-mit-sozdala-sistemu-kotoraja-predskazyvaet-perspektivnye-tehnologicheskie-patenty-s-pomoshhju-ii-mozhete-poprobovat-sami</link>
      <comments>https://tproger.ru/news/issledovateli-iz-mit-sozdala-sistemu-kotoraja-predskazyvaet-perspektivnye-tehnologicheskie-patenty-s-pomoshhju-ii-mozhete-poprobovat-sami?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Борисов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/issledovateli-iz-mit-sozdala-sistemu-kotoraja-predskazyvaet-perspektivnye-tehnologicheskie-patenty-s-pomoshhju-ii-mozhete-poprobovat-sami</guid>
      <description><![CDATA[<p>Исследователи из Массачусетского технологического института создали систему на основе ИИ, которая определяет, на какие технологии стоит обратить внимание.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/issledovateli-iz-mit-sozdala-sistemu-kotoraja-predskazyvaet-perspektivnye-tehnologicheskie-patenty-s-pomoshhju-ii-mozhete-poprobovat-sami">Исследователи из MIT создали систему, которая предсказывает перспективные технологические патенты с помощью ИИ. Можете попробовать сами</a>»</p>]]></description>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 04 Aug 2021 14:50:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Исследователи из Массачусетского технологического института (MIT) создали систему на основе искусственного интеллекта, которая определяет, на какие технологии стоит обратить внимание.</p><p><a href="http://technologyrates.mit.edu">Онлайн-сервис</a> доступен для всех. На нём можно найти патенты по ключевым словам. Система покажет, насколько быстро будет «улучшаться» то или иное изобретение.</p><h2>Как создавали</h2><p>Команда MIT проанализировала 97% американских патентов.</p><p>Сначала исследователи разделили патенты на 1757 технологических областей. Каждая из них включает изобретения, которые выполняют определенную функцию с использованием отдельной отрасли научных знаний.</p><p>Команда MIT использовала новый алгоритм на основе вероятностей, <a href="https://www.google.com/search?q=machine+learning+site%3Athenextweb.com&amp;ei=M58KYYa_PMKQ8gL2lKa4Bw&amp;oq=machine+learning+site%3Athenextweb.com&amp;gs_lcp=Cgdnd3Mtd2l6EAM6BwgAEEcQsAM6CwgAEOQCELADEIsDSgUIPBIBN0oECEEYAVDU-QJYoY8DYI2UA2gHcAB4AIABsAGIAewJkgEEMjEuMZgBAKABAcgBCrgBAsABAQ&amp;sclient=gws-wiz&amp;ved=0ahUKEwjGpPydxZfyAhVCiFwKHXaKCXcQ4dUDCA4&amp;uact=5">машинное обучение</a>, обработку естественного языка и патентную сетевую аналитику для прогнозирования темпов повышения производительности различных технологий.</p><h2>Как работает онлайн-сервис</h2><p>Вы вводите ключевое слово — название определённой технологии.</p><p>Сервис подбирает несколько областей, в которых собраны все существующие патенты США, которые связаны с выбранной технологией.</p><figure><img src="https://media.tproger.ru/uploads/2021/08/image-11.png" alt="" /><figcaption>Результаты запроса по ключевому слову «полупроводник»</figcaption></figure><p>Для каждой области искусственный интеллект уже посчитал «коэффициент улучшения».</p><p>Если этот показатель выше 42%, значит, технология улучшается быстрее, чем встроенные чипы (закон Мура). Значит, эта область — перспективная.</p><p><a href="http://technologyrates.mit.edu">Попробовать →</a></p><h2>Зачем нужно</h2><p>Сервис, по сути, показывает перспективные стартапы, на которые стоит обратить внимание политикам, исследователям, журналистам и инвесторам.</p><p>Источник: The Next Web</p>]]></content:encoded>
    </item>
    <item>
      <title>Учёные научились следить за движением пользователей без использования видеокамер</title>
      <link>https://tproger.ru/news/uchjonye-nauchilis-sledit-za-dvizheniem-polzovatelej-bez-ispolzovanija-videokamer</link>
      <comments>https://tproger.ru/news/uchjonye-nauchilis-sledit-za-dvizheniem-polzovatelej-bez-ispolzovanija-videokamer?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/uchjonye-nauchilis-sledit-za-dvizheniem-polzovatelej-bez-ispolzovanija-videokamer</guid>
      <description><![CDATA[<p>Система отслеживает движение пользователей без видеокамер; технология может быть полезна для конфиденциальных медицинских исследований.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/uchjonye-nauchilis-sledit-za-dvizheniem-polzovatelej-bez-ispolzovanija-videokamer">Учёные научились следить за движением пользователей без использования видеокамер</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Pet-проекты]]></category>
      <category><![CDATA[Наука]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 22 Jun 2021 09:18:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Инженеры Лаборатории компьютерных наук и искусственного интеллекта (CSAIL) представили новый интересный проект. Используя набор датчиков в специальных коврах, они научились наблюдать за движением людей без использования видеокамер.</p><figure><img src="https://media.tproger.ru/uploads/2021/06/1-autoconverted-9.jpeg" alt="" /><figcaption>Источник: MIT</figcaption></figure><p>По словам разработчиков, созданный ими смарт-ковёр Magic Carpet может найти своё место в более безопасной и конфиденциальной медицине. Речь идёт о тех пациентах, которым жизненно необходимо удаленное наблюдение медработников.</p><p>В основу инструмента легла нейронная сеть. Она, используя датчики на ковре, определяет, выполняет ли человек назначенные процедуры: приседания, растяжку и т.д.</p><p>Общая площадь устройства — около 3,3 квадратных метра. На ней расположились интегрированная тактильная сенсорная матрица, которая в свою очередь состоит из более чем 9 тыс датчиков давления. Также Magic Carpet включает в себя схемы считывания, позволяющие в реальном времени записывать взаимодействие людей с собой.</p><p>Источник: <a href="https://www.csail.mit.edu/news/intelligent-carpet-gives-insight-human-poses">MIT</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Учёные из MIT научили шпинат отправлять электронные письма</title>
      <link>https://tproger.ru/news/uchjonye-iz-mit-nauchili-shpinat-otpravljat-jelektronnye-pisma</link>
      <comments>https://tproger.ru/news/uchjonye-iz-mit-nauchili-shpinat-otpravljat-jelektronnye-pisma?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/uchjonye-iz-mit-nauchili-shpinat-otpravljat-jelektronnye-pisma</guid>
      <description><![CDATA[<p>Шпинат превратили в датчик: карбоновые нанотрубки помогают передавать специалистам по электронной почте данные о климате и экологических проблемах.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/uchjonye-iz-mit-nauchili-shpinat-otpravljat-jelektronnye-pisma">Учёные из MIT научили шпинат отправлять электронные письма</a>»</p>]]></description>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 02 Feb 2021 15:05:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>В научном журнале Nature появилась <a href="https://www.nature.com/articles/nmat4771.epdf">статья</a> о новом научном открытии учёных из MIT. Им удалось научить шпинат отправлять электронные письма. Как пишет Euronews, это поможет специалистам ещё лучше отслеживать состояния климата.</p><p>Инженеры технологического института, используя нанотехнологии, сделали из обыкновенного шпината своеобразные датчики. Они могут распознавать изменение климата поблизости и наличие экологических проблем.</p><p>После того, как шпинат выявляет негативные изменения поблизости, с помощью карбоновых нанотрубок он передаёт собранную информацию специалистам по электронной почте. Для этого растение направляет специальный сигнал в сторону инфракрасной камеры на плантации.</p><p>Растения — очень хорошие химики-аналитики. Они наделены разветвлённой сетью корней прямо в почве, при этом они постоянно делают пробы грунтовых вод и умеют самостоятельно транспортировать эту воду в листья.</p><p>Источник: Euronews</p>]]></content:encoded>
    </item>
    <item>
      <title>В MIT выяснили, какие области мозга задействуются при работе с кодом</title>
      <link>https://tproger.ru/news/v-mit-vyjasnili-kakie-oblasti-mozga-zadejstvujutsja-pri-rabote-s-kodom</link>
      <comments>https://tproger.ru/news/v-mit-vyjasnili-kakie-oblasti-mozga-zadejstvujutsja-pri-rabote-s-kodom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-mit-vyjasnili-kakie-oblasti-mozga-zadejstvujutsja-pri-rabote-s-kodom</guid>
      <description><![CDATA[<p>Нейробиологи MIT установили: чтение кода не задействует речевые зоны, зато включает сеть сложных когнитивных задач и пространственное мышление.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-mit-vyjasnili-kakie-oblasti-mozga-zadejstvujutsja-pri-rabote-s-kodom">В MIT выяснили, какие области мозга задействуются при работе с кодом</a>»</p>]]></description>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 16 Dec 2020 09:21:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>На сайте MIT <a href="https://news.mit.edu/2020/brain-reading-computer-code-1215">опубликовали</a> материал, в котором описывается свежее исследование нейробиологов института. Им удалось убедиться в том, что чтение компьютерного кода не активизирует области мозга, участвующие в обработке речи. Вместо них «включается» распределённая сеть, которая используется при решении сложных когнитивных задач. К ним, в том числе, относятся математические задачи и кроссворды.</p><figure><img src="https://media.tproger.ru/uploads/2020/12/1-19.jpg" alt="" /></figure><p>Но в то же время исследование показало, что при чтении кода в человеческом мозгу активируется и другая область, которая вовсе отвечает за пространственное мышление. На основе свежих данных, специалисты MIT заключили, что гипотеза исключительной связи математики и написания кода не совсем верна.</p><p>Источник: <a href="https://news.mit.edu/2020/brain-reading-computer-code-1215">MIT</a></p>]]></content:encoded>
    </item>
    <item>
      <title>В MIT разрабатывают приложение для определения COVID-19 по кашлю</title>
      <link>https://tproger.ru/news/mit-covid-19-mobile-app</link>
      <comments>https://tproger.ru/news/mit-covid-19-mobile-app?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mit-covid-19-mobile-app</guid>
      <description><![CDATA[<p>Модель обучили на 200 тыс записей голосов и кашля, затем дообучили на 4 тыс записях кашля, половина которых принадлежала больным коронавирусом.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mit-covid-19-mobile-app">В MIT разрабатывают приложение для определения COVID-19 по кашлю</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IT во время чумы]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 20 Nov 2020 07:04:19 GMT</pubDate>
      <content:encoded><![CDATA[<p>Модель искусственного интеллекта, разрабатываемая изначально для определения различных болезней, была переработана таким образом, чтобы определять по обыкновенному кашлю наличие коронавируса у пользователя. А для того, чтобы пользоваться разработкой было максимально удобно, прямо сейчас в стенах университета разрабатывается специальное мобильное приложение.</p><p>Первичная модель, искавшая сразу множество болезней, была натренирована на 200 тыс записях голосов и кашлей. Для того, чтобы доработать её под определение COVID-19, учёные прогнали нейросеть через ещё 4 тыс записей кашля, 50% из которых принадлежало больным новейшим коронавирусом.</p><p>По словам создателей проекта, искусственный интеллект отлично справляется с определением таких биомаркеров, как сила голосовых связок, объём лёгких и нейромышечная дегенерация — все они отличаются в случае кашлей здоровых и больных коронавирусом людей. При этом важно отметить, что человеческий слух не способен услышать разницу в кашлях, в отличие от ИИ.</p><p>В планах сотрудников MIT создать удобный инструмент, с помощью которого каждый желающий сможет покашлять в свой смартфон перед выходом, чтобы узнать, является ли он потенциально опасным для окружающих или нет. При этом специалисты учебного заведения отмечают, что на данном этапе рано говорить о возможности опираться на показания их разработки, даже несмотря на то, что опыты показали её 98.5% точность при определении.</p>]]></content:encoded>
    </item>
    <item>
      <title>Инженеры MIT научили роботов Mini Cheetah играть с мячом</title>
      <link>https://tproger.ru/news/mit-soccer-robodogs</link>
      <comments>https://tproger.ru/news/mit-soccer-robodogs?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[karpov]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mit-soccer-robodogs</guid>
      <description><![CDATA[<p>Четвероногие роботы гоняют футбольный мяч на траве и в густой палой листве, а их конструкция рассчитана на лёгкий ремонт и эксперименты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mit-soccer-robodogs">Инженеры MIT научили роботов Mini Cheetah играть с мячом</a>»</p>]]></description>
      <category><![CDATA[Роботы]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 11 Nov 2019 12:27:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Инженеры из MIT опубликовали новое видео с четвероногими роботами Mini Cheetah. <a href="https://youtu.be/xNeZWP5Mx9s">В мартовском</a> они показывали сальто, а сейчас играют с футбольным мячом на траве и в густом ковре из палой листвы.</p><p>По словам инженеров, Mini Cheetah специально спроектировали так, чтобы его можно было легко ремонтировать, менять, экспериментировать с ним.</p>]]></content:encoded>
    </item>
    <item>
      <title>Инженеры MIT создали роботов нового класса для быстрой сборки сложных объектов</title>
      <link>https://tproger.ru/news/assembler-robots-mit</link>
      <comments>https://tproger.ru/news/assembler-robots-mit?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[karpov]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/assembler-robots-mit</guid>
      <description><![CDATA[<p>Роботы MIT ориентируются относительно уже построенных частей объекта. Они могут постоянно находиться внутри конструкции, ремонтировать и поддерживать системы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/assembler-robots-mit">Инженеры MIT создали роботов нового класса для быстрой сборки сложных объектов</a>»</p>]]></description>
      <category><![CDATA[Роботы]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 29 Oct 2019 13:04:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>В MIT создали робочервей, которые в теории могут построить космический корабль. Сами разработчики называют их роботами-сборщиками.</p><p>Главная фишка устройств — способ навигации. Они ориентируются относительно уже построенных частей объекта, а что находится за пределами области сборки, для них неважно. По задумке создателей, роботы могут постоянно «жить» внутри конструкции, заниматься ремонтом и поддержкой систем.</p><p>По словам профессора Нила Гершенфельда из MIT, обычно машины делят на две категории: роботы из дорогих материалов для сложных задач и дешёвые роботы для массовых производств. Он считает, что небольшие и быстрые роботы-сборщики — это совершенно новый, прорывной класс устройств в робототехнике.</p>]]></content:encoded>
    </item>
    <item>
      <title>В MIT разработали алгоритм, который улучшает загрузку видео в стриминговых сервисах</title>
      <link>https://tproger.ru/news/minerva-algorithm</link>
      <comments>https://tproger.ru/news/minerva-algorithm?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/minerva-algorithm</guid>
      <description><![CDATA[<p>Разработчики MIT представили алгоритм Minerva: он учитывает тип видео, размер и разрешение экрана, скорость подключения и распределяет нагрузку.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/minerva-algorithm">В MIT разработали алгоритм, который улучшает загрузку видео в стриминговых сервисах</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 20 Aug 2019 17:59:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики из MIT представили алгоритм Minerva. Он анализирует, какой ширины канал нужен каждому пользователю сети для просмотра видео, и равномерно распределяет нагрузку. Алгоритм учитывает много факторов: тип видео, размер и разрешение экрана, скорость подключения.</p><p>Существующие алгоритмы на эти факторы не смотрят. Они распределяют нагрузку с помощью буферизации и динамического битрейта. Это когда разрешение видео автоматически меняется в зависимости от ширины канала.</p><p>Разработчики успешно протестировали алгоритм Minerva на прототипе стримингового сервиса на серверах AWS.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработчики из MIT представили алгоритм, который на основе голоса человека воссоздаёт его лицо</title>
      <link>https://tproger.ru/news/speech2face-model-mit</link>
      <comments>https://tproger.ru/news/speech2face-model-mit?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/speech2face-model-mit</guid>
      <description><![CDATA[<p>Модель по спектрограмме речи генерирует портрет и хорошо определяет пол, но пока не способна оценить возраст с точностью до десяти лет.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/speech2face-model-mit">Разработчики из MIT представили алгоритм, который на основе голоса человека воссоздаёт его лицо</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 27 May 2019 14:34:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Учёные из MIT создали ML-модель Speech2Face, которая по спектрограмме речи человека генерирует его портрет. Она распознаёт пол, возраст и, по акценту, этническую принадлежность.</p><figure><img src="https://media.tproger.ru/uploads/2019/05/27.-sp2face_2.png" alt="" /></figure><h2>Как работает?</h2><p>Работа модели опирается на данные из набора AVSpeech с короткими роликами. Аудио- и видеодорожки в них заранее разделены. Всего в наборе миллион таких файлов, среди них встречается около ста тысяч человек.</p><p>Получив на вход короткий видеоролик, одна часть алгоритма переделывает на основе кадров лицо человека, чтобы оно было в анфас, с нейтральным выражением. Другая часть алгоритма работает с аудиодорожкой. Она воссоздаёт спектрограмму, распознаёт голос и с помощью параллельной нейросети генерирует портрет.</p><p>Проверка на качество показала, что модель хорошо справляется с определением пола, однако пока не способна правильно оценить возраст с точностью до 10 лет. Кроме того, обнаружился расовый перекос: лучше всего алгоритм справлялся с отрисовкой лиц людей европейского или азиатского происхождения. Как говорят исследователи, это из-за неравномерного распределения рас в обучающей выборке.</p>]]></content:encoded>
    </item>
    <item>
      <title>В MIT CSAIL разработали новый метод борьбы с заблуждениями ИИ</title>
      <link>https://tproger.ru/news/mit-csail-bias-reduction</link>
      <comments>https://tproger.ru/news/mit-csail-bias-reduction?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Штукатуров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mit-csail-bias-reduction</guid>
      <description><![CDATA[<p>Учёные лаборатории информатики и искусственного интеллекта MIT предложили бороться с заблуждениями нейросетей кластеризацией и дополнительными данными.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mit-csail-bias-reduction">В MIT CSAIL разработали новый метод борьбы с заблуждениями ИИ</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 19 Nov 2018 09:02:33 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда учёных из Лаборатории информатики и искусственного интеллекта MIT <a href="https://arxiv.org/abs/1805.12002">опубликовала</a> работу, посвящённую борьбе с заблуждениями, возникающими у нейросетей в процессе обучения. Основное внимание в работе уделено проблеме сохранения точности прогнозируемых ИИ результатов.</p><h3>Какие способы борьбы с заблуждениями существуют?</h3><p>Поскольку с проблемой дискриминационных заблуждений ИИ учёные пытаются справиться не первый год, существуют традиционные методы работы в этой области. Обычно для коррекции обучения в набор данных добавляют некоторое количество информации, которая позволяет нейросети получить более точные данные по конкретной выборке.</p><p>Так, в одном эксперименте ИИ должен был отметить предполагаемый уровень доходов лиц в представленной подборке. В результате дискриминационного заблуждения, появившегося в процессе обучения, ИИ вдвое чаще отмечал мужчин как лиц с высоким доходом. Увеличение количества женских анкет в обучающем датасете позволило снизить ошибку на 40 %.</p><p>Проблема традиционных методов заключается в том, что подготовленные таким образом наборы данных не отражают реального распределения популяции. Это повышает ошибочность выдаваемых ИИ прогнозов.</p><h3>Что предлагают учёные?</h3><p>В своей работе «Why Is My Classifier Discriminatory?» учёные предлагают несколько возможных вариантов решения проблемы. Они считают, что увеличение размера обучающего датасета без изменения пропорций представленных гендерных, социальных и расовых групп позволит ИИ самостоятельно справиться с дискриминационными заблуждениями. По мнению исследователей, сбор дополнительной информации из того же источника, который предоставил изначальный пакет данных, позволит избежать ковариантного смещения.</p><p>Такой способ может оказаться затратным, так как придётся оплачивать работу специалистов, размечающих дополнительные данные. Тем не менее, исследователи уверены, что во многих случаях такие затраты будут оправданы.</p><p>Второй вариант заключается в кластеризации групп населения, наиболее подверженных дискриминации и последующей отдельной обработке этик кластеров с введением дополнительных переменных. Учёные предлагают использовать этот метод, когда получение дополнительных данных затруднено или невозможно.</p><p>Борьба с заблуждениями нейросетей — одно из основных направлений работы специалистов по ИИ в последние годы. Обучаясь на наборах реальных данных, искусственный интеллект склонен усваивать сложившиеся в обществе гендерные и расовые стереотипы. Проблему усугубляет непрозрачность мотивации принимаемых решений. В сентябре 2018 года компания IBM <a href="https://tproger.ru/news/ibm-launched-ai-control-service/">запустила</a> сервис, выявляющий возникающие заблуждения и определяющий мотивацию нейросети.</p>]]></content:encoded>
    </item>
    <item>
      <title>В MIT предложили обучать ИИ языку как ребенка</title>
      <link>https://tproger.ru/news/mit-ai-languages</link>
      <comments>https://tproger.ru/news/mit-ai-languages?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Галадей]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mit-ai-languages</guid>
      <description><![CDATA[<p>Парсер осваивает слова через наблюдение за людьми и действиями на видео, сопоставляя увиденное с текстовым описанием по методу слабого контроля.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mit-ai-languages">В MIT предложили обучать ИИ языку как ребенка</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 01 Nov 2018 18:33:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>В MIT <a href="http://news.mit.edu/2018/machines-learn-language-human-interaction-1031">разработали</a> парсер для искусственного интеллекта, изучающего язык. Его особенностью является обучение через наблюдение — как это делают дети.</p><h3>Принципы работы</h3><p>Методика базируется не на чётких описаниях слов и понятий, а на методе «слабого контроля» и пассивного обучения. Машина должна самостоятельно наблюдать за людьми, «слушать» их разговоры и формировать словарный запас. Подобным образом дети обучаются речи, слушая и узнавая слова.</p><p>Предполагается, что такой подход упростит накопление словарного запаса и позволит программам и роботам точнее воспринимать человеческую речь и отвечать на неё.</p><h3>Синтаксический анализатор</h3><p>Люди в разговоре нередко используют только часть предложения и нарушают правила грамматики. Анализ слов на лету должен, как предполагается, улучшить работу ИИ-систем и парсеров. Синтаксический анализатор не опирается на определённый контекст, а значит, позволяет роботам воспринимать неявно сформулированные приказы.</p><p>Анализатор поможет узнать, как ребёнок учит язык, что поможет не только разработчикам роботов, но и специалистам, работающим с детьми.</p><h3>Методика обучения</h3><p>В MIT использовали пассивный метод обучения ИИ-сети, лежащей в основе парсера. Нейросети показывали видео и текстовые описания действий, а система сопоставляла данные и связывала слова с объектами и действиями. Исследователи использовали 400 видеороликов.</p><p>Учёные утверждают, что технология легко масштабируется, и может использоваться там, где необходимо голосовое управление или общение с ИИ.</p><p>Нейросети обучают понимать не только речь, но и видео. В Facebook <a href="https://tproger.ru/news/facebook-videostory/">разработали</a> технологию VideoStory, которая помогает ИИ описывать происходящее на видео. Это может помочь воспринимать информацию людям с проблемами зрения.</p>]]></content:encoded>
    </item>
    <item>
      <title>MIT анонсировал проект BeeMe, приуроченный к Хэллоуину</title>
      <link>https://tproger.ru/news/mit-announced-beeme-project</link>
      <comments>https://tproger.ru/news/mit-announced-beeme-project?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Штукатуров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mit-announced-beeme-project</guid>
      <description><![CDATA[<p>Участники эксперимента BeeMe смогут управлять действиями живого человека через Интернет; активная фаза начнётся 31 октября в 23:00 по восточному времени.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mit-announced-beeme-project">MIT анонсировал проект BeeMe, приуроченный к Хэллоуину</a>»</p>]]></description>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 27 Oct 2018 14:40:18 GMT</pubDate>
      <content:encoded><![CDATA[<p>MIT Media Lab <a href="https://www.media.mit.edu/projects/beeme/overview/">разместила</a> информацию о запланированном на 31 октября 2018 года эксперименте BeeMe. Участники проекта смогут управлять действиями живого человека, отдавая команды через Интернет. Основная цель эксперимента — понять, может ли большое сообщество незнакомых людей скоординировать свои команды и сформировать целенаправленную деятельность агента.</p><h3>Подробности эксперимента</h3><p>Активная фаза начнётся в 23:00 по восточному времени (6 утра следующего дня по Москве). Желающие принять участие смогут <a href="https://beeme.online/">зарегистрироваться</a> на сайте проекта BeeMe. В качестве агента будет выступать нанятый организаторами актёр. Его личность и местоположение будут оставаться скрытыми от участников.</p><p>Зарегистрированные участники будет видеть и слышать то же, что воспринимает действующее лицо. Они смогут выдвигать свои предложения, например, открыть дверь или продвинуться вперёд. Окончательный выбор будет определяться голосованием. Организаторы намереваются модерировать указания, чтобы не допустить противозаконных, оскорбительных и тому подобных действий.</p><h3>Предыстория BeeMe</h3><p>Действия, подобные запланированным в эксперименте, можно было наблюдать в эпизоде «Белое рождество» сериала «Чёрное зеркало». Герой эпизода знакомился с женщинами на рождественской вечеринке, транслируя происходящее своим клиентам через имплантированный в мозг микрочип. Устройство обладало возможностью обратной связи и передавало герою указания наблюдателей. Эпизод поднимал вопрос нарушения приватности в современную эпоху.</p><p>Учёные из MIT Media Lab придумали историю для своего эксперимента. Согласно легенде BeeMe, агент — человек, который добровольно отказался от свободы воли и передал управление группе пользователей Интернет, чтобы победить сбежавший в Сеть злобный ИИ по имени Zookd.</p><p>Само название проекта, BeeMe, является игрой слов. Одно из значений слова «bee» — соседская помощь или совместная работа. В то же время оно является омофоном глагола «to be», и название проекта можно перевести как «будь мной».</p><p>Инженеры MIT Media Lab не в первый раз выступают с неоднозначными проектами, способными пощекотать нервы впечатлительным персонам. В июне 2018 года они <a href="https://tproger.ru/news/mit-psycho-neural-network/">продемонстрировали</a> нейросеть с психопатологическими наклонностями, названную в честь персонажа Нормана Бейтса, убийцы с раздвоением личности из романа «Психо». Разумеется, исключительно в научных целях.</p>]]></content:encoded>
    </item>
  </channel>
</rss>