A Machine for Building Muscle

Back in December I wrote that I was very happy with the Harambe resistance bands but intended to keep using the X3 bar and plate.

That last part didn’t age well.

In March I bought the Harambe CyberPlate. This was great and lived up to the hype. Encouraged by that, about a month later I bought the bar-previously-known-as-Manhattan and rods and black ropes. This too proved to be a significant quality improvement over my previous equipment. Two months after that I was back for the blue ropes and foam block.

Harambe System

My original Harambe purchase of the bands is, I think, still the most valuable. The reduced length of the bands and the intelligent assortment compared to what I’ve used previously directly contributes to a better, more efficient workout. The other components of the system, when compared to the X3 equivalents, are less about improving efficiency or functionality and more just quality of life improvements.

The rollers on the unfortunately named CyberPlate do make all the movements much smoother. After experiencing it, I find it hard to go back to a plate without rollers. But I do not think the that CyberPlate lets me lift heavier bands, or build more muscle faster, or anything like that. It should increase the service life of the bands, but that’s not much of an argument when one considers the price of bands compared to the price of the plate.

The bar is similar. I appreciate the greater width. I have come to prefer its independent bearings, rather than the X3 bar’s approach of having both sides move in unison. My deadlifting calluses have mostly gone away, despite the fact that I’ve progressed to heavier bands than what I was lifting when I was still using the X3 bar. (Partly this is because I’m using heavy enough bands that most of the time I need to use straps, but mostly I think it is because of the better knurling on the Harambe bar.) But, like the plate, this is more on the order of quality-of-life improvements rather than the Harambe bar being somehow more effective. The one exception is that on some movements – overhead press being the main one – I do notice my abdominal muscles being hit much more than they ever were with the X3 bar. I suspect this is due to the greater width of the Harambe bar and the independent bearings both requiring greater stabilization efforts on my part. I appreciate this. A strong core is important, and I hate doing sit-ups.

The sling system that Harambe uses offers some functional advantages over the hooks of the X3. The ability to change rope lengths and add spacers can help with progressive overload, but I feel like that advantage is pretty minor – especially if you get their orange band, which mostly replaces the contribution of the spacers in helping to progress to heavier bands. (Did I mention that I also ended up buying the orange and black bands at different points? I regularly use all six bands – individually or in some combination – for different movements.) The only area where I really take advantage of the modularity of the slings is when I put on the blue ropes, which allows me to back squat with a doubled band. I like doing back squats, but I do them after front squats. If I could only do front squats, I’d still be happy. So I don’t think the hooks vs sling question is worth spending much time thinking about. Both are fine, slings offer greater modularity, hooks provide a built-in stand, but ultimately it probably just comes down to personal preference.

If I’m home and bored and have a few minutes, I often find myself pulling the Harambe bar and plate out from their home under my desk and doing some exercise for a few minutes (this in addition to my more structured daily workouts with the system, which usually happens in the evening). I never did this impromptu work with the X3. I’m willing to accept that the responsibility for this failure lies more with me than the X3, but I think it also speaks to the difference in the experience of using both systems. When I get on the plate, grip the bar, and start pushing or pulling, it just feels like I am using well-made, top quality, professional equipment. Because I am.

All of these components cost a good deal of money (after my third order I made the mistake of asking ledger for my total spend with Harambe). Yet I don’t find myself regretting any of the purchases, and I think I would happily purchase all of them again (despite recent price increases meaning that most components are now more expensive than what I originally paid). That’s usually a good metric to assess an item’s value. But of course part of the point with a machine like this is that except for the bands, which are ultimately consumable, I should never have to purchase any sort of muscle building equipment again. I’m set for life.

I’ve noticed Harambe start to use the word “luxury” in some of their marketing. While I think that word does not properly apply to what they’re doing – “premium” would be more appropriate in the official lexicon – it implies a basic strategy to differentiate themselves from their competition that I agree with: their product is expensive, it may not complete the task more efficiently than more affordable offerings (except for the bands), but the extra thought and polish that goes into their components do craft a superior user experience, and once you use it everything else will seem less than.

The disadvantage to all this is that my shirts and jackets are all shrinking and I don’t want to replace them.

Stationery of the Jackal

My critique of frivolous details in The Day of the Jackal continues.

In the third episode, there’s a scene where our titular assassin is doing some computing and we see his pen in the corner of the frame. It isn’t in focus but is obviously a fountain pen. I immediately lose interest in whatever he’s doing and say to myself “Ah, bella penna.”1

A few shots later we get a close-up of the pen and notebook. The pen is clearly a Kaweco Sport. So, he could do better, but anytime I see someone use a fountain pen my opinion of them goes up. I can’t identify the notebook, but the paper is grid-lined, looks to be A6 in size, and it doesn’t seem to feather much with his ink. I approve. The nib is probably a Fine based on the size of the writing. Good choice. The ink is a rich blue. Always classy. I’m more of a blue-black man myself, but every now and again I can get down with a little Pilot Iroshizuku Kon-peki or similar. Maybe this Jackal character is all-right.

The Day of the Jackal: Stationery screenshot

I judge a man by his stationery.

