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: dime.run
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
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?
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!
The Mezzo programming language
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