A handful of things that caught my attention this week.
1. RBQ Conference
Last week I went to the RBQ conference in Austin, Texas. This is the first conference I’ve attended since the last Rubyfuza right before Covid shut the world down in 2020. I got to catch up with Charles “@headius” Nutter, who was also at that last Rubyfuza, again, and I also got to meet Amir Rajan, one of the founders of DragonRuby, in person (we’d corresponded a lot, but never met in person). It was a small, well-curated conference – the kind where you actually talk to people instead of just being in the same building. I came away energised and reminded of why I got into Ruby in the first place.
2. The Mutant gem and mutation testing
Szymon Fiedler gave a talk at RBQ about mutation testing, and it made the whole concept feel less intimidating than I’d always assumed. The idea is straightforward: Mutant systematically modifies your code – changing a >= to a >, removing a statement, flipping a boolean – and runs your test suite against each mutation. If your tests still pass, you’ve found a gap. It supports RSpec and Minitest, tracks results between runs so you’re not re-testing everything, and has an incremental mode for CI. Mutation testing has always interested me, but it’s not something I’ve ever actually done. In a world where more and more tests are being generated by AI, it seems like a particularly powerful technique for ensuring your tests are actually testing what you think they’re testing.
3. Ruby is All You Need
This article walks through three techniques for testing GenAI output – all implemented in Ruby. Semantic similarity embeds both the reference answer and the model’s response and then measure cosine distance to see if the meaning aligns – this is close to work I’ve been doing in semantic search and RAG, so it felt immediately familiar. The other two, LLM-as-judge and Ragas-style metrics, deserve more investigation. There were multiple talks at RBQ touching on this space – testing GenAI outputs – including Szymon Fiedler’s mutation testing talk (see above), and Chris Gratigny’s “Lessons Learned from my first AI implementation.” Videos of the RBQ talks should be available in the next couple of weeks.
4. Headius Enterprises
On the morning of the first day of RBQ, we launched the new Headius Enterprises website. It’s a Bridgetown site, static and fast, playful but professional. Next steps include accessibility improvements, updating the blog, refreshing the JRuby.org website, and building tooling to make future maintenance easier. One of the things I’m looking into, is making Bridgetown work on JRuby … there’s a single fork that is blocking this right now.
5. TIL: For any prime number p >= 5, p²-1 is divisible by 24
A neat, short thread by Steve Hayman on Mastodon. There’s an informal, and fully understandable, proof in the next post. There are replies allegedly reducing the coolness of this result but pay them no heed. This is a cool thing.
6. Mockdown — ASCII Wireframe Editor
Mike Perham recently released kiq as part of Sidekiq. It’s a TUI using RatatuiRuby which itself is a set of Ruby bindings to the Rust Ratatui library. So, with TUI’s being all the rage at the moment, Mockdown seems like a neat addition to the toolbelt: It’s an ASCII UI wireframe tool that generates Markdown. Think of it as Figma for Terminal UIs.