Notes

  1. The recent Ripley TV show approaches perfection because, unlike The Day of the Jackal, it revels in all the minor details. (Also, that lighting.) One of the things on my aspirational to-do list for the past year or so has been to watch Ripley again and make a super-cut of every time someone says "bella penna". Because I'm weird like that. It is one of my favorite parts of the show. The pen doesn't really matter to the plot at all, yet at the same time it communicates most of what you need to know about the character. And anyone who EDCs a fountain pen fantasizes about others acknowledging it.

Tribulations of the Jackal

I’ve begun watching the new The Day of the Jackal TV show. I read the book years ago, and remember enjoying it – though I think Forsyth (like Trevanian) is one of those novelists for whom one’s memory of the books is usually better than the reality of them. I never saw the 70’s film. The only thing I remember from the 90’s film was how satisfying it was to watch Jack Black’s arm get blown off. (The Internet assures me that there was another 121 minutes of this movie, but those 3 minutes are all I remember.) All of which is to say, I went in with middling expectations. But the first episode was better than I expected. I’ve watched the second episode now, and it is as good as the first. Unfortunately, there are plot issues holding the show back.

I have notes.

The show opens with the titular Jackal assassinating some political candidate. The Jackal is shown to be meticulous, competent, and highly skilled. (This excites me because competency porn is my favorite porn genre.) In the aftermath of the assassination everybody else in the show’s world comments on how the shot should have been impossible. This communicates to the audience that the Jackal probably isn’t desperate for work, nor is he a replaceable cog like his fellow gig-workers at Uber and Doordash.

Then we see the Jackal go home to some fancy villa in Spain. Everything about his house, his clothes, his cars communicates to the audience that he is rich.

As he communicates with his existing client and a new speculative client via his not-Tails live distro we see that he has strict rules about how he works and how he interacts with clients.

Yet this new speculative client immediately asks him to break his rules and his response is basically “lol ok let’s go”. Why? It is never explained. He’s rich, successful, and has a well-respected brand. Usually the setup for this sort of plot is “He wants out but the big bad boss is going to kill him unless he does this one last job”. Or, “He wants out but he’s broke and this one last job will earn him enough to retire to a Spanish villa.” But the writers of the show don’t attempt any of that. This guy already has the Spanish villa. They could solve this problem with just a few lines of dialogue and about 30 seconds of screen-time, but instead they just traipse right past this gaping void in the very beginning of their plot.

In the second episode the speculative client requests a meatspace meeting. The Jackal says “That’s not going to happen.” (It’s one of his rules, you know.) To which the client retorts with something like “Then we’ll have to go elsewhere. I expected the Jackal to say “Have a nice day” and hang up. This guy should hold all the cards in the negotiation – he’s supposed to be the best, the client approached him, he’s not struggling to feed himself, he just completed a job that nobody else could do. Instead he agrees to the meeting. It makes no sense. In every interaction he rolls over for the client, giving up all leverage. This is not how successful freelance employment works. How has he lasted this long?

The client wants him to murder some tech-bro CEO because said tech-bro CEO is going to release a piece of software called “River” that promises to make all financial transactions publicly viewable. How? Magic. It is never explained. Somehow this software will just be released, and in the next second all transactions everywhere in the world are going to be in some central, public database, I guess? (I keep expecting some character to say the word “blockchain”, but am pleased to report that this has yet to happen.) This is not how fintech works. River is just the show’s MacGuffin, so it doesn’t really matter, but the writers make the deadly mistake of telling us just enough about it to shatter the fantasy of the story. I find this sort of thing super frustrating. The right way to setup a world-ending MacGuffin is to copy The Rabbit’s Foot from Mission Impossible 3: the only thing we are told is its codename and that it is bad. Nothing else to distract from the plot. (They later fucked this up by trying to explain it in the recent sequels, but, well, you either die a hero or you live long enough to see yourself become the villain.) The writers should have told us that tech-bro CEO is going to release a piece a software that will change the world, and left it at that. Don’t extrapolate when it isn’t necessary.

The client tells the Jackal that the murder has to happen by such-and-such a date, because that is the date the tech-bro has said he is going to release the software. So… killing this CEO guy is going to destroy the software? This is not how software development or deployment works. The date is coming up soon (soon enough that the Jackal scoffs at the deadline but then immediately agrees, because he doesn’t care about his rules and always does whatever the client wants). The tech-bro is shown making the television rounds on some sort of press tour, promoting the imminent release. So we have to assume that the software is already pretty much ready for release. The client is not trying to kill the tech-bro because they want to prevent him from writing the software. They just want to prevent the release. They have yet to explain how killing the CEO will accomplish this. Why not figure out what data center the guy stores his git repos in and destroy that? Nobody knows.

Prior to the meeting in episode 2 that should never have happened, the Jackal quoted the client a fee of $100 million (or maybe Euros or Pounds or Woolongs, I don’t remember). At the beginning of this meeting the client says “We’re still pretty far away on the price.” The Jackal ignores her and requests half now, half on completion. She says no, but she’ll give him $20 million now. To which the Jackal responds, great, he’ll get started as soon as he gets the $20 million. Dude. She has explicitly told you that she is not going to pay your requested fee. She has offered to put down 20% of what you’re asking. You have completed no negotiations about what the remainder of the fee is going to be. And your response is to start on the project anyway? This guy is a terrible business person. The client must be overjoyed at how much of a pushover the Jackal is.

