Coder Toys

Coder Toys

Toys for the Computer Professional

Job Interviews and Pomegranates


From ayurvedictalk.com.

“Yes sir, I do eat fruit. I have eaten fruit for over 12 years. I eat fruit almost on a daily basis. I like fruit - I think fruit is cool. As my resume shows, I am one of the best darn fruit eaters in the business.”

“Yes, but do you eat pomegranates?”

“Well, I have eaten a few pomegranates. I liked them those times when I did eat them. But I haven’t eaten a lot of them. There just wasn’t a pressing need to eat them at any of my previous positions. And, well, there just isn’t any place in my diet, currently, that they would really be a good fit at this time. But I can eat pomegranates if you want me to eat them. I mean, it is a fruit, and I eat fruit. It is no big stretch for me to eat pomegranates if that is what you all eat here.”

“Yes, but, well, we’re sorry. We are looking for someone who has eaten a lot of pomegranates.”

“I understand that, but just look at the amount of fruit that I eat. I am not only an expert fruit eater, but can eat faster than anybody else you are likely to get to apply for this position. It would probably only take about two or three weeks for me to get up to speed and be able to consume mass quantities of pomegranates - and I would do so with a care, with an attention to detail, with a consuming passion that is rarely matched in the fruit eating profession. Eating fruit is what I live for.”

“Yes, but, well, do you have any other pomegranate eating experience you haven’t mentioned? We are really looking for someone with pomegranate eating experience on their resume, even a year or two. It doesn’t even have to be a lot of pomegranates. We don’t need a lot of experience or expertise, we just want someone who eats pomegranates. And you haven’t eaten many pomegranates, right?”

“…. No. I have 30 years of fruit eating experience, I have eaten enough pomegranates to know that I like them and can eat mass quantities of them - I won’t be messy and I will eat those pomegranates like there is no tomorrow. But, no, I have only eaten a few pomegranates.”

“Well, then, we’re sorry. You are just not what we are looking for at this time.”

“OK. Well, thanks.”

“Here, the door is this way.”

Report: The User Expectation Reduction Conference, Monterey CA, Feb., 2008

This was the 13th annual conference, held again this year at the Double Tree hotel.

This conference was started in 1995 when large numbers of people really started using computers and the potential for their negative impact on the software development industry was first realized. In particular, this involves scenarios where voters expectations vis-a-vis performance, reliability, ease-of-use, and feature sets become unreasonable - resulting in the severe hamstringing of the industry. In particular: reduction in application diversity, productivity; subjugation to the ’soft’ sub-disciplines like Computer Human Interface, and, the final nail, Congressional Design and Oversight Committees.

The Doomsday scenario is, of course, where laws and regulations are passed that constrain public software programs to conform to the exaggerated expectations of an angry public.

This year, with the successes of previous conferences raising the level of confidence, I was allowed to take some notes of the keynote address by [Deleted].

Here is a partial transcript of what transpired behind closed doors this year.

Moderator: OK Everybody. This, the 13th annual UsER conference will now come to order. This year we… MISTER Gates, will you PLEASE take a seat? Thank you.

As you all know, this has been a banner year. With yet another release of Windows… Yes, Bill, ‘Vista’… *sheesh*. With ‘Vista’ putting a real cap on performance for at least the next 5 years, along with carefully guiding ease-of-use and feature sets along the Gates-Ellison curve as proposed at the 2001 Workshop on Singularity Avoidance Techniques, I think we can all rest easy that any potential Doomsday is pushed out another year or two.

What? I wish you guys would wait your turn… You guys from Borland always… Yes, OK. Our sister conference, the Productivity Reduction Organization (PRO) has moved the session on Ruby of Rails to the “Rainbow” conference room, and it… yes, it is still being held at midnight tonight. Booze, as always, is optional [transcripts forthcoming - Mike]. As I understand it Rational is sharing the spotlight this year with our new members from Apache…

Cool it you guys! That is in the past. Have any of you tried to configure Apache lately? … AS YOU ALL MIGHT REMEMBER… we decided to rake ANT, oops, I mean take ANT (a little Froidian there, huh), off the Most-Unwanted list in order to welcome our new members who have no more desire than we do to see the software industry veer too far from the ‘95 Gates Proposals. And with the productivity friction from J2EE having played out - this complexity creep in the ascendant Spring / Hibernate / Struts / Apache architecture should keep expectations of online users curtailed for many years.

