Where There’s Smoke…

I was pondering this morning how I could best describe for y’all the terrible, horrible, no-good, very bad five miles that were the end of my bike ride a couple of days ago. Today’s plan was to get a happier ride in before it got too hot, then have a beer or two and regale you with my story of (rather mild) heat stroke.

I have been craving protein since that ride and I was in the kitchen piling up turkey and cheese on my sandwich when The Official Sweetie of Muddled Ramblings and Half-Baked Ideas said, loudly, “Jerry! Come here RIGHT NOW!” In our many years together, I had never been summoned that way before. I dropped the mustard and hurried to find her. I rounded the corner to see the laundry room filling with white smoke.

Both the washer and the dryer were running, and I unplugged them both as one smoke detector after another began to tell us what we already knew. For one heart-stopping moment it seemed that the smoke was actually coming from the garage, but eventually we opened things up and while the dogs cowered from the terrible noise we vented the smoke and things calmed down.

It wasn’t clear at first which appliance had been smoking; but when we opened the dryer smoke came rolling out. “Can you fix it?” Official Sweetie asked, and after some thought I figured I probably could. Fundamentally, dryers aren’t that complicated.

Eventually we restarted the washer and very quickly realized what the problem was. “It’s never made that sound before,” OSMR&HBI said. Our washer was toast. The dryer had filled with smoke as it pulled air in.

Washers like ours have a complex gear box that, when driven by an electric motor, can move the tub and the agitator thingie in a complex motion. My best diagnosis is that the gearbox seized up, and the motor was burning itself up trying to turn it. Time to find some new parts.

This quest was made more difficult because the number on the cover of the manual wasn’t the model number of the washer, but was in fact the part number of the manual itself. Because that’s obviously the most important piece of information a customer might want to know. For a while it seemed that there were no parts for this washer anywhere.

It took me a while to find the actual model number of the washer, first because the plate with that information was well-hidden behind the lid, and second because there was no way to read that information while the lid was open. It took several tries with my phone camera to get a shot from inside the tub while the lid was mostly closed that captured the model number legibly.

Armed at last with the right model number, I was able to look up the parts. Gearbox for sure, and given the amount of electrical insulation that had been turned into a toxic cloud, it seemed a fair bet that the motor would need replacing as well. Cost of parts: $350 after I shopped around a bit. (The gearbox replacement part was an update to the version in our washer, and is used by literally dozens of washers from all the major brands.) Add to that cost a few hours of cursing and bloody knuckles.

New washer: $550-ish. The Official Sweetie set to shopping.

I don’t know if you guys have heard about this Pandemic Thing, but it leads to a lot of uncertainty about just when a product you buy might reach your doorstep. There is no uncertainty at all about whether the product will be brought inside the house. Availability of washers ranged from weeks to months, the delay inversely proportional to the desirability of the machine.

We discussed for a bit whether to get “good enough” sooner, or order what we really wanted and deal with not having a washer for a while. We agreed that waiting for the right machine was better than spending the next few years with a washer we didn’t really like. (“We” in the previous sentence is only 15% me.) Official Sweetie found the right machine online at Lowe’s, but there was no indication when it would be delivered until after the purchase was made. “If it’s too long, we’ll cancel,” OS said.

It’s being delivered tomorrow.

That in itself was a shock, and ultimately a happy surprise, but it took some adjusting to. Specifically, we will have to get the old washer to the street, and haul the new one up our front steps and into the house. This sudden need for logistics and heavy lifting was as much an emotional hill to climb as it was a hassle. Not for the first time, I wished we had a good hand truck.

I’d estimate I ask, “do we know anyone with a dolly?” about twice a year — often enough that I decided it was time to buy one. Back to the Lowe’s Web site for a preorder. Subsequently I set foot in a retail store for the first time in months to snag a Milwaukee with big, stair-friendly wheels. (Even this was not entirely without challenge, as the preorder had not been filled yet when I got there. I went to pull the item myself, and I was told it was on aisle 39. I marched along, 35, 36, 37… and then the wall of the store. There is a 38 and 39, they’re just… looped back around over there.)