When he first uses his not-Tails live USB flash drive, he does so on a public computer at an internet cafe in Paris. This threw me. I thought the show was supposed to be set in the modern day, not 2003. Are internet cafes really still a thing in Paris? I paused the show to look it up on Google Maps, and apparently they do still exist. Weird, but I can move on. The Jackal then moves on by navigating to his darknet web chat thing and logging in with his username and password. On a public computer. So, not worried about key loggers, I guess? Surveillance cameras in the cafe that capture the keyboard? Why even go through this whole thing with the internet cafe? Just use your laptop from a public wifi network. Later, he does insert the same USB drive into his personal laptop and log into the same chat service. So it isn’t like he is trying to keep all his work stuff off of his personal machine. The whole thing just seems odd, and it’s not like his being at the internet cafe drives the plot in any way. Maybe later in the series they’ll reveal that security cameras in the cafe captured him and this will become relevant to the plot. But even then, they could accomplish the same thing by having him login from his personal machine while sitting at McDonald’s after ordering his Royale with Cheese.

When he finishes with the public computer, he stands up and picks up the snacks that he was munching on and the cups he was drinking out of. I think to myself “Oh, neat, this guy’s tradecraft is so good that he’s going to take this trash with him and dispose of it elsewhere so that he doesn’t leave any DNA at the cafe!” But then he just tosses it in the trash can inside the cafe before leaving. I cried a little inside. What was the point of even writing the trash into the show if not to communicate something about the character with it? I really hope this whole cafe scene comes back later in the series and becomes some sort of linchpin in the good guy’s investigation.

The MI6 lady who is trying to identify the Jackal gets a lead when she figures out that the backpack he is seen carrying is from some sort of small-batch Kickstarter thing that was only sold at two shops in jolly-old-England. So our (anti-)hero, who is shown to be so meticulous in his planning and a master of disguise, is dumb enough to walk around with some couture backpack of which only a couple hundred were ever sold? It strains credulity. I checked, and the first episode aired on 2024-11-07, while Brian Thompson was killed on 2024-12-04 so it wasn’t like this plot point was sloppily shoe-horned in at the last minute to make fun of Peak Design – which was my first thought.

Anyway, I’m enjoying the show. I just need to pause it three or four times an episode to rant about how stupid some minor plot point is. It’s frustrating because all these little unimportant things hold it back from being a good show. I hope they improve the writer’s room for the second season.

Simpson Synthetic

I bought a Simpson Commodore X2 badger brush in 2013 and shaved with it for ten years. This replaced the cheaper Vulfix Pure badger brush I mentioned 2008. In 2023 I decided that the Commodore had shed enough hairs and it was time to replace it. I bought the Simpson Trafalgar T2 synthetic brush, mostly just because it was cheap and I thought it would be worth trying for a bit before spending more on another fancy badger brush. I’ve been using that synthetic brush for 24 months now and have no complaints.

Using it is a bit different from using a badger brush. I always start by wetting my brush under a running faucet. With a badger brush, my habit was then to give the brush a few vigorous shakes. That resulted in the correct amount of moisture being left in the hairs to lather the soap. After that amount of shaking, the synthetic brush is practically dry. I had to retrain myself to only give it one or two gentle shakes to remove excess water.

When I circle a badger brush on my soap, I’m just picking up the soap. The lather doesn’t develop until I take the brush to my face. With the synthetic brush, the lather develops when circling the brush on the soap. I then use the brush to paint it on my face. It’s a slightly different action, requiring less pressure, which is better suited to the relatively stiffer hairs of the synthetic brush.

The quick drying nature of the synthetic brush probably makes it nice for travel. Personally I never bother packing a shaving brush. Instead I just use my scouring cloth to lather up when on the road.

Over these past two years I have not noticed any real disadvantages to the synthetic brush. Considering the price difference – I paid $75.39 for the Commodore badger brush (in 2013 dollars) and $27.40 for the Trafalgar synthetic brush (in 2023 dollars) – I’d say the synthetic was a good buy. I’ll stick with it.

You Will Die

We are now in a period of crisis not for a specific nation but for humanity, inhabiting a planet that is becoming less and less habitable. A new kind of heartbreak can be felt in The Iliad’s representation of a city in its last days, of triumphs and defeats and struggles and speeches that take place in a city that will soon be burned to the ground, in a landscape that will soon be flooded by all the rivers, in a world where soon, no people will live at all, and there will be no more stories and no more names.

You already know the story. You will die. Everyone you love will also die. You will lose them forever. You will be sad and angry. You will weep. You will bargain. You will make demands. You will beg. You will pray. It will make no difference. Nothing you can do will bring them back. You know this. Your knowing changes nothing. This poem will make you understand this unfathomable truth again and again, as if for the very first time.

Emily Wilson, in the introduction to her excellent translation of The Iliad.

Luncheon

