Blog

  • Ouch

    After just four days of ownership, my brand new Speedmaster 3861 made the loudest clang on the train today. The bezel took a minor ding—perhaps that’s the sign I can finally call this watch well-used.

  • HP OmniBook Ultra Flip 14

    If you’re wondering why your touchpad or touchscreen isn’t working after a fresh install, it’s because the way the I/O is connected on this laptop is a bit odd. You’ll need to first install the Intel Serial IO drivers.

    I discovered this after installing a P310 4TB NVMe into it, as I’m planning to convert this into my Photoshop machine. The stylus delay is pretty annoying, I guess I am spoiled by wacom pro pen.

  • Horology

    Fell pretty deep into this rabbit hole. Spent quite a bit into clone movements as well as watch repair tools.

    My wife also sponsor me my first boutique watch, a Omega Speedmaster Professional 3861.

  • Home Network Overhaul

    Just reconfigured my home network to separate my WiFi and isolate IoT devices on a separate subnet. Hit some unexpected roadblocks – documenting them here before I forget:

    1. Alta Labs ROUTE10 Surprise
    Turns out this runs OpenWRT under the hood. All standard uci commands work, but persistence requires writing them into a post boot shell script located at /cfg/post-cfg.sh.

    2. Ubiquiti USG NAT Limitations
    The USG series has some annoying constraints:

    • No true non-NAT “External Zone” support
    • Can’t fully remove stock NAT rules
    • Workaround: Create NAT exclusion rules instead
  • Base64 PSK Rolling Over

    When creating a 128/256-bit PSK that starts with a specific base64 prefix, you might notice the prefix changes after encoding. For example, you set your key to start with ABCDPSK, but the encoded string shows ABCDPSL or something else instead.

    Only today I realized that Base64 encoding works in groups of 3 bytes (24 bits), which translates to 4 base64 characters. If your prefix length isn’t a multiple of 4 characters, the encoding can “roll over” when random bytes are appended, shifting the bits and changing the prefix characters.

    Below is my workaround:

    • Choose a prefix with length divisible by 4 (e.g., 4, 8, 12, 16 characters).
    • Decode this prefix to raw bytes.
    • Fix these bytes at the start of your PSK.
    • Append random bytes to complete 32 bytes (256 bits).
    • Encode the full key to base64.

    This way, the base64 string will start exactly with your chosen prefix without rollover.

    TLDR: Fix your prefix length to multiples of 4 base64 chars to ensure your key starts exactly as expected. Understanding base64 encoding basics can save you trouble when generating keys.