
Thay vì tạo lớp ActiveJob mỏng để gọi phương thức đơn lẻ trong file recurring.yml, lập trình viên Ruby on Rails có thể sử dụng khóa command: để gọi trực tiếp phương thức lớp Ruby thuần. Cách này giảm boilerplate, giữ logic trong đối tượng Ruby thuần, và chỉ cần worker cấu hình cho queue solid_queue_recurring. Có thể ghi đè queue cho mỗi tác vụ.
Vì sao nên đọc: Lập trình viên Ruby on Rails nên đọc bài này để tiết kiệm thời gian và tránh việc tạo lớp ActiveJob thừa khi chỉ cần xử lý nhiệm vụ định kỳ đơn giản, đồng thời tối ưu hóa cấu trúc mã bằng cách sử dụng Solid Queue một cách hiệu quả.
Nguồn: https://bhserna.com/make-a-method-a-recurring-task-with-solid-queue. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Bảng tham chiếu tương thích này liệt kê phiên bản JRuby từ 9.2 đến 10.1, bao gồm mức ngôn ngữ Ruby, phiên bản Java tối thiểu và phiên bản Rails hỗ trợ. JRuby 10 cải thiện thời gian khởi động nhờ AppCDS và Project CRaC, trong khi lợi thế của JRuby so với CRuby MRI bao gồm đa luồng thực sự (không có GVL), truy cập hệ sinh thái JVM và triển khai dưới dạng một artifact duy nhất.
Lập trình viên phát triển ứng dụng Rails cần tham khảo bảng so sánh này để chọn phiên bản JRuby phù hợp với yêu cầu Ruby version, Java cốt lõi và Rails version, giúp tối ưu hiệu năng, tương thích và triển khai nhanh chóng.
A comprehensive guide to building modular monoliths in Rails 8, covering the three main approaches: Rails Engines, Packwerk, and plain namespaced modules. Explains how each mechanism enforces boundaries differently — structural vs. CI-enforced vs. convention-based — with a side-by-side comparison table. Covers Zeitwerk autoloading behavior in modular layouts, inter-module communication patterns (method calls, ActiveSupport::Notifications, async jobs), data ownership rules (one database with logical table ownership), and testing strategies per module. Includes an incremental migration path for existing messy apps and honest guidance on when NOT to modularize. Also notes that Rails 8's Solid Queue/Cache/Cable reduces the operational pressure to extract microservices.
Mike Dalessio, maintainer of nokogiri, loofah, and mechanize, discusses how AI has transformed open source maintenance — particularly around security. He describes a flood of AI-generated vulnerability reports (17 in two weeks vs. single digits per year previously), the shutdown of HackerOne's Internet Bug Bounty program due to AI-generated report volume, and how AI is both useful (repeatable security processes, fuzz-like pattern matching) and harmful (low contributor engagement, security theater). He also reflects on maintainer burnout through the lens of Christina Maslach's burnout research, noting that all six burnout dimensions apply to open source maintainers, and shares coping strategies like slowing down and not treating every security report as an emergency.
AlchemyCMS 8.3 has been released with a completely redesigned admin dashboard featuring configurable, lazy-loaded widgets. New wildcard URL support allows dynamic content routing via URL pattern matching. The release also replaces the custom select web component with Tom Select (removing a jQuery dependency), updates TinyMCE to 8.6.0, adds automatic element cache invalidation on related object changes, and includes several developer ergonomics improvements. Breaking changes include removal of the AlchemyHTMLElement base class and soft-removal of Ruby 3.2 from the test matrix. Upgrading requires bumping the gem version and running the built-in upgrader.
A deep dive into how Ruby's YARV virtual machine implements closures under the hood. When a lambda or proc captures a local variable, Ruby copies the current stack frame environment to the heap, creating an rb_env_t object. Crucially, Ruby then redirects the Environment Pointer (EP) to the heap copy, so all subsequent variable accesses — including mutations — go through the heap. This explains why multiple lambdas in the same scope share the same captured variables (they reuse the same rb_env_t), why variable modifications after lambda creation are visible inside the closure, and why local variables survive after their enclosing method returns. Internally, both lambda and Proc.new produce an rb_proc_t object distinguished only by an is_lambda boolean flag.
Khi một ứng dụng Rails được mua lại, giai đoạn chuyển giao kỹ thuật thường khó khăn hơn bản thân thương vụ. Ba tháng đầu tiên quan trọng để xây dựng niềm tin với chủ sở hữu mới, bao gồm kiểm kê toàn bộ dịch vụ bên ngoài, chi phí, tiến hành kiểm toán bảo mật chủ động (cập nhật gem lỗi thời, xem xét quyền truy cập sản xuất, kiểm tra thông tin đăng nhập trong kho lưu trữ), và ghi chép kiến thức nội bộ trước khi thành viên rời đi. Nên ưu tiên ổn định hệ thống thay vì vội vàng phát triển tính năng mới, đồng thời minh bạch về lỗ hổng, chi phí và lộ trình khắc phục để tăng uy tín.
Một lập trình viên Rails nên đọc bài này để hiểu cách bảo vệ và chuyển giao dự án hiệu quả trong giai đoạn quan trọng sau khi được mua lại, từ việc kiểm tra an toàn, quản lý chi phí đến xây dựng sự tin tưởng với đội ngũ mới.

Beam Up is a new open-source Ruby CLI gem for deploying static sites to multiple providers with a single command. It supports AWS S3, Netlify, Hetzner, Seal Static, Statichost, and SFTP. After installing via gem install beam_up and running beam_up init to configure a provider, deployments are triggered with beam_up ./output. It can also be used as a Ruby library. Beam Up integrates natively with Perron, a Rails-based static site generator, enabling one-command build-and-deploy via bin/rails perron:deploy.

Ruby Weekly issue #806 covers a range of Ruby ecosystem news. The headline story is an experiment compiling a Rails blog app to a ~500KB binary using Spinel (Matz's AOT Ruby compiler) and the Roundhouse compiler, serving the app in just 12MB of RAM. Other highlights include a proposal to add parallel sweeping to Ruby's GC (showing ~3.64% runtime improvement), the json gem 2.20 release with non-recursive parsers and a new ResumableParser, a pure Ruby X11 terminal emulator, and several library releases including RubyGems/Bundler 4.0.15, mruby/c 4.0, Rails Event Store 3.0, and Grape 3.3.