Home, carefully washed so I could accept the welcome of the pack, I pulled out the (not-really-that-) old washer and we rolled it to wait by the front door.

I have a few people now encouraging me to ride my bike regularly. I’m hoping “my washer caught on fire” will earn me slack for one day, at least.

A Pair of Coding Aphorisms

I write software for a living, and I take great pleasure when fixing a problem means reducing the number of lines of code in the system. In the last two days, I have come up with a couple of observations:

Every line of code is a pre-cancerous cell in the body of your application.

Now, “line of code” can be a deceptive measurement, as cramming a whole bunch of logic into a single line will certainly not make the application more robust. There are even robots that can comb through your code and sniff out overly-complex bits. But just as in humans weight is a proxy for a host of more meaningful health measurements, lines of code is the proxy for a host of complexity measurements.

But the point stands. I recently had to fix a bug where someone had copy/pasted code from one place to another. Then the original was modified, but not the copy. All those apparently-safe lines of code (already tested and everything!) were a liability, where instead a function call so everyone used the same code would have been more compact, easier to read, and much easier to maintain. There’s even an acronym for this type of practice: DRY — Don’t Repeat Yourself.

While that’s one of the more flagrant ways code bloat happens, there are plenty of others, mostly symptoms of not thinking the problem through carefully at the get-go, or not stopping to reconsider an approach as the problem is better-understood. Stopping and thinking will almost always get the project done sooner — and smaller.

One important thing to keep in mind is that programming languages are for the benefit of humans, not the machines that will eventually execute the program. If the purpose of your code is not obvious from reading it, go back and do it again. Comments explaining the code are generally an indication that the code itself is poorly written.

No software is so well-written that it ages gracefully.

I work on a lot of old code written by others, and I know people who work on old code written by me. In some cases, the code was shit to start with, but in others time has simply moved on, requirements have changed, and the code has been fiddled and futzed until the pristine original is lost to a host of semi-documented tweaks.

Naturally no code I have ever written falls into the “shit to start with” category (how could you even think that?), but that doesn’t mean the people who have to maintain that old stuff won’t be cursing my name now and then, as some clever optimization I did back in the day now completely breaks with a new requirement I didn’t have to deal with at the time.

And sometimes even if the code itself is still just fine, the platform it runs on will change, and break stuff. Jer’s Novel Writer was pretty elegant back in the day, but now when I compile I get literally hundreds of warnings about “That’s not how we do things anymore.” Some parts of JersNW are simply broken now. When I no longer work where I do, I will likely rebuild the whole thing from scratch.

Speaking of work, I am very fortunate to work in an environment that allows us to trash applications and rebuild them from scratch every now and then. Having a tiny user base helps in this regard. And as we build the new apps, we can apply what we’ve learned and maybe the next system will age a little better than the one before. Maybe. But sure as the sun rises at the end of a long day of coding, someone will be cursing the new system before too long.

Igneous Home Security

I am on the back patio, and over the fence I can hear my neighbors talking. Apparently they have massively upgraded their home security system, replacing the gravel alongside their house with LAVA! It is now very risky for the children to play along there, but apparently they are willing to take the risk. I hope they’re careful.

Prestigious Tattoo Locations

Let’s say for a moment that there is a field of sporting competition where, rather than a trophy or a belt, the winner earns the right to wear a special tattoo. As with every other sport, some awards are more prestigious than others. Where do the most prestigious awards go? Face, maybe, for world championships, but how do you rank lesser awards?

Obviously I’m writing a story where exactly this is the case, and our main woman has new ink for a recent win in a regional contest. “It’s only forearm,” I wrote, but then I hesitated. Forearms are pretty visible, and by proximity to hands might be pretty choice real estate. Or not. How do you rank thigh, calf, and elbow?

