I just signed the open letter to the Rails Core team, after hesitating for a long time about whether that was the right choice for me.
I know and like several Rails core members, as well as several Basecamp employees. I understand the squeeze that can happen when speaking out individually only […]
Posts by Ruby + Rails : Distilled
So the way I read this is a sponsor forced this action by Ruby Central.
If that sponsor was Shopify, then in effect, this confirms that a company that DHH is a board member of forced this action.
If not, who was responsible for this then?
This is a very […]
[Original post on mastodon.social]
Sorry for the very long thread!
Just wanted to get this all out there so I can link to it if anyone else asks.
Now if there's a learning and growing that happens... I'll be back! This is the closest I've seen to a platform that *could* work at global scale.
Mastodon is solving a different problem.
But it's a safer place for me to be until atproto has at least a couple alternative platforms on it.
I spent the last decade as a management consultant / exec advisor for several different businesses (one of which was much bigger than Bluesky in revenue + team size) trying to design sustainable revenue models that take network effects into account.
I don't see it here, so I gotta go.
I believe in the good intentions of the team and even in the lack of *active* ill-intent from the person I'm referring to here, and I did have a meaningful convo in private where I felt heard and was told that my notes have been passed on to the team.
But I also make my own choices on principle.
It turned my stomach to see that team member playfully say things like "Should I delete that post for you since its an ad?" when it was a link to some small individual creator's work.
To think that's what we've got shaping strategy at one of the world's most influential platforms is very unsettling
All of this triggered alarm bells of tech startup culture where engineers + product designers lead efforts and there's a lack of seriousness about building real, sustainable business models, and a lack of responsibility to use power and visibility appropriately and be mindful of differentials.
I observed one of Bluesky's most visible team members poking fun at and being unkind to someone who runs a small account here for questioning their intentions, and that same person treated me very poorly as well until they realized I had a nuanced argument to make.
notes.skillstopractice.com/updates/2025...
I had assumed that Bluesky had made a commitment to seek a self-sustaining business model that didn't involve ad revenue and I was wrong about that, even though prior conversations with the team made me believe otherwise.
Ruby + Rails : Distilled is moving to Mastodon.
Just getting set up over there but you'll find the account here:
ruby.social/@distilled
I will set up bridging when I can, not sure if I will do crossposting though.
If you're set up with @ap.brid.gy here I can still share your posts that way.
I'm leaving Bluesky effective immediately and this is the reason why.
I'll post when I get Mastodon set up + an RSS feed + newsletter.
ViewComponents reduce bloat, simplify data, and create reusable frontend styling. Despite these benefits, they're often under-utilized in the Rails community. I've written a blog post refactoring a real-world example into isolated ViewComponents.
joshfrankel.me/blog/viewcom...
#ruby #rubyonrails
You might get less performance from using `.excluding` than `.where.not` and here's why.
dcyoung.dev/shorts/how-e...
#RubyOnRails #WebDevelopment
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
Already several good RSS feeds in the thread.
Keep them coming! Discoverability is hard these days and RSS was one of those lovely tools that deserves a comeback.
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.
What do you love about programming in #ruby?
Screenshot of Ruby code: class Pizza def self.margherita new(sauce: 'tomato', cheese: 'mozzarella', toppings: %w[basil]) end def self.vegetariana new(sauce: 'tomato', cheese: 'mozzarella', toppings: %w[aubergine mushrooms peppers onions olives]) end private_class_method :new def initialize(sauce:, cheese:, toppings:) @sauce = sauce @cheese = cheese @toppings = toppings end end
Screenshot of Ruby code: Pizza.margherita # => #<Pizza:0x0000000121c17f10 # @cheese="mozzarella", # @sauce="tomato", # @toppings=["basil"]> Pizza.vegetariana # => <Pizza:0x0000000120f34988 # @cheese="mozzarella", # @sauce="tomato", # @toppings=["aubergine", "mushrooms", "peppers", "onions", "olives"]> Pizza.new(sauce: 'white', cheese: 'none', toppings: %w[pineapple]) # => private method 'new' called for class Pizza (NoMethodError)
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.
How to automatically trigger a file download with Turbo?
The user triggers the creation of a file. That file is created using a background job. I could update the view using Turbo Streams (e.g. render a 'Download Now' button). But I'd like download to automatically start 🤔
#rubyonrails
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...
Incredibly common Rails perf anti-pattern:
Rails.cache.fetch([complicated,cache,key], expires_in: random_interval) do
dog_of_a_SQL_query
end
Cache hitrate: 10% (if anyone even knows what it is)
Quick reminder that you should be using Jemalloc 👀
#rubyonrails #ruby
hey #RubyLang folks - our tests against Ruby head in sentry-ruby started failing yesterday with:
LoadError: cannot load such file -- cgi/cookie
I'm disabling ruby head version in our CI matrix for the time being but maybe there's a fix somewhere?
Your periodic reminder that consolidating a wobbly design is worse than a waste of time, it interferes with further improvement. Sometimes the best thing is put all the elements in one pile until the fault lines become clear. #AugmentedCoding #GeniesDesignBadly
What's the best host for running a Ruby application, that stores files on the server, and runs sqlite as the database, on the server?
Having setters that appear to be at the instance level apply at the class level is something that (for me) definitely would be against the Principle of Least Surprise.
An easy way to define class level accessors is nice but hard to see the use case for the instance level behavior.