Hello! A while back I wrote a post about how to write a toy DNS resolver in Go. In that post I left out “how to generate and parse DNS queries” because I thought it was boring, but a few people pointed out that they did not know how to parse and generate DNS queries and they were … | Continue reading
Hello! When I was writing the zine How DNS Works earlier this year, someone asked me – why do people sometimes put a dot at the end of a domain name? For example, if you look up the IP for example.com by running dig example.com, you’ll see this: $ dig example.com example.com.5678 … | Continue reading
Hello! Recently I’ve been working on a project where I implement a bunch of tiny toy working versions of computer networking protocols in Python without using any libraries, as a way to explain how computer networking works. I’m still working on writing up that project, but today … | Continue reading
Hello! I’ve been working on writing a zine about debugging for a while (here’s an early draft of the table of contents). As part of that I thought it might be fun to read some academic papers about debugging, and last week Greg Wilson sent me some papers about academic research i … | Continue reading
Hello! The other day we talked about what happened when you press a key in your terminal. As a followup, I thought it might be fun to implement a program that’s like a tiny ssh server, but without the security. You can find it on github here, and I’ll explain how it works in this … | Continue reading
I’ve been confused about what’s going on with terminals for a long time. But this past week I was using xterm.js to display an interactive terminal in a browser and I finally thought to ask a pretty basic question: when you press a key on your keyboard in a terminal (like Delete, … | Continue reading
Hello! About a year ago I got mad about Docker container startup time. This was because I was building an nginx playground where I was starting a new “container” on every HTTP request, and so for it to feel reasonably snappy, nginx needed to start quickly. Also, I was running thi … | Continue reading
Hello! This is a quick post about a nice tool I found recently called sqlite-utils, from the tools category. Recently I wanted to do some basic data analysis using data from my Shopify store. So I figured I’d query the Shopify API and import my data into SQLite, and then I could … | Continue reading
Hello! A couple weeks ago I released a new zine called How DNS Works. When I started writing that zine (in, uh, January 2021), I originally had in mind a broader zine on “everything you need to know to own a domain”. So it had a bunch of pages on domain registration, TLS, and ema … | Continue reading
Hello! On Thursday we released a new zine about one of my favourite computer systems: DNS! You can get it for $12 here: https://wizardzines.com/zines/dns, or get an 11-pack of all my zines here. Here’s the cover and table of contents: why DNS? I wanted to write about DNS for t … | Continue reading
Hello! Recently I’ve been thinking about how I find it fun to learn computer networking by implementing working versions of real network protocols. And it made me wonder – I’ve implemented toy versions of traceroute, TCP and DNS. What about TLS? Could I implement a toy version of … | Continue reading