As I ponder this, I think if I were sponsor for one of these events I’d offer a prize of a tiny little star on the earlobe.

And! I bet there would be integrated tattoos, that formed a triple-crown meta-tattoo if someone gets them all.

And! Kids with promise could choose to put their high school state championship on their thigh to save room for greater rewards to come. The hubris! The insult to the people who got you to where you are! But here’s one trophy case you can’t rearrange later.

To be honest, none of this matters in the story I’m writing, except the “It’s only…”. Jaqi is shrugging off her most recent victory.

But honestly, I think UFC should consider this.

You may be Hating Trump for the Wrong Reason Today

So on Thursday, Trump invited the head of science for the Department of Homeland Security to join his coronavirus press conference. Mr. Bryan said some things that were interesting, giving valuable information that could be used to slow the spread of the virus. And he did mention that yes, sunlight has been shown to kill the virus on surfaces.

That’s not really a surprise, UV light has been used to disinfect surfaces for a long time now. But the effectiveness of UV against this particular virus was encouraging, and supported Trump’s “this will all go away in the summer and I’ll take credit for thinking of it” plan.

After Mr. Bryan, himself not a scientist — he holds a masters degree in strategic intelligence — sat down, an obviously pumped president returned to the lectern. There were things that could kill the virus! He probably already understood that at some level before, but now he was really seeing it! All we needed to do was take the things that killed the virus outside a human body… and put them inside.

So he turned and said to his pet non-scientist from Homeland Security that Mr. Bryan should look into using light inside coronavirus patients. But why stop there? Disinfectants also kill the virus! Perhaps we should look into using those inside the body as well! Trump was, at that moment, spit-balling ideas with someone modestly more qualified than he was to figure that shit out.

Had they been alone in a quiet room, Mr. Bryan might have been able to say, “Good idea, Mr. President, but those things kill indiscriminately. The challenge is to find something that will kill the virus without killing the host, or to strengthen the host’s innate ability to fight the virus itself.” And Trump would be pissed, but probably not enough to fire the guy, and life would go on.

But that’s not what happened, because it was not a quiet room. It was a press conference, going live to the entire nation. Trump suggested investigating shooting up disinfectants.

Trump does not think before he speaks. If he did, it might occur to him that this is not the first virus humanity has encountered, and that perhaps there were reasons we don’t try to apply chemicals that kill indiscriminately inside our bodies. The closest we get (as far as I know) is chemotherapy, where the drugs are really nasty, but even then they target the bad cells more than the good cells.

Trump didn’t think, because he had a Great Idea.

What Trump thought would happen: His science pal would say, “That’s a great idea! We’ll get right on that!” Probably, in the short time of the press conference, The Donald didn’t even have time to get to the part of his fantasy where the world lionizes him for single-handedly solving the crisis. That came later in the shower.

What actually happened: The world went ape-shit because his incredibly stupid ideas were spoken in front of the whole damn country, and a lot of people instantly conflated “Tide Pod eater” with “Trump Supporter.”

Sure, people have already died from Trump’s medical advice, and some of the deaths have a Tide Pod glow to them, but not very many. Not very many deaths by stupidity can be directly attributed to Trump, anyway. We’ll never know the death toll from liberating Michigan. Might be zero, might be a thousand or more when all is over, but we’ll never know. However many people he does kill by supporting those protests, a disproportionate percentage of them will be first responders and health care professionals, and more than a few working poor.

His tweets about “liberating” certain states (he did not congratulate protesters in states with Republican governors, although the policies and the arguments were the same) are ultimately far more harmful than a few dumb-ass remarks that may get a handful of fucking idiots killed. Trump’s “cross your fingers and hope that sunshine saves us” strategy (I bet Australia can’t wait for… oh, wait, never mind) is much more dangerous to our nation as a whole than suggesting people should shove blacklights up their butts.

(Donald didn’t actually suggest that, just as he didn’t suggest people do I.V. drips of Lysol.)

