USB Hell

Let’s just say that the Windows “Setup API” and the APIs to get stuff out of USB devices are terrible, disgusting things. I have no idea how this junk got shipped. It’s absolute garbage.


Posted in Uncategorized | Leave a comment

The Flatliner

The re-org happened while our Big Manager was away on a long vacation, and though he’d prepared for his absence (we didn’t lose anyone important, and we kept our desks and chairs and cubicals and we still had paychecks), it must be said that we also got shafted, too.

The shaft in question was the arrival of Person X, a Software Quality engineer none of us knew even existed until he showed up. One morning there was a new person in our little area, unboxing his stuff. Who’s this?

The Q/A manager held a short gathering. Obviously unpleased, he said “This is Person X. He’s going to be doing Q/A for [redacted] and help us ship the new version.” The X in question had been bounced from group to group for quite some time, and we were the lucky recipients.

It was soon apparent that Person X was uncomfortable speaking english and much preferred his native Qwghlm. When he found that one of the other Q/A engineers also spoke Qwghlm, he was overjoyed.

“Grkewgh sych plmrwquwh!” he said happily.

“We are going to use english,” the other Q/A engineer replied, a little frostily. She was looking worried.

“Rlyeh ftaghn fyyff?”

“Absolutely not. English.” She did not add ‘… motherfucker, do you speak it?’, but it was plain on her face.

But she’d been given the responsibility to bring Person X up to speed on the product. This did not go well. She told the new guy about the documentation, the firmware, the tools, the database of test cases, and how the various processes worked. A mix of english and Qwghlm floated over the cubical walls. By the end of the first day she was madder than hell and it was the first time I ever saw her visit our group’s secret beer fridge. By the end of the second day (honestly, by lunch time) she ready to quit. Serious, no-kidding quitting and high-frequency spitting noises were coming out of her. We talked her down, I don’t remember how. I think we might have bought her some ice cream.

Then Person X started in on the engineering staff.

“I understand this . . . blvwgph. This . . . why you not use standards?”


“There are standards. Ex dot two five. VBH. RFC. Why did you not use them? And what is this ‘scrum’?”


“You did this all wrong. You should use DCOM and SMTP and SNA.”

We backed away from the crazy guy slowly. We thought that ice cream might be in our near future, too.

My manager asked me to give him a better technical overview of project. Well, let’s be truthful; we were really doing a somewhat shitty post-hire interview. I wasn’t terribly subtle about it. I pointed him at the technical documentation, asked him to read it, and that we’d chat in a day or two. He returned a couple days later with a copy of the documents marked up in red Qwghlmian squiggles, and we found a small meeting room.

I don’t remember much about the next hour or so except that after ten minutes I wanted out of that room really bad. Not only did he not understand how the product or the underlying technology worked, he was actually arguing about what the product should do and how we’d done a bad job. While I’m happy with technical debates, I’m a lot less happy about clueless attacks. We had a firmware update system that he called stupid. There was a USB protocol that he didn’t understand, and while I never clearly grasped his objections, he was clearly upset at pieces of it.

I reported back to the minibosses. “The guy’s a zero. Maybe a negative number.” And the minibosses expressed a kind of smile / grimace thing that meant both, “Thanks” and “Damn, now we have to fire him.”

Now, it takes six months to fire someone at BigSoftwareCorp. Short of some public and spectacular transgression it was possible for someone to utterly turn off their brain, show up at their desk every day and just play solitaire, and it would still take half a year to can their sorry ass. Person X was no different. We did take away his ability to do any damage to the source tree, and his line miniboss probably gave him something to do (“We need these 1’s and 0’s sorted into neat little piles. It’s very important. Slide a monthly status report under my door.”)

Then one happy day he was gone. The sun came out and we had a fine spring day in December. Somehow there were birds in trees, the temperature shot up ten degrees, coy little breezes played with our napkins at our outdoor (outdoors! in December!) lunch, and none of the builds broke.

Now, you ask most managers about what it’s like to fire someone and they will get depressed and maybe teary-eyed; it’s not easy to tell someone they no longer have a job. In this case the Q/A manager was smiling. And he bought us ice cream that we ate in the sun.