Calibre News

I follow local news – news from my city – daily via RSS. For anything wider in scope, I find that weekly is the correct cadence. Anything more frequent is generally a waste of time and not conducive to living life. I get my non-local news via Calibre News.

Calibre ships with a large number of recipes, which are Python modules that tell it how to download content from websites. (One can create their own recipes, but I have not bothered to do so.) When a recipe is run, Calibre fetches all content and creates a nicely formatted EPUB. Often the recipe is able to bypass paywalls, making this the best way to freely read online news.

The news functionality has a scheduler which can be used to fetch content from selected recipes in an automated and periodic fashion. It can take some experimentation to figure out what schedule makes sense for which source, as there is not any sort of duplication controls. If the source only posts updates weekly, but you have Calibre scheduled to run the recipe daily, you will end up with 7 identical EPUBs at the end of the week.

Recipes can also be executed via the command line by passing a recipe name and output filename to ebook-convert. This allows you to setup your own scheduler using cron or systemd timers.

$ ebook-convert "The Economist.recipe" .epub

Calibre includes configurable controls for how many issues of a news source you want to store. You can tell it to only keep up to 3 issues, or keep all issues up to 30 days old, for instance.

Once the EPUB is in the library, Calibre takes care of automatically pushing it to connected devices and deleting old files.

The author on these files is set to calibre, causing them to be stored within the library in a calibre/ directory. My library is stored as a git-annex, but unlike all the actual books in my library, I consider these downloads to be ephemeral. I do not want them tracked by git, or pushed to my special remotes. I achieve this by adding calibre/ to my .gitignore file.

Each of the files is tagged with news, so I can easily exclude them from my book searches, or filter the library for only them.

The two recipes I keep scheduled are those for The Economist and Foreign Affairs. The Economist is scheduled for every Friday. Foreign Affairs is scheduled for every 60 days. What this means in practice is that I open Calibre every Friday morning and plug in my eReader. Within a few minutes Calibre will download my weekly news from The Economist, and Foreign Affairs every other month, and sync them to the device. I read those EPUBs over the next week.

Previously I also scheduled downloads for The Diplomat, but I found that The Economist’s Asia coverage was adequate enough for my needs. I’ve also used Calibre to download The Atlantic and Harper’s, but these days I rarely find myself in the mood for long-form articles – I’d rather spend that time reading a book. Foreign Affairs is the exception here, but it is a worthy one. Between the one and the other I am mostly consuming facts, which I gather is not the case for many people.

Excepting the city news in my RSS reader, my news consumption outside of these EPUBs is almost zero. This has been working well for me. I judge my success by the number of memes I do not understand.

Link Log 2025-06-14

Cyber City Odeo 808 - Cyberpunk UI

Red caps and green beards

Living with a Rohloff Hub

News That Stays News

The Nightly

Worm

Take Five (Dave Brubeck, 1964)

At Play in the Fields of the Cows

Link Log 2025-04-23

Oman riding January ‘25

Riding in Saudi Arabia - Part 1

Riding in Saudi Arabia - Part 2

A Brief Rant on the Future of Interaction Design

Food fermentation in space: Opportunities and challenges

Fabulous, Fabulous, Fabulous: An interview with Ty Yorio, Citadel Security Agency

Battery Townsley

Pilot Elite

I’ve been attracted to the form factor of the Kaweco Sport for a while, though the low capacity of the piston converter is a bit of a turn off. Last year when they released the aluminum body piston filler my attraction increased, but those pens cost more than I want to spend. Then at the end of the year they released a resin version of the piston filler for a lower price, and I found a sale with a good discount during the holidays. I bought one.

I like the pen. I especially like to carry it in the sleeve pocket of my MA-1, because I like the idea of living in a world where people walk around with fountain pens in MA-1s. Be the change you want to see in the world. Unfortunately, I scored that Pilot Vanishing Point on eBay at the end of 2023. That has been my daily writer ever since, and purchasing the Kaweco Classic Sport Piston Filler made clear that the Vanishing Point has ruined me for other pens. Specifically, on two points.

First, the Vanishing Point has an 18k gold nib. The Kaweco Sport does not. Kaweco’s steel nib isn’t bad, but it isn’t gold, and when I write with it I often find myself thinking “I could be writing with the VP instead.” It isn’t scratchy, but it isn’t not scratchy.

Second, the cap of the Kaweco Sport screws on. I journal daily, but that’s the only point at which I am sitting down with the intention to write. Any other time I grab a pen during the day it is to jot down some quick note. The clicky clicker of the Vanishing Point is extremely convenient for that. Needing to take the time (and two hands) to unscrew the Kaweco’s cap is comparatively annoying.

But I do really like the form factor of the Kaweco Sport. I wished for a pocket pen with a gold nib and a non-threaded cap. And then the universe opened my eyes to the Pilot E95S. At 4.7” when capped, it is a little longer than the Kaweco’s 4.1”, but it is still pocket sized. And it has a gold nib. And the cap is not threaded. And it is expensive.

