Color and TTYs (2015)

Binding On Port 0

Lobotomizing Gnome (2018)

Stdout Buffering (2016)

The Cult of Dd

How Tail Call Optimization Really Works - Forget About Recursive Functions

How Tail Call Optimization Works

Summing Integer Ranges With dc

Uninterruptible Sleep (2015)

Unexpected Places You Can and Can’t Use Null Bytes

Using Ptrace for Fun and Profit (2016)

Bash $* and $@

Beware of strncpy() and strncat()

Lobotomizing Gnome

Using gpg-agent Effectively

Using ptrace to call a userspace method (2016)

Bitcoin Transaction Malleability

Declaring C String Constants

PATH_MAX Is Tricky

How to Host Your Own Private Git Repositories

The Cult of DD

Efficient File Copying on Linux

Unix System Call Timeouts

In Defense of C++

Unexpected Places You Can And Can’t Use Null Bytes

Misunderstanding mlock(2) and mlockall(2)

Goroutines, Nonblocking I/O, and Memory Usage

X86 Register Encoding

C++ and Thoughts On Java, Go, and Rust