Recently in Humor Category

The Knight and the Will


Once upon a time there was a knight in the service of a great lord.

One morning, as he was standing guard at the drawbridge to his lord’s castle, a brigand came down the road and attempted to pass by him. As was his knightly duty, he silently drew his sword and blocked the brigand’s path. His lord was quite wealthy and the castle was elsewise undefended, and brigands frequently made halfhearted attacks at fighting their way past him into the castle. But he was a formidable knight, and none could best him in battle.

“Hello!” exclaimed the brigand, nodding vigorously. “I appreciate your diligence! Marvelous security!”.

The knight cocked his head and let out a perplexed grunt despite himself. This was not, in his experience, typical brigand behavior.

The brigand, meanwhile, was nearly vibrating with excitement: “Yes, I appreciate it a great deal! The safety of my castle is paramount, and I’m quite glad to see you doing your duty.”

The knight was so surprised he dropped his fierce mien and let slip the first word that came to mind: “What?!”

“Oh yes, I do appreciate a go-getter. We’ll get on well!”

“I’m afraid you must be under some form of misapprehension, sir. This is in fact the castle of my great lord, and I am his defender. Now be on your way!”

“Marvelous, marvelous!” exclaimed the not-at-all-ordinary brigand. “Well said, well said. Except: I’ve here a document, saying that this castle is in fact not the property of your lord, but rather my property.”

A moment passed.

“Pardon?” asked the knight.

This was news to him, and he was by now so wrong-footed he had quite forgotten to be fierce.

“Yes, it’s all in here I’m afraid,” replied the brigand, waving a large leather-bound tome around somewhat negligently. “You see, the last will and testament of your lord’s great-great grandfather contained a clause stipulating some rather complex rules for succession.” The brigand’s voice dropped as he added in a proud, conspiratorial whisper: “It’s taken quite some time to un-puzzle it in fact.”

The brigand went on to explain that the heavy, bound document was in fact the will in question, and that it contained a lengthy series of complex puzzles, clues, quizzes, and codes that specified how the great-great-grand-lord’s property was to be disbursed. He shared with the knight the bundled papers on which he had sought to solve the mystery, and helped walk him through the complex reasoning that led the man to his claim of ownership. The two sat together for hours, poring over the complex question and seeking the truth of the puzzle.

The sun was slipping lower in the sky when finally the knight arose in triumph and let out a cry of excitement.

“Aha! I see it!” he exclaimed. “You’ve absolutely right in your solution to the puzzle on page seven… but your erred slightly in the acrostic on page nineteen, which means your inferred clues to the quiz on page eighty-one led to an incorrect code for deciphering page one-hundred-eleven! The castle is still the property of my lord!”

The brigand’s face fell as he frantically flipped through pages and verified the knight’s objection.

“You’re absolutely right,” he finally admitted. “I guess I’d best go. Thank you for your patience!”

“Not at all,” replied the knight, genuinely pleased to have resolved the sticky issue and already looking forward to the praise his lord would doubtless heap upon him for his diligence. “Not at all!”

The brigand turned and began walking away.

The knight stood, raised his arms over his head and stretched the mighty stretch of an active man who’d spent the day doing puzzles cross-legged on the ground. He leaned left and right, pulled his arms in front of his torso and behind, stood tip-toed on each leg in turn, and only then, fully limber, did he chance to turn around and see, for the first time in hours, his lord’s castle.

And the hastily-assembled log bridge that the brigand’s compatriots had levered across the moat while he was distracted.

And the ladder they had climbed over the castle wall.

And his lord’s corpse, hanging out the tower window, dripping blood on the parapet below.

Once upon a time there was a knight.

He was of no service.

He had had no lord.

But he had learned a very important lesson: Never let your opponent dictate the arena of the conflict.

Scenes From an Interview


"Obviously the job requires some pretty serious math skills. As the first-line screener, my job is basically to do a sanity check and make sure that you meet the baseline we're looking for, so that we don't waste our time and your time with further interviews that aren't going anywhere. I see you've got an impressive resume and a lengthy career, so please don't be offended if my questions seem simple; it's not ajudgementon you, but a reflection of the goal here. Any questions? No? Good."

"So here's my first questions: What's one plus one?"

Loser answer number 1:

"Geez… I don't think anybody's asked me to add one and one since elementary school. Is that really something you do? I've been working in this field for twenty years now, and I don't think I've had to know one plus one even once… any competent professional has Excel, or a calculator, or somethingthat will take care of details like that for them. I'd go so far as to say that anybody who's manually adding single digit integers like that probably should be fired."

Loser answer number 2:

"Oh, I remember this one! I haven't actually done one plus one since kindergarten, but I studied up on the basics before this interview, and I remember that the answer is two. Here, let me write a two for you… It's kind of curvy around the top, I think, like this… no, more like… here we are, that's a two."

Loser answer number 3:

