Jittery Web Design

I get a lot of packages, so I sit staring at the Fedex tracking page a lot. They recently redesigned it (to become more “mobile first”, I guess — just a couple decades too late), and I’m just fascinated.

I mean, it’s just a minor thing, and it doesn’t matter HANG ON: We’re on the Internet, right? OK, SO THIS IS LITERALLY THE WORST THING EVER LITERALLY. *phew* I was almost reasonable there for a second.

But let’s go through what the page does:

  • First we get a white web page.
  • Then the page shows just the header and the footer.
  • Then it expands to show “Tracking ID” and a spinner, and this moves the footer down.
  • Then it replaces the entire page with the tracking results.
  • Half a second later, it blanks to white and then redisplays exactly the same thing it already shows.
  • Finally, two seconds later, it blanks very briefly, redisplays, and adds a button on the bottom saying “Ask Fedex”.

That’s just kinda amazing, I think. It doesn’t transfer a lot of data, at least:

Just 6.8MB, which is practically nothing these days.

Welcome to my Ted Talk.

BIOS Batteries Still Exist

Above you see the nice li’l machine that has a nice SAS card that I’m using for my /dvd RAID (that, confusingly enough, has more ripped blurays than ripped DVDs now).

Here’s the major, incredibly important problem:

If there’s been a power outage (for instance, because I’ve had an electrician in to do something), the machine refuses to boot because the BIOS doesn’t know what date it is. I’m sure that’s really important! Oh my god! What would we do with a machine where the BIOS doesn’t know what the date is! The humanity!

So I have to attach a keyboard and press F1 and then everything works, so (this is going to come as a shock to you all) it turns out that the machine works perfectly well without a BIOS that knows what the time is.

I know! Who would have thought!

After much googling, it turns out that this mainboard has a BIOS battery that’s glued to the audio headers (bottom right there). It’s a “wrapped CR2032”.

And today I got this in the mail:

Whoho! Time to become a computer repair guy again!

So rip out the old one — which was fastened with some sticky tape.

Oh, the new one has one, too, so I guess that’s standard.

But jamming my fingers down there while being able to see what I’m doing is hard…

Perhaps I can use these pliers (that the electrician (yes, her again) forgot here and I forgot to call them to give them back (they’re coming again this Thursday so perhaps I can return them to them then))…

… nnnno. And now I’ve bent the headers! I think! My eyes are too weak for this stuff!!

I forgot! I’ve got a workbench now! And I got this lamp for the workbench last week! I’ve never used it before! Is it gonna be helpful!?

Yes!

Behold the embiggening! It’s amazing! I can see everything! And it’s so bright!

So using that, I was able to unbend the bent headers and then use my fingers to get the li’l plug down there, and now…

… it doesn’t complain any more but just reboots unattended!

That was totally worth it.

Thanks, BIOS makers of the world. A lot.

Comics, Weakly

Here’s some comics I’ve read over the past few weeks. I’ve had almost no time to read comics lately…

When translating/collecting works from prolific artists, publishers wisely publish the best material first. I mean, you want the people who pick up the first volumes to be impressed and keep buying.

So what are we getting in the tenth volume of Fantagraphics’ monumental collection of Guido Crepax stuff? More than three thousand pages in?

Yes, “Surreal Stories”, as the cover says, but I’m not sure that’s what most people would call these pieces. The main thing here is a two-hundred-page Bianca… er… non-story, where we basically see Bianca vaguely proceed from torturous tableau to torturous tableau.

Crepax’s best stories are also pretty vague, but you feel compelled to keep reading, because things sorta kinda tie together in a strange way, but this is basically just a collection of Crepax’s fantasies. I mean, the line is still great, but it’s just hard not to fall asleep when trying to read this.

I remember quite liking Leah Hayes’ previous book?

And the art here is still attractive.

And while it’s got a mood going on here, it just feels very slight.

I filled my Spirou quota.

There’s a special issue here about various Spirou authors going to the natural history museum, and that sounds like it’s going to be fun…

And it is, I guess, but it seems like they mostly come up with the same gags. So it gets a bit repetitive.

And there’s now two serials running that I dislike (Louca and Starlight), so not really a good batch for me.

I bought this by mistake — I was totally thinking of somebody else, and not Darryl Cunningham. Is there a different comics artist called Cunningham? One that’s good?

Because this isn’t — it’s pretty annoying, from micro problems like “what box?” “this one” while pointing to a big square thing, but she’s talking about the box in her right hand, to bigger problems like…

… everything about this.

