惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Heimdal Security Blog
SecWiki News
SecWiki News
H
Hacker News: Front Page
N
News | PayPal Newsroom
L
LINUX DO - 最新话题
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
AI
AI
C
Cybersecurity and Infrastructure Security Agency CISA
Scott Helme
Scott Helme
PCI Perspectives
PCI Perspectives
S
Securelist
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cyberwarzone
Cyberwarzone
A
Arctic Wolf
Forbes - Security
Forbes - Security
T
Tor Project blog
Spread Privacy
Spread Privacy
WordPress大学
WordPress大学
I
Intezer
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
博客园 - 司徒正美
W
WeLiveSecurity
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
P
Palo Alto Networks Blog
Google DeepMind News
Google DeepMind News
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
V
Vulnerabilities – Threatpost
Jina AI
Jina AI
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
Simon Willison's Weblog
Simon Willison's Weblog
Project Zero
Project Zero
T
Threatpost
P
Privacy International News Feed
人人都是产品经理
人人都是产品经理
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research

Ye Olde Blogroll — Firehose

kottke.org Outside My Window | A Blog of Birds & Nature with Kate St. John Via Negativa The Wallflower Digest baty.net Miskatonic University Press | William Denton Transactions with Beauty Britney Winthrope — Personal blog Z1NZ0L1N Amerpie by Lou Plummer 75CentralPhotography Home :: Sacha Chua Blog – Harold Jarche Doug Jones Tom Van Winkle's Return to Gaming Adactio: Jeremy Keith ooh.directory: a place to find good blogs that interest you Sal's whygodwhy – idk! fine! whatever! who cares! shut up! uncountable thoughts Murmurs Dr Robert N. Winter Who's the Real Loser? Shady Characters Ludicity Notes Without a Thesis Robin Monks - Technologist, AI/ML, Healthtech David Smith, Independent iOS Developer Homepage - blakewatson.com Ploum.net Oatmeal Midnight Reading oh, hey Brian | Brian Bennett blog 2026 | baccyflap.com - a delicate blend of bakelite and fear Our Adventures in Japan Jack's Space | Everything happens for the best Matt Lakeman jzhao.xyz Home - Stephanie Stimac's Blog マリウス Gingerly thoughts on ecology, culture, travel, photography, walking and other ephemera blast-o-rama. Quiet System - sink on uwu SchwarzTech Home ophanim's chariot Navendu Pottekkat - The Open Source Absolutist …time is what you make of it… Ron Seems Sentient Stuffed Crocodile Notes Sympolymathesy, by Chris Krycho Hosentaschenblog Charlie's Diary meyerweb.com Paul Johnson Refugio Norte linkedlist → bits and bytes about the Web New Ideas Blog - Gustavo Ribeiro Marius Masalar Mi blog Domain registered at WHC.ca Tyler Hellard - Pop Loser cedmax Jean Kapsa https://www.feadin.eu/en/ Garbage Collector Brian DeVries Grant Petersen's Blog The Artist’s Notebook Dan Cohen – Vice Provost, Dean, and Professor at Northeastern University 12XU | Verspannungsmusik! denisdefreyne.com Welcome | Chris Smaje Alex – Le site Internet d'Alex Sirac. cultural snow fLaMEd fury homepage A Shroud of Thoughts Ryan Reid Illustration + Design Don't Worry About the Vase Amy Goodchild Songs on the Security of Networks Protesilaos, also known as “Prot” GitHub - uxai/non-profit-bloggers: A repository of blogs by bloggers who blog for the joy of writing. 👋 Hi! Joe Van Cleave's Blog Amit Gawande Paul's Beer & Travel Blog Steve Best West Coast Stat Views (on Observational Epidemiology and more) Darknet Diaries – True stories from the dark side of the Internet. SEAN BONNER Artist, Instructor, using only Free/Libre and Open-Source software since 2009. Along the Ray Chris Aldrich | BoffoSocko 印记 | Live a life you will remember. Herman's blog
Burgeon Lab: Naty's Tech Log
hello@manuel · 2026-02-12 · via Ye Olde Blogroll — Firehose

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!

