Advertisement · 728 × 90

Posts by John Hawthorn

Preview
Use compile-time flag to determine when a singleton CREF is dynamic by jhawthorn · Pull Request #16604 · ruby/ruby This aims to allow constant cache accesses inside a singleton CREF to use the same fastpath as most constant caches, without needing to re-check the CREF on every access. class Foo def self.foo1 ...

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...

5 days ago 19 0 0 0
Preview
GitHub - jhawthorn/bashisms Contribute to jhawthorn/bashisms development by creating an account on GitHub.

Please give github.com/jhawthorn/ba... a try

1 week ago 3 1 0 0
Feature #21976: Add $SECONDS, $RANDOM, and other bashisms - Ruby - Ruby Issue Tracking System Redmine

I've proposed adding $SECONDS, $RANDOM, and other bash features to Ruby
bugs.ruby-lang.org/issues/21976

1 week ago 5 1 1 0

If the catcher sees his shadow there's 6 more weeks of spring training

2 weeks ago 5 0 0 1
Preview
Ruby 4.0.2 Released | Ruby Ruby 4.0.2 has been released.

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.

3 weeks ago 20 13 0 0
Hockey cards for Jenn Gardiner and Sarah Nurse

Hockey cards for Jenn Gardiner and Sarah Nurse

Hockey cards for Emily Clarke, Natalie Spooner, Emma Maltais✨, Marie-Philip Poulin, and Laura Stacey

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

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.

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

1 month ago 6 0 1 0
Preview
Optimizing load time for faker-ruby A quick win that made loading faker-ruby 19% faster.

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...

2 months ago 6 1 0 0

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.

2 months ago 33 44 5 1

Development of Ruby 4.1.0 started
```
ruby 4.1.0dev (2025-12-26T00:31:28Z master 290fa0d8b4) +YJIT +MN +PRISM [arm64-darwin25]
```

3 months ago 27 5 0 0
Advertisement
Preview
ZJIT is now available in Ruby 4.0 ZJIT is now available with the release of Ruby 4.0. Here’s an update of our progress.

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...

3 months ago 20 7 2 0
Screenshot of a terminal demonstrating object allocation speedup. Ruby 4.0 is about 2x faster

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

3 months ago 89 10 3 0

It happens before the value is assigned (and it seems like "frozen" Atom objects are mutable)

5 months ago 1 0 1 0

That's on self, it needs to be done on the value being swapped

5 months ago 0 0 1 0

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.

5 months ago 2 0 1 0

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)

5 months ago 2 0 1 0

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)

5 months ago 3 0 1 0

To the uninitiated, this is what every baseball game is like.

5 months ago 3 0 0 0
Advertisement
Searching Ruby's documentation - John Hawthorn The official Ruby docs are at https://docs.ruby-lang.org/en/. This documentation (and any documentation built with rdoc 6.15.0 or greater) now can be searched using a query parameter. Check it out! ht...

I made it easier to search Ruby's docs www.johnhawthorn.com/2025/searchi...

5 months ago 39 5 2 0

No way, the Blues Jay will take it back to Roger Center

5 months ago 1 0 0 0

You're absolutely right...

6 months ago 9 0 0 1

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.

6 months ago 1 0 1 0

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

6 months ago 2 0 1 0

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.

6 months ago 4 0 2 0

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.

6 months ago 8 1 4 0
A konbini package of two hot dogs with Cajun sauce wrapped as a burrito.

A konbini package of two hot dogs with Cajun sauce wrapped as a burrito.

米国人だから

7 months ago 4 0 0 0
Unlocking Ractors: generic instance variables In two previous posts, I explained that one of the big blockers for Ractors’ viability is that while they’re supposed to run fully in parallel, in many cases, they’d perform worse than a single thread...

I took some time to delve into my latest work on reducing Ractor contention. This time: Generic Instance Variables

byroot.github.io/ruby/perform...

7 months ago 17 6 1 0
Advertisement
## 🚀 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!

## 🚀 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

8 months ago 21 2 2 0
"two buttons" meme where the guy can't decide between calloc(n, 1) and calloc(1, n)

"two buttons" meme where the guy can't decide between calloc(n, 1) and calloc(1, n)

8 months ago 16 0 1 0
Ruby 3.4.5 Released

Ruby 3.4.5 Released www.ruby-lang.org/en/news/2025...

This is a routine update that includes bug fixes and GCC 15 support. We recommend upgrading your Ruby version at your earliest convenience.

8 months ago 29 10 1 0
Preview
How Compiler Explorer Works in 2025 — Matt Godbolt’s blog How we handle 92 million compilations a year without everything catching fire

It's been a while since I've written about the innards of @compiler-explorer.com. xania.org/202506/how-c... has the details, some statistics and some fun war stories.

10 months ago 57 17 3 0