This blog is updated more than the home page might imply, but only the most intersting stuff gets posted on the home page.

Args and Env Vars in Linux/amd64 Assembler

26 Apr 2020

Want to know where your Linux process's command-line args and env vars live on process starup? And how to get them from an assembler program?

Details here.

Counting 1-bits

25 Aug 2019

The book Hacker's Delight has a pretty neat way of counting the 1-bits in an integer. But my exploration shows that modern Intel CPUs have an instruction that do that for you, and that Go's math/bits library takes advantage of that instruction. Nonetheless, I leave notes that spell out the Hacker's Delight solution as obvoiusly as I can.

Details here.

Go Channels/Select

1 Aug 2018

I've been reading parts of Katherine Cox-Buday's Concurrency in Go, and I think this incomplete list of facts about channels and select statements is useful. A full table of channel operation/state/result is on page 75; these notes are just for me and whoever else may find them useful


Select Statements

PostgreSQL autovacuum tuning

20 Aug 2017

I have completely re-worked my writeup on tuning PostgreSQL for heavily-updated tables to take into account the usefulness of autovacuum_vacuum_cost_limit.