---
title: "DHH on the beauty of modern Linux"
publication: "Ruby Weekly"
issue: 757
published_at: "2025-07-03"
canonical_url: "https://rubyweekly.com/issues/757"
---

Plus a C# mruby VM, optimizing Ruby methods, and why you want to think before you cache. |        

#​757 — July 3, 2025 

[Read on the Web](https://rubyweekly.com/issues/757)  

Together with [![FastRuby.io\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_467,h_106/e_make_transparent/co_white,e_outline:14/y65nyff19ylf5udphsq4.png)](https://railsconf.org/hack-spaces/?utm_source=cooperpress&utm_medium=paidplacement&utm_campaign=rw-primary-link-july-03-2025-HS&utm_term=rc-hack-spaces&utm_content=event)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ut9cyrhvfixnoikn7nzh.jpg)](https://omarchy.org/)  

[Omarchy: DHH's New Opinionated Arch/Hyprland Setup](https://omarchy.org/) — DHH says he feels the same way about Linux now as he did about Ruby in 2003 and wants to _‘present its beauty in the most accessible way possible’._ Omarchy is his attempt at making it easy to get running with an aesthetically pleasing, developer-friendly Linux setup. [He writes more about it here.](https://world.hey.com/dhh/omarchy-is-out-4666dd31) 

David Heinemeier Hansson   

💡 If you're not quite ready to go so far down the rabbit hole, [Omakub](https://omakub.org/) is DHH's _Ubuntu_ based setup/configuration for developers.  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/70b077b6.png)](https://railsconf.org/hack-spaces/?utm_source=cooperpress&utm_medium=paidplacement&utm_campaign=rw-primary-link-july-03-2025-HS&utm_term=rc-hack-spaces&utm_content=event) 

[Let’s Hack Ruby Upgrade Tools Together @ RailsConf](https://railsconf.org/hack-spaces/?utm_source=cooperpress&utm_medium=paidplacement&utm_campaign=rw-primary-link-july-03-2025-HS&utm_term=rc-hack-spaces&utm_content=event) — FastRuby.io will be at Hack Spaces on July 9th, working on [open-source tools](https://www.fastruby.io/blog/open-source-tooling.html?utm_source=cooperpress&utm_medium=paidplacement&utm_campaign=rw-primary-link-july-03-2025-os&utm_term=open-source-tools&utm_content=blog) like [RailsBump.org](https://www.railsbump.org/), skunk, next_rails, and more. Come code, contribute and share ideas, or just hang out and chat with us. See you there! 🤝 

FastRuby.io | Upgrade Experts sponsor   

**IN BRIEF:** 

- Shopify's Siddarth Challa shares [his experience of taking a 'Ruby open-source sabbatical'](https://railsatscale.com/2025-07-01-a-ruby-open-source-sabbatical/) where employees take three months out to learn about things that interest them: _the Ruby LSP, in Sid's case_.
- [MRubyCS](https://github.com/hadashiA/MRubyCS) is a new [mruby](https://mruby.org/) virtual machine implemented in pure C#. An interesting way to add Ruby scripting to C# apps.
- 🎤 Last week we featured the new [_On Rails_ podcast](https://onrails.buzzsprout.com/). Now, its host Robby Russell [shares the backstory](https://robbyonrails.com/articles/2025/06/25/launching-on-rails/) of its creation.   

[Think Before You Cache in Rails](https://sinaptia.dev/posts/think-before-you-cache) — Something slow in your app? Let’s cache it! Or maybe not. Guido explores caching, when it makes sense, things that make sense to cache in a Rails app in particular, and some of the pitfalls to be aware of. 

Guido Medina   

[Capture Browser Console Logs in Rails System Tests with Capybara and Cuprite](https://danielabaron.me/blog/capture-browser-console-logs-capybara-cuprite/) — How to capture `console.log` output during system testing. This is a neat approach! 

Daniela Baron   

[🧠 Build Intelligent Applications with Rails](https://sinaptia.dev/posts/building-intelligent-applications-with-rails) — Learn about the strengths of Ruby and Rails in the AI era and why we choose them for AI applications development. 

SINAPTIA sponsor   

📄 [Comparing Idiomatic Spaceships in Ruby](https://skipkayhil.github.io/2025/06/21/comparing-idiomatic-spaceships-in-ruby.html) – A look into using the ‘spaceship’ method (`<=>`) for making objects comparable. hartley mcguire 

📄 [Migrating Postgres to SQLite with Sequel](https://nithinbekal.com/posts/psql-sqlite3-sequel/) – A handy tip. Nithin Bekal 

📄 [Five Gems You No Longer Need with Rails](https://blog.arkency.com/5-gems-you-no-longer-need-with-rails/) – Rails upgrades often add features that previously required third-party gems. Paweł Pacana (Arkency) 

📄 [You Should Delete Tests](https://andre.arko.net/2025/06/30/you-should-delete-tests/) – Brittle, slow or irrelevant tests that undermine confidence, at least. André Arko 

📄 [Using Active Storage Direct Uploads in GraphQL with Rails](https://www.sixpatterns.com/blog/active-storage-direct-uploads-graphql-rails) Vivek Patel  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/u6xbxprpmdh6an1f0am9.jpg)](https://github.com/grodowski/undercover)  

[Undercover 0.7: A Tool to Stop You Shipping Untested Code](https://github.com/grodowski/undercover) — Be warned about methods, classes and blocks that were changed without tests. Imagine something like RuboCop but for code coverage rather than code style. 

Jan Grodowski   

[🔴 Seamless Rails Upgrades: Expert Maintenance. Fixed Price](https://reinteractive.com/service/code-care) — Upgrade RoR smoothly. We offer expert Rails maintenance at a fixed price. Secure, performant, minimal disruptions. Outdated gems? Breaking changes? We handle it. 

reinteractive / CodeCare sponsor   

[Pygments.rb 4.0: A Ruby Wrapper for the Pygments Syntax Highlighter](https://github.com/pygments/pygments.rb) — [Pygments](https://pygments.org/) is perhaps the gold standard of syntax highlighters but it’s written in Python. This library makes it easier to call out to it. [Rouge](http://rouge.jneen.net/) remains a good pure Ruby alternative, however. 

Nyman, Gupta and Radchenko   

🤖 [Google Unveils _Gemini CLI_: An Open-Source AI Agent](https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/) — Google has dipped its toe into the rapidly growing AI dev agent game with a terminal-based agent, [built in TypeScript](https://github.com/google-gemini/gemini-cli), with a striking high free usage allowance, making it a good way to give such tools a try if you haven’t so far. 

Mullen and Salva (Google)   

- [wasmtime-rb 34.0](https://github.com/bytecodealliance/wasmtime-rb) – A Wasmtime-powered Ruby WebAssembly runtime for running WASM code from a Ruby app. Check out the [simple example.](https://github.com/bytecodealliance/wasmtime-rb?tab=readme-ov-file#usage)
- 🤖 [Raif 1.2](https://github.com/CultivateLabs/raif) – An AI framework in a Rails engine. Add features like tasks, conversations, and agents to Rails apps.
- [ruby-git (The Git Gem) 4.0](https://github.com/ruby-git/ruby-git) – Wraps calls to the `git`command.
- 🤖 [OpenAI Ruby 0.11](https://github.com/openai/openai-ruby) – Official Ruby SDK for the OpenAI API.
- [Textbringer v12](https://github.com/shugo/textbringer) – An Emacs-like text editor written in Ruby.
- [Ahoy Email 3.0](https://github.com/ankane/ahoy_email) – First-party email analytics for Rails.
- [oracle-enhanced 8.0](https://github.com/rsim/oracle-enhanced) – Oracle enhanced adapter for ActiveRecord.
- [Sequel 5.94](https://github.com/jeremyevans/sequel) – Popular database toolkit. [Changelog.](https://github.com/jeremyevans/sequel/blob/master/CHANGELOG)
- [sqlite3 2.7.1](https://github.com/sparklemotion/sqlite3-ruby) – Say hello to [SQLite 3.50.2](https://sqlite.org/releaselog/3_50_2.html).       

📰 Classifieds   

Logs, Traces, Errors (coming soon). Made for devs who own products, not just tickets. [Scout Monitoring!](https://www.scoutapm.com/ruby-monitoring/?utm_content=01-23-2025&utm_medium=cooperpress&utm_source=sponsorship) 

--- 

🐱 [ConfigCat Feature Flag Service](https://configcat.com/pricing/?utm_source=cooperpress_newsletter&utm_medium=sponsor&utm_campaign=cooperpress_ruby_202506) lets you run gradual rollouts, A/B tests & target users without code changes. Use coupon RUBY25 & save 25%! 

--- 

🚀 [AppSignal](https://www.appsignal.com/?utm_source=cooperpress&utm_medium=cooperpress&utm_term=ruby_nl) helps thousands of Ruby devs ship great code daily. Get set up in five minutes flat. [Try it free today, no credit card needed](https://www.appsignal.com/?utm_source=cooperpress&utm_medium=cooperpress&utm_term=ruby_nl).    

📢 Elsewhere in Dev  

As we publish several newsletters, we cast a wide net and often encounter stories that aren't Ruby specific, but which might well be of interest to you. Here are some of this week's highlights from across the dev world: 

- Popular MySQL cloud provider [PlanetScale is entering the Postgres space.](https://planetscale.com/blog/planetscale-for-postgres) It's in 'private preview' but they've already [teased some benchmarks.](https://planetscale.com/blog/benchmarking-postgres)
- The [spec for ECMAScript 2025](https://tc39.es/ecma262/2025/) has been approved. These specs generally boil down into everyday JavaScript practice over time and Dr. Axel Rauschmayer has [a look at what's new in ES2025 here.](https://2ality.com/2025/06/ecmascript-2025.html)
- It's not just JavaScript having all the fun, [▶️ the C++ 26 spec is now also finalized.](https://www.youtube.com/watch?v=TOKP7k66VBw) If you haven't looked at any C++ in years, this is a radical update with the introduction of compile-time reflection. Oh, and [the PNG spec has been updated too!](https://www.programmax.net/articles/png-is-back/)
- LLM whisper Simon Willison shows us how to [▶️ use Claude Code to build a GitHub Actions workflow](https://www.youtube.com/watch?v=VC6dmPcin2E). He takes a Python-oriented approach but you could just as easily tell Claude to use Ruby, JavaScript or even shell scripting.
- Sharon Brizinov shares the tale of [how they tracked down numerous force-pushed 'oops' commits on GitHub](https://trufflesecurity.com/blog/guest-post-how-i-scanned-all-of-github-s-oops-commits-for-leaked-secrets) and uncovered secrets worth $25k in bug bounties.
- It's a Go and JavaScript project but I found [the story of how One Million Chessboards, a live, online 1000x1000 grid of chess boards was engineered](https://eieio.games/blog/a-million-realtime-chess-boards-in-a-single-process/) and scaled to be quite fascinating.
- How to [disable `zsh` history for a given shell session](https://www.jvt.me/posts/2025/06/26/zsh-no-history/) – a handy trick.         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
