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.

7

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.

3

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.

A coupe of days ago I punched the time clock at the end of the day and transitioned from coding to writing… and kept coding. Yesterday, the same thing. Today, so far it’s mostly been coding.

It’s not a bad thing that there’s something I’m working on at Apple that has taken root so deeply in my brain. If your database isn’t normalized, what tools can you offer at the just-above-driver level to make it as easy as possible to keep data consistent, without degrading write performance? It’s a very small part of my job, but chasing questions like this is geek nirvana.

But now — right now — I’m gonna finish a draft of Knives 40.

1

Ah, Kentucky

She was probably as old then as I am now, but better-preserved. A friendly smile and a big hat, a twinkle in her blue eyes, her voice with that perfect Kentucky lilt. We were in line to place our bets for the Derby. It was crowded in that line, and I moved to block people from jostling her wide-brimmed hat. Then I saw the badge hanging from a lanyard around her neck, clashing with the classic pink rose of her dress.

But I’m getting ahead of myself. The adventure really starts long before that, when Mikie asked me if I wanted to join him and his father Mike and another man named Art at the Kentucky Derby. Mike and Art were old friends, and the Derby was a tradition for them. Usually, I think, they treated clients to the experience, but this year it was Mikie and me.

It started fairly early in the morning, at San Diego International, when my party got a warning that if we got too hammered off Bloody Mary’s we would not be allowed on the plane. (Or was that the Las Vegas Trip? I think that was the Las Vegas Trip. Never mind.)

The thing to understand about the Kentucky Derby is that, except for television, it is not a singular event. The races build up for four days or more, and the parties in town and in the infield of the track also pick up in intensity. Also important to note: certain parts of the stands cost more to sit in than others. Our section, apparently, was on the swankier side. We shared our little area with a very nice, very wealthy guy with a stunningly beautiful younger wife. There was no doubt on either side what had attracted each to the other, but it was an honest relationship, I think, and the fact they seemed to genuinely love each other was a bonus for both. They joked and laughed as he threw tickets to the concrete beneath our seats for bets he lost. My curious forensics discovered most bets in the hundreds of dollars.

His big bets he was making offshore, and he was annoyed that the cell signal at the track was getting overloaded. That’s how long ago it was.

We were staying at some Sheraton or another, which had a shuttle to the track. The place had an absolutely typical hotel bar, except this particular hotel bar had Heather. A pixie with a quick smile and an honest streak that only a great bartender can pull off. She hated mint juleps. They are labor intensive, and the asshats who drink them when they come for the Derby are the same asshats that don’t tip well.

I got on well with Heather, but Art was a charmer and Mikie has a certain something. She started spending extra time around us.

There wasn’t much in the way of actual good beer at that bar, but at one point I found myself sitting next to the only other person there who seemed to care about the taste of the beverage he was consuming. We talked for a bit; I didn’t get his name. But he was a good guy.

Perhaps it was the second night in Louisville that Mikie found the karaoke bar. It was a good bar that happened to be doing karaoke, and I perused the list and chose… Nirvana.

When I do Nirvana, it can go two ways: awesome or horrifying. There is no in-between. That night, Kurt Cobain borrowed my pipes and I was fuckin’ wailing. As far as I remember. Then suddenly POW I was on the floor trying to keep singing while not spilling too much of my beer and dudes were slam-dancing while I shouted (around laughter) “I AM STUPID, AND CONTAGIOUS! YEAH!”

Best karaoke night ever. Except maybe full-bar Bohemian Rhapsody. Or all-you-can-drink night in Las Vegas… But those are other stories. All with Mikie. So there you go.

Anyway, back in Kentucky, I was a little shaky the next morning. It was probably the day before the big day by then, and the stands were getting full and our high-roller pals were getting serious. I also learned to recognize the badges some people wore. They were the badges that would give the owners access to the winners circle if their horse won. Each badge had a number (the number of the race that day) and a name. So a badge with a big 8 and the name “No Hope” would mean that the bearer owned the horse “No Hope” that would be running in the 8th race that day.

I told you already, I was in the high-roller section.

At this point, gambling-wise, I’d been doing OK but not great. I have a system for betting on the ponies, if you can believe that. I study the racing form, do the numbers, balance risk and reward, and go place my $2 bets at the window. When I won my tiny jackpots I always left a tiny tip, so the window people were OK with me, even though I was pretty much an obstacle to the real flow of cash.

The night before the Derby tension was definitely ratcheting up at Heather’s bar. Then Mike Sr. went AWOL for a while and Mikie was losing his shit and Art was as calm and confident as ever, even as he told me stories I’m pretty sure I shouldn’t have heard. I sat at the end of the bar with The Only Other Good-Beer Drinker for a while, before retiring.

