J

Joe Damato

timetobleed.com · Personal blog · on HN since 2008

Joe Damato writes deep technical posts on Linux internals, Ruby VM performance, debugging, and binary formats.

What HN saysCommenters call his posts fascinating and say they show the value of understanding what's under the hood, though he posts infrequently.
39HN people shared it
15linked it in comments
52stories submitted
2.0Kstory points
5 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    The Broken Promises of MRI/REE/YARV
    5 people · 151 points · first shared 2011 · 65 comments on HN
  2. 2
    Homepage
    5 people · first shared 2010
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
    Dynamic Linking: ELF vs. Mach-O
    2 people · 62 points · first shared 2010 · discussion on HN
  8. 8
  9. 9
  10. 10
    Fixing Threads in Ruby 1.8: A 2-10x performance boost
    2 people · 51 points · first shared 2009 · 14 comments on HN
  11. 11
  12. 12
  13. 13
    Defeating the Matasano C++ Challenge with ASLR enabled
    2 people · 23 points · first shared 2009 · discussion on HN
  14. 14
  15. 15

What HN people wrote when they linked it

jcdavis · 2017-02-21
Pretty sure he writes all of the linux internals posts. He also has a bunch of great ones on his blog http://timetobleed.com/
earl · 2011-10-17
Joe Damato has a great albeit infrequently updated programming blog, http://timetobleed.com/ . I think he wrote the memprof ruby gem. Posts HN may really enjoy: an obscure kernel feature to get more info about dying processes [1] a presentation from some ruby conf, particularly slide set 2 which details how memprof works and talks about the abi, etc [2] plus a bunch of discussion of profiling tools to look at exactly what gcc or your vm of choice are doing. Highly recommended. [1] http://timetobleed.com/an-obscure-kernel-feature-to-get-more-info-abou… [2] http://timetobleed.com/slides-from-mwrc-2010/
testing12341234 · 2012-08-20
If you go directly to the domain, http://timetobleed.com/, then you can see an image of the post, along with a nice message to Rack Space.
jfarmer · 2012-04-04
If you've never worked with Joe, this is the kind of nonsense he does in his sleep. I first worked with Joe four years ago. He joined the team knowing no Ruby. What did he do his first week? Diagnose and patch a pretty big bug in MRI's threading implementation. His blog is equally intense: http://timetobleed.com
prosa · 2010-02-18
Joe Damato's posts are always fascinating reminders of the benefit of understanding what's under the hood. http://timetobleed.com/
silentbicycle · 2013-09-16
Garbage collection is a particularly cross-cutting implementation issue, and tends to interfere with all kinds of abstraction. You're essentially making a system that knows which specific ways abstraction can be broken safely, so that you can defer resource management to it in the future. Retrofitting a GC is even harder. You can bolt on a conservative collector (like boehm-gc), sure, but that can lead to many unexpected performance issues (see e.g. http://timetobleed.com/6-line-eventmachine-bugfix-2x-faster-gc-1300-re… Writing a virtual machine for a GC'd language and then trying to give it a portable, reasonably convenient C API convinced me that it's a significantly harder issue than most people realize. (Particularly after scrapping my third prototype!) The C API also impacts many things, and tends to bring up nasty edge cases in the GC. Lua seems to have settled on a design that works unusually well, and is worth studying. Still, Lua can safely cut corners that Python and Ruby cannot - they have threads, which also break a lot of assumptions.
MaulingMonkey · 2014-08-25
Relying on "probably" is completely the wrong foot to start out on, IMO. It leads to this kind of craziness: http://timetobleed.com/the-broken-promises-of-mrireeyarv/
FooBarWidget · 2013-03-16
Hm, that's unfortunately to hear. Ruby 1.8 implemented green threads by using stack copying. It was discovered that this resulted in significant performance hits: http://timetobleed.com/fixing-threads-in-ruby-18-a-2-10x-performance-b…
loeg · 2012-02-10
One of the biggest problems with this style of "scan all memory" GC is that you have to stop all threads (flush all pointers to memory) to perform a collection. Pointers held in registers in other active threads are inaccessible to the GC thread. Failing to stop the world (or ensure all pointers are in memory rather than registers) can result in live objects being collected. This happened to Ruby at one point: http://timetobleed.com/the-broken-promises-of-mrireeyarv/ Edit: This boils down to breaking the compiler's model of memory as specified by the C standard; all bets are off.
beagle3 · 2011-12-20
I'm not a ruby person, and this post by Joe Damato made me want to stay as far away as possible from Ruby -- but perhaps it would be helpful in your case http://timetobleed.com/the-broken-promises-of-mrireeyarv/
thras · 2009-10-16
The first link mentioned in the article was a very interesting read. http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-en… It's a fairly clear explanation. Before the language warriors come out in force, I'll mention that it appears that all of the problems turn out to be issues with 1) calling new and 2) C-style casts. Exploiting the issue requires someone with a detailed knowledge of C++ inner workings. It would have taken me a long time to figure it all out. Avoiding the issue? Well, most modern C++ doesn't look very much like the problem code for very good reasons.
defunkt · 2009-10-06
It's not just the GIL. Check out Joe Damato and Aman Gupta's awesome presentation from this year's Hoedown for more info on concurrency in Ruby: http://timetobleed.com/ruby-hoedown-slides/
sant0sk1 · 2009-08-31
I don't know why people advise others to splat their compiled 3rd party software all over /usr/local when /opt is there specifically for that purpose. Also, enabling pthread on 1.8 has some significant performance problems unless you're using REE. For more reading on that: http://timetobleed.com/fix-a-bug-in-rubys-configurein-and-get-a-30-per…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close