November 1, 2017

It has become a tradition for me to post my first day’s NaNoWriMo output here on this blog. Some years I’m happier with it than others; this time around I’m very happy with the idea, but no so keen on the execution. Maybe ok for a first draft (and hey, isn’t that what NaNoWriMo is all about?) but I’ve done better. This has the makings of a quiet, personal story, but this is November so at any minute someone may transplant an alien consciousness into the cat and off we go.

I’ll try to do right by Max and Fucking Cat another time. Oh, and by the way, there’s some profanity coming up.

Max woke from a dream of a rainstorm of needles to find Fucking Cat tearing at his face with age-worn claws. He pushed the cat away with his left arm — his organic arm; he couldn’t afford any more repairs on the other one — but the creature yowled and dove for his abused face once more.

“Fuck!” Max said. He held Fucking Cat away from his face and it went to work on his thumb with its teeth while its claws tore at the flesh of his arm. “Fucking Cat, OFF!” The cat went limp in his hand. At least the voice commands still worked; the last time Fucking Cat had been hacked he’d had to find the hardware switch under its patchy fur.

His cluttered little cube was dimly lit by dozens of red and green status lights, casting crazed shadows on the walls as they shone between the wires, gadgets, and simple junk that cluttered every surface other than his sleeping palette and a plastic chair which had one leg replaced by a section of aluminum conduit. Old electronics running a little on the hot side, last night’s algae cakes, and cheap gin provided the smell that Max thought of as “home”.

He rose from the palette and wiped the oozing blood from his face and his arm with a scratchy towel and examined the dark-red dots. There had been a time when he could afford paper towels, and just throw them down the chute when he was done. He put the cloth towel back against his face and sat in the chair in front of his main console. The metal leg shrieked briefly as it shifted on the hard floor to accomodate his weight. The screen came to life as he sat, bathing the room in a serene, blue-white light. The cube raised other lights in the room, warmer light, the better to care for his eyes. His left eye, at any rate.

It didn’t take long to find the information he was looking for. The virus that had infected Fucking Cat was called SUPR DReD PeeKaBo01 (pronounced peek-a-boy), and had first surfaced thirty-six hours before, somewhere in the home system, possibly even Terra itself. Max snorted. Rightly or wrongly, Luna would be blamed in the end. That’s how it always was with Terra. If they couldn’t blame Mars, they could at least blame Luna.

His research complete, Max turned to the portal for The Pet Smith, and found the expected announcement about SUPR DReD PeeKaBo01. He muted the corporate yammering of the stupidly-attractive representative, no doubt selected for him based on a marketing company’s databse of images Max lingered over just a little longer than others.

Ignoring the distraction, Max searched for the instructions to download the patch. They weren’t where he usually found them, and that’s when he noted the somber expression on the spokesman’s face. She wore the regrettable bad news face.
“Ah, crap,” Max muttered, and with his well-maincured right index finger he allowed the spokesman her voice.

The message began with the spokesman sitting at a table, wearing a conservative, her legs crossed, however, to display a shapely calf. “Hello. My name is Kiki Ventura. We at The Pet Smith are deeply troubled by this most recent attack on our most loyal customers.” A flash of anger crossed her face, her deep-red lips tight at the corners. “The latest viral threat attacks a positioning chip in some of our classic lines of companion animals. Unfortunately that chip set has not been manufactured in many years, and the manufacturer has not been able to provide a software patch to cover the vulnerability.” Here she looked almost heartbroken. “While we will provide tools to rid your companion of any current infection, we cannot guarantee it will not be infected again.”

Kiki raised a finger like a lawyer in court. “All patrons of The Pet Smith can be assured that SUPR DReD PeeKaBo01, or any attack like it, is simply not possible on our newer lines of animal companions. Later model positioning chips are self-contained and not vulnerable to outside tampering.”

One of Kiki’s eyebrows lifted, and she leaned forward in her chair just a little, forcing Max to appreciate her breasts. “For those many who have loved their classic companion animals for all these years, perhaps this is the time to move on. You will be amazed at the incredible range of lifelike behavior our Model 12 line exhibits, whether cat, dog, or less-traditional companion. As part of the transistion, at first your new companion’s behavior will be practically indistinguishable from your current beloved. And we will recycle your previous animal companion with all the respect and dignity it has earned after a lifetime of service.” A brief smile crossed her lovely face. “That’s seven lifetimes in tech years!”

Now an expression of hopeful earnestness. “For a limited time…”

Max silenced the feed again, sighed, and pulled up his bank statement. Enough to cover the deductible for a visit to the Alice, the local veterinarian. He looked at Fucking Cat where it lay in a gray heap on his desk, legs tangled, one yellow eye staring blindly into the corner of the room, the other closed.