I bailed after a couple dozen pages.

I’ve seen some chatter about this book by Marina Lisa Komiya on the timeline, but I haven’t really paid attention to what the reactions have been?

The line is very attractive.

But the style used allows for such limited range of faces that it’s very hard to keep people apart — you really have to go “this one has slightly longer hair”, “this one has slightly more frizzy hair” etc, and if it’s windy, you’re shit out of luck.

Plotwise, it feels like an algorithmically derived plot. I didn’t dislike the book or anything, but I did roll my eyes a bit at All The Drama.

I’m guessing this will end up on many “best of” lists for 2026.

Michel Vaillant is, of course, an extremely long-running French(ey) comics series, but I’ve never read any books from the 2010(ish) “revival”.

Many of these “revival” books settle on a refreshed look and a new start (of sorts), but this is apparently very much the same as before, and with all the characters older than before.

And unfortunately, it’s really boring. This album is about introducing electric racing cars, and there’s lots of dramas because the Vaillant boss doesn’t want to ditch petrol cars and stuff. I was wondering whether it had been made as a promotional tool for some French electric car maker or other, but apparently not?

And finally, I’m continuing to read Corto Maltese in translation to French.

And colourised, because I’ve read the original black and white versions so many times before.

And this album collects fantastic twenty-pagers — every piece is a perfect Corto Maltese story.

I think I’ve only got one more of these to go before I get to the album-length books that Hugo Pratt would continue to do in the late 70s/80s. They’re also great, of course, but these 20-pagers are simply the best.

And that’s all. See? Almost no comics reading! I’ve gotta get serious.

Hacker News Decoder Ring for Emacs

People say that language is for communication, and every day Hacker News proves these people wrong.

I mean, it’s not just Hacker News, but it’s the place I encounter this phenomenon most often: Somebody will be discussing something, and then somebody else will respond with a short sentence that’s mostly acronyms.

The fascinating thing about these responses is that if you know what the acronyms mean, then what’s being stated is often trivial (i.e., something that everybody who knows what those acronyms mean already knows). And if you don’t know what the acronyms mean, then the sentence is completely opaque.

(Often seen, for instance, when discussing network issues, and somebody responds with an alphabet soup involving acronyms like “BGP”, “AP”, “BMP” and “FRX”.)

So these utterances function two ways: For the people who’re on the “inside”, they’re saying “I know this stuff, like you other smart people…”. For the people who’re on the outside, this expresses “… and you’re a moron”.

I guess that’s a form of communication after all.

But for fun, I just whipped up a new command for Emacs called shr-etla (for obvious reasons) and put it on Microsoft Github. Here we have it in action on a totally random Hacker News comment:

It works by sending the paragraph over to an LLM, and it also tells the LLM what web site it came from. This context is vital, because many abbreviations expand to many, many things, and the LLM needs to know what kind of person it’s trying to decode.

(Googling for abbreviations is usually pretty useless — 74% of the time you get a bunch of other meanings; usually an American company or other that’s been SEO-ing the results. (“SEO” means “Search Engine Optimisation”, which is a form of terrorism.)

Of course, all of this doesn’t help much in many cases:

I guess!?

(caveat accipiens — like all things involving LLMs, this Emacs command is just a toy. The LLM has been instructed to return JSON with the results, and it does so in 99% of the cases, but in some cases it’ll return something else, and then you just have to run the command again. Or it’ll have done something else, like translate things into Kyrgyz; who knows? But that’s just part of the fun.)

Are AI web scrapers patient or do they cheat?

I’ve blathered before about how hard it is to do traffic stats these days — AI scrapers run full browsers via VPNs with residential endpoints. So you can’t distinguish them from real traffic, really.

I mean, none of this matters, but…

One trick that really helps weed out scrapers from the stats is to just not “count” a web page visit until the page has been open for more than ten seconds. Yes, you lose real readers that bounce fast, but whatevs.

However, there are scrapers (as shown in the above screenshot). That’s a pretty typical trace — you get dozens of hits from all over the world to the same obscure blog post, but using the same User-Agent.

What I was idly curious about was this: Since I’m using a setTimeout to register the page view, are these scrapers really keeping a web browser open for ten seconds? Or are they just collapsing setTimeout calls and doing everything immediately? (That’s certainly what I’d do if I were an evil scraper.)

So I had a look at my Apache logs, and:

Yeah, it’s a real browser with no collapsing of the setTimeout values.

I checked a couple more, but they show the same pattern.

So there you go — these scraper people have way too many resources to burn.