#ruby #rails А вот тут Joel Drapper пишет, что судя по всему торчат уши Shopify за этим конфликтом. Вкратце:
- У Ruby Central возникли финансовые трудности.
- Sidekiq прекратил спонсорство в размере $250 000 в год после того, как на RailsConf 2025 дали слово DHH.
- Shopify выдвинул ультиматум: Ruby Central должен взять полный контроль над репозиториями RubyGems на GitHub и гемами bundler и rubygems-update, иначе финансирование будет прекращено.
- HSBT поспешил и начал захват: назначил Марти Хоута владельцем репозиториев и урезал права мейнтейнеров ещё до обсуждения. Доступ временно вернули, и Марти встретился с мейнтейнерами, признав, что Ruby Central не имеет права просто забирать эти проекты у сообщества. Он предлагал альтернативу — форк RubyGems — и предупреждал о рисках.
- Несмотря на это, совет Ruby Central проголосовал за захват и немедленно его реализовал. Впоследствии несколько членов совета ввели сообщество в заблуждение, оправдывая действия в соцсетях.
- Это было подготовлено заранее: Shopify даже организовал собственную “дежурку” для замены прежних мейнтейнеров, включая тех, кто управлял сервисом RubyGems.org. Более того, Shopify настоял, чтобы Андрэ Арко, работавший над RubyGems более десяти лет и основавший Ruby Together (позже слившуюся с Ruby Central), не возвращался в проект.
- У Ruby Central возникли финансовые трудности.
- Sidekiq прекратил спонсорство в размере $250 000 в год после того, как на RailsConf 2025 дали слово DHH.
- Shopify выдвинул ультиматум: Ruby Central должен взять полный контроль над репозиториями RubyGems на GitHub и гемами bundler и rubygems-update, иначе финансирование будет прекращено.
- HSBT поспешил и начал захват: назначил Марти Хоута владельцем репозиториев и урезал права мейнтейнеров ещё до обсуждения. Доступ временно вернули, и Марти встретился с мейнтейнерами, признав, что Ruby Central не имеет права просто забирать эти проекты у сообщества. Он предлагал альтернативу — форк RubyGems — и предупреждал о рисках.
- Несмотря на это, совет Ruby Central проголосовал за захват и немедленно его реализовал. Впоследствии несколько членов совета ввели сообщество в заблуждение, оправдывая действия в соцсетях.
- Это было подготовлено заранее: Shopify даже организовал собственную “дежурку” для замены прежних мейнтейнеров, включая тех, кто управлял сервисом RubyGems.org. Более того, Shopify настоял, чтобы Андрэ Арко, работавший над RubyGems более десяти лет и основавший Ruby Together (позже слившуюся с Ruby Central), не возвращался в проект.
joel.drapper.me
Shopify, pulling strings at Ruby Central, forces Bundler and RubyGems takeover
Ruby Central recently took over a collection of open source projects from their maintainers without their consent.
Если вам не хватает драм на Netflix, то вот вам новый замес в #ruby on #rails сообществе
1 - DHH набросил на вентилятор - Бриташка уже не та, трансгендерные черные женщины из Пакистана собираются в банды и всех насилуют
2 - некий Tekin Süleyman с ноги открывает дверь в ад и заявляет, что DHH - это проблема и говорит, мол, такие высказывания не проходят мимо, когда у тебя в руках Rails Foundation и торговые марки.
3 - DHH надевает белое пальто, всех называет пидарасами, а себя жертвой и говорит, что он вращал всех хейтеров на своей волшебной палочке и отменить его не получится
Конец первого сезона.
Как вы понимаете - финал сезона остался открытым,скачать прочитать все серии можно тут
- https://tekin.co.uk/2025/09/the-ruby-community-has-a-dhh-problem
- https://world.hey.com/dhh/calling-someone-a-nazi-is-a-permission-slip-for-violence-4bfbbb82
- https://world.hey.com/dhh/we-ve-all-had-enough-of-this-nonsense-8545dd26
1 - DHH набросил на вентилятор - Бриташка уже не та, трансгендерные черные женщины из Пакистана собираются в банды и всех насилуют
2 - некий Tekin Süleyman с ноги открывает дверь в ад и заявляет, что DHH - это проблема и говорит, мол, такие высказывания не проходят мимо, когда у тебя в руках Rails Foundation и торговые марки.
3 - DHH надевает белое пальто, всех называет пидарасами, а себя жертвой и говорит, что он вращал всех хейтеров на своей волшебной палочке и отменить его не получится
Конец первого сезона.
Как вы понимаете - финал сезона остался открытым,
- https://tekin.co.uk/2025/09/the-ruby-community-has-a-dhh-problem
- https://world.hey.com/dhh/calling-someone-a-nazi-is-a-permission-slip-for-violence-4bfbbb82
- https://world.hey.com/dhh/we-ve-all-had-enough-of-this-nonsense-8545dd26
tekin.co.uk
The Ruby community has a DHH problem
The Ruby community can no longer afford to stand silent in the face of DHH and his toxic ideas.
Angry Beard
#ruby #rails А вот тут Joel Drapper пишет, что судя по всему торчат уши Shopify за этим конфликтом. Вкратце: - У Ruby Central возникли финансовые трудности. - Sidekiq прекратил спонсорство в размере $250 000 в год после того, как на RailsConf 2025 дали слово…
А вот и ответ от RubyCentral, в котором они говорят следующее
Ruby Central заморозил привилегии в репозиториях RubyGems и проводит аудит доступа. Вводятся новые Contributor и Operator Agreements, чтобы обеспечить безопасность и прозрачность. Публикация гемов не останавливается, обещаны регулярные апдейты и диалог с сообществом.
Верим?
Ruby Central заморозил привилегии в репозиториях RubyGems и проводит аудит доступа. Вводятся новые Contributor и Operator Agreements, чтобы обеспечить безопасность и прозрачность. Публикация гемов не останавливается, обещаны регулярные апдейты и диалог с сообществом.
Верим?
Ruby Central
Our Stewardship: Where We Are, What’s Changing and How We’ll Engage
Dear Rubyists,
Thank you for giving me this opportunity to share with you. We take our stewardship of the Ruby Gems ecosystem seriously. Our mission is clear: keep the language and the infrastructure you rely on stable, safe, and trustworthy. Before we get…
Thank you for giving me this opportunity to share with you. We take our stewardship of the Ruby Gems ecosystem seriously. Our mission is clear: keep the language and the infrastructure you rely on stable, safe, and trustworthy. Before we get…
Forwarded from Уставший техдир
12 Factor Agents - принципы разработки агентов
По следам от 12 Factor Apps, Декстер Хорти собрал ключевые принципы по разработке агентов, делюсь!
1) Преобразование естественного языка в вызовы инструментов. Агент интерпретирует команды в формализованные вызовы функций, а исполняет их — детерминированный код
2) Владей своими промптами (как кодом). Промпт — это артефакт. Его надо хранить, версионировать, тестировать и относиться к нему, как к важной части кода.
3) Управляй контекстом агента. Активно контролируй, что попадает в это окно. Убирай уже не нужное, суммаризируй, оставляй важное, выделяй ограниченные слоты под фичи — внимание модели ограничено
4) Вызов тулинга — это просто JSON. LLM генерирует название тула и параметры, остальное должен делать ваш детерминированный вход. Модель решает "что делать", а ваше приложение "как делать"
5) Держи тех.состояние и бизнес состояние вместе. Каждый шаг агента — это и логика и данные. Всё держим в одном состоянии, чтобы потом не ковыряться по разным логам в поисках, где оно сломалось
6) API для управление циклом агента. Агент должен иметь простой API для запуска, приостановки и возобновления работы, уметь вставать на паузу и возвращаться к работе спустя время на каждом этапе жизненного цикла
7) Запрос к человеку — как инструмент. Любое обращение в процессе работы к человеку должно быть представлено агенту, как инструмент
8) Явно контролируйте логику исполнения. Модель лишь "говорит" что, а твой код решает стоит ли выполнять, когда и как.
9) Добавляйте ошибки исполнения инструментов в контекст. Если что-то упало, сократи информацию и добавь это в контекст агента. Пусть модель сама догадается, что дальше: повторить, спросить или изменить стратегию
10) Используйте малых специализированных агентов. Лучше много маленьких агентов, решающих узконаправленные задачи, чем один перегруженный агент всего
11) Доставляй агентов в любые интерфейсы, удобные пользователю. Slack, Telegram, веб, CLI — неважно. Главное — единый API и омниканальность. Пользователь не должен думать, где общаться с агентом. Он просто должен это делать.
12) Агент как Stateless Reducer. На входе — состояние и запрос. На выходе — новое состояние и ответ. Всё как в хорошем Redux. Никакого собственного внутреннего состояния, он должен работать как чистая функция
Бонус:
13) Предзагрузи все необходимое. Агент не должен постоянно дёргать одни и те же данные. Наполняй контекст тем, что почти наверняка пригодится.
Репа: https://github.com/humanlayer/12-factor-agents
Доклад: https://www.youtube.com/watch?v=8kMaTybvDUw
По следам от 12 Factor Apps, Декстер Хорти собрал ключевые принципы по разработке агентов, делюсь!
1) Преобразование естественного языка в вызовы инструментов. Агент интерпретирует команды в формализованные вызовы функций, а исполняет их — детерминированный код
2) Владей своими промптами (как кодом). Промпт — это артефакт. Его надо хранить, версионировать, тестировать и относиться к нему, как к важной части кода.
3) Управляй контекстом агента. Активно контролируй, что попадает в это окно. Убирай уже не нужное, суммаризируй, оставляй важное, выделяй ограниченные слоты под фичи — внимание модели ограничено
4) Вызов тулинга — это просто JSON. LLM генерирует название тула и параметры, остальное должен делать ваш детерминированный вход. Модель решает "что делать", а ваше приложение "как делать"
5) Держи тех.состояние и бизнес состояние вместе. Каждый шаг агента — это и логика и данные. Всё держим в одном состоянии, чтобы потом не ковыряться по разным логам в поисках, где оно сломалось
6) API для управление циклом агента. Агент должен иметь простой API для запуска, приостановки и возобновления работы, уметь вставать на паузу и возвращаться к работе спустя время на каждом этапе жизненного цикла
7) Запрос к человеку — как инструмент. Любое обращение в процессе работы к человеку должно быть представлено агенту, как инструмент
requestClarification(message:string)8) Явно контролируйте логику исполнения. Модель лишь "говорит" что, а твой код решает стоит ли выполнять, когда и как.
9) Добавляйте ошибки исполнения инструментов в контекст. Если что-то упало, сократи информацию и добавь это в контекст агента. Пусть модель сама догадается, что дальше: повторить, спросить или изменить стратегию
10) Используйте малых специализированных агентов. Лучше много маленьких агентов, решающих узконаправленные задачи, чем один перегруженный агент всего
11) Доставляй агентов в любые интерфейсы, удобные пользователю. Slack, Telegram, веб, CLI — неважно. Главное — единый API и омниканальность. Пользователь не должен думать, где общаться с агентом. Он просто должен это делать.
12) Агент как Stateless Reducer. На входе — состояние и запрос. На выходе — новое состояние и ответ. Всё как в хорошем Redux. Никакого собственного внутреннего состояния, он должен работать как чистая функция
Бонус:
13) Предзагрузи все необходимое. Агент не должен постоянно дёргать одни и те же данные. Наполняй контекст тем, что почти наверняка пригодится.
Репа: https://github.com/humanlayer/12-factor-agents
Доклад: https://www.youtube.com/watch?v=8kMaTybvDUw
YouTube
12-Factor Agents: Patterns of reliable LLM applications — Dex Horthy, HumanLayer
Hi, I'm Dex. I've been hacking on AI agents for a while.
I've tried every agent framework out there, from the plug-and-play crew/langchains to the "minimalist" smolagents of the world to the "production grade" langraph, griptape, etc.
I've…
I've tried every agent framework out there, from the plug-and-play crew/langchains to the "minimalist" smolagents of the world to the "production grade" langraph, griptape, etc.
I've…
#AI Я потестировал GitHub SpecKit в связке с Anthropic Claude и скажу честно - мне нравится, куда движется этот проект. Концепция достаточно простая - вы пишите (или генерите) конституцию проекта, которая определяет подходы к разработке, описываете необходимую функциональность и Claude выступает как аналитик, декомпозируя её на блоки и задавая уточняющие вопросы. После этого Claude нарезает функционал на задачи и уже потом, отталкиваясь от конституции и получившихся ТЗ и декомпозиции, пишет код. Все получившиеся артефакты вы можете обновлять в процессе работы. Вот например выдержки из конституции проекта, которые мне сгенерились:
А если заглянуть в код, то он очень даже неплох 🙂 Короче говоря - контент-план для блога у меня пополнился как минимум на одну позицию 🙂
### I. Test-First Development (NON-NEGOTIABLE)
All feature development MUST follow Test-Driven Development:
- Write tests before implementation
- Tests must fail before implementation begins
- Red-Green-Refactor cycle strictly enforced
- Never commit failing tests to main branch
- Never disable or skip tests to make builds pass
**Rationale**: Tests serve as living documentation and prevent regressions. The test-first
approach ensures we understand requirements before writing code and maintains high confidence
in our changes.
## Development Standards
### Code Quality Requirements
- All Ruby code MUST pass Standard linter without warnings
- All ERB templates MUST pass erb_lint without violations
- All JavaScript MUST pass configured ESLint rules
- Security scans (Brakeman, bundler-audit) MUST pass before merge
- Code coverage MUST not decrease with new changes
### Interaction Objects
Complex business logic MUST be encapsulated in ActiveInteraction classes:
- One interaction per business operation
- Clear input validation with typed inputs
- Single responsibility per interaction
- Return results (success/failure) instead of raising exceptions
- Interactions are the primary unit test target for business logic
**Rationale**: Interactions provide a clear contract for business operations, make testing
easier, and keep controllers and models thin. They serve as the boundary between the web
layer and business logic.
А если заглянуть в код, то он очень даже неплох 🙂 Короче говоря - контент-план для блога у меня пополнился как минимум на одну позицию 🙂
GitHub
GitHub - github/spec-kit: 💫 Toolkit to help you get started with Spec-Driven Development
💫 Toolkit to help you get started with Spec-Driven Development - github/spec-kit
#ruby #rails #elixir AppSignal прекрасны - только что они анонсировали бесплатный доступ к своей платформе. Но есть небольшие ограничения
- 50K requests
- 1GB logging
- 5-day retention
По идее этого должно хватать для старта или небольшого проекта
- 50K requests
- 1GB logging
- 5-day retention
По идее этого должно хватать для старта или небольшого проекта
AppSignal
AppSignal Pricing - Predictable & Affordable
AppSignal offers a free plan with 50K requests, 1GB logging, and 5-day retention. Plus a 30-day free trial for paid plans. All features available on all plans, including unlimited hosts, teams, and integrations.
👍3
#ruby #rails Ну что же - версию rails 8.1 зарелизили официально https://rubyonrails.org/2025/10/22/rails-8-1
Ruby on Rails: Compress the complexity of modern web apps
Rails 8.1: Job continuations, structured events, local CI
Rails 8.1 represents the work of over 500 contributors across 2500 commits since our last major release. After some weeks of people trying the betas and releases candidates, we are excited to share the final release.
GitHub
GitHub - alec-c4/claude-skills-rails-dev
Contribute to alec-c4/claude-skills-rails-dev development by creating an account on GitHub.
👍3
#rails #ruby #AI Если вы активно используете Claude Code для разработки rails-приложений, то вот эта тулза вам поможет немного экономить на токенах, обещают, что по сравнению с дефолтными страницами ошибок более чем 13-кратная экономия токенов
GitHub
GitHub - panozzaj/plain_errors: Rails middleware for LLM-optimized error messages
Rails middleware for LLM-optimized error messages. Contribute to panozzaj/plain_errors development by creating an account on GitHub.
#apple #swift #android #mobile Несмотря на то, что сейчас новость о том, что Apple выпустила Swift Android SDK звучит из каждого утюга, подобные эксперименты проводились уже достаточно давно. Например вот ветка на формуме swift, где можно найти упоминания некоторых проектов на эту тему, но я помню и более ранние эксперименты, чуть ли не 10-летней давности (но скорее всего сейчас я их уже не найду). И хотя рано предрекать скорейшую гибель flutter, react native, kotlin native и их аналогов - инициатива действительно интересная.
Swift.org
Announcing the Swift SDK for Android
Swift has matured significantly over the past decade — extending from cloud services to Windows applications, browser apps, and microcontrollers. Swift powers apps and services of all kinds, and thanks to its great interoperability, you can share code across…
👏2
#ruby #rails Несмотря на то, что я предпочитаю использовать shrine, вот этот гем зайдет тем, кто использует ActiveStorage. В двух словах - это mountable rails engine, которая представляет собой дашборд для всех загружаемых файлов.
GitHub
GitHub - giovapanasiti/active_storage_dashboard: A mountable Rails engine that provides a dashboard to view Active Storage data
A mountable Rails engine that provides a dashboard to view Active Storage data - giovapanasiti/active_storage_dashboard
#postgres #devops #db Уащпе красота! Postgresus - тулза для бэкапа БД и как понятно из названия, она заточена под PostgreSQL. Open Source, куча всяких опция для бекапа - всё, что мы любим
Databasus
PostgreSQL backup | Databasus
Free and open source tool for PostgreSQL scheduled backups (with MySQL and MongoDB support). Save them locally and to clouds. Notifications to Slack, Discord, Telegram, email, webhook, etc.
#AI ИНтересную задачу решают авторы этого проекта - оптимизация использования токенов в LLM посредством перехода от JSON на свой формат. Выглядит достаточно перспективно, например вместо
предполагается более компактная запись типа
{
"users": [
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "user" }
]
}
предполагается более компактная запись типа
users[2]{id,name,role}:
1,Alice,admin
2,Bob,user
Неожиданно Flowbite впустили версию 4.x (на момент написания 4.0.1) своего UI Kit. Что нового
- сделали 5 тем, которые можно применить сразу из коробки (modern, minimal, playful, enterprise, mono)
- все цвета стали переменными в css (как завещал AdamРамзанович Wathan, автор TailwindCSS)
- оптимизировали код, сделали его компактнее в 2 раза, перенеся dark mode в css variables
- насыпали новых компонентов - cards, checkboxes и так далее
- улучшили документацию (не заметил, если честно, но ок)
В общем - надо пробовать и писать Zoltan, если найдём косяки 🙂
- сделали 5 тем, которые можно применить сразу из коробки (modern, minimal, playful, enterprise, mono)
- все цвета стали переменными в css (как завещал Adam
- оптимизировали код, сделали его компактнее в 2 раза, перенеся dark mode в css variables
- насыпали новых компонентов - cards, checkboxes и так далее
- улучшили документацию (не заметил, если честно, но ок)
В общем - надо пробовать и писать Zoltan, если найдём косяки 🙂
Поддался модному тренду и добавил в kickstart ажно целых 3 шаблона для inertia_rails - svelte (моя прееелесть), react и vue. Ссылка всё та же - туточки. #ruby #rails
GitHub
GitHub - alec-c4/kickstart: Ruby on Rails application templates
Ruby on Rails application templates. Contribute to alec-c4/kickstart development by creating an account on GitHub.
❤2
Пу-пу-пу, в смысле вышел #ruby 4.0.0 preview 2. Я почитал описание и не могу сказать, что увидел какие-то изменения, которые сразу вызвали у меня вопль "вау!" и желание протестировать сборку, но вот краткое саммари того, что в ней есть
- Оператор *nil больше не вызывает nil.to_a, аналогично тому, как оператор **nil не вызывает nil.to_hash.
- Логические операторы (||, &&, and, or) на начало строки теперь продолжают предыдущую строку, как при использовании текущего оператора.
- Версия Unicode обновлена до 17.0.0, а Emoji Version — до 17.0. Эти обновления применяются как к строкам, так и к регулярным выражениям.
- Set теперь является встроенным классом вместо класса со срабатыванием в стандартной библиотеке.
- IO.select теперь принимает Float::INFINITY в качестве аргумента timeout.
- Обновления стандартной библиотеки
• ostruct 0.6.1
• pstore 0.2.0
• benchmark 0.4.0
• logger 1.7.0
• rdoc 6.13.1
• irb 1.15.2
• reline 0.6.1
И еще ряд изменений. В общем - ждём полноценного релиза, чтобы потестировать и (надеюсь) поразиться очередному приросту производительности и каким-нибудь ярким фичам
- Оператор *nil больше не вызывает nil.to_a, аналогично тому, как оператор **nil не вызывает nil.to_hash.
- Логические операторы (||, &&, and, or) на начало строки теперь продолжают предыдущую строку, как при использовании текущего оператора.
- Версия Unicode обновлена до 17.0.0, а Emoji Version — до 17.0. Эти обновления применяются как к строкам, так и к регулярным выражениям.
- Set теперь является встроенным классом вместо класса со срабатыванием в стандартной библиотеке.
- IO.select теперь принимает Float::INFINITY в качестве аргумента timeout.
- Обновления стандартной библиотеки
• ostruct 0.6.1
• pstore 0.2.0
• benchmark 0.4.0
• logger 1.7.0
• rdoc 6.13.1
• irb 1.15.2
• reline 0.6.1
И еще ряд изменений. В общем - ждём полноценного релиза, чтобы потестировать и (надеюсь) поразиться очередному приросту производительности и каким-нибудь ярким фичам
Ruby Programming Language
Ruby 4.0.0 preview2 Released | Ruby
We are pleased to announce the release of Ruby 4.0.0-preview2. Ruby 4.0 updates its Unicode version to 17,0.0, and so on.
👍2