Everything you never wanted to know about file locking (2010)

(Foreshadowing: I found a bug in MacOS X 10.6's fcntl(F_SETLK) locking thatcould cause corruption of sqlite databases. To see if your syst... | Continue reading


@apenwarr.ca | 1 year ago

Interactive Beamforming Visualization in the Lab

Continue reading


@apenwarr.ca | 1 year ago

A little bump in the wire that makes your Internet faster (2018)

My parents live in a rural area, where the usual monopolist Internet serviceprovider provides the usual monopolist Internet service: DSL, r... | Continue reading


@apenwarr.ca | 1 year ago

Things we finally know about network queues (2017)

How big should your queue be, and what should you do when it fills up? Manytimes, we implement or even deploy a networking system before w... | Continue reading


@apenwarr.ca | 2 years ago

100 years of whatever this will be

What if all these weird tech trends actually add up to something?Last time, we explored why various bits of trendy technology are, in my o... | Continue reading


@apenwarr.ca | 2 years ago

10 years of whatever this has been

I guess I know something about train wrecks.One night when I was 10 years old, me and my mom were driving home. We cameto a train crossin... | Continue reading


@apenwarr.ca | 2 years ago

SimSWE 4: Wants, needs, and chasm-crossing

Let's talk about bug/feature tradeoffs.Anyone who knows me has probably already heard me rant about [Crossing theChasm](https://en.wikipe... | Continue reading


@apenwarr.ca | 2 years ago

Forget privacy: you're terrible at targeting anyway

Continue reading


@apenwarr.ca | 2 years ago

The Math Behind Project Scheduling, Bug Tracking, and Triage (2017)

Continue reading


@apenwarr.ca | 3 years ago

Systems design explains the world: volume 1

"Systems design" is a branch of study that tries to find universalarchitectural patterns that are valid across disciplines.You might thin... | Continue reading


@apenwarr.ca | 3 years ago

Thoughts you mightn't have thunk about remote meetings

Welcome to this week's edition of "building a startup in 2020," in which allyour meetings are suddenly remote, and you probably weren't pre... | Continue reading


@apenwarr.ca | 3 years ago

Can I work for a bad company and still be a good person?

No. | Continue reading


@apenwarr.ca | 3 years ago

The log/event processing pipeline you can't have

Let me tell you about the still-not-defunct real-time log processingpipeline we built at my now-defunct last job. It handled logs from a la... | Continue reading


@apenwarr.ca | 3 years ago

IPv4, IPv6, and a sudden change in attitude

A few years ago I wrote [_The World in Which IPv6 was a GoodDesign_](https://apenwarr.ca/log/20170810). I'm stillproud of that article, bu... | Continue reading


@apenwarr.ca | 3 years ago

What do executives do, anyway?

Continue reading


@apenwarr.ca | 3 years ago

The world in which IPv6 was a good design (2017)

Last November I went to an IETF meeting for the first time. The IETF is aninteresting place; it seems to be about 1/3 maintenance grunt wo... | Continue reading


@apenwarr.ca | 3 years ago

Remote Work and Videoconferencing at Tailscale

As a "fully remote work" company, we had to make some choices about thetechnologies we use to work together and stay in touch.Some of the... | Continue reading


@apenwarr.ca | 4 years ago

How to Design a Replacement for C++(2010)

My last article on theugliness that is C++ didn't actually receive this complaint, but itshould have: I offered a lot of criticism, but no... | Continue reading


@apenwarr.ca | 4 years ago

You can't make C++ not ugly, but you can't not try (2010)

Continue reading


@apenwarr.ca | 4 years ago

Stuff I said at Kansas City Startup Weekend that sounded smart (2011)

I rarely get the chance to try out words of wisdom on real people beforeI present them to you here. So when I post something, it might tur... | Continue reading


@apenwarr.ca | 4 years ago

Programmer Migration Patterns

Continue reading


@apenwarr.ca | 4 years ago

A profitable, growing, useful, legal, well-loved failure

Since before graduating from university and up until taking my current job(which is its own story I'll tell some other time), I've initiate... | Continue reading


@apenwarr.ca | 4 years ago

Git-subtrac: all your Git submodules in one place

Long ago, I wrote git-subtreeto work around some of my annoyances with git submodules. I've learned a lotsince then, and the development e... | Continue reading


@apenwarr.ca | 4 years ago

The only build system that might someday replace make (2010)

...is djb redo.There are only two problems. In order of increasing difficulty: 1. you've never heard of it.2. it doesn't exist.Well... | Continue reading


@apenwarr.ca | 4 years ago

WiFi: “beamforming” only begins to describe it (2014)

[Note to the impatient: to try out my beamforming simulation, which producedthe above image, visit my beamlab testpage - ideally in a brow... | Continue reading


@apenwarr.ca | 4 years ago

You can't make C++ not ugly, but you can't not try (2010)

...everything that's wrong with C++ comes down to that.Background: I've been programming in C++ since about 1993; that's 17 yearsnow. As... | Continue reading


@apenwarr.ca | 4 years ago

What do executives do, anyway?

An executive with 8,000 indirect reports and 2000 hours of workin a year can afford to spend, at most, 15 minutes per year perperson in th... | Continue reading


@apenwarr.ca | 4 years ago

Absolute Scale Corrupts Absolutely

The Internet has gotten too big.Growing up, I, like many computery people of my generation, was an idealist.I believed that better, faste... | Continue reading


@apenwarr.ca | 4 years ago

The log/event processing pipeline you can't have

Continue reading


@apenwarr.ca | 4 years ago

The world in which IPv6 was a good design

Last November I went to an IETF meeting for the first time. The IETF is aninteresting place; it seems to be about 1/3 maintenance grunt wo... | Continue reading


@apenwarr.ca | 4 years ago

Quotes from 1992 (2019)

I was recently recommended to read the book [AccidentalEmpires](https://en.wikipedia.org/wiki/Accidental_Empires) by [Robert X. Cringely](... | Continue reading


@apenwarr.ca | 5 years ago

Forget privacy: you're terrible at targeting anyway

I don't mind letting your programs see my private data as long as I getsomething useful in exchange. But that's not what happens.A forme... | Continue reading


@apenwarr.ca | 5 years ago

Factors in authentication

Multi-factor authentication remains hard-to-use, hard-to-secure,and error-prone. I've been studying authentication lately to see if itmig... | Continue reading


@apenwarr.ca | 5 years ago

An epic treatise on scheduling, bug tracking, and triage

[Note 2017-12-29: the news.ycombinator.comdiscussion of this post is unusually useful. You may want to read itfirst.][Note 2018-09-01:... | Continue reading


@apenwarr.ca | 5 years ago

Misadventures in process containment

I've been working on a series of tutorials using redo for various usecases. (One of the most common user requests is more examples of how... | Continue reading


@apenwarr.ca | 5 years ago

Xnest, Xephyr, ChromeOS, synergy, and syncing some clipboards

I recently decided to switch my laptop from a Macbook to a Chromebook,partly because Apple's keyboards are so terrible lately, and partly b... | Continue reading


@apenwarr.ca | 5 years ago

Mtime comparison considered harmful

Continue reading


@apenwarr.ca | 5 years ago

Redo, buildroot, and serializing parallel logs

Continue reading


@apenwarr.ca | 5 years ago

Redo, buildroot, and serializing parallel logs

Continue reading


@apenwarr.ca | 5 years ago

Silicon Valley housing market simulator

Continue reading


@apenwarr.ca | 5 years ago

XML, blockchains, and the strange shapes of progress

Continue reading


@apenwarr.ca | 5 years ago

I simulated California housing and learned about simulators

Continue reading


@apenwarr.ca | 5 years ago

XML, blockchains, and the strange shapes of progress

Continue reading


@apenwarr.ca | 5 years ago

A little bump in the wire that makes your Internet faster

Continue reading


@apenwarr.ca | 5 years ago

A little bump in the wire that makes your [bufferbloated] Internet faster

Continue reading


@apenwarr.ca | 5 years ago

A little bump in the wire that makes your Internet faster

Continue reading


@apenwarr.ca | 5 years ago

Books I keep recommending, and what questions they answer

Continue reading


@apenwarr.ca | 5 years ago