<?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/flows/develop/posts/all/</link>
    <description><![CDATA[Все посты в потоке Разработка на Хабре]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Thu, 30 Apr 2026 14:35:45 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[Пост @Editor_cloud_ru — Блог компании Cloud.ru (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/cloud_ru/posts/1029714/</guid>
    <link>https://habr.com/ru/companies/cloud_ru/posts/1029714/?utm_campaign=1029714&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Гига-помощник в облаке теперь закрывает DevOps-, SRE- и FinOps-задачи: что нового</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/cd1/cf3/328/cd1cf3328e0f98ae968e7c40e8efb517.png" width="1560" height="880"></figure><p>Рассказываем про большое обновление ИИ-помощника, встроенного в консоль Cloud.ru. В этом релизе расширили возможности работы с виртуальными машинами и добавили три специализированных сценария.</p><p><strong>🖥️Несколько ВМ в разных конфигурациях</strong></p><p>Гига-помощник научился создавать сразу несколько виртуальных машин за один запрос и управлять ими по команде: может добавлять и удалять диски, менять конфигурации и выполнять другие повседневные операции. Теперь вы сможете легким движением руки развернуть сразу dev, stage и prod или подготовить все необходимое для нагрузочного тестирования.&nbsp;</p><p><strong>🤖Три новых сценария&nbsp;</strong></p><p>Теперь у вас прямо в консоли есть три&nbsp;«подчиненных», которые проследят за тем, чтобы все шло как надо:</p><ul><li><p>🛠&nbsp;<strong>DevOps-агент</strong>&nbsp;— разворачивает и обслуживает популярные сервисы по текстовому промпту: PostgreSQL, Kafka, WordPress, GitLab и другие. Не нужно держать в голове порядок шагов или обращаться к документации, достаточно описать задачу.</p></li><li><p>📡&nbsp;<strong>SRE-агент</strong>&nbsp;— настраивает мониторинг и алертинг, а также помогает разбирать инциденты. Удобен, когда нужно быстро поднять наблюдаемость для нового сервиса или разобраться в причинах сбоя.</p></li><li><p>💰&nbsp;<strong>FinOps-агент</strong>&nbsp;— находит забытые и неиспользуемые ВМ и предлагает их удалить, чтобы исключить лишние расходы. Показывает топ дорогих ресурсов и позволяет сравнивать траты за разные периоды.</p></li></ul><p><a href="https://console.cloud.ru/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=giga_renewal_30042026" rel="noopener noreferrer nofollow">Ищите Гига-помощника в правом нижнем углу главной страницы&nbsp;консоли</a></p> <a href="https://habr.com/ru/posts/1029714/?utm_campaign=1029714&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 14:23:12 GMT</pubDate>
    <dc:creator><![CDATA[Editor_cloud_ru (Cloud.ru)]]></dc:creator>
      
      <category><![CDATA[агентные системы]]></category><category><![CDATA[искусственный интеллект]]></category><category><![CDATA[ai]]></category><category><![CDATA[ml]]></category><category><![CDATA[devops]]></category><category><![CDATA[разработка]]></category><category><![CDATA[cloudnative]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @GlinkinIvan — Информационная безопасность (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030052/</guid>
    <link>https://habr.com/ru/posts/1030052/?utm_campaign=1030052&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/baa/214/d31/baa214d31e7167e2bc2ae86c1a8c21f1.PNG" width="1179" height="2556"></figure><p>Коллеги-бумажные инфобезники, у меня к вам тема на поразмыслить. У каждого из нас есть мобильный телефон, в котором имеется телефонная книга и куда мы записываем телефон, фио и иные персональные данные конкретного человека. По сути, с момента нажатия на кнопку “Сохранить” мы начинаем обработку персональных данных (запись, систематизация, накопление, хранение) и должны руководствоваться 152-ФЗ. Но есть пару нюансов.</p><p>Во-первых, в соответствии с п. 1 ч. 2 ст. 1 Федерального закона, действие последнего не распространяются на отношения, возникающие при обработке ПДн физическими лицами исключительно для личных и семейных нужд. Простыми словами, если у нас в контактах исключительно родственники и друзья, то нам нечего переживать.</p><p>А что если я работаю, например, менеджером по продажам и у меня записаны сотни телефонов клиентов и подрядчиков? В данном случае может ли быть применен п. 5 ч. 1 ст. 6 ФЗ-152, в соответствии с которым обработка ПДн допускается для исполнения договора, стороной которого либо выгодоприобретателем или поручителем по которому является субъект персональных данных?</p><p>В продолжении темы: я хочу записать в свою телефонную книгу всех граждан страны (сейчас не рассматриваем технологические ограничения на объем памяти), включая их фио, телефоны, даты рождения, адреса и другую важную для меня информацию. Естественно, я их лично всех не знаю и мне они не нужны для работы. Я не собираюсь передавать их третим лицам или использовать в качестве рекламы. Я просто хочу знать кто мне звонит 😉 (по сути, использовать для личных нужд). Это законно?</p><p>С одной стороны, речь идёт о всех гражданах страны и фактические подразумевает массовый сбор и создание базы данных. С другой стороны, а как мне определить число, что это пока еще личные цели, но еще не массовость и, соответсвенно, наоборот: это уже массовый сбор и не подпадает под личные нужды? Кроме того, если мой номер телефона был “слит” в интернет, я такого согласия не давал, но люди записали его себе в справочник: будет ли это нарушением закона как незаконный сбор ПДн?</p><p>В общем, ситуация простая, а вопросов много. Предлагаю подискутировать по данному вопрос и уже наконец-то определиться, нужно ли брать согласие субъекта на обработку персональных данных перед добавлением контакта человека в свой телефон? ;)</p><p>🧠 Обязательно поделись с&nbsp;теми, кому это может&nbsp;быть полезно: 💬 <a href="https://t.me/glinkinivan" rel="noopener noreferrer nofollow">Телеграм</a> | 💬 <a href="https://max.ru/join/Htn3rk5JAiZe0wsBPadSoHj7Y-P1uTuQnViRCssj70s" rel="noopener noreferrer nofollow">Max</a> | 📝 <a href="https://habr.com/ru/users/GlinkinIvan/" rel="noopener noreferrer nofollow">Хабр</a> | 💙 <a href="https://vk.com/glinkinivan" rel="noopener noreferrer nofollow">ВКонтакте</a></p> <a href="https://habr.com/ru/posts/1030052/?utm_campaign=1030052&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 13:00:38 GMT</pubDate>
    <dc:creator><![CDATA[GlinkinIvan]]></dc:creator>
      
      <category><![CDATA[152]]></category><category><![CDATA[152-фз]]></category><category><![CDATA[телефон]]></category><category><![CDATA[книга]]></category><category><![CDATA[согласие]]></category><category><![CDATA[личные нужды]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @hatman — Проектирование API — 30.04.2026 15:51]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030142/</guid>
    <link>https://habr.com/ru/posts/1030142/?utm_campaign=1030142&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class=""><img src="https://habrastorage.org/webt/f2/83/c7/f283c7b617b369a83c9f8f26faf785d4.png"></figure><p>Финальная книга на тему разработки публичных API: «API как искусство: разработка, поддержка, интеграция» [2025] — Сергей Константинов. Книга бывшего руководителя сервиса «Яндекс.Карты», которую можно назвать самой практичной, самой приземлённой и наиболее требовательной к квалификации читателя.</p><p>В отличие от книг, про которые я писал в предыдущих постах, она начинается сразу с девелоперской точки зрения. Как хороший архитектор, автор предлагает различные варианты реализации API, а потом говорит: «Миша, всё фигня, давай по новой» — и объясняет, почему.</p><p>Книжку нужно читать внимательно, так как автор часто приводит ссылки на свои же рассуждения и выводы из предыдущих глав. Однако для ленивого читателя он приводит методички по различным моментам проектирования API — например, «Вот 30 правил хорошего API», — тщательно поясняя, почему считает именно так.</p><p>Из интересного: поскольку автор работал в «Яндекс.Картах», он уделил целый раздел разработке SDK и UI-клиентских библиотек. Разработчикам, которые занимаются только server-side API, этот раздел, возможно, не нужен, но тем, кому это актуально, подобный материал нигде, кроме этой книги, не найти.</p><p>Отдельно хочется отметить, что автор позволяет себе язвительные ремарки по поводу некоторых решений публичных API. Эти комментарии раскрывают его большой опыт и подтверждают, что он действительно «повидал некоторое дерьмо».</p><p>Из минусов хочется сказать, что в книге не хватает теоретической базы: что такое хорошее API, какое должно быть целеполагание при его разработке и как вести документацию надлежащим образом.</p><p>Поэтому я бы сказал так: первой книгой по проектированию API стоит читать «Проектирование веб-API» от Лоры Арно. А уже на эту базу — книгу Сергея с большим количеством практических примеров и кейсов из реальной жизни.</p><p>Это хорошая книга, которая заслуживает покупки и прочтения!</p><p>P. S. Возможно, в следующих изданиях книги стоит части 4 и 6 перенести в начало, вместо их текущей позиции. Тогда книжка будет идти от простого к сложному более предсказуемо.</p> <a href="https://habr.com/ru/posts/1030142/?utm_campaign=1030142&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 12:51:54 GMT</pubDate>
    <dc:creator><![CDATA[hatman]]></dc:creator>
      
      <category><![CDATA[api]]></category><category><![CDATA[книги]]></category><category><![CDATA[обучение]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dvpt — GitHub — 30.04.2026 15:12]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030124/</guid>
    <link>https://habr.com/ru/posts/1030124/?utm_campaign=1030124&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Платформа «Генеалогия семьи онлайн» — это онлайн база родословной информации семьи. Создана для исследования и сохранения исторического наследия предков. И призвана объединить всех родственников по всему Миру. Содержит список членов семей и их родственные связи. Фотографии и копии документов. Каждый член семьи может вносить свой вклад и обновлять информацию из любой точки мира. Вся информация хранится на вашем семейном веб-сайте в генеалогических карточках. Платформа сайта находится на GitHub <a href="https://github.com/dvpt1/genealogy-family-online" rel="noopener noreferrer nofollow">https://github.com/dvpt1/genealogy-family-online</a> Платформа полностью бесплатная. Ее можно свободно скачать и установить на свой сайт. Инструкция по установке находится там же.﻿&nbsp;Платформа имеет веб-интерфейс для доступа к базе данных из веб-браузеров и приложений. ﻿Историю и взаимосвязи в семье можно посмотреть с помощью генеалогических отчетов: генеалогические деревья, генеалогическое дерево, генеалогическая ветвь, генеалогические кольца, генеалогическая карта, список поколений, календарь дат.&nbsp;В фотоальбоме фотографии и копии документов персоны.</p><p>Поддержать проект <a href="https://planeta.ru/campaigns/genealogy-online" rel="noopener noreferrer nofollow">https://planeta.ru/campaigns/genealogy-online</a></p> <a href="https://habr.com/ru/posts/1030124/?utm_campaign=1030124&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 12:12:53 GMT</pubDate>
    <dc:creator><![CDATA[dvpt]]></dc:creator>
      
      <category><![CDATA[генеалогия]]></category><category><![CDATA[история]]></category><category><![CDATA[семья]]></category><category><![CDATA[семья и дети]]></category><category><![CDATA[семьянин]]></category><category><![CDATA[наследие]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @SimpleOne_it — Блог компании SimpleOne (+3) — 30.04.2026 14:42]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/simpleone/posts/1030102/</guid>
    <link>https://habr.com/ru/companies/simpleone/posts/1030102/?utm_campaign=1030102&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Как SimpleMES создала универсальную MES-систему на базе платформы SimpleOne за 1,5 года</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/60f/5c3/b16/60f5c3b16d7648761cc16ae00c0bd7d0.png" width="1280" height="720"></figure><p><strong>По мере работы с MES-проектами команда сталкивалась с типичными проблемами:</strong></p><ul><li><p>Каждое внедрение превращалось в отдельный проект </p></li><li><p>Рос технический долг </p></li><li><p>Решения было сложно масштабировать </p></li><li><p>Зависимость от узкоспециализированных разработчиков тормозила развитие</p></li></ul><p>Рынку не хватало универсального платформенного решения — приходилось либо дорабатывать системы под каждую отрасль, либо использовать несколько вендоров.</p><p>Решением стало создание собственного продукта на базе <a href="https://simpleone.ru/low-code" rel="noopener noreferrer nofollow">единой технологической платформы SimpleOne</a>.</p><p>Платформа позволила сразу заложить ключевые требования: гибкость Low-code, возможность глубокой кастомизации через Pro-code, масштабируемость и независимость от редких специалистов.</p><p>Команда использовала полный стек возможностей платформы: workflow, кастомные скрипты, API, очереди сообщений и собственные виджеты.</p><blockquote><p>«История создания SimpleMES для нас показательна: она демонстрирует настоящую универсальность и потенциал платформы. Команда смогла построить промышленную MES‑систему без опоры на узкоспециализированный стек, используя только Low‑code инструменты и архитектуру SimpleOne. Такие возможности помогают бизнесу запускать сложные продукты быстро, системно и без чрезмерных затрат — на единой платформе, которая изначально создавалась не только для сервисных процессов, но для любых бизнес‑процессов и корпоративных приложений»</p><p>Илья Радченко, Директор по платформенным продуктам SimpleOne</p></blockquote><p>О результатах и дальнейших планах развития<a href="https://simpleone.ru/cases/simplemes-creating-a-universal-mes-system" rel="noopener noreferrer nofollow"> читайте в кейсе на сайте</a></p><p>У вас был опыт внедрения MES или других производственных систем?</p> <a href="https://habr.com/ru/posts/1030102/?utm_campaign=1030102&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 11:42:13 GMT</pubDate>
    <dc:creator><![CDATA[SimpleOne_it (SimpleOne)]]></dc:creator>
      
      <category><![CDATA[simpleone]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MeLiza_Beth — Блог компании PVS-Studio (+1) — 30.04.2026 14:33]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/pvs-studio/posts/1030096/</guid>
    <link>https://habr.com/ru/companies/pvs-studio/posts/1030096/?utm_campaign=1030096&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Тихий враг или молчаливый союзник? Коротко о выравнивании в C++. Часть 3 </strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/595/7c4/284/5957c4284de4c393cd96e36170d73858.png" width="1600" height="902"></figure><p>Мы уже разобрали базовое выравнивание полей и изучили, как наследование наслаивает данные друг на друга. Казалось бы, теперь-то всё — все ловушки изучены. Но не тут-то было! Есть у этой темы ещё одна, по-настоящему тёмная сторона, про которую не так часто говорят. </p><p>Одно короткое слово virtual полностью переписывает "геометрию" класса, внося в выравнивание свои коррективы, которые трудно игнорировать. Давайте разберёмся, что на самом деле происходит под капотом, когда выравнивание сталкивается <a href="https://pvs-studio.ru/ru/blog/posts/cpp/1369/" rel="noopener noreferrer nofollow">с виртуальностью</a>.</p> <a href="https://habr.com/ru/posts/1030096/?utm_campaign=1030096&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 11:33:07 GMT</pubDate>
    <dc:creator><![CDATA[MeLiza_Beth (PVS-Studio)]]></dc:creator>
      
      <category><![CDATA[pvs-studio]]></category><category><![CDATA[alignment]]></category><category><![CDATA[virtual]]></category><category><![CDATA[padding]]></category><category><![CDATA[c++]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @radionov_me — Веб-разработка — 30.04.2026 13:53]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030078/</guid>
    <link>https://habr.com/ru/posts/1030078/?utm_campaign=1030078&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Make something agents want!</p><p>Y combinator выпустили <a href="https://www.ycombinator.com/rfs" rel="noopener noreferrer nofollow">вишлист для стартапов на лето 2026</a></p><p>Одна из мыслей, простых и доступных любому бизнесу — делать свой бизнес доступным агентам, не только людям. Менять формы и кнопки на API и MCP. Я говорю об этом уже давно. Будущее уже наступило, просто оно распределено неравномерно.</p> <a href="https://habr.com/ru/posts/1030078/?utm_campaign=1030078&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 10:53:04 GMT</pubDate>
    <dc:creator><![CDATA[radionov_me]]></dc:creator>
      
      <category><![CDATA[ycombinator]]></category><category><![CDATA[mcp]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @shanker — Habr (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030050/</guid>
    <link>https://habr.com/ru/posts/1030050/?utm_campaign=1030050&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Brave (точнее, Brave Shields) удаляет ссылки на Дзен</strong></p><p>Авторам статей - пища для ума: стоит ли использовать ссылки на Дзен, если они не отобразятся у некоторых пользователей? При создании статьи <a href="https://habr.com/ru/articles/927672/" rel="noopener noreferrer nofollow">Как я зарегистрировал CVE и разозлил вендора</a> обратил внимание, что ссылка на статью в Дзен исчезла. Текст в браузере выглядит так (ссылка в скобках):</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/015/1c8/e8e/0151c8e8ed5022eb06101423419847bc.png" alt="От ссылки остались лишь скобочки" title="От ссылки остались лишь скобочки" width="1454" height="230"><div><figcaption>От ссылки остались лишь скобочки</figcaption></div></figure><p>А полный текст вот:</p><blockquote><p><strong>Дисклеймер</strong>:&nbsp;<em>в статье приведены скриншоты из моих личных переписок с разработчиками. Публикация таких переписок одной из сторон не требует согласия другой (</em><a href="https://dzen.ru/a/XER1fOu65QCsZGnD" rel="noopener noreferrer nofollow"><em>согласно законодательства РФ</em></a><em>)</em>.</p></blockquote><p>Статья вышла ещё в прошлом году. Несколько раз я пытался отредактировать статью и вернуть ссылку - ничего не выходило. Я уже даже заподозрил, что администрации Хабра чем-то не по нраву Дзен (и даже искал правила Хабра, чтоб понять причину). В итоге как-то всё забылось. Ответ нашёлся недавно. Решил подать статью в <a href="https://habr.com/ru/technotext/8/" rel="noopener noreferrer nofollow">Технотекст</a>. Вспомнил о проблеме и подумал, что это может негативно отразиться на оценке публикации в конкурсе. И тут я, наконец, догадался сделать то, что нужно было ещё почти год назад: проверил отображение в других браузерах. FF, Chrome - отображали корректно. В итоге выяснил, что проблема возникает в Brave (проверял на версиях 1.85.118 и 1.89.137) <u>при включённом Brave Shields</u>. Может ли настройка Brave Shield решить проблему не знаю - сходу не разобрался.</p> <a href="https://habr.com/ru/posts/1030050/?utm_campaign=1030050&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 10:11:02 GMT</pubDate>
    <dc:creator><![CDATA[shanker]]></dc:creator>
      
      <category><![CDATA[Brave Shields]]></category><category><![CDATA[brave браузер]]></category><category><![CDATA[brave]]></category><category><![CDATA[дзен]]></category><category><![CDATA[dzen]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @runity — Блог компании Рунити (+4) — 30.04.2026 12:34]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/runity/posts/1030030/</guid>
    <link>https://habr.com/ru/companies/runity/posts/1030030/?utm_campaign=1030030&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>В Рег.облаке запустились пользовательские образы</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/b91/f53/953/b91f5395303e2e6a3196f033d49c05d9.png" width="1620" height="1080"></figure><p>Переезд в облако больше не влечет за собой пересборку инфраструктуры. Теперь достаточно снять образ диска с текущего сервера, загрузить его через S3-совместимый интерфейс, запустить ВМ — и все пакеты, конфиги и настройки сервисов переедут вместе с системой.</p><p>Поддерживаются форматы qcow2 и raw, максимальный размер образа — 30 ГБ (по запросу в поддержку увеличим). Пригодится не только для миграции: на пользовательских образах удобно собирать golden image, разворачивать кастомные сборки ОС и автоматизировать всё через CI/CD.</p><p>Все подробности о пользовательских образах —<a href="https://reg.cloud/apps/custom-images?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=customimages" rel="noopener noreferrer nofollow"> на сайте Рег.облака</a>.</p> <a href="https://habr.com/ru/posts/1030030/?utm_campaign=1030030&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 09:34:26 GMT</pubDate>
    <dc:creator><![CDATA[runity (Рунити)]]></dc:creator>
      
      <category><![CDATA[рег.облако]]></category><category><![CDATA[виртуальный сервер]]></category><category><![CDATA[облако]]></category><category><![CDATA[миграция в облако]]></category><category><![CDATA[s3]]></category><category><![CDATA[s3server]]></category><category><![CDATA[s3-хранилище]]></category><category><![CDATA[инфрастуктура]]></category><category><![CDATA[инфраструктура it-компании]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @plaksina_ekaterina20 — Блог компании Далее (+1) — 30.04.2026 11:28]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/dalee_group/posts/1029980/</guid>
    <link>https://habr.com/ru/companies/dalee_group/posts/1029980/?utm_campaign=1029980&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong><abbr class="habraabbr" title="" data-title="&lt;p&gt;&lt;/p&gt;" data-abbr="Как настроить доступ к Избранному — без ЛК и авторизации на сайте">Как настроить доступ к Избранному — без ЛК и авторизации на сайте</abbr></strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/48c/19b/528/48c19b528eaa3fc82bafd9b88fafb4be.png" width="1664" height="928"></figure><p>Привет, Хабр! Меня зовут Катя Плаксина, я фронтенд-разработчик в <a href="https://clck.ru/3TNF6b" rel="noopener noreferrer nofollow">Далее</a>. Хочу поделиться решением, которое позволило реализовать возможность сохранения в Избранное без авторизации для пользователей одного крупного портала. <br><br>Почему стало необходимо реализовать такое решение? Во-первых, необходимость авторизации —&nbsp;одна из причин высоких отказов на сайте. Таким образом, мы просто облегчаем путь пользователя до цели. Во-вторых, без авторизации мы не собираем персональные данные, а значит, минимизируем риски, связанные с их хранением и передачей.</p><p><strong>В чем технический вызов</strong></p><p>Если страница работает через SSR, например, на Astro, серверу нужны данные заранее. Но если весь «источник правды» лежит в localStorage, сервер их не видит — браузерное хранилище доступно только на клиенте.&nbsp;</p><p>Без дополнительной логики страница будет рендериться пустой или требовать авторизации и бэкенда. Нужен промежуточный слой, который позволит передать минимальное состояние Избранного на сервер.</p><p><strong>Разделяем хранилище на два слоя</strong></p><p>Полный стейт Избранного остается в localStorage — там можно хранить существенно больше данных, чем в cookie, и удобно управлять состоянием на клиенте.&nbsp;</p><p>Легкий SSR-снапшот размещаем в cookie, кладем только <code>favorites_preview:</code></p><ul><li><p>первые 3–4 ID в каждой категории,</p></li><li><p>активные теги,</p></li><li><p>размер.</p></li></ul><p>Сервер читает cookie и рендерит превью Избранного.</p><p><strong>Что происходит после гидратации</strong></p><p>Когда страница загрузилась, клиент сравнивает cookie и localStorage, дотягивает расхождения, корректно показывает или скрывает пустые состояния.</p><p>Чтобы избежать ошибок:</p><ul><li><p>Добавляем mounted-флаг — не используем браузерные API во время SSR.</p></li><li><p>Настраиваем синхронизацию между вкладками через системное событие storage.</p></li><li><p>Используем кастомное событие <code>favorites:changed</code> для текущей вкладки. Storage в ней не срабатывает.</p></li></ul><p>В итоге состояние Избранного остается консистентным во всех вкладках.</p><p><strong>Почему не хранить всё только в cookie</strong></p><p>Можно было ограничиться одним механизмом — хранить Избранное полностью в cookie. Но у такого подхода есть явные минусы:</p><ul><li><p>cookie ограничены по объему,</p></li><li><p>перегрузка HTTP-запросов,</p></li><li><p>неудобное управление состоянием на клиенте.</p></li></ul><p>Если хранить всё только в cookie, страдают производительность и масштабируемость решения.</p><p><strong>Что получаем в итоге</strong></p><ul><li><p>На клиенте остается полноценное управление состоянием через localStorage.</p></li><li><p>Страница рендерится сразу с данными. Сервер читает легкий снэпшот из cookie и формирует превью избранного ещё до загрузки клиента.</p></li></ul><p>Пользователь может вернуться к Избранному даже на следующий день — при заходе с того же устройства и браузера.<br><br>Буду рада узнать о вашем опыте реализации подобных задач в комментариях. </p> <a href="https://habr.com/ru/posts/1029980/?utm_campaign=1029980&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 08:28:44 GMT</pubDate>
    <dc:creator><![CDATA[plaksina_ekaterina20 (Далее)]]></dc:creator>
      
      <category><![CDATA[ssr]]></category><category><![CDATA[cookies]]></category><category><![CDATA[astro]]></category><category><![CDATA[javascript]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @ova450 — Интерфейсы (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029944/</guid>
    <link>https://habr.com/ru/posts/1029944/?utm_campaign=1029944&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>ИИ: Гонки на лафетах</p><p>Всего лишь иллюстрация. Примерно год-полтора назад решил я выбрать - deepseek или chatgpt. И выбрал deepseek. Однако через некоторое время стал обращать внимание не его лютый подхалимаж, что, кстати, не раз уже обыграли в различных мемах. Не в отношении deepseek, а относительно AI в общем.<br>Проблему обсудил и с deepseek, и с windows copilot (chatgpt был благополучно забыт). Deepseek стал подхалимски юлить, мол да, copilot хорош и все такое. Copilot же оправдал Deepseek - мол это такая технология поддержки энтузиазма в клиенте. Между прочим тонко намекнув, что сам-то он лучше и глубже. Но это присказка, сказка впереди.<br>В процессе завершения разработки обертки над EntityFramework попросил оценить проект сразу четверых: deepseek, copilot, chatgpt и grok. Результат ожидаем - сыровато, но в продакшн годно, оценки 4.5/5 и 7/10. <br>Претензии разные, существенных практически не было, но в одно они уперлись хором - "тяжелые" интерфейсы. Подробности опущу, это было семейство generic-интерфейсов со многими типами. Что-то вроде IInterface(T1), IInterface(T1,T2) и так далее, пока не надоест.<br>Несколько итераций я эти наезды игнорировал, но AI не унимались. Уже и оценки до 9/10 дошли, но проблема-то осталась.<br>Вспылил и написал письмо на полстраницы, начинавшееся фразой "Господа AI !". Концептуальное. Гневное. Циркулярное  И получил ответы:<br>- ООО! Мы все поняли. Гениально, единственно верное решение.<br>Это deepseek 5/5 и copilot 10/10.<br>- Нуу... Проблема решена, но способ так себе... в общем 9/10 и есть гораздо лучшие альтернативы, рассмотрим?<br>Это chatcpt и grok. И что характерно, альтернативы предлагают разные, по паре штук каждый. Рассмотрим, конечно.<br><br>Это просто зарисовка не о разработке обертки, а о различных системах AI.</p><p>UPD: Забыл добавить - deepseek еще и извинился за необоснованные оценки :)))</p> <a href="https://habr.com/ru/posts/1029944/?utm_campaign=1029944&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 08:19:51 GMT</pubDate>
    <dc:creator><![CDATA[ova450]]></dc:creator>
      
      <category><![CDATA[ии]]></category><category><![CDATA[аналитика]]></category><category><![CDATA[ai]]></category><category><![CDATA[ai agent]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @AlexM2001 — IT-инфраструктура (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029934/</guid>
    <link>https://habr.com/ru/posts/1029934/?utm_campaign=1029934&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Прибыль Samsung от производства чипов на фоне спроса на ИИ выросла в 48 раз</strong></p><blockquote><p>Аналитики ожидают, что подразделение Samsung увеличит свою рекордную прибыль в течение следующих нескольких кварталов, поскольку контрактные цены продолжают стремительно расти на фоне ограниченного предложения. Они указывают на рост экспорта полупроводниковых приборов из Кореи в 2,8 раза за первые 20 дней апреля.</p></blockquote><p>Полный текст новости по ссылке: <a href="https://www.kommersant.ru/doc/8633092" rel="noopener noreferrer nofollow">https://www.kommersant.ru/doc/8633092</a></p><ol><li><p>Просто значение немного удивило: 48. Даже немногим лучше чем ответ на все вопросы Вселенной!😁</p></li><li><p>Радует (лично меня, как желающего увеличить память своего ПК) новость от производителя оборудования для литографии. Количество литографического   оборудования, заказанного для производства чипов памяти, за последний год превысило число заказов для производства CPU.</p><p>2.1. Год назад литографы, в основном, заказывали для производства CPU. </p><p>2.2. Ссылку на новость про литографическое оборудование сходу не нашёл. Но это было примерно месяц назад, тут же на Habr.</p></li><li><p>IMHO сугубо, много желающих включиться/вложиться в производство памяти. Через сколько времени пойдет производство памяти на максимум, вот тут предположения высказывать не возьмусь. Но желающих заработать на этом (и не только этом) "железе" много!</p></li></ol> <a href="https://habr.com/ru/posts/1029934/?utm_campaign=1029934&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 07:33:43 GMT</pubDate>
    <dc:creator><![CDATA[AlexM2001]]></dc:creator>
      
      <category><![CDATA[озу]]></category><category><![CDATA[memory]]></category><category><![CDATA[samsung]]></category><category><![CDATA[llm]]></category><category><![CDATA[price]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @SomeEditor — Блог компании Yandex Cloud & Yandex Infrastructure (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/yandex_cloud_and_infra/posts/1029910/</guid>
    <link>https://habr.com/ru/companies/yandex_cloud_and_infra/posts/1029910/?utm_campaign=1029910&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Защитили наш подход к&nbsp;мультирегиональности: новый патент на&nbsp;систему управления доступом в&nbsp;облаке</strong></p><p><a href="https://yandex.ru/jobs/services/cloud/yc-security" rel="noopener noreferrer nofollow">Команда безопасности</a> Yandex Cloud <a href="https://www1.fips.ru/registers-doc-view/fips_servlet?DB=RUPAT&amp;DocNumber=2852932" rel="noopener noreferrer nofollow">запатентовала</a> технологию объединения облаков, развёрнутых в&nbsp;разных регионах. В&nbsp;отличие от&nbsp;подхода, характерного для&nbsp;многих зарубежных облачных платформ, где используется глобальный сервис Identity and Access Management (IAM), в&nbsp;платформе Yandex Cloud применяется подход с&nbsp;изолированными облачными регионами. Это позволяет соблюдать региональные законы, требования к&nbsp;хранению пользовательских данных и минимизировать риски инцидентов.&nbsp;</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/f46/210/df0/f46210df0e3cd5cb890e0ee9dcbfa48c.png" alt="Yandex Cloud использует запатентованный подход для&nbsp;работы между регионами России и Казахстана" title="Yandex Cloud использует запатентованный подход для&nbsp;работы между регионами России и Казахстана" width="2048" height="1152"><div><figcaption>Yandex Cloud использует запатентованный подход для&nbsp;работы между регионами России и Казахстана</figcaption></div></figure><p>Система IAM&nbsp;— важная составляющая публичного облака, она определяет модель безопасности, авторизации и управления ресурсами. Поэтому при&nbsp;проектировании архитектуры мультирегионального облака инженерам&nbsp;было необходимо принять несколько решений:&nbsp;</p><ul><li><p>будет&nbsp;ли сам IAM глобальным или&nbsp;региональным,</p></li><li><p>как&nbsp;классифицировать ресурсы и пользователей,</p></li><li><p>как&nbsp;будут работать процессы аутентификации и авторизации,</p></li><li><p>должны&nbsp;ли токены и куки работать между регионами.</p></li></ul><p>Это позволило создать технологию, в&nbsp;основе которой лежат ключевые архитектурные требования:&nbsp;</p><ol><li><p>Отсутствие общих точек отказа между регионами&nbsp;— если один регион испытывает трудности, другие регионы не&nbsp;должны страдать.</p></li><li><p>Объём ущерба инцидентов должен&nbsp;быть ограничен пределами одного региона.</p></li><li><p>Важно соответствовать требованиям комплаенса и локального законодательства.</p></li><li><p>Необходимо создать условия, при&nbsp;которых клиент чувствует, что&nbsp;пользуется единым сервисом, а&nbsp;не&nbsp;набором разнородных изолированных облаков.</p></li></ol><p>Последнее условие соблюдается благодаря продуманному UX: регионы остаются независимыми, но&nbsp;пользователи могут «бесшовно» переключаться между ними. Это достигается через организацию&nbsp;— псевдоглобальный объект, выступающий административным доменом. Доступ к&nbsp;ресурсам могут получать только пользователи, входящие в&nbsp;организацию.&nbsp;</p><p>Доверие между регионами реализовано через механизм Workload Identity Federation: аккаунт одного региона может имперсонироваться в&nbsp;аккаунт‑представитель в&nbsp;другом регионе. При&nbsp;этом права таких аккаунтов строго ограничены, а&nbsp;синхронизация выполняется односторонне&nbsp;— только из&nbsp;домашнего региона. Поэтому даже если в&nbsp;другом регионе произойдёт компрометация, это не&nbsp;затронет домашний регион.</p> <a href="https://habr.com/ru/posts/1029910/?utm_campaign=1029910&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 07:25:47 GMT</pubDate>
    <dc:creator><![CDATA[SomeEditor (Yandex Cloud & Yandex Infrastructure)]]></dc:creator>
      
      <category><![CDATA[identity and access management]]></category><category><![CDATA[мультирегиональность]]></category><category><![CDATA[iam]]></category><category><![CDATA[изоляция ресурсов]]></category><category><![CDATA[изолированная среда]]></category><category><![CDATA[федерация]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Графический дизайн (+4) — 30.04.2026 09:22]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029890/</guid>
    <link>https://habr.com/ru/posts/1029890/?utm_campaign=1029890&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Представлен открытый проект <a href="https://github.com/nexu-io/open-design" rel="noopener noreferrer nofollow">Open Design</a> (альтернатива Claude Design). Решение превращает ИИ‑агентов в&nbsp;мощнейшие генераторы любых дизайнов&nbsp;— от&nbsp;концептов и логотипов до&nbsp;лендингов и презентаций. </p><p>Возможности проекта:</p><ul><li><p>71&nbsp;шаблон интерфейсов в&nbsp;виде файлов DESIGN.md;</p></li><li><p>19&nbsp;встроенных скиллов;</p></li><li><p>5&nbsp;готовых визуальных стилей, которые сейчас на&nbsp;хайпе;</p></li><li><p>поддерживает любые экраны и форматы&nbsp;— дизайны встанут как&nbsp;на&nbsp;ПК, так и на&nbsp;мобильные устройства;</p></li><li><p>интеграция с&nbsp;Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode, Qwen и другими;</p></li><li><p>появляются новые скиллы, шаблоны и фичи.</p></li></ul><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/ac7/dc4/69e/ac7dc469e385658b499dfd4452b2b7d8.png" width="877" height="652"></figure> <a href="https://habr.com/ru/posts/1029890/?utm_campaign=1029890&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 06:22:21 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Open Design]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @zdanevich-vitaly — Rust (+4) — 30.04.2026 08:28]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029870/</guid>
    <link>https://habr.com/ru/posts/1029870/?utm_campaign=1029870&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Я давний пользователь <a href="https://github.com/vitaly-zdanevich/geeknote" rel="noopener noreferrer nofollow">Geeknote</a> - это cli для <a href="https://evernote.com/" rel="noopener noreferrer nofollow">Evernote</a>. Несколько лет назад проект застрял на втором Питоне - и никто не хотел его портировать на третий. Я ждал что кто-то займётся этим - но пришлось самому - так что я форкнул, починил, и даже связался с Виталием Роденко - одним из создателей Geeknote и администратора на PyPI, чтобы получить право туда пушить. За десяток лет я видел как Geeknote переходил из одни руки в другие - и как он забрасывался, и через несколько лет находился новый мантейнер. Было забавно осознать, что теперь и я стал мантейнером программного продукта, который всегда установлен на все мои машины.</p><p>Как и большинство из нас, я стал пробовать LLM - как замену поиску, для анализа кодов, советов, и вот наконец - несколько проектов - даже не читая кода - только давая команды и тестируя результат. Известная шутка - переписать на Rust. Почему бы у нет - Geeknote не велик - около пяти тысяч строк на Питоне, что я и попробовал - через <strong>Codex gpt-5.5</strong>. Несколько десятков итераций, "добавь это", "добавь то", "пропали теги", "пропала анимация" - и за несколько часов я получил рабочий Geeknote на Rust, назвал его <a href="https://gitlab.com/vitaly-zdanevich/reeknote" rel="noopener noreferrer nofollow">reeknote</a>. </p><p>Результат: быстрее работает, раза в два. Теперь буду им пользоваться.</p><p>P.S.: CLI хороши для перфоманса, SSH, быстрее разработка без GUI, а ещё похоже и для LLM - можно попросить сохранить ответ в Evernote. Как и прочие интеграции, в том числе в скриптах.</p> <a href="https://habr.com/ru/posts/1029870/?utm_campaign=1029870&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 05:28:25 GMT</pubDate>
    <dc:creator><![CDATA[zdanevich-vitaly]]></dc:creator>
      
      <category><![CDATA[evernote]]></category><category><![CDATA[geeknote]]></category><category><![CDATA[cli]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Story-teller — $mol (+1) — 30.04.2026 01:26]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029852/</guid>
    <link>https://habr.com/ru/posts/1029852/?utm_campaign=1029852&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Прощай хабр. Принял решение удалить все статьи и больше не тратить время на данную площадку. Понятно, что это результат действий одного-двух мудаков, но чтож, возможно хозяева как-то задумаются о токсичности платформы и что-то поменяют, всем чмоки</p> <a href="https://habr.com/ru/posts/1029852/?utm_campaign=1029852&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 22:26:27 GMT</pubDate>
    <dc:creator><![CDATA[Story-teller]]></dc:creator>
      
      <category><![CDATA[до свидания]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @go_shan — Блог компании AvitoTech (+2) — 29.04.2026 20:37]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/avito/posts/1029806/</guid>
    <link>https://habr.com/ru/companies/avito/posts/1029806/?utm_campaign=1029806&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Error Budget: сколько ошибок может позволить себе ваш сервис</strong></p><p>Есть разговор, который рано или поздно случается в каждой команде. Бизнес приходит и говорит: «Нам нужна стопроцентная надёжность». И вот тут у хорошего инженера должен включиться внутренний голос, который вежливо, но твёрдо отвечает: «Нет».</p><p>Вместе с Кириллом Борисовым, TeamLead Incident Management из VK, разобрались, почему 100% uptime — это не цель, а симптом. Симптом того, что команда ещё не договорилась, сколько ошибок она на самом деле может себе позволить — и зачем вообще это считать.</p><iframe id="69f238153c066202942583a2" src="https://embedd.srv.habr.com/iframe/69f238153c066202942583a2" class="embed_video embed__content" allowfullscreen="true"></iframe><p><strong>Что на повестке</strong></p><p>Error Budget — это не про то, сколько раз вам разрешили упасть. Это про то, как инженеры и бизнес наконец начинают говорить на одном языке: релизы, риски и стабильность в одной системе координат. В выпуске разбираем, как объяснить бюджет ошибок продакту, который слышит «бюджет» и думает о деньгах, почему идеально надёжная система — это не достижение, а тревожный сигнал, и как понять, что бюджет уже горит — до того, как это почувствуют пользователи.</p><p>Отдельно досталось теме «девяток»: сколько стоит каждая из них и в какой момент гнаться за следующей перестаёт иметь смысл.</p><p>Если вы хоть раз объясняли стейкхолдеру почему нельзя катить фичи и при этом держать SLA 99.99% — этот выпуск про вас.</p><p><strong>Слушайте и смотрите на площадках</strong></p><ul><li><p>📺<a href="https://clc.to/Z7xspw" rel="noopener noreferrer nofollow">&nbsp;</a><strong><a href="https://clc.to/Z7xspw" rel="noopener noreferrer nofollow">YouTube</a></strong></p></li><li><p>💻&nbsp;<strong><a href="https://clc.to/GQ_N4g" rel="noopener noreferrer nofollow">Rutube</a></strong></p></li><li><p>📱<a href="https://clc.to/2qoQMg" rel="noopener noreferrer nofollow">&nbsp;</a><strong><a href="https://clc.to/2qoQMg" rel="noopener noreferrer nofollow">VK</a></strong></p></li></ul><p>И подписывайтесь на телеграм-канал<a href="http://t.me/sre_avito" rel="noopener noreferrer nofollow">&nbsp;</a><strong><a href="http://t.me/sre_avito" rel="noopener noreferrer nofollow">Avito SREда</a></strong></p><p>Ещё больше экспертизы собрали для вас на&nbsp;<a href="https://clc.to/LV3FBg" rel="noopener noreferrer nofollow">сайте</a>: смотрите наши лонгриды, новости, плейлисты видео. А узнать, как стать частью команды AvitoTech, можно&nbsp;<a href="https://clc.to/1QTHTg" rel="noopener noreferrer nofollow">вот здесь</a>.</p> <a href="https://habr.com/ru/posts/1029806/?utm_campaign=1029806&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 17:37:14 GMT</pubDate>
    <dc:creator><![CDATA[go_shan (AvitoTech)]]></dc:creator>
      
      <category><![CDATA[авито]]></category><category><![CDATA[подкаст]]></category><category><![CDATA[sre]]></category><category><![CDATA[sre-процессы]]></category><category><![CDATA[подкасты для разработчиков]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[инфобез]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @smirnoff_ai — Блог компании LLMStart.ru (+3) — 29.04.2026 19:44]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/llmstart/posts/1029790/</guid>
    <link>https://habr.com/ru/companies/llmstart/posts/1029790/?utm_campaign=1029790&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Дорожная карта Agentic AI. Level 4. Новые чувства — мультимодальность</strong></p><figure class=""><img src="https://habrastorage.org/webt/8b/3f/6f/8b3f6fc275b3aac5de67cecdcb3d6706.png" alt="Дорожная карта Agentic AI — Level 4. Новые чувства: мультимодальность" title="Level 4. Новые чувства — мультимодальность"><div><figcaption>Level 4. Новые чувства — мультимодальность</figcaption></div></figure><p>Пора научить агента видеть и слышать. Клиент не присылает аккуратный промпт — он кидает фотку накладной, скрин ошибки, голосовое на 40 секунд.</p><p><strong>Картинки</strong></p><p>Модель смотрит на изображение и отвечает на вопросы о нём — что на фото, прочитай текст, сравни два скриншота. Работает прямо в чат-запросе, без отдельного API.</p><p>Где выбирать модель: <a href="https://artificialanalysis.ai/evaluations/mmmu-pro" rel="noopener noreferrer nofollow">artificialanalysis.ai/evaluations/mmmu-pro</a> — 180+ моделей по MMMU-Pro (изображения, документы, диаграммы, схемы). Сейчас лидирует Gemini 3.1 Pro Preview.</p><p><strong>Транскрибация</strong></p><p>Модель слушает аудио и возвращает текст — с пунктуацией, языком, таймкодами, и если надо — с разделением по спикерам.</p><p>Где выбирать: <a href="https://artificialanalysis.ai/speech-to-text" rel="noopener noreferrer nofollow">artificialanalysis.ai/speech-to-text</a> — 50+ провайдеров, WER + скорость + цена в одной таблице. Лидер по точности — ElevenLabs Scribe v2 (2.3% WER), из мультимодальных — Gemini (2.9%), gpt-4o-transcribe — 4.1%, Whisper large-v3 — ~5%.</p><p><strong>Видео</strong></p><p>Модель понимает видео как поток событий во времени — что происходило, в каком порядке, что изменилось. Это не то же самое, что покадровый Vision: там вы нарезаете файл на картинки и отправляете как набор фото — модель не понимает движения и временной связи между ними.</p><p>Где выбирать: <a href="https://benchlm.ai/benchmarks/videoMmmu" rel="noopener noreferrer nofollow">benchlm.ai/benchmarks/videoMmmu</a>. Нативно видео обрабатывает только Gemini — до часа или ссылка на YouTube. Остальные — только покадровый Vision.</p><p><strong>Как вызывать</strong></p><p><em>Картинки</em> — универсальный OpenAI-формат, работает везде. <code>image_url</code> в чат-запросе принимают OpenAI, Anthropic, Gemini, Qwen, Grok. Один и тот же код, разный <code>base_url</code> и <code>api_key</code>.</p><p><em>Транскрибация</em> — многие провайдеры поддерживают OpenAI-формат: напрямую <code>/v1/audio/transcriptions</code> или <code>input_audio</code> через <code>/v1/chat/completions</code>). Но у лидера ElevenLabs Scribe v2: собственный SDK, не совместим с OpenAI-форматом</p><p><em>Видео</em> — тут единого API нет. У OpenAI видеофайл в Chat Completions не принимается. Gemini поддерживает видео-понимание через нативный <a href="https://ai.google.dev/gemini-api/docs/video-understanding" rel="noopener noreferrer nofollow">API</a>.</p><p>🔔 Следующая тема: локальный запуск — когда Ollama или LMStudio лучше облачного API.</p><p>⬅️ Предыдущая тема: <a href="https://habr.com/ru/posts/1023986/" rel="noopener noreferrer nofollow">Level 3. Первые артефакты — LLM API и структурированный вывод</a></p><p>Подписывайтесь, пожалуйста, чтобы не пропустить!</p><blockquote><p>Больше про ИИ — в <a href="https://t.me/aidialogs" rel="noopener noreferrer nofollow">ТГ-канале</a> и <a href="https://vk.com/llmstart" rel="noopener noreferrer nofollow">ВК</a>. <a href="https://llmstart.ru/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=agentic-roadmap-04" rel="noopener noreferrer nofollow">Каталог наших курсов, услуг и кейсов</a> по ИИ-агентам. По вопросам — <a href="https://t.me/smirnoff_ai" rel="noopener noreferrer nofollow">пишите в личку</a>.</p></blockquote> <a href="https://habr.com/ru/posts/1029790/?utm_campaign=1029790&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 16:44:51 GMT</pubDate>
    <dc:creator><![CDATA[smirnoff_ai (LLMStart.ru)]]></dc:creator>
      
      <category><![CDATA[llm]]></category><category><![CDATA[multimodal]]></category><category><![CDATA[agentic ai]]></category><category><![CDATA[транскрибация]]></category><category><![CDATA[speech-to-text]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @sergeytolkachyov — Joomla — 29.04.2026 16:27]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029674/</guid>
    <link>https://habr.com/ru/posts/1029674/?utm_campaign=1029674&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>WT Max библиотека для интеграции с Joomla.</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/3f6/8ee/860/3f68ee860daae24d77dcd38ae777e718.png" width="1280" height="722"></figure><p>Вышла Joomla-библиотека для API мессенджера MAX с системным плагином для настроек и диагностики подключения. Библиотека предназначена для разработчиков.</p><p>Расширение является Joomla-обёрткой над  самостоятельным PHP Composer-пакетом <code>Webtolk\Max</code>. PHP SDK разрабатывалось с учётом стандартов PSR и полностью не зависит от какого-либо фреймворка и/или пакета.</p><p>Библиотека может использоваться для:</p><ul><li><p>отправки сообщений через бота в мессенджере Макс с сайта (разного рода уведомления),</p></li><li><p>отправки контента с сайта в мессенджер - видео, аудио, картинки</p></li><li><p>кнопок-ссылок к сообщениям</p></li><li><p>приёма и обработки реакций на эти кнопки</p></li><li><p>обработки ответов в чате / личных сообщениях</p></li><li><p>работы с пользователями, чатами, статусами “печатает/просмотрено” и т.д.</p></li></ul><p>PHP SDK работает с:</p><ul><li><p>PHP 8.1+</p></li><li><p>любым PSR-18 HTTP-клиентом (Guzzle, Symphony Http client, Joomla HTTP и другие)</p></li><li><p>стандартом PSR-17 RequestFactoryInterface и StreamFactoryInterface</p></li><li><p>любым PSR-3 логгером</p></li></ul><p>Joomla-библиотека интегрирует в ваш сайт PHP SDK, использующий инструменты ядра Joomla: http клиент, фабрики PSR-17, стандартный PSR-3 логгер из ядра Joomla. </p><pre><code class="php">&lt;?php

declare(strict_types=1);

use Webtolk\Wtmax\Wtmax;

defined('_JEXEC') or die;
// В Joomla отдаёт подготовленный объект Webtolk\Max\Max 
// с фабриками, HTTP-клиентом и штатным логгером Joomla
$max = Wtmax::getInstance();

$bot = $max-&gt;bots()-&gt;me();

echo $bot-&gt;getId();
echo $bot-&gt;getUsername();</code></pre><p>В составе Joomla-библиотеки собирается коллекция полей Joomla Form. В частности сейчас в ней есть стандартное поле выбора чата из списка доступных чатов для бота в Максе в модальном окне (поле ModalSelect).</p><ul><li><p><a href="https://github.com/WebTolk/Max-platform-PHP-SDK" rel="noopener noreferrer nofollow">PHP SDK, Composer-пакет</a> </p></li><li><p><a href="https://web-tolk.ru/dev/biblioteki/wt-max-platform" rel="noopener noreferrer nofollow">Joomla-обёртка WT Max</a></p></li></ul> <a href="https://habr.com/ru/posts/1029674/?utm_campaign=1029674&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 13:27:01 GMT</pubDate>
    <dc:creator><![CDATA[sergeytolkachyov]]></dc:creator>
      
      <category><![CDATA[joomla]]></category><category><![CDATA[max]]></category><category><![CDATA[макс]]></category><category><![CDATA[мессенджер мax]]></category><category><![CDATA[api]]></category><category><![CDATA[php sdk]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @liho_boy — Блог компании Night Street (+2) — 29.04.2026 15:09]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/night_street/posts/1029612/</guid>
    <link>https://habr.com/ru/companies/night_street/posts/1029612/?utm_campaign=1029612&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Реши загадку уровня Hard и выиграй мерч</strong></p><p>Про игровую платформу <a href="https://night-street.ru/playforma?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=playforma-29-04-26" rel="noopener noreferrer nofollow">PLAYFORMA</a> рассказываем <a href="https://habr.com/ru/companies/night_street/articles/1023404/" rel="noopener noreferrer nofollow">здесь</a>.</p><p>А сегодня хотим сыграть с тобой в игру. Наша платформа заточена под разные форматы онлайн-решений: квесты, тимбилдинги, марафоны, адвенты и кастомные программы. Но по опыту знаем: если играть будут айтишники, нужно что-нибудь действительно мозголомное, чтобы в фидбеке не наловить отзывов: «Это слишком просто», «Неинтересно» и т. д.</p><p>Так родился формат Hard. Если на обычное задание даётся 5–7 минут, то здесь — от 20 до 30. Такая загадка перед тобой.</p><p>Знакомься, это Огурчик Пиклз. Разгадай, что он пытается сказать, — и получишь ключ к буквенному шифру, в котором спрятано название города. Название города пиши в комментариях. Автор первого правильного ответа получит брендированный дождевик от агентства <a href="https://night-street.ru/?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=playforma-29-04-26" rel="noopener noreferrer nofollow">Найт Стрит</a>. Доставим по России за наш счёт.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/97a/78c/51b/97a78c51b7344863c1a947be5245e08b.JPG" width="2038" height="2928"></figure> <a href="https://habr.com/ru/posts/1029612/?utm_campaign=1029612&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 12:09:28 GMT</pubDate>
    <dc:creator><![CDATA[liho_boy (Night Street)]]></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><category><![CDATA[тестирование игр]]></category><category><![CDATA[сложно]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Feizerr — Блог компании Selectel (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/selectel/posts/1029510/</guid>
    <link>https://habr.com/ru/companies/selectel/posts/1029510/?utm_campaign=1029510&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>4 статьи для безопасного проектирования и разработки программ</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/75e/8bd/1c3/75e8bd1c334719ef5453b48afe3ab96c.jpg" width="1560" height="880"></figure><p><br>Привет, Хабр! Подготовили для вас <a href="https://selectel.ru/blog/courses/security-development/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=course_post_security-development_290426" rel="noopener noreferrer nofollow">подборку</a> полезных материалов по безопасной разработке ПО. </p><p>Рассказываем, как повседневные решения разработчика влияют на&nbsp;безопасность сервисов, какие базовые практики помогают избежать большинства уязвимостей, а также как и&nbsp;зачем внедрять безопасную разработку в&nbsp;процессы.</p><p>Что внутри:</p><ul><li><p>Процессы и основные риски безопасной разработки. </p></li><li><p>Требования безопасности</p></li><li><p>Принципы безопасного проектирования</p></li><li><p>Безопасное использование сторонних компонентов.</p></li></ul><p><strong><a href="https://selectel.ru/blog/courses/security-development/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=course_post_security-development_290426" rel="noopener noreferrer nofollow">Читайте и сохраняйте в закладки →</a></strong></p> <a href="https://habr.com/ru/posts/1029510/?utm_campaign=1029510&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 11:58:59 GMT</pubDate>
    <dc:creator><![CDATA[Feizerr (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[разработка]]></category><category><![CDATA[безопасность]]></category><category><![CDATA[проектирование]]></category><category><![CDATA[программирование]]></category><category><![CDATA[подборка]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @evgeny1709 — Здоровье (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028586/</guid>
    <link>https://habr.com/ru/posts/1028586/?utm_campaign=1028586&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Я решил собрать гаджет от головной боли</p><p>Знаете это чувство, когда всё вроде делаешь правильно: спишь по 8 часов, пьёшь воду, ходишь норму шагов, пульс как у космонавта, а голова к вечеру всё равно гудит и глаза устают?</p><p>Я затрекал всё тело, и данных оказалось недостаточно. Поэтому появилась гипотеза: возможно, проблема не во мне, а в моей рабочей среде.</p><p>Решил сделать полезную штуку лично для себя: затрекать рабочее место. Форм-фактор: умная настольная лампа.</p><p>План на MVP такой: Следим за CO2, влажностью, температурой и освещённостью. Плюс добавил напоминалку поморгать (звучит смешно, но я в фокусе реально перестаю это делать).</p><p>И самое спорное это трекать магнитные поля и радиочастоты. Включаю режим конспиролога: а вдруг мои Bluetooth-наушники незаметно варят мне мозг излучением? Наука, конечно, крутит пальцем у виска и говорит, что всё ок, но я хочу собрать свои данные. Надо же либо окончательно успокоиться, либо идти клеить шапочку из фольги.</p><p>Рулить железом будет ESP32-S3 дешёвая и холодная, в отличие от Raspberry Pi. А вот думать будет отдельный сервер с языковой моделью. Шутки про «ИИ везде» принимаются, но мне реально нужно, чтобы железка просто говорила по-человечески: «душно - открой окно», а не заставляла меня вчитываться в дашборды.</p><p>Детальки заказаны, скоро буду собирать прототип.</p><p><a href="https://s-link.debug-leg.ru/j5U9KG2" rel="noopener noreferrer nofollow">Дебаж 🐞с ноги 🦶</a></p> <a href="https://habr.com/ru/posts/1028586/?utm_campaign=1028586&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 08:39:25 GMT</pubDate>
    <dc:creator><![CDATA[evgeny1709]]></dc:creator>
      
      <category><![CDATA[здоровье гика]]></category><category><![CDATA[здоровый образ жизни]]></category><category><![CDATA[здоровье и компьютер]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1029006/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1029006/?utm_campaign=1029006&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Если тесты есть, а&nbsp;уверенности в&nbsp;них нет&nbsp;— 10&nbsp;открытых уроков по&nbsp;тестированию (апрель‑май) </strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/d7d/5fd/a5a/d7d5fda5accb6145c7b4a0f4827a5c48.png" width="1800" height="980"></figure><p><em>Тестирование в 2026&nbsp;— это уже давно не&nbsp;только про «проверить, что&nbsp;работает». Это про&nbsp;архитектуру тестов, нагрузку, интеграции и всё чаще&nbsp;— про&nbsp;работу с&nbsp;AI.</em></p><p>Чувствуете, что&nbsp;текущего инструментария уже не&nbsp;хватает (или просто хочется систематизировать практику)? Собрали серию открытых уроков по&nbsp;тестированию&nbsp;— от&nbsp;базовых вещей до&nbsp;более инженерных подходов.</p><p>🔥 Что&nbsp;будет:</p><p>⓵ <strong>28&nbsp;апреля 20:00.</strong> <a href="https://otus.pw/v1Ek/" rel="noopener noreferrer nofollow">«Первый нагрузочный тест в&nbsp;Apache JMeter»</a><br><sub>открытый урок курса</sub><a href="https://otus.pw/qkxZ/" rel="noopener noreferrer nofollow"><sub> «Нагрузочное тестирование» </sub></a></p><p>⓶ <strong>28&nbsp;апреля 20:00.</strong> <a href="https://otus.pw/238L/" rel="noopener noreferrer nofollow">«Архитектура тестового фреймворка: от&nbsp;хаоса к&nbsp;стабильности»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/zppw/" rel="noopener noreferrer nofollow"><sub>«Автоматизатор тестирования на&nbsp;Python»</sub></a> </p><p>⓷ <strong>28&nbsp;апреля 20:00.</strong> <a href="https://otus.pw/qreV/" rel="noopener noreferrer nofollow">«Контрактные тесты в&nbsp;Kotlin: как&nbsp;подружить фронт и бэкэнд»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/Ti72/" rel="noopener noreferrer nofollow"><sub>«Автоматизатор тестирования на&nbsp;Kotlin»</sub></a></p><p>⓸ <strong>29&nbsp;апреля 20:00.</strong> <a href="https://otus.pw/wsp5/" rel="noopener noreferrer nofollow">«Качество C#‑кода: от&nbsp;модульных тестов к&nbsp;системному подходу»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/H2JX/" rel="noopener noreferrer nofollow"><sub>«C#-разработчик. Продвинутый уровень»</sub></a></p><p>⓹ <strong>7&nbsp;мая 20:00. </strong><a href="https://otus.pw/SVvj/" rel="noopener noreferrer nofollow">«Тестирование микросервисов на&nbsp;Go: почему ваш сервис ломается под 1000&nbsp;RPS»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/y1bL/" rel="noopener noreferrer nofollow"><sub>«Микросервисы на&nbsp;Go»</sub></a></p><p>⓺ <strong>19&nbsp;мая 20:00.</strong> <a href="https://otus.pw/z7O4/" rel="noopener noreferrer nofollow">«Навыки нагрузочного тестирования и их роль в&nbsp;развитии инженера»</a> <br><sub>открытый урок курса </sub><a href="https://otus.pw/vVHP/" rel="noopener noreferrer nofollow"><sub>«Нагрузочное тестирование»</sub></a></p><p>⓻ <strong>19&nbsp;мая 20:00.</strong> <a href="https://otus.pw/6Isob/" rel="noopener noreferrer nofollow">«Введение в&nbsp;OpenTelemetry и основы наблюдаемости»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/NdYg/" rel="noopener noreferrer nofollow"><sub>«C#-разработчик. Продвинутый уровень» </sub></a></p><p>⓼ <strong>21&nbsp;мая 20:00.</strong> <a href="https://otus.pw/QJlH/" rel="noopener noreferrer nofollow">«Суперсилы Kotlin для&nbsp;удобных UI‑автотестов»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/MNDs/" rel="noopener noreferrer nofollow"><sub>«Автоматизатор тестирования на&nbsp;Kotlin»</sub></a></p><p>⓽ <strong>21&nbsp;мая 20:00.</strong> <a href="https://otus.pw/jNbK/" rel="noopener noreferrer nofollow">«ИИ как&nbsp;ассистент QA: пишем API‑тесты с&nbsp;нуля»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/bUIT/" rel="noopener noreferrer nofollow"><sub>«Автоматизатор тестирования на&nbsp;Python»</sub></a></p><p>⓾ <strong>21&nbsp;мая 20:00.</strong> <a href="https://otus.pw/7Rn9/" rel="noopener noreferrer nofollow">«API Gateway и не&nbsp;только: шаги к&nbsp;идеальной архитектуре внешних API»</a><br><sub>открытый урок курса </sub><a href="https://otus.pw/PPIh/" rel="noopener noreferrer nofollow"><sub>«Архитектор программного обеспечения»</sub></a></p><p>Подборка получилась разнообразной&nbsp;— и это как&nbsp;раз полезно. Можно точечно закрыть конкретный пробел: разобраться с&nbsp;нагрузочным тестированием, контрактами, API‑тестами или&nbsp;архитектурой фреймворка. А&nbsp;можно посмотреть шире&nbsp;— как&nbsp;меняется роль QA, когда тестирование всё теснее связано с&nbsp;разработкой, архитектурой, наблюдаемостью и AI‑инструментами. <em> </em></p><p><em>Все уроки бесплатные и проходят в&nbsp;рамках онлайн‑курсов. Их ведут преподаватели‑практики, поэтому это не&nbsp;формат «послушать общую теорию», а&nbsp;возможность посмотреть на&nbsp;реальные подходы, познакомиться с&nbsp;экспертами, протестировать формат обучения и задать вопросы по&nbsp;теме или&nbsp;курсу.</em></p><blockquote><p>📌 Посмотрите каталог курсов по&nbsp;тестированию: там уже не&nbsp;отдельные инструменты, а&nbsp;полноценные треки с&nbsp;практикой, архитектурой и реальными кейсами. </p><p><a href="https://otus.pw/ZQvoS/" rel="noopener noreferrer nofollow">[Перейти в&nbsp;каталог]</a></p></blockquote> <a href="https://habr.com/ru/posts/1029006/?utm_campaign=1029006&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 08:10:36 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[тестирование]]></category><category><![CDATA[QA]]></category><category><![CDATA[автоматизация тестирования]]></category><category><![CDATA[автотесты]]></category><category><![CDATA[нагрузочное тестирование]]></category><category><![CDATA[Apache JMeter]]></category><category><![CDATA[API-тесты]]></category><category><![CDATA[микросервисы]]></category><category><![CDATA[OpenTelemetry]]></category><category><![CDATA[AI в тестировании]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @SofiaShpak — Блог компании Selectel (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/selectel/posts/1029452/</guid>
    <link>https://habr.com/ru/companies/selectel/posts/1029452/?utm_campaign=1029452&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Подключайтесь к вебинару про Enterprise-grade ЦОД в Selectel</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/3d2/f45/884/3d2f4588472f3269a98378a81a21f262.jpeg" width="780" height="376"></figure><p>Встречаемся через час, в 12:00 (мск).  Эксперты в прямом эфире расскажут, как организовать дата-центр без строительства и крупных инвестиций. Это особенно актуально, если закончилось место в собственном дата-центре, появились более строгие требования к безопасности или вы хотите сократить простои оборудования. </p><p>В центре внимания — услуга Enterprise-grade ЦОД от Selectel. Поговорим о том, как она устроена и почему ее выбирают крупные IT-компании.</p><p>Подключайтесь к трансляции <a href="https://vkvideo.ru/video-11462611_456240097" rel="noopener noreferrer nofollow">в VK</a> и <a href="https://www.youtube.com/watch?v=mo6mqjM-v8A" rel="noopener noreferrer nofollow">на YouTube</a>.</p> <a href="https://habr.com/ru/posts/1029452/?utm_campaign=1029452&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 08:09:06 GMT</pubDate>
    <dc:creator><![CDATA[SofiaShpak (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[дата-центр]]></category><category><![CDATA[цод]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[инфраструктура]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @stas_makarov — Искусственный интеллект (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029334/</guid>
    <link>https://habr.com/ru/posts/1029334/?utm_campaign=1029334&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/6e7/21a/549/6e721a54973b3ee25a3b1ca58fcaf33a.png" alt="Minesweeper Enterprise" title="Minesweeper Enterprise" width="1224" height="800"><div><figcaption>Minesweeper Enterprise</figcaption></div></figure><p><strong>Вайб-кодинг и Jmix</strong></p><p>Сидели мы как-то вечером с Курсором и подумали:</p><p>"Какой же энтерпрайз проект без пасхалки или просто встроенной игры? — Чем будут заниматься менеджеры, пока агенты делают их работу?" — Вот, держите старый добрый Сапер из Windows в виде адд-она <strong>Jmix</strong>. И это не просто браузерная игра, вставленная в экран. Причем ни строчки кода не написано руками, только сгенерил проект.</p><p>Минное поле — это <code>gridLayout</code>, покрытый кнопками, генерится программно в зависимости от параметров.</p><p>Весь <em>look&amp;feel</em> как в оригинальном Minesweeper.</p><p>Опубликован на Maven, просто добавляйте зависимость:</p><p><code>implementation 'io.github.digitilius.minesweeper:minesweeper-starter:1.0.3'</code></p><p>Репозиторий здесь:</p><p><a href="https://github.com/digitilius/jmix-minesweeper" rel="noopener noreferrer nofollow">https://github.com/digitilius/jmix-minesweeper</a></p><p>Enjoy'те!</p> <a href="https://habr.com/ru/posts/1029334/?utm_campaign=1029334&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 07:15:57 GMT</pubDate>
    <dc:creator><![CDATA[stas_makarov]]></dc:creator>
      
      <category><![CDATA[вайб-кодинг]]></category><category><![CDATA[java]]></category><category><![CDATA[jmix]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Andrey2008 — Блог компании PVS-Studio (+4) — 29.04.2026 09:49]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/pvs-studio/posts/1029408/</guid>
    <link>https://habr.com/ru/companies/pvs-studio/posts/1029408/?utm_campaign=1029408&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>РБПО по ГОСТ Р 56939—2024: вебинар №09 из 30 – Экспертиза исходного кода</strong></p><p>Компания <a href="https://pvs-studio.ru/" rel="noopener noreferrer nofollow">ООО "ПВС"</a> совместно с <a href="https://mascom-uc.ru/" rel="noopener noreferrer nofollow">учебным центром "Маском"</a> провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.</p><p>Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.9. – "<a href="https://pvs-studio.ru/ru/blog/video/11439/" rel="noopener noreferrer nofollow">Экспертиза исходного кода</a>". <a href="https://youtu.be/mxVgGLp9ZF0?si=-0_SgDaMWsuXUqSO" rel="noopener noreferrer nofollow">На YouTube</a>. <a href="https://files.pvs-studio.ru/media/presentations/03-09-2025.zip" rel="noopener noreferrer nofollow">Слайды</a>.</p><iframe id="69f1a8fc42c0bc03ac312764" src="https://embedd.srv.habr.com/iframe/69f1a8fc42c0bc03ac312764" class="embed_video embed__content" allowfullscreen="true"></iframe><p>Цели девятого процесса по ГОСТ Р 56939—2024:</p><blockquote><p>Обеспечение соответствия исходного кода ПО предъявляемым к нему требованиям.</p></blockquote><p>Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: <a href="https://%D0%93%D0%9E%D0%A1%D0%A256939.%D0%A0%D0%A4" rel="noopener noreferrer nofollow">ГОСТ56939.РФ</a>.</p> <a href="https://habr.com/ru/posts/1029408/?utm_campaign=1029408&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 06:49:40 GMT</pubDate>
    <dc:creator><![CDATA[Andrey2008 (PVS-Studio)]]></dc:creator>
      
      <category><![CDATA[гост р 56939]]></category><category><![CDATA[гост р 56939-2024]]></category><category><![CDATA[исходный код]]></category><category><![CDATA[код]]></category><category><![CDATA[экспертиза проектов]]></category><category><![CDATA[обзоры кода]]></category><category><![CDATA[code review]]></category><category><![CDATA[вебинары]]></category><category><![CDATA[качество кода]]></category><category><![CDATA[рбпо]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dugalb — Rust (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029344/</guid>
    <link>https://habr.com/ru/posts/1029344/?utm_campaign=1029344&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Rust GUI: поверхностный обзор и шпаргалка</strong></p><p>Это не&nbsp;туториал, а&nbsp;карта‑шпаргалка, чтобы не&nbsp;потеряться среди десятка библиотек и&nbsp;быстро понять, куда копать под&nbsp;свою задачу.</p><p>Перед выбором любого фреймворка&nbsp;— откройте <a href="http://areweguiyet.com" rel="noopener noreferrer nofollow">areweguiyet.com</a>. Там видно зрелость,&nbsp;лицензию, платформы и число скачиваний. Лучшая страховка от «библиотека умерла через месяц».</p><p>Чтобы не&nbsp;путаться в&nbsp;терминах, стоит уточинить, в&nbsp;чем разница архитектурных подходов.</p><p><strong>Immediate Mode</strong> (пересобирается каждый кадр). Суть: «Опиши, что&nbsp;должно&nbsp;быть на&nbsp;экране прямо сейчас». Не «создай кнопку и запомни её», а&nbsp;линейная пересборка каждый кадр: «если сейчас здесь нажали&nbsp;— сделай действие, и в&nbsp;любом случае нарисуй кнопку вот здесь».</p><p>— egui, Ply, Rust bindings dear imgui</p><p><strong>Retained Mode</strong> (дерево виджетов в&nbsp;памяти). Суть: «Измени то, что&nbsp;уже есть». Один раз описывается структуру UI (создал кнопку, положил в&nbsp;layout), а&nbsp;потом меняются её свойства: текст, цвет, видимость. Кнопка «живёт» в&nbsp;памяти как&nbsp;объект.</p><p>— GTK и FLTK.</p><p><strong>Reactive </strong>(реактивный режим). Суть: «UI&nbsp;— это функция от&nbsp;состояния». UI описывается как&nbsp;отображение некоторого состояния. Когда состояние меняется, фреймворк сам пересчитывает, что&nbsp;именно в&nbsp;UI нужно обновить.</p><p>— Azul, Cushy, Floem, Ribir, Yew, Xilem, Dioxus (использует Virtual DOM), Leptos.</p><p><strong>Hybrid Mode</strong> (декларативный API + оптимизированный retained‑рендеринг)</p><p>— GPUI(Zed)</p><p>Теперь&nbsp;— к&nbsp;конкретным фреймворкам, которые сейчас на&nbsp;слуху.</p><p><a href="https://github.com/tauri-apps/create-tauri-app" rel="noopener noreferrer nofollow">Tauri</a>. Аналог Electron. Бэкенд пишется на&nbsp;Rust, фронтенд&nbsp;— с&nbsp;помощью JS фреймворков (React, Vue, Svelte). Но архитектура платформы не ограничивается этим стеком. Благодаря поддержке WebAssembly можно использовать и полностью Rust-решения. Например, фреймворк <a href="https://github.com/leptos-rs/leptos" rel="noopener noreferrer nofollow">Leptos </a>компилируется в WASM-модуль и запускается во встроенном WebView Tauri.</p><p><a href="https://github.com/emilk/egui" rel="noopener noreferrer nofollow">Egui</a>. Не&nbsp;требует отдельного связывания UI с&nbsp;моделью данных. Отрисовка интерфейса описывается в&nbsp;коде&nbsp;линейно, без&nbsp;колбэков и событий, что&nbsp;ускоряет прототипирование. При этом Egui поддерживает адаптивный рендеринг.</p><p><a href="https://github.com/iced-rs/iced" rel="noopener noreferrer nofollow">Iced</a>. Кроссплатформенная библиотека, вдохновленная Elm Architecture (TEA). Типобезопасность и простота использования заявляются как&nbsp;ключевые принципы.Проект находится в&nbsp;активной разработке.</p><p><a href="https://github.com/DioxusLabs/dioxus" rel="noopener noreferrer nofollow">Dioxus</a>. Фреймворк, похожий на&nbsp;React. Использует собственный Virtual DOM и макрос <code>rsx!</code>, позволяя писать HTML‑подобный код прямо внутри Rust. Dioxus Native: экспериментальный рендерер на базе WGPU, отрисовывает дерево компонентов напрямую, без использования WebView или CSS‑движка. UI‑логика и бэкенд выполняются в одном процессе, в отличие от&nbsp;Tauri, где фронтенд и бэкенд разделены.</p><p><a href="https://github.com/slint-ui/slint" rel="noopener noreferrer nofollow">Slint</a>. Фреймворк, нацеленный на&nbsp;легковесность, вплоть до&nbsp;использования на&nbsp;встраиваемых устройствах. Для&nbsp;описания интерфейса используется собственный язык разметки (<code>.slint</code>), для&nbsp;кода доступны биндинги к&nbsp;Rust, C++ и JavaScript. Предлагает инструмент Live‑Preview для&nbsp;визуальной разработки.</p><p><a href="https://github.com/linebender/xilem" rel="noopener noreferrer nofollow">Xilem</a>. Экспериментальный фреймворк от&nbsp;команды Linebender на&nbsp;основе оригинальной архитектуры (Xilem architecture), вдохновленной Elm, SwiftUI и Flutter. Разрабатывается как&nbsp;преемник библиотеки Druid, работа над которой&nbsp;была прекращена.</p><p><strong>Следующий шаг.</strong></p><p>Выбор фреймворка по&nbsp;документации и отзывам&nbsp;— это половина дела. Вторая половина&nbsp;— попробовать его руками на&nbsp;минимальном примере. </p><p>Многие Rust‑фреймворки требуют системных библиотек для&nbsp;графики и оконных систем. Настройка «на голой» машине может занять ощутимое время и зависеть от&nbsp;ОС. Чтобы не&nbsp;разворачивать отдельное окружение под&nbsp;каждый вариант, удобно использовать dev‑контейнеры в&nbsp;VS Code. Контейнер фиксирует эту настройку один раз, и она работает одинаково на&nbsp;Windows, macOS и Linux (с учётом специфики Docker).</p><p>Преимущества контейнеров:</p><ul><li><p>Изолированное, воспроизводимое окружение для&nbsp;каждого фреймворка.</p></li><li><p>Отсутствие конфликтов версий и зависимостей на&nbsp;основной машине.</p></li><li><p>Возможность переключаться между фреймворками параллельно, не&nbsp;теряя контекст.</p></li></ul><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/4a2/25c/506/4a225c506c1c11799ebe4ffdc86d95e4.png" alt="проверка интерфейса" title="проверка интерфейса" width="832" height="603"><div><figcaption>проверка интерфейса</figcaption></div></figure><p>Этот подход позволяет за&nbsp;пару часов собрать минимальные приложения в 3–4&nbsp;фреймворках и сравнить ощущения от&nbsp;кода, скорость сборки, поведение окна, качество документации к&nbsp;старту.</p> <a href="https://habr.com/ru/posts/1029344/?utm_campaign=1029344&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 23:06:46 GMT</pubDate>
    <dc:creator><![CDATA[dugalb]]></dc:creator>
      
      <category><![CDATA[rust]]></category><category><![CDATA[ui]]></category><category><![CDATA[tauri]]></category><category><![CDATA[egui]]></category><category><![CDATA[iced]]></category><category><![CDATA[dioxus]]></category><category><![CDATA[slint]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dugalb — Интерфейсы (+2) — 28.04.2026 23:25]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029316/</guid>
    <link>https://habr.com/ru/posts/1029316/?utm_campaign=1029316&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Что&nbsp;такое magicgui и зачем он нам?</strong></p><p><strong><a href="https://github.com/pyapp-kit/magicgui" rel="noopener noreferrer nofollow">magicgui</a> </strong>— это Python‑библиотека для&nbsp;быстрой разработки простых интерфейсов. Если нужен сложный интерфейс с&nbsp;кастомной вёрсткой и нестандартным поведением&nbsp;— лучше взять PyQt‑Pyside. Когда задача обернуть функцию в&nbsp;окошко за 5&nbsp;минут&nbsp;— magicgui справится.</p><p>В&nbsp;настоящее время&nbsp;<strong>magicgui</strong>&nbsp;поддерживает следующие бэкэнды:</p><ul><li><p><a href="https://www.qt.io/" rel="noopener noreferrer nofollow">Qt</a>&nbsp;(через&nbsp;<a href="https://pypi.org/project/PySide2/" rel="noopener noreferrer nofollow">PySide2</a>&nbsp;/&nbsp;<a href="https://pypi.org/project/PySide6/" rel="noopener noreferrer nofollow">PySide6</a>&nbsp;или&nbsp;<a href="https://pypi.org/project/PyQt5/" rel="noopener noreferrer nofollow">PyQt5</a>&nbsp;/&nbsp;<a href="https://pypi.org/project/PyQt6/" rel="noopener noreferrer nofollow">PyQt6</a>&nbsp;)</p></li><li><p><a href="https://ipywidgets.readthedocs.io/en/latest/" rel="noopener noreferrer nofollow">Виджеты Jupyter</a></p></li></ul><p>API организовано на&nbsp;двух уровнях:</p><figure class="bordered full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/81a/715/c93/81a715c93a49425ee6f7e71fef4a6675.png" alt="слои API magicgui" title="слои API magicgui" width="834" height="1158"><div><figcaption>слои API magicgui</figcaption></div></figure><p>Верхний уровень&nbsp;— магия типов. Декораторы <a class="mention" href="/users/magicgui">@magicgui</a>, <a class="mention" href="/users/guiclass">@guiclass</a>, автоопределение виджетов по&nbsp;аннотациям.</p><p>Нижний уровень&nbsp;— ручная сборка из&nbsp;готовых <a href="https://pyapp-kit.github.io/magicgui/widgets/" rel="noopener noreferrer nofollow">виджетов </a>(SpinBox, Slider, PushButton).</p><p><strong>Примеры работы: </strong><a href="https://pyapp-kit.github.io/magicgui/generated_examples/" rel="noopener noreferrer nofollow">https://pyapp‑kit.github.io/magicgui/generated_examples/</a></p><p><strong>Github: </strong><a href="https://github.com/pyapp-kit/magicgui" rel="noopener noreferrer nofollow">https://github.com/pyapp‑kit/magicgui</a></p> <a href="https://habr.com/ru/posts/1029316/?utm_campaign=1029316&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 20:25:42 GMT</pubDate>
    <dc:creator><![CDATA[dugalb]]></dc:creator>
      
      <category><![CDATA[gui]]></category><category><![CDATA[ui]]></category><category><![CDATA[qt]]></category><category><![CDATA[интерфейсы]]></category><category><![CDATA[python]]></category><category><![CDATA[pyqt]]></category><category><![CDATA[pyside]]></category><category><![CDATA[jupyter]]></category><category><![CDATA[jupyter notebook]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1029202/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1029202/?utm_campaign=1029202&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>DevSecOps без имитации: что учесть, чтобы безопасность не стала тормозом для разработки</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/a33/4fb/63f/a334fb63f19a6ce3d5b5ea7657e97cf1.png" width="1800" height="980"></figure><p>DevSecOps часто начинают с инструментов: добавить сканер в CI/CD, включить проверки зависимостей, собрать отчёты по уязвимостям. Но на практике быстро выясняется, что проблема глубже: непонятно, кто отвечает за найденные риски, какие проверки действительно нужны, как не утопить команду в ложных срабатываниях и где проходит граница ответственности между разработкой, эксплуатацией и ИБ.</p><blockquote><p><strong>30 апреля в 20:00</strong> пройдёт бесплатный демо-урок «Планируем внедрение DevSecOps — что следует учесть?».</p></blockquote><p>Обсудим, с чего начинать внедрение: как оценить зрелость процессов разработки и ИБ, встроить практики безопасной разработки в текущий конвейер, определить роли и точки взаимодействия, а также выбрать метрики, по которым видно реальное движение. Приходите, чтобы разобраться в теме и задать вопросы эксперту.</p><p>Записаться на урок можно <a href="https://otus.pw/lrqP/" rel="noopener noreferrer nofollow">на странице курса «Внедрение и работа в DevSecOps».</a></p><blockquote><p><em>Если хочется шире посмотреть на инфраструктуру, Kubernetes, DevSecOps, observability, Ansible, Nginx и не только — </em><a href="https://otus.pw/PiDO/" rel="noopener noreferrer nofollow"><em>в дайджесте</em></a><em> собрали больше бесплатных уроков и гайдов по этим темам.</em></p></blockquote> <a href="https://habr.com/ru/posts/1029202/?utm_campaign=1029202&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 17:10:08 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[devsecops]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[бесплатные уроки]]></category><category><![CDATA[онлайн-обучение]]></category><category><![CDATA[карьера в ит]]></category><category><![CDATA[профессиональное развитие]]></category><category><![CDATA[подборка материалов]]></category><category><![CDATA[lifelong education]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @tripolskypetr — Искусственный интеллект (+4) — 28.04.2026 19:27]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029260/</guid>
    <link>https://habr.com/ru/posts/1029260/?utm_campaign=1029260&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Почему цена почти доходит до TP, но разворачивается</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/82e/760/046/82e76004632d75e862d32dea7c6d7422.png" width="1168" height="784"></figure><p><strong>Будущее это вероятностная функция от прошлого</strong>. ATR это чистая функция от прошлого. Разница в том, что в вероятностной функции есть коэфициент случайности и точно прогнозировать можно только лучший и худший случай</p><p>Именно по этому цена не доходит до TP, если высчитать его на индикаторах. Либо TP слишком низкий и не окупает fees. <strong>Верным решением для вероятностной функции будет прогнозировать лучший и худший случай на лету</strong></p><pre><code class="typescript">//@version=5
strategy("Стратегия с TP по ATR")

...

tpPrice    = entryPrice + atrMultTP * atr // Это не работает</code></pre><p>Выходить из позиции при просадке PNL на заранее известный процент статистически предсказуемо.</p><pre><code class="typescript">listenActivePing(async ({ symbol, data }) =&gt; {
  const peakProfitDistance = await getPositionHighestProfitDistancePnlPercentage(symbol);
  const currentProfit = await getPositionPnlPercent(symbol);

  if (currentProfit &lt; 0) {
    return;
  }

  if (peakProfitDistance &lt; TRAILING_TAKE) {
    return;
  }

  await commitClosePending(symbol, {
    id: "unknown",
    note: str.newline(
      "# Позиция закрыта по trailing take",
    ),
  });
});</code></pre><p>Тут есть разница: в отличие от классического trailing take где выход из позиции ставится на цену, которая каждый раз разная, отклонение PnL - постоянная величина</p> <a href="https://habr.com/ru/posts/1029260/?utm_campaign=1029260&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 16:27:07 GMT</pubDate>
    <dc:creator><![CDATA[tripolskypetr]]></dc:creator>
      
      <category><![CDATA[трейдинг]]></category><category><![CDATA[криптовалюты]]></category><category><![CDATA[мосбиржа]]></category><category><![CDATA[tradingview]]></category><category><![CDATA[pinescript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[python]]></category><category><![CDATA[торговля]]></category><category><![CDATA[биржа]]></category><category><![CDATA[binance]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @forpe_ople — Блог компании ОТП Банк (+2) — 28.04.2026 17:57]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otpbank/posts/1029226/</guid>
    <link>https://habr.com/ru/companies/otpbank/posts/1029226/?utm_campaign=1029226&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Бюджет на защиту ПДн формируется в логике постройки дома</strong></p><p>Алексей Колпаков, начальник управления развития процессов кибербезопасности&nbsp;ОТП Банка, выступил на сессии «Персональные данные» в рамках Ciso Forum 2026. Обсудил новые тренды в защите персданных.</p><p>На какие направления защиты ПДн компании реально выделяют основной бюджет в 2026 году? Алексей предложил рассматривать как бюджет на строительство дома. Есть три главных «стрима»: фундамент, стены и крыша.</p><p><strong>Фундамент</strong> — это discovery-процесс, то есть анализ того, что уже есть в компании. В любой крупной организации существует множество процессов, где используются персданные, и еще больше мест их хранения. Компании собирают данные о клиентах, их продуктах и предпочтениях, потому что без этого невозможно эффективно строить бизнес. Запретить сбор и хранение нельзя, поэтому нужно менять процессы в сторону безопасности. Для этого ОТП Банк использует <strong>DCAP-систему</strong>, которая сканирует файловые ресурсы, рабочие станции и системы вроде Atlassian. Так банк понимает, где и какие данные лежат, кто с ними работает, проводит ревизию и очищает инфраструктуру от чувствительных данных, сокращая риски.</p><p><strong>Стены</strong> — это доступы, обезличивание, работа с подрядчиками. Алексей отметил, что взлом периметра в 2026 году — резонансный, но редкий кейс. Куда более реальный сценарий — разработчик с доступом к продуктивной среде, аналитик, сохраняющий таблицы с ПДн в Excel, или подрядчик, риск взлома которого значительно выше.</p><p><strong>Крыша</strong> — это DLP. Важно использовать его правильно. Не применять DLP для псевдобезопасных задач вроде отслеживания того, кто плохо отозвался о руководителе. По возможности переводить политики в режим блокировки, потому что мониторинг не остановит утечку — если данные ушли, они уже ушли. Не считать DLP панацеей, так как в любой компании есть процессы, которые он не закроет, и только комплексная работа дает реальный результат.</p><p>Алексей также привел статистику, собранную в общении с коллегами: все три инструмента — DLP, DCAP и обезличивание — одновременно используют <strong>только 15%</strong> компаний, работающих с ПДн. Он отметил, что это прогресс, ведь еще пять лет назад таких компаний было в три раза меньше. В банках и финтехе этот процент выше,<strong> на уровне 75%</strong>, благодаря высокой зарегулированности отрасли и ответственности перед клиентами.</p><p>Что покупают сначала: процессы, архитектурные изменения или инструменты? Сначала всегда идут процессы, затем архитектурные изменения, потом инструменты, иначе деньги будут потрачены впустую, система просто не будет работать. В качестве примера он привел контакт-центр: «Правильный процесс — когда оператор работает в CRM, видит на экране только имя и отчество клиента и его продукты, нажимает кнопку звонка, и система сама соединяет его с клиентом. Провал — когда операторам выгружают в Excel списки с ФИО и другими ПДн, и эти файлы начинают перемещаться по рабочим местам и пересылаться по почте. В таком случае процесс становится неконтролируемым, и никакие системы безопасности не помогут», - пояснил Колпаков.</p><p>Если процессы настроены, но у сотрудников остались избыточные права, многие будут действовать по-старому. Поэтому нужно разделение контуров на обычный, защищенный и RnD. Работа с чувствительными данными должна идти в защищенном контуре <strong>без возможности копирования.</strong> RnD, напротив, должен быть максимально удобным — с административными правами, доступом в интернет и инструментами, но без продовых данных. Когда бизнес-процессы требуют передачи данных между контурами, вступают в дело инструменты: почту проверяет DLP, обмен файлами через общие папки контролирует DCAP, для переноса баз данных работает система обезличивания. Если начать в обратном порядке — компания получит сотни алертов и тысячи ложных срабатываний, с обработкой которых физически справиться будет просто невозможно.  Лучше посмотреть в первую очередь на процессы в массовых функциях, потому что там чаще всего отмечаются самые высокие риски нарушения контура информационной безопасности.  </p> <a href="https://habr.com/ru/posts/1029226/?utm_campaign=1029226&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 14:57:25 GMT</pubDate>
    <dc:creator><![CDATA[forpe_ople (ОТП Банк)]]></dc:creator>
      
      <category><![CDATA[персональные данные]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[кибербезопасность]]></category><category><![CDATA[пдн]]></category><category><![CDATA[отп банк]]></category><category><![CDATA[dlp]]></category><category><![CDATA[DCAP]]></category><category><![CDATA[CRM]]></category><category><![CDATA[Ciso Forum 2026]]></category><category><![CDATA[финтех]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Геоинформационные сервисы (+2) — 28.04.2026 16:38]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029166/</guid>
    <link>https://habr.com/ru/posts/1029166/?utm_campaign=1029166&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>В НАСА выпустили сервис, в котором можно собрать своё имя из кусочков Земли — <a href="https://science.nasa.gov/specials/your-name-in-landsat/" rel="noopener noreferrer nofollow">Your Name in Landsat</a>.  В сервисе буквы ищутся прямо в снимках со спутников программы Landsat. Работает просто: вводите своё имя, и сервис собирает его из реальных ландшафтов из космоса.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/66f/5d7/673/66f5d76735e70cf3f10641298fbb6a6b.jpg" width="1097" height="860"></figure><p> </p> <a href="https://habr.com/ru/posts/1029166/?utm_campaign=1029166&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 13:38:36 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Your Name in Landsat]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Editor_cloud_ru — Блог компании Cloud.ru (+3) — 28.04.2026 16:31]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/cloud_ru/posts/1029162/</guid>
    <link>https://habr.com/ru/companies/cloud_ru/posts/1029162/?utm_campaign=1029162&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Как запустить игровой маркетплейс на 150 000 пользователей в день и не упасть на пиках: кейс Win Solutions х Cloud.ru</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/5c1/807/dec/5c1807decb20f0f6fb7a74dd373debe8.png" width="1560" height="880"></figure><p>👨‍💻&nbsp;<strong>Что за компания</strong><br>Win Solutions («Вин Солюшенс») — ИТ-интегратор, который разрабатывает и внедряет решения для компаний в России и СНГ, а также берет на себя эксплуатацию продуктов, когда критичны устойчивость и полный контроль инфраструктуры.&nbsp;Win Solutions&nbsp;сотрудничает с&nbsp;Cloud.ru&nbsp;на проектах, где важны предсказуемость продакшена и стабильная работа под высокой нагрузкой.</p><p><strong>🚀 Задача</strong><br>Крупному клиенту&nbsp;интегратора нужен был маркетплейс цифровых игровых товаров, который:</p><ul><li><p>работает без простоев и деградации на пиках (особенно во время маркетинговых активностей);</p></li><li><p>масштабируется по мере роста аудитории;</p></li><li><p>удобен в сопровождении: с мониторингом и понятной эксплуатацией.&nbsp;</p></li></ul><p>Заказчику Win Solutions было критически важно&nbsp;быстро вывести проект в продакшен и гарантировать возможность масштабирования, поэтому выбор провайдера начался незамедлительно. Решающим доводом в пользу Cloud.ru стала оперативная работа технической поддержки и детальная документация.</p><p>☁️&nbsp;<strong>Что сделали</strong><br>Продуктовую среду развернули на облачной&nbsp;платформе&nbsp;<a href="http://Cloud.ru" rel="noopener noreferrer nofollow">Cloud.ru</a><a href="https://cloud.ru/evolution?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=case_win_solutions_28042026" rel="noopener noreferrer nofollow"> Evolution</a>&nbsp;на пяти&nbsp;виртуальных машинах, изолировав значимые компоненты и распределив роли для минимизации зависимостей между ними.</p><p>Суммарная конфигурация:&nbsp;<strong>120 vCPU, 240 ГБ RAM, ~6 ТБ SSD</strong>, на ВМ — Ubuntu 24.04.</p><p>Эксплуатацию закрыли мониторингом в&nbsp;<strong>Zabbix</strong>: команда следит за CPU, RAM, дисками и сетью, контролируя динамику нагрузки и заранее планируя масштабирование. Сейчас запас ресурсов — около 30%, масштабирование выполняется за счет увеличения ресурсов ВМ.&nbsp;На этапе запуска были сбои при развертывании, но команда интегратора вместе со специалистами поддержки Cloud.ru быстро выявили и устранили причины. После отладки работа сервисов стабилизировалась, сбои не повторялись.</p><p>🦾&nbsp;<strong>Что получили в итоге</strong><br>Маркетплейс работает стабильно: за время эксплуатации не было проблем с производительностью и инфраструктурных сбоев.<br>Площадка выдерживает до&nbsp;<strong>150 000 пользователей в день</strong>, а&nbsp;сервис остается доступным и сохраняет высокий уровень клиентского сервиса даже в периоды пиков.&nbsp;</p><p><a href="https://cloud.ru/cases/win-solutions?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=case_win_solutions_28042026" rel="noopener noreferrer nofollow">Подробнее читайте на сайте.</a></p> <a href="https://habr.com/ru/posts/1029162/?utm_campaign=1029162&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 13:31:44 GMT</pubDate>
    <dc:creator><![CDATA[Editor_cloud_ru (Cloud.ru)]]></dc:creator>
      
      <category><![CDATA[облачные сервисы]]></category><category><![CDATA[монетизация игр]]></category><category><![CDATA[масштабирование]]></category><category><![CDATA[высоконагруженные системы]]></category><category><![CDATA[cloud.ru]]></category><category><![CDATA[zabbix]]></category><category><![CDATA[ubuntu]]></category><category><![CDATA[бэкапы]]></category><category><![CDATA[мониторинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @abratko — Программирование (+2) — 28.04.2026 13:08]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029018/</guid>
    <link>https://habr.com/ru/posts/1029018/?utm_campaign=1029018&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Любая система всегда существует в двух основных контекстах: пользовательском и админском. </strong>Есть еще контекст ошибки, но сейчас не про него. <br>Контекст – это не домен, наоборот это часть домена.</p><p>Речь не только про разработку и ИТ.&nbsp; Канализация, кран, автомобиль, самокат, футбольный мячик - это применимо к любой системе физического мира.</p><p>Это применимо к подсистемам: двигатель, коробка передач в автомобиле, каталог или система заказов в e-com.<br><br>Админский контекст имеет интерфейсы и контракты, которые недоступны в пользовательском контексте. Задача админского контекста обеспечить целостность, консистентность настроек системы для корректной и непротиворечивой работы в пользовательском контексте.</p><p>К чему эта мысль?<br><br>Если для вашей системы внутри одного домена/поддомена нужно 2 админских или пользовательских контекста, то скорее всего у вас проблемы в архитектуре системы. 2 варианта:</p><ol><li><p>разделить домены, создав тем самым два слабосвязанных домена со своими контекстами. Это сделает домены проще, их легче поддерживать.</p></li><li><p>объединить дублирующиеся контексты. Если объединение возможно, то скорее всего ваша система перейдет на качественно новый уровень, станет более универсальной и гибкой. </p></li></ol><p>Оба варианта приведут к уменьшению когнитивной сложности и устранению скрытых связей.<br><br>Не дублируйте контексты для домена, это плохо кончится.</p> <a href="https://habr.com/ru/posts/1029018/?utm_campaign=1029018&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 10:08:01 GMT</pubDate>
    <dc:creator><![CDATA[abratko]]></dc:creator>
      
      <category><![CDATA[ddd]]></category><category><![CDATA[контекст]]></category><category><![CDATA[домен]]></category><category><![CDATA[проектирование]]></category><category><![CDATA[программирование]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @hatman — Проектирование API — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028558/</guid>
    <link>https://habr.com/ru/posts/1028558/?utm_campaign=1028558&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class=""><img src="https://habrastorage.org/webt/55/97/dc/5597dc858d362c7b1d96664b78b5a78c.png"></figure><p>Прочитал книжку, которую можно скорее назвать методичкой в силу её небольшого размера: «A Practical Approach to API Design» Кейта Кейси и Джеймса Хиггинботама, 2014 года. Это неплохой материал для понимания, что такое публичное API и каких принципов и паттернов стоит придерживаться при его проектировании.</p><p>Однако стоит уточнить, что книга по текущим меркам уже довольно старая — ей 12 лет. Поэтому некоторые главы посвящены рассуждениям, почему один подход лучше другого, причём эти сравнения сегодня во многом утратили актуальность: один стандарт проиграл, а другой де-факто стал общепринятым.</p><p>Кроме того, это всё же не полноценный обучающий материал, а скорее рассуждение, манифест, который призывает компании становиться API-First и придерживаться этого принципа при разработке API. При этом глава с обоснованием бизнес- и технических преимуществ разработки API остаётся более чем актуальной.</p><p>Читать этот материал в целом уже нет особого смысла, поскольку Лоре Арно в своей книге «Проектирование веб-API» прямо опирался на эту работу (и сам это указал). Поэтому лучше сразу уделить время книге Арно: в ней материал раскрыт в широком обучающем формате. К тому же книга Арно вышла в 2019 году и содержит более актуальную информацию.</p> <a href="https://habr.com/ru/posts/1028558/?utm_campaign=1028558&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 08:03:24 GMT</pubDate>
    <dc:creator><![CDATA[hatman]]></dc:creator>
      
      <category><![CDATA[API]]></category><category><![CDATA[api]]></category><category><![CDATA[книги]]></category><category><![CDATA[обучение]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @VAGNAT — Проектирование и рефакторинг (+4) — 28.04.2026 10:43]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028926/</guid>
    <link>https://habr.com/ru/posts/1028926/?utm_campaign=1028926&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Паттерны проектирования еще актуальны?</strong></p><p>Вокруг все чаще говорят, что ИИ скоро будет писать код за нас. Логичный вопрос — нужны ли тогда паттерны? Зачем разбираться в паттернах GoF, если нейросеть и так сгенерирует рабочий код по описанию?</p><p>У меня ощущение обратное.</p><p>Я плотно вошел в разработку в 2019 году. Переходил из 1С в .NET. Книги по паттернам GoF у меня были, но долго лежали как «книга на полке». Казалось, они оторваны от повседневных задач. Теорию вроде понимал, но не видел, где это реально применяется.</p><p>Все поменялось, когда я стал использовать ИИ как инструмент для обучения. Просил давать задачи, искать проблемы в решениях, объяснять, почему в одном месте уместен Strategy, а в другом лучше Mediator. Через практику и обсуждение паттерны перестали быть абстракцией.</p><p>Чем проще генерировать код, тем важнее понимать его форму и границы. Иначе не ускоришь разработку, а ускоришь накопление технического долга.</p><p>Из этого и вырос мой pet-project <a href="http://gofinsights.com" rel="noopener noreferrer nofollow">gofinsights.com</a>. Я делаю его тренажером по паттернам проектирования. Не просто «прочитал и забыл», а через практику, сравнение решений и постепенное распознавание типовых архитектурных ходов.</p><p>Сейчас там есть интерактивный квиз, где можно проверить базу и не перепутать Factory Method с Abstract Factory. Дальше хочу развивать проект в сторону более глубокого ИИ-разбора. Чтобы можно было не только узнавать паттерн, но и разбирать кодовые запахи, причины проблем и возможную эволюцию решений.</p><p>Как вы это видите? Паттерны проектирования все еще рабочая база для разработчика? Или с появлением ИИ они станут менее важны?</p> <a href="https://habr.com/ru/posts/1028926/?utm_campaign=1028926&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 07:43:49 GMT</pubDate>
    <dc:creator><![CDATA[VAGNAT]]></dc:creator>
      
      <category><![CDATA[паттерны проектирования]]></category><category><![CDATA[паттерны программирования]]></category><category><![CDATA[шаблоны]]></category><category><![CDATA[тренажёр]]></category><category><![CDATA[java]]></category><category><![CDATA[python]]></category><category><![CDATA[csharp]]></category><category><![CDATA[php]]></category><category><![CDATA[go]]></category><category><![CDATA[шаблоны проектирования]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @SimpleOne_it — Блог компании SimpleOne (+4) — 28.04.2026 09:27]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/simpleone/posts/1028884/</guid>
    <link>https://habr.com/ru/companies/simpleone/posts/1028884/?utm_campaign=1028884&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>ESM-платформа SimpleOne 2.1.1: автоматизация многоязычной коммуникации и улучшение управления зависимостями</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/0a4/92b/c72/0a492bc725fefc3e1df5078c83a24ff6.jpg" width="1280" height="1280"></figure><p>SimpleOne выпустила версию 2.1.1 ESM-платформы с двумя ключевыми обновлениями:</p><blockquote><p><strong>Ресурсно-сервисная модель:</strong></p><ul><li><p>Строится на основе классов CMDB и настраиваемых правил связывания</p></li><li><p>CMDB на расширенной модели данных REM позволяет гибко описывать конфигурационные единицы </p></li><li><p>Добавлен справочник правил и типов связей с настройкой визуального отображения</p></li><li><p>Выделен класс «Услуга» для связи бизнес-сервисов с инфраструктурными ресурсами</p></li><li><p>Система автоматически исключает некорректные связи, дубли и циклические зависимости</p></li><li><p>Готовая модель зависимостей для импакт-анализа снижает число аварийных изменений и откатов</p></li></ul></blockquote><p><a href="https://rutube.ru/video/93c25f00e66a20d67f6bfd895b2b1297/" rel="noopener noreferrer nofollow">Смотреть видео</a></p><blockquote><p><strong>Мультиязычные объявления:</strong></p><ul><li><p>Новый виджет для создания объявлений на разных языках системы </p></li><li><p>Автоматическое определение языка пользователя и отображение контента </p></li><li><p>При отсутствии перевода показывается язык по умолчанию </p></li><li><p>Централизованное хранение и автоматическое обновление переводов обеспечивают целостность данных</p></li></ul></blockquote><p><a href="https://rutube.ru/video/62d68c2ea56064be1b58a9b0d6f39bb9/" rel="noopener noreferrer nofollow">Смотреть видео</a></p><p><a href="https://simpleone.ru/news/esm-2-1-1" rel="noopener noreferrer nofollow">Узнайте больше об</a> <a href="https://simpleone.ru/news/esm-2-1-1" rel="noopener noreferrer nofollow">обновлении 2.1.1</a>  <br><a href="https://docs.simpleone.ru/esm" rel="noopener noreferrer nofollow">Техническая документация</a></p> <a href="https://habr.com/ru/posts/1028884/?utm_campaign=1028884&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 06:27:52 GMT</pubDate>
    <dc:creator><![CDATA[SimpleOne_it (SimpleOne)]]></dc:creator>
      
      <category><![CDATA[simpleone]]></category><category><![CDATA[enterprise]]></category><category><![CDATA[esm]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Статистика в IT (+3) — 28.04.2026 08:58]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028872/</guid>
    <link>https://habr.com/ru/posts/1028872/?utm_campaign=1028872&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Согласно долгосрочной <a href="https://damrnelson.github.io/github-historical-uptime/" rel="noopener noreferrer nofollow">статистике статуса доступности сервисов GitHub</a>, после покупки платформы Microsoft аптайм проекта начал незначительно, но стабильно снижаться.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/b4f/ead/433/b4fead4336b6e7e702d74c17f0d74605.png" width="1368" height="926"></figure> <a href="https://habr.com/ru/posts/1028872/?utm_campaign=1028872&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 05:58:07 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[github]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Искусственный интеллект (+4) — 28.04.2026 08:33]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028860/</guid>
    <link>https://habr.com/ru/posts/1028860/?utm_campaign=1028860&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Представлен открытый проект <a href="https://github.com/hyperfield/ai-file-sorter" rel="noopener noreferrer nofollow">AI File Sorter</a>. Это ИИ‑проводник, который может заменить базовый «Проводник» в&nbsp;Windows 11&nbsp;и других ОС. Решение умеет: </p><ul><li><p>быстро искать файлы на&nbsp;основе их метаданных или&nbsp;содержимого;</p></li><li><p>по&nbsp;метаданным разом переименовывает все документы на&nbsp;основе их содержимого;</p></li><li><p>быстро сгруппирует файлы по&nbsp;папкам на&nbsp;основе их содержимого;</p></li><li><p>показывает предварительный результат, чтобы случайно не&nbsp;снести&nbsp;лишнего;</p></li><li><p>работает по&nbsp;API или&nbsp;через локальные модели;</p></li><li><p>поддерживает Windows, Linux и macOS;</p></li><li><p>проверяет производительность ПК и выберет нейросети для работы;</p></li><li><p>доступен бесплатно, без&nbsp;подписок и без рекламы.</p></li></ul><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/d69/dea/99c/d69dea99c8ecc5ee218ca1d3abe0d731.jpg" width="1258" height="1280"></figure> <a href="https://habr.com/ru/posts/1028860/?utm_campaign=1028860&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 05:33:35 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[AI File Sorter]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dugalb — Python (+2) — 28.04.2026 05:54]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028848/</guid>
    <link>https://habr.com/ru/posts/1028848/?utm_campaign=1028848&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/c26/a3c/8ef/c26a3c8ef1efc23c9278c851cd3e5574.png" width="860" height="578"></figure><p><strong>Разрываем шаблоны: строим график с&nbsp;разрывом всего на 65&nbsp;строк</strong> </p><p>Иногда нужно скрыть часть графика используя&nbsp;линию обрыва, чтобы показать данные с&nbsp;сильно различающимися значениями. Например, когда один язык программирования популярнее остальных в&nbsp;разы.</p><p>Самые ходовые решения этой проблемы&nbsp;— разорванная ось (broken axis) или&nbsp;отдельные бины для&nbsp;аномалий. Проблема в&nbsp;том, что&nbsp;в&nbsp;Matplotlib нет готовой «кнопки» для&nbsp;создания гистограммы с&nbsp;разрывом. Но&nbsp;это легко* собирается руками на&nbsp;уровне нескольких осей.</p><p>Вот три рабочих подхода&nbsp;— выбирайте под&nbsp;свою задачу.</p><ol><li><p>Официальный пример из&nbsp;документации Matplotlib. 🔗 <a href="https://matplotlib.org/stable/gallery/subplots_axes_and_figures/broken_axis.html" rel="noopener noreferrer nofollow">Ссылка на&nbsp;гайд</a>. Отлично работает, когда выбросы зашкаливают по&nbsp;одной оси (X или&nbsp;Y). В&nbsp;посте разбирается как&nbsp;раз такой случай: гистограмма с&nbsp;волнистой&nbsp;линией обрыва.</p></li><li><p>Библиотека <strong>brokenaxes </strong>делает почти всё сама. Устанавливается стандартно через pip. Вариант для&nbsp;тех, кто не&nbsp;хочет углубляться в&nbsp;ручную настройку.</p></li><li><p>Логарифмическая шкала (часто&nbsp;— самый простой выход) Если выбросы строго положительные и отличаются на&nbsp;порядки, иногда достаточно двух строк: plt.xscale(«log») или&nbsp;plt.yscale(«log»). Никаких разрывов, никакой ручной работы&nbsp;— при&nbsp;этом график остаётся чистым и читаемым.</p></li></ol><pre><code class="python">import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.path import Path


def plot_broken_axis(
    labels: list[str],
    values: tuple[float, ...],
    ylim_low=(0, 12),
    ylim_high=(20, 25),
    **kwargs,
):
    """
    Строит график с разрывом оси.
    Валидирует входные данные и инкапсулирует логику отрисовки.
    """
    if len(labels) != len(values):
        raise ValueError("Длины labels и values не совпадают")

    fig, (ax_high, ax_low) = plt.subplots(
        nrows=2, figsize=(7, 4), gridspec_kw={"height_ratios": [1, 2]}
    )

    # Настройки столбцов
    kwargs.setdefault("color", "skyblue")
    kwargs.setdefault("edgecolor", "black")
    kwargs.setdefault("alpha", 0.85)

    ax_low.bar(labels, values, **kwargs)
    ax_high.bar(labels, values, **kwargs)
    fig.subplots_adjust(hspace=0.0)

    # Настройка осей
    ax_low.set_ylim(*ylim_low)
    ax_high.set_ylim(*ylim_high)
    ax_high.set_title("График с разрывом")
    ax_low.set_ylabel("Рейтинг в %")
    ax_low.set_xlabel("Языки")
    ax_high.spines["bottom"].set_visible(False)
    ax_low.spines["top"].set_visible(False)
    ax_high.tick_params(axis="x", bottom=False, labelbottom=False)
    # Рисуем разрыв оси (волна)
    offset, n_points = 0.03, 33
    pts = np.linspace(-offset, 1 + offset, n_points)
    wave = np.array([1 + (0, offset, 0, -offset)[i % 4] for i in range(n_points)])
    path = Path(list(zip(pts, wave)), [Path.MOVETO] + [Path.CURVE3] * (n_points - 1))

    opts = dict(transform=ax_low.transAxes, clip_on=False, zorder=10)
    ax_low.add_patch(mpatches.PathPatch(path, lw=6, **opts))
    ax_low.add_patch(mpatches.PathPatch(path, lw=3, edgecolor="white", **opts))
    return fig


if __name__ == "__main__":
    langs = ["Python", "C", "C++", "Asm"]
    pops = (21.8, 11.1, 8.6, 1.1)

    # Стиль xkcd
    with plt.xkcd(scale=1, length=300, randomness=30):
        plt.rcParams["font.family"] = "Comic Sans MS"

        # Вызов функции
        fig = plot_broken_axis(langs, pops)
        plt.show()</code></pre><p>Литература:</p><ul><li><p>Документация Matplotlib. 🔗 <a href="https://matplotlib.org/stable/gallery/subplots_axes_and_figures/broken_axis.html" rel="noopener noreferrer nofollow">Ссылка на&nbsp;гайд</a></p></li><li><p>Bernd Klein. Numerisches Python Arbeiten mit NumPy, Matplotlib und Pandas</p></li><li><p>Sandro Tosi. Matplotlib for Python Developers</p></li></ul> <a href="https://habr.com/ru/posts/1028848/?utm_campaign=1028848&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 02:54:03 GMT</pubDate>
    <dc:creator><![CDATA[dugalb]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[matplotlib]]></category><category><![CDATA[refactoring]]></category><category><![CDATA[data-visualisation]]></category><category><![CDATA[bestpractices]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
