2025 was an incredible year for Ruby Events around the world and also for the @rubyevents.org platform!
To celebrate, we're releasing RubyEvents Wrapped!
A look back at talks, events, speakers, sponsors, and the Ruby community's year!
2025 was an incredible year for Ruby Events around the world and also for the @rubyevents.org platform!
To celebrate, we're releasing RubyEvents Wrapped!
A look back at talks, events, speakers, sponsors, and the Ruby community's year!
Night photo is the opera house, we are going to see Tosca tonight.
Tried also some Sinn divers this morning in the old town boutique. Some are filled with oil and can go 5 km deep (not a typo!). But did not purchase any in the end.
Night photo is the opera house, we are going to see Tosca tonight.
Tried also some Sinn divers this morning in the old town boutique. Some are filled with oil and can go 5 km deep (not a typo!). But did not purchase any in the end.
That is why I want to self-publish, I want full control of the content and how to present it, among other things. My book is going to be rigurous and comprehensive you-are-here-for-the-real-deal.
austinhenley.com/blog/cancele...
That is why I want to self-publish, I want full control of the content and how to present it, among other things. My book is going to be rigurous and comprehensive you-are-here-for-the-real-deal.
austinhenley.com/blog/cancele...
klass.to_s
to get its name.
However, that is unnecessarily indirect. If you want the class name, just ask for it!
klass.name
That is more concise/intentional.
klass.to_s
to get its name.
However, that is unnecessarily indirect. If you want the class name, just ask for it!
klass.name
That is more concise/intentional.
youtu.be/xtKcagvogSA?...
youtu.be/xtKcagvogSA?...
rubyreferences.github.io/rubychanges/...
Goals: Full, comprehensive, concise, well-structured.
Examples, explanations of reasons, links to docs, all of it.
rubyreferences.github.io/rubychanges/...
Goals: Full, comprehensive, concise, well-structured.
Examples, explanations of reasons, links to docs, all of it.
Rails has given me a lot, and giving back through open source has always felt like the natural response. Looking forward to continuing the work. ❤️
I wrote a short note on my blog:
marcoroth.dev/posts/rails-...
Rails has given me a lot, and giving back through open source has always felt like the natural response. Looking forward to continuing the work. ❤️
I wrote a short note on my blog:
marcoroth.dev/posts/rails-...
Now enjoying Zurich by walk a bit before my flight.
Now enjoying Zurich by walk a bit before my flight.
And yes, I was on a secret mission to Zurich 😀.
rubyonrails.org/2025/12/17/m...
And yes, I was on a secret mission to Zurich 😀.
rubyonrails.org/2025/12/17/m...
He’s done so much for the Rails ecosystem and the Ruby community.
Huge congrats, Marco! 🙌
And it's great to have @fxn.bsky.social and @amandabrooke.bsky.social around.
#rails #RubyOnRails #ReActionView #herb
He’s done so much for the Rails ecosystem and the Ruby community.
Huge congrats, Marco! 🙌
And it's great to have @fxn.bsky.social and @amandabrooke.bsky.social around.
#rails #RubyOnRails #ReActionView #herb
It improves the performance of some validation logic. This may be measurable in large apps with ignored directories and lots of autoload paths.
In Gusto's main application (+20 autoloaders, ~2000 autoload paths), the patch saves 800 ms of boot time.
It improves the performance of some validation logic. This may be measurable in large apps with ignored directories and lots of autoload paths.
In Gusto's main application (+20 autoloaders, ~2000 autoload paths), the patch saves 800 ms of boot time.
There will be talks by Alessandro Rodi, @marcoroth.dev, and yours truly. It's going to be a good one.
Being Switzerland, I am leaving my credit card at home 🤣.
www.meetup.com/rubyonrails-...
There will be talks by Alessandro Rodi, @marcoroth.dev, and yours truly. It's going to be a good one.
Being Switzerland, I am leaving my credit card at home 🤣.
www.meetup.com/rubyonrails-...
This starts to feel too human.
This starts to feel too human.
As far as we know!
As far as we know!
Oh man, the music is always in flux, never resolves, four hours of tension without rest. When a resolution could land, you are taken elsewhere.
And the singers, so demanding, don't know how they can do it.
Oh man, the music is always in flux, never resolves, four hours of tension without rest. When a resolution could land, you are taken elsewhere.
And the singers, so demanding, don't know how they can do it.
It dims any branches or expressions that are unnecessary, helping you quickly see which parts aren’t used or executed. 🌿
It dims any branches or expressions that are unnecessary, helping you quickly see which parts aren’t used or executed. 🌿
I was born on the 20th of January. Being a small kid I noticed in some magazines I was Capricorn and in others Aquarius. So I had two different predictions! WTF!!!!
The system was obviously inconsistent. Done with it.
I was born on the 20th of January. Being a small kid I noticed in some magazines I was Capricorn and in others Aquarius. So I had two different predictions! WTF!!!!
The system was obviously inconsistent. Done with it.
Maybe next year.
Maybe next year.
So,
A::B::C::D
goes by pairs (like `+`) and performs intermediate lookups:
((A::B)::C)::D
You can actually write it like that.
More on that in my forthcoming book about constants in Ruby I am committed to finish within this century.
So,
A::B::C::D
goes by pairs (like `+`) and performs intermediate lookups:
((A::B)::C)::D
You can actually write it like that.
More on that in my forthcoming book about constants in Ruby I am committed to finish within this century.
Currently, you can only do that with WEB_CONCURRENCY=auto, but we'll also make this possible in the next puma version by using `workers :auto` in your puma.rb.
Currently, you can only do that with WEB_CONCURRENCY=auto, but we'll also make this possible in the next puma version by using `workers :auto` in your puma.rb.