The best way to contact me is via email. As of 2020/01/20, I no longer use Gmail actively. Please run the following command to get my most recent email:
echo 'eGppYUBmYXN0bWFpbC5jb20K' | base64 --decode
You can also find me on DBLP, GitHub, and LinkedIn.
As of 2020/01/20, I'm no longer interested in maintaing a good-looking homepage. This page has mostly became a kitchen sink of links that are interesting to me. I recently randomly checked the list of links and removed the ones that are no longer available or not interesting to me anymore.
I'm currently working on developer tools. See also: www.reviewpatch.org
Plan to throw one away
Mike Gordon's Hoare Logic lecture notes
Scalability! But at what COST?
I am an advocate of System Prevalence and I thought this page explains the idea very well.
C Preprocessor tricks, tips, and idioms
NIST/SEMATECH e-Handbook of Statistical Methods
The Lost Art of C Structure Packing
Systems Benchmarking Crimes
Scaling in the Linux Networking Stack
A talk in Chinese on scientific research in China
What's New in CPUs Since the 80s and How Does It Affect Programmers?
Garbage collection and purity
Gerrit is still my favorite choice for code review
Queueing in the Linux Network Stack
Static Linking Considered Harmful
What Does Haskell Have to Do with C++?
The Case for Formal Verification (2013)
Modern Microprocessors - A 90 Minute Guide!
Sally Floyd: Questions
The Mezzo programming language
Ideas for a new Erlang
Conflict-free replicated data types
Remove watermarks (e.g. DRAFT) in PDF files:
pdftk draft.pdf output uncompressed.pdf uncompress less uncompressed.pdf # check general structure grep -a DRAFT uncompressed.pdf # check specific lines cat uncompressed.pdf | sed 's/DRAFT//g' > without-draft.pdf