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

The Pledge of Allegiance was Written by a Socialist

Here’s a fun fact I bet you didn’t know: The pledge of allegiance was written by a socialist. I’m not quite sure what Francis Bellamy was thinking; although he imagined all the people of the world pledging to their various flags, the result of the exercise is inevitably nationalistic.

But Bellamy was a socialist, and he wrote the pledge, and a treatise on the etiquette surrounding it. Much of that was slurped up by the flag code (although the text of the pledge has undergone two significant edits). The flag code includes language that states one should face the flag while speaking the pledge, and remove any non-religious headwear while one salutes the flag.

Uh, Whups, my original source contains the phrase “non-religious”, but the current code does not. I’m very curious when the change was made. If the flag code were on GitHub this would be much more transparent.

Most of this same etiquette has been transferred to the national anthem. So let’s get this straight. If sitting or kneeling or quietly protesting is bad, shouldn’t ignoring the whole pledge be worse? Not an act to raise awareness, just pure sloth. Sitting around, yapping to the people around you, absolutely ignoring the flag out of pure contempt should be far worse.

Right?

Tune in and watch your congress during the pledge tomorrow morning. Watch the senate. Glory in the patriotism. All those fuckers are far worse than a conscientious athlete hoping to deliver a message. Most of your elected representatives just don’t care. There is protest, and there is contempt.

Tree-Climbing

There is a tree in my backyard, and I’ve never climbed it. There was a time earlier in my life where that would have been unthinkable. Gotta climb trees, after all.

But somewhere between then and now I passed from being a climber of trees to a non-climber. I didn’t notice when it happened, but I do appreciate the shade.