About
I'm Josh Haberman, and I currently work for Google in Seattle, WA. My personal projects are:Meta
Category Archives: Uncategorized
State of the hash functions, 2012
The state-of-the-art in non-cryptographic hash functions has advanced rapidly in the last few years. When I did some searching this week I was happy to see that new cutting-edge hash functions had been released even since last time I looked … Continue reading
Posted in Uncategorized
Leave a comment
Refcounting immutable cyclic graphs
Cycles are a thorn in the side of refcounting. But yesterday I discovered (or perhaps rediscovered) a simple, efficient scheme for refcounting cyclic graphs if the defs are immutable: find strongly-connected components and make all nodes in each SCC share … Continue reading
Posted in Uncategorized
4 Comments
Using dtrace on OS X to debug a performance problem
I recently ported upb’s table-based decoder to use setjmp/longjmp-based error handling. I did this largely for code simplicity and readability, so that the non-error code-paths didn’t have to check for errors all the time. But unfortunately I noticed a dramatic … Continue reading
Posted in Uncategorized
Leave a comment
ARM architecture is mired in oppressive legalese
My Efika MX Smarttop came and I’ve had some fun compiling upb for it and trying it out. I don’t have a pressing ARM use case yet, but I want to work ahead a bit and get familiar with the … Continue reading
Posted in Uncategorized
Leave a comment
EINTR and PC loser-ing (The “Worse Is Better” case study)
Richard Gabriel’s 1989 essay Worse Is Better is a famous comparison between LISP and Unix/C that pops up from time to time and is guaranteed to spark a spirited discussion. The philosophical argument itself is not something I want to … Continue reading
Posted in Uncategorized
4 Comments