fogbound.net




Sun, 10 Nov 2024

Obsolescence

— SjG @ 11:06 am

[insert old man yelling at cloud meme here]

Everybody’s pissed off because things are crappy and they used to be better. I know I certainly am. But it’s not “regulations” or “wokeness” that forces me to buy a $56 part to fix the dishwasher because a 5¢ switch embedded in an un-openable assembly burned out.

When we first moved into this house twenty five years ago, there were plumbing problems I had to fix. The kitchen faucet was leaking. In those days, there was B&B Hardware, an old style hardware store. I brought the weird brass fitting from the faucet to B&B, took a number at the plumbing desk, and eventually talked with the guy there. He cast a sardonic eye on the fitting, and said “You’ve got a 1950s Moen. In the 60s they changed this to have an additional flange right here for an o-ring, and in the 70s they stopped making this style altogether. The good news is I have a compatible part.” He went up on his ladder and sorted through some boxes and found me a part. It was expensive — nearly 15 dollars. But it worked.

Well, the kitchen sink’s been redone in the interim, and the faucet replaced with a very low-end wall-mount double-handle bridge faucet which lasted about seven years before being replaced by the new (yet not parts-compatible) version. And the new one’s leaking. So I took it apart, grimaced at the cheapness of the thin metals and plastic fittings. I headed to Home Depot, since B&B is long gone. At the big box, I got a shrug from the worker. No, there aren’t parts for those. They don’t sell that model, but new kitchen faucets are on aisle 6, and washers and stuff are on aisle 11, bay 9.

When I finally found washers and o-rings on aisle 12 bay 15, they didn’t have a replacement for the cracked plastic compression retaining ring. So I bought new o-rings in the hope that screwing down the conical ring cap tightly would continue to work. I went through the self-checkout, where the scanner pulled up the wrong price for the item and the employee that came over sneered at my mask and low-key accused me of shoplifting when he saw the old, broken part I’d brought along.

Eventually, it worked out. The sink is not leaking, I have 8 more of the o-rings (potentially saving me from buying another $2.92+tax set next time, if the smog doesn’t degrade them in storage), and I can go on to do other chores.


Sun, 28 May 2023

Caution!

— SjG @ 9:43 am

I recently came across this site for creating warning signs of various sorts. It was intended for use by those who operate laboratories and research facilities. It was pointed out to me because it has a random sign generation function, which creates some funny and absurd signs, perfect for your surrealist academies.

My mind, however, went to Shakespeare.


Sun, 9 Apr 2023

Ugh, that Old Yak-shaving Refrain

— SjG @ 12:28 pm

Went to update an image gallery with some new pictures. I wrote the gallery generating code four years ago, but the version of PHP on the server has been updated and one of the libraries I use evidently relies on deprecated syntax ($string{$char_index} for the curious, which now would be $string[$char_index]). So I tried to check out the repo from GitHub, only to find they’ve updated their SSH host keys, so I need to fix that before I can fix the code problem. So I tried to update that, but had packed my Yubikey off in a drawer in the office…


Sun, 2 Apr 2023

Old Limericks

— SjG @ 10:27 am

Going through my old scribbled notes, I came across these from 1994:

A limerick writer I’m not,
for rhyming no talent I’ve got.
I know to count feet
or syllabic beat,
but how many lines I’ve forgot.

The limericks that Tina once wrote
with one affliction were smote:
They ended so fine,
on next to last line

A poet there was from Bombay,
whose limericks were strange in one way:
three lines they’d have

There is a young gal from Purdue,
whose limericks all end at line two.

There once was a man from Verdun,

(and then I seem to recall there’s a limerick about a guy named Nero…)


Sun, 19 Mar 2023

Another Software Systems Plaint

— SjG @ 10:33 am

Back in the 80s, I worked in Aerospace and had an old engineer tell me “nobody’s really figured out how to write software.” I scoffed. Totally ridiculous, I thought. He was researching a transition to Ada. I was writing tons of C code.

Now, much older, and perhaps somewhat wiser, I see his perspective. We’ve developed a lot of ways to try to deal with software. There are different approaches, with principles of abstraction, structure, and documentation. I tend to believe that most software methodologies are too discrete. Once you’ve maintained an active codebase for a business over a few decades, you discover that software design principles are great for coding but bad for business. It’s very difficult for a coder to understand which aspects of a business are virtually immutable (“the canonical catalog is Bob’s PDF notes from his meetings with manufacturing”) versus things that change (“yeah, we computed sales bonuses this way for the past twenty years, but now we’re changing that on a quarterly basis”). Often, the people running businesses don’t consciously know these unwritten laws themselves, and only reveal them when a change is suggested. Heaven help you if the change was implemented somewhere first.

Methodologies for business and software come and go, whether they’re TQM or Agile or just “move fast and break things.” I definitely see the advantages of the tendency away from front-loaded planning and towards flexibility and accepting change, but it doesn’t do a good job of managing the complexity of history. How do you maintain and document all of the Chesterton’s Fences in a continuously evolving codebase? When new components are bolted on to older systems, you accumulate a lot of weird adapters to make things fit. Sometimes, intermediary components go away, and you’re left with layers of adapters between things. Eventually, the solution might be the same as it would be for an analogous plumbing problem: rip it out, and start over — but, to overextend a metaphor, when the system is a million lines of code instead of a few thousand meters of piping, the solution may end up replacing the entire building so you can install a faucet.