Noticeboard

Show notices

Currently doing the #100DaysToOffload blogging challenge (2026):

Counter: 56/100 Remaining: 212d

56%

Newest: Jun-12Start: Jan-11

March 1, 2026: I’m in the process of a big overhaul of my Hugo theme’s CSS. There may be some breakage in the meantime, apologies!

I’m collecting feedback to make the blog better in 2026. As a reader, your opinion matters to me. Could you take my 1–2 minute anonymous questionnaire? Thank you!

Embracing IndieWeb

Learn how and why I'm part of the small web

Ever since I learnt about content ownership, enshittification, and the IndieWeb in 2025; I’m gradually integrating small web principles and IndieWeb features into my site.

For instance, I can receive webmentions if your site supports sending them; otherwise, feel free to send me a webmention manually! Public webmention display isn’t supported yet, only I’ll be notified if you mention something from my site.

A common feature in small web communities are webrings—a collection of sites linked serially around a common theme. You can find what webrings I’m part of in the expandable list in the footer and explore other sites with the navigational links. I also collect web badges (aka 88x31 buttons) which are down there too. And while you’re at it, feel free to sign my guestbook!

In the last week of 2025, BurgeonLab gained full Micropub support through Indiekit; a self⁠-⁠hosted Node.js server! Explore content tagged with: #indieweb, #indiekit.

If you want to learn more about the IndieWeb community, here are some resources:

Latest Blogs

Besides blog posts, you can explore these other sections: pages, weeknotes, notes (microblogs), likes and photos. Use the Explore dropdown menu at the top or direct links to common pages in the footer to discover the site.

See how I added a pre-build step using a Bash script in my Hugo deployment workflow to check for the draft status of Markdown content. By using stricter linting rules than Hugo’s default draft behaviour, it can catch and prevent drafts from being accidentally published.

Learn how to batch convert plain URL links from a TXT file into a list of Markdown links using Python, handy for link dumps or link lists.

Discover Feather Wiki, a FOSS lightweight and customizable personal private web notebook, with multi-device sync via Syncthing and Android support using Termux.

How I fixed high latency and laggy SSH after getting a new router. Steps on how to SSH into Raspberry Pi over Ethernet with direct connection on Mac devices.

As a long-time user of LanguageTool’s offline server on macOS, I thought I’d share how I set it up. It’s a great way to get a pretty accurate grammar and spell checking / proofreading software without relying on online services. I’ll go through how to configure this open source tool, get extra optional improvements like n-gram data processing, and script shortcuts.

Notes Stream

View my latest notes. I use this post type for sharing shorter content; sometimes as quick status updates or notes on a topic that probably won’t become a full blog article.

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 can never get MySQL to work seamlessly on the get-go and it breaks every single time when it’s time to upgrade either the database or digiKam itself.

Not Again

I upgraded to digiKam v9.2.0 yesterday, lo and behold, the database broke again. I tried everything I could (with limited database knowledge) but could not get it fixed like the previous three or four times. I made notes each time when I troubleshooted, but the fixes I wrote down didn’t work this time. Previous issues include UNIX socket problems and mariadb from Homebrew was conflicting; but I checked it all this time and could not get the database to upgrade successfully.

Screenshot of error when upgrading MySQL database of digikam.

Very frustrating because there is nothing to actually set or configure in the database dialog other than the paths for the four needed executables of mariadb/mysql

Trying SQLite

I have decided to give SQLite a try despite being over the 100k suggested limit. Write-ahead logging (WAL mode) is turned on and I’m now waiting for the new database to be built. It’s over two hours by now and it’s past the 50% mark.

Fingers crossed that this will be last time I waste time on the digiKam database.

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):

  1. The start of a new line (^)
  2. Dash (-)
  3. Space (\s)
  4. 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 for the second, etc.

Screenshot of VS Codium's search and replace fields highlighting the search pattern.

My aim is to change the bullet points into Markdown checkboxes. The string to do that is:

1- [ ] $1