Well, now that you all quited down - there isn’t really much to say. All of your products have increased in complexity and difficulty of use - no, Mr. Jobs is not here this year, but you have to admit that they are keeping a real handle on everything BUT ease of use over there, and moving to INTEL to toe-the-line on performance was a big conciliation for those guys - …and we HAVE stayed on course in terms of performance.

The 10% per year performance guidelines… are we up to the 1989 MSDOS 2.1 performance benchmark yet Bill? No? Excellent. And good old Washington D.C. is keeping net bandwidth under-performing as always - though isn’t there… yes, there is a birds-of-a-feather covering scenarios where the American public wakes up and discovers the dreaded Download Gap. [laughs] Yes, we all know that - but it is within the realm of possibility… geez you guys, I am just saying… the public MIGHT wake up - and we have to be ready.

Well, that is about it for this 2008 keynote. Proposals for new approaches and technologies requiring management are being accepted in room 42 and will be presented by the panel members at the No Surprises Workshop as always. This year, I think we REALLY need to pass the Online Graphics Feature Management Act. You guys at Adobe have done a great job increasing complexity and unpredictability, and keeping a cap on reliability at the same time… Yes, yes, we all do that, I know. But there is a lot of pressure for someone to come up with a cross-platform graphics driver that works - and you all know that we haven’t gotten Google to accept our invitations after all these years - but, but… but, … but Bill, as YOU KNOW, we are talking about cross-platform - there are too other platforms Bill. Just… Oh, never mind.

I hereby start the proceedings of the 13th annual UsER and will see you all at the Hiccup Awards.

[end of transcript].

Living Hand to Mouse

To Think - Perchance to Click

The arm settles into position. Familiar and yet provocative with the latent power inherent in its abilities to navigate the Metaverse.

The wrist seeks its resting point, often irritated with the sharp edge of a desk, or crumbs that dig into skin, or the sweaty, disgusting stickiness of a sweaty and worn wrist pad. The elbow gyrates around this pivot point, thus attempting to raise and lower the hand as the fingers wiggle around seeking the optimal position. Fingers flaying gently like the arms of an octopus, gently, so delicately, seeking the location of the mouse without moving it unnecessarily from it current location on the screen. The little fingers and thumb, curling around the warm plastic, recognizing the curve, relishing the control surfaces, take up positions in the optimal locations to be able to rapidly respond to the electrical impulses of our brain.

The fore-fingers are posed with respect for their vast potential over above the mouse, a slight, reassuring tap - tap to gain confidence that they are ready and able - but are under strict constraints to not disturb those buttons!

Relaxing only slightly, the 2nd finger may rest on the seldom used right mouse button, thereby increasing the capabilities of the first finger to strike(!) the left mouse button. This location is worn with human sweat, oil, lotions and grease from 1000 snacks and worse. But this is home for this finger. The wrist and forearm, and especially the supernaturally over-developed muscles on the back of the hand, are tight with the maintaining of this most unnatural of poses. This estranged finger, always held precipitously above this rarely used button, stressed and tight with the inactivity, forced to always maintain this DEFCON 2 alert level. With the inability to move except in that praying mantis-like sway and bow, compulsively touching the right button, its home base - this finger is the loneliest finger. It is the poor bastard that is always looking for work but rarely finds it. If not for context menus, its life would be one of starvation and deprivation outside of a few custom graphics packages.

But all of the minor fingers, they have found their home.

These ‘grasping fingers’ and thumb spend hours upon hours per day after month after year here. Safety nestled on the sides and top of the mouse. In their way, they grasp and relax, unconsciously, feeling the tackiness of the residue of their toil here, calculating with all the precision of the great martial arts masters how and how fast they can engage and disengage from the mouse. For these are the moving and lifting fingers. They propel the mouse cursor on its journey through of miles upon miles of pixelated territory.

With the arm resting on the outer edges of its calloused and perpetually irritated and annoyed inner wrist, twisting away from its natural bend to meet the needs of a mouse resting on a flat surface…

The grasping fingers engage the mouse.

The mouse cursor discovery mission is now underway.

