Daniel's Weblog
Posts About Colophon

Yalc is a better alternative to npm link. At work we package some React code in to Node modules to share them between our internal applications. This often involves updating the modules and then immediately testing them in an application running locally. According to the npm documentation the way to do this is via npm link but I’ve always struggled with it.

I’m not going to describe my issues in details because other people have encountered the same set of problems:

I wish I could give credit to my introduction to yalc but I can’t recall at this point. I strongly recommend it if you’re struggling with npm link.


GoPro Manual File Recovery I’ve never actually used any of the labs firmware but I found this tidbit interesting for repairing an improperly closed file. Reproduced here for posterity:

# Useful Tip - Manual File Recovery

So you have a corrupted/unclosed GoPro file. You crashed your drone, and the battery was disconnected before the file was closed, or you ran your car wheel over a recording GoPro, crushing it. If your SD Card survived, the file is likely recoverable using another GoPro.

0. You need any working GoPro camera, although the same model and firmware version is advised. If you’re using Labs Firmware and are using Altered file naming (this page’s Labs feature), reset the filenaming to the default.
1. Copy the file you want to repair to your PC
2. With a working GoPro, record for 10+ seconds then pull the power or battery, while still recording. You want an intentionally unclosed file. The camera will remember it needs to repair only this file
3. Add that SD Card to your PC directly (not via camera USB)
4. Copy the filename of the last MP4 captured. e.g. “GX010358.MP4”
5. Delete this dummy file from the SD Card
6. Add your previous corrupted (unclosed) file to the SD card, and rename it to the copied name. e.g. If your filename was “Drone03_GX010201.MP4”, or just “GH010330.MP4”, rename it to “GX010358.MP4” (your last MP4 filename)
7. Insert the SD Card with your corrupted file back into the working GoPro camera
8. Power on the camera, and the “last” file will be repaired
9. Once the camera completes the file repair process, you can eject the SD Card and backup and play the now repaired file

Compatibility: Labs enabled HERO8, HERO9, HERO10, HERO11, HERO12, HERO13, MAX and BONES

Manual Scrolling Capture (Shottr) I’ve been a convert to Shottr.cc for screenshots for a few years now but I’ve been frusterated that a MacOS update broke the scrolling capture feature recently. I looked around to see if there were any alternatives but was very pleased to find that there is a secret option where you manually scroll. Good enough for me!

To enable manual scrolling in Shottr, first of all, make sure that you run Shottr v1.8.1 or newer (you could check in menu Shottr → About). When it’s done, enter this line in your browser, and hit enter: shottr://settings/scrolling/manual/enable


AlarmKit iOS 26 finally lets apps interact with the system alarms and timers.


Fickle Friends Tour Diary I’m a big fan and today they’re releasing a new, self-titled album.

In celebration of that here’s an interview by Emily May and a collection of photos from various photographers from their first and only US tour in 2018 (Come back soon please!!!). Each photographer has their own style and each venue looks slightly different. I think they all work together nicely and convey the band moving from town to town.


where not in (Hugo) via jmooring I’ve been pulling my hair out over this for a little while, how do you write where not in in Hugo?

The docs say you can do it but I was never able to make it work.

Shout out to Joe Mooring on the Hugo forums for this solution:

  {{ $p1 := where site.RegularPages "Type" "in" site.Params.mainSections }}
  {{ $p2 := where $p1 "Params.categories" "intersect" (slice "moments" "thinks") }}
  {{ $p := $p1 | complement $p2 }}

The Faroes A great photo travelogue by Nagarjuna of their trip. Some of the later pictures of people standing on top of bluffs that appear to go straight down in to the ocean really poke at my fear of heights.

Warning: contains modern James Bond movie spoilers.


NYC $20 Dinner Map (Paywall) I’ve enjoyed Hellgate’s irreverant but thorough coverage of NYC for a while and they finally converted me to a paying member with their current 34% off first-year sale. I really like this map of inexpensive resturants.


Fallback Font Generator (via). This is a tool to help tweak system fonts to match the sizing of your fancy font and reduce Cumulative Layout Shift (CLS) when your fancy font finally loads. Built by Brian Louis Ramirez


Digitizing Tapes in 2025

My friend ended up with a big box of vidoe tapes from their childhood spread across VHS, Video8, and MiniDV.

I have been given / volunteered for / chose to digitize these and I’m trying to strike a reasonable balance between cost, quality, and effort.

There is some very interesting work happening with softwared defined decoding in the VHS-Decode project but it’s a little more moving parts and soldering than I want to do right now. Perhaps in a few years when I can buy a single piece of hardware for a few hundred dollars I’ll revisit this.

1. Step 1: Try to get everything via a capture card

Bought a used BlackMagic Intensity Extreme including a Thunderbolt cable which claims to be able to capture NTSC (fun fact, this is literally the first time I have ever touched a Thunderbolt cable!). These are pretty cheap. I read online that this isn’t great but I hoped it would be Good Enough™️.

It wasn’t!! Lots of black frames and stuttering. The video wasn’t watchable.

2. Step 2: Get the MiniDV via Firewire

These should be the easiest. It’s digital data stored on tapes. The camcorder has a Firewire port on it… but I don’t own any devices with a firewire port.

Apple made a Firewire to Thunderbolt adapter which I could plug in to my 2014 MacBook Pro with Thunderbolt (which I have also never used except for Ethernet lol) but they’re pretty pricey at this point.

Going to try another line of attack:

  1. M.2 NVMe to USB adapter $16
  2. M.2 M-Key to PCIe adapter $10
  3. LinksTek 4-Ports 1394A PCIE FireWire 400 card $20

Total cost ~$50. I probably should have just bit the bullet and waited for an Apple adapter to pop up for $100 and avoided this horrible chain of converters.

3. Step 3: Get the Video8 via another camcorder with Passthrough to FireWire

All of this to be continued as soon as I find the right camcorder on eBay…