Blog

Short notes and longer thoughts.
Your Claude Desktop connectors are reusable MCP servers

Your Claude Desktop connectors are reusable MCP servers

It turns out Claude Desktop connectors are just plain MCP servers sitting on disk, and Claude Code can run the same server from its own config. Install once and both clients get the integration. I had Fantastical, my calendar app, talking to Claude Code in about 10 minutes.

Where the servers live

I already had the Fantastical connector installed in Claude Desktop, which raised the obvious question: where does Desktop keep the server it actually runs? The answer is that each installed connector lives here:

Read More

Short thoughts now sit in the feed next to full posts and links. Every version of this blog lowers the bar for posting a little more. That is the point.

UniFi Dream Machine SE recovery notes

UniFi Dream Machine SE recovery notes

The short version: if the recovery IP on a UDM-SE does not respond, remove any SFP+ module and try again.

To boot the device into recovery mode, hold the reset button with a paperclip while you power it on. The device then binds the recovery IP, 192.168.1.30, to the first interface it sees as “up”.

Here is the trap. An installed SFP+ module will probably report “up” before any of the RJ45 LAN ports do. The recovery IP binds to the SFP+ interface, and you sit there wondering why you cannot ping 192.168.1.30 from a LAN port. Remove the SFP+ module, power the device back into recovery mode, and the LAN ports work.

Read More
How symbolic and hard links work on Unix

How symbolic and hard links work on Unix

Unix file systems support 2 kinds of link: hard links and symbolic links. Both come from the same command, ln, but they work in very different ways. This post explains how each kind works. It then covers where Linux and the BSDs, including macOS, disagree.

Inodes first

A file on disk is not really a name. It is an inode: a numbered record that holds the file’s metadata and points to its data blocks. The inode stores the owner, the permissions, the timestamps, and the size. It does not store the file name.

Read More
Hello, world
Tags:

Hello, world

This blog is built with Hugo and lives in the same repository as my other experiments. There’s no theme dependency and no build tooling to maintain — just markdown files in blog/content/posts/ and a handful of templates.

The fun part is the publishing workflow: I can post from my phone by opening a Claude Code session and saying “new blog post about X.” Claude writes the markdown, commits it to main, and a GitHub Actions workflow builds the site and deploys it here.

Read More