The flow of blood on Max’s hand and face had slowed to a slow ooze; he put the towel carefully in the sink and sprinkled it with cleansing powder before turning back to the terminal.

The vet was busy, it appeared; he wasn’t able to get an appointment for several days. In a neighborhood like this one, most of the animals were what The Pet Smith would have called “calssic”. What they really meant was “old”. But having so many older pets in the area meant that sometimes there were solutions to problems that the manufacturers didn’t know about. Or chose to ignore. He made an appointment for Thursday, five days out, and set to work clearing Fucking Cat of his infection, knowing that as soon as he activated the beast he would be infected all over again. Max wan’t going to have anyone to talk to for a few days.

On Wednesday afternoon, Alice called him.

“Max,” she said with no preamble, “I think you should cancel your appointment tomorrow.” Her voice was tired, carrying the weight of decades of delivering bad news.

“Why’s that?”

“Your warranty company has dropped coverage of FC’s model,” she said. She didn’t like the name Max had given his cat. “I’ll have to charge you full. And on top of that, I don’t have any fix for PeeKaBo01. You’d be wasting your money.”
“You can’t fix him?”

“It’s hardware. You could put a new positioning chipset in, but standards have changed. You’d have to upgrade the feedback bus and get way faster-responding actuators to support the clock rate of the new chips.”

“How much would that cost?”

“Several times the price of a new cat.”

By now Max had curled Fucking Cat into a ball and closed his other eye, so it looked like he was just sleeping, the thinning gray fur of his tail wrapped around his nose. “I don’t want a new cat.”

“Max, I understand what you are going through. Really I do. But maybe it’s time to let go.”

“Can you deactivate the chip?”

He waited while Alice composed her answer. “I could, but…” Max kept waiting, and finally she continued. “That chipset is part of a feedback mechanism that constantly recalibrates FC’s movement. Without that system, FC will gradually become clumsier and weaker, until finally he won’t be able to move at all.”

“How long would that take?”

“In a cat as old as FC, probably a few weeks. Maybe a little longer. It’s… not how you want to remember your Fucking Cat. Not for just a few extra weeks.”

“You want to hear something funny, Alice?”

“This isn’t going to be funny at all, is it?”

“My arm has the same positioning chip set. My eye probably does, too. I got lucky on the leg and the fingers. I won’t ask you to shut down Fucking Cat’s positioning chips, but I’d be grateful if you’d teach me how to do it.”

“I’ll see you tomorrow,” Alice said. “You can pay me in chickens.”

“If I had chickens I’d kill them for their chips,” Max said.

Alice smiled sadly. “You know what I mean.”

“I have to go,” she said.

“Why?”

“It dosen’t matter. I have to go. Can you look after Shadow? You’re the only one I trust.”

“I don’t want a fucking cat.”

“That’s not fair! He likes you!”

“It’s a fucking cat. It doesn’t like anyone. It pretends to like me to make you happy, because it pretends to want you to be happy.”

“What a mean thing to say!”

“It’s not mean if it’s true.”

“Just take him. Please. I won’t be gone long.”

“All right.”

“By the time I get back, you’ll be best friends.”

“I said I’d do it. You’re selling past the close.”

“You’re a good friend, Max.”

“Just fucking go if you’re going to go.”

1

Hedging Investments in Las Vegas

Usually gambling is a risky proposition, but occasionally it can be used to reduce risk.

I heard on the radio today that many months ago a Mattress Entrepreneur in Houston, Texas, said, “If the Astros win the World Series, I’ll refund all purchases over $3,000.” Tonight is a big night for Houston-area mattress buyers; if Justin Verlander pitches well a lot of refunds will be forthcoming, to the tune of $5 million.

Mattress Guy emphasizes that most of that liability is covered by insurance — his business is not at risk — but he finds himself in an interesting situation: if a sporting event comes out a certain way, he loses a lot of money. Tonight it looks like he could use a little more insurance.

Las Vegas to the rescue! By placing a substantial bet on the Astros, he can make back some of the money he loses if they win. If they lose both the next games he loses his bet, but he’s not out the five million. By placing a bet he ensures that either way he loses some money, but he won’t lose as much as he would have, should the Astros win the series.

Meanwhile in Los Angeles, one of the big winners in a World Series game 7 are the ticket brokers, and apparently the Dodgers are particularly broker-friendly, releasing tons of tickets into the market. Should there be a game seven, the brokers will make millions. So what can the brokers do to improve the chances of a payout? Head to Las Vegas! By placing a big bet on there NOT being a game seven, the brokers get a guaranteed payout either way.