Posted in Uncategorized | 2 Comments

Jury Duty

Annnd . . . I’m off to do jury duty again. I don’t know exactly what I’m going to be doing over the next few weeks, since that totally depends on how many jaywalkers need to be sent to the labor camps, and whether or not I can still fake a convincing siezure. This is the price of having a legal system that largely works, where the term “large” refers to the amount of money you’re able to scrape up to buy some justice.

So it’s time to sit in a room with total strangers, waiting for the cattle call to the courtroom where we will be instructed not to pass early judgement upon total strangers whose lives are utterly fucked up and whose emotional garbage will be spread out in public for analysis by shlubs like me. Do we give a damn? Surprisingly, we do.

Well, that was easy. A day and a half of testimony and hi, ho, that fucked-up moron is off to jail. The guy accused of the Awful Thing even took the stand. His public defender probably urged him not to. His public defender was miserably ineffectual in many areas, but that particular advice was sound and the moron should have listened. Take the 5th, stupid, it has your name on it, it’s there for *you*.

I don’t know what the world’s record is for the shortest deliberation, but when it was time for We the Jury to go into the back room and decide the poor sot’s fate, things went pretty damned quick. We filed in, found chairs, elected yours truly as foreman, and I called for a preliminary vote. “Who’s thinking . . . guilty?” Everyone raised a hand. That was like three minutes flat.

So we spent another twenty minutes talking about the case, just to make sure, took another vote, and that was that. Mister Screwed-up Life (who thought he was going to have a “great time” with a 16 year old who actually turned out to be a 45 year old police officer with a hillbilly beard and a cop-class donut gut and a pretty nifty video recording setup) was sent up to the Big House for a couple years of bad food and quality meditation time.

I don’t claim this is a total win for society. We’re probably better off not having Hells-Angel-lookalike police officers pose online as under-age teens and essentially entrap people. It’s unclear that entrapment has any real effect on the supply-and-demand equation, or that we’re getting anything out of this other than improved employment for police officers and sales of trick video gear. On the other hand, I’m happy to have Mr Fucked-Up Life off the streets for a while. On the gripping hand, it’s not like this long and involved and very expensive process has actually improved anything in the world.

Hint: If the cops ever arrest you, and especially if they have you in front of a video camera, ask for a lawyer and shut the fuck up.

[Yeah, I know I haven’t posted here much in Quite Some Time. Mostly my output has been driven by frustration, which when multiplied by my reservoir of stories equals content, and I kind of ran out of both for a while. More later, I can’t promise when.]

Posted in Uncategorized | 5 Comments

RIP Jerry Pournelle

We’ve lost another big name in SF. I liked Jerry Pournelle’s collaborations with Larry Niven a great deal.

The Mote in God’s Eye is (in my opinion) the best piece of hard SF to come out of the 70s. [Screws eyes shut and thinks hard]. Yup. Ringworld was pretty damned good, but it hasn’t aged well, and Stand on Zanzibar and Dune were published in the 1960s, so Mote it is. It’s a fantastically well crafted first-contact novel.

Here’s a bit, I believe written by Pournelle, describing how the two authors built Mote.


Posted in Uncategorized | 3 Comments

When the little hand is on the two, and the big hand…

Two thirty in the morning is the witching hour of technology.

If you are a firmware engineer working on a product that has some kind of online periodic update system, at some point you will have a conversation with your project manager, the subject of the conversation being”What time of day do we *do* this update?” Because updates invariably require reboots and other awkward shenanigans, and who needs that in the middle of their daytime soap opera or fitness run?

The answer will invariably be two-thirty in the morning. If your product does weekly updates, your PM will respond with “Two-thirty every Sunday morning.” [Which you will change to “Two-thirty every *Monday* morning” because your PM really didn’t think about it enough, but you knew what they meant.]

The argument goes: Two-thirty in the morning is a time when all sensible and God-fearing people (and especially technology review editors) should be tucked away in bed. Thus, no one will notice just one appliance going offline for a minute or two while it reflashes its firmware. And no other company is going to do the same thing to *their* products at that crazy hour, it’s just so *unlikely*. Two-thirty AM sounds great, let’s ship it. It’ll be our secret.