So I went searching on eBay for a used one. I looked periodically for a few weeks and nothing turned up for an acceptable price. But the E95S is a modern re-issue of a classic pen called the Elite. Once I figured out that I should search for “Pilot Elite”, a plethora of reasonably priced options appeared. This is how I came to purchase my first vintage fountain pen.

Pocket Pens

The pen is everything I wanted it to be. The Pilot Vanishing Point is still my favorite, but the Elite is a close second.

Removing and posting the cap does take longer than clicking the Vanishing Point, but is still quicker than unscrewing anything, and it is immensely satisfying. All the reviews I read of both the Elite and the E95S mentioned how nice the action of uncapping, capping and posting the pen feels. They weren’t wrong. The taper of the body and the steel structure within the cap – a sort of leaf spring – provides the feeling of a smooth, perfect press fit. It is mildly addicting.

The nib is great, as expected. The Elite was available with both 18k and 14k gold nibs. I bought a 14k in fine, and it feels just as smooth and pleasant as the 18k fine nib in the Vanishing Point. Maybe a hair thinner, which makes me want to use a slightly wetter ink. But my two favorite inks are still Noodler’s Heart of Darkness and Noodler’s Army Air Corp, and I enjoy both inks interchangeably in both pens.

The code at the base of my nib is H977. This means the pen was manufactured in Hiratsuka in September 1977.

There are a few Elites on eBay for $30-40. If the pen is that cheap, it is probably one of the steel nib versions that was made in Korea. The Japanese gold nib versions are more expensive, but I found that if you do not care about a few scratches – which, for a pocket pen, I do not – there are plenty of attractive options in the $50-75 range. I think that’s a great deal for this level of quality. I already want to buy a second.

FMP

It fits in the MA-1, too.

Link Log 2025-04-04

Return to Naoshima

Inside Brian Eno’s Studio

The Age of the Double Sell-Out

The Obsidian Turtle Governs the North

‘vibecoded’ saas are a privacy nightmare

China Miéville says we shouldn’t blame science fiction for its bad readers

Last Boat Home

Long have I wished for a good quality USB power bank with a switch.

Sometimes I want to leave a device connected to the battery, but powered off. Last November I stopped looking for a power bank and instead bought a couple short cables with switches. I plugged one into one of my trusted Anker power banks, slapped a couple ranger bands on there, and have been living the dream ever since.

USB Rocker Switch

There’s nothing quite as satisfying as a good rocker switch.

Link Log 2025-02-20

Good Sign-Offs

Why Ice Delays Recovery

Alien Romulus - Retro Sci-Fi UI

The hardest working font in Manhattan

Analog vs. Digital? Nah. PC vs. Hardware.

Voters Were Right About the Economy. The Data Was Wrong.

3, 2, 1, Let's Jam.... Bebop Bounty Big Band

Cloning Backup Drives

Continuing with the theme of replacing drives, recently I decided to preemptively replace one of the external drives that I backup to via rsnapshot – or, more specifically, via cryptshot. The drive was functioning nominally, but its date of manufacture was 2014. That’s way too long to trust spinning rust.

rsnapshot implements deduplication via hard links. Were I to just rsync the contents of the old drive to the new drive without any special consideration for the links, it would dereference the links, copying them over as separate files. This would cause the size of the backups to balloon past the capacity of the drive. Rsync provides the --hard-links flag to address this, but I’ve heard some stories about this failing to act as expected when the source directory has a large number of hard links (for some unknown definition of “large”). I’ve been rsnapshotting since 2012 (after a pause sometime after 2006, apparently) and feel safe assuming that my rsnapshot repository does have a “large” number of hard links.

I also do not really care about syncing. The destination is completely empty. There’s no file comparison that needs to happen. I don’t need to the ability to pause partway through the transfer and resume later. Rsync is my default solution for pushing files around, but in this case it is not really needed. I only want to mirror the contents of the old drive onto the new drive, exactly as they exist on the old drive. So I avoided the problem all together and just copied the partition via dd.

Both drives are encrypted with LUKS, so first I decrypt them. Importantly, I do not mount either decrypted partition. I don’t want to risk any modifications being made to either while the copy is ongoing.

$ sudo cryptsetup luksOpen /dev/sda old
$ sudo cryptsetup luksOpen /dev/sdb new

Then I copy the old partition to the new one.

$ sudo dd if=/dev/mapper/old of=/dev/mapper/new bs=32M status=progress

My new drive is the same size as my old drive, so after dd finished I was done. If the sizes differed I would need to use resize2fs to resize the partition on the new drive.

If I was replacing the old drive not just because it was old and I was ageist, but because I thought it may be corrupted, I would probably do this with GNU ddrescue rather than plain old dd. (Though, realistically, if that was the case I’d probably just copy the contents of my other rsnapshot target drive to the new drive, and replace the corrupt drive with that. Multiple backup mediums make life easier.)

Window Film Flood

I have mentioned previously that I prefer the flood lens on my Elzetta Alpha. My primary use case for an EDC light is lighting up a room – or the dark recesses behind furniture. Neither case calls for a spotlight with a lot of throw.