I’d guess that Trump’s idiot musing on Thursday will kill ten people, tops. Ten stupid people. Probably fewer. And while I’m as big a fan as anyone at pointing out how goddam moronic our president is, we need to remember where he’s doing the most harm and who is being harmed. While the man-child president grasps for a miracle cure to get him (not us) out of this pickle, the rest of us have to keep pushing ahead.

This is the calculus we have come to, weighing the relative harm of Trump’s stupid-ass statements. But as long as we’re here, let’s keep a little perspective. More people will die from his evisceration of the EPA than will inject Lysol into their blood.

I look forward to things returning to normal so we can go back to trying to find all those children ICE misplaced.

Rode the ol’ Bike Today

There was a time, not that long ago really, that I spent many hours each week on my bicycle. It was my primary transportation; so much so that I had to get a little trickle-charger for my car’s battery, because it would be weeks between times I needed to drive it.

Every once in a while, I would poke my leg and think, “I didn’t know I had a muscle there!” It was silly how well-defined my skinny legs became.

Then… I stopped. The reasons are uncertain, but it may have been about time. The 30-mile round trip added an hour to my commute time each day. (The amount added varied greatly, based on traffic, but when I was at my best the bike round trip was never more than 2:15, and the car commute varied from 1:00 to 1:45 or occasionally much worse).

Time. It was probably a work crunch that did me in. I remember thinking, not long before I stopped, that I could not imagine going back to commuting by car. And then I did.

Mondays were good days back then. I called them “Monday legs,” the way I felt after two days’ rest. I’d scoot to work and feel full of life, a feeling that lasted all day. I used to say, “The first 100 miles each week are easy.”

I have tried and failed — more than once, now — to recapture those days. I am trying again. There was so much good about that time. I even, really, truly was in a conversation with someone about hippie shit and he said, “Well, I drive a Prius, so…” to which I could honestly reply, “I ride a bike.” One of the greatest moments of my life.

Another great moment was when my liveroligist said that my enzymes looked good. I am of the body type that puts fat on organs. The bike fixed that.

And when I am on the bike, I can just think for a bit.

So here I go again. If any others who read this use Strava, please help me out by connecting with me and pushing me forward. Hold me accountable. Talk trash. I’m known over there as Jerry Seeger.

I Was Speechless, Now I’m Not

Yesterday I wrote an episode about being absolutely flabbergasted that The Donald would support protests that will literally kill US citizens. Time has lent me a little perspective.

One thing about Trump’s murderous actions is actually smart in an evil kind of way. A few months from now, Trump will say, “I tried to stop the recession, but the damn Democrat Governors stopped me! It’s not my fault!”

Because he’s totally in charge — unstoppable, a fucking genius, just ask him — until it’s not convenient to be in charge and a scapegoat is needed.

And honestly, the coming recession is not entirely his fault, though if he weren’t such a pig-headed asshole, or at least even capable of listening to his advisors, the problem would not be so bad. But Trump’s say-it’s-not-a-problem-until-you-take-credit-for-solving-it approach was the guarantee this virus needed that it could go wild.

Things are bad. This is where Trump usually declares bankruptcy, and leaves the people foolish enough to do business with him holding the bag.

But, true to his bragging before he was elected, Donald Trump could literally take a Russian-made AK-47 into a nursing home and mow down the occupants, and if he said it created jobs, 42% of the American populace would say, “their sacrifice is for the best.” There is nothing, absolutely nothing, that will shake the conviction of that 42%. We can go into why another time (most of the reasons have little to do with Trump himself), but that bunch is fuckin’ entrenched.

Somewhat symmetrically, about 48% of the populace of this country would never, ever support Trump, even if he managed to do something magnificently awesome. A hypothetical that will never happen, but anyway.

