Aug 23, 2023

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.

Aug 23, 2023

The homelab post

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.

Apr 24, 2023

I designed another weird keyboard: tamago60

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.

Mar 20, 2023

I made my custom keyboard wireless

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.

Mar 6, 2023

The intransmissible packet

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.

Jan 12, 2023

Keycard door access in Home Assistant

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.

Dec 29, 2022

Typing on a weird keyboard: a retrospective

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.

Dec 26, 2022

Adapting CEC controls to RS-232

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.

Sep 16, 2022

Zip tie to smartify: the dumbest way to upgrade your appliance

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.

Jun 5, 2022

Scraping wildfire timeseries data with NLP

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.