Welcome to my personal website. I’m Naty, a tech dabbler, third-culture kid, serial hobbyist, and lifelong learner.
BurgeonLab is a blog where I document my mostly geeky interests and other enlightenments. This is my passion project and a work in progress; so expect to see changes.
I am keen on data privacy, self-hosting, technical writing, specialty coffee, street photography, fountain pens, Formula 1, and more.
My other pseudonyms are @eclecticpassions and @aperture2iris.
Thank you for checking out my corner of the Internet, hope you find something interesting!
Embracing IndieWeb
Noticeboard
Notes Stream
View my latest notes. I use microblogs for sharing shorter content; like quick status updates or notes on a topic that probably won’t become a full blog article. Click on the permalink icon to view the full note.
Troubleshooting Technical Errors
Yesterday, my Indiekit docker failed to start on my Pi. I also couldn’t run npm audit fix despite reviewing and accepting npm approve-scripts --all.
As a beginner Node.js user, I am still very inexperienced. I tried removing the package.lock, node_modules/ and npm install from scratch but that didn’t fix it.
Maybe it is due to the Node version being pinned to version 22? Or was it the installation of sharp in the Dockerfile that caused it to break after updating the npm packages? I now have RUN npm …
Homebrew Website Club: Eastern June 17 2026
Last Thursday, David (an IndieWeb regular) couldn’t make it due to an emergency. Luckily James, another regular, caught me before I went to bed the night before to tell me the technical details on how to host the remote Zoom meeting. It was a success; luckily no technical difficulties, and we had a good turnout with a good old chat about all things websites! (Thanks too, to Thomas, for being co-host!)
Some of the topics we went through:
- Blog data analytics and visualization tools
- Data capture …
A feature I didn’t know existed in VS Codium saved my day! I was working on a untracked Git file (the zensical.toml configuration file) and accidentally, the whole file was overwritten and ctrl+z didn’t work. I thought my config was lost for good!
Luckily there’s a thing called “Local History”:
- Open command palette
- Choose
Local History: Find Entry to Restore - Choose the file you want to recover
- Choose the latest entry to recover from
- Copy contents back to active file
I believe this is also accessible under …
digiKam MySQL Database Upgrade Woes
Ever since I left Adobe Lightroom in mid-2025, I’ve been using digiKam from KDE for digital asset management (DAM). I quite like using it to manage my extensive library of photographs (+100k images). But almost every time there’s a version upgrade, the internal MySQL database breaks.
Database Options
There are three database options for digiKam: SQLite, Internal MySQL, Remote MySQL. I have always chosen internal MySQL as apparently SQLite doesn’t do well for libraries over 100k photos. But I …
Regular expression (Regex) is a skill I wish I have a better grasp on; but I’m slowly learning! For example, I often find myself searching for a particular string pattern to replace it with something else. Today, I learnt how to search for this pattern (Markdown bullet points):
- The start of a new line (
^) - Dash (
-) - Space (
\s) - Alphabet following the space (
[a-zA-Z])
Which makes the search string:
1^-\s([a-zA-Z])The ( ) bracket around [a-zA-Z] is to capture the matching section and using it later as $1 for the first group, $2 …
Latest Weeknotes
Here are my latest weeknotes. They're a type of post that I publish weekly and sometimes covers less technical topics.
Latest Blogs
Top 10
Most popular pages in the last 30 days based on unique visits. (Privacy-focused analytics, no cookies.)