So for Trump and his sorta-Republican handlers, this is all a game, playing the slavery-inspired electoral college and the disproportionate influence of rural voters to close the gap in the approval ratings. Thus, “Liberate Michigan”, a swing state. Some of those protesters may die as a result, but even more poor people will. And a significant group will say (not out loud) that a few more dead old folks is the price you have to pay to let me go back to making some asshole rich. Because the assholes have equated making them rich with survival.

Nowhere in that equation is the idea that maybe for a little while we can take care of people without making the assholes rich. Or, god forbid, the assholes could take care of their own.

For perspective, the retail employees of my company are still being paid while their stores are closed, and a heart-warming percentage of them are volunteering to bolster customer support over phone and Internet, as people need more remote help with tech than ever before. If you asked our CEO why he was paying idle employees, he would look at you funny and say, “because it’s the right thing to do.” If you were to ask those volunteers who could earn the same paycheck while playing WoW, they would say the same thing. “We have a rare opportunity to really help.” Ethics are powerful.

But there are no ethics in Washington, especially among the corporate dickwads who whisper in Trump’s ear. It’s 42-48 and all that matters are the votes and where they happen. The real threat to reelection that Trump faces is that if everyone can vote by mail, the Republicans won’t be able to rig the election by suppressing the vote in poor neighborhoods. Donnie himself actually said EXACTLY THAT on Fox the other day. Seriously. He said that if there was mail-in voting everywhere, Republicans would never be elected again.

I Imagine one of his handlers slapping his head and saying “of all the things we told him, that is the thing the idiot actually learned?”

A New Low

I’ve been trying to get my news from sane sources, which rules out Twitter, Facebook, or any other social media. So while I was aware that Trump ignored his own health and security advisors, who had been warning him about the virus heading to our shores, I had insulated myself from his ridiculous tweets. Trump did nothing in the face of those warnings — except to downplay them — because he didn’t want it to be true. In fact, he claimed it wasn’t true more than once.

There were plenty of warning signs that we now know Trump was informed of early on, but understanding things is not what Trump does best.

For example, Trump is just not equipped to understand that when a virus shows almost no mutation in very separate cases, that means it is really, really contagious. To be fair, I didn’t know how alarming the DNA similarity was until recently, but I am able to learn. Donald Trump is not. He is stupid and pig-headed, and since he has fired almost everyone who would dare contradict Fox News, there is no one left to try to guide him. If a problem can’t be handled conveniently, best to just assert it’s not a problem. That (almost) always works.

But then yesterday I learned that Trump has been tweeting support for the protests against social distancing. Sure, this is easier than providing leadership or doing something to materially help people who are in a very bad way right now.

The protests, incidentally, are funded by Trump’s pals, who care more about their corporate bottom lines than the lives of the people who work for them — and financing protests is way cheaper than supporting their employees directly, with the benefit of making the whole thing look like someone else’s fault.

The tweets left me utterly speechless. The same guy who is saying “this is for the states to handle” any time a state asks for federal help is also undermining the attempts of states to handle things, and people are going to die as a result. Not just a handful of the morons at the rallies, but the people those morons go on to infect, and the people who see the morons protesting and turn into morons themselves.

NOT on the list of people who will die as a consequence of these protests are the wealthy men and women financing the rallies, or the “journalists” who long ago forgot what the word means, who are now praising the morons, because those assholes ALSO don’t care whether the protesters or their families live or die. It will be the poor and the underserved, as always, who bear the brunt of the harm they are doing, and those people aren’t voting for Trump next time anyway.

Elevator, Ocelot, Rutabaga to One and All

Pretty safe to say that 16.000 on the Muddled Calendar is the strangest of times to be saying Elevator, Ocelot, Rutabaga (so far). Still I wish you, each and every one, a happy and prosperous new Muddled Year.

Haircut In Place

I was getting shaggy long before The Virus came to town. The other day, the Official Sweetie of Muddled Ramblings and Half-Baked Ideas floated an idea. “Maybe I could cut your hair.”