This changes the bullet to a checkbox and the captured group in the ( ) is replaced by the original.

Screenshot of VS Codium's search and replace fields highlighting the replaced pattern.

Maybe there’s some plugin to do this in a click, but I enjoy learning things in real life scenarios.

Resources

Maintaining My Own Brew Tap

No, not beer; but for Homebrew, the package manager which I have used for over five years…? I don’t know how I lived without it before!

I have decided to maintain my own tap for the first time because of the deprecations that will come into action later this year in around September 2026. These deprecations are for macOS software that has not signed or notarized (i.e. paid Apple) to meet the macOS Gatekeeper requirements. Issue #6482 gives more background information.

I’m not entirely sure if this is the right way to do this, so treat this as a personal tinkering log, not a guide per se.

Steps I’ve Taken

  1. Since brew taps are just Git repos, I created one on Codeberg and copied all the ruby cask files that have the deprecation warning from the official Homebrew Cask, and removed the line # disable! date: "2026-09-01", because: :fails_gatekeeper_check.
  2. Initialize the repo with the files in step 1, Casks/*.rb, and push to remote.
  3. Since I’m not using GitHub, the following command is used to add a custom tap in the terminal: brew tap git-username/homebrew-name-of-your-tap https://codeberg.org/git-username/homebrew-name-of-your-tap.git
  4. Brew will warn that this tap is not trusted. To trust a tap, run brew trust git-username/homebrew-name-of-your-tap.
  5. Tell Homebrew to use the new tap as the source of the soon-to-be deprecated casks, e.g. run brew reinstall --cask git-username/homebrew-name-of-your-tap/cask-name. This will explicitly tell Homebrew to install the cask using the new tap instead of the official cask tap. Repeat for all casks with deprecated warning.
  6. Once the cask is officially deprecated, running brew install --cask cask-name should pull the .rb file from your custom maintained tap without the explicit custom tap path.
  7. Run brew tap to see a list of all installed taps and run brew doctor to check if the warning, Some installed casks are deprecated or disabled. You should find replacements for the following casks, is resolved after switching to the custom tap.

Manually Keeping Casks Updated

It’s now up to me to update the .rb files, so I’ve gathered the XML feeds of the release pages and turned on notifications in my feed reader. This will remind me to update the version number and sha256 manually, which will in turn update the tap with the latest cask details ready for tapping.

I’m using rssrssrssrss to combine the feeds into one:

1https://codeberg.org/librewolf/bsys6/releases.rss
2https://www.digikam.org/index.xml
3https://github.com/darktable-org/darktable/releases.atom
4https://github.com/Orama-Interactive/Pixelorama/releases.atom
5https://github.com/qmk/qmk_toolbox/releases.atom
6https://github.com/vial-kb/vial-gui/releases.atom

I have yet to try to calculate the sha256 but it should be relatively straightforward with curl. I’ll update this section when I get at least one cask updated this way.

Lastly, run the usual xattr -dr com.apple.quarantine /Applications/software.app command to bypass macOS’s Gatekeeper. (A step can probably be added to the .rb file to do this automatically—but I am used to running this manually after upgrades so it doesn’t bother me too much.)

Resources

Latest Weeknotes

Here are my latest weeknotes. They're a type of post that I publish weekly and sometimes covers less technical topics.

Minor site updates, new style-guide, convoluted process of deleting old accounts, attending my first tech event, and link roundup as usual.

Getting to meet Brennan, a blogger I followed for a long time via the IndieWeb, some new features on my site and considering leaving Bitwarden.

Pokémon cards’ value, accidentally published a Hugo draft post and decided to leave WordPress for a new SSG. Considering a digital garden for my secondary blog.

Switching email providers (Tuta to Mailbox.org) meant setting up DNS and using new Android apps. Bitwarden is changing? Trying to update my CV with new tools.

Catching up on the /changelog page, trying to learn more Git to fix my Git mistakes, Mother’s Day, and XL link roundup for missing last week’s weeknote.

Top 10

Most popular pages in the last 30 days based on unique visits. (Privacy-focused analytics, no cookies.)