Recently in Humor Category

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.

Now that they've shifted the release schedule back even further, I think they're going to need some new titles for the movies.

  • Harry Potter and the Rascal Mobility Scooter
  • Harry Potter and the Mystery of the Kids Blasting Their New-Fangled Rock and Roll Music
  • Harry Potter and the Lawn You Damned Kids Better Get Off Of
  • Harry Potter and the Colonscopy of Terror
  • Harry Potter and the Bottle of Lipitor
  • Harry Potter and the Order of the AARP
  • Harry Potter and the Cauldron of Prunes

Half of those are Hoggle's fault.  In fact, I'm going to blame them all on him.