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

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

  <channel>
    <title><![CDATA[Все статьи подряд / Ruby / Хабр]]></title>
    <link>https://habr.com/ru/hubs/ruby/articles/</link>
    <description><![CDATA[Ruby – динамический высокоуровневый язык программирования]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sat, 14 Nov 2026 06:46:47 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Репо теперь приватный]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1106142/</guid>
      <link>https://habr.com/ru/articles/1106142/?utm_campaign=1106142&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>что ж судя по карме вам не понравился перевод вообще. Вы вправе оставлять свою  оценку такой, какой посчитаете нужной, но и я вправе сделать репо приватным и не переводить книги больше. Видите ли весь этот энтузиазм с переводами держался только на поддержке, которой судя по нынешней карме и ваших других оценках моих постов больше нет.</p><p>Сейчас я не собираюсь клянчить у вас карму комменты или что-то подобное, я просто говорю что репо теперь стал приватным.</p><p>Удачи тем кому понравился перевод, если у вас не осталось локального клонированного репо то скажите спасибо тем, кому перевод не зашел. Я не оскорбляю тех кому не понравилась книга или код внутри нее, просто знайте теперь того, что вам не нравится стало меньше.</p><p>Если я увижу что многим перевод все же интересен я подумаю над тем, чтобы сделать репо снова публичным но как я вижу сейчас - смысла нету. Повторяюсь я не клянчу карму комменты и прочее просто жалко, что так получилось.</p> <a href="https://habr.com/ru/articles/1106142/?utm_campaign=1106142&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 10 Nov 2026 13:17:51 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[книга]]></category><category><![CDATA[репозиторий]]></category><category><![CDATA[rust]]></category><category><![CDATA[ruby]]></category><category><![CDATA[перевод]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Еще раз привет хабру! Это обещаный в прошлых постах отрывок из 9 главы отшлифованный конечно не в плане кода, но все же]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1105180/</guid>
      <link>https://habr.com/ru/articles/1105180/?utm_campaign=1105180&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Еще раз привет хабру! Это обещаный в прошлых постах отрывок из 9 главы отшлифованный конечно не в плане кода, но все же вот отрывок. 9 глава - глава о фишинге и wasm(WebAssembly):</p><p>Глава 9. Фишинг с помощью WebAssembly</p><p>Иногда найти технические уязвимости невозможно: у вас нет навыков, нет подходящей команды или просто нет времени.</p><p>Когда вы не можете атаковать инфраструктуру, вы атакуете людей. И у меня хорошие новости: они в большинстве случаев гораздо более уязвимы, чем инфраструктура. Более того, фишинговые атаки особенно дёшевы.</p><p>Но, в то время как компьютерный взлом требует глубоких технических знаний о том, как работают операционные системы и языки программирования, «человеческий» взлом требует понимания того, как работают люди, чтобы влиять на них.</p><p>9.1 Социальная инженерия</p><p>Социальная инженерия — это всё об убеждении. Убеждении кого-то дать вам фрагменты информации, сделать что-то или дать вам доступ, которого у вас быть не должно.</p><p>Хотя это редко присутствует в инженерных учебных программах, умение убеждать — ключевой элемент любой инициативы: как только вы хотите что-то сделать, найдётся кто-то, кто найдёт причину возразить. Это оставляет вам 2 варианта:</p> <a href="https://habr.com/ru/articles/1105180/?utm_campaign=1105180&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 10 Nov 2026 11:30:57 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[rust]]></category><category><![CDATA[ruby]]></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[И снова привет хабру еще раз! Прошлый пост был по 7 главе, где я написал о том что сегодня выйдет 8 отрывок из 8 главы,...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1105174/</guid>
      <link>https://habr.com/ru/articles/1105174/?utm_campaign=1105174&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>И снова привет хабру еще раз! Прошлый пост был по 7 главе, где я написал о том что сегодня выйдет 8 отрывок из 8 главы, соответственно вот он. Так, как 8 глава - глава о шеллкодах, то я выбрал по моему мнению наиболее подходящий отрывок:</p><p>Глава 8. Написание шеллкодов на Rust</p><p>Поскольку у моего первого компьютера был всего 1 ГБ оперативной памяти (Asus EeePC), мои хобби были очень низкоуровневыми и нетребовательными к ресурсам.</p><p>Одно из таких хобби было создание шеллкодов. Не ради наступательного взлома или чего-то подобного, а просто ради искусства написания ассемблера x86. Можно потратить огромное количество времени на создание шеллкодов: ASCII-шеллкоды (шеллкоды, финальное шестнадцатеричное представление которых состоит только из байтов ASCII-таблицы), полиморфные шеллкоды (шеллкоды, которые могут переписывать сами себя и тем самым снижают обнаружимость и замедляют реверс-инжиниринг…). Как и в поэзии, пределы ставит только ваше воображение.</p><p>8.1 Что такое шеллкод</p><p>Цель эксплойта — выполнить код. Шеллкод — это сырой код, выполняемый на эксплуатируемой машине.</p><p>Но есть проблема: написание шеллкодов обычно выполняется напрямую на ассемблере. Это даёт вам абсолютный контроль над тем, что вы создаёте, но недостаток в том, что это требует много знаний, трудно отлаживать, абсолютно не переносимо между архитектурами и является кошмаром для переиспользования и сопровождения с течением времени и командами из нескольких разработчиков.</p><p>Вот пример шеллкода:</p> <a href="https://habr.com/ru/articles/1105174/?utm_campaign=1105174&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 09 Nov 2026 11:30:39 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></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[Снова привет хабру! Сегодня я отшлифовал сразу 3 главы - 7, 8, и 9 главу. Они уже лежат на гитхабе здесь будет отрывок...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1105170/</guid>
      <link>https://habr.com/ru/articles/1105170/?utm_campaign=1105170&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Снова привет хабру! Сегодня я отшлифовал сразу 3 главы - 7, 8, и 9 главу. Они уже лежат на гитхабе здесь будет отрывок из 7 главы. Из 8 главы отрывок будет завтра, а соответственно отрывок из 9 будет после завтра. Я выбрал самый первый кусок главы и чуть-чуть больше:</p><p>Глава 7. Разработка эксплойтов</p><p>Теперь мы знаем, как находить уязвимости, пришло время активно эксплуатировать наши находки.</p><p>Эксплойт — это фрагмент кода, используемый для запуска уязвимости.</p><p>Обычно эксплойты разрабатываются либо на Python для удалённых эксплойтов, либо на C для локальных эксплойтов.</p><p>Освоение обоих языков сложно, а наличие 2 совершенно разных языков препятствует переиспользованию кода.</p><p>А что, если бы у нас был один язык, достаточно низкоуровневый, но при этом предоставляющий высокоуровневые абстракции, исключительно быстрый, легко кросс-компилируемый, и всё это будучи безопасным по памяти, хорошо переиспользуемым и крайне надёжным?</p><p>Вы поняли! Rust — идеальный язык для разработки эксплойтов.</p><p>Написав эксплойт на Rust, мы можем использовать его как бинарник, встроить в более крупный эксплуатационный инструментарий или встроить в RAT. Всего этого очень трудно достичь, когда эксплойты пишутся на Python или C. В Rust это просто вопрос создания крейта.</p><p>7.1 Где искать эксплойты</p><p>В главе 5 мы видели, где искать известные уязвимости: на&nbsp;<a href="http://www.cvedetails.com" rel="noopener nofollow">www.cvedetails.com</a>, а в главе 6 — как находить собственные уязвимости.</p><p>Затем у вас есть 2 возможности:</p> <a href="https://habr.com/ru/articles/1105170/?utm_campaign=1105170&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 08 Nov 2026 17:35:29 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[книга]]></category><category><![CDATA[перевод]]></category><category><![CDATA[перевод с английского]]></category><category><![CDATA[исходник]]></category><category><![CDATA[текст]]></category><category><![CDATA[отрывок из книги.]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Привет хабр! Извиняюсь, что все это время я к сожалению не придерживался старого графика 1 глава — 1 день ( был занят)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1104770/</guid>
      <link>https://habr.com/ru/articles/1104770/?utm_campaign=1104770&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Привет хабр! Извиняюсь, что все это время я к сожалению не придерживался старого графика 1 глава - 1 день, так, как был сильно занят, но сейчас за этот день готовы целых 2 главы — 5 и 6 вот как пример перевода отлаженый кусок 5 главы:</p><p>5.3 Поисковые системы</p><p>Назначение поисковой системы — превратить океан данных в искомую и пригодную для действий информацию.</p><p>Поисковая система состоит из следующих частей:</p> <a href="https://habr.com/ru/articles/1104770/?utm_campaign=1104770&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 06 Nov 2026 21:59:29 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[программирование]]></category><category><![CDATA[книга]]></category><category><![CDATA[часть]]></category><category><![CDATA[исходник]]></category><category><![CDATA[кодинг]]></category><category><![CDATA[на русском]]></category><category><![CDATA[перевод]]></category><category><![CDATA[перевод с английского]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[И снова привет хабру! Сегодня подправил 4 главу, исправил  опять таки то, что режет слух. 4 глава уже лежит на гитхабе...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1103612/</guid>
      <link>https://habr.com/ru/articles/1103612/?utm_campaign=1103612&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>И снова привет хабру! Сегодня подправил 4 главу, исправил  опять таки то, что режет слух. 4 глава уже лежит на гитхабе путь тот же. И вот как пример правленого перевода подраздел 4.2 Трейты:</p><p>4.2 Трейты</p><p>Трейты — это эквивалент интерфейсов из других языков (с некоторыми отличиями).</p><p>Так как определение термина через его синоним не очень полезно, посмотрим, что это означает в коде:</p> <a href="https://habr.com/ru/articles/1103612/?utm_campaign=1103612&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 04 Nov 2026 17:44:25 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[rust]]></category><category><![CDATA[ruby]]></category><category><![CDATA[программирование]]></category><category><![CDATA[кодинг]]></category><category><![CDATA[книга]]></category><category><![CDATA[исходник]]></category><category><![CDATA[перевод]]></category><category><![CDATA[адаптивная вёрстка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Привет хабр еще раз! Сегодня мы обсудим тему из&nbsp;книги Black Hat Rust, а&nbsp;именно подраздел первой главы «Почему...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1103100/</guid>
      <link>https://habr.com/ru/articles/1103100/?utm_campaign=1103100&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Привет хабр еще раз! Сегодня мы обсудим тему из&nbsp;книги Black Hat Rust, а&nbsp;именно подраздел первой главы «Почему Rust?». Этот кусок текста уже полностью адаптирован и ничего больше не&nbsp;должно резать слух.</p><p>Итак: Почему Rust?</p><p>Мир безопасности (и, в&nbsp;более широком смысле, софта) страдает от&nbsp;слишком большого количества языков программирования со слишком большим количеством граблей. Приходится выбирать между быстрым, но&nbsp;небезопасным (C, C++…) и медленным, но&nbsp;в&nbsp;основном безопасным (Python, Java…).</p><p>Может&nbsp;ли кто‑то быть экспертом во&nbsp;всех этих языках одновременно? Я так не&nbsp;думаю. Бесчисленные баги и уязвимости в&nbsp;инструментах атакующих доказывают, что&nbsp;я прав.</p><p>А&nbsp;что, если&nbsp;бы вместо этого у&nbsp;нас был один‑единственный язык?</p><p>Язык, который, будучи освоенным, удовлетворял&nbsp;бы все потребности области:</p> <a href="https://habr.com/ru/articles/1103100/?utm_campaign=1103100&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 03 Nov 2026 11:00:21 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[rust]]></category><category><![CDATA[ruby]]></category><category><![CDATA[кодинг]]></category><category><![CDATA[программирование]]></category><category><![CDATA[анонс]]></category><category><![CDATA[демо]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Привет хабру! Снова.  В общем пока вы голосуете в опросе и пока побеждает Malware Development for Ethical...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1102782/</guid>
      <link>https://habr.com/ru/articles/1102782/?utm_campaign=1102782&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Привет хабру! Снова.</p><p>В общем пока вы голосуете в опросе и пока побеждает Malware Development for Ethical Hackers&nbsp;от&nbsp;Zhassulan Zhussupov</p><p>Я исправляю некоторые неправильности  перевода, которые режут слух пока что почти закончил 3 главу Black Hat Rust поэтому довольно скоро будет релиз уже полностью исправленной книги и потом возьмусь за Black Hat Ruby и надеюсь за то время, что я буду править перевод книг в опросе проголосует побольше людей вот ссылка если кто не видел прошлый пост <a href="https://forms.gle/pny2pD7G7f5Fhtno7" rel="noopener nofollow">https://forms.gle/pny2pD7G7f5Fhtno7</a></p><p>Связаться со мной или сообщить о некоторый неправильностях перевода например можно в группе в тг вот ссылка <a href="https://t.me/+Xome2X_nj-wyMDcy" rel="noopener nofollow">https://t.me/+Xome2X_nj-wyMDcy</a> только не переусердствуйте!</p><p>Также хочу выразить огромную благодарность человеку с ником <a href="https://habr.com/ru/users/stxdtm/" rel="noopener nofollow">@stxdtm</a> на хабре за то, что он единственный сказал про то, что в переводе некоторые слова режут слух.</p> <a href="https://habr.com/ru/articles/1102782/?utm_campaign=1102782&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 02 Nov 2026 13:02:22 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rust]]></category><category><![CDATA[программирование]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[технологии]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[В OpenIDE появилась поддержка Ruby: редактор, отладчик, тесты и Rails]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/haulmont/articles/1101160/</guid>
      <link>https://habr.com/ru/companies/haulmont/articles/1101160/?utm_campaign=1101160&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/extt/57/9b/7b/579b7bb7cfd493269741e2ec16651f1b.jpeg" /><p>В OpenIDE появилась поддержка Ruby — с подсказками в редакторе, навигацией по коду, запуском и отладкой приложений. Работать с базами данных и Docker-контейнерами тоже можно прямо в IDE. </p><p>А в OpenIDE Pro можно подключить Claude Code, Codex и других AI-агентов, поручать им задачи и проверять изменения в том же окне.</p> <a href="https://habr.com/ru/articles/1101160/?utm_campaign=1101160&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 29 Oct 2026 10:29:33 GMT</pubDate>
      <dc:creator><![CDATA[honest_niceman (Haulmont)]]></dc:creator>
      
      <category><![CDATA[OpenIDE]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category><category><![CDATA[IDE]]></category><category><![CDATA[IntelliJ Platform]]></category><category><![CDATA[отладка]]></category><category><![CDATA[AI-агенты]]></category><category><![CDATA[Claude Code]]></category><category><![CDATA[Codex]]></category><category><![CDATA[Docker]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что же мне перевести следующим?  Вижу вам зашел перевод книг особенно Black Hat Rust в посте я обещал сделать опрос...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1099598/</guid>
      <link>https://habr.com/ru/articles/1099598/?utm_campaign=1099598&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Что же мне перевести следующим?</p><p>Вижу вам зашел перевод книг особенно Black Hat Rust в посте я обещал сделать опрос если вам понравится перевод ну чтож ссылка на опрос в конце поста. </p><p>В общем, как я и обещал вот опрос <a href="https://docs.google.com/forms/d/e/1FAIpQLSdZnLR_qH0_Yiutv_F4KNBEH4GWYlgLzo-yWOjObn_2UdScjg/viewform?usp=header" rel="noopener nofollow">https://docs.google.com/forms/d/e/1FAIpQLSdZnLR_qH0_Yiutv_F4KNBEH4GWYlgLzo-yWOjObn_2UdScjg/viewform?usp=header</a></p> <a href="https://habr.com/ru/articles/1099598/?utm_campaign=1099598&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 26 Oct 2026 14:00:43 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></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[Как вайбкодинг доводит до депрессии, как потом лечиться]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1099442/</guid>
      <link>https://habr.com/ru/articles/1099442/?utm_campaign=1099442&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Кажется, у вайб-кодинга обнаружился довольно неожиданный побочный эффект. Он может лишить программиста удовольствия от программирования.</p><p>Причём самое обидное, что для этого AI-агенту даже не нужно писать плохой код. Наоборот, чем лучше он справляется, тем интереснее становится проблема.</p><p>Представьте: раньше вы открывали редактор, придумывали архитектуру, писали какой-нибудь модуль, несколько раз его переделывали, обнаруживали красивое решение и испытывали вполне понятное удовольствие от результата.</p><p>Теперь вы открываете редактор, объясняете агенту, что нужно сделать, и получаете готовую реализацию.</p><p>Если всё прошло хорошо, остаётся посмотреть diff, запустить тесты, оценить результат и принять изменения.</p><p>Прекрасно. Производительность выросла, рутинной работы стало меньше. Только куда-то исчез довольно существенный кусок самого программирования.</p><p>И вот у меня вопрос: а если человеку нравился именно этот процесс?</p><p>Я, конечно, говорю о депрессии в бытовом смысле. Меня интересует потеря удовольствия от привычной деятельности. Причём деятельности, которой многие из нас добровольно занимались и после работы.</p><p>Мне кажется, мы довольно много обсуждаем, насколько AI-агенты увеличивают производительность программистов, и гораздо меньше говорим о том, как они меняют само удовольствие от разработки.</p><p>А ведь программисту, вообще-то, должно нравиться программировать.</p> <a href="https://habr.com/ru/articles/1099442/?utm_campaign=1099442&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Чтобы вылечить депрессию нужен простой...</a>]]></description>
      
      <pubDate>Mon, 26 Oct 2026 10:02:12 GMT</pubDate>
      <dc:creator><![CDATA[Cartienj]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[ai]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Перевел на русский Black Hat Rust и Black Hat Ruby!  В общем, как все было: решил я подучить Rust но столкнулся с очень...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1099156/</guid>
      <link>https://habr.com/ru/articles/1099156/?utm_campaign=1099156&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Перевел на русский Black Hat Rust и Black Hat Ruby!</p><p>В общем, как все было: решил я подучить Rust но столкнулся с очень внезапной и странной проблемой книга есть только на английском. Английский я хоть и знаю, но сидеть и вручную переводить каждое непонятное техническое слово это боль для настолько ленивого человека как я, особенно когда там около 300 страниц технического английского текста.</p><p>Также мне по чистой случайность помимо раста попалась и книга по руби её я тоже взял и перевел, код я под новые версии языка хоть и не адаптировал, да и текст на картинках не переводил но вроде бы получилось довольно неплохо надеюсь многим понравится ну или хотябы там нескольким может)</p><p>Сразу скажу перевод неофициальный, если кто то против, пост могу и удалить (надеюсь не придется). </p><p>Сейчас уже готовы сразу две книги это Black Hat Rust и Black Hat Ruby еще в планах переводить еще книги тоже технические например какую-небудь книгу по C++ или что то подобное, честно пока идей нет скоро если вам пост зайдет сделаем опрос что в итоге то переводить следующим. Если вдруг хотите поддержать мой перевод то в репо есть криптокошелек там все указано (Ну это если прям сильно захочется, а так комменты и например звезды на репо на гитхабе это тоже поддержка которой я буду очень благодарен)</p><p>ну а вот и ссылка на репо <a href="https://github.com/smokeplay250-png/black-hat-ru" rel="noopener nofollow">https://github.com/smokeplay250-png/black-hat-ru</a> </p> <a href="https://habr.com/ru/articles/1099156/?utm_campaign=1099156&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 25 Oct 2026 15:58:15 GMT</pubDate>
      <dc:creator><![CDATA[Xz415]]></dc:creator>
      
      <category><![CDATA[rust]]></category><category><![CDATA[ruby]]></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[Выложил в открытый доступ небольшой инструмент, который сделал для своей работы: расширение для SketchUp, импортирующее...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1097668/</guid>
      <link>https://habr.com/ru/articles/1097668/?utm_campaign=1097668&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Выложил в открытый доступ небольшой инструмент, который сделал для своей работы: расширение для SketchUp, импортирующее сборки STEP.</p><p>Ruby API SketchUp не умеет читать STEP напрямую, поэтому расширение запускает FreeCAD в фоне и собирает модель в SketchUp:</p><p>- иерархия сборки сохраняется в виде групп <br>- повторяющиеся детали (винты, гайки) становятся компонентами <br>- тяжёлые узлы, например плата с компонентами, склеиваются в один меш: ~1200 деталей импортируются за секунды <br>- собственное окно прогресса, результат сохраняется в .skp</p><p>По пути наткнулся на несколько подводных камней производительности Ruby API SketchUp (add_faces_from_mesh против fill_from_mesh, молчаливая склейка точек) и описал их в README для других разработчиков расширений.</p><p>Windows, SketchUp 2021+, лицензия MIT. Это ранний релиз: цвета пока не импортируются. Буду рад отзывам и issues.</p><p>GitHub: <a href="https://github.com/eugenyh/sketchup-step-importer" rel="noopener nofollow">https://github.com/eugenyh/sketchup-step-importer</a></p> <a href="https://habr.com/ru/articles/1097668/?utm_campaign=1097668&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 22 Oct 2026 06:36:24 GMT</pubDate>
      <dc:creator><![CDATA[eugesha]]></dc:creator>
      
      <category><![CDATA[sketchup]]></category><category><![CDATA[STEP]]></category><category><![CDATA[STL]]></category><category><![CDATA[import]]></category><category><![CDATA[freecad]]></category><category><![CDATA[ruby]]></category><category><![CDATA[python]]></category><category><![CDATA[opensource]]></category><category><![CDATA[plugin sketchup]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ruby всё ещё в продакшене. Но кто будет писать на нём через 10 лет?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1090540/</guid>
      <link>https://habr.com/ru/articles/1090540/?utm_campaign=1090540&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Rails получает релизы, большие системы работают, но вход в профессию сузился: рынку нужны middle и senior, а мест, где ими становятся, заметно меньше. Почему ставка на агентов этот разрыв не закрывает.</p> <a href="https://habr.com/ru/articles/1090540/?utm_campaign=1090540&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 06 Oct 2026 05:05:11 GMT</pubDate>
      <dc:creator><![CDATA[vovkats]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[ruby on rails]]></category><category><![CDATA[найм разработчиков]]></category><category><![CDATA[ии]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[DHH перестал писать код руками. Как мнение одного инженера влияет на целую индустрию]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1087152/</guid>
      <link>https://habr.com/ru/articles/1087152/?utm_campaign=1087152&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>DHH за год прошёл от страха потерять навык из-за AI до отказа писать код руками. Почему разворот одного инженера меняет то, какие инструменты другие считают допустимыми, и где заканчивается применимость его опыта.</p> <a href="https://habr.com/ru/articles/1087152/?utm_campaign=1087152&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 28 Sep 2026 06:05:50 GMT</pubDate>
      <dc:creator><![CDATA[vovkats]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rails]]></category><category><![CDATA[dhh]]></category><category><![CDATA[индустрия]]></category><category><![CDATA[ии]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мысли про DHH, Rails и AI в Ruby  Посмотрел выступление DHH с Rails World 2026. Ниже просто мои мысли по поводу того,...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1086486/</guid>
      <link>https://habr.com/ru/articles/1086486/?utm_campaign=1086486&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><strong>Мысли про DHH, Rails и AI в Ruby</strong></p><p>Посмотрел выступление DHH с Rails World 2026. Ниже просто мои мысли по поводу того, что он говорил.</p><p>Никто не спорит что DHH гениальный маркетолог. Помню еще по истории  когда он пересел с Mac на Linux и начал активно про него рассказывать, потом появились Omakub и Omarchy. В какой-то момент это местами звучало почти как проповедь.</p><p>С рельсой у меня сейчас похожее ощущение. DHH рассказывает, что Rails чуть ли не идеально подходит для эпохи AI: convention over configuration, мало кода, агенту проще разобраться в проекте, меньше токенов тратится, в этом есть логика. Но Надо помнить что Ruby является динамическим типизированным языком. Сам DHH статическую типизацию исторически не особо любит и, насколько я знаю, Sorbet или RBS активно не использует. Для человека отсутствие типов вполне может быть плюсом: быстрее пишешь код, не надо делать перегонять данные из одного типа в другой. Но для AI типы — это дополнительная информация. Поэтому мне не очень понятно, почему динамичность Ruby должна быть большим преимуществом именно в эпоху AI.</p><p>Но самое интересное не это. В том же выступлении DHH рассказывает, что в 37signals теперь фактически <code>pencils down</code> — код руками стараются почти не писать. И одновременно рассказывает, что HEY переписывают с использованием Rust. Причём, по его словам, получили огромную экономию CPU и памяти. </p><p>Сам DHH ещё говорит:</p><p><code>If I look at the past 21 years, over half of my work was Ruby code. This year, about 3%.</code></p><p>что раньше больше половины его кода было на Ruby, а в этом году что-то около 3%.</p> <a href="https://habr.com/ru/articles/1086486/?utm_campaign=1086486&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 25 Sep 2026 06:57:50 GMT</pubDate>
      <dc:creator><![CDATA[vovkats]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rails]]></category><category><![CDATA[ai]]></category><category><![CDATA[dhh]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[После Ruby/Elixir в Go, часть 1  Когда я начал писать на Go после опыта с Ruby и Elixir, одной из самых непривычных...]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1084108/</guid>
      <link>https://habr.com/ru/articles/1084108/?utm_campaign=1084108&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><strong>После Ruby/Elixir в Go, часть 1</strong></p><p>Когда я начал писать на Go после опыта с Ruby и Elixir, одной из самых непривычных вещей стало отсутствие консоли, в которой можно напрямую вызывать код приложения.</p><p>Для рубиста такая консоль почти универсальный пульт управления приложением(но пульт довольно опасный). Если нужно посмотреть, что происходит с конкретным пользователем, можно просто открыть консоль, найти его, вызвать нужный метод и понять, почему, например, не работает какая-то функция.</p><p>Набираешь:</p><p><code>bundle exec rails c</code></p><p>И через несколько секунд уже находишься внутри приложения и можешь работать с его кодом и данными.  Только вместо кнопок у разработчика код. Надо помнить: «С большой силой приходит большая ответственность». © Дядя Бен.</p><p>Например, приходит вопрос:</p> <a href="https://habr.com/ru/articles/1084108/?utm_campaign=1084108&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 19 Sep 2026 10:05:04 GMT</pubDate>
      <dc:creator><![CDATA[vovkats]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[ruby]]></category><category><![CDATA[elixir]]></category><category><![CDATA[админка]]></category><category><![CDATA[боль]]></category><category><![CDATA[сравнение]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Codebase Intelligence для агента: строим «dev tool будущего» и сразу тестируем на Rails монолите в 3,5M+ строк]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1084028/</guid>
      <link>https://habr.com/ru/articles/1084028/?utm_campaign=1084028&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/26b/3ed/0c4/26b3ed0c422996fefc6de414d27ad244.jpg" /><p><strong>Сгенерированная картинка для привлечения внимания. Промпт: «Продемонстрируй, что всё новое — это хорошо забытое старое» (нет)</strong></p><p>За последний год инструментов для агентной разработки стало столько, что в них легко потеряться: одни обещают сохранять контекст между сессиями, другие — «понимать» всю кодовую базу целиком, третьи — память, планирование и автономность в одном флаконе. На GitHub каждую неделю появляются репозитории с внушительным (и не всегда честно заработанным) числом звёзд, которые обещают всё и сразу, а на поверку оказываются README-проектами; другие честно работают на демо-репозитории и падают с OOM при первой же встрече с реальным энтерпрайз-проектом — и так далее, список можно продолжать долго.</p><p>Осенью прошлого года я пользовался связкой <strong>Claude</strong> + <strong><a href="https://roocode.com" rel="noopener nofollow">RooCode</a></strong> + <a href="https://habr.com/ru/articles/834356/" rel="noopener nofollow">семантический поиск</a> на <strong>Ollama</strong>, и это был мой основной рабочий инструмент — ровно до того момента, как связка перестала работать (об этом чуть ниже). Я решил полностью пересесть на <strong>Claude Code</strong> и начал искать замену семантическому индексу, но так её и не нашёл: альтернативы для меня просто не работали — на монолите в 3,5M+ строк они либо индексировались часами, либо требовали отдать код в облако (и заплатить немалую сумму за эмбеддинги!!!), либо поддерживали Ruby, мягко говоря, номинально. В итоге я принял непростое для себя решение сделать собственный инструмент — начав с форка простого движка семантического поиска на <strong>Ollama</strong> + <strong>Qdrant</strong> — и, что характерно, сделал: полностью локальный, чтобы ни код, ни его производные (индекс, эмбеддинги, граф вызовов) никуда не уезжали. На сегодняшний день на него ушло больше полугода (и, честно признаюсь, не одна сотня чашек чая).</p> <a href="https://habr.com/ru/articles/1084028/?utm_campaign=1084028&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 18 Sep 2026 19:04:38 GMT</pubDate>
      <dc:creator><![CDATA[art2rik]]></dc:creator>
      
      <category><![CDATA[coding agents]]></category><category><![CDATA[MCP]]></category><category><![CDATA[семантический поиск]]></category><category><![CDATA[RAG]]></category><category><![CDATA[Ruby on Rails]]></category><category><![CDATA[граф вызовов]]></category><category><![CDATA[техдолг]]></category><category><![CDATA[Qdrant]]></category><category><![CDATA[Ollama]]></category><category><![CDATA[Codebase Intellegence]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Исследователи связали майскую атаку на RubyGems с агентами OpenAI]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/codescoring/articles/1083068/</guid>
      <link>https://habr.com/ru/companies/codescoring/articles/1083068/?utm_campaign=1083068&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d65/bc3/124/d65bc31246a7915015fdde6ce5ea2e19.jpg" /><p>11 сентября исследователи Nightingale Collective<a href="https://www.rubyhack.ai/"> опубликовали разбор RubyHack</a> и связали майскую кампанию в RubyGems с внутренними агентами OpenAI. По их версии, скрипты внутри пакетов запускали код в инфраструктуре RubyDoc, собирали открытые данные с сайтов британских муниципалитетов и публиковали результаты обратно в реестр. В нескольких образцах исследователи также обнаружили попытки получить чужие API-ключи RubyGems.</p><p>Команда RubyGems<a href="https://blog.rubygems.org/2026/09/11/update-may-spam-publishing-campaign.html"> не смогла независимо установить</a>, кем именно были созданы пакеты, и не нашла доказательств успешного получения чужих ключей. Во время майской кампании она отозвала вредоносные пакеты и на четыре дня остановила регистрацию новых пользователей.</p><p>Одной из точек входа стала обычная сборка документации. В пакет добавляли .yardopts – файл параметров генератора YARD – с указанием загрузить Ruby-скрипт. Когда для пакета запрашивали документацию на RubyDoc, сборщик обрабатывал этот файл и запускал вложенный код. Такое поведение соответствует механике самого YARD: параметр<a href="https://github.com/lsegal/yard/blob/main/lib/yard/cli/command.rb"> --load</a> загружает указанный Ruby-файл перед выполнением команды.</p><p>Запущенный скрипт обращался к муниципальным сайтам, сохранял ответы, собирал из них новый .gem-архив и отправлял его в RubyGems со встроенным ключом. В результате реестр использовался как канал передачи и хранения собранных данных. Установка такого пакета множеством разработчиков для работы этой схемы не требовалась: достаточно было исполнения кода в сервисе сборки документации.</p><p>Отдельные пакеты обращались к старому endpoint выдачи API-ключей. В нём действовала ошибка кэширования: при определённых условиях CDN мог сохранить ответ с legacy-ключом и до часа отдавать его следующим запросам на том же узле. RubyGems<a href="https://blog.rubygems.org/2026/07/22/security-advisory-legacy-api-key-leak.html"> исправил проблему 9 июля</a>, очистил кэш, отозвал legacy-ключи и затем отключил старый endpoint.</p> <a href="https://habr.com/ru/articles/1083068/?utm_campaign=1083068&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 16 Sep 2026 15:08:49 GMT</pubDate>
      <dc:creator><![CDATA[amaksimovv (CodeScoring)]]></dc:creator>
      
      <category><![CDATA[rubygems]]></category><category><![CDATA[rubyhack]]></category><category><![CDATA[gemstuffer]]></category><category><![CDATA[openai]]></category><category><![CDATA[ии-агенты]]></category><category><![CDATA[yard]]></category><category><![CDATA[rubydoc]]></category><category><![CDATA[безопасность цепочки поставок]]></category><category><![CDATA[appsec]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Пайплайним Postgres из руби‑файберов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1072870/</guid>
      <link>https://habr.com/ru/articles/1072870/?utm_campaign=1072870&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ef3/e58/b44/ef3e58b441f31d2e4c6c873e7331943a.webp" /><p><em>Как я собрал на чистом Ruby мультиплексор поверх pipeline mode из libpq, обогнал классический пул соединений на 27% при вдвое меньшем числе коннектов — а потом обнаружил, что почти весь оставшийся CPU вообще не мой.</em></p> <a href="https://habr.com/ru/articles/1072870/?utm_campaign=1072870&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 21 Aug 2026 08:56:41 GMT</pubDate>
      <dc:creator><![CDATA[RomanHaidarov]]></dc:creator>
      
      <category>fiber</category><category>corutine</category><category>postgres</category><category>pipeline</category><category>performance</category><category>async</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Если вы думаете, что знаете, чем отличается «Expression» от «Statement», то, скорее всего, вы ошибаетесь]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1065722/</guid>
      <link>https://habr.com/ru/articles/1065722/?utm_campaign=1065722&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f0c/983/e77/f0c983e77a4b3f355c03c50b98dedf37.jpg" /><p>Я занимаюсь изучением <a href="https://habr.com/ru/articles/1063660/" rel="noopener noreferrer nofollow">синтаксиса языков программирования</a> и пытаюсь отделить фундаментальные закономерности от исторических случайностей. Одна из таких случайностей - почти повсеместное использование терминов <strong>выражение</strong> (expression) и <strong>инструкция</strong> (statement) при описании и классификации синтаксиса языков программирования.</p><p>Интуитивно кажется, что <code>2 + 2</code> и <code>if (x) { foo(); }</code> - это совершенно разные сущности, но при более глубоком анализе оказывается, что подобное разделение искусственное и возникло из-за архитектурных особенностей вычислительных машин почти полвека назад и с тех пор просто «переходит» из языка в язык.</p> <a href="https://habr.com/ru/articles/1065722/?utm_campaign=1065722&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 02 Aug 2026 09:06:16 GMT</pubDate>
      <dc:creator><![CDATA[rsashka]]></dc:creator>
      
      <category><![CDATA[lisp]]></category><category><![CDATA[rust]]></category><category><![CDATA[fortran]]></category><category><![CDATA[c++]]></category><category><![CDATA[algol]]></category><category><![CDATA[expression]]></category><category><![CDATA[statement]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ActiveRecord: опасная магия. Часть 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1061820/</guid>
      <link>https://habr.com/ru/articles/1061820/?utm_campaign=1061820&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/721/eca/f8c/721ecaf8ce50042621f9caf884029082.jpg" /><p>В первой части статьи мы обсуждали, как обманчивая простота ActiveRecord приводит к проблеме N+1 запросов, и я предложила решение. После публикации и обсуждений я поняла: магия ActiveRecord оказалась ещё коварнее, чем я думала. В своём примере я упустила важнейший нюанс...</p> <a href="https://habr.com/ru/articles/1061820/?utm_campaign=1061820&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Какой нюанс?</a>]]></description>
      
      <pubDate>Wed, 22 Jul 2026 11:08:33 GMT</pubDate>
      <dc:creator><![CDATA[Laranto]]></dc:creator>
      
      <category><![CDATA[activerecord]]></category><category><![CDATA[rubyonrails]]></category><category><![CDATA[sql]]></category><category><![CDATA[n+1]]></category><category><![CDATA[solution]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Ваше «приложение» могло быть просто сайтом (и я ему в этом помог)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1060106/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1060106/?utm_campaign=1060106&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7ec/e97/135/7ece97135d20311e90983fb95f94d4b6.png" /><p>Этим летом наша детская школа искусств выступает с песнями и танцами на шоу в Диснейленде. Мы все предвкушаем поездку, но мою радость слегка омрачил тот факт, что для доступа к расписанию, графику поездки и информации о проживании придётся установить <a href="https://play.google.com/store/apps/details?id=com.vamoos.apps.travelbound">приложение Travelbound</a>.</p><p>Да на кой оно мне надо? Это должна была быть простая веб-страница. С чего ради я должен устанавливать очередное хреново приложение только ради того, чтобы увидеть информацию, которую можно было уместить в гораздо более компактном, быстром и доступном документе?</p><p>И я нисколько не преувеличиваю. По своей сути, это приложение представляет текст, картинки и ссылки на PDF-файлы, загружаемые из интернета.</p> <a href="https://habr.com/ru/articles/1060106/?utm_campaign=1060106&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Jul 2026 09:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Bright_Translate (RUVDS.com)]]></dc:creator>
      
      <category>ruvds_перевод</category><category>ruby</category><category>мобильные приложения</category><category>разработка приложений</category><category>программирование</category><category>веб-разработка</category><category>разработка сайтов</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Ruby введёт «период ожидания» перед установкой новых пакетов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1045258/</guid>
      <link>https://habr.com/ru/articles/1045258/?utm_campaign=1045258&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a42/cd3/967/a42cd3967ac9116fe335aae598714982.jpg" /><p>Разработчики RubyGems <a href="https://blog.rubygems.org/2026/06/03/cooldown-let-new-gems-be-vetted.html" rel="noopener noreferrer nofollow">заявили</a>, что большинство атак на цепочку поставок используют узкий временной промежуток после взлома учётной записи, чтобы опубликовать вредоносный пакет. В связи с этим Bundler 4.0.13 вводит фильтр <code>cooldown</code> для новых пакетов, чтобы ограничить их инсталляции в течение нескольких дней после публикации.</p> <a href="https://habr.com/ru/articles/1045258/?utm_campaign=1045258&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 09 Jun 2026 06:27:51 GMT</pubDate>
      <dc:creator><![CDATA[maybe_elf]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rubygems]]></category><category><![CDATA[bundler]]></category><category><![CDATA[пакеты]]></category><category><![CDATA[установка]]></category><category><![CDATA[период охлаждения]]></category><category><![CDATA[атаки на цепочку поставок]]></category><category><![CDATA[open source]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как сисадмин написал свою библиотеку для Jira на Ruby: история Rujira]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1038026/</guid>
      <link>https://habr.com/ru/articles/1038026/?utm_campaign=1038026&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/59e/089/388/59e089388b25ea9f2eed4a75e2cca528.png" /><p>Привет, Хабр!</p><p>Давайте сразу начистоту: <strong>я не профессиональный программист</strong>. Я системный администратор и DevOps-инженер. Мой день состоит из автоматизации процессов, настройки серверов, написания скриптов и бесконечной рутины. И, конечно же, работы с тикет-системами, главная из которых — Jira.</p><p>Если есть необходимость взаимодействовать с Jira из Ruby-кода, то обычно выбирают гем <code>jira-ruby</code> — заслуженный стандарт индустрии.</p><p>Однако, попробовав использовать его для простых скриптов автоматизации в админской экосистеме, я понял: этот инструмент слишком избыточен и тяжел для сисадминских нужд. Мне хотелось чего-то простого, легкого и понятного. Так родилась <strong><code>rujira</code></strong> — моя собственная легковесная библиотека для работы с Jira REST API.</p><p>В этой статье я расскажу, почему меня не устроил стандартный гем, как сисадминский взгляд на инструмент помог сделать его удобнее для простых скриптов, и почему <code>rujira</code> идеально подходит для небольших DevOps-задач.</p> <a href="https://habr.com/ru/articles/1038026/?utm_campaign=1038026&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 22 May 2026 08:26:22 GMT</pubDate>
      <dc:creator><![CDATA[Wiljaeden]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[jira]]></category><category><![CDATA[devops]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как «красивый» Ruby‑синтаксис украл request из Grape и поломал нам Rate Limiting]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030354/</guid>
      <link>https://habr.com/ru/articles/1030354/?utm_campaign=1030354&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/526/d9d/e62/526d9de62e95a19f6a3ba4a4d0c09434.png" /><p>Решили мы добавить Rate Limit заголовки к&nbsp;ошибкам <code>SubscriptionRequiredError</code>, чтобы фронт понимал, какие&nbsp;лимиты превышены. Но&nbsp;внезапно при&nbsp;обработке ошибки пропал <code>request</code>. А&nbsp;значит&nbsp;— нет ни <code>headers</code>, ни <code>current_user</code>. Куда он делся и как&nbsp;это починить?</p> <a href="https://habr.com/ru/articles/1030354/?utm_campaign=1030354&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 01 May 2026 04:12:56 GMT</pubDate>
      <dc:creator><![CDATA[Ruvaleev]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rubyonrails]]></category><category><![CDATA[swagger]]></category><category><![CDATA[errors]]></category><category><![CDATA[error handling]]></category><category><![CDATA[debug]]></category><category><![CDATA[grape]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[SLA для Redmine. Подходящих плагинов не оказалось]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025174/</guid>
      <link>https://habr.com/ru/articles/1025174/?utm_campaign=1025174&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d09/eec/bcc/d09eecbcc82675abeb51691d15a501c2.jpg" /><p>В любой компании, рано или поздно встает вопрос контроля сроков реакции и выполнения тех или иных задач. В статье речь пойдет о желании внедрить SLA (Service Level Agreement) в Redmine, о том как попытка найти и установить готовое решение, обернулось мини исследованием.</p> <a href="https://habr.com/ru/articles/1025174/?utm_campaign=1025174&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Apr 2026 08:46:05 GMT</pubDate>
      <dc:creator><![CDATA[groTex22]]></dc:creator>
      
      <category><![CDATA[redmine]]></category><category><![CDATA[plugins]]></category><category><![CDATA[redmine plugin]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Async-background]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024614/</guid>
      <link>https://habr.com/ru/articles/1024614/?utm_campaign=1024614&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/83c/a9d/1c2/83ca9d1c2fbfaed60960079862b9558c.png" /><p>У меня было Falcon-приложение на Async, и в нём накопились задачи, которые надо было выполнять где-то рядом: cron-задачи, интервалы, отложенные джобы. Классический ответ — Sidekiq + Redis. Но ради трёх задач в минуту тащить в проект Redis с отдельным контейнером, отдельным процессом и отдельной точкой отказа казалось перебором. А альтернативы либо тянули за собой Postgres (который в большинстве проектов уже занят бизнес-логикой и плохо реагирует, когда на него вешают ещё и очередь задач), либо не дружили с Async event loop.</p><p>Так родился <code>async-background</code> — лёгкий планировщик, у которого нет внешних зависимостей кроме SQLite, который живёт в том же event loop что и Falcon, и в котором я смог реализовать ещё одну важную для меня штуку — управляемую утилизацию воркеров: можно явно сказать «эти два воркера только cron, эти два только очередь», или прибить конкретную задачу к конкретному процессу, без переписывания кода.</p><p>В статье — история создания гема: какие альтернативы я смотрел и почему они не подошли, какие принципы я зафиксировал на берегу, какие технические находки получились по ходу (min-heap вместо тиков, две шкалы времени, CRC32-шардинг для multi-process safety, UNIX-сокеты для мгновенного wake-up очереди), и какие гочи я нашёл лбом — включая историю про то, как Docker overlay2 ел мою SQLite базу под нагрузкой на staging.</p><p><em>Это адаптация моей англоязычной статьи на </em><a href="https://medium.com/@romnhajdarov/building-a-lightweight-scheduler-for-ruby-on-async-bd8e40b99243" rel="noopener noreferrer nofollow"><em>Medium</em></a></p> <a href="https://habr.com/ru/articles/1024614/?utm_campaign=1024614&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">next</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 11:15:17 GMT</pubDate>
      <dc:creator><![CDATA[RomanHaidarov]]></dc:creator>
      
      <category>ruby</category><category>async</category><category>background</category><category>concurrency</category><category>fiber</category><category>falcon</category><category>cron</category><category>sqlite</category><category>jobs</category><category>scheduler</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Выразительный DSL на Ruby]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1023302/</guid>
      <link>https://habr.com/ru/articles/1023302/?utm_campaign=1023302&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f92/318/a9a/f92318a9a2fbea7ae77366a28c997652.jpg" /><p>Всем известный Ruby on Rails, как самый яркий пример использования DSL, позволяет разработчикам абстрагироваться от низкоуровневых деталей реализации и сосредоточиться на бизнес-логике. Написание кода выглядит очень лаконично и выразительно, но как это работает? Давайте разберемся на простом примере.</p> <a href="https://habr.com/ru/articles/1023302/?utm_campaign=1023302&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что, да как?</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 11:11:39 GMT</pubDate>
      <dc:creator><![CDATA[Laranto]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rubyonrails]]></category><category><![CDATA[dsl]]></category><category><![CDATA[backend]]></category><category><![CDATA[metaprogramming]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сегодня я для себя открыл: Project Loom]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/990356/</guid>
      <link>https://habr.com/ru/articles/990356/?utm_campaign=990356&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b27/1d3/f78/b271d3f78fecca0cf1d82f53cf857dcd.png" /><p>"Loom" означает "ткацкий станок" - так назывался проект по добавлению асинхронности в джаву. Тяжёлые системные потоки заменили легковесными виртуальными потоками. Потоки и нити в английском называются одинаково - thread - отсюда название.</p><p>Проект успешно внедрили пару лет назад, и я, к сожалению, это полностью пропустил. Основная причина, конечно - что я в принципе не ожидал от джавы никаких прорывов (и оказался на 100% неправ!) Ну и, как бэкенд-разработчик на питоне, я не очень-то слежу за развитием JVM-языков.</p><p>Но исправляюсь: Project Loom - это блестящая идея. Учитывая, что его внедрили совместимым образом, и почти не было ломающих изменений. Я считаю, это оптимальная реализация асинхронности для высокоуровневого серверного языка.</p><p>Уже почти все использующие JVM языки переехали на новую версию JVM, и, таким образом, на проект Loom: деваться им некуда. Так что, есть надежда, что это изменение откроет новую главу для некоторых из них. Есть также предположение, как оно может повлиять на скриптовые языки, такие как питон. Гипотеза только.</p><p>Также, вы узнаете, почему Гвидо ван Россум не&nbsp;ошибся, когда добавлял async/await в&nbsp;питон, а&nbsp;Мацумото&nbsp;— создатель Ruby&nbsp;— тоже угадал, когда, наоборот, отказался от&nbsp;async/await.</p> <a href="https://habr.com/ru/articles/990356/?utm_campaign=990356&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 30 Jan 2026 16:32:46 GMT</pubDate>
      <dc:creator><![CDATA[abetkin]]></dc:creator>
      
      <category><![CDATA[async]]></category><category><![CDATA[python]]></category><category><![CDATA[loom]]></category><category><![CDATA[graalpy]]></category><category><![CDATA[jvm]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Вышел Ruby 4.0.0]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/980354/</guid>
      <link>https://habr.com/ru/articles/980354/?utm_campaign=980354&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/222/1e9/64a/2221e964aea7717cab0a4fed145da1dd.png" /><p>25 декабря 2025 года <a href="https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released/" rel="noopener noreferrer nofollow">состоялся</a> релиз языка программирования <a href="https://www.ruby-lang.org/en/downloads/" rel="noopener noreferrer nofollow">Ruby</a> 4.0.0, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Исходный код проекта Ruby <a href="https://github.com/ruby/ruby" rel="noopener noreferrer nofollow">распространяется</a> на GitHub под лицензиями BSD (2-clause BSDL) и Ruby, которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3.</p> <a href="https://habr.com/ru/articles/980354/?utm_campaign=980354&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 25 Dec 2025 07:34:45 GMT</pubDate>
      <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Ruby 4.0.0]]></category><category><![CDATA[Ruby 4]]></category><category><![CDATA[Ruby]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Элементарный дебаггинг с binding.irb]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/971356/</guid>
      <link>https://habr.com/ru/articles/971356/?utm_campaign=971356&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Бывает так, что запускаешь тесты, а они падают там, где вроде бы всё должно работать. В логах — только сухая ошибка, без контекста. Открываешь код, смотришь на участок кода, где произошёл сбой, и начинаешь гадать:</p> <a href="https://habr.com/ru/articles/971356/?utm_campaign=971356&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">В чем  же дело?</a>]]></description>
      
      <pubDate>Fri, 28 Nov 2025 14:14:43 GMT</pubDate>
      <dc:creator><![CDATA[Laranto]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rubyonrails]]></category><category><![CDATA[debuging]]></category><category><![CDATA[errors]]></category><category><![CDATA[beginner manual]]></category><category><![CDATA[testing tools]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ActiveRecord: опасная магия. Часть 1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/970042/</guid>
      <link>https://habr.com/ru/articles/970042/?utm_campaign=970042&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>В&nbsp;Ruby‑разработке ActiveRecord давно стал стандартом: он интуитивно понятен, встроен в&nbsp;Rails и позволяет&nbsp;быстро проводить CRUD‑операции. По&nbsp;мере роста проекта его «удобство» нередко начинает оборачиваться скрытыми проблемами.</p> <a href="https://habr.com/ru/articles/970042/?utm_campaign=970042&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 25 Nov 2025 10:15:39 GMT</pubDate>
      <dc:creator><![CDATA[Laranto]]></dc:creator>
      
      <category><![CDATA[ruby]]></category><category><![CDATA[rubyonrails]]></category><category><![CDATA[sql]]></category><category><![CDATA[activerecord]]></category><category><![CDATA[ошибки и грабли]]></category><category><![CDATA[n+1]]></category><category><![CDATA[orm]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/kuper/articles/961630/</guid>
      <link>https://habr.com/ru/companies/kuper/articles/961630/?utm_campaign=961630&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/95a/606/a51/95a606a5171e2b01d6d1088706325ed5.png" /><p>Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены.</p><p>Последние два года наша ключевая задача — <strong>микросервисная трансформация</strong>. Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций.</p><p>Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.</p> <a href="https://habr.com/ru/articles/961630/?utm_campaign=961630&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 21 Nov 2025 10:15:11 GMT</pubDate>
      <dc:creator><![CDATA[CandyFetka (Купер)]]></dc:creator>
      
      <category><![CDATA[микросервисы]]></category><category><![CDATA[монолит]]></category><category><![CDATA[архитектура]]></category><category><![CDATA[kafka]]></category><category><![CDATA[outbox]]></category><category><![CDATA[проектирование систем]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Насколько Java быстрая?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/962604/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/962604/?utm_campaign=962604&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e57/60f/aab/e5760faab6921c0252e589c1ff9f5612.png" /><p>Некоторые считают Java раздутым монстром, а Rust — чемпионом производительности. Но что, если взглянуть на современную Java с Vector API и многопоточностью?&nbsp;</p><p>В новом переводе от команды <a href="https://t.me/+QmrKn0wA8CdkNjAy">Spring АйО</a> посмотрим на запуск масштабной симуляции частиц и сравним результаты. Правда ли, что бывалая Java всё ещё умеет удивлять?&nbsp;</p><p><em>Сравнение performance-а языков всегда было холиварной темой. Рекомендуем расценивать статью как приглашение к конструктивной дискуссиии, а не как призыв к конкретному действию.</em></p> <a href="https://habr.com/ru/articles/962604/?utm_campaign=962604&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 02 Nov 2025 08:49:55 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>java</category><category>kotlin</category><category>performance</category><category>ruby</category><category>simd</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Мейнтейнеры Ruby взяли на себя управление GitHub-репозиторием RubyGems]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/957874/</guid>
      <link>https://habr.com/ru/articles/957874/?utm_campaign=957874&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/386/f62/21d/386f6221d4480136f1aff0ba4ac5f25f.png" /><p>Создатель языка Ruby Юкихиро Мацумото (<a href="https://en.wikipedia.org/wiki/Yukihiro_Matsumoto" rel="noopener noreferrer nofollow">Yukihiro Matsumoto</a>) <a href="https://www.ruby-lang.org/en/news/2025/10/17/rubygems-repository-transition/" rel="noopener noreferrer nofollow">объявил</a> о&nbsp;переводе под&nbsp;управление основной команды разработчиков языка Ruby (Ruby Core Team) <a href="https://github.com/rubygems/rubygems" rel="noopener noreferrer nofollow">GitHub‑репозитория</a>, в&nbsp;котором развиваются инструментарии RubyGems и Bundler для&nbsp;работы с&nbsp;каталогом пакетов <a href="http://rubygems.org" rel="noopener noreferrer nofollow">rubygems.org</a>. </p> <a href="https://habr.com/ru/articles/957874/?utm_campaign=957874&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Oct 2025 04:28:33 GMT</pubDate>
      <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Ruby]]></category><category><![CDATA[rubygems]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Бывшие мейнтейнеры проектов RubyGems.org, RubyGems и Bundler представили альтернативный репозиторий Gem Cooperative]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/954408/</guid>
      <link>https://habr.com/ru/articles/954408/?utm_campaign=954408&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/379/b8f/3bc/379b8f3bcdb955d0904c5ae421b33bf9.png" /><p>Пять&nbsp;бывших сопровождающих проекты RubyGems.org, RubyGems и Bundler, включая <a href="https://andre.arko.net/2025/09/25/bundler-belongs-to-the-ruby-community/" rel="noopener noreferrer nofollow">владельца</a> торговой марки Bundler, <a href="https://martinemde.com/2025/10/05/announcing-gem-coop.html" rel="noopener noreferrer nofollow">представили</a> альтернативный проект <a href="https://github.com/gem-coop" rel="noopener noreferrer nofollow">Gem Cooperative</a>. Эта платформа подконтрольна сообществу и в&nbsp;ней используется открытая модель управления, по <a href="https://docs.brew.sh/Homebrew-Governance" rel="noopener noreferrer nofollow">аналогии</a> с&nbsp;проектом <a href="https://brew.sh/" rel="noopener noreferrer nofollow">Homebrew</a>. </p> <a href="https://habr.com/ru/articles/954408/?utm_campaign=954408&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Oct 2025 05:23:13 GMT</pubDate>
      <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[RubyGems]]></category><category><![CDATA[Bundler]]></category><category><![CDATA[Gem Cooperative]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Среда разработки RubyMine от JetBrains стала бесплатной для некоммерческого использования]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/943292/</guid>
      <link>https://habr.com/ru/articles/943292/?utm_campaign=943292&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ec7/29f/008/ec729f0082cae08a084e1e9002a12a08.jpeg" /><p>В блоге JetBrains <a href="https://blog.jetbrains.com/ruby/2025/09/rubymine-is-now-free-for-non-commercial-use/" rel="noopener noreferrer nofollow">рассказали</a>, что среда разработки <abbr class="habraabbr" title="RubyMine — проприетарная среда разработки ПО на языке программирования Ruby." data-title="&lt;p&gt;RubyMine — проприетарная среда разработки ПО на языке программирования Ruby.&lt;/p&gt;">RubyMine</abbr> стала бесплатной для некоммерческого использования. Платная лицензия нужна только тем, кто создаёт приложения для монетизации или получает денежное вознаграждение за свою работу.</p> <a href="https://habr.com/ru/articles/943292/?utm_campaign=943292&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 02 Sep 2025 16:58:18 GMT</pubDate>
      <dc:creator><![CDATA[daniilshat]]></dc:creator>
      
      <category><![CDATA[jetbrains]]></category><category><![CDATA[ruby]]></category><category><![CDATA[rubymine]]></category><category><![CDATA[ide]]></category><category><![CDATA[среда разработки]]></category><category><![CDATA[бесплатно]]></category><category><![CDATA[софт]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] AWS удалил мой 10‑летний аккаунт и все данные без предупреждения]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/itsumma/articles/937174/</guid>
      <link>https://habr.com/ru/companies/itsumma/articles/937174/?utm_campaign=937174&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e99/cbb/f73/e99cbbf730e58f53f3e396067cb9ecf1.jpg" /><p><em>Я 10 лет был клиентом AWS и контрибьютором проектов с открытым исходным кодом, а они удалили мой аккаунт и все данные без какого‑либо предупреждения. Ниже — история о том, как «верификация» у AWS превратилась в цифровую казнь и почему нельзя доверять облачным провайдерам, если у вас нет копий данных вне облака.</em></p><p>На <strong>23 июля 2025 года</strong> AWS удалил мой аккаунт, которому было 10 лет, и каждый байт данных, который я там хранил. Без предупреждения. Без льготного периода. Без возможности восстановления. Произошла полная цифровая аннигиляция.</p><p>Ниже я расскажу историю о катастрофической внутренней ошибке в AWS MENA, 20 днях кошмарного общения с поддержкой, в ходе которого я так и не получил прямого ответа на вопрос «Мои данные ещё существуют?», и о том, что всё это показывает в отношении доверия облачным провайдерам.</p> <a href="https://habr.com/ru/articles/937174/?utm_campaign=937174&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 15 Aug 2025 08:35:23 GMT</pubDate>
      <dc:creator><![CDATA[ITSumma (ITSumma)]]></dc:creator>
      
      <category>AWS</category><category>MENA</category><category>данные</category><category>профиль aws</category><category>удаление профиля</category><category>ошибка</category><category>история разработчика</category><category>Общение с поддержкой AWS</category><category>защита данных</category><category>хранение данных</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Зачем я написал очередной велосипед для работы с директориями (спойлер: не совсем велосипед)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/930076/</guid>
      <link>https://habr.com/ru/articles/930076/?utm_campaign=930076&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Вы когда-нибудь сталкивались с&nbsp;<strong>плагинами, которые лезут в чужие папки</strong>, перезаписывают файлы ядра и превращают&nbsp;<code>git status</code>&nbsp;в ад?</p><p>Я — да. И вместо того чтобы мириться с&nbsp;<strong>ручным копированием, гигантскими .gitignore и вечными конфликтами</strong>, написал&nbsp;<strong>dmp</strong>&nbsp;— инструмент, который:<br>&nbsp;<strong>Отслеживает</strong>, откуда взялся каждый файл,<br>&nbsp;<strong>Автоматически разрешает</strong>&nbsp;конфликты (или даёт контроль),<br>&nbsp;<strong>Не ломает</strong>&nbsp;IDE (никаких симлинков!),<br>&nbsp;<strong>Работает</strong>&nbsp;с любыми языками и фреймворками.</p><p><strong>Для кого:</strong><br>— Разработчики плагинов/модулей,<br>— Те, кто устал от&nbsp;<code>git-submodules</code>&nbsp;и&nbsp;<code>rsync</code>,<br>— Все, кто хочет&nbsp;<strong>чистый workflow</strong>&nbsp;без монрепозитория.</p> <a href="https://habr.com/ru/articles/930076/?utm_campaign=930076&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 22 Jul 2025 15:16:03 GMT</pubDate>
      <dc:creator><![CDATA[SidorkinAlex]]></dc:creator>
      
      <category><![CDATA[git]]></category><category><![CDATA[инструменты разработчика]]></category><category><![CDATA[плагины]]></category><category><![CDATA[файловая система]]></category><category><![CDATA[python]]></category><category><![CDATA[php]]></category><category><![CDATA[ruby]]></category><category><![CDATA[опенсорс]]></category><category><![CDATA[автоматизация]]></category><category><![CDATA[воркфлоу]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