The young, clever and over-enthusiastic dev pipes up, “Let’s make it /really/ random. Say, 2:37AM.”

“Great idea,” someone agrees. And you ship.


Cut-to: I am insomniac again. Minding my own business at Something-Dark-Thirty in the morning and doing some reading. Okay, I’m watching Firefly again, sue me.

The TV stutters for a second or two, then goes black and displays “Rebooting, please wait”. The microwave oven emits a “beep” and starts doing something awful and herky with its LEDs. My watch buzzes and shows a spinning whooshie graphic while it messes with its own insides. Everything is displaying progress bars and “percentage complete” counters and little apologetic messages that betray the same sad trains of thought. All the widgets in my living room are emitting little boops and beeps to announce that they have upgraded their brains and jumped off the cliff into next week’s firmware, to better our lives with bug fixes and shiny, new buggy features. Even the damned toaster is getting into the act. Why would a toaster need a firmware update?

Some of the devices don’t come back to life. Maybe there’s a hardware failure, or an overworked software guy flubbed a semicolon in the update code and now that company has catapulted half a million of its heavily advertised Internet of Things devices into the category of Internet of Dead-Ass Bricked E-Waste. People find these little corpses in the morning, like poor little rodents discovered by the cat. It’s highly likely that the company that made these benighted devices will become a corpse, too, which is why wise companies feed and train their firmware engineers with care. Right?

O, this brave new world of embedded, connected systems. Kind of like the old world, but I sure hope you’re running version 2.01a, because unless you have that latest patch . . .

   Intertubes of Things
Cat monitor, coffee grinder
       It sends email, too.

Let us not speak about devices that are designed to listen to you all the time. It is just too early in the morning for that amount of trust.

Posted in Uncategorized | 3 Comments

RIP George Michael

WTF, 2016. I mean, what the . . . God damnit.

FYYFF. Okay, just fuck off now. Go away 2016, we don’t want you any more.

Posted in Uncategorized | 1 Comment

oh my god

what have they done?

Posted in Uncategorized | 5 Comments

RIP Henry SF Cooper

I should keep track of my favorite authors better. Henry SF Cooper, author of Apollo on the Moon, Thirteen: The Flight that Failed and the majestic The Evening Star (which is about how the Magellan probe team debugged OS race conditions from 20 million miles away) died in January.

I can’t say enough good things about The Evening Star. If you’re into computers or into space exploration, it’ll be a great read. If you’re into both, it’s incomparable.

I highly recommend all of his books.

Posted in Uncategorized | 6 Comments

Too many zeros

Srly, Microsoft? LinkedIn for $26B?

These things never end well. Remember Dynamics? And Nokia? This is worse.

Somebody needs to take the checkbook away from the team at Microsoft that comes up with these merger ideas. Put them off in a building of their own, give them a cafeteria and chef and great annual compensation, and ignore everything they say. It will be cheaper to do this than actually buying companies, and you don’t run the risk of being sued if you fire “valuable” employees. (Maybe you could sell the M&A group to Oracle after a while).


Posted in Uncategorized | 2 Comments

Dianne Feinstein should resign

Here’s a nice opinion piece. By the Christian Science Monitor, no less.

I concur.

Dianne Feinstein has a history of getting policy around cryptography and security utterly and disastrously wrong. She backed the regressive ITAR regulations banning export of strong crypto (which had the actual — and intentional — effect of reducing security of software in the US). She backed the Clipper Chip program in the 1990s, claiming a need for “balance” by mandating that US citizens use only government-approved cryptography (the Clipper protocol contained serious flaws which were exposed a few months after the specification was published). She backs the FISA secret courts. She has refused to investigate wrongdoings by the NSA and other intelligence communities, or to investigate the clear and blatant lying by government officials about surveillance programs to congress (last I checked perjury was still a pretty serious offense; Senator Feinstein is apparently just fine with it).

She has so clearly demonstrated her incompetence and misservice to her constituents and to the US at large that we should be done with her. Dianne Feinstein is a danger to our collective security, and she should either step down, or be removed from the Senate Intelligence Committee.

Posted in Uncategorized | 2 Comments