A Blog Half Full

I’m halfway through 30 Days of Blogging. When I was a kid I really wanted to be a cartoonist. I wanted it so much that my first “job” was doing a daily comic strip for the local newspaper. I did that for 10 months straight, 6 days a week. At the end I was so sick of it I never wanted to pick up a pencil ever again. Hopefully blogging doesn’t end up the same way!
Read more

Simple Clipboard Management

(Day 14 of 30 Days of Blogging) Greenclip is really useful for recording your clipboard history and showing a menu to switch between items. Along the same lines I had an idea to write a tiny script that allows editing of the clipboard in vim. This has been handy when I need to quickly fix up some text before pasting it into a GUI application: #!/bin/sh -e file=`mktemp /tmp/clipboard-XXX` xsel --clipboard > "$file" xterm -e "$EDITOR-c 'set nofixeol' \"$file\"" xsel --clipboard < "$file" rm "$file" The nofixeol option prevents vim from adding a newline to the end of the clipboard, which is usually not desired.
Read more

Firefox Minimalism

(Day 13 of 30 Days of Blogging) I’ve been working on an opinionated and ultra-minimalist Firefox theme that pairs nicely with Tridactyl. I thought I’d share a few notes here. But first some pretty screenshots! Here’s what you’re greeted with when you open a Firefox window: Nope, it’s not a terminal, that text prompt is the address bar. Here’s what it looks like with a page in a single tab:
Read more

Media Companies are Complicit

(Day 12 of 30 Days of Blogging) Facebook, Twitter, and other media companies shouldn’t be applauded for finally deplatforming the American president after profiting off controversy for so many years. It took up until the very day that the American president lost the election for TV outlets to finally start calling out his bullshit. It took an act of terrorism to force social media’s hand against the communities allowed to grow on their platforms.
Read more

Access Recent Files From the Command Line

(Day 11 of 30 Days of Blogging) If you don’t already use Z you absolutely need to check it out. Z is a CLI tool that cd’s to a recently used directory, so that typing z foo will cd /my/deeply/nested/project/foobar7, as long as you’ve cd’ed into foobar7 sometime in the past. Z is great for jumping to recent directories… but is there an equivalent for opening recently used files? There’s fasd, but the way it works seems a bit too magical to me.
Read more

XTerm: It's Better Than You Thought

(Day 10 of 30 Days of Blogging) A couple months back I switched my terminal from xfce4-terminal to the venerable xterm. For some reason I always put xterm in the same bucket as xclock, xmessage, or any other prehistoric command starting with X that comes pre-installed on any graphical Linux distribution. It was surprising to learn that xterm is still very much actively developed. Even more surprisingly, it turns out xterm has incredibly low input latency compared to modern terminals.
Read more

Remote Movie Nights With Popcord

(Day 9 of 30 Days of Blogging) Several months ago during the height of the 2020 quarantine I released Popcord, a Chrome extension for watching videos with friends remotely. It’s designed to be used while on voice chat with friends and family, and simply handles synchronizing the playback position and state of the movie you’re all watching together. I’m pretty proud of how it turned out! Under the hood the system is made up of 3 different pieces: The browser extension, a web application, and a websocket server.
Read more

What's My IP Address?

(Day 8 of 30 Days of Blogging) Sometimes you need to determine your own IP address. There’s ip addr (the new ifconfig), which will tell you your local network IP. What about your external Internet-addressible IP? Use this: dig @resolver4.opendns.com myip.opendns.com +short This is faster than curl icanhazip.com or equivalent URLs, and more reliable too.

Implementing a Slow Life

(Day 7 of 30 Days of Blogging) There’s a famous experiment where subjects (typically poor university students) are left alone in a small, empty room with blank walls and no windows. They are asked to sit at a table and “entertain themselves with their own thoughts” for 15 minutes. No music, no phone, no TV. On the table is a button that applies a mild electric shock. It turns out, many of us will press that button, often multiple times.
Read more

Generating Strong Passwords

(Day 6 of 30 Days of Blogging) APG is a command line program for generating random passwords. On Ubuntu/Debian it can be installed with sudo apt install apg. Here are the flags I use with it: apg -a 1 -n 1 -m 25 -x 30 -M SNCL -d -E "'\"\`\\" -a 1: Specifies to use true random instead of the default mode of pronounceable passwords. The assumption is that these passwords are going to be remembered by a password manager and not a brain.
Read more