Swish left and swish right - executing well-worn and practiced mouse cursor location algorithms. First the calm gentle movements of a willow tree in a gentle evening breeze. Then, after some fractions of a second, the process automatically escalates into a circular, more frantic motion that we have learned will cause *significant change in location* of the mouse, motion that should be easily discovered by eyes of average attentiveness. When, as the time allocated to this mission starts to expire without success - often frantic, screen-scratching-like panicky motions are executed, as mental alarms start going off, adrenalin and other noxious chemicals are pumped into the blood stream, and deep-seated insecurities shakes our confidence level in response. Previous traumatic episodes where the mouse was disconnected from its mouse cursor flash before our eyes which generates fear and trepidation in all parts of the mouse-human symbioses framework.

After some amount of stochastically distributed amount of motion and time,

the eyes have aquired a visual on the mouse cursor. The hand-eye coordination engine of the brain is now fully engaged.

What happens next is random motion if the brain has not communicated any immediate goal to this engine, more to do with the noise level inherent in any system as sophisticated as the brain, like airplanes circling waiting to land, like a tiger circling a prey incapable of escaping, but perhaps most like the eyes of a child delighted with everything it sees - attracted to the odd shapes and bright colors, the idea of touching them all but perfectly content to just look as the goal-directed ‘lets do it’ part of the brain takes a breather.

After some eons in terms of the processing power available to the human mouse-wielder with average mental facilities, a goal forms. Something elegant, yet joyfully ape-like in its simplicity; to click, to double click, to drag, to position for intercession by the keyboard. The eyes roam, pinballing back and forth across the screen, locating landmarks, acquiring and discarding previous targets, narrowing its complete attention to the desired screen real-estate; an area with boundaries no less insubstantial to the user than those of created by a picket fence, or the urine of a primeval beast from the darkest depths of our reptilian memory cortex.

The grasping fingers happily, giddily swing the mouse across the pad toward the desired location. For these few fractions of a second, with a goal now within reach, with large probability of success…the involvement and coordination of the brain, the hands, the eyes - the contentment is extreme. The world, for this fleeting moment, finally makes sense and is under our complete control - conforming to our will as if we were a God - hurling bolts of clicks and drags in response to our Will, traveling down our arms and out our fingers in bold deliverance of the fate - the fate of the Petri state of the program on the screen - and thereby to so impact the Real World that we really live in - often more virtual than hard reality in even the most healthy of lives in the Information Age.

The fingers move. The mouse moves. The mouse cursor on the screen moves. Is the mouse cursor closer to or farther from the target? Are we going too fast? Are we veering off course? Have we sailed past the target? Make corrections as necessary. Over compensations are accepted and are fed into the feedback machine that we have engaged to handle getting the cursor from where it was to where it is going to be. The intentionally programmed non-linearity of the speed of the mouse cursor with respect to the speed of the mouse is handled with out blinking and extensive work on the part of the brain. The goal is All and it is enough.

Then, during long distance operations there comes a time when the question must be answered: Will the mouse make it all the way to the target in a single operation on this tiny little mouse pad? Perchance will we have to Lift and Backtrack and Lower?

Listen with am attentive ear in any office and you will hear the patting of little mice as the hit the mouse pads over and over again as they reach one edge of the mouse pad, are lifted, moved back to the opposite side, and placed back down on the pad. The grasping fingers, along with the wrist, now reaches beyond the isometric, past the kinetic, into the anaerobic. This is where the weight of the mouse, the precise character of the curve of the mouse’s side panels, the texture and tactility of the material itself - friction that is beneficially increased by the sweat, oils and foodstuffs left over the hours of serious activity - is all evaluated with respect to Liftability. Because now the mouse must be lifted. Casually. Swiftly. The goal cannot be obscured, tarnished, swapped out, interfered with by this need. For by lifting and back-tracking to the other side of the mouse pad, we are extending the mouse pad’s usable dimensions to what can pass for infinity with respect to the requirements put upon mouse activity by any reasonable program - the Lift and Backtrack technique is necessary and sufficient to allow is to use our mouse to move the cursor anywhere and everywhere on any screen.

The wrist lifts the mouse, grasped firmly by the grasping fingers with the clicking fingers positioned well away from the mouse buttons, wobbling in a somewhat embarrassingly idiotic characterture of a curious beetle bugs inquisitive antenna. A difficult side-to-side motion of the wrist is executed, the muscles of which will remind us later is unnatural when repetitive. At this pint, efficiency of achieving a greatest distance possible is compromised in order to maintain a fixed location of the wrist - for lifting the entire arm to obtain the maximum distance per Left and Backtrack is left for those special times when either emotional release is desired - whose telltale signature being the greater noise of impact as the mouse is slammed down into its new location - or some amount of physical exercise is desired, the meat and bone arm needing to move after long periods of inactivity.

