My favorite tech movement in 2025 wasn’t anything artifical, but rather the resurgence in interest around building terminal interfaces with two new frameworks, Charm and Ratatui , which make developing pure text user interfaces easier than ever before using Go or Rust. They provide a huge set of components and examples showing you how to build various types of functionality. Mainframe…
I’m enabling comments via Mastodon using this webcomponent . @dpecos has done a nice job keeping it self-contained and has made good tradeoffs in functionality vs simplicity IMO. Thanks @sardaukar!
Sidekiq is the most popular background job framework for Ruby applications and over the last 13 years, it has reached maturity in its feature set. It has filled out much of its original design so adding a major new feature is a comparatively rare event these days. For years I’ve wanted Ruby to support thread-safe profiling. Historically Ruby’s profiling APIs were process-global. Data…
Since its release last month, Sidekiq 8.0 has been very smooth with few reported issues. I’ve been quite happy with the rollout and wanted to provide a little more context about the changes. My goals for any user-friendly, high quality software is to reduce dependencies and keep it simple. Sidekiq 8.0 brings a significant overhaul to its Web UI and these changes further those goals. The Web…
After six months of hard work, I’m thrilled to announce the general availability of Sidekiq 8.0! 🥳🎉 Status Sidekiq is used by thousands of Ruby applications around the world to scale job processing up to billions of jobs/day. Current Sidekiq Enterprise customers are reporting a grand total of 1,806,671,058,604 jobs processed, almost two trillion, with my largest customer executing up to…
Conventional Commits is a defacto standard for writing commit messages in a manner more useful for both humans and machines. Examples: feat(batches): adjust callback data model to conform to naming standards ci: add ruby 3.4 to matrix style: upgrade standard formatting I learned of conventional commits recently and like the simplicity and ease of use. I want to use this standard going forward for…
I’m happy to announce a substantial $12,000 grant to the Hanami framework. I’ve been a massive believer in Open Source software since publishing my first open source project in 1995. There’s nothing more empowering than direct access to the exact source code needed to solve a problem. But Ruby has a problem: it’s mostly a monoculture around Rails. Merb and Sinatra provided…
Sidekiq is the most popular background job framework for Ruby and works really well if you follow the design guidelines: keep your jobs short and idempotent. What happens if you have a job which processes a large amount of data serially, the infamous long-running job? In that case, deployments can lead to the job failing mid-way because the job will not gracefully allow the Sidekiq process to…
A few weeks ago, the owners of Redis changed its licensing from BSD to a more limited source available license. As far as I know this was done in order to prevent service providers from adding their own closed source, proprietary changes to their Redis service offerings. In principle I like this change. My Faktory project uses the AGPL license for the same purpose: Faktory is open source and…
Ruby’s JSON library allows you to convert Ruby datatypes into a JSON document, as long as those types are native to JSON: String, bool, int, float, nil, Hash and Array. Everything else converts to a String by default; if you use any other core datatypes, they will not survive a JSON.generate/JSON.parse round trip. Here I pass a Range, Symbol and Time; notice how the end result is three…