Last year I decided to finally allow myself to buy a ZebraLight headlamp, which I had been jonesing over for years. I knew I wanted one that ran on 18650 batteries, and I knew I wanted a warm temperature. The final decision required to land on a specific model was whether I wanted a lens with flood or a lens with throw. Unlike an EDC pocket light, with a headlamp I was pretty sure I wanted something with throw. My use case for a headlamp is to light up the ground a ways in front of me, not what is already right at my feet. Before finalizing my decision, I did a bit of searching on the World Wide Web to see if anyone else out there had a good argument against my inclination. They did not. I bought the H600c Mk IV.

However, what I did find is that a lot of the flashlight nerds buy lenses with throw, and then make them more floody by applying window privacy film. Specifically, the D-C-Fix “Milky” film was preferred. I thought this sounded great. Get your torch with a lens that offers nice throw, put a film cutout on there if you decide you want more flood, rip off the film when you decide you want more throw. Rinse and repeat.

I’ve been using my ZebraLight headlamp for 10 months now and haven’t covered the lens with the film once. For my applications, the throw lens is perfect.

But I did try using the film to cover the standard throw lens on the Elzetta Alpha. I switched back and forth between that and the flood lens a bit and decided I preferred the standard lens and film combination. Compared to the actual flood lens, it is just a little less floody, with a little more throw and bit more of a spot. I’ve been rocking that for the past 10 months, and I’m still really happy with it.

Elzetta Standard Throw Lens with D-C-F Milky Window Privacy Film

The moral of the story is that, if given the option, I probably won’t buy a flood lens again. Using the film lets me purchase one lens and play in whichever world I want. Also I’m afraid of commitment.

I spent the afternoon at this year's rare book fair.

In contrast to last year’s fair, at this event I only spotted one Ed Abbey book and maybe 3 or 4 Steinbecks. Instead the strategy shifted to the Beats. Plenty of Ginsberg, Snyder, and a first of Naked Lunch that tempted me.

One booth had a pile labelled “assorted tabloids” in which I found a copy of Search & Destroy No. 4. I took a photo of it, knowing that Vale was tabling somewhere in the Zine Fest section. When I later found him I showed him the photo and told him that when your own work shows up at the antiquarian fair, it means you’re old.

Framework Expansion Selection

When I ordered my Framework 13 I chose their recommended selection of expansion cards: 2 USB-C cards, a USB-A card, and an HDMI card.

After I began using the laptop I realized that the HDMI expansion card provided no utility. At my desk both at home and at work I run everything – power, peripherals, Ethernet, and display – through a single USB-C cable. The only time I’d need HDMI on the laptop itself is if I was plugging into a TV in a hotel room or a projector in a conference room. I cannot recall the last time I wanted to do either of those things. The need for external-display-while-portable is extremely rare for me.

So I went back to Framework and ordered a third USB-C expansion card and a second USB-A expansion card. I figured I would either run 3 USB-C and 1 USB-A, or 2 USB-C and 2 USB-A. Having both options seemed worthwhile. (None of the other expansion card options have appealed to me yet.)

Last week I needed to decrypt a file while away from my desk. I plugged my YubiKey into the USB-A expansion card1, and it didn’t read. I tried plugging in a different USB-A device, and it also did not read. I ejected the USB-A expansion card, slotted it back in, and then it worked. The expansion card did not look or feel loose before I ejected it, so I don’t know what the problem was. Initially this was troubling, as during my pre-purchase research I did come across (seemingly rare) reports of expansion cards completely dying shortly after purchase. I was relieved to find that this was an easy fix and nothing was broken.

This was my first time ever ejecting one of the expansion cards, and my first time installing one since I removed the laptop from the box and assembled it. I wasn’t sure if mucking with the slots would require a reboot, but I watched dmesg as I did it and slotting the expansion card back in read just like plugging in any plug-and-play USB device.

For now I have decided to replace the HDMI card with USB-A. I will run with two USB-A and two USB-C. I am not a USB-C absolutist and still have plenty of USB-A devices in my life that work perfectly fine and do not need to be replaced. Two ports each ought to useful, and it gives me a backup of both in case one expansion card does die at some point.

Notes

  1. When I replaced my YubiKey last year I did evaluate if it would be more appropriate to move to a USB-C model. I decided against it.

Tube Talk

I enjoy Jan Heine’s blog. I’ve been reading it regularly since, I think, 2012. I learn something new from most posts. His book on all-road bikes is great. When I saw his post titled Why TPU Tubes are Better for the Earth in my feed reader, I expected to learn something about the difference in manufacturing inputs or emissions between butyl and TPU tubes. Instead I found myself reading crazy talk about how everybody goes through butyl tubes like candy and how they’re so hard to patch that nobody bothers. I guffawed. Then I said “what the fuck”. Out loud. With my voice.

In theory, butyl tubes can also be patched. To make this worth while, it’s best to collect a pile and fix them in one large batch. Set up an assembly line of sorts…

Let’s face it: Those of us who patch our butyl tubes usually have a pile of tubes in the basement, waiting for the day when we’ll get around to patching them.

I cannot fathom an individual having enough punctured butyl tubes to justify considering an assembly line repair process. This would take me, like, a decade to collect.

