John Hawthorn
@jhawthorn.com
1.1K followers 220 following 40 posts
Writing code for @Shopify, Rails, and Ruby. Previously @GitHub. he/him | Victoria, BC | jhawthorn.com
Posts Media Videos Starter Packs
Pinned
jhawthorn.com
You're telling me a duck typed this code?
jhawthorn.com
You're absolutely right...
jhawthorn.com
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.
jhawthorn.com
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
jhawthorn.com
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.
jhawthorn.com
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.
jhawthorn.com
米国人だから
A konbini package of two hot dogs with Cajun sauce wrapped as a burrito.
Reposted by John Hawthorn
tenderlove.dev
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.com
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
jhawthorn.com
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.com
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
jpcamara.com
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
joshuay03.bsky.social
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
jhawthorn.com
It certainly isn't wasting any time on bounds checks
jhawthorn.com
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
Reposted by John Hawthorn
getajobmike.ruby.social.ap.brid.gy
What's new?

- Quickly and easily profile your jobs in production with Vernier integration.
- View multi-day job execution metrics to see performance over time.
- Heavily rewritten Web UI much faster than 7.3.0.
- Many more small improvements

Here's Web UI 7.3 vs 8.0.
7.3 8.0