Saturday, December 14, 2024

Thanks Frank! It's good to know I'm not alone.


I went to sleep last night having decided that, "Tomorrow, I'm going to revamp my Emacs config and go back to my home-grown config." This morning, I thought, "Life would be easier if I just used Obsidian instead." So yeah, normal day so far 👋🏻.


The market has chosen Markdown over Org mode files and I hate that.


Friday, December 13, 2024

Plant on my desk that I haven't killed yet.

Wouldn't it be great if, instead, we just stopped wanting more stuff?


I am almost embarrassed to admit that Adobe Bridge has become my default for dealing with photos. After dismissing it for years, it might now be my favorite "new" app. Weird how that happens. It does so much more than I thought.


I don't have the energy to go around looking for things to be mad at.


The only thing Obsidian has to offer over Emacs is convenience. That's not a good enough reason to use it.


JFK Jr. is a public health emergency


Online following and Starter Packs · Luna’s Blog

I want people to follow me naturally because they enjoy my posts in particular, I don’t want a tech/demoscene/gamedev/etc audience showing up in bulk just because someone else decided to put me on a list without my prior consent.

Hold on a sec, do we want to make it easier to find interesting people to follow or not? I can't keep up.

I can understand why it's worth the conversation, but this sits wrong with me. I can't help but read it as, "Sure, we want to make it easier to find people to follow, but leave me out of it. Those people haven't earned the right to follow me. And take me off your blogroll while we're at it."


Thursday, December 12, 2024

On daily.baty.net, each little whim of a post has its own page and is part of the RSS feed (and gets cross-posted to my mastodon.social bot account). Some days, that's exactly what I want. When I write daily notes here at baty.net, using the single-entry-per-day format, I feel less pressure to make anything "count". And some days, that's exactly what I want. Living in my head is frustrating.


Century-Scale Storage:

But at the century scale, even our most widely adopted file formats are completely untested. Digital history is not long enough to definitively settle on best practices.

So, WordPerfect, then? 😁. Seriously, though, it's a really interesting article.


I joined https://izzzzi.net/ for some reason (I'm jbaty).


Monday, December 09, 2024

I know y'all are sick of me waffling about where to post these little daily notes, but I can't help it. I'm honestly split right down the middle about it. I want everything to be in one place, but I can't seem to make it all fit in one place. At least not the way I want things to fit. I could leave baty.net for the longer posts and daily.baty.net for these daily notes. Or, I could try combining everything here. Or maybe combine everything there and make this a landing page. I think each of these options has equal merit, so I haven't been able to decide, and probably never will. I guess I'll continue posting wherever I'm in the mood to post on any given day.

Today, I'm in the mood to do it on daily.baty.net.

I have deleted all my PikaPods

Yesterday, I had three "pods" on PikaPods: Ghost, Actual Budget, and Linkding. Today, I have none.

Deleting Ghost was easy, since I moved back to Hugo.

I wasn't using Actual Budget enough, so losing that isn't a sacrifice.

Linkding I really like, but for weeks I'd add links to it, then never go back to look at any of them. There are other, simpler ways to manage bookmarks. Same goes for a "read later" service. I still grab the markdown, create a PDF and print it. If it's not worth doing that, I'm probably not going to bother reading it later, anyway.

PikaPods is a great way to spin up inexpensive (mostly) self-hosted web apps. I just didn't need the ones I was using.

Permalink #

Sunday, December 08, 2024

Powerlines on my walk. Olympus Stylus Epic. HP5.

I'm in the middle of re-reading "Digital Minimalism" by Cal Newport and I must've put the book down to check my phone at least a dozen times last night. I'm doing it wrong.


The best way to avoid having to organize things is to not have things to begin with. I'm deleting so much stuff right now. I'm going to regret it, but I need this. It's self care :)


Markwhen is a markdown-like journal language for plainly writing logs, gantt charts, blogs, feeds, notes, journals, diaries, todos, timelines, calendars, or anything that happens over time .

(h/t @AnthonyBaker)


Friday, December 06, 2024

I spent a good portion of yesterday offline. Well, not technically offline, but not on social media, which feels like the same thing.


Trying to remember to step away from the computer once I notice that all I'm doing is clicking things basically at random. That means I'm done for now, but I rarely heed the clues.

Thursday, December 05, 2024

