Superstack: CLI Guidelines, Tiny City Homelab, Blockchain Chicken Farm
An open source guide for making delightful command-line apps
Hi! Itās been almost a year since I sent a newsletter. So, let me reintroduce myself. Iām Carl Tashian and this is Superstack, a nerdy newsletter about engineering and leadership and other things I think you might like! You probably signed up on my website. Not into it? You can unsubscribe at the bottom of this note.
CLI Guidelines
Last fall I collaborated with Ben Firshman and Aanand Prasad (co-creators of Docker Compose) and Eva Parish (a technical writer at Squarespace) on CLI Guidelines: an open-source guide for designing CLI applications.
This project came about when Ben found a silly blog post I wrote called The Poetics of CLI Command Names, and he asked me if Iād be interested in making something more comprehensive about CLI application design. Being a UX nerd and CLI lover, I said yes. We dug into design manuals from the 1980s and 90s (like the original Apple Human Interface Guidelines) and drew upon our experiences as software engineers. Weāre very happy with how it turned out.
Big City, Tiny Homelab
During the pandemic, I have especially enjoyed (and have been delightfully distracted by) building a small homelab in our San Francisco apartment.
A homelab is a playground for learning about computers and trying out new technologies. Iām using mine to learn more about networks, operating systems, hardware, and resource provisioning and orchestration. This is a popular hobby among engineers and gamersāI was amazed to see that the /r/homelab subreddit has 375,000 members!
Even though I just have a few Raspberry Pis and an Intel NUC in my homelab, having physical hardware to play with gets me excited about computing and networks.
Hereās a quick rundown of some homelab projects:
I built a time server. The built-in clocks in computers are notoriously prone to drifting. I got a Uputronics GPS hat, which Iām using to run a local GPS-disciplined stratum-1 NTP server with NTPSec. GPS-disciplined means that the computerās clock is continuously adjusted to match the radio pulses that are sent out every second by GPS satellites. Stratum-1 means that the clock gets its time from a Stratum-0 time source (in this case, GPSābut atomic clocks are also Stratum-0 sources).
Iām running two instances of Pi-Hole, which is a DNS sinkhole for network-wide ad blocking. Itās a great piece of software, despite the unfortunate name.
Downstream from Pi-Hole, Iām running dual CoreDNS instances for local DNS. CoreDNS has been super easy to configure and it just feels like a really well built piece of software (written in Go).
Iām running step-ca as a Certificate Authority for the network. In my role as a Developer Advocate at Smallstep (the company behind step-ca), Iāve learned a lot about public key infrastructure this year. Certificates are everywhere, and itās been nice to have a tiny CA to play with.
Finally, Prometheus and Grafana have been crucial for monitoring the infrastructure.
Compared to the homelab, cloud computing just feels comparatively cold to me. I like engaging with the actual circuits. Maybe because thatās what I grew up doing, working at an ISP as a teenager, with my desk as close to the server room as I could get it.
Blockchain Chicken Farm
In September my dear friend Xiaowei Wang published a book called Blockchain Chicken Farm (And Other Stories of Tech in China's Countryside). Itās a whirlwind tour of Chinaās rural tech world, which is so different from what we think of as ātechnologyā in the West. I just love Xiaoweiās unique lens and engaging writing style, and it was a pleasure to help them out with reviewing early drafts and giving them moral support through the long journey of writing a book. This is the perfect quarantine book for anyone who wants to travel right now but canāt.
As always, I love hearing your feedback on this newsletter. Thanks for reading!