"Eleven. Yes, I'm sure. No, there are no problems with my answer. You put the two ones next to each other, and it's eleven. What the hell is wrong with you?"

The humor here's pretty obvious, right? No reasonable person misses the fundamental problem with these answers, I hope. Any yet if you shift the field to computer science, suddenly people think these sorts of shenanigans are reasonable.

Of course nobody would implement ELEMENTARY_DATA_STRUCTURE_1 by hand in this day and age; it's in the standard library on any platform worth dealing with (well… maybe not Cocoa…) and the folks writing the library probably spent a lot more time debugging and optimizing than you'll ever be able to devote. You don't get asked to implement these things because the interviewer's going to steal your code and check it in to source control.

And you also don't get asked because, gosh darn it, we totally need an idiot with an eidetic memory who can vomit code snippets he doesn't understand. We have Google for that! We're not testing your memory, but your ability to understand basic computer science principles and - gasp - write code! If you don't have the code paged into memory right now, from our perspective that's a HUGE WIN. We want to watch you re-derive things from fundamentals, not regurgitate all over Collabedit.

I hate seeing both sides of a thing.

Air conditioning feels to me like more than a modern convenience. It's the sort of thing that I expect every freestanding structure to have, and the lack of AC is to me as disconcerting as the lack of electricity must have seemed in the near-recent past, when 'everyone' had it but literally everyone didn't yet have it.

AC is about more than cooling; it's about your air being cleaned and circulated. Your air is, for lack of a better word, conditioned. It gives me a feeling of protection to know that a building is relatively air-tight and that the oxygen supply is being regulated. There's a wild, untamed outside, where the insects and arthropods and germs and smoke and pollution and other anarchist elements can have their day, and there's the nice, soothing, controlled inside where I can have my books and WiFi and TiVo and peace and quiet. It's a wall.

A largely illusory and highly ineffective wall, to be sure. But it's making a stand; drawing a line. Out there: chaos; in here: the homey disordered order that defines my comfort zone.

And of course in asserting all this, I know full well that I'm being silly. I sound like a science fiction cliché — one of Asimov's bubble-dwellers who refuse to believe the world outside is even habitable, of perhaps someone out of Brave New World. And while I can recognize intellectually that I am — on this point at least, and possibly on many others — stark raving mad, that doesn't in any way negate the underlying impulse. Knowing I'm crazy doesn't make me sane, it just makes me annoyed at the insufferably buggy firmware with which God or evolution or the Engineers has saddled me.

Change I Can Believe In


Damned Whippersnappers


Remember being a teenager*?

Teenagerititude is the state of believing that everyone else in the world is phenomenally stupid — that the solution to every problem is blatantly obvious, and that everyone would be much better off if they'd just shut up and do as you say.

The interesting thing about being a teenager is that you don't actually outgrow it.

At some point a light goes on in your mind, the scales drop from your eyes, the metaphor similes upon you, whatever, and you realize you've been a teenager and you stop. You congratulate yourself on being so adult and on owning up to your past bad acts and you move on with your life.

And then a few years later you realize that you were mistaken, that you were actually still a very-slightly-more-evolved form of teenager despite that revelation, and the scales drop from your lights and you eye what you metaphor and you move on with your life.

Until it happens again.

Eventually you reach a degree of meta-awareness — you recognize that Socrates kinda had a point about the whole 'knowing you know nothing' schtick. That's when you ascend to a higher plane of existence! Then you help Teal'c and MacGuyver out a few times, and eventually you return to the show with your tail between your legs because it turns out your landlord won't accept 'art' in lieu of money. But hey, higher power. You got that going for you.

Until, damn it, it happens again.

Meta ain't enough, nor is meta-meta. Maybe there's some omega-meta state where you stop realizing that you're an idiot, and you get to draw a Batman logo on Anthro's cave wall just to reassure the idiots who didn't figure out the pattern based on Kal and Hal and whatnot. But I can't be sure of that. I think any form of personal growth boils down to suddenly recognizing what a jackass you've been and thus becoming an exciting new form of jackass.


So what's the moral of the story? The moral is that I'm stupid, you're stupid, he's stupid, she's stupid, and the primary differentiating point between us is our awareness of our own incompetence. So when something looks dumb to you, remember that it either is dumb, or it's smart in a way you haven't thought yet deciphered — and prudence dictates that you assume the latter until you've assembled reasonable support for the former. And even if something turns out to be legitimately dumb, don't draw conclusions from that, because oftentimes there's more to the story. It's not uncommon to find clever implementations of a piss-poor design; that may be a sign of abstractional schizophrenia, or it may be a sign of the blind leading the brilliant.

*If you currently are a teenager, shut up and get the hell off my lawn. Damned kids.


Just Chatting

| | Comments (1)

iPhone 3GS

The 'S' stands for 'Stupidname'.