It occurs to me now — I don’t remember my hotel room at all. At all. I probably shared it with Mikie. Maybe all four of us? It’s a blank. Intellectually I have to recognize that I slept at points on that trip.

Race Day. We take the shuttle to the track early, and a steady stream of mint juleps ensues. There are a lot of races that day; the track squeezing all it can out of the big crowd. I place a few bets, drink some juleps (no doubt from a big julep-vat), and study the form. I find what I’m looking for.

Funnicide, I think the horses’s name was. We called him Fungicide. A long shot, but not silly. The favorite that day was Empire Maker, a fine steed, Triple-Crown whispers following in his wake. But Fungicide had the exact profile in the racing form that I looked for. Each workout better than the last. Peaking at the right time. “Fungicide’s gonna win,” I told my group. Turns out they listened.

Almost time for the big race. I was standing in line with the high rollers who don’t bet offshore over the phone. Maybe they want a souvenir ticket. Fungicide was going to win, but Empire Maker was a beast. The easiest exacta ever. I was poised to rake in dozens of dollars. Dozens!

Her hat brim brushed me and I turned around to find her smiling apologetically at me. “I’m so sorry,” she said. Then someone else brushed against her hat and I used my right hand to very gently grant her space. There was another man behind her, large, probably on her payroll, but I was in the right place to do the right thing.

She gave me a little smile and we chatted a little bit, before I saw her badge. The number was 10. The Derby. She had a horse in the Derby. When I made that discovery I was neither gushing nor coy; there’s even a chance I was pretty cool. “I’m going to put a bet on him right now,” she said. “Will you?”

“Absolutely!” I said, or maybe something more suave than that. (For the record, I did put a bet on her horse to win. He did not do well.)

It’s hard to tell, actually, with a genteel Southern woman, whether she likes you or if she’s just tolerating you. In every case she will be polite. But I think… I think she liked me. Sometimes I wonder what might have been, had I protected her hat a little longer. But when it was my turn at the window I turned my back on her and that is all that ever happened.

Fungicide won. Fungicide beat out Empire Maker and won the Kentucky Derby. A titanic upset.

On the shuttle from the track back to the hotel, the mood was ugly. “Who the fuck bet on Funnicide?” someone shouted. In that angry space I just shut up.

Back at the Sheraton, things were different, too. My good-beer buddy was a celebrity; people asking for pictures with him. Everyone else was pissed off. Heather confided in us, “I may be smilin’, but it’s fake.”

“Who the fuck bet on Funnicide?” the lament came again.

“I did,” I said. “I got the Exacta.” I was more than a little proud of that. There was a some quiet around us then.

“I got the trifecta,” Art said softly, with a knowing smile. He had called the race 1-2-3. Put me right in my place. And it’s safe to say his bet was somewhat larger than mine. It paid for his trip, he told me later. Hopefully my research justified what he spent to host me there, as well.

One wave of anger after another washed through the bar, almost starting fights, but finally the last wave passed and carried with it the anger, leaving exhaustion. Good Beer Guy was still at the bar, and I sat next to him. By then I had learned that he was part of the cartel that owned Empire Maker. We didn’t say much; we just sipped our beers. “You never know,” I said at last, and he nodded. But I had known.

5

Doorknobs and the Speed of Light

This afternoon I opened a door in the house to find a dog waiting anxiously for me on the other side. It took my mind to an old comic by Gary Larson, in which lab-coated dogs are studying diagrams of doorknobs, marked up with vectors and other sciencey-looking things.

Knowing how it could change the lives of canines everywhere, the dog scientists struggled diligently to understand the Doorknob Principle

I wondered if somewhere in a dimension far away yet right here, there might be a similar comic pinned to a tetricle (a four-dimensional cubicle) featuring humans and the speed of light.

The Last Ones

A little something based on these musings.

It was difficult to tell what the animal might have been. A rabbit, perhaps, but a large one. These days, half the creatures Buzz ate didn’t really fit any of the old names.

He waved his hands to scare the flies away, but they just came back. Fur from the ragged skin of the carcass puffed away and floated in the air of the dying desert day. The meat of the creature was greenish and almost liquid as he lifted it to his mouth. He tried not to breathe, tried not to taste, tried, just for a moment, to suspend all conscious thought, to become a machine until the creature was in his belly. There were parts worse than the meat, and he would have to eat all of them to stay alive.

