I have 2 linux machines: local and remote. local is the laptop I carry around to different networks–into the office, coffeeshops, library. But I want to be able to log into remote when I need it. It’s pretty simple to do this with tailscale + x11vnc. SSH keys On local: ssh-copy-id remote and enter the… Read More


A story about a raspberry pi laptop Once upon a time I was excited about typewriters. Wait a minute, I am still excited about typewriters. Once I was excited about typewriters, but also computers. I knew I liked the immediate typing experience and the “nothing can interrupt me now” flow of having one and only… Read More


On my new pi laptop (to be described in a later post) it always boots to console without numlock. I would prefer numlock to be ON always. Raspbian GNU/Linux 10 (buster) Working directory /home/pi/Dev/ Script setNumLockOn INITTY=/dev/tty[1-8] for tty in $INITTY; do setleds -D +num < $tty done Service setNumlock.service [Unit] Description = Set numlock… Read More


Conda solves a bunch of python environment problems. It makes it easy to manage different environments and use different dependencies for different projects. But sometimes it hangs and then tells you that the packages you are trying to install won’t work together–but not exactly WHY. I spent much of the day trying to debug a… Read More


There are many good fonts, but a few are terrible. In linux, we can force a replacement of a particularly hated font: Comic Sans Terminal sudo vim /etc/fonts/local.conf In this file, this will do it: <?xml version=”1.0″?> <!DOCTYPE fontconfig SYSTEM “urn:fontconfig:fonts.dtd”> <fontconfig> <match target=”pattern”> <test qual=”any” name=”family”><string>Comic Sans MS</string></test> <edit name=”family” mode=”assign” binding=”same”><string>Ubuntu</string></edit> </match> </fontconfig>… Read More


This is my favorite keyboard. It’s comfortable, fast, and efficient. Make one! Materials 1 Arduino pro micro 1 nice micro usb cord 48 switches (your choice) 48 diodes (1N4148 or similar) 48 keycaps (I like DSA profile) 2 ft of old ethernet cable Some wire (18 AWG to 28 AWG is fine; copper is better)… Read More


Purpose Audio baby monitors are cool and all, but how do you know when your 1-year old decides she’s big enough to climb out of the crib? Enter the baby spycam. This project follows: jacksonliam/mjpg-streamer (github) start-service-at-boot (Linode) Download and build Create a dev directory, clone the github link, and compile for install. mkdir dev… Read More


I have wanted to try blacksmithing since I was a kid. Yesterday I finally got a chance to do that. My setup is a propane tank, 6 firebricks, and a piece of railroad track. I had to cut one of the bricks. I scored it with the angle grinder and then snapped it over the… Read More


I previously built a Roubo phone stand that gets used all the time. But phonestands are so useful that I have more. A lot more. I designed this one in OpenSCAD, a free text-based CAD program, and it is fully parametric. You can adjust the size and the angles to ridiculous degrees. But this is… Read More


A Blessing To eat when you’re hungry To sleep when you’re tired To work with your hands For the growth of a peaceful tribe And finally to recognize The fragile gift Of the air around you Breath breathed before If you’re not expecting it, poetry can require some explanation. I wrote this in the airport… Read More