Goodbye, Willow

About 12:45, Willow passed away with the vet’s assistance. Her internals were shutting down enough that I don’t anything the vet could do would have done much more than drag out the suffering a few hours, or at worst a few days.

Willow on my shoulder

She had stopped eating and drinking enough that she spent a few days on an IV, and seemed to perk up. Her blood work neither improved nor worsened, so I decided to at least try making it through the weekend. But in a few days started refusing dog food and spent her last couple nights on a diet of boiled chicken and rice. Last night, I think we got about 45 minutes of sleep as she would keep barking and refusing any food or water. This morning she refused her pill wrap with the arthritis meds, something she had previously accepted despite the eating issue. Willow basically spent the morning shifting between barking a few times and going back to sleep. By the time I decided to accelerate the trip to the vet instead of waiting for our appointment, I think her kidney’s were already starting to give out.

Before taking her to the vet, I decided to sit in the grass with her one last time. I think she still had enough awareness left to enjoy that sensation, but was so close to the edge that I was surprised she was still breathing when we made it to the vet. If I didn’t worry what pain she might wake up in, we might have just sat there until she passed.

Willow was by my side from when she was about 6 months old until her end, about 18 years later. I love you little monkey, and I hope when my own time comes that you’ll be waiting for me at the bridge. She was the best girl.

apple.news/AVAP-6DioT_6a-0AxiaDpyA

For some reason this just makes me remember an old post I read a zillion years ago, about you know your game is in trouble when X. In many cases, it was when some department came back asking are you sure the product is in 3D? — yeah, it was that long ago.

But the part that stuck was one quip, where people were standing around testing and noticed the face of Jesus Christ when looking at the wall textures. And no one had intentionally done it, it just kind of happened. Out of perhaps a few hundred posts (tweets wouldn’t exist for many years yet 😜), that one was kind of hard to top.

Cooking for the first time in a good while, between waiting on the land lord to finally call a plumber and Willow’s tethering health; I opted for a two factor dinner plan.

For me, chicken tenderloins baked with a light dusting of garam masala, some green bean casserole that I’ve been meaning to make forever, and rice with soy sauce and onions. Not the best meal I’ve ever made, but it felt good to be able to cook again.

For the dogs, I boiled a portion of the chicken and set aside a few spoons of the rice. At first, I was worried that this might be a little bit bland compared to their diet of late. Needn’t have worried, save perhaps that they would dislike having to share 🤣.

While Willow didn’t care much for having to wait on me to clean and re-order the kitchen interspersed with cooking tasks. She pretty much woofed it down. Misty basically cleared the dish by the time I turned around. So, I guess I can call that an effective plan.

How much coffee could a code monkey slurp, slurp, slurp?

Depends, how much coffee was there to guzzle, guzzle, guzzle?

Look, the coffee pot is dry! Oh shit, there’s an evil glean in his eye!

Quick, it’s time to make some more coffee before the world ends.

— my passing thoughts between cups

The way things work around here

Me: *walks off and comes back *

Misty: *Sniff, sniff *

Me: “You want some coffee?”

Misty: bastard, I thought you were making a sandwich.

Me: * walks off and comes back *

Misty: *Sniffs * I knew it, I smell a sandwich!

Coffeeeeee Time!

So far, experiments with pour over are going well. In a lot of ways, it feels more like a transition from an automatic to a manual transmission, except in this case it’s extracting awesomeness from roasted beans.

For my French press it’s a pretty simple equation. Coffee grounds by weight/grind, water measured to the mark, and a timer on my watch. Bing, badda, boom. Adjusting the grind or the time is about it as long as you remember to stir the top to avoid coffee-berg instead of steeping uniformly. I’ve gotten this down to a kind of science of about 50g of coarse ground coffee, 800ml of water that’s just ceased boiling, and 4minutes in the press. That makes two helpings of my larger cups. Adjusting weight to time made it easy to dial in my ideal brew with the French press.

With the pour over, since I aimed for a similarly sized beaker (rated for 6 cups), it’s hard to have room for both 50g of coffee and properly extract it. Because of the differences in extraction, losing the steady time factor takes this from an ‘awesome’ cup to a ‘good’ cup by my tastes. To compensate, I’ve started experimenting with less coffee and the greater exposure to water that extra space allows. Making this a more controlled process is a bit tricky with my old time flat/wide kettle, but does seem to be bearing fruit. If this was firing artillery, I’d probably have the target within another 4 or 5 rounds.

The downside of the French press is that it’s a bugger to clean after a brew. My Venken’s filter design lets you get all the flavor and none of the grounds, but requires proper rinsing and wiping down of the beaker. It’s such a great French press, I’d bring it to work if only it was easier to dispose of the grounds. Normally, I lay out paper towels in the kitchen sink, so that I can clean it out and scoop up the grounds without much going down the drain.

The downside of the pour over is it’s more precision to get a good brew. But the clean up is damn easy peasy. Literally, grab the beaker by the neck, walk to trash can, lift and toss filter – done! The beaker itself just needs a decent rinse. There’s also the great upside that thanks to the separation the filter provides, I can utilize it to hold the second or third cup of coffee while I’m drinking the first. Actually, when using my French press I could probably use the Chemex as a coffee decanter, saving me from needing a second cup.

I think if I could change anything it would be more precise measuring. The small bulb representing half full and the wrap representing max, while nifty is just not as precise as I’d like. Fortunately, being the kind of metric system using asshole that I am, there’s a simple solution to this. Plop the beaker on my kitchen scale, tare the weight, add the water. And guess what? The formula for water is about 1ml = 1g. Ahh, I love the metric system 😁.