I look at that name, and immediately it brings to mind the Apple IIGS (which stank).  That then makes me think of the Apple III, which stank to high heaven.  It's like somebody at Apple said, "hey, I know, let's give it a name evocative of our greatest corporate failures!"

Seriously, the only worse name would've been the "iPhone Performanewton: Centris Edition".  They could pair it with an eWorld membership and give it a built-in GeoPort Telecom Adapter.  

Maybe bundle an AAUI transceiver.

Okay, I'm done.
For a long time I've semi-seriously joked about writing a humorous non-theoretical book about computer science that isn't a total crock.  I think I've finally decided that the easiest thing to do is break the entire field down into a random series of blog posts that will in all likelihood never actually be collected into a book.  So here's the preamble.

So what is programming?  Programming a computer is all about explaining to a computer how to do things.  The big secret all programmers share is that computers are dumb.  Really dumb.  But -- and this is why we keep them around -- infallibly obedient and really, really good at math.  Have you ever called a tech support or customer service line and had to put up with a dolt who can't do anything but follow the script in the big-honking-binder his supervisor gave him on his first day?  Now imagine that guy with a calculator, and you're imagining someone maybe ten or twenty times smarter than a computer.  The job of the programmer is to write that big-honking-binder.

So if you're writing a big-honking-binder for your new friend the phone drone, what kind of instructions can you put in there?  If your employees were intelligent and informed, you wouldn't need much: just a single sheet of paper that says 'handle customer issues' at the top, and voila, you're done!  But remember, the computer you're programming here is stupid, and he's not going to understand high-level instructions like that.  You need to break it down:

  1. Ask the caller whether he or she currently owns a product.
    1. If the caller says 'yes', go to step 2.
    2. If the caller says 'no', go to step 5.
  2. Ask the caller what is wrong with the product.
    1. If the caller says 'it will not turn on', go to step 3.
    2. If the caller says 'it will not turn off', go to step 4.
  3. Tell the caller how to turn the product on. Hang up.
  4. Tell the caller how to turn the product off. Hang up.
  5. Tell the caller where to buy the product. Hang up.

If you look at that script, you'll probably notice a few things (besides the fact that we're training our human computer to be unbearably rude).  What if the answer to step one is "I don't know"?  Different people (computers) might handle that differently.  Some might hang up; some might continue on to step two; some might ask question one over and over until the frustrated customer picks 'yes' or 'no' (we'd call that "undefined behavior", which basically means we don't know in advance what's going to happen; undefined behavior is a source of some pretty nasty bugs). What if there's something wrong with the product besides an inability to turn it on or off?  What if the product won't turn on because it's broken?

Those are all bugs in our program, and they all serve to show part of what makes programming difficult; decomposing a task ('make customers happy') into tiny little steps that a mindless automaton can follow is very difficult.  You can't count on a computer to make a value judgement; you can't count on a computer to recognize that 'yeah' or 'yup' also mean 'yes'; you can't count on a computer to do much of anything except for faithfully following whatever flawed or incomplete script you give it.  That and math.

Wikis Are Irish Roadsigns

My family has a running joke that the road signs in Ireland are there to remind you of things you already know rather than to direct you to places you've never been.  If you've never been to Ireland you'll think I'm exaggerating, but the signs really are just a step short of saying "the place where Mary brought that lovely jacket - 12 km".

It's even worse if you stop and ask for directions - "Oh, you'll be wantin' to take that lane just past Brian's house, you know, Brian with the dog!"  It takes about fifteen minutes to convince your erstwhile directioneer that you don't in fact know Brian, having spent the majority of your life on the other side of the Atlantic Ocean, and that you'll really need your instructions expressed in a format that doesn't presuppose knowledge of the local geography so intimate as to render directions unnecessary.  At which point you'll be given a confusing array of rights, lefts, and reverses, followed inevitably by "and then it's right up the road, you can't miss it!", which you'll dutifully follow in a large circle before returning, six hours later, to ask the exact same gentleman for directions.

In general he'll pretend to have never before made your acquaintance and eventually (after repeating the previously-rendered fifteen-minute protestation of your non-acquaintance with Brian's dog) give you an entirely new and completely dissimilar set of instructions that will culminate in your accidental arrival in Paris.

I'm not entirely sure how one manages to drive from Ireland to mainland Europe, but it happens, I swear.

But anyhoo, my point is that Irish road signs are designed to remind you of things you already know, or provide you with details about subjects on which you already have high-level understanding.  And Wikis are exactly the same way; they make excellent references, but they're largely terrible as first-order sources or methods of communicating information, primarily because of the structure they inspire - the same disaggregated, freeform organization that makes it possible to deep-dive into related matters as a reference makes it very difficult to arrange information in the sort of cohesive sequence necessary to teach people something new.

Learning something new is akin to recording every lecture in a college course and playing them back in a random sequence - even though every note may be hit, it's not precisely musical.

All of which means precisely nothing, except that I haven't posted in a while and this was the only interesting and non-proprietary thought in my head.