As the first bite slid down his throat, he took a shuddering breath and wiped a tear from his cheek. His stomach reacted happily, asking only for more.

“Hi Buzz!”

The girl was sitting on a rock about fifteen feet away, glowing in the evening light, her schoolgirl dress shorter than what he suspected would actually be tolerated in a Japanese school, her legs akimbo. The sere landscape behind her was faintly visible through her glowing form. “Heishi-chan,” he said.

“I’m so glad you found the food!”

“Yes. Thank you for telling me about it. I’d be lost without you.”

“I found another thing, kind of a dog, maybe? It’s still moving. Twenty-one point seven-five kilometers on a bearing one-one-six. It’s a little out of the way…”

Buzz opened his throat and let another bit of carrion slide its way to his stomach.

When his throat loosened up he asked, “Did you get another look at the river?”

“Oh, yes! I have devoted most of my sensors to the river since you told me you wanted to know more about it.”

“Are there people there?”

“Yes! There are many, many people!”

Buzz felt his heart jump in his chest. His time of solitude was almost over. “That’s great!”

“But they’re all dead. I think the river must be poison. Whoever escaped the bombs seems doomed to drink from the river.” Heishi put on a sad face.

Buzz slumped into the sterile dust and looked at his meal. He wondered if it was worth even bothering to eat anymore.

“You have to stay strong,” Heishi said.

“Why?”

“You’re my friend, Buzz. I would kill everything that still lives on Earth for you.”

“I don’t want you to do that.”

“And I won’t, because you don’t want me to. Because you’re my only friend and I would be so sad if you were mad at me.”

“Don’t you talk to other people, too? When your orbit is over some other continent?”

Suddenly she was cagey. “Of course I do. But… I would kill them if you asked me to.”

“Don’t kill them.”

Her face lit up with happiness. “Okay! I think they’re all going to die soon, anyway! They can’t eat what you can.”

Buzz let out a breath into the cooling desert air. “This really is the end, isn’t it, Heishi? There’s no reason anymore to pretend that humanity will survive. I may as well end the farce.”

Heishi knotted her hands together and clutched them to her gratuitously-ample holographic breasts. “Um… Buzz? I just detected motion at the farthest reach of my instruments. I won’t know until I can adjust my flight path, but it seems like it might be a woman.”

“You’re lying.”

“Please eat, Buzz. I promise I have detected a female biped that might be human.”

Buzz looked at the almost-rabbit he was choking down and wondered what an almost-human would be like. Not unlike himself, he concluded.

3

Perfection

I’m on the patio this evening, wearing a sweatshirt but naked from the knees down. My whiskey glass is unwhiskied, but there’s a simple remedy for that.

Moments ago a tiny creature landed on my glowing screen, backlit by pixels. These tiny bugs annoy me, because it seems their entire purpose in life is to swim in something I want to drink. And when they’re not swimming they’re flying around my eyeballs or crawling across my screen or exploring my nasal passages. The little fuckers bother me mightily.

So naturally when this little critter landed on my screen, my first instinct was to flick out my hand and crush it. But… lit that way, I could really see how well-constructed the creature was. It possessed a symmetry and a focus in construction that I had to pause and appreciate. A much better spokesman for intelligent design than any mammal will ever be.

I stayed my hand, and it flew away. If it landed in my glass, I am now digesting it. A more honorable death, for sure.

Kickstarter! Fun Cards! Toys for Tots!

As many of you no doubt know, I have taken many the picture of Harlean Carpenter (who is a fiction). You can see a bunch of them over at Poetic Pinup, but there are some shots that will never show up there. Four whole shoots worth, in fact.

You see, a while back someone suggested that it would be fun to make a deck of playing cards with pictures of Harlean on them. We thought that was a capital idea and got right on it (roughly three years later).

Here’s a look at promo photos taken during the three shoots we have in the bag so far:

Those shots won’t be in the actual deck, but they do give an idea what the cards will be like. You will note that each photo includes a number of small objects, from one to thirteen. Because fictitious or not, Harlean takes her themes seriously. I’m really looking forward to the clubs set this weekend – Paleolithic, baby!

The page over a Kickstarter explains it all better than I can, but I’ll give you a brief rundown – 52 fun pinup photos + jokers, high quality printing, plastic case. You can get extra-special cool stuff if you pony up a bit extra.

Some of the proceeds go to Toys for Tots, so this is also a chance for you to shine a droplet of sunshine into a kid’s life.

You would make me all sorts of happy if you (yes, YOU), were to pop on over and buy a pack. And whether or not you decide this awesome pack of cards is for you, please, PLEASE spread the news.