Recently, I’ve finished the Frontlines series after more than a year of reading. Sometimes a book or two a week, sometimes a book or two a quarter. Quite a good series in its genre. After eight volumes, it does rather make me think about how my reading habits have changed in the last few years.

Somewhere over the years, I’ve started to divide my taste in reading into two different groups: light reading and heavy reading. Light reading is often serialized, less deep and more to the point. Good examples abound among Japanese light novels (thus, my choice of noun, lol) and the more “Pulp” like spectrum of science fiction and fantasy. Something you can sit down, read, enjoy, and not have to spend a lot of brains on to avoid distraction. Heavy reading tends to be more in depth and long form, things that reward interests in world building and greater detail up to the point that focused reading is necessary for enjoyment. Good examples are epics like Lord of the Rings and Shogun, things that aren’t short reads and benefit from focused reading where you can really enjoy them.

Oddly, I think Frontlines fits neither of these taxonomy. Terms of Enlistment and some of the other entries in the series, straddle a fine line between little enough detail to maintain the pacing and focus; but also flesh out the world sufficiently that it provides the depth needed for character and plot development. That’s not an easy balance to achieve in writing a story.

While I’ve found that fitting more light reading into my life fits better with the reality of how much time I can spend reading, many of my favorite novels are definitely in the heavy category. Curiously many of the best novels are somewhere in between these two extremes. But the only way to really tell whether a book will land in between is to give it a good reading 😀

digiKam databases

Well, this is nifty. According to the documentation, digiKam supports using MySQL/MariaDB as a backend as an alternative to local SQLite files. Plus it documents the constraints relevant for using digiKam across multiple computers with respect to databases and collections.

On the whole, I’ve found the documentation pretty good and comprehensive. Sometimes the English feels a little off once in a blue moon. But the docs are pretty solid. I guess between 17 years of active development and growing professional grade feature sets, I should have expected the docs to be worth more than five minutes.

Good on you, digiKam contributors!

Thoughts on photo management

Along with taking the day for mental health and generally trying to be sane. I’ve been thinking about the future of how my photos are managed and how that needs to evolve.

The present system is pretty much this:

  1. Photos are cached to preferred cloud storage (+2 copies).
    • One is cleared periodically ‘en mass’ after draining.
    • One is cleared periodically during ‘archiving’.
  2. Photos are archived to my file server (+3 copies).
    • Master copies under my Plex media library.
    • Periodically backed up to another local location.
    • Entire file server is backed up locally.
  3. Photos are archived unfiltered to cloud storage (+1 copy).

Now, there’s a few problems with this scheme. Aside from getting off my butt closer to quarterly or yearly than monthly to drain cached images into the master. Over the years the definition of 3 has changed a bit. Another problem has been the evolution of format: I’ve generally migrated from classic JPEG to HEIC, as I’m seeing on the order of 50% disk savings. But of course Plex doesn’t speak HEIC, and therefore viewing outside of mounting the network drive hasn’t worked in years!

I don’t think there’s a good solution to how often I process photos through this pipeline, relative to any other habitual behavior.

There’s also the fact that whether I am draining the cache or actively looking for images, such as building my ‘Remembering Corky’ or ‘Photo Frame’ albums, that doing this at OS level kind of sucks. Explorer and Finder have actually gotten pretty good at dealing with photos since circa 2000, but aren’t exactly fun. More than once I’ve wished for something like Geeqie that my previous Unix machines had. In suffering the native tools, I found that building my Photo Frame album was really damn painful in finder’s gallery view, until I decided to just copy everything to a memory card and go through a process of deleting whatever I don’t want to move.

Actually, the general work flow and process has sucked enough that I’ve considered writing a bit of software to help compensate, or transitioning my master copy into something more cloudy and photo centric. Something that can offer better navigation / movement than a file-centric manager and a little bit more database goodness than my Photos/${YEAR}/${COLLECTION}/ approach to on disk storage.

Then in putzing around Steam Deck, taking its desktop mode for a test drive made me remember an old KDE application called digiKam. It has features for basically everything but pulling free disk storage out its digital back oriface.

In the old days, I never messed around with digiKam. Partly because it and KDE, were kind of heavy weight on my laptop back when I was a KDE user. Partly because by the time digital cameras and smartphones were part of my life, I had no KDE systems and an increasingly heterogeneous computing environment.

I’m thinking that digiKam may be a good solution to the solvable problems. It certainly should be able to handle my photos archive, which is over 40G and 14,000 image and video files. Actually, when the heck did this get so large? It feels like just a lustruum ago, I could fit everything on one Blu-ray layer 😆. Actually, maybe I should run WinDirStat or Grand Perspective over that. On the flip side, digiKam will probably offer much of the goodness I remember Google+ Photos having back when I used that. For me personally, being both cross platform and open source are huge pluses. It’s also helpful that it is one of the more cross platform KDE applications, as KDE off Linux/*BSD has become a thing.

As far as I can tell, there’s two problems to this plan.

Problem one is the file wrangling. My photos will remain on my file server with its redundant 8 TB of storage, and the SQLite databases of digiKam are best kept locally. This means that it will need its own backup management. A simple path is using my Mac and its Time Machine destination for that. How well sharing digiKam’s database files across different systems, I’m not sure, but in any case the trend has been for me to prefer one set of muscle-memory.

Problem two is transient image management. See, most of what I do with images fall under two categories: either my master repo, or some pipeline stage denoted above; or ‘a directory full of stuff I want to peruse’. I’m not sure that digiKam really handles that perusal factor. One of the things that I liked about running Debian and FreeBSD on my laptops, was being able to throw geeqie at that problem. Although, it might be viable to just create a staging area and export things.

In any case, it’s looking like digiKam is probably the best non-proprietary solution for the photo management hoopla that doesn’t involve me writing code to scratch itches.