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.


Tue, 13 Aug 2024

Another Dependency Hell

— SjG @ 7:01 am

So Google requires an Android app be updated to a later API version if it’s to be distributed. No version 33 for the Play Store! That means a few gigabytes of downloads for the updated Android Studio and Android v35 SDKs.

Unfortunately, this Android app is built in Ionic/Angular/Capacitor. So we have to update from Ionic 7 to Ionic 8, Angular 16 to Angular 18, and Capacitor 5 to Capacitor 6. But that means we can’t use Nodejs 16 anymore. Which means that the Docker container we use for building needs to upgraded from Ubuntu 18.04 to at least 20.04.

We haven’t even gotten to the obsoleted Capacitor plugins yet. @capacitor-community/barcode-scanner has been deprecated in favor of @capacitor-mlkit/barcode-scanning, and I’m sure there are others. I’m just hoping the APIs are at least reasonably similar.

Once again, my plaint is: why didn’t I become a plumber?


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…


Sat, 19 Sep 2020

Goodbye Google

— SjG @ 11:08 am

I’ve finally removed the Google Ads and analytics from this site.

Many years ago, I thought it mattered where people went on the site and which posts were most useful. I also had the delusion that there would be enough visits that the ads might help pay for the hosting.

Ah, to be young, naïve, and full of hope. That ship ship has certainly sailed.

Anyway, there’s no point in cluttering up the blog with surveillance crap. I’m just sorry I left it there for so long.


Fri, 14 Jul 2017

Surveillance, Big Data, and Big Stupidity

— SjG @ 4:21 pm

(This post was started in March of ’16, revised later.)

Recently, a friend I’ll call Cassie was on a trip abroad to a country I’ll call Absurdia. She went to access her Google mail account, and was promptly locked out by the clever security system. It had determined that someone was accessing the account from overseas. Presumably, she was asked one or more security questions that she couldn’t answer (“When did you first create this account?”) along with one or another of her own security questions. OK, bad on her, you might say, for not remembering the answers to her security questions, and hooray for adaptive security that protected her account from unauthorized access!

But let’s examine that for a moment. Adaptive security recognized that the access was from a new place — not merely a different computer or IP address, but a different country. Great, makes a lot of sense. But if we step back to the weeks before her departure, Cassie was being served ads for hotels around Absurdia. She was being served ads for taxi companies in Absurdia, airline bargains for nonstop flights to Absurdia, and online language courses in Absurdese. You see, Google processes GMail messages, and extracts keywords and knowledge in order to serve ads that the user will find interesting1. When Cassie emailed people about her upcoming trip to Absurdia, Google’s algorithms understood enough to start serving travel related ads for the place. Google “knew” that Cassie was going to Absurdia. But this knowledge was not propagated beyond the ad-serving system.

Back in the 80s, my sister did a semester abroad in Rostock, in what was then the German Democratic Republic — East Germany. There was a very limited exchange program between Brown University and the GDR, and she was one of a handful of American students who took advantage of it. We have some family history in Rostock. A great-aunt had lived there, and my sister wanted to do some research on what had become of her. This great-aunt had been elderly by the time of the Second World War, and my sister wanted to know if she had died of natural causes (sadly, it turns out that she had not).

Now, the reason I’m telling this seemingly unrelated story involves something that happened years later. After the reunification of Germany, and as part of the national reconciliation process, people could request their Stasi files. That’s the collection of data that had been accumulated by the Staatssicherheitsdienst — the secret police — gathered via informants, phone taps, reading mail, and so forth. Naturally, during the tense Cold-War Reagan years, the East German security apparatus assumed that any American who would study there was a CIA agent, so my sister’s file was extensive.

Her file was also slightly ridiculous: pages and pages of hand-written notes, filled with scuttlebutt and rumor. What was particularly enlightening was just how far off base the operatives had been. They missed critical details, and misinterpreted others. My sister’s attempts to track down our great-aunt became, in their notes, a frustrated attempt to make contact with a hitherto unknown agent. With all the data they gathered, with all the information they accumulated, there was no actual gain in knowledge. In fact, there could have been even greater costs: the incorrect assumptions and misunderstanding could have resulted in the agency siphoning off resources to pursue this phantom.

Now, you might suggest that I’m the one who is missing the point here. Perhaps, you could argue, that this is the nature of bureaucracy. The agents monitoring my sister were obligated to report to their superiors, so they grasped at whatever straws were available, and willfully ignored clues that would get in the way of a narrative that would please the authorities.

But in a way, that is the point. Surveillance generally finds what it’s seeking and only utilizes it for the purpose at hand.

In this day where Big Data is a tech industry buzzword, we continuously see articles on “business intelligence” and adaptive systems. More data gathering will solve all kinds of business problems. We read that credit card companies can predict divorce, that Target Stores predict pregnancies, and so on2.

And there are other successes. In the last year, there was a fascinating article on how a programmer helped discover cheating in the crossword puzzle world. “I guess that’s the nature of any data set. You might find things you’d rather not see,” said one of the people who contributed data to the collection that ended up confirming the plagiarism.

But Amazon still serves me ads for, say, umbrellas for weeks after I actually buy an umbrella from them. Maybe they set the flag when I look at the products, but don’t unset it when I buy one. I do work on the MarriageToGo.com site from a new computer, and suddenly I’m being served wedding ads. Ads are scattershot, and the only penalty for throwing stuff at the wall to see what sticks is the lower-value ads could crowd out the higher-value ads.

This kind of bad data processing is annoying, but not harmful. The same is not true with crime-prediction, voter targeting, insurance assessment, and other tasks upon which “deep learning” is being brought to bear. If the AI is built with bad assumptions, it can have serious effects on people. Training AI with “real world data” that’s been filtered by the status quo is equally dangerous. I think it’s obvious what happens. You can become un-insurable, denied loans, put on a no-fly list, and worse. “I do assure you, Mrs. Buttle, the Ministry is very scrupulous about following up and eradicating any error.”3

Whenever I fuck up something spectacularly in a complicated piece of code, I think of the Donald Fagen lyric:

A just machine to make big decisions
Programmed by fellows with compassion and vision

Unfortunately, as we see time and again, both of those attributes are often lacking. Stressed or overworked programmers, get-rich-quick VC and startup culture, bad assumptions, and a lack of examining the biases built into data sets all contribute to the failure of our machines to live up to that ideal.

1 Google issues a blog post at the end of June 2017, saying this practice would stop.

2 Interestingly, in the update to that article, Visa indignantly claims they do not track marital status, nor offer a service to predict divorces. Maybe the protest is carefully worded to hide their capabilities, or maybe it’s straightforward and honest. The fact remains that credit card companies know an enormous amount about their customers.

3 As Terry Gilliam, Tom Stoppard, and Charles McKeown captured so deftly in Brazil

Filed in: