Annotating an image with weather

I thought it would be neat to include the date and weather on the images I use for my journal entry covers here on the blog. It turned out to be neat, but not fun. I spent nearly 3 hours on all sorts of failed approaches. I figured it might be useful to write down where I ended up. I leveraged two of my existing bash scripts that deal with the weather, and wrote a new one that uses ImageMagick to put things together. ...

March 28, 2025 Â· 456 words

Emacs lisp function to update exif data in film scans

I maintain a list of shell commands for updating Make/Model/Lens information in film scans. I’ve always run this via babel in a code block in an Org mode file. Something like this: #+begin_src sh cd ~/Pictures/_Scans exiftool '-m' '-Make=Leica' '-Model=Leica MP' -overwrite_original . exiftool '-m' '-LensModel=Summilux-M 1:1.4/50 ASPH' '-FocalLength=50mm' -overwrite_original . #+End_src Easy enough, I just copy and paste from a list of commands, depending on the lens and camera. However, it occurred to me that I’d prefer to simply have Emacs prompt me for the information, and then take care of the shell commands for me. Also, instead of hard-coding the path, I wanted to use marked files in a Dired buffer. ...

March 27, 2025 Â· 426 words

Using the Obsidian Web Clipper with Denote

I was feeling envious of the Obsidian Web Clipper, which is quite fancy, so I thought I’d try leveraging it for use with Denote. My first run at this involves a couple of steps: Tweak the web clipper to save files using Denote’s format and front matter Save the file without adding it to an Obsidian vault Move the saved file into my Denote folder Here’s the Web Clipper template configuration I ended up with: ...

March 25, 2025 Â· 282 words

Upgrading php to 8.3 on the (Ubuntu) server

I upgraded PHP to v8.3 (from 8.2) today on the server running baty.net. I don’t pretend to be an Ubuntu sysadmin, so I’m writing it down, just in case. sudo apt update sudo apt install php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,gd,xml} sudo apt install php8.3-fpm sudo a2enconf php8.3-fpm # enable it sudo vi /etc/caddy/Caddyfile # replace socket path with 8.3 sudo systemctl reload caddy sudo sudo a2disconf php8.2-fpm # disable 8.2 sudo apt purge php8.2* # in fact, just delete 8.2 The site runs on Caddy, so I needed to change the path to the fpm socket. Here’s the Kirby section of the Caddyfile… ...

March 24, 2025 Â· 119 words

Roll 204 (Hasselblad 500C/M)

I’ve not been shooting much film recently. Yesterday, I was bored and in a mood, so I grabbed the Hasselblad and fired off a roll using Alice as my model. Only one frame was good enough to share. I really like it, so it was worth sacrificing the other 11. Alice

March 23, 2025 Â· 51 words

A change to my everything.rss feed

For a while, I tried maintaining a combined RSS feed that included posts from all my sundry blogs. I kept it at /everything.rss. It was managed as part of my WordPress blog, and since I’ve stopped using WordPress, I’ve been redirecting /everything.rss to the feed for baty.net, which is either /feed or /index.xml, depending on my blog platform of the day. I think that instead of that, I’ll piggyback off my @batybot account on Mastodon.social. I crosspost most stuff from my sites to @batybot via EchoFeed already, and Mastodon offers an rss feed for each account. Mine is https://mastodon.social/@batybot.rss. ...

March 22, 2025 Â· 150 words
Closeup of Nikon Z f camera dials

Five weeks with the Nikon Z f

A few quick thoughts after just over a month with the new Nikon Z f

March 21, 2025 Â· 300 words

Fixing the terrible scrolling behavior with Logitech MX Master on macOS

Scrolling with the Logitech MX Master in Safari sucks out of the box. The following from this Reddit thread helped, even though it required installing 2 additional packages. Here’s the useful part of that thread: Install Logitech Options+ (sigh) and set: Logi Options+ (Plus): Customization App for Logitech Devices What a gross bit of software, but it’s necessary here. I’ve read that once this process is done, I can delete the app completely, but I haven’t tried that yet. ...

March 19, 2025 Â· 294 words