I'm looking at the contents of the media drive on my 2014 Mac Mini and there are dozens of seasons of TV shows in the Plex folder. I don't rewatch shows. Ok, I rewatched The Wire and West Wing but that's about it. I'm planning to decomission the Mini so I'm deciding what I need to keep. I don't need to keep the TV shows. That's a start.


I spent most of the day rejiggering my backups and other parts of my setup. It's December and I have not yet Reduced nor Simplified. I pulled everything off the Mac Mini (2014) server. Consolidated all of my "Attic" folders. Moved backups into one spot. Rebuilt the Roon Core on the original NUC server, where it belongs. Things were getting out of hand, and it felt good to reel it in just a little.

Wednesday, December 04, 2024

Mastodon is great when I want to listen to people scold each other. Bluesky is for listening to people being performatively clever. I am not enjoying either of them.


Most people care nothing about the things I care deeply about. I'm feeling too old to try convincing them.


Suggesting that people start a blog instead of joining a new social media platform is a category error.


Typing my little takes here on the blog is better than doing it on the socials because here no one bothers to correct me. I don't feel like arguing.


I canceled my membership at 500.social. I wasn't using it enough, so it didn't make it through my end-of-year subscription cutting exercise.

Tuesday, December 03, 2024

"I don't know anything about what you asked, but here's what I got from Perplexity..." is not helpful. Plus, you still don't know anything about what I asked. We've gotten nowhere and you've wasted our time.


From Hugo to Ghost and back again

I can hear you all giggling. Ha ha very funny, Jack changed his blog again. I get it. Most normal people don't change blogging engines every month or two.

If I were a different person, Ghost would be the answer. It's fast, looks good, and has everything I might need for publishing a nice blog. But I'm me, and I get twitchy when content is "trapped" in Ghost. I understand that I can always export some unreadable JSON and finagle it from there, but I can't get comfortable with it. It's not just the JSON, but the complex markup Ghost uses for content. Yuck. If only I could ignore it.

As good as Ghost's post editor is, it ain't Emacs. I always end up wishing I was writing in Emacs.

Also, and maybe most importantly, I prefer static websites. The arguments in favor of static websites are enough, but they aren't why I want a static site. It feels better having a static website. The actual publishing part can be a pain in the ass (:::cough::, Hugo) but the results are worth it. A folder full of HTML files and some images, starting on my local drive and synced to a simple web server...mmmmm, yummy.

So, once in a while I get tired of dealing with Hugo or whatever and I spin up a Ghost instance or try something new (e.g. Kirby). That feels refreshing for a while, but I end up being uncomfortable and crawl back to Hugo.

Hugo bugs me. It seems like something breaks with my site after every update. But it's fast, widely-used, and a nice, tidy, single binary. I like my theme, too, for once, so I think I'll do this again, for a while. Just don't touch anything.

Permalink #

Monday, December 02, 2024

Playing with the old X100

I find that I kind of enjoy starting the day with a quick jab/hugo-new-daily in Emacs and here we are. The issue with publishing right away is that for people who use RSS they may think I'm finished for the day, and that's seldom the case. Sometimes I worry about this, but most of the time I remember that the people subscribed via RSS know me, and I think they understand. :)


Our internet was clocking at around 0.4Mbps second for most of the day yesterday. This morning it's reading 475Mbps so that's, what, 1,000 times faster? So much better.


I replaced the OpenGraph image here with something at least a little less unpleasant. One day I'll try to actually "design" something, but this will do for now.

The new, placeholder OpenGraph image.

The Red Hand Files Issue #305

I find there is no more heartening sound than laughter, and in particular, the laughter of my wife. There is a gentle defiance to it, a bell-like music of love that gives grounds for hope

Nick Cave understands.

Sunday, December 01, 2024

Alice chilling (2021)

Oh dear. It's OK, though. What happened was that I started to feel twitchy about having my posts and photos locked up in Ghost. "Locked up" is an exaggeration, of course, but you know what I mean. It's better when everything is in a nice, tidy set of folders on my hard drive, in Org or Markdown format. So here we are, back in Hugo.


I've noticed a drop-off in interaction on Mastodon the past week or two. Is it because people are leaving? Maybe they just don't find me interesting anymore.


Testing Aspect for photo management

Photo: Bildhuus website

Some former Nik Software people are building a new tool for managing photo libraries. It's called Aspect. I'm a sucker for any photo-related software, so I installed the beta and spent yesterday testing it. I took some notes after using it for a day.

