I’ve been using Discord for gaming and hanging out with friends. However, sometimes I want to use my computer’s speakers (for friend hangouts), and sometimes I want to use headphones (for gaming).
On Windows there’s a handy system tray widget which lets you change the default playback device – and almost everything plays from the default playback device! However, Discord uses the default communications device when set to default… and you have to go into a menu to change that.
A year of Kubernetes About a year ago I thought it would be a good idea to learn a bit more about Kubernetes. We use Kubernetes as part of our server orchestration at work, and while most of it is abstracted a way, it rarely hurts to know how the various foundational layers are actually like.
At the time, I tried to set up a three-node cluster (two computers at home, one in the cloud), connected together by Tailscale (i.
Or, why doesn’t docker stop work for my Docker image?
I’ve had a Docker image which is intended to be approximately the most basic HTTP-compatible responder for a while. But, I built this originally for playing with Kubernetes, which doesn’t really give you direct access to anything.
When actually using it with Docker, I discovered that it wouldn’t actually shut down correctly with Ctrl-C or docker stop, and Docker would eventually have to docker kill it.
This one’s pretty silly, but I decided I would try to use my little potato mini PC as a Samba host. And, it turns out, in the many years since I’ve configured Samba, so I forgot almost everything… and there’s some new stuff, too.
These instructions were only tested on my computer, which is currently running Ubuntu 22.04. May or may not work for you!
Setting up filesystem permissions correctly
Advent of Code is a pretty fun December activity – an advent calendar of programming puzzles with a story tying them all together. The puzzles are released at midnight ET, which is conveniently 9 PM PT.
I did Advent of Code for the first time last year (2021), and really enjoyed it. Since I became a manager I rarely get to write code for work (and try to minimize it, even so), and especially don’t get to write the kind of code that exercises the problem-solving part of my brain.
It’s been a long while since I’ve set up a new environment, and a long while since I’ve posted much of anything on here. Things have been pretty busy since we moved up here to Seattle, and I’ve been distracted by an endless supply of home improvement projects. Maybe some of those will make it up here!
As it happens, though, I finally got on the NVMe train and swapped out the main drive for my computer at home.
I’ve been pretty annoyed for the last few months with using sillyfmt from the command line on MacOS. Previously, I’d just run sillyfmt with no arguments, which reads from STDIN and attempts to format whatever gets passed in. I would then copy and paste interesting snippets into the open window.
Unfortunately, any large blocks of text would mysteriously truncate themselves and hang for a bit on MacOS. I had worked around this by piping the output from pbpaste (i.
Introduction This COVID-19 pandemic has left me with lots of free time spent in front of a computer at home. I’d been spending time with my friends playing various videogames online (the Jackbox Party Pack games work reasonably well over Discord or Zoom), and my fiancée suggested that we try to play tractor online… but I couldn’t find one that was easily available over the internet!
What’s tractor, anyways? Tractor is a trick-taking card game popular in China, played with four or more players and with multiple decks.
So, as a follow-up to the original silly-formatting post, I spent some time trying to figure out just how bad the LALRPOP-based sillyfmt implementation was. It turns out that there’s really nice utilities for using the afl fuzzer with Rust, so I hooked that up with some pretty basic heuristics and let it run for a few seconds. Then, since it turned out to be really bad, I got nerd-sniped into setting up a different parser called tree-sitter that uses a more generic parsing algorithm.