Late last year, I was finally exposed to the comfort of the Ergodox – a staggered-column, split keyboard.
However, having been using 60% keyboards for the previous decade, I felt like it had too many keys. While
some minimalist split ortho options did exist, I found many of them too minimal or too diverged from the Ergodox
design, which I did like in theory.
Like any sane person, I proceeded to learn an entirely new skill in order to fulfill my need for a keyboard
that was kinda like an Ergodox but with fewer keys.
Yesterday, a thread popped up on r/Albuquerque where users attempted to identify
the source of a loud explosion in the early morning. A few individuals provided their locations
and timestamps at which their surveillance cameras detected the sound. I thought I could use
this information to pinpoint its source using multilateration.
Over the past month and a half, I’ve been battling the various ghosts and demons that have apparently
taken residence in the ancient server chassis that I am now using as a backend for a Steam Link. Since I doubt
anyone else on the Internet is insane enough to do this, I suppose I am mostly making this post for myself
to refer back to when it inevitably breaks. If, by chance, you do find this useful, then that is merely
a coincidence.
In a previous post, I described issues encountered
when integrating the Unifi G4 Doorbell with a digital chimebox. I designed an adapter circuit, and it
worked for a few months; however, eventually I started encountering problems and upon further investigation
discovered that some of the assumptions I made about the behavior of the Unifi chime adapter module were
incorrect. With this new information, I designed a new circuit which is actually simpler and should be
more reliable.
Pulseaudio has been the default audio engine in Ubuntu for several years now, and
fortunately it has a very flexible module system that lets you route and mix audio.
Today, we’ll be looking at how we can set it up to mix mic and soundboard
inputs into a virtual source.
Update (2021-12-11): It turns out some of the assumptions I initially made were incorrect, and the adapter
circuit described within eventually stopped working. After further investigation, I have made a revised circuit.
Refer to the new post
For a few months, I’ve been using an Ubiquiti G4 Doorbell,
but recently chose to upgrade my mechanical chimebox to a digital one. Though The Ubiquiti store lists the
NuTone LA600WH as compatible, it turns out
there are some caveats which I managed to overcome by conjuring up an adapter from parts I had lying around.
This technique can likely be adapted to work with other doorbells or chimeboxes that don’t play nice with each
other, and avoids spending money on a commercially-available adapter.
Though I haven’t been playing with it for long, I’ve found that compiling plugins for sourcemod is a huge
hassle, mostly due to how dependencies are managed – that is, they really aren’t.
For those who don’t know what sourcemod is, you probably have no interest in reading this article. But,
if for whatever reason you want to read it anyway, sourcemod is a mod for Source engine game servers
that provides support for custom scripts and plugins.
The Source engine is fairly old, dating back to Half-Life 2, but many games based on it such as
Team Fortress 2 and Counter-Strike: Global Offensive still have a thriving community with active
custom servers. Many of these community servers rely on sourcemod to provide various features as well as
support for custom game modes.
Unfortunately, the state of sourcemod plugin development is largely “download a bunch of files,
put them somewhere, hopefully have them organized correctly, and pray.” I aimed to fix that through the
creation of the tool I’m writing about today: sourceknight.
It’s 2020, and by now everyone should know the basics of password hygiene: use strong passwords, don’t reuse them across sites, etc. A password manager such as Keepass is an essential tool for keeping track of all the passwords you inevitably end up with under this set of rules.
Unfortunately, no matter how good your passwords are, there’s always a chance that they’ll get compromised. For example, a website might have a breach and someone can obtain your password regardless of how hard it would have been to guess. In cases like these, services like Have I Been Pwned can let you know this has happened. However, if your password is leaked in something like a large credential-stuffing dump, it might not be obvious which sites you may need to change your password on.
I recently decided that I needed to add some color to my workspace, but didn’t want to just use any off-the-shelf RGB controller.
My first thought was to use an Arduino to control some RGB strips, but I didn’t want to have to to open the Arduino IDE and modify
the firmware every time I wanted to change the program.
This desire eventually escalated to implementing a virtual machine on top of the Arduino with an application-specific instruction
set designed to easily manipulate LEDs.