First impressions were good. I like the ideas behind Aspect. It relies on the underlying file system, so it's reasonably transparent. It organizes things for me based on dates and events. I can control the structure. I can even change it later, and Aspect will move things around to match.

There are collections and smart collections. There are metadata filters for labels and ratings. All table stakes so far.

Where I think Aspect becomes interesting is in how it manages photos and can synchronize between devices, without relying on a cloud service.

If I create an "event" in Aspect, it creates a dated folder and moves any photos put into the event into that folder. I'm lazy, so this encourages me to keep things tidy. And I'm not worried about losing the structure, since the events and file system are kept identical. I like this.

I was initially put off by being forced to create the library on the same device as the photos. This turns out to not be a real problem, since I can add other devices (computers or drives) later and sync them. For example, I can keep files on my internal drive, but also add my big external drive or NAS as another device, and configure Aspect to sync everything. This can be based on disk usage, or time period, or manually. The idea is sound, but I haven't tested it yet, myself. I did "join" the Mac Mini library from my MBP, and could see everything. Not sure yet how it handles thumbnails vs originals, etc. Still, neat ideas.

Is it ready? No, not quite yet.

Aspect crashes frequently on my Mac. I haven't lost any work or images, but it feels unstable.

Scrolling needs tweaking. I'm told it's being worked on, but the scroll "momentum" needs dialing way back. I overshoot my target every time and it's quite annoying.

My big problem so far, though, is that Events are based on dates of the files contained in the event. This would normally be fine, but if I edit a copy and save that copy, the date of the event is updated to the current date. This both renames the folder and causes the event in the UI to show up first, even if it's from long ago. That, if it continues, is a deal-breaker for me. I read a forum post saying they're planning to add editable attributes to Events, so perhaps this is only a short-term issue.

Aspect is not a photo editor or RAW processor, so I need to open the files with an external editor. I tried using Capture One for this, but it was awkward. Capture One refuses to write anything to RAW files, so edits are not included as a JPEG preview in the DNG files. This means that unless I export a JPG, I can't see the edits withing Aspect. Instead, I've been using Camera Raw/Photoshop. Camera Raw can be configured to update the preview. I have always avoided Camera Raw, but I don't know why. It's basically Lightroom without the library. I'm finding it easy to work with, and it fits the Aspect flow nicely.

What I like

  • I can manage files from within Aspect or directly in the file system. This feels liberating.
  • Event creation and management is very easy, so it actually gets done.
  • Device sync with no cloud requirements
  • Handles variants automatically (although it seems inconsistent so far)
  • "Workflow" vs "All files" modes let me hide photos I don't need to see (DNG camera scans, failed edits, etc). This is manual, which is perfect.
  • One-time purchase (I think)
  • The developers say the right things: "Your Photos on all of your Devices", "Access your Library directly from the File System", "No subscription, no cloud"

What I'm waiting for

  • Fix for scrolling issues and frequent crashes.
  • Stabilized date handling for Events

Aspect is one of many DAM solutions. I've tried most of them, but there's something about Aspect's attitude that works for me. I'm not ready to go all-in yet, but I'll continue testing and watching for updates.

Permalink #

Forging org-attach features into Tinderbox

Every note-taking app handles file attachments differently. Most of them do it poorly. What I've found surprising is that I actually like what Org mode does with attachments. I might be the only one who does.

The way I have Emacs configured, dragging a file into an open buffer window will prompt me with a few options, the one I use being "Attach file". This then copies the file into a subfolder of whatever directory is configured as the org-attach-directory. This subfolder is named based on any ID property set in the Org file. This means I end up with a directory tree that looks like this:

5f 6d ├── ace650-30fb-4157-9e6e-a259f6b4b75e │   └── 20230820-Luigi-Ghirri .jpg ├── bffb46-e988-4e4e-864f-4ff0b9171068 │   ├── Datavue Snap 1+1 Portable Computer-closed.jpg │   ├── Datavue Snap 1+1 Portable Computer-floppy.jpg │   ├── Datavue Snap 1+1 Portable Computer-front.jpg │   ├── Datavue Snap 1+1 Portable Computer.MOV │   └── Datavue Snap 1+1 Portable Computer.jpg └── ca2ca7-f6a8-415f-8b53-d607081fdda2 └── Community Darkroom Project.tbx 6c 6e

You can see why someone might avoid doing this. Without the source .org file, all bets are off. I don't lose the source .org file, is all. Also, I try to name my files in a reasonable way, so using Spotlight as a fallback is feasible.