Listing today's notes in Denote journal entry

While tinkering with Obsidian recently, something I liked was having a daily notes template with a Dataview query showing the other files I’d added that same day. I added something similar for Denote. It’s a Yasnippet: # -*- mode: snippet -*- # name: Denote insert today's links # key: dnl # -- #+begin: denote-links :regexp "^`(format-time-string "%Y%m%d")`$0" #+end I just run that after first creating the daily note and I get a list of links to the other Denote files from that day. There’s probably a way to automate that, but this is good enough for who it’s for. ...

March 18, 2025 Â· 99 words

Espanso again

I’ve gone back to using Espanso for text expansion. As powerful as Keyboard Maestro is, every time I reach for it I feel like I’ve already lost a battle somewhere. Text expansion macros are about all I use KM for these days, so it’s not much of a disruption. I bookmark Espanso’s config folder in Emacs so I can jump right in any time. The expansion macros (“matches”) are contained in YAML files and can be as simple as: ...

March 17, 2025 Â· 156 words
Self-portrait in mirror with Leica MP. I'm alo holding a Polaroid SX-70

Roll 203 (Leica MP)

Finished a roll of HP5 today with some shots of my grandson, of course. Here’s 4 from the roll.

March 11, 2025 Â· 19 words

Toggle hidden files in Dired buffers

On macOS, hitting CMD-Shift-. in Finder toggles the display of hidden (.dot) files. I wanted the same thing in Dired mode.

March 8, 2025 Â· 245 words

Denote and Howm, sitting in a tree

Using both Howm and Denote for my notes in Emacs. But why?

March 8, 2025 Â· 749 words

Fixing the terrible scrolling behavior with Logitech MX Master on macOS

Scrolling with the Logitech MX Master in Safari sucks out of the box. The following from this Reddit thread helped, even though it required installing 2 additional packages. Here’s the useful part of that thread: Install Logitech Options+ (sigh) and set: Logi Options+ (Plus): Customization App for Logitech Devices What a gross bit of software, but it’s necessary here. I’ve read that once this process is done, I can delete the app completely, but I haven’t tried that yet. ...

March 8, 2025 Â· 294 words
Photo of keyboard with a red mousepad next to it. My hand rests on the pad.

I printed a mousepad

I like having a felt pad on my desk, but I don’t like how it sometimes causes mouse movements to become choppy. My favorite mouse is the Logitech MX Master. Maybe other mouses work better on felt, but I want to use this one, so I decided to buy a mouse pad. Then I remembered I have a 3D printer. I downloaded this model and an hour later I had a custom-sized simple mouse pad and it works great. ...

March 7, 2025 Â· 79 words

Ladybird (web browser)

Ladybird: Ladybird is a brand-new browser & web engine. Driven by a web standards first approach, Ladybird aims to render the modern web with good performance, stability and security. From its humble beginnings as an HTML viewer for the SerenityOS hobby operating system project, Ladybird has since grown into a cross-platform browser supporting Linux, macOS, and other Unix-like systems. Ladybird is currently in heavy development. We are targeting a first Alpha release for early adopters in 2026. ...

March 7, 2025 Â· 86 words

Using Gnus for email

A week ago, I toyed with the idea of using Gnus for reading Email in Emacs. As expected, I hated it at first. But then… ...

March 6, 2025 Â· 842 words

Digg is coming back?

Hang on a sec… digg reboot I’m here for this!

March 5, 2025 Â· 10 words

I went a little nuts with Remember mode in Emacs

I went down a rabbit hole with the built-in Remember mode in Emacs today. ...

March 4, 2025 Â· 595 words

Denote-search, a simple search utility for Denote

lmq-10/denote-search This package provides a search utility for Denote, the simple-to-use, focused-in-scope, and effective note-taking tool for Emacs. The command denote-search is the main point of entry. It accepts a query, which should be a regular expression, and then searches the contents of all the notes stored in denote-directory for it. The results are put in a buffer which allows folding and further filtering; all standard commands offered by Xref are available as well. ...

March 4, 2025 Â· 147 words