Lucian Ghinda
lucianghinda.com
Lucian Ghinda
@lucianghinda.com
Product Engineer, Ruby on Rails Developer

‣ Curator of newsletter.shortruby.com
‣ Helping #Ruby developers design better test cases at https://goodenoughtesting.com
5️⃣ Avo - Deterministic Mesh Gradient Avatars in Rails

Avo continues to publish on their blog deep dive good tutorials and this one is no exception. Using ChunkyPNG and a bit of math you will generate some very nice mesh gradient avatars with Ruby.

avohq.io/blog/determ...
November 12, 2025 at 8:30 AM
4️⃣ Jason Swett - RSpec shared examples unmasked

Jason goes over BetterSpec recommendation for using shared examples and builds up an argument for why in testing DRY might not be a good principle to follow.

www.saturnci.com/rspec-share...
November 12, 2025 at 8:30 AM
3️⃣ Maciej Mensfeld - When Your Hash Becomes a String: Hunting Ruby’s Million-to-One Memory Bug

He explores a puzzling Ruby memory bug, guiding us through clues and insights into Ruby's memory model. It feels like a detective's journey.

mensfeld.pl/2025/11/rub...
November 12, 2025 at 8:30 AM
2️⃣ Noel Rappin - Ruby And Its Neighbors: Smalltalk

Enjoyed Noel's exploration of Smalltalk, highlighting its innovations and how Ruby borrowed from it. Insightful, especially from someone with professional experience in Smalltalk.
noelrappin.com/blog/2025/1...
November 12, 2025 at 8:30 AM
1️⃣ Julian Rubisch - An Introduction to Game Development with DragonRuby

An excellent exploration of using Ruby beyond web apps. This post provides enough information to get you excited about having fun with DragonRuby
blog.appsignal.com/2025/11/05/...
November 12, 2025 at 8:30 AM
If I were to recommend just five articles from last week, these would be my choices.

#FiveRubyLinks #Ruby #Rails #Reading
November 12, 2025 at 8:30 AM
Preparing first workshop for an in-house training session for a company about Reliable Test Case Generation with AI, part of #GoodEnoughTesting

This will be about the Test Strategy, a document that will be useful for both agentic AIs and individual contributors
November 11, 2025 at 12:35 PM
Matz ( @matz.bsky.social ) hinted that this should be considered a low-level API and there may be plans for a higher-level API in the future. This is exciting, as it could open up more possibilities: bugs.ruby-lang.org/issues/2138...
November 11, 2025 at 8:30 AM
The proposal that was finally accepted by @matz.bsky.social was suggested by Satoshi Tagomori @tagomoris.bsky.social
bugs.ruby-lang.org/issues/2138...
November 11, 2025 at 8:30 AM
The discussion about this renaming was initiated by Xavier Noria @fxn.bsky.social sharing good reasons here about why the name should be reconsidered:
bugs.ruby-lang.org/issues/21385
November 11, 2025 at 8:30 AM
This is what I parsed
November 8, 2025 at 10:21 AM
Notice that there is a node called `CaseMatchNode` and then inside has two conditions (on the same level as being part of the Case)

- InNode (location: (2,8)-(3,23))
- @ InNode (location: (3,24)-(3,33))

So it is parsed as being a second condition of the case and not inside
November 8, 2025 at 10:21 AM
It works as expected, not sure why it did not work before.

I think it is parsed like this (but I am not 100% sure - you should look at how Prism is parsing that code)
November 8, 2025 at 10:11 AM
While the paper focused on Java, I think in case of #Ruby, where developers often use meaningful names for variables and methods and consider the domain context this should improve the quality of assertions made by LLMs
November 7, 2025 at 1:56 PM
If the code contains a bug that isn't clear in terms of business logic, the LLM will likely generate test cases that replicate the bug. Without specific requirements, the LLM cannot discern the intended business logic.
November 7, 2025 at 1:56 PM
When LLMs generate test cases without clear requirements, they often mimic the code. For effective test generation, well-written requirements are crucial for LLMs to create test oracles.
November 7, 2025 at 1:56 PM
I’ll start with a 2024 study titled “Do LLMs generate test oracles that capture the actual or the expected program behaviour?”
November 7, 2025 at 1:56 PM
You can also write this using instance variables and attr_accessor
November 6, 2025 at 10:01 AM
Just for the fun of this let's take a look at Minitest version
November 6, 2025 at 10:01 AM
What about here? How fast can you determine the statements and their execution order before running the test?
November 6, 2025 at 10:01 AM
How fast can you determine the statements and their execution order before running the test?
November 6, 2025 at 10:01 AM
Reason 2: It hides the sequence in which preconditions are executed.

While reading a test, you have to keep in mind which letters were with ! and also how their order appeared when defined.
November 6, 2025 at 10:01 AM
What about now?
How quickly can you identify which statements will be executed before the test code runs?
November 6, 2025 at 10:01 AM
How quickly can you identify which statements will be executed before the test code runs?
November 6, 2025 at 10:01 AM
Reason 1: let! is actually a precondition for a test, but it hides this fact
What is a precondition in testing?
Precondition = the required state of the system before running a specific test.
November 6, 2025 at 10:01 AM