me.micahrl.com blog

https://me.micahrl.com/blog

7 posts

Tech 86% · Crafts 14%

Subscribe via RSS

  1. Hugo Habitat

    I figured out that I can file some inconveniences off the experience of writing Hugo sites in VS Code, and the result is a new VS Code extension called Hugo Habitat: mrled/vscode-extension-hugo-habitat. It can: Add a clickable glyph next to Hugo links to open that page in the editor Open the current page in a browser via a command Update frontmatter date to current time via a command Clickable references The extension adds a [↗] glyph next to each Hugo page reference. You can cmd-click that…

    0
  2. Minor contagious metadata corruption in exiv2

    I found some contagious metadata corruption in exiv2, such that reading a file with corrupt XML namespace values in XMP data poisons all subsequent metadata writes with the same corrupt namespace — even to other files. I don’t think it is very serious (at least, compared to other data corruption bugs). All software seems to read the files just fine before and after, and the corruption is limited to XML namespace attributes. But it was interesting! I made a proof of concept that demonstrates it.…

    0
  3. Protecting .git from malicious agents

    I realized you can use containers to run Claude Code in yolo mode with Internet access relatively safely, without needing to maintain a dedicated VM. This might sound obvious. The whole point of containers is to isolate the contained processes from the host. Run Claude in a container, mount your project inside the container, and call it a day. This works fine, and will certainly prevent Claude from running commands on the host or accessing files outside your project directory. But when you’re…

    0
  4. Nice autolinks in Hugo

    In Google Docs, Confluence, and other heavy document editors, you can just paste a URL and it’ll fetch the page title and make a nice link out of it, at the cost of some tick, tick, tick while it fetches the title from the other page. I realized some links actually contain enough information to implement an instant (though limited) version of this feature in a Hugo site. All I have to do is paste it as a Markdown autolink, i.e. between angle brackets like <https://example.com>, without specif...

    0
  5. Searchable published urls

    As of today, if I include links in unpublished drafts, I have linked to 2,256 unique offsite URLs in page content.1 I know this because I made an automatic index of every URL on this site, instantly searchable by its anchor text, which page linked to them, and the URL itself. If you’ve got a site of your own, it’s pretty cool to be able to search back through all your outgoing links. Here’s how I designed it and built it. Design I really like live filtering as I type, but I had to iterate a b...

    0
  6. A fortunate birthday

    Two weeks ago, I threw my forty-first birthday party. Invitation by A and Rachel. Party cookies I really wanted to make fortune cookies from scratch, and the rest of the party kind of fell out from that. Over a decade ago on a now-defunct blog, I had seen someone do this for a New Year’s Eve party, and it has rolled around in my head ever since. Hannah and I used this recipe, which turned out to be more forgiving than I expected. You do have to limit yourself to batches of about three at a t...

    0
  7. A club for symmetrical DNS names

    I have a demonstrated interest in symmetrical DNS names. “Symmetrical” could mean several things. Maybe a single name that is a palindrome, like if you owned elpmaxe.www.example. Maybe a pair of names that have reversed components, like if you owned example.institute and institute.example. Or maybe URLs that can be cut in half and flipped 180°, like https://zq.suns.bz//:sdʇʇɥ. With this interest, an unhealthy predilection to stay up late typing things into porkbun “just to see”, and the extre...

    0