The last time I had a flat was on the Oregon coast in June 2023. The time before that was when I picked up a roofing nail on Potrero Hill that tore open my tire in December 2022. I think next on the list was about 6 months before that, when I flatted twice on the same road in Napa county – not because I failed to clean out debris after fixing the first one, but because some of the roads up there have been so destroyed by heavy trucks rebuilding after the fires that I just got two punctures in two different parts of the wheel a few blocks apart. These events are rare enough that I actually remember them.

When I do get a flat I just take out my patch kit and fix it. It takes like 5 minutes. If the weather outside is frightful, or if I’m on a schedule and don’t have those 5 minutes, I swap in my spare tube. Then when I get home (or to camp) that evening, I fix it.

This concept of not addressing a problem that is so quick and easy to correct, and instead letting these problems pile up until you have a basement-full, is difficult for me to understand. It’s like continually buying a new pair of underwear every day because doing laundry is too hard. It suggests to me a moral failing which, if extended to all the similarly small problems that one regularly encounters in life, will lead to collapse of our species.

That’s where TPU tubes score. Patching them is easy: Just wipe the puncture with alcohol and stick on a self-adhesive patch. That’s all. It’s so easy that you could do it by the roadside. The alcohol wipes are sealed, so they don’t dry out—your patch kit lasts forever, ready when you need it.

Plot twist: I patch butyl tubes by the roadside.

Those little foil packets of alcohol wipes are not impermeable. Ask anyone who has neglected a medical kit for a few years, only to come back and find that all the prep pads are dry. They will last a long time when stored in a typical indoor environment. They will last less long when carried out in the world, exposed to varying temperatures, humidity, sun, rain, etc. Tube repair kits, like human repair kits, need to be carried outside. If I start carrying a TPU patch kit, the alcohol wipes are going to be on a rotation schedule, just like my vulcanizing fluid. Only then will TPU patch kit last forever. Just like my butyl patch kit.

The new Rene Herse TPU tubes are neat. They pack down to a much smaller size than butyl tubes. I am interested in using one to replace the spare butyl tube I carry under my saddle. To this end, I have been running one in the front wheel of my new bike for about a month and a half. I do not intend to regularly use the tubes in my tires, but I can’t carry something as a backup until I have a few months experience actually using it1.

I will test the TPU tube for at least another month and a half before I decide if it will replace my spare butyl, but the preliminary results are in. I have noticed no difference in the ride quality. I have noticed no difference in the speed with which it loses pressure2. I have noticed no different in the puncture resistance3. This is all great news. If the TPU tube continues to perform exactly like a butyl tube, but store more compactly, I will happily carry it as my spare. They are light and compact enough that the next time I go on tour, I may even carry a second or third spare.

Notes

  1. It is an axiom that carrying emergency supplies which you have never actually used is idiotic. I try not to be an idiot.
  2. When I first installed the TPU tube, it lost about half its pressure in about 24-hours. I pumped it back up and the same thing happened again. I threw a wrench on the valve core and was able to tighten it about 1/8th of a turn. Since then it has held pressure the same as the butyl tube in the rear wheel. I think the TPU tube shipped from the factory with a loose valve core. If I do choose to carry one (or more) as a spare, I will crank down on its valve core as soon as I received it to ensure that I won't have to think about that whenever I eventually need the tube.
  3. Spoiler alert: I have had zero flats on this bike since it was built 10 months ago.

Git Annex Recovery

Occasionally I’ll come across some sort of corruption on one of my cold storage drives. This can typically repaired in-place via git-annex-repair, but I usually take it as a sign that the hard drive itself is beginning to fail. I prefer to replace the drive. At the end of the process, I want the new drive to be mounted at the same location as the old one was, and I want the repository on the new drive to have the same UUID as the old one. This way the migration is invisible to all other copies of the repository.

To do this, I first prepare the new drive using whatever sort of LUKS encryption and formatting I want, and then mount it at the same location as wherever the old drive was normally mounted to. Call this path $good. The old drive I’ll mount to some other location. Call this path $bad.

Next I create a new clone of the repository on the new drive. Most recently I did this for my video repo, which lives at ~/library/video.

$ git clone ~/library/video $good/video

The .git/config file from the old drive will have the UUID of the annex and other configuration options, as well as any knowledge about other remotes. I copy that into the new repo.

$ cp $bad/video/.git/config $good/video/.git/config

The actual file contents are stored in the .git/annex/objects/ directory. I copy those over to the new drive.

$ mkdir $good/video/.git/annex
$ rsync -avhP --no-compress --info=progress2 $bad/video/.git/annex/objects $good/video/.git/annex/

Next I initialize the new annex. It will recognize the old config and existing objects that were copied over.

$ cd $good/video
$ git annex init

At this point I could be done. But if I suspect that there was corruption in one of the files in the .git/annex/objects directory that I copied over, I will next tell the annex to run a check on all its files. I’ll usually start this with --incremental in case I want to kill it before it completes and resume it later. I’ll provide some integer to --jobs depending on how many cores I want to devote to hashing and what I think is appropriate for the disk read and transfer speeds.

$ git annex fsck --incremental --jobs=N