The mouse returns from its aerial maneuver to the mouse pad in a gentle, yet swift motion. In all but the most exquisitely performed landings, one edge of of the mouse touches down first, followed by the others in a two-point operation - accompanied by a rattle of mysterious internal parts of dubious integrity. Like the repetitive motions when brushing ones hair with a handle-less brush, multiple strokes are required when traveling long distances across the extensive real-estate on large, high-resolution monitors.

Zooming past the target is handled with aplomb as the hand circles back, taking it a little slower each time, circling like a hawk after strangely still prey. As the distance shortens, as the hand slows and tension rises, the mouse is pushed harder into the pad, friction rises, eyes narrow their focus, and attention and human oversight returns. The mouth may acquire a pseudo-malicious, got ya, appearance we reserve for these solitary moments of triumph.

The location we programmed our brain to use our hand to move the mouse to is at hand. We wake up and start thinking again after the relatively long period of spacing out while the body completed this physical operation we assigned it, time we get to fuck off waiting for our meat machine to drive the mouse to the target. Now it is time to re-evaluate our high-level goals here. The operation about to be performed is checked against a list of known hazardous and unprofitable operations. Will this operation destroy data we do not want to destroy? Will it in social embarrassment? It all boils down to answering the question of whether it result in something that can be classified as ‘doing something stupid’?

The 1st finger tenses. Does this mouse require a curling, grasping motion? Or perhaps a pushing motion? Can we use gravity and just let our finger fall on the button to execute this click? Is the point of contact to be the tip or the fleshy pad of our finger? Or perhaps will it be the side of the finger - toughened and nerve-damaged from all those clicks over all those years.

But these are questions that have been answered a long time ago when we first met this particular mouse. Or perhaps all the way back to when we were young and we first learned to ride our first mouse - some decisions, like how we hold a pencil, are peculiar to each person and have no rhyme, no meaning.

But all this is of no matter.

The button is pushed. A gloriously satisfying click is felt and heard. The world has been changed.

[In the spirit of and in dedication to Neal Stephenson’s description of the first bite of Captain Crunch cereal described in his book Cryptonomicon]

Me and my mouse, baby…

Next to one’s spouse and children, the most important thing in our lives is…. our mouse and mouse pad.

Face it, if we could get a faster PC tomorrow, or DELL came out with a 40(!) inch monitor, our PC and 30 inch 3007 WFP would be kaput - we’d be doing the file transfer boogie, or applying our transient clutter removal algorithm, before we even started checking our email.

Sorry, PC, but our loyalty is to the technical performance of our hardware, not some slow, out-of-date dusty ancient embodiment from 6-months ago [Just ignore the hiccup in Moore’s Law, I do].

And the keyboard… the layouts have all pretty much stabilized - and yeah, we might have a favorite, but face it, if one came along that wasn’t so completely encrusted with the last 6 months of snacks and drinks [breakfast, lunch and suppers for me], a few sneezes here and there [didn’t say it wasn’t gross - but keeps other people from mucking with my workstation, yeah?]…

But the mouse and pad. Whoa now - the heft. the shape, the smoothness. Its support and comforting of our tired wrists - day in day out. Oh man oh man.

OK, forget spouses. They are disconcertingly unpredictable. They come and go.

The pad. The PAD! The need for pinpoint accuracy, The ability to scale small movements in The Real World with small movements of the mouse pointer. The deformation sooooooo purrrrfect, the increase in friction being just what we need to slow down our approach [no hard mouse pads for me, baby!] as we lean on it just a little more during the excruciatingly precise positioning required to put that tiny little text cursor between the E and e in isEeditable.

And the mouse. Ohhhhh… the mouse, baby. The curve and lovely texture being just spot-on for us to lift, move and place; lift, move and place; hundreds of times per minute with just the slightest effort on our part. The precise click and stability of the mouse wheel for those all so important pastes in VIM [who writes code anymore, we just cut copy and paste and touch up a little, right? Don’t worry, no one will find out.].

Those intensely clickable button’s tactile and audible feedback as we click ourselves happily along day in and day out. Never failing to respond to our wishes - unlike [spouses] the other [kids], more [traffic] annoying things [waistline] in life.