What these two things have in common is that wagering on the outcome of the game is the exact opposite of gambling. In one case, it is turning a potential big loss into a guaranteed-but-manageable smaller loss. In the other case it’s turning a potential big gain into a guaranteed-but-smaller gain.

Not long ago some kid became famous because he had bet on Auburn to win the college football championship game. At the time he placed his bet, no one thought Auburn had a chance to even reach the game. But holy shit, after a few amazing upset victories there they were. If they won, the kid stood to make something like $65,000. That’s a lot of clams for anyone, let alone a college kid.

Before the game, some Web site took a less-than-scientific poll asking people: Should the kid place a hedge bet to get a guaranteed $30K (less than half of his big payoff), or should he let it all ride? The results of the survey were presented by state — respondents from every state but one said “Let it ride!”. You want to guess which lonely state had a majority of respondents vote “hedge”?

That state was Nevada, of course, where people who gamble for a living reside. Auburn was winning late in the game, but ultimately lost. The kid got nothing. He failed to accept the gambler’s axiom: If you stand to gain or lose significant money over an event that other people are betting on, use that action to eliminate risk. Gamblers hate uncertainty, and feast on greed.

Unlike hedge funds — mutual funds designed to go up when the market goes down but which actually completely fail at that objective — hedge bets are a pretty cold lock, if only for a very specific circumstance. Here’s hoping that matters to one of us, someday.

1

November is Coming

In this entire mad, mad world, there are only a handful of people who have “won” NaNoWriMo every year since 2001. There were about 100 of us who won that year, and the number can only shrink from there.

So while I sit on the third blow-it-up-an-do-it-again exercise with chapter 40 of Knives, I’m also looking at November, trying to decide if my reason to participate is habit, pride, or actual creative need.

But I thought of a good moment, and the moment led to a couple of characters with a very small struggle in a vary large universe that cares not what becomes of them. Characters which, for the sake of dragging things out to 50,000 words, will have to stumble across some other, contrived, larger struggle.

In December I can maybe produce a smaller story that fits them better.

1

Swift, the Programming Language, and Why I Love It

He had me at closures. Nomadic chunks of code that show up when they’re needed.

Quick note: This episode is heavy geek.

A few years past Apple was looking for something to fill a few minutes in their presentation to their faithful developers. “Let’s tell them about Swift”, someone high up decided. I was watching that presentation, and at first I was all like, “Another language? This will be a fiasco.” Apple has a mixed (and mostly bad with one great success) record when it comes to languages. A few minutes in, I was intrigued. By the end, I was sold.

Swift built on the work of great designers of other languages, and managed to bring (most of) the best of untyped languages with (most of) the best of strongly-typed languages. In my heart, I’m a strongly-typed guy, but I’ve been using javascript long enough to appreciate its flexibility.

But there’s one place Swift went that no other language has ever tread. Nil. One of the most common problems in software is when you expect something to the there, but for whatever unexpected reason, nothing is there. This is literally the cause of every blue screen of death you have ever seen.

In Swift, when you say that variable x will be of a particular type, right from the get-go you have to decide if x can ever be nil. If you allow that x can be nil, then every time you use x you have to take the potential that it is nil into account. No getting around it. If you say that x can never be nil, then the compiler will not allow you to create any condition that x is nil.

You can, of course, punch the compiler in the face and say you know goddam well that by then x will not be nil. But, awesomely, you don’t have to be all aggro. You can be totally graceful and say, “if x is not nil, then let’s have some fun.”

Swift has many other features created with one purpose: Make the costly mistakes commonly made with other languages impossible. One of the motivators of this language was a potentially awful security flaw on iPhone a few year back, caused by a stupid missing curly brace.

The Swift compiler is almost spooky. I’m not going to go into its almost-magic ability to resolve generics, but dang.

I do have a quibble: If one is focussing a language on security and preventing bad programming patterns, I would like to see the end of “break” and “continue”. We all learned long ago how terrible “goto” is; it’s time to recognize goto’s buck-toothed kin. (In the iPhone security problem above, goto was part of the problem. I was stunned that any code from my company included that instruction.) I once sat through a long discussion on the WebKit boards while they argued about how to define constants to handle exceptional cases, when the exceptional cases themselves could have been eliminated by banishing “break”.

Programmers out there: any time you want to type “break”, there is a better answer. If you can’t find that answer, it’s time to grow. Seriously. Outside of case statements, there is no time “break” is the right answer. EVER. (Swift eliminated break in case statements for you.)

Maybe I’ll fork the Swift open source and create hard-ass Swift. The same as Swift, but without the goto’s. Or maybe I’ll just challenge my peers to embrace the spirit of Swift, and write good code.

I program in four languages day in and day out, and a few others now and then. Give me Swift.

1

You Can’t Go Home Again