For background, as a kid, my dad cut my hair many times, and while I was young enough to be oblivious to the quality of the result, I enjoyed those times. (As I reached my teens the thinning shears in the home haircut kit were an object of fascination to me, allowing me to be shaggy while not overheating my cranium. Dad and I both appreciated the engineering behind those shears.)

So there I was with way more hair than I wanted, and the Official Sweetie offering a fun project of togetherness. No arm twistage was required. “It will not be the best haircut you ever had,” OSoMR&HBI said. I will not tire you, dear readers, with a litany of the bad haircuts I’ve had in my life, but I was reasonably confident that this one would not be the worst.

Plus: The difference between a good haircut and a bad one? Two weeks. By the time anyone saw my lovely locks, time would have passed and evened things out.

The cut went down. Of course we documented the adventure.

shaggy jerry
My hair goes from 70’s to 80’s as it grows, but the transition from there to 60’s is messy.

My new favorite hair stylist arrayed her tools: My heavy-duty hair trimmer (I lost all the guides over the decades, but my good pal John gave me the 3 from his set a while back, so it was 3 or nothing that night), scissors not intended for cutting hair, and a sweet comb from roughly 1978. Add a couple of hair clips and we are ready to go!

“Wow! That’s short!” The Official Sweetie said. She had made a few exploratory passes with the trimmer, but finally she put the guide against my scalp and made a run, bogging the mighty trimmer for a moment with the sheer power of my thick hair, but leaving behind a summer-length swath of almost-naked scalp. I felt the breeze and smiled.

Byng was not OK with all this.

Meanwhile, our little dog Lady Byng was not OK with any of this. Clearly pack members were doing terrible things to other pack members, which might have been all right were it not happening in the room that exists only to torture dogs with baths.

At one point The Official Sweetie stopped. “I kinda want to stop right here,” she said. Although without glasses my image in the mirror was indistinct, I could see what she meant. Kinda reminded me of the bad guy in Fifth Element.

I asked that we carry on, however. I wanted a haircut with staying power.

For the next few minutes I came to appreciate barber’s shears. When in the big chair I hear “snip snip snip” at an impressive rate; that is the product of scissors that are both sharp and quick. Loose-hinged but somehow tight. Cutting hair with slower scissors requires a great deal of patience.

OK, I promised I wouldn’t belabor bad haircuts of the past, but my worst haircut was also the most time-consuming and most expensive. Jason (a friend’s favorite) fiddled with my hair for an hour, cutting one goddam strand at a time, and while the final look played to my hair’s Ultra-80’s feather-the-fuck-out-of-it-and-make-David-Bowie-weep strength, that was not what I had asked for. I just wanted my hair to be shorter.

My needs are actually pretty simple. My hair is long. I want it to be short. Even my regular hair-cutter has a hard time believing the transformation I want, and she’s done it several times.

My sweetie knows this. She hacked away with scissors and trimmer, and while the result was maybe not what a trained professional would have pulled off, it was not too shabby.

Over the last couple of days I have found a couple of places the clipper missed, and there is some choppiness. But overall, an unquestionable success.

Before you even ask, I will not be returning the favor.

Damn You, Bauhaus

I’m trying to write an episode that is actually interesting, but it hasn’t been going well. And that was before “Bela Lugosi’s Dead” came on the TV/Internet/Radio music distribution system.

It all starts with the simple bass line and the clock-ticking percussion, and I get sucked in. Then Peter Murphy takes direct control of my brain. It’s haunting, and even when it’s loud it’s all somehow far away.

It’s over now, and I just have to remember what I was writing about.

Forward to the Past

I’ve spent the last few days learning Ember, which is a software framework for making apps that run in your browser. It’s fun to learn new things, and it has been fun to learn Ember, which to me is a less-awful-than-most javascript framework.

(Things are going to be technical for a bit; please stand by for the rant that is the foundation of this episode — which is also technical.)

The good news: I have never taken a tutorial for any framework on any platform that put testing right up front the way Ember’s did. That is magnificent. The testing facilities are extensive, and to showcase them in the training can only help the new adopters understand their value. Put the robots to work finding bugs!

