Proud of this patch I landed to Ruby this week which makes constants inside of `class << self` scopes faster both in the interpreter and JITs. It's not the most complicated or even impactful, but something I've wanted to fix for years github.com/ruby/ruby/pu...
Posts by John Hawthorn
I've proposed adding $SECONDS, $RANDOM, and other bash features to Ruby
bugs.ruby-lang.org/issues/21976
If the catcher sees his shadow there's 6 more weeks of spring training
Ruby 4.0.2 Released www.ruby-lang.org/en/news/2026...
This is a routine update that includes a bugfix in YJIT for NoMethodError on Puma. We recommend upgrading your Ruby version at your earliest convenience.
Hockey cards for Jenn Gardiner and Sarah Nurse
Hockey cards for Emily Clarke, Natalie Spooner, Emma Maltais✨, Marie-Philip Poulin, and Laura Stacey
Marie-Philip Poulin 💜 holographic hockey card. Also my boy Ernie Clement in the background
The other side of the holographic duo Tim's hockey card is Laura Stacey. She was incredible at the Olympics. Also ern-dog and Paul Skenes are behind her because I have an eBay addiction. Send help.
Can't wait for Sunday's game
The latest faker's version includes this improvement! Nothing like profiling your code to get some quick wins.
Huge thanks to @jhawthorn.com for creating Vernier 🤓
hexdevs.com/posts/optimi...
hey folks, i’m a rails / ruby dev with a bit over 10 years of experience professionally and i was just hit with my second layoff. looking for a new role would love to chat! #rails #ruby.
Development of Ruby 4.1.0 started
```
ruby 4.1.0dev (2025-12-26T00:31:28Z master 290fa0d8b4) +YJIT +MN +PRISM [arm64-darwin25]
```
ZJIT is available starting in Ruby 4.0! Please try it out on your test suite, maybe in a staging environment, and let us know how it goes!
railsatscale.com/2025-12-24-l...
Screenshot of a terminal demonstrating object allocation speedup. Ruby 4.0 is about 2x faster
One thing I'm really excited about in Ruby 4.0 is that object allocation is going to get a nice speed boost
It happens before the value is assigned (and it seems like "frozen" Atom objects are mutable)
That's on self, it needs to be done on the value being swapped
Parsing (of whatever) with a short lived is probably currently the most obvious win. Things where the data-in is simple and data-out is complex is a good place to look. ViewComponent is the opposite of that, and it's only slow because of its own implementation, I don't really see the benefit there.
I don't think 3.5 changed what was possible but the Ractor::Port API made a bunch of things a lot more ergonomic (also that and everything else is much faster and less buggy)
Ratomic is a totally fine experiment, but it totally breaks the ractor guarantees and should not be used. It _can_ crash now and is likely to crash more in the future (see eregon's issue)
To the uninitiated, this is what every baseball game is like.
No way, the Blues Jay will take it back to Roger Center
You're absolutely right...
There's totally room for them and if you like them you should use them and make more. It's not a value judgement. There's just something about them that doesn't appeal to me as a matter of taste vs. a traditional command line tool.
I think you're right about the forcing function. It also probably enforces a consistent look and feel. But that just suggests to me it's not the optimal version of what it's trying to be. A native GUI could and should be drivable 100% by keyboard
I don't mean to single out bat, I think it's just the first tool that crosses the line. Something like `lazygit` is maybe a clearer leap. It's obviously a good tool people like, but as a fan of the command line I don't get why one would prefer that over the same tool as a full graphical GUI.
I have a hard time placing exactly what it is, but something about `bat` and other "modern" TUI tools really rubs me the wrong way. They're clearly well made, I think it's more of an aesthetic thing where that is exactly what I was running away from by using command line tools.
A konbini package of two hot dogs with Cajun sauce wrapped as a burrito.
米国人だから
I took some time to delve into my latest work on reducing Ractor contention. This time: Generic Instance Variables
byroot.github.io/ruby/perform...
## 🚀 SUBMISSION STRATEGY ### Approach: "Professional Context-Dependent Security Issue" - Not claiming pure remote RCE - Focusing on real-world deployment risks - Honest about context requirements - Emphasizing practical security impact ### Expected Response: ``` "While not directly exploitable in default configuration, this represents a significant security risk in common deployment scenarios. We'll investigate and implement appropriate mitigations." ``` ### Success Probability: 75% - Technical merit: Clear vulnerability in core Rails - Real-world relevance: Common deployment scenarios - Professional quality: Comprehensive documentation - Honest assessment: Context-dependent, not oversold --- ## ✅ READY TO SUBMIT! **All information prepared for professional Rails bug bounty submission.** **Expected Outcome:** - Rails Team Response: 1-2 weeks - Fix Development: 2-8 weeks - Security Release: 8-12 weeks - IBB Bounty: $1,040-1,600 (80% of $1,300-2,000) **Next Step:** Copy information above into HackerOne form and submit!
One of the AI generated security reports attached a bunch of MD files, and this screenshot was taken from the end of one of them. This gives me lots of feelings, and none of them are good
"two buttons" meme where the guy can't decide between calloc(n, 1) and calloc(1, n)