#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, куча всяких опция для бекапа - всё, что мы любим
#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
Вот эта новость прям совсем неожиданная - Anthropic приобрели bun. Согласно договоренностям bun остаётся бесплатным и open source (лицензия не меняется - всё та же MIT), команда продолжает работать над проектом. Основная концепция в том, чтобы claude code, написанный на bun, продолжал работать без рисков сломаться в самый неожиданный момент:
Claude Code ships as a Bun executable to millions of users. If Bun breaks, Claude Code breaks. Anthropic has direct incentive to keep Bun excellent.
Bun
Bun is joining Anthropic
Bun has been acquired by Anthropic. Anthropic is betting on Bun as the infrastructure powering Claude Code, Claude Agent SDK, and future AI coding products & tools.
Забавный факт - почему vite использует порт 5173
It’s actually VITE written strategically:
V → 5 (Roman numeral)
I → 1 (Roman numeral)
T → 7
E → 3
Put it together and you get 5173.
👍2
#opensource 37signals выложили в open source свой трекер Fizzy, исходный код как обычно на github - https://github.com/basecamp/fizzy
Fizzy
Kanban as it should be. Not as it has been.
A refreshing take on cards, columns, and kanban.
Forwarded from Cybred
🔥 10/10 React4shell
В официальном блоге React только что выкатили пост про CVE-2025-55182, которая позволяет в один запрос получить RCE. Уязвимы версии 19.0.0, 19.1.0, 19.1.1, 19.2.0, а еще фреймворки Next.JS, Vite, Parcel, и Waku.
Сам баг находится в RSC-рантайме, который принимает данные и небезопасно десериализует их. Запатчиться сейчас почти никто не успел, а уязвимость можно считать одной из самых критичных, которые находили в React за все время.
В официальном блоге React только что выкатили пост про CVE-2025-55182, которая позволяет в один запрос получить RCE. Уязвимы версии 19.0.0, 19.1.0, 19.1.1, 19.2.0, а еще фреймворки Next.JS, Vite, Parcel, и Waku.
Just when I thought the day was over… CVE-2025-55182 shows up 🫠
Сам баг находится в RSC-рантайме, который принимает данные и небезопасно десериализует их. Запатчиться сейчас почти никто не успел, а уязвимость можно считать одной из самых критичных, которые находили в React за все время.
react.dev
Critical Security Vulnerability in React Server Components – React
The library for web and native user interfaces
Forwarded from AD_POHEQUE
React RCE: пруф с нуля, без «заведомо уязвимых серверов»
какой-то ясновидящий в комментах заявил, что poc крутится «на специально дырявом сервере» и вообще «это не по-настоящему».
я пошёл, потратил два часа, собрал всё с чистого react — и вот результат:
rce воспроизводится на react 19.2.0, без патчей и плясок с бубном.
ниже полностью воспроизводимый сценарий.
1) клонируем и фиксируемся на уязвимой версии
2) ставим зависимости и собираем react-server-dom-webpack
уязвимый бандл после сборки:
3) минимальный уязвимый сервер
кладём файл
https://gist.github.com/ghe770mvp/ebd40f33ec4ed080e603fda3ec20734e
4) стартуем уязвимый сервер
видим:
5) стреляем уже готовым эксплойтом
🔫 🤬 🔫
ожидаемый вывод (пример для windows):
это прямой результат
почему это НЕ «заведомо дырявый сервер»
- версия: четкий
- бандл: берём как есть из
- манифест: даём
итог простой:
react rsc rce — это не теоретическая страшилка, а реальный шелл на хосте из POST запроса.
хочешь спорить — сначала повтори шаги, потом уже пиши свое «экспертное» мнение. будет мне уроком тоже :)
👾
какой-то ясновидящий в комментах заявил, что poc крутится «на специально дырявом сервере» и вообще «это не по-настоящему».
я пошёл, потратил два часа, собрал всё с чистого react — и вот результат:
rce воспроизводится на react 19.2.0, без патчей и плясок с бубном.
ниже полностью воспроизводимый сценарий.
1) клонируем и фиксируемся на уязвимой версии
git clone https://github.com/facebook/react.git
cd react
git checkout v19.2.0
2) ставим зависимости и собираем react-server-dom-webpack
yarn install
yarn build react-server-dom-webpack
уязвимый бандл после сборки:
build/oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js
3) минимальный уязвимый сервер
poc-server.jsкладём файл
CVE-2025-55182_vuln_server.js в корень репо react:https://gist.github.com/ghe770mvp/ebd40f33ec4ed080e603fda3ec20734e
4) стартуем уязвимый сервер
в коде я использую упрощённый сервер: напрямую подключаю react-server-dom-webpack, руками собираю serverManifest с нужным гаджетом (vm.runInThisContext) и показываю, что одним HTTP-запросом через decodeAction можно выполнить произвольный код.
это минимальный пример на уровне библиотеки. в реальных фреймворках манифест генерируется автоматически и содержит ваши use server функции, там надо дальше искать реальные гаджеты и смотреть, что именно доступно через manifest.
node --conditions react-server --conditions webpack CVE-2025-55182_vuln_server.js
видим:
vuln server on http://localhost:3002
5) стреляем уже готовым эксплойтом
node exploit-rce-v4.js
ожидаемый вывод (пример для windows):
Test 2: vm.runInThisContext with require
RCE attempt: {"success":true,"result":"<computer_name>\\<user>\r\n"}
это прямой результат
child_process.execSync("whoami"), выполненный через decodeAction из уязвимого бандла 19.2.0.почему это НЕ «заведомо дырявый сервер»
- версия: четкий
git checkout v19.2.0, без правок исходников и без патчей;- бандл: берём как есть из
build/oss-stable/...react-server-dom-webpack-server.node.development.js, собранный yarn build react-server-dom-webpack;- манифест: даём
vm.runInThisContext, и при отсутствии hasOwnProperty-проверки payload через $ACTION_* проламывает код.итог простой:
react rsc rce — это не теоретическая страшилка, а реальный шелл на хосте из POST запроса.
хочешь спорить — сначала повтори шаги, потом уже пиши свое «экспертное» мнение. будет мне уроком тоже :)
👾
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Angry Beard
Забавный факт - почему vite использует порт 5173 It’s actually VITE written strategically: V → 5 (Roman numeral) I → 1 (Roman numeral) T → 7 E → 3 Put it together and you get 5173.
#javanoscript Вышла бета-версия vite 8.
Ключевые изменения
- Переход с Rollup на Rolldown (Rust).
- Унификация стека: Vite (dev) + Rolldown (build) + Oxc (анализ/трансформация).
- Улучшенная TS-поддержка:
- Более быстрые HMR и дев-сервер за счёт оптимизаций в графе модулей и Rust-инструментах.
Ключевые изменения
- Переход с Rollup на Rolldown (Rust).
- Унификация стека: Vite (dev) + Rolldown (build) + Oxc (анализ/трансформация).
- Улучшенная TS-поддержка:
paths, emitDecoratorMetadata.- Более быстрые HMR и дев-сервер за счёт оптимизаций в графе модулей и Rust-инструментах.
vitejs
Vite 8 Beta: The Rolldown-powered Vite
Vite 8 Beta Release Announcement