Thanks for your support! You all are awesome.

1

Paying for Medicare For All

Bernie has proposed a bill in the Senate, and damn near every Democrat who hopes to run for president next time around has jumped on to support it. The ones with anything to lose have been a little more cautious, but they all agree this proposal is a great way to start a conversation. And that is certainly true.

Among Democrats, support for the idea is very strong until the idea of increased taxes to pay for it is mentioned. Because let’s face it, taxes would have to go up to pay for it.

But consider this: My health plan is already taxpayer-subsidized. If you have a company health plan, you are taxpayer-subsidized as well. Your employer doesn’t pay taxes on your benefit. That’s money out of the government coffers to make your health care cheaper. The ones who need support the least benefit the most.

That’s bogus, even though I benefit. It’s backwards from the ethic I embrace, that those doing well look out for those who need a leg up. I am embarrassed that my health care is subsidized while others go without any care at all. You should be, too.

So when people ask, “how do we pay for it?” — a legitimate question — point out that the government is already subsidizing health care for everyone with a job. The ones who need it least.

1

Goodbye, Cassini

In about twenty hours, the spacecraft Cassini will plunge into the atmosphere of Saturn and destroy itself, to protect any potential life on Saturn’s moons. Can’t have Earth-life-tainted space junk floating around out there.

Cassini’s mission has been an astonishing success — with an emphasis on astonishing. It found things that turned some of our notions on their heads, and revealed a small moon with a liquid water geyser(!). It’s going to take a while to figure that one out.

I’ll not go into all the details; there’s actually a pretty nice write-up at fivethirtyeight, and you can get real-time updates straight from NASA.

The scientific instrument I most appreciate is the plain ol’ camera – Cassini sent home some beautiful images. Here’s a low-res markup of one of my favorites: A shot of Earth taken through the rings of Saturn.

The universe is still filled with mystery; we’re barely out of our own back yard and everywhere we turn we find things that astonish us. As we struggle with the trials of having a lot of sentient creatures packed onto the rocky parts of the surface of one small planet, we would do well to take a breath and look up, and be awestricken by what we see.

2

A Proposed NFL Rule: Surrender

I am not a rabid fan of the sport, but I do enjoy catching the occasional NFL game. Yet while I no longer have a team to pull for (the San Diego Chargers abdicated that position), the two teams that play nearby seem to be doing all they can to NOT draw me into their fandom. The Raiders, well, they’re the Raiders*, and also they are leaving town in a couple of years. No point jumping on that wagon, even if they might do well this year.

Then there’s the 49ers. I didn’t watch the game today, but I monitored its progress now and then. I saw one sequence that sent me the clear message: “we don’t like our fans.”

The Niners were behind 23-0, well into the 4th quarter. (For those not up on the jargon, time was running out, and they were getting their asses kicked.) They moved the ball downfield through steady performance only to come up 4th-and-one deep in enemy territory. (It’s late, but for the moment at least, they are not sucking — but it’s time to make a big decision.) The game is essentially over, but there’s a chance to make some noise. One yard? It’s actually the kind of thing their steady-but-not-flashy quarterback is pretty good at. Yet rather than go for it and perhaps spark a great comeback, the coaches take the safe route, wave the white flag, and kick a field goal so at least they don’t have a zero on the scoreboard. Now they’re only down by 20 points!

Fine, whatever, you’re cowards. Better luck next week.

But then, THEN, when the other team had the ball, the Niners called time out.

You have already surrendered! Why are you doing this? If you thought there was any hope, you would have tried to score a touchdown on your previous possession. Why are you wasting everyone’s time prolonging a game you have no intention of trying to win? Why do you hate us so much? That part of the game is called “garbage time” for a reason.

The rule change: When a team attempts a field goal when they are losing by more than the minutes remaining times four, they forfeit all their remaining timeouts, and spiked balls are intentional grounding (which they should be anyway). Additionally, the other team cannot use its timeouts unless the score narrows to less than that margin. Let’s just get this thing over with. We’ll call it the “surrender rule.” Or perhaps, the “show the fans a little respect” rule.

_____
* The Raiders are just another football team. I don’t dislike the team as much as I dislike the fans. In fact, there are a few players on the Raiders who quietly make a huge positive impact on their community, and I respect them tremendously. And to be honest the fans in Oakland are working hard to remove the stigma of violence that surrounds them, while still being hardcore fans. What I really hate are the Raider fans in Los Angeles. I hate them a lot. But “The Night I Put a Curse on the Raiders” is a San Diego Super Bowl story for another day. (For the record, I formally lifted the curse at the start of last season.)