On Nov 30, 2001 I finished my first NaNoWriMo effort sitting at Callahan’s, a brew pub in my neighborhood, with minutes to spare. Callahan’s occupied a spot in a little mall that had previously housed Reno’s Cafe d’Italia, a little family restaurant I worked at for two weeks. Callahan’s was better. I was already fairly regular there (they were close to my workplace) when, soon after they opened, brewing equipment started showing up. At the time, there were no other brew pubs in San Diego.

They got the brewery up and running, and after a shaky start while they refined the recipes and got the quality under control, things started to go well. Bernardo Bitter was my favorite, but in the early days it was awful as often as it was awesome. Apparently that brew used a special yeast that was, in brewing terminology, “a little bitch”. But finally they got the yeast under control, and people found the place buried deep in the mall, and all was well.

By 2001, Callahan’s had annexed the next business over and expanded their dining area. The move frightened me, because many restaurants fail when they try to grow and end up ruining what they have.

By the time I was laying the keel of The Monster Within during a later NaNoWriMo, Callahan’s had moved across the street to a larger, more accessible space that had come into this world as a Tony Roma’s rib joint. There was a large mirror on one wall, emblazoned with the logo of Bass ale. I was looking for a name, and in Monster you will find Master Bass.

But people don’t go to bars for alcohol. Alcohol is much cheaper at the liquor store. (Bad Bobby, a friend from another bar and a teacher at Bartending Academy pointed out this obvious truth to me.) People go to bars to take alcohol with friends. Lacking friends, patrons turn to the staff. I had a lot of friends on the Callahan’s staff.

I won’t try to list them all, but there are two I have to mention.

Travis. A really smart guy, well-read, articulate. We weren’t tight, not at all, but in a lot of ways I wanted to be Travis. He felt things strongly, and could explain why.

Rose. My favorite bartender. I have laughingly told many other bartenders that they are my second-favorite, but there is only one at the top. “Rose, you rock,” I would say each night as I left. If she was busy I would point to her and raise my fist. “Am I in your story?” she would ask. Spiritually, she was in many of my stories, but it wasn’t until Worst Enemy, a later NaNoWriMo effort, that I put her quite directly into a story. I’ve never done that for anyone else.

I also never told her about that one. By then I was a nomad.

Occasionally I would pass back through San Diego, and I would visit my friends at Callahan’s. Fewer and fewer of the staff would recognize me, but the faces I missed the most were still there.

Although it has been a long time, and I knew that it was not realistic, I thought that if I walked into Callahan’s today there would still be connections for me.

But Callahan’s, apparently, is gone. No longer can I entertain the thought that I will meet any of my friends, both the staff and the regulars I used to sit next to, ever again.

Bill, Linda, Darlene, Joe, Debbie, Malcom, and all of you, it was a good time. Travis, I know you’re all right.

Rose, you rock.

5

Giving with Maximum Gain

In this case “gain” is used in the electronics sense. We are prepared to amplify your donation 6x. Six! X!

We can all be excused if disaster fatigue sets in; first one hurricane, then another (carrying two disasters with it), and finally fires. Hopefully finally.

But many people lost their lives and their loved ones, and many more lost their homes to the wildfires in Northern California. As someone who watched a large chunk of my home town burn down in years past, I feel for the folks up in wine country.

The fires are mostly out, or at least contained, and the weather is cooling. The first part of the disaster is over. But now comes the much more difficult part. The rebuilding. Providing shelter for thousands of people who are, unexpectedly, homeless. Some of those have enough insurance to get back on their feet (eventually), but not all.

Habitat for Humanity exists to build homes for those who need them. We’re holding a fundraiser right now, and it works like this:

You donate $10. The Official Sweetie and I match that donation (up to a total of $250). Now your donation is at $20. But then my employer gets involved. They are currently matching donations to Habitat times two.

Your humble ten bucks is now sixty mighty dollars of world-improving power.

Just so we’re clear, because you don’t give the money directly to the charity, but instead use us as a proxy, you won’t get a tax deduction. You’ll just do six times as much good.

Ready? Let’s do it!

1

An Apology to my San Diego Friends

I was in San Diego yesterday. I debated whether to tell anyone, but in the end this was a hit-and-run trip to the courthouse for a document, with a little time set aside for a trip with my sweetie (and dogs) to Kono’s for a big breakfast and a too-short, very happy visit to Dog Beach.

For those keeping score at home, Kono’s is everything it ever has been.

For my San Diego friends, I promise I will visit again, and next time there will be ‘bertos and Callahans and Tiki and BV and Keith and Mikie and Adam and Jerry S. and all the rest of you. I feel a little guilty, but this trip turned out so very well that I hope you can forgive me and accept my rain check.

2