Also good news: Efficient route handling. Nested routes that efficiently know which parts of the page need to be redrawn, while providing bookmarkable URLs for any given state is pretty nice.

But… I’m still writing html and css shit. WTF?

Yeah, baby, it’s ranting time.

Let’s just start with this: HTML is awful. It is a collection of woefully-shortsighted and often random decisions that made developing useful Web applications problematic. But if your app is to work in a browser, it must generate HTML. Fine. But that shouldn’t be my problem anymore.

When I write an application that will run on your computer or your phone or whatever, I DON’T CARE how the application draws its stuff on the screen. It’s not important to me. I say, at a very high level, that I expect text in a particular location, it will have a certain appearance based on its role in my application, and that if something changes the text will update. That’s all.

I don’t want to hear about html tags. Tags are an implementation detail that the framework should take care of if my application is running in a browser. Tags are the HOW of my text appearing where I want it. I DON’T CARE HOW. Just do it!

When I came to work in my current organization, the Web clients of all our applications were built with a homegrown library called Maelstrom. It was flawed in many ways, being the product of two programmers who also had to get their projects done, and neither of whom were well-suited for the task of ground-up framework design (in their defense, the people who invented HTML were even less qualified). But Maelstom had that one thing. It had the “you don’t have to know how browsers work, just build your dang application” ethos.

There was work to be done. But with more love and a general overhaul of the interfaces of the components, it could have been pretty awesome.

Why don’t other javascript libraries adopt that approach? I think it’s because they are made by Web developers who, to get where they are, have learned all the HTML bullshit until it is second nature. The HOW has been part of their life since they were script-kiddies. It’s simply never occurred to them that the HOW should not be something the app developer has to think about.

There have been exceptions — SproutCore comes to mind — but I have to recognize that I am a minority voice. Dealing with presentation minutiae is Just Part of the Job for most Web client developers. They haven’t been spoiled by the frameworks available on every other platform that take care of that shit.

My merry little band of engineers has moved on from Maelstrom, mainly because something like that is a commitment, and we are few, and we wanted to be able to leverage the efforts of other people in the company. So our tiny group has embraced Ember, and on top of that a huge library of UI elements that fit the corporate standards.

It’s good mostly, and the testing facilities are great. Nothing like that in Maelstrom! But here I am, back to dealing with fucking HTML and CSS.

Robots and Safety

Earlier this month I mentioned that the streets of San Jose are awash with robot cars (five out of a sample of several thousand along a particular high-robot-volume street qualifies as “awash”).

I mentioned that one of the cars was a test vehicle for an outfit called Nuro, and I further mentioned that almost all the content on their Web site is a big treatise on safety. I went on to say that I had not read that document.

Well, today I was thinking more about it, and I went back to Nuro’s site to poke into their safety information. First impression: A document for non-experts that tackles very complex technical issues, but it seemed pretty legit.

Final impression: Nuro must have some pretty serious cash behind it, to take this long and winding road to achieve public trust.

The safety paper opens with the observation that 20% of car trips in the United States are people going shopping, and another 20% are people running errands. For many of those trips, the human is there simply to ferry stuff around. If robots can accomplish that task, that directly reduces the exposure of people to injury in automobile accidents — they’re not in their cars at all! Instead they are home moving the American economy forward by playing Candy Crush.

Nuro also mentions near the start of the document that 94% of all traffic accidents are due to human error. Remember that number when someone someday says, “30% of all robot-car crashes are due to software failure!

Nuro is creating a vehicle that doesn’t have people inside it. That gives it some very interesting advantages in the safety realm — the vehicle can choose to crash into a light post rather than hit the idiot that ran out in front of it. Self-sacrifice is an option for a vehicle without people in it. And the vehicle itself can be squishy, since it doesn’t have to protect occupants. The “windscreen” is a shiny panel on the front of the vehicle designed to give humans visual cues about the behavior of the car, but it doesn’t have to be layered tempered glass. It’s just shiny bouncy plastic.

