IPv4 Network Address Translation for Steam (NAT4S)

TL;DR – I made Steam multiplayer possible with classic LAN games through a project called PartyLAN. It enables network address translation (NAT) between IPv4 and Steam IDs. Network address translation (NAT) is not an obscure concept – it has been in use since 1994. The basic idea is simple: a router, either software or hardware,…… Continue reading IPv4 Network Address Translation for Steam (NAT4S)

Janky NTP – Setting System Time Using HTTP

I often find myself fighting with using NTP on linux machines – usually something goes wrong: maybe ntpdate isn’t there, or for some reason UDP is blocked, or maybe for some reason it just doesn’t want to do it. Here’s my janky version of ntpdate that overcomes those issues: date -s “$(curl -si 1.1.1.1 |…… Continue reading Janky NTP – Setting System Time Using HTTP

CRT Miniature Arcade Cabinet

Hey I did a thing – a raspberry pi powered miniature arcade cabinet – with an actual real 4-inch monochrome CRT. Next step – port WASM4 to RPi0 (or wait for someone to do that).

Home Automation – Kubernetes Style

I’ve been using Smartthings as my smart home hub for a while. And I’d like to migrate to something that’s open source (or more importantly, self-hosted). There’s been a few horror stories out there that make me worry about the potential “hostage” situation. (e.g. manufacturers charging a monthly price for the service, or flat-out discontinuing…… Continue reading Home Automation – Kubernetes Style

Upgrading K40 Cooling System with RGB and Peltier Cooler

The K40 laser cutter, if you know about it, comes with absolutely the bare minimum to get you started. Fortunately, it does comes with a cooling solution: You supply your own water bucket, fill it with distilled water, and drop in the supplied water pump. Failure to do that will probably result in a burnt…… Continue reading Upgrading K40 Cooling System with RGB and Peltier Cooler

Using Makefile for Non-programming Tasks

Make is traditionally used to build artifacts from program source code. It can also be used for other tasks, where you need to “build” something out of a “source-of-truth”. For example: video-editing. I personally find ffmpeg able to generate better quality compressed videos than FCPX or Premiere Pro, which is especially important if the desired…… Continue reading Using Makefile for Non-programming Tasks