If any of the files did fail, I’ll make sure one of the other remotes is available and then tell the new annex to get whatever it wants.

$ git annex get --auto

Finally, I would want to get rid of any of those corrupt objects that are now just wasting space.

$ git annex unused
$ git annex dropunused all

Beginning Framework

Near the end of 2024 I decided it was time to replace the Thinkpad X270. I still think the X2{6,7}0 is Peak Laptop. Unfortunately, as software gets worse, I need more CPU.

Everything on the market seemed inferior in one way or another to the X270. I considered:

After about two months of shopping around – including buying and returning an X1C Gen 12 from eBay – I settled on the Framework 13. Specifically, the DIY model with AMD Ryzen 5 7640U CPU, 2.8K matte display, and 61Wh battery. (I purchased the SSD and RAM separately.)

I have notes.

The keyboard is not as good as that on the X270 (which is not as good as that on older Thinkpads). But it seems to be on par with other modern laptop keyboards that I’ve seen. There is room for improvement, but it is acceptable. I’ve seen (and felt) much worse.

The hinges are not as good as on a Thinkpad. They feel nice when you move the lid – the feel is about the same as the hinges on my X270 – and they do hold the lid in position. But when typing with gusto, the lid shakes a bit. I did not notice this until I tested out the webcam. The movement of the lid is noticeable in the image. I practically never use a cam – if asked about this when on a call, I reply that I exist in a black hole devoid of light, warmth, love, etc – so this is acceptable to me.

The speakers are incredibly bad. Traditionally, Thinkpads had the worst speakers of any laptop, but Framework has lowered the bar here. I tried messing with EasyEffects and various scavenged presets. I suppose this made the speakers sound slightly less bad. But they’re still really bad. Fortunately, this is firmly in the category of things I do not care about. I tickle my eardrums with headphones when at a desk and with earbuds when mobile. About the only time I use the speakers on my laptop is for things like a countdown timer with a bell, for which shitty speakers are just as adequate as nice speakers.

I’ve not had the Framework 13 for long enough to comment on battery life. Less-than-stellar battery life was one of the main critiques I heard before purchasing the machine (though often it is not clear what specific machine generation and configuration the critic has). Framework explicitly says not to use TLP, which is unfortunate for me. I first installed TLP shortly after its initial release in 2010 and haven’t thought about it much since. I am trying to grok this brave new world of TuneD and power-profiles-daemon and subpar battery control. We’ll see how that goes.

The design aesthetic of the Framework 13 feels very mediocre. I find the aluminum slab design language pioneered by Apple and now emulated by everyone else to be inferior to the Thinkpad aesthetic. I would rather Framework copy Sapper than Ive. But this is purely a personal aesthetic judgment that does not translate into functionality. I have no complaints about the actual build quality of the machine (yet). Eventually I may stickerbomb the chassis to make myself feel better about it. I’d be embarrassed if someone saw it and mistakenly thought I was an Apple customer.

I point out what I dislike because that is easier than enumerating what I like. Everything else about the laptop is pretty nice. I am pleased with the purchase overall. The 3:2 aspect ratio of the Framework 13 screen is especially great – at least for how I use a computer (which can mostly be summed up as “reading and manipulating text”).

The promise of the Framework is in its modularity and repairability, which hopefully means that any shortcomings can be corrected over time. One of the small things that decided my purchase was seeing that Framework actually builds replacement screws into the machine. In my head the Thinkpad X260 and X270 are basically the same machine, and I used that same machine for nine years. My hope is that the Framework 13 can at least match that, and be as boring as possible during that time.

Link Log 2025-01-17

“Best of the Best” Provides New Views, Commentary of Shuttle Launches

Public Domain Image Archive

Landing The Nostromo

Bike Touring Stretches

right to root access

Stone talk

ROLER11 USAF C-130H Hercules

Optimizing Local Munitions

As previously mentioned, I use myrepos to keep local copies of useful code repositories. While working with backups yesterday I noticed that this directory had gotten quite large. I realized that in the 8 years that I’ve been using this system, I’ve never once run git gc in any of the repos.

Fortunately this is the sort of thing that myrepos makes simple – even providing it as an example on its homepage. I added two new lines to the [DEFAULT] section of my ~/library/src/myrepos.conf file: one telling it that it can run 3 parallel jobs, and one teaching it how to run git gc.

[DEFAULT]
skip = [ "$1" = update ] && ! hours_since "$1" 24
jobs = 3
git_gc = git gc "$@"

That allowed me to use my existing lmr alias to clean up all the git repositories. The software knows which repositories are git, and only attempts to run the command in those.

$ lmr gc

After completing this process – which burned through a lot of CPU – my ~/library/src directory dropped from 70 GB to 15 GB.

So that helped.

It Should Happen To You analyzes the disease that is influencer culture.

1954.

Another favorite is A Face in the Crowd (1957), which explores the danger of social media influencers becoming Populist politic figures.

Link Log 2025-01-02

Ethos

Gear 2025

The Work Itself

Deliberate Oxymorons: An Interview with Bruce Sterling (Part 1)

Konya wa Hurricane (Priss and the Replicants, 1987)

Musa Bey, Legion of Honor Centennial