Moving to Hugo and Cloudflare Pages
tl;dr: I migrated my blog from Jekyll to Hugo. It seems more better. I did my best to fix everything, but you find something broken, do let me know.
tl;dr: I migrated my blog from Jekyll to Hugo. It seems more better. I did my best to fix everything, but you find something broken, do let me know.
It’s finally time for a post about my homelab. Yes, it’s overly complicated. No, it’s not the most extensive.
I had planned this post months ago (maybe a year ago) and never got around to writing it. I even made a diagram.
The original egg58 prototype used Choc V2 switches, which have MX-style stems and therefore support a wide selection of keycaps. However, it turned out that DSA, the shortest keycap profile widely available, would still bottom out if the switches were plate-mounted. The egg58 layout was not really conducive to PCB mounting, so I switched to original Choc switches.
This left me with a supply of Choc V2 switches and DSA caps which have gone unused for over a year now. I thought the egg58 was my endgame. It probably still is, but nonetheless I have made another keyboard. Just to put those spare parts to use.
I don’t have a particular need for a wireless keyboard. I’m usually planted at my desk, with my laptop plugged into a dock and a wired keyboard readily available.
But, I thought it would be cool to make a Bluetooth version of the egg58.
In any network, it is a given that there will be loss. We’ve been making computers talk to each other for decades now, and that whole time scientists and engineers have been searching for better ways to compensate for weird things the network does to data in flight.
I first started fantasizing about keycard access to my home when Ubiquiti announced the G4 Doorbell Pro. I’ve had the original G4 Doorbell for a few years now, and it’s been great. However, when the G4 Doorbell Pro finally came out of Early Access, it lacked the RFID feature that was originally advertised.
Based on community consensus, it doesn’t seem like we’ll be getting that feature anytime soon, so I decided to build my own RFID reader that would semi-integrate with the G4 Doorbell I already had.
Using ESPHome, an inexpensive NFC module, and a 3D printed enclosure, I sort of got what I wanted.
It has been just over a year since I finished assembling the first version of the egg58, my custom split keyboard. Thus, it seems like an appropriate time to make note of how it has treated me.
In this article, we will instill a Raspberry Pi with some magic in order for a TV to talk to a hifi amplifier. By the end of the journey, we’ll have the Pi pretending to be an AV receiver, intercepting commands from the HDMI CEC bus, and relaying them to the amp via a combination of serial and IR control outputs.
Any owners of Samsung laundry appliances out there will know they play a distinctive jingle when finishing a job. I find it incredibly annoying (mostly because it becomes stuck in my head for at least two days after hearing it), however disabling the chime causes me to forget to unload my clothes until I run out of boxers.
I’m not a fan of most smart home products, because I distrust the cloud and I like to have control of my data. The only off-the-shelf “smart” products I have are simple Zigbee (802.15.4) devices, and a Roomba (because it can be configured for local control, with its cloud functionality disabled). Thus, when I bought a new washer and dryer a few years ago, I opted for non-smart variants, thus sacrificing a built-in notification capability.
In this post, I’ll exhibit my stubbornness by explaining how I used Home Assistant, ESPHome, and some magic to get my dryer to tell me when it’s done without playing that awful song.
New Mexico is facing a severe fire season, and I wanted to visualize the progression of the major fires that are currently ongoing. However, I could not find a usable source of data on daily size and containment statistics.
A repository of daily updates exists, however as articles rather than structured data. I ended up scraping the website and applying natural language processing to extract the desired data.
The library and utility is available on my GitHub.