A false history

My daughter has been sending me adorable AI-generated images of her and my grandson in various Christmas get-ups. They’re so fun and cute and she’s having a blast. It makes me wonder, though, what happens 20 years from now when she’s scrolling back through her photos and sees these. Will she remember that they’re faked? How will she know what’s real and what’s not? How will my grandson? I worry that it won’t matter to her or anyone else that their pasts are imaginary. Well, it matters to me and it makes me sad.

December 20, 2025 · 94 words · Jack Baty

Rewriting my emacs new-post function as a shell script

I wanted a more generic version of my emacs lisp function for creating new posts. Claude helped me write it.

August 16, 2025 · 310 words · Jack Baty

Claude summarizes my last 30 days of blog posts

I asked Claude to summarize my recent blog posts. Claude knows me.

August 8, 2025 · 401 words · Jack Baty

Saturday, March 29, 2025

AI can be useful to me, personally.

March 29, 2025 · 223 words · Jack Baty

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 · Jack Baty

Asking ChatGPT to do things I used to think were fun

I’ve been testing a version of Johnny Decimal using folders and org-mode files. While doing this, I found myself frequently wanting to create a new .org file in the current (Dired) directory with the same name as the directory (long story). In a past life, this would have been a fairly straightforward challenge. I’m not remotely fluent in (emacs) lisp, but I’ve always enjoyed learning, so I would have dug in and figured out how to write the function myself. ...

August 29, 2024 · 355 words · Jack Baty

Renaming an item in DEVONthink to match the name of its parent group

When creating a new project folder (group) in DEVONthink, I often make use of Templates. Templates are just files in a folder somewhere that get copied into the DEVONthink database. For example, I have a project “starter” Tinderbox document named “Basic Project Template.tbx”. When inserting the template file into my DEVONthink project, it uses the same name as the original, which isn’t helpful. DEVONthink is very scriptable, so I wrote an AppleScript to rename the selected document the same as the enclosing group/folder. ...

June 12, 2023 · 304 words · Jack Baty

Snoop Dogg on AI risks

“I’m like, are we in a fucking movie right now, or what? The fuck, man?… Shit, what the fuck? I’m lost. I don’t know.” Snoop Dogg, Ars Technica Me too, Snoop. Me too. This might be the first honest take I’ve read.

May 11, 2023 · 42 words · Jack Baty