<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / Веб-разработка / Хабр]]></title>
    <link>https://habr.com/ru/hubs/webdev/articles/</link>
    <description><![CDATA[Веб-разработка – делаем веб лучше]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Mon, 11 May 2026 09:46:59 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Что такое Реактивное Программирование]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033088/</guid>
      <link>https://habr.com/ru/articles/1033088/?utm_campaign=1033088&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/74f/b21/405/74fb21405e5ccfdd5ba4083501132635.png" /><p>Реактивность может значительно упростить реализацию надёжных программ. Давайте рассмотрим, что нам нужно для её реализации и какие парадигмы реактивного программирования бывают…</p> <a href="https://habr.com/ru/articles/1033088/?utm_campaign=1033088&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Отреагировать на статью</a>]]></description>
      
      <pubDate>Mon, 11 May 2026 07:10:42 GMT</pubDate>
      <dc:creator><![CDATA[nin-jin]]></dc:creator>
      
      <category>реактивное программирование</category><category>функциональное программирование</category><category>объектное программирование</category><category>процедурное программирование</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Переопределение классов ядра Joomla с помощью плагина на примере MVCFactory]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033646/</guid>
      <link>https://habr.com/ru/articles/1033646/?utm_campaign=1033646&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fa4/4e0/cf1/fa44e0cf1585a9b6f558da2773c7f2f6.webp" /><p>Разработчики сайтов, веб-мастера, рассматривая Joomla как CMS, чаще всего используют компоненты ядра такими, какие они есть. Но компоненты ядра, обеспечивающие CRUD-ы в Joomla, следует рассматривать ещё и как примеры использования Joomla в качестве фреймворка. Иногда реалии проекта таковы, что требуется внести изменения именно в логику классов ядра Joomla. Я покажу это на нескольких примерах: как исхитрялись раньше и какие возможности появились в современных версиях Joomla.</p><p>Сразу оговорюсь: речь не о том, чтобы править файлы ядра. Это плохая идея почти всегда. При обновлении Joomla такие изменения будут потеряны, а сопровождать их потом придётся вручную. Речь о другом: как изменить точку создания MVC-классов компонента через плагин и DI-контейнер, не залезая в core-файлы.</p><p>Ну и приятный бонус - Joomla-археология и немного красивого и ужасного треша из практики 😎</p> <a href="https://habr.com/ru/articles/1033646/?utm_campaign=1033646&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 11 May 2026 06:49:48 GMT</pubDate>
      <dc:creator><![CDATA[sergeytolkachyov]]></dc:creator>
      
      <category><![CDATA[joomla]]></category><category><![CDATA[joomla 6]]></category><category><![CDATA[mvcfactory]]></category><category><![CDATA[mvc]]></category><category><![CDATA[override]]></category><category><![CDATA[декоратор]]></category><category><![CDATA[ооп]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Логин через Telegram по-новому: разбираем OIDC-флоу oauth.telegram.org и собираем его на Python]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033632/</guid>
      <link>https://habr.com/ru/articles/1033632/?utm_campaign=1033632&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8c6/51f/0fe/8c651f0fe9e8a99e763c80a4396a83fa.jpg" /><p>Telegram теперь полноценный OpenID-провайдер: oauth.telegram.org, JWKS, JWT, claims. Туториалы на GitHub при этом массово показывают старый виджет с HMAC от bot-token и /setdomain в BotFather. Я разобрался с новым флоу и собрал PoC на Python — рассказываю, как устроен обмен между фронтом, Telegram и бэком, чем Login library через telegram-login.js отличается от manual OIDC code flow с PKCE, что настраивать в BotFather (спойлер: не в чате, а в его mini-app), как протестировать локально через ngrok, и какая проверка id_token нужна вместо ручного HMAC.</p> <a href="https://habr.com/ru/articles/1033632/?utm_campaign=1033632&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 11 May 2026 06:45:10 GMT</pubDate>
      <dc:creator><![CDATA[andy-takker]]></dc:creator>
      
      <category><![CDATA[telegram]]></category><category><![CDATA[telegram login]]></category><category><![CDATA[openid connect]]></category><category><![CDATA[oidc]]></category><category><![CDATA[oauth2]]></category><category><![CDATA[jwt]]></category><category><![CDATA[jwks]]></category><category><![CDATA[pyjwt]]></category><category><![CDATA[python]]></category><category><![CDATA[authentication]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я сделал приложение за вечер без навыков программирования. Фиг там. Как я почти год делал игру с опытом и ИИ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033586/</guid>
      <link>https://habr.com/ru/articles/1033586/?utm_campaign=1033586&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3e8/1c6/73b/3e81c673bed28150f3c317459c441a17.jpg" /><p>Миф о том, что с ИИ можно собрать полноценный проект за вечер без опыта, звучит красиво только в теории. На примере футбольного менеджера рассказываю, почему даже с опытом в разработке и активным использованием ИИ путь до живой системы занял почти год: из-за архитектуры, механик, дизайна, ассетов и постоянной ручной сборки продукта.  </p> <a href="https://habr.com/ru/articles/1033586/?utm_campaign=1033586&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 10 May 2026 17:45:57 GMT</pubDate>
      <dc:creator><![CDATA[pryadkinss]]></dc:creator>
      
      <category><![CDATA[myclub11]]></category><category><![CDATA[геймдев]]></category><category><![CDATA[искусственный интеллект]]></category><category><![CDATA[футбольный менеджер]]></category><category><![CDATA[игровая архитектура]]></category><category><![CDATA[генерация игроков]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Спам на WordPress: от Cloudflare до собственного плагина геоблокировки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033428/</guid>
      <link>https://habr.com/ru/articles/1033428/?utm_campaign=1033428&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/652/526/a2e/652526a2ed148e3fa768acf44989e7b5.webp" /><p>Cloudflare заблокировали, DDoS-Guard стоит как крыло от самолёта, а&nbsp;.htaccess&nbsp;с тысячами IP начинает тормозить сайт. Рассказываю, как сделал собственный WordPress-плагин для геоблокировки спама – с белым и чёрным списком IP, фильтрацией по User-Agent, защитой комментариев и кэшированием через Redis. Без капчи, без абонентской платы в 10к в месяц и без лишних функций ради оправдания цены.</p> <a href="https://habr.com/ru/articles/1033428/?utm_campaign=1033428&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 10 May 2026 06:46:28 GMT</pubDate>
      <dc:creator><![CDATA[TheSudo]]></dc:creator>
      
      <category><![CDATA[waf]]></category><category><![CDATA[cloudflare]]></category><category><![CDATA[wordpess]]></category><category><![CDATA[спам]]></category><category><![CDATA[спамеры]]></category><category><![CDATA[спам-фильтр]]></category><category><![CDATA[спам и антиспам]]></category><category><![CDATA[спамооборона]]></category><category><![CDATA[спам в блогах]]></category><category><![CDATA[спам-боты]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[30 дней: блочный конструктор README — один DOM, два хозяина]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033422/</guid>
      <link>https://habr.com/ru/articles/1033422/?utm_campaign=1033422&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/131/cae/e25/131caee25da165d4eabce18d3f1dda59.png" /><p>Мы живём в эпоху когда можно написать в чат «сделай мне CRUD» и получить рабочий код через десять секунд что в принципе удобно. И это, если честно, главная причина почему я периодически намеренно лезу в что-то сложное руками — чтобы не разучиться думать о том что происходит внутри.</p><p>ИИ я использую. Но в этом проекте он был исключительно быстрой документацией — особенно когда добрался до selection/range API, про которые до этого знал чуть меньше чем ничего. Реализация все равно была за мной.</p><p>Так вот — ReadGen. Блочный конструктор README-файлов. Месяц, 2-3 часа в день, React и TypeScript и небольшая пачка дополнительных библиотек для разумного облегчения жизни. Важно понимать что это не коммерческий продукт и не претендует на решение чьей-то боли. Просто техническая задача которую я давно хотел разобрать.</p> <a href="https://habr.com/ru/articles/1033422/?utm_campaign=1033422&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 10 May 2026 06:16:20 GMT</pubDate>
      <dc:creator><![CDATA[IslamX]]></dc:creator>
      
      <category><![CDATA[React]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[contenteditable]]></category><category><![CDATA[WYSIWYG]]></category><category><![CDATA[DOM]]></category><category><![CDATA[Redux Toolkit]]></category><category><![CDATA[браузерные API]]></category><category><![CDATA[архитектура]]></category><category><![CDATA[FSD]]></category><category><![CDATA[frontend]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Прототипирование сайта на Тильде: какие ограничения нужно учесть до дизайна и сборки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033380/</guid>
      <link>https://habr.com/ru/articles/1033380/?utm_campaign=1033380&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3ea/5d5/2d1/3ea5d52d1424da81a0d8bf5322a78d1a.jpeg" /><p> Прототип сайта на Тильде нельзя рассматривать только как черновик будущего дизайна.</p><p>  Тильду часто воспринимают как инструмент, где можно быстро собрать сайт из готовых блоков. Это правда, когда структура заранее ложится на логику платформы. Но если сначала нарисовать свободный макет, а потом пытаться перенести его в конструктор без учета стандартных блоков, Зеро-блока, адаптива, форм, SEO-структуры и будущего редактирования, скорость быстро исчезает.  </p> <a href="https://habr.com/ru/articles/1033380/?utm_campaign=1033380&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 09 May 2026 19:27:34 GMT</pubDate>
      <dc:creator><![CDATA[marmeladigital]]></dc:creator>
      
      <category><![CDATA[прототипирование сайтов]]></category><category><![CDATA[тильда]]></category><category><![CDATA[tilda]]></category><category><![CDATA[wireframe]]></category><category><![CDATA[wireframes]]></category><category><![CDATA[seo-оптимизация]]></category><category><![CDATA[веб-дизайн]]></category><category><![CDATA[веб-дизайн и верстка]]></category><category><![CDATA[разработка сайтов]]></category><category><![CDATA[структура сайта]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Диапазоны медиа-запросов CSS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033266/</guid>
      <link>https://habr.com/ru/articles/1033266/?utm_campaign=1033266&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a92/e48/92a/a92e4892a55016b3bc54cfe72dacc492.png" /><p>Медиа-запросы (media queries) - это основа отзывчивого дизайна. Мы используем их для определения того, как должен меняться дизайн на основе размеров области просмотра (viewport). Но синтаксис <code>min-width</code> и <code>max-width</code> может вызывать путаницу, и в некоторых случаях вызывает проблемы макета (layout), которые трудно выявить.</p><p>Цель этой статьи - убедить вас использовать запросы диапазонов (range queries), начиная с сегодняшнего дня.</p> <a href="https://habr.com/ru/articles/1033266/?utm_campaign=1033266&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 09 May 2026 08:14:24 GMT</pubDate>
      <dc:creator><![CDATA[aio350]]></dc:creator>
      
      <category>css</category><category>styles</category><category>media queries</category><category>range queries</category><category>container queries</category><category>стили</category><category>запросы диапазонов</category><category>запросы к контейнеру</category><category>медиа-запросы</category><category>breakpoints</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Топ офлайн‑приложений для работы без интернета: от задач до карт]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/leadertask/articles/1033138/</guid>
      <link>https://habr.com/ru/companies/leadertask/articles/1033138/?utm_campaign=1033138&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/921/14e/c24/92114ec24567684d81d4c7c3987d4cd2.png" /><p>Облачные сервисы хороши, пока у вас есть стабильный интернет. Но стоит уйти в авиарежим, сесть в поезд с «едва живым» хотькаким-G или оказаться в метро без сети — и привычный таск‑менеджер, календарь, карты и почта внезапно перестают быть рабочим инструментом, превращаясь в пассивный просмотр старых данных.</p><p>Поэтому я собрала топ офлайн‑приложений для работы без интернета — от планировщика задач и заметочника до офисного пакета, карт, почтового клиента и защищённого мессенджера.</p><p><em>И если вы пользуетесь другими офлайн‑приложениями — особенно российскими — расскажите о них в комментариях, я дополню подборку во второй части. </em> </p> <a href="https://habr.com/ru/articles/1033138/?utm_campaign=1033138&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 08 May 2026 14:55:30 GMT</pubDate>
      <dc:creator><![CDATA[maiya_dom (ЛидерТаск)]]></dc:creator>
      
      <category><![CDATA[офлайн приложения]]></category><category><![CDATA[приложения без интернета]]></category><category><![CDATA[работа без интернета]]></category><category><![CDATA[офлайн режим]]></category><category><![CDATA[offline first]]></category><category><![CDATA[офлайн приложение для работы]]></category><category><![CDATA[доступ к задачам без сети]]></category><category><![CDATA[локальная база данных]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Редизайн интернет-магазина премиальной косметики: как мы увеличили конверсию на 127%]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033074/</guid>
      <link>https://habr.com/ru/articles/1033074/?utm_campaign=1033074&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c50/42e/da0/c5042eda0a30ce2ee0853e46cdb964b0.jpg" /><p>Всем привет! Меня зовут Саша, и последние 12 лет моя жизнь — это дизайн.</p><p>Как правило, мы выступаем за постепенные изменения: аккуратно дорабатываем продукт, тестируем гипотезы и опираемся на аналитику. Но иногда проекты находятся в таком состоянии, когда точечные улучшения уже не дают результата — требуется полная переработка. Именно с такой ситуацией мы столкнулись в работе над интернет-магазином японской косметики KWC.</p><p>В статье рассказываю, какие решения были приняты и как они повлияли на бизнес-метрики.</p> <a href="https://habr.com/ru/articles/1033074/?utm_campaign=1033074&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 08 May 2026 12:17:31 GMT</pubDate>
      <dc:creator><![CDATA[ArtSander]]></dc:creator>
      
      <category><![CDATA[дизайн-система]]></category><category><![CDATA[веб-дизайн]]></category><category><![CDATA[веб-сервисы]]></category><category><![CDATA[разработка приложений]]></category><category><![CDATA[разработка сайтов]]></category><category><![CDATA[дизайн интерфейсов]]></category><category><![CDATA[интерфейсы]]></category><category><![CDATA[usability]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Маркетинговый сайт без дизайнера: 5 практик с Open Design и Claude Code]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032924/</guid>
      <link>https://habr.com/ru/articles/1032924/?utm_campaign=1032924&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8cd/1d9/c9b/8cd1d9c9b6ec5fe02d2c62370d77ee73.png" /><p>Я попробовал собрать маркетинговый сайт через Claude Design - и быстро упёрся в лимиты токенов и непрозрачность облачного тула. Перешёл на Open Design - open-source альтернативу, которая цепляет твой Claude Code, держит дизайн-систему как <code>DESIGN.md</code> в репозитории и работает локально. Под катом - четыре практики, которые сработали на сайте конференции: design-as-code в git, симлинк дизайнера в код сайта, два markdown-файла под бренд и дизайн токены, и как мы учили автономных агентов делать сайт с помощью нашей дизайн системы</p> <a href="https://habr.com/ru/articles/1032924/?utm_campaign=1032924&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 08 May 2026 08:46:29 GMT</pubDate>
      <dc:creator><![CDATA[ayusavin]]></dc:creator>
      
      <category><![CDATA[claude code]]></category><category><![CDATA[claude]]></category><category><![CDATA[anthropic]]></category><category><![CDATA[open design]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[дизайн-система]]></category><category><![CDATA[design-as-code]]></category><category><![CDATA[next.js]]></category><category><![CDATA[tailwind css]]></category><category><![CDATA[маркетинговый сайт]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я собрал интерактивную карту 13 000 исторических событий и научил её определять архетип любого города]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032542/</guid>
      <link>https://habr.com/ru/articles/1032542/?utm_campaign=1032542&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/9ab/0ec/119/9ab0ec11951615e80c5b83a08198964d.png" /><p>HistoryPrint берёт любой город и говорит, какая часть человеческой истории случилась в его радиусе. ~13 000 событий за 5 000 лет, 12 категорий (войны, революции, пандемии, открытия), скоринг по экспоненциальному убыванию расстояния, и в финале — один из 20 архетипов: «Born in Fire», «Plague Walker», «Heir of Enlightenment».</p> <a href="https://habr.com/ru/articles/1032542/?utm_campaign=1032542&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Почитать дальше</a>]]></description>
      
      <pubDate>Thu, 07 May 2026 10:43:34 GMT</pubDate>
      <dc:creator><![CDATA[truer_xd]]></dc:creator>
      
      <category><![CDATA[next.js]]></category><category><![CDATA[mapbox]]></category><category><![CDATA[pet-проекты]]></category><category><![CDATA[интерактивная карта]]></category><category><![CDATA[история]]></category><category><![CDATA[tailwind]]></category><category><![CDATA[vercel]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Коды состояния HTTP: всё, что нужно знать бэкенд-разработчику]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032498/</guid>
      <link>https://habr.com/ru/articles/1032498/?utm_campaign=1032498&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/dc8/897/170/dc88971709e9664de1210651507b3ef3.jpg" /><p>Всем привет! Я решил сделать для вас шпаргалку с основными статус-кодами протокола HTTP/HTTPS. Для более подробного погружения в тему рекомендую прочитать <a href="https://www.rfc-editor.org/rfc/rfc9110" rel="noopener noreferrer nofollow">RFC 9110</a>, который регламентирует статус коды и весь протокол.</p> <a href="https://habr.com/ru/articles/1032498/?utm_campaign=1032498&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 07 May 2026 10:11:13 GMT</pubDate>
      <dc:creator><![CDATA[PXI]]></dc:creator>
      
      <category><![CDATA[Статус-код]]></category><category><![CDATA[статус-коды]]></category><category><![CDATA[status_code]]></category><category><![CDATA[сети]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я пошутил, что разработчики больше не нужны — и мне поверили. Давайте теперь серьезно]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032334/</guid>
      <link>https://habr.com/ru/articles/1032334/?utm_campaign=1032334&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/de4/2e0/006/de42e0006c30155eb3651748f6ef11dd.jpg" /><p>Я написал статью, где я якобы продакт-менеджер, который впервые попробовал вайбкодинг. Статья, конечно же, была шуточная — по крайней мере, я так задумывал изначально. Но шутку поняли не все.</p> <a href="https://habr.com/ru/articles/1032334/?utm_campaign=1032334&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 23:40:36 GMT</pubDate>
      <dc:creator><![CDATA[vital_pavlenko]]></dc:creator>
      
      <category><![CDATA[теперь серьезно]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[SEO: Как интернет чистили от спама]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032278/</guid>
      <link>https://habr.com/ru/articles/1032278/?utm_campaign=1032278&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fc6/211/ce9/fc6211ce944228450d87180e22a1c6ee.jpg" /><p>Помните выдачу, где вместо ответа открывался сайт с полотном ссылок, чужой рекламой и бессмысленными фразами? Так выглядел массовый спам: он забивал интернет мусорными страницами и уводил трафик туда, где пользователь не получал пользы.</p><p>Для SEO это стало одной из главных проблем. Поисковикам пришлось учиться отличать нормальный контент от манипуляций, а владельцам проектов – следить за чистотой сайта постоянно. Борьба со спамом – это регулярная работа с контентом, ссылками, файлами и безопасностью.</p> <a href="https://habr.com/ru/articles/1032278/?utm_campaign=1032278&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 17:40:12 GMT</pubDate>
      <dc:creator><![CDATA[sergodeem]]></dc:creator>
      
      <category><![CDATA[SEO-спам]]></category><category><![CDATA[поисковый спам]]></category><category><![CDATA[санкции Google]]></category><category><![CDATA[удаление спама с сайта]]></category><category><![CDATA[вредоносные страницы]]></category><category><![CDATA[органический трафик]]></category><category><![CDATA[защита сайта]]></category><category><![CDATA[аудит сайта]]></category><category><![CDATA[SEO-безопасность]]></category><category><![CDATA[токсичные ссылки]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Frontend Status: свежий дайджест фронтенда и AI — 06.05.2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032276/</guid>
      <link>https://habr.com/ru/articles/1032276/?utm_campaign=1032276&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cf0/61f/3cb/cf061f3cb05a8b4cec6afb2f688d5826.webp" /><p>Привет!</p><p>Это 15-й выпуск Frontend Status — дайджеста по фронтенд-разработке.</p><p>В этом выпуске:</p><p>📺 MoscowJS 70 про инженерную культуру в действии: доклады и круглый стол показывают, как командам быстрее синхронизироваться и принимать сильные технические решения.</p><p>⚛️ React Server Components и кеширование страниц: разбираем partial page caching, чтобы ускорять загрузку и снижать стоимость рендеринга без потери актуальности контента.</p><p>🤖 AI из «вау-демо» переходит в дисциплину: разбираем рабочие промпт-пайплайны и практики Claude Code, которые дают предсказуемый результат, а не случайный успех.</p><p>🛡️ Безопасность больше не факультатив: кейс критической уязвимости в GitHub и массовый багхант в Firefox напоминают, как быстро один пропуск превращается в инцидент.</p><p>🎨 CSS и анимации взрослеют: от scroll-driven подходов до нативной случайности и новых API, которые делают интерфейсы богаче без тяжёлого JS.</p><p>⚡ JavaScript и React на новом витке: ES2025/ES2026, типизированные контракты, React Compiler, TanStack Form и <code>useHotkeys</code> как база для масштабируемой фронтенд-разработки.</p><p>🌐 Стандарты и платформа двигаются вперёд: Baseline, Long Animation Frames, CBOR-LD и апдейты WebGPU меняют практику производительности и межплатформенной разработки.</p><p>…и многое другое.</p> <a href="https://habr.com/ru/articles/1032276/?utm_campaign=1032276&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 17:38:01 GMT</pubDate>
      <dc:creator><![CDATA[frontend-status]]></dc:creator>
      
      <category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[css]]></category><category><![CDATA[react]]></category><category><![CDATA[angular]]></category><category><![CDATA[vue.js]]></category><category><![CDATA[css3]]></category><category><![CDATA[браузеры]]></category><category><![CDATA[node.js]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Аутентификация и авторизация в Python: сессии и JWT токены в Backend-разработке]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031652/</guid>
      <link>https://habr.com/ru/articles/1031652/?utm_campaign=1031652&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/aad/7e3/a03/aad7e3a03e9ca6a25b5b667796a66b01.png" /><p>В современном мире разработки программного обеспечения аутентификация и авторизация являются ключевыми концепциями, необходимыми для обеспечения безопасности и контроля доступа пользователей. В статье рассмотрим основы регистрации, аутентификации и авторизации, а также два популярных механизма аутентификации — сессионный механизм и JWT токены. Разберем их принципы работы, отличия, плюсы и минусы, а также практические аспекты реализации на Python с использованием FastAPI и SQLAlchemy.&nbsp;</p><p>Материал будет полезен как начинающим, так и опытным разработчикам, стремящимся углубить свои знания в backend-разработке и безопасности приложений.</p> <a href="https://habr.com/ru/articles/1031652/?utm_campaign=1031652&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 12:42:24 GMT</pubDate>
      <dc:creator><![CDATA[artemshumeiko]]></dc:creator>
      
      <category><![CDATA[Аутентификация]]></category><category><![CDATA[авторизация]]></category><category><![CDATA[jwt token]]></category><category><![CDATA[session]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Давайте уже сделаем отдельный хаб: «Я собрал приложение за вечер — зачем теперь разработчики?»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032086/</guid>
      <link>https://habr.com/ru/articles/1032086/?utm_campaign=1032086&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Нет, я серьёзно&nbsp;— в&nbsp;последние месяцы на&nbsp;Хабре появилась особая категория статей, которая начинает бесить.</p><p>Посты в&nbsp;стиле: «я собрал приложение без&nbsp;навыков программирования&nbsp;— ну всё, разработчики больше не&nbsp;нужны». И каждый раз один и тот&nbsp;же вайб&nbsp;— человек нажал пару кнопок и уже мысленно закрыл индустрию.</p><p>Серьёзно, таким постам нужен отдельный хаб. Потому что&nbsp;читать это в&nbsp;общей ленте разработки&nbsp;— примерно как&nbsp;слушать, как&nbsp;кто‑то решил пример на&nbsp;калькуляторе и теперь рассуждает о&nbsp;судьбе математики.</p><p>Теперь по&nbsp;сути.<br>Специально не&nbsp;буду давать ссылки на&nbsp;отдельные статьи&nbsp;— думаю вы и сами их видите в&nbsp;ленте постоянно. Поэтому отвечаю сразу, так сказать «коллективному автору» подобных постов.</p> <a href="https://habr.com/ru/articles/1032086/?utm_campaign=1032086&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 10:46:50 GMT</pubDate>
      <dc:creator><![CDATA[samako]]></dc:creator>
      
      <category><![CDATA[искусственный интеллект]]></category><category><![CDATA[программирование]]></category><category><![CDATA[разработка]]></category><category><![CDATA[no-code]]></category><category><![CDATA[генерация кода]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Слои верификации поставщика в агрохолдинге: как работает автоматический скоринг и где он ломается]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032070/</guid>
      <link>https://habr.com/ru/articles/1032070/?utm_campaign=1032070&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4f6/c37/eb8/4f6c37eb8dcb081896f6dc3eef17264b.jpeg" /><p><em>Олег Линьков, Webformula-Agro</em></p><p>Компания с оборотом 300 млн рублей, хорошим продуктом и конкурентной ценой не попадает в шорт-лист крупного агрохолдинга. Причина — несоответствие адреса в ЕГРЮЛ и на сайте. Для алгоритма скоринга это «красный флаг». Для закупщика — достаточный повод не продолжать.</p> <a href="https://habr.com/ru/articles/1032070/?utm_campaign=1032070&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 10:17:22 GMT</pubDate>
      <dc:creator><![CDATA[webformula]]></dc:creator>
      
      <category><![CDATA[агрохолдинг]]></category><category><![CDATA[b2b]]></category><category><![CDATA[Цифровая верификация]]></category><category><![CDATA[Скоринг и автоматизация]]></category><category><![CDATA[Цифровые закупки]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Flappy Bird: код веб-клона под микроскопом]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1030144/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1030144/?utm_campaign=1030144&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f37/2c2/70c/f372c270c9ac2db99e964b6e12c4894b.png" /><p>В январе 2014 года мир сошёл с ума из-за игры, где нужно просто тыкать в экран. Flappy Bird приносила создателю $50 000 в день, пока он не удалил её из-за давления и бессонницы. Игру начали продавать на чёрном рынке вместе со смартфонами.</p><p>Я решил собрать свой веб-клон, чтобы понять, в чём же здесь магия. А в конце — откровенный список из 12 проблем, из-за которых мой клон всё ещё не тянет на оригинал.</p> <a href="https://habr.com/ru/articles/1030144/?utm_campaign=1030144&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 09:01:22 GMT</pubDate>
      <dc:creator><![CDATA[Laborant_Code (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[Flappy Bird]]></category><category><![CDATA[веб-клон]]></category><category><![CDATA[javascript]]></category><category><![CDATA[браузерная игра]]></category><category><![CDATA[Донг Нгуен]]></category><category><![CDATA[ретро-игры]]></category><category><![CDATA[игровой движок]]></category><category><![CDATA[физика]]></category><category><![CDATA[canvas]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[NocoDB — бесплатная альтернатива Airtable с подключением к своей базе данных]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1020344/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1020344/?utm_campaign=1020344&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e62/3c9/b91/e623c9b9127b789eaaa88677cba86c3e.jpg" /><p>Для работы с базами данных через наглядный UI-интерфейс есть много профессиональных инструментов. Но&nbsp;что если наоборот&nbsp;— нужен максимально простой способ? Чтобы просто посмотреть данные с&nbsp;фильтрацией по&nbsp;определенным параметрам, а затем отредактировать некоторые записи.</p><p>Вроде старого-доброго phpMyAdmin, но&nbsp;ещё проще, удобней и&nbsp;современней. Что-нибудь с&nbsp;дизайном, как в&nbsp;Airtable, но&nbsp;только с&nbsp;подключением к&nbsp;собственной базе данных PostgreSQL.</p><p>Хорошая новость&nbsp;— такой инструмент есть, и&nbsp;он&nbsp;называется NocoDB. И&nbsp;его можно без проблем поставить на&nbsp;собственный сервер, чтобы&nbsp;использовать без ограничений.</p><p>В&nbsp;этой статье разберём, как NocoDB может пригодится программисту в&nbsp;разработке, а&nbsp;непрограммисту&nbsp;— в&nbsp;организации личного или рабочего информационного пространства. Также посмотрим, как установить Ноко на&nbsp;своём сервере и&nbsp;начать с&nbsp;ним работать.</p> <a href="https://habr.com/ru/articles/1020344/?utm_campaign=1020344&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 08:05:13 GMT</pubDate>
      <dc:creator><![CDATA[nickneustroev (Timeweb Cloud)]]></dc:creator>
      
      <category><![CDATA[nocodb]]></category><category><![CDATA[airtable]]></category><category><![CDATA[базы данных]]></category><category><![CDATA[postgresql]]></category><category><![CDATA[self-hosting]]></category><category><![CDATA[инструменты разработчика]]></category><category><![CDATA[coolify]]></category><category><![CDATA[docker]]></category><category><![CDATA[nocode]]></category><category><![CDATA[timeweb_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Создание чат-бота в портале Битрикс24 с помощью AI-агентов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/bitrix/articles/1031736/</guid>
      <link>https://habr.com/ru/companies/bitrix/articles/1031736/?utm_campaign=1031736&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/37e/91a/dcb/37e91adcb91f046987fc7a20e3520c87.jpg" /><p>5-я статья из цикла туториалов о  кастомизации своего бизнес-портала в Битрикс24.</p><p>Сегодня возьмём наш шаблонный репозиторий для AI-разработки и сделаем на его основе чат-бота. Боту можно написать в мессенджере и научить его делать разные полезные вещи: давать информацию по сделкам, задачам и другим деталям бизнеса.&nbsp;</p><p>Ещё бот может обращаться к другим программам по API и возвращать данные оттуда, например курсы акций и облигаций.</p><p>Что было в предыдущих туториалах:</p><p>1 — <a href="https://habr.com/ru/companies/bitrix/articles/1006012/1">Пишем первое приложение с AI-стартером, чтобы видеть прибыли и убытки</a><br>2 — <a href="https://habr.com/ru/companies/bitrix/articles/1011418/">Добавляем в бизнес-портал Битрикс24 роботов для автоматизации</a><br>3 — <a href="https://habr.com/ru/companies/bitrix/articles/1019878/">Что даёт воспроизводимая среда разработки и как развернуть контейнеры на VPS</a><br>4 — <a href="https://habr.com/ru/companies/bitrix/articles/1026102/">Анализ и модернизация коннектора баз данных с помощью AI-агентов</a></p> <a href="https://habr.com/ru/articles/1031736/?utm_campaign=1031736&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 08:00:12 GMT</pubDate>
      <dc:creator><![CDATA[rosliakov_b24 (Битрикс24)]]></dc:creator>
      
      <category><![CDATA[битрикс24]]></category><category><![CDATA[чат-бот]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[api-запросы]]></category><category><![CDATA[restapi]]></category><category><![CDATA[php]]></category><category><![CDATA[symfony]]></category><category><![CDATA[docker]]></category><category><![CDATA[веб-разработка]]></category><category><![CDATA[автоматизация бизнеса]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[TokenToad: как я сделал Chrome-расширение, чтобы перестать удивляться счетам за AI]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031890/</guid>
      <link>https://habr.com/ru/articles/1031890/?utm_campaign=1031890&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a4c/7bf/d26/a4c7bfd260c204623baf51de95b34850.jpg" /><p>Расходы на AI API копятся незаметно: сессия Claude Code тут, batch к GPT-5 там — и к концу месяца биллинг удивляет. Собрал бесплатное Chrome-расширение, которое показывает траты Anthropic, OpenAI и Gemini в реальном времени прямо в badge браузера.</p> <a href="https://habr.com/ru/articles/1031890/?utm_campaign=1031890&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 06 May 2026 06:00:49 GMT</pubDate>
      <dc:creator><![CDATA[StudyQA]]></dc:creator>
      
      <category><![CDATA[chrome extension]]></category><category><![CDATA[ai api]]></category><category><![CDATA[openai]]></category><category><![CDATA[anthropic]]></category><category><![CDATA[claude]]></category><category><![CDATA[расходы api]]></category><category><![CDATA[токены]]></category><category><![CDATA[биллинг]]></category><category><![CDATA[preact]]></category><category><![CDATA[vite]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Оптимизируем JDBC connection pool HikariCP. Прод, ресурсы и типовые ошибки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031770/</guid>
      <link>https://habr.com/ru/articles/1031770/?utm_campaign=1031770&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f8c/b46/ba7/f8cb46ba72d9f4b35053dbfae18bbacf.jpg" /><p>Продолжаем разбирать HikariCP: как выбирать размер пула, что учитывать в Kubernetes и при нескольких сервисах, почему большой maximumPoolSize не всегда помогает, какие настройки стоит пересмотреть перед продом и какие ошибки чаще всего приводят к проблемам с базой.</p> <a href="https://habr.com/ru/articles/1031770/?utm_campaign=1031770&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 15:19:36 GMT</pubDate>
      <dc:creator><![CDATA[rurikovich]]></dc:creator>
      
      <category><![CDATA[HikariCP]]></category><category><![CDATA[JDBC]]></category><category><![CDATA[connection pool]]></category><category><![CDATA[PostgreSQL]]></category><category><![CDATA[Spring Boot]]></category><category><![CDATA[JVM]]></category><category><![CDATA[Java]]></category><category><![CDATA[Scala]]></category><category><![CDATA[Kubernetes]]></category><category><![CDATA[пул соединений]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ollama Cloud Client: когда модели слишком тяжелы для локального запуска]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/beeline_cloud/articles/1031708/</guid>
      <link>https://habr.com/ru/companies/beeline_cloud/articles/1031708/?utm_campaign=1031708&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d0a/b64/da0/d0ab64da0c73bb23b69a463bc795bc9e.png" /><p>Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ <a href="https://cloud.beeline.ru/?utm_source=owned_media&amp;utm_medium=habr&amp;utm_campaign=beeline_cloud&amp;utm_term=ollamacloudclient">Beeline Cloud</a>. Сегодня я хочу поделиться историей создания одного интересного проекта&nbsp;— клиента для облачного сервиса Ollama.</p> <a href="https://habr.com/ru/articles/1031708/?utm_campaign=1031708&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 12:18:55 GMT</pubDate>
      <dc:creator><![CDATA[kbooo (Beeline Cloud)]]></dc:creator>
      
      <category><![CDATA[ollama]]></category><category><![CDATA[llm]]></category><category><![CDATA[spring boot]]></category><category><![CDATA[java]]></category><category><![CDATA[react]]></category><category><![CDATA[typescript]]></category><category><![CDATA[sse]]></category><category><![CDATA[server sent events]]></category><category><![CDATA[streaming]]></category><category><![CDATA[ai api]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Зря вы забыли эти HTML- и CSS-фичи]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1029698/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1029698/?utm_campaign=1029698&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/bc8/c8c/12f/bc8c8c12f4b68a831a702f872078a610.png" /><p>Привет, Хабр!</p><p>Мне нравится рассказывать про HTML и CSS. Отдельное удовольствие — находить очень старые фичи языков, о которых редко кто знает. Сегодня я пришёл как раз с ними.</p><p>Я подобрал список фич, которые стали полностью поддерживаться в браузерах восемь лет назад или раньше. Есть даже одна, которая работала, когда я пришёл во фронтенд.</p><p>Только, пожалуйста, не думайте, что это какие-то устаревшие возможности. Я считаю, что в сегодняшней разработке они всё так же полезны.</p><p>Давайте посмотрим, что я подготовил.</p> <a href="https://habr.com/ru/articles/1029698/?utm_campaign=1029698&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 09:01:50 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[вёрстка сайтов]]></category><category><![CDATA[фичи]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Соглашения по именованию в Go: практическое руководство]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1031544/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1031544/?utm_campaign=1031544&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/1f0/8a9/5ff/1f08a95ff890b1629dd3533d982ce0fd.jpg" /><p>В Go легко написать код, который компилируется, но раздражает при чтении: слишком длинные receiver’ы, странные имена пакетов, лишние повторы в вызовах, хаотичный регистр и <code>utils</code>, который постепенно превращается в свалку. Для начинающего Go-разработчика соглашения по именованию могут выглядеть как набор мелких вкусовых правил, хотя на практике они влияют на навигацию по проекту, читаемость API и стоимость будущего рефакторинга. </p><p>В статье разберем основные правила и идиомы именования в Go – от идентификаторов и пакетов до методов, интерфейсов и геттеров – с примерами удачных и неудачных решений.</p> <a href="https://habr.com/ru/articles/1031544/?utm_campaign=1031544&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Разобраться в Go</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 07:54:17 GMT</pubDate>
      <dc:creator><![CDATA[kmoseenk (OTUS)]]></dc:creator>
      
      <category>go</category><category>golang</category><category>именование в Go</category><category>соглашения по именованию</category><category>идентификаторы</category><category>интерфейсы</category><category>структуры</category><category>имена пакетов</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Не угодили «Лаборатории Касперского»: как интеграция с Telegram превратила ZentrySpace во вредоносное ПО]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031516/</guid>
      <link>https://habr.com/ru/articles/1031516/?utm_campaign=1031516&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/1f1/3ec/9eb/1f13ec9eb6056e60b251c9ad144f3ce8.png" /><p>Не&nbsp;успели мы анонсировать долгожданную интеграцию ZentrySpace с&nbsp;Telegram, как&nbsp;случилось то, к&nbsp;чему нас жизнь точно не&nbsp;готовила&nbsp;— зловещее уведомление у&nbsp;скачивающих от «Лаборатории Касперского» о&nbsp;наличии трояна в&nbsp;приложении. По&nbsp;мотивам недавних реальных атак в&nbsp;Telegram, в&nbsp;борьбе с&nbsp;которыми Касперский преуспел, наши потенциальные пользователи, конечно&nbsp;же, насторожились. После получения серии отзывов о&nbsp;том, что&nbsp;ZentrySpace вредоносный и подозрительный, мы начали разбираться в&nbsp;том, что&nbsp;же могло пойти не&nbsp;так. </p> <a href="https://habr.com/ru/articles/1031516/?utm_campaign=1031516&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 07:15:45 GMT</pubDate>
      <dc:creator><![CDATA[KatNoName20]]></dc:creator>
      
      <category><![CDATA[касперский]]></category><category><![CDATA[корпоративные приложения]]></category><category><![CDATA[корпоративный мессенджер]]></category><category><![CDATA[saas-сервис]]></category><category><![CDATA[интеграция]]></category><category><![CDATA[tdlib]]></category><category><![CDATA[telegram]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я сделал сервис с Клодом, купил членство в клубе за 5 тыс и продаю на 1,5 млн в месяц. Все рассказал тут]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025984/</guid>
      <link>https://habr.com/ru/articles/1025984/?utm_campaign=1025984&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ef3/add/aa5/ef3addaa5c2b5a76ed6c3d24067353ac.png" /><p>У нас в комьюнити билдеров я постоянно вижу одну и ту же ошибку. Человек строит продукт, выкатывает, а потом идёт сливать деньги в рекламу. Экономика не сходится, продукт замораживается.</p><p>Ребята из ViralMaxing прошли этот путь на предыдущем проекте — привлекли у инвест-фонда 30 миллионов, успели влить пару миллионов в платный трафик, экономика не сошлась, проект заморозили. А потом сделали новый сервис и раскрутили его через закрытые телеграм-клубы. Вход — 5000 рублей.</p><p>Передаю слово основателю — Илье Дрозду.</p><p>В ноябре наш сервис ViralMaxing закрыл 6000 долларов ежемесячной выручки. К марту вышли на 15 000. Нас двое плюс помощница: я занимаюсь клиентами и маркетингом, мой партнёр Лёша пишет весь код. Инвестиций нет, рекламу не покупали. Расходы на инфраструктуру — около 1200 долларов в месяц.</p> <a href="https://habr.com/ru/articles/1025984/?utm_campaign=1025984&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 06:38:37 GMT</pubDate>
      <dc:creator><![CDATA[its_capitan]]></dc:creator>
      
      <category><![CDATA[стартап]]></category><category><![CDATA[запуск проекта]]></category><category><![CDATA[запуск стартапов]]></category><category><![CDATA[запуск приложений]]></category><category><![CDATA[создание бизнеса]]></category><category><![CDATA[монетизация проекта]]></category><category><![CDATA[сервисы]]></category><category><![CDATA[видео]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мы увязли в Feature‑Sliced Design]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/T1Holding/articles/1028836/</guid>
      <link>https://habr.com/ru/companies/T1Holding/articles/1028836/?utm_campaign=1028836&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/dbc/cd2/76c/dbccd276c7542b4b40a68e3a8c0a7c20.png" /><p>Всем привет, меня зовут Сергей Сибара, я фронтенд-разработчик в ИТ-холдинге Т1. Эта статья — продолжение предыдущей: <a href="https://habr.com/ru/companies/T1Holding/articles/976220/">Мой справочник по Feature-Sliced Design</a>. На этот раз я рассмотрю, как по моему субъективному мнению улучшить файловую структуру проекта, нарушая рекомендации FSD<a href="https://fsd.how/ru/docs/get-started/overview/"> </a>— архитектурной методологии для проектирования фронтенд-приложений.</p><p>В конце статьи есть <a href="https://habr.com/ru/companies/T1Holding/articles/1028836/#15">ссылки </a>на другие подходы к организации файловой структуры фронтенд-приложений.</p> <a href="https://habr.com/ru/articles/1028836/?utm_campaign=1028836&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 06:27:16 GMT</pubDate>
      <dc:creator><![CDATA[strannik_k (ИТ-холдинг Т1)]]></dc:creator>
      
      <category><![CDATA[react]]></category><category><![CDATA[react.js]]></category><category><![CDATA[vue]]></category><category><![CDATA[vue.js]]></category><category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[feature-sliced design]]></category><category><![CDATA[fsd]]></category><category><![CDATA[frontend]]></category><category><![CDATA[веб-разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я сделал приложение за вечер без навыков программирования. Зачем теперь разработчики?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031410/</guid>
      <link>https://habr.com/ru/articles/1031410/?utm_campaign=1031410&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0b0/1ab/09d/0b01ab09d6f2b3c4a71c6bc4a9cfe3e7.jpg" /><p>Я работаю проджект‑менеджером в&nbsp;крупной IT‑компании. Я за&nbsp;вечер сделал то, на&nbsp;что&nbsp;раньше ушло&nbsp;бы несколько месяцев работы целой команды. И этот опыт полностью поменял мое отношение к&nbsp;роли разработчика.</p> <a href="https://habr.com/ru/articles/1031410/?utm_campaign=1031410&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 19:55:18 GMT</pubDate>
      <dc:creator><![CDATA[vital_pavlenko]]></dc:creator>
      
      <category><![CDATA[сатира]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Автоматический скоринг поставщиков в агрохолдингах: как цифровой след компании влияет на результат тендера]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031226/</guid>
      <link>https://habr.com/ru/articles/1031226/?utm_campaign=1031226&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4fc/a65/22c/4fca6522c4b36a90354a93b13bf0bfb9.jpeg" /><p>Представьте систему, в&nbsp;которой решение о&nbsp;многомиллионной сделке принимается без&nbsp;участия продавца&nbsp;— пока тот ждёт ответного звонка. Именно так работает цифровая проверка контрагентов в&nbsp;российском агробизнесе 2024–2025&nbsp;годов.</p><p>И это не&nbsp;алгоритм какого‑то стартапа. Это то, что&nbsp;происходит в&nbsp;Excel‑таблице службы безопасности агрохолдинга каждый раз, когда закупщик передаёт новый ИНН.</p> <a href="https://habr.com/ru/articles/1031226/?utm_campaign=1031226&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 12:58:34 GMT</pubDate>
      <dc:creator><![CDATA[webformula]]></dc:creator>
      
      <category><![CDATA[Агробизнес]]></category><category><![CDATA[B2B]]></category><category><![CDATA[сайт компании]]></category><category><![CDATA[цифровая проверка]]></category><category><![CDATA[маркетинг]]></category><category><![CDATA[репутация]]></category><category><![CDATA[поставщики]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[WebMCP. Что скрывается за черновиком стандарта]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031164/</guid>
      <link>https://habr.com/ru/articles/1031164/?utm_campaign=1031164&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/91c/552/ee0/91c552ee0419f274ab1a2a1414afaced.jpg" /><p>Действия ИИ-агента в браузере через скриншоты и клики — минута и десятки центов. Через WebMCP — секунды и доли цента. Два порядка разницы.</p><p>Так что же под этим черновиком стандарта WebMCP и куда он нас ведёт?</p> <a href="https://habr.com/ru/articles/1031164/?utm_campaign=1031164&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 11:15:48 GMT</pubDate>
      <dc:creator><![CDATA[vpikulev]]></dc:creator>
      
      <category><![CDATA[webmcp]]></category><category><![CDATA[mcp]]></category><category><![CDATA[ии-агенты]]></category><category><![CDATA[javascript]]></category><category><![CDATA[agentic web]]></category><category><![CDATA[фронтенд]]></category><category><![CDATA[chrome]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы сделали SEO-блог из 84 страниц на трёх языках через Claude API: рабочий рецепт и вещи, которые пошли не так]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031082/</guid>
      <link>https://habr.com/ru/articles/1031082/?utm_campaign=1031082&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/818/0c6/af1/8180c6af1995def1bf22835e95a865de.png" /><p>Делимся рабочим рецептом: SEO‑блог на 84&nbsp;страницах в&nbsp;трёх языках (RU/KK/EN) через Claude API за&nbsp;три дня. Внутри&nbsp;— почему мы храним статьи как&nbsp;TypeScript‑объекты вместо Markdown, как&nbsp;собрать system prompt на 360&nbsp;строк, чтобы Claude корректно ставил internal‑ссылки, как&nbsp;генерим уникальные OG‑обложки через Gemini + PIL, и где AI стабильно косячит те 30% работы, которые всё равно делает человек.</p> <a href="https://habr.com/ru/articles/1031082/?utm_campaign=1031082&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 09:16:30 GMT</pubDate>
      <dc:creator><![CDATA[LevAvdoshin]]></dc:creator>
      
      <category><![CDATA[Claude API]]></category><category><![CDATA[Anthropic]]></category><category><![CDATA[SEO]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[AI-генерация контента]]></category><category><![CDATA[промпт-инжиниринг]]></category><category><![CDATA[hreflang]]></category><category><![CDATA[мультиязычный
  сайт]]></category><category><![CDATA[автоматизация контента]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Поведение как новый критерий идентификации пользователя. Кибербезопасность в эпоху ИИ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/wunderfund/articles/1028648/</guid>
      <link>https://habr.com/ru/companies/wunderfund/articles/1028648/?utm_campaign=1028648&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/311/dcb/09c/311dcb09c3b0d091dc52f353d64ec353.png" /><p>Мы живём в эпоху смены парадигмы взаимодействия человека с сетевыми системами, смены того, как люди подтверждают то, что они те, за кого себя выдают. Главные вопросы, которые всегда задавали пользователям, звучали так: «Что вы знаете?» (пароль, PIN-код, девичья фамилия матери), или «Как вы выглядите?» (Face ID, отпечатки пальцев). Теперь же на первый план выходит такой вопрос: «Как вы себя ведёте?».</p><p>В наши дни развитие генеративного ИИ и прогресс в разработке вредоносного ПО, вроде RAT (Remote Access Trojan, троян удалённого доступа), позволили киберпреступникам проводить широкомасштабные атаки и даже обходить такие механизмы безопасности, как Face ID или MFA (Multi-Factor Authentication, многофакторная аутентификация, МФА), которые ранее считались «пуленепробиваемыми».</p><p>В наши дни анализ поведенческой биометрии становится стандартным подходом к обеспечению безопасности в банках, ответственных за покрытие убытков от киберпреступлений. Этот подход используется в тех случаях, когда внедрённые банками меры безопасности не способны гарантировать защиту от проблем, характерных для новых схем мошенничества.</p> <a href="https://habr.com/ru/articles/1028648/?utm_campaign=1028648&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 08:30:28 GMT</pubDate>
      <dc:creator><![CDATA[mr-pickles (Wunder Fund)]]></dc:creator>
      
      <category>кибербезопасность</category><category>искусственный интеллект</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Code Review Horror Stories. Часть 1: Concurrency &amp; Memory в Go-сервисе]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031010/</guid>
      <link>https://habr.com/ru/articles/1031010/?utm_campaign=1031010&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><em>Продолжение </em><a href="https://habr.com/ru/articles/1030108/" rel="noopener noreferrer nofollow"><em>прошлой статьи про ошибки на Go-собесах</em></a><em>. В тот раз — про лайв-кодинг. Теперь — про code review: когда дают готовый сервис на ~150 строк и говорят “найди что не так, у тебя 30 минут”.</em></p><p><em>Разберём по косточкам реальный код с собеседования — микросервис трекинга рекламных кликов. Багов набралось 21, поэтому делю на две части. Первая — про самое страшное: concurrency, гонки, утечки памяти и горутин. Это то, что роняет сервис в проде. Часть 2 — про API design, ошибки и graceful shutdown — выйдет следом. Актуально для Go 1.26.</em></p><p><em>Из 21 бага на собесе я нашёл 18. Три самых тонких пропустил — потом, дома, перечитал спокойно и выписал. В этой части про concurrency пропустил один — TOCTOU race в дедупликации. Остальные семь — поймал. Расскажу как искал и какими красными флагами зацепился.</em></p> <a href="https://habr.com/ru/articles/1031010/?utm_campaign=1031010&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 07:17:21 GMT</pubDate>
      <dc:creator><![CDATA[Zmey56]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[golang]]></category><category><![CDATA[code review]]></category><category><![CDATA[собеседование]]></category><category><![CDATA[конкурентность]]></category><category><![CDATA[goroutine]]></category><category><![CDATA[race condition]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как сайты собирают цифровой отпечаток пользователя — почему VPN больше не спасает (О Fingerprinting)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030226/</guid>
      <link>https://habr.com/ru/articles/1030226/?utm_campaign=1030226&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4f9/81c/217/4f981c2179547a60850633d3201af6bd.png" /><p>Я раньше был уверен, что понимаю, как работает отслеживание в интернете. Очистил cookies - чист. Включил VPN - спрятался. Поставил блокировщик - стал почти невидимым. Звучит логично, правда?</p><p>Проблема в том, что всё это работает только на уровне, который уже давно не является основным.</p><p>Современные сайты не обязательно знают, кто ты. Им это и не нужно. Достаточно собрать достаточно признаков, чтобы отличить тебя от всех остальных. Версия браузера, разрешение экрана, поведение мыши, особенности рендеринга графики, сетевые характеристики - по отдельности это просто параметры. Но вместе они превращаются в отпечаток, который оказывается гораздо устойчивее, чем кажется.</p><p>И самое неприятное - этот отпечаток можно получить без <strong>cookies</strong>, без авторизации и даже без твоего явного согласия. Ты можешь открыть сайт впервые, но для системы ты уже «кто-то знакомый».</p><p>Когда я начал разбираться в теме глубже, оказалось, что классические методы вроде <strong>Canvas</strong> или <strong>WebGL</strong> - это лишь вершина айсберга. Под ними скрывается целый слой менее очевидных техник: тайминговые атаки, сетевые отпечатки, поведенческие модели и даже попытки идентификации на уровне конкретного железа.</p><p>В этой статье я разберу, какие данные реально собирает браузер, как из них строится цифровой отпечаток и почему простые меры вроде VPN не дают той анонимности, на которую многие рассчитывают.</p> <a href="https://habr.com/ru/articles/1030226/?utm_campaign=1030226&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать о fingerprinting</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 05:30:04 GMT</pubDate>
      <dc:creator><![CDATA[PetrVasilchenko]]></dc:creator>
      
      <category><![CDATA[антифрод]]></category><category><![CDATA[fingerprinting]]></category><category><![CDATA[цифровой отпечаток]]></category><category><![CDATA[браузерный отпечаток]]></category><category><![CDATA[отслеживание пользователей]]></category><category><![CDATA[приватность]]></category><category><![CDATA[анонимность в интернете]]></category><category><![CDATA[canvas fingerprint]]></category><category><![CDATA[webgl fingerprint]]></category><category><![CDATA[трекинг пользователей]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030854/</guid>
      <link>https://habr.com/ru/articles/1030854/?utm_campaign=1030854&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a7b/d23/5d7/a7bd235d78487262dfe8c93069afaa53.png" /><p>Привет, Хабр.</p><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> <a href="https://habr.com/ru/articles/1030854/?utm_campaign=1030854&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 14:46:13 GMT</pubDate>
      <dc:creator><![CDATA[grokfrog]]></dc:creator>
      
      <category><![CDATA[E2EE]]></category><category><![CDATA[мессенджер]]></category><category><![CDATA[Spring Boot]]></category><category><![CDATA[X3DH]]></category><category><![CDATA[криптография]]></category><category><![CDATA[WebSocket]]></category><category><![CDATA[Java]]></category><category><![CDATA[шифрование]]></category><category><![CDATA[Signal Protocol]]></category><category><![CDATA[WebCrypto]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Дуров стену не вернул, поэтому я написал свою – агрегатор Telegram-каналов на Telethon]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030702/</guid>
      <link>https://habr.com/ru/articles/1030702/?utm_campaign=1030702&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/788/8e7/61d/7888e761d759b4ce2ddd1d4ee08bdda5.jpg" /><p>«Дуров, верни стену» – мем старый, но точный. ВКонтакте начала 2010-х была, при всех своих недостатках, одним из последних мест в рунете с по-настоящему живой лентой. Не алгоритмической, не персонализированной до тошноты – просто всё подряд от всех, на кого подписан. Новости соседствовали с мемами, мемы – с чьей-то репостнутой статьёй про квантовую физику, которую ты никогда не дочитаешь, но пролистаешь с удовольствием. Была случайность, была живость, был сам факт того, что ты не знаешь, что увидишь следующим.</p><p>Потом ВК превратился в то, во что превращается каждая платформа – в алгоритмический прямоугольник, оптимизированный под время на сайте. Мы переехали в Telegram. Telegram честнее: хронологический порядок, никакого умного ранжирования, читаешь то, на что подписался. Но одна вещь так и не появилась – единая лента. В ВК у тебя была стена, куда всё стекалось само. В Telegram двадцать каналов – это двадцать отдельных мест, которые надо обходить руками каждый день.</p><p>Папки? Пробовал. Папки – это шкаф. Они раскладывают каналы по полочкам, но за каждой полкой всё равно надо открывать каждый ящик отдельно. Единого потока нет.</p><p>Ботов-агрегаторов в маркете штук пять – все сломаны по одной и той же причине: Bot API физически не видит каналы, в которых бот не является администратором. То есть публичный новостной канал с миллионом подписчиков – недоступен. Бот читает только то, куда его добавили руками, а никто не добавляет чужих ботов в админы своих каналов. Логично, но бесполезно.</p><p>В какой-то момент я окончательно устал и собрал своё.</p> <a href="https://habr.com/ru/articles/1030702/?utm_campaign=1030702&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 02 May 2026 18:16:16 GMT</pubDate>
      <dc:creator><![CDATA[kommunizm01]]></dc:creator>
      
      <category><![CDATA[telegram]]></category><category><![CDATA[telethon]]></category><category><![CDATA[mtproto]]></category><category><![CDATA[rss]]></category><category><![CDATA[self-hosted]]></category><category><![CDATA[fastapi]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[open source]]></category><category><![CDATA[агрегатор]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Baseline: апрель 2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028616/</guid>
      <link>https://habr.com/ru/articles/1028616/?utm_campaign=1028616&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d4d/135/8a6/d4d1358a67e0a6e6899e443439a457d3.png" /><p>Обзор на браузерные API, которые стали <strong>Widely available</strong> в апреле 2026. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.</p><p>Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем.  </p><p>2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.</p> <a href="https://habr.com/ru/articles/1028616/?utm_campaign=1028616&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Узнать, что можно применять в проде</a>]]></description>
      
      <pubDate>Fri, 01 May 2026 16:31:19 GMT</pubDate>
      <dc:creator><![CDATA[nikolayshabalin]]></dc:creator>
      
      <category><![CDATA[baseline]]></category><category><![CDATA[widely available]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
