John Hawthorn
@jhawthorn.com
1.1K followers 220 following 41 posts
Writing code for @Shopify, Rails, and Ruby. Previously @GitHub. he/him | Victoria, BC | jhawthorn.com
Posts Media Videos Starter Packs
Pinned
You're telling me a duck typed this code?
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.
Reposted by John Hawthorn
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
## 🚀 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!
Reposted by John Hawthorn
k0kubun @k0kubun.com · Jul 15
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.
Ruby 3.4.5 Released
www.ruby-lang.org
I'm a nervous flier, but fortunately I've downloaded the new season of Nathan Fielder's show "The Rehearsal" to distract me. No spoilers please, I want to go in blind
Reposted by John Hawthorn
k0kubun @k0kubun.com · May 14
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.
Ruby 3.4.4 Released
www.ruby-lang.org
Reposted by John Hawthorn
If you read @byroot.bsky.social 's "What's the deal with Ractors?", and were bummed at how poorly they handled JSON parsing, then @jhawthorn.com has brightened your day!

Frozen interned strings are now stored in a lock-free hash, making the Ractor example 2x faster than the single-threaded example!
# == single-threaded
# RUBY_YJIT_ENABLE=1 ruby parse.rb 1.12s user 0.11s system 77% cpu 1.599 total
# == master, pre-optimization
# RUBY_YJIT_ENABLE=1 ruby ractor_parse.rb  3.70s user 6.52s system 256% cpu 3.990 total
# == master, after https://github.com/ruby/ruby/pull/12921
# RUBY_YJIT_ENABLE=1 ruby ractor_parse.rb  1.31s user 0.28s system 210% cpu 0.754 total
Reposted by John Hawthorn
Announcing Dial, a Rails application profiler: github.com/joshuay03/dial

I've longed for a free tool that provides Datadog-like profiles, with accurate GVL and GC activity. Thanks to @jhawthorn.com's amazing work on Vernier, all I needed to do was integrate it with Rails and let it do its thing.
GitHub - joshuay03/dial: A modern profiler for your Rails application
A modern profiler for your Rails application. Contribute to joshuay03/dial development by creating an account on GitHub.
github.com
It certainly isn't wasting any time on bounds checks
One of my favourite things (of many) about rr-project.org is how it actually complements my tendency to be a printf debugger, because it's so easy to start gdb at the point that the output goes wrong.
rr: lightweight recording & deterministic debugging
rr-project.org