Profile avatar
lucianghinda.com
Product Engineer, Ruby on Rails Developer ‣ Curator of newsletter.shortruby.com ‣ Helping #Ruby developers design better test cases at https://goodenoughtesting.com
1,380 posts 1,723 followers 686 following
Prolific Poster
Conversation Starter

I wrote a post to braindump what I'm currently working on: allowing lock-free access to class instance variables from Ractors. byroot.github.io/ruby/perform...

I haven't mentioned this here much, but @pragprog.com has a @humblebundle.com with 19 Ruby and JavaScript ebooks for $18 or pay-what you will for smaller bundles or larger charitable donations. About one day left... www.humblebundle.com/books/javasc...

Next version of Literal will have a basic RubyLSP indexing enhancement so you get auto-complete for your props as instance variables.

Have you ever wanted to define an object like this and have it aware of its own name, `Foo::Bar`? We get that behaviour when we define modules and classes but not objects.

I'm trying to not be on social media too much so when I come back, I'll make sure to bring some gifts: Experimental MCP servers for Stimulus and Turbo documentation: github.com/pinzonjulian... github.com/pinzonjulian... @marcoroth.dev you mind find this interesting!

Yesterday I hit publish on the final part of my series on SOLID principles: the Dependency Inversion Principle. The main article, which links to the now-complete list of principles, can be found here. Following are my takes on the writing process. 1/n

This is a dream ☕️💎🥹

@rosa.codes @carlastabile.tech I think a while back we exchanged some ideas about a developer's conference with good coffee. Friendly will have a bit of that 👇

Zeitwerk ergonomics question: Say that I have a pack path like `packs/parent/child/app/models/grandchild.rb` Most files today would define that as: class Grandchild < ApplicationRecord; end ....but I would prefer it _also_ supports: class Parent::Child::Grandchild (inline nesting for space)

I published a post yesterday but I forgot to post about the post. Here's an article about speeding up object allocations in Ruby 3.5! railsatscale.com/2025-05-21-f...

Starting the May edition of the #SFRuby at Cisco Meraki with @camertron.bsky.social and the friendliest group of people ❤️‍🔥

Rails thrives on conventions. Straying from them makes your codebase unfamiliar, boosting learning curves & errors. Get insights on common pitfalls and how to tackle them to keep your app healthy: reinteractive.com/articles/top... #Rails #BestPractices #CodeQuality

After I adopted Promises Driven Development™ with great success, I've gone one step further in the boldness scale, and I'm experimenting with a new methodology that future-rosa will be thrilled and totally not going insane about when September approaches 🥹 rubyonrails.org/world/2025/d...

Yesterday, we published the 136th edition of @shortruby.com If you are not yet subscribed, Short Ruby is a long feed with short news about what happened last week in #Ruby world. This edition if packed with news, code samples, videos, articles and inspiring discussions.

v0.6.0 of "Bug Hunt: Volume 1" is now live, with two new exercises... One is themed on Conway's Game of Life and shows something to watch out for when using Ruby's pattern matching feature. The other is a common "gotcha" when using Ruby hashes, especially if you mostly work in Rails. (1 of 2)

How do you manage error classes in your app? - Granular — Domain::Specific::NotFoundError - Generic/Reusable — Error::NotFound - Not — StandardError/raise 'x' Personally, I create my own error classes so I can see what's wrong at a glance, even if it means catching existing ones. #RubyLang

The penultimate part of SOLID: the Interface Segregation Principle.

If you've upgraded a Ruby on Rails application from a version prior to 5.2 and you're using the Encrypted Credentials mechanism, you might not know that the git diff command can show you changes to the credentials file even though it's encrypted.

BTW, I’ve opened a draft PR for this: github.com/Shopify/ruby... We’re now waiting on a new VS Code API to let extensions configure the MCP connection, which will make the setup simpler & more robust.

Don't want to expose a class' initializer in Ruby? Making it private is easy! Just use `private_class_method :new`. This conveys intent that your class is not designed to be initialized from outside — perfect when you want to use the factory pattern.

🛠️ With temerity and trepidation I announce oauth2 v2.0.10. - IETF RFC 7009 Token Revocation - Bugs fixed - Test matrix: 100% line & branch on all key minor versions of all [Runtime Deps, Ruby Engines, Platforms] #ruby #security #authorization Upgrade with confidence! github.com/oauth-xx/oau...

Added Ruby 3.4.4 to the ruby-versions database. ruby-install users can now safely upgrade to Ruby 3.4.4. $ ruby-install -U ruby-3.4.4 www.ruby-lang.org/en/news/2025... github.com/postmodern/r... #ruby #ruby_install #rubyinstall

What do you love about programming in #ruby?

New article: Software License management with Polar.sh skatkov.com/posts/2025-0...

Forgot to mention that this is not even official news yet. FOLLOW ME FOR MORE SPOILERS LIKE AND SUBSCRIBE

If you've got a blog where you (at least sometimes) write Ruby-related posts, please reply with a link to your RSS feed below. I am going to try to start keeping an eye on those as well and sharing interesting stuff I find from time to time.

50 episodes down, hopefully _many_ more to go!

Namespaces 101 During the last days I have done an immersion into namespaces, the new big feature that is coming in Ruby. Here's a digested mental model for you all. gist.github.com/fxn/86ad8584...

More reasons why to choose #Ruby on @Rails from this article from @rubycentral.org > Rails offered a chance to simplify the architecture, improve delivery speed, and cut down internal friction

Ruby 3.4.4 Released www.ruby-lang.org/en/news/2025... This release includes a fix for a YJIT bug related to local variables and addresses a build issue on Windows when using GCC 15. It was released ahead of schedule to make these fixes available as soon as possible.

I'm going to be giving a full version of my RubyConf keynote talk, "Red in Fantasyland", at this month's SF Ruby! lu.ma/9f6l9pn2