To have and to hold - to death do us part…

This Help’s Not For You

This help is not for you, it is for us.

If you, or someone you know, trips over an idea about what kind of toy that might find soothing in their hours [months] of need, then please post them ideas as comments to this post.

Just please be careful tripping over them ideas, some of them can be quite a hazard to a humdrum life.

I am smarter than the computer

I AM smarter than the computer.

I am smarter than the COMPUTER.

I am SMARTER than the computer.

And the computer telpaths back “Are you now. Prove it.”

[I presume I am not the only one whose computers have a smart mouth].

This is kind of our basic assumption.

That even if the computer is trying to out smart us [and I know some of you are not completely on board with this] that it will lose in the end because we can trick it, because we are trickier we are, into revealing what its little game is.

Oh yes, in the end it is always something it blames on us - it was our fault we ran that script with “rm -rf /” in it. Yeah. Right. Like we would do such a thing.

OKAY, maybe it was indeed us who did actually do something so stupid that it makes our ancestors cringe. Again. That makes how many times in the last hour?

But, still, we ARE smarter than the computer. Right? I mean, at least that’s something we can be proud of in those… moments.

Answers to the Questions of Deep Meaning and Consequence.

Like… where do bugs go when they die?

How large does a process have to be before we are committing a mortal sin when we KILL it?

Will artificial intelligences be thankful for all we did for them and send us a Happy Holidays! card each year after they become the dominant species in the [known] universe? Or will they be royally pissed for all the bugs and processes we killed?

Will Microsoft ever just give up and admit defeat - that they just aren’t no damn good at this software stuff - and buy a medium-sized country and fly all their millions from their campuses there and hang out on the beach all day singing the… choose one:

* Rolling Stones - Sympathy for the Devil

* Beatles - Tax Man

* Zeppelin - [and (he’s) buying the] Stairway To Heaven

* Any kid - Nyahh Nyahh Nyahh Nyahh

Will we ever just let a language die? Or, when the Earth falls into the sun, will there be Cobol and C++ and Java programmers still pounding away trying to fix one last bug before the Big Gobble [Ruby will still be the dominant language at that time, of course, and Ruby coders will be hanging out on Ganymede - prime Sol-front property]

Is it broken? No? Don’t f*ck with it.

Below is a [Boing Boing supplied] variation on the flow chart that was popular in the mid 80s. Someday I’ll dig through the extremely low-density bug infested (the creepy crawly kind) cardboard boxes and find the original.

Anyway - this is the office coder’s mantra. Those of us independent types have to split our personalities [even more than they were before, each personality now has about 1K of memory to work with - the thrashing is terrible, and each one always want the IO bus… ALL the time] to create necessary numbers of poor sad sacks to blame the slings and arrows of outrageous fortune on.

Don’t Panic!

OK. So this is kind of the super class of all affirmations.

All affirmations seem to be either preventative, keeping us from approaching too closely that padded cell that, face it, we more or less all know lies in every coder’s future (Save Early and Save Often, Multiple Redundant Physically Well-dispersed Backups, Use a ‘Nix) or to pull us back from the very brink (Lack of planning on your part does not constitute an emergency on my part, When in Doubt - Reboot, ,,,).

And then there is the practical… Like Die Bug! Die!

Affirmations are good for the spleen and all the top programmers use them. When you see them muttering? It only SOUNDS like F*ck this and Oh Sh*t that. Didn’t know that did you?

Life, the Universe, Everything … and Computers too.

Riffing off Douglas Adams was a lot funnier before The Movie. So, with the power of our little computers in our heads - let’s null out the pointer to the movie, OK? Poof, it is gone. Ah, I feel better already.

Mr. Adams is no longer with us - but his humor is. And it is in the spirit of his inside out Escher-esque analysis of our predicament that we chose the name for our main category in this blog.

For those of you who don’t know and are too burnt out to Google him in another tab, Douglas Adams wrote The Hitchhiker’s Guide to the Galaxy -

Wherein -

It was determined that this here planet we are presently occupying is actually one big, [and rather inefficient one would think], computer. This computer [us] has been programmed and operated by lab mice. Programmed to find out the answer to Life, the Universe, and Everything. The answer is, of course, the famous inexplicably simple…. [should I tell them?] …..

Next,

Links of Sublime Relevance

May these links be the path to your bitwise enlightenment.