Not having an impatient human to appease means the robot can putter along at a speed that increases decision time and shortens stopping distance. I think that’s important… but 25 mph max might be a little too slow for the streets around here, until we can get rid of all the impatient humans.

There are many, many words used in the document about when the robot decides it can’t operate safely and will pull out of traffic until a remote human operator can take over. While I see the necessity of that short-term, I expect with a few improvements to civil traffic control (flagman signs that can interact directly with robot cars springs to mind), that before too long the robots will learn to outperform the human backup.

I chose the word “learn” because there is a sort of cyber-attack I had not heard of before. You have probably heard of machine learning, although it’s frequently (and incorrectly) labeled artificial intelligence. Many companies have developed sophisticated systems that, after exposure to countless examples, are able to generalize information. It’s super-slick.

Nuro’s cars work that way. They are constantly gathering data from the environment and using that to refine their behaviors, and they share that information with the rest of the fleet.

But when your data comes from the environment around you, assholes can manipulate that environment to teach the machines falsehoods. Sometimes yield signs are octagonal and red, things like that. (Although to be successful the false data would have to be about something subtler, I suspect. I can easily imagine college-me arranging traffic cones differently every time a Nuro vehicle passed by. It’s an obvious parallel to my “yeeech” experiment, which shall not be documented in this episode.)

Of course there’s all the other usual stuff to keep the vehicles from being hacked, and one advantage of “safety as a priority before the first line of code is written” is that security also can be built in at the ground level.

Also mentioned more than once: the “whole widget” concept. If the software and the hardware are developed together for a single focussed purpose, it will work better and be safer. Steve Jobs would be proud.

And if you consider air quality to be a safety concern, then something like this makes everyone safer.

Nuro recognizes that the biggest obstacle to their success is social. Will people seeing Nuro’s placid robot cars poking along through the neighborhood think good thoughts or bad thoughts? Will appreciation of reduced traffic congestion, better air quality, and a more convenient life outweigh the fear of a robot uprising, and perhaps even worse, the fuming rage of being stuck behind a little robot car doing 25 in a 35 zone?

Reflecting on how Fortunate I Am

It is not surprising that Silicon Valley has active Coronavirus cases. This is a hub of world interaction, especially with Asia. The capital-V Virus is here now, has been for a couple of weeks.

For the past few days my company and all the other tech companies in the area have been encouraging their employees to work from home. Starting today, I will have to pass a health quiz and fever check to enter my office.

What a luxury my company and I share. With some minor technical complaints, I can work anywhere. I just need my brain and a computer for it to manipulate.

There are kids who will literally starve without their school lunches. There are hard-working wage-earners who won’t get the hours they need, and others will simply lose their jobs.

Then there are the many, many people who will go to work and risk exposure every day. I will be on the couch with my dogs, wishing the screen on my laptop was bigger.

At Least Get a Sandwich

Tonight I have seen ads from two entirely distinct restaurant chains offering a free sandwich in exchange for your personal information.

I’m all right with that. Your info is yours to sell. Just be sure you understand the transaction. And here at least, you can establish a concrete value for your personal information. One sandwich.

So every time you give your information out, ask yourself: Am I at least getting a sandwich?

When you fill out an online quiz, are you getting a sandwich? When you sign up for notifications, are you getting a sandwich? When you send email to someone with a gmail address, are you getting a sandwich? If you use a gmail email account, are you getting a sandwich for every email you send or receive?

Google gives no sandwiches. Google pays you nothing for your personal data, and despite legislation in Europe and California, is skating around your ability to force them to delete your data. Facebook, also. All the social media assholes. They make three sandwiches of profit off you, but give you no sandwiches.

What is called for is a data marketplace, where your information is yours to sell, and you can negotiate terms. The cornerstone of that is that your personal information is NOT something someone else can sell.