Tinderbox, on the other hand, isn't much help out of the box with files. It has lots of file-based tooling, but the idea of managing attachments isn't one of them. So, I'm trying to finagle Tinderbox into working the way Emacs does.

In Tinderbox, if you have a "File" attribute showing, you can drag a file from the finder into that attribute and it will set its value to the Path (e.g. "~/Desktop/funny-meme.jpg"). What I've done is create a Stamp that copies that file to my version of Org mode's "org-attach" tree (see above).

It's hard to describe, but here's a quick rundown of how it works.

Instead of a uuid, I use a date string derived from the current time (e.g. "20241125T143431"). This is stored as a string in an "Identifier" attribute as soon as I create a new note in my LifeBook.tbx file. Here's the parts that do it...

// Set some basic attributes in the new note, including the $Identifier $Date|=date("today");$Prototype="pJournalEntry"; $Identifier|=fNoteIdentifier($Date);

function fNoteIdentifier(vDate:date){ var:string id = vDate.format("yM0DThmms"); return id; };

Here's what that part of the note looks like after dragging a file onto the File attribute.

Once the File attribute has a value, I run a Stamp named "Attach".

if($File){ if($Identifier==""){$Identifier=fNoteIdentifier($Date)}; var:string vSourceFilePath=$File.substr(1); // remove tilde var:string vSourceFileName=vSourceFilePath.split("/").at(-1); var:string vAttachmentDir=$Text("/Config/AttachmentDir"); var:string vDestDir=fNoteAttachDir(); var:string vCmd="mkdir -p " + vDestDir; vCmd+=' && cp "$HOME' + vSourceFilePath+'" "'+vDestDir+'/"'; $HasAttachments=true; $Text(/Debug)=vCmd; $Text(/Debug)+=runCommand(vCmd); $File=vDestDir;}

function fNoteAttachDir() { var:string vAttachmentDir=$Text("/Config/AttachmentDir"); var:string vDestDir=vAttachmentDir+"/"+$Date.format(y)+"/"+$Identifier; return vDestDir; }

Without going too far into the weeds, this stamp runs a shell command that creates the appropriate target directory and copies the $File into it. It then sets $HasAttachments to true and finally, sets the original $File attribute to the attachment directory. This last bit means I can click on that little folder icon and it will open the folder in Finder.

I'm using a simpler file tree using subfolders based on the year in the Identifier:

. └── 2024 ├── 20241125T121015 │   └── USPS-OM-2n.pdf └── 20241125T143431 └── Donation Receipt — Thank you from the Internet Archive.eml

It probably seems more complicated than it is. The whole process is

  1. Drag file onto the document
  2. Select "Attach file" from the Stamps menu.

If this all seems terribly overwrought, that's because it is. I just wanted to see if I could do it. It's not exactly the same as Org mode, but it's close enough for who it's for.

Permalink #

Hardcover

All I want is Letterboxd for books. LibraryThing is the Craigslist of book trackers. Goodreads is icky. TheStoryGraph has a layout I don't get along with. Bookwrym is decent, but doesn't feel that great. Plus, I don't care if my reading list is "federated".

I asked about this on Mastodon, and @johnke responded, suggesting Hardcover, which I'd never heard of. It was a good suggestion.

I imported all of my books from TheStoryGraph, which I'd previously imported from Goodreads, and I was off and running. Here's what it looks like:

What I like about it is that I can get to the books and lists that I want without too much fuss. StoryGraph was bad at this. Mostly, Hardcover shows me the things I want to see, where I expect to see them, so that's good.

What I don't like is that the website is slow. It's faster than TheStoryGraph, but still too slow. I also find the screened image in the header to be distracting.

Some improvements I'd like to see: I think the Reading Goals section could be much smaller. I might even choose to hide it on my profile, if possible. The "Books by Status" section would benefit from putting the tabs/navigation at the top of the list of books. That would give more room for the actual books.

I'll run with this for a bit and see if it continues to feel right.

Permalink #

Creating self-contained HTML exports from Tinderbox

Exporting from Tinderbox is ridiculously flexible, and I do it all the time. When exporting to HTML, images which are embedded in the note's text are exported as separate images and linked to in the generated HTML. This works fine in most cases. Sometimes, though, I'd prefer to have a self-contained HTML file for sharing or backing up, without having to deal with the external images.

For regular websites, I use the terrific SingleFile extension for Safari to render fully self-contained HTML versions. However, it's trickier to use with local HTML files.

Here's my current approach for getting self-contained HTML documents out of Tinderbox notes containing inline images. Although, I believe that this will work with any method of including images in HTML exports.

This is probably not for the faint of heart, and I might be the only person who wants this, but I couldn’t leave it alone.

Here's the short version:

  1. Export HTML normally via Tinderbox
  2. Use a local web server to serve the exported file(s)
  3. Generate a self-contained HTML file using the SingleFile CLI tool

I’m using the following (as a Stamp) in Tinderbox:

# Save as HTML via SingleFile
var vURL = "http://" + $Text(/Config/WebServerHostname) + $HTMLExportPath;
var vCmd = "export PATH=/opt/homebrew/bin/:\$PATH && ";
vCmd += "single-file " + vURL;
vCmd += " ~/Desktop/" + $HTMLExportPath.split("/").at(-1) ;
$Text(/Debug)=runCommand(vCmd);

💡 I had to add the homebrew folder to $PATH before calling single-file, otherwise it would throw a “env: node: No such file or directory” error.

Requirements were non-trivial, but if you’re already a Node and/or Homebrew user on macOS it was straightforward.

  • A local web server. I use either Caddy in a terminal, or the simple WorldWideWeb app from IconFactory.
  • Node.jsDeno, and Chromium (installed via Homebrew).
  • The single-file-cli installed via npm.

After all that, I realized I could skip all the single-file-cli bits and simply open the exported HTML file in a browser and use the SingleFile extension normally. SingleFile won’t handle local file:///path/to/file.html paths, so the web server is still necessary.

var vURL = "http://" + $Text(/Config/WebServerHostname) + $HTMLExportPath;
var vCmd = "export PATH=/opt/homebrew/bin/:\$PATH && ";
vCmd += "/usr/bin/open " + vURL;
$Text(/Debug)=runCommand(vCmd);

There’s room for both approaches, I suppose. ¯_(ツ)_/¯

Anyway, it was fun!

Permalink #

Returning the Nikon FE2

Mirror self-portrait using the Nikon FE2

I recently purchased a nice Nikon FE2 from KEH.com. It wasn't expensive, and after using the FM2n for a bit, I wanted to try something like it, but with automatic exposure. The camera is lovely.

Nikon FE2

I've put one roll of film through it. As expected, the match-needle metering in the viewfinder is much more to my liking than the LED version in the FM2n. It's how I like a meter to work, given a choice.

The first roll's results were meh. This wasn't the camera's fault, but there was nothing there that jumped out at me, image quality-wise.

Then this happened:

Nikon FE2 with broken self-timer lever

The self-timer lever fell right off when I tried using it. This should be easy to fix, but I'm not going to bother. I could exchange the camera for one without a broken self-timer. Or I could fix the one I have. Except this wouldn't solve the biggest problem with the FE2, and that is the need to pull out the shutter advance in order to turn the camera on.

The FE2 needs the shutter advance lever pulled out like this to operate

I thought I could get used to it, but I consider it a design flaw and I hate it. I miss shots. I'm left-eyed, so it pokes me in the eye and generally annoys me.

I've also noticed that to continue using the camera, I'd need a diopter.

So, the camera is going back and I won't be replacing it. I'm happy I got to try it, but it's just not for me.

Permalink #

I have neither reduced, nor simplified

It's not as if I haven't been reminded of this every time I look up.

At the beginning of 2024, I had grand plans to Reduce & Simplify. I was also determined to use what I have. I've done neither of those things. It's November.

I tried for a while. Or rather, I tried a bunch of different times, which had the effect of making everything less simple. Instead of limiting the number of tools I use, I switched from one to another (in an honest but misguided effort to make things simpler). The result has not been the nice, clean, simple set of tools I had hoped for. Instead of having few dependencies and requiring little maintenance, my stuff is spread everywhere and littered with neediness.

As for using what I have, yeah, well.

I bought a new computer for my desktop, so now I have two machines to configure and maintain. I bought more cameras, because the 20-odd cameras I already had weren't enough, apparently. Two notebooks going at once was missing something, I guess, so I bought a third. And so on.

Maybe I'll panic before the end of the year and actually end up somewhere near where I intended, but I've already "simplified" things so many times that I've actually made things worse. The best way to make things simpler for me would be to stop changing things. It's had the opposite effect. I should probably just use what I have. Oh wait.

Permalink #