Hey, I’m busy right now

c.e.: I'm one of the worst people in our office for walking into someone elses office "for a word".

I have a smallish office, office, longer than it it wide, at an L-shaped desk that almost slices the office in half. I like the small office for its tendency to discourage the impromtu brain-storming sessions I used to enjoy in my old office, which also served to ensure I never got anything done.

I sit diagonally to the office shape, my monitors in the turn of my desk, with their backs to the nearest wall. To my rear-left is a large window, to my forward-right the door.

A lot of the programming work I do is maintenance and debugging, which means that I generally don't type as much as a programmer who's "implementing". And because I'm working with a host cluster *and* a client application, I'm typically working on two monitors and 6 separate process windows at a time.

It used to be really difficult getting a good stretch of concentration here, there was always someone wandering into my office and misjudging my posture, expression or keyboard activity. "I don't mean to interrupt" can be such a head-job.

These days its me making the misjudgement, in that when Ramp or Martini wanders in to ask me questions, I'll sort of set a mental break point, but unless I get up and walk away from my desk, I find myself only dropping one of the things I'm working on.

And I'm not talking about destroyed concentration here, I'm talking about when I'm running some kind of low-priority QA test or testing out a feature or a fix that's not officially on the schedule and I don't think I'm putting my back into it. "Yup, I'm not busy right now" moments.

It's very surreal – I think I stopped what I was doing, I'm listening to what Doc, Gophur or whomever is saying. So, uh, what am I typing?

I've always had jobs that needed an awful lot of multi-tasking and mental bookmarking. I wonder if after all this time, quietly and without my realizing it, I've trained myself to automatically fork() mental processes off…


Gophur: Hi Oliver, what’s happening? Um, I’m gonna have to ask you to go ahead and move your desk again. So if you could go ahead and get it as far back against that wall as possible that would be great. That way we’ll have some room for some of these boxes and things we need to put in here. So if you could just get to that as soon as possible that would be terrific, ‘mkay. Thanks a bunch, Oliver.

Heh, I *chose* this office over the large office I used to have for the Window and the small size. Killer, Gophur and others frequently used to have conferences/brainstormers in my office, and as cool/gratifying as that was, it was kinda unproductive :)

When Doc finally keels over, tho, I might put a bid in for that office with the couch.

I am the worst multi-tasker. I get very short with people when I’m trying to concentrate on something. Heck, even if someone is talking to me with music on, I have to turn the music off to not be distracted. It makes me a good listener but horrible at doing more than a single task or even projects that I can alternate between.

You call it “forking”. But its queing of processes with about 12 seconds of rewind ability.

I was a “Desk Sergeant” in the USAF military police with 6 cars of radio traffic, 15 phone lines, 200+ alarms, and walk-in supervisors or complaints. All the while I had to type (document) what I did or what my ‘supervisees’ were doing.

I could bs with my buddy in the office as the radio squawked with non-emergency traffic. I could be on the phone and greeting people at the window and typing my blotter.

You do not really “fork”. You queue and hold for available processor time (your brain). You’ll know you are doing this in fact when someone begins to discuss something complicated and non-standard with you, and you’ll have to stop your ‘background’ processing to put full processor (brain) time on the task at hand.

Since I worked at Yokota AB in Japan, and my call sign was “Yakota”, the only symptom was a tendency to say “Yakota Clear” (clear meaning ‘finished talking’) in everyday phone and personal conversations.

OR…you may be a true “forker” KFS and that’d be one h3ll of a processor inside your “Brain Housing Mechanism Mark 1”.

What happens is that I’m working in, say, 4 windows, at a sort of light setting – there is nothing pressing going: a good example is when I’m injecting data into a host process via a database and have to type in SQL commands in one window and watch 3 others for reactions. But the key is that I’ve already “threaded” my attention.

Someone will walk in and start talking, and I’ll turn to them to listen and respond. I’m not busy and I’m not griping here about people interrupting. But after a short while I start typing again. There’s no urgency to what I’m doing, and I know that it would benefit from my full attention, but there’s enough of a “thread” on-going that the “enter data” task resumes…

I actually wrote most of the STO/grid code while another coder was telling me about how the grocery store near his house sells british confectionaries, and that did kind of pissed me off, because it mean’t that I didn’t get to read the code, and I made an awful lot of (simple) typos. (“naybars”, “cahtCells”, “adjacentSell”)

Like a lot of my friends who are programmers, coding is somewhat automatic for me. You learn the baby steps, like how to write a sort function, and then you learn how to solve bigger problems and combinations, and I suppose its somewhat like learning chord combinations on the guitar. Being a good guitarist is about knowing the various forms of “C” that you intuitively pick the right one for going C, G, C, A. (I can’t play the guitar, so my apols if that was a bad example)

Mostly the conscious part for me is figuring out the scope of the problem and some sort of basic visualisation of the goals I need to achieve.

I started out programming trying writing MUD languages, but one part daunted me – the parser. How do you make a computer understand English? It’s easy if you’re making it understand a limited vocabulary, but how do you make it understand the vagueries of a user-defined language?

In particular, in a MUD, the parser has to be aware that “the plant” may refer to different objects depending on whether you say “drop the stick” or “get the stick”.

I remember this so clearly. I was in a hospital, having my arm xrayed, and a nurse rather roughly moved my arm thinking it was in the way. The pain was so intense that everything went gray, and I heard my own voice say “So its just a matter of tokenising everything. If the user is *defining* the vocabulary all you need to do is tokenize the definitions and what the user types and bobs your uncle”.

At this point the pain went from numb to just excrutiating and I sat up and screamed “YES PROBABLY” before falling off the table.

I hadn’t been thinking about my MUD project for over 3 months. I went home and typed out my parser code that had “come to me” since my revelation, and it mostly just worked. I was terrified of the code for months afterwards because I wasn’t entirely sure I understood it (and that’s probably because my coding style back then was ‘avoid spaces and long words’). I tweaked my language definitions a little and I had a parser that could handle various grammars.

So, what you are saying is, that if Doc and Killer tie you up and put you under intense pain you can create amazing code? :)

I think that (the arm thing) is satori. This was explained to me as the insight a young zen buddhist monk might gain while scrubbing floors. The idea being that while the monk is fully engaged in scrubbing the floor or whatever, the master might sneak up on him, whip him in the ass with whatever is Japanese for a “switch”, and the young monk will get a flash of insight. (Also, it’s a good story to make the young monks scrub the floors).

Joker, it is indeed possible to fork() several processes. Sometimes you just dont seem to find a solution to a specific problem.
In my experience it is the best thing send the processing back into the background. At some point in time (as KFS described) your brain will get back to you presenting you with results you havent even thought of. Often this is triggered by something completely unrelated. Dividing your attention as you described is something else.

You could always move into the copy room. That’s pretty damn cozy.

I have this image of a programmer at a Lucy-style desk with the words “The Programmer is IN/OUT” and Doc walking up to ask a question as Charlie Brown.


This is interesting to me, since I’m presuming you meant “adjacentCell”. the Sell/Cell homonym (same sound, different meanings) happens, I think, because your brain is HEARING the word you are typing, rather than selecting from a dictionary of words in your head.

Then, because of the distracted brain, your MEANING checker (as opposed to spell checker) is out of commission. So if you fork, you are losing *some* higher level processing.

I suggest that your friend talking is a low bandwidth information feed to you. You take is snatches at times, and that’s when the homonyn type errors occur. You lose a higher function to burst process a low bandwidth data stream (talk). You can hold some seconds of this talk on a mental “tape”. You burst stream it as you need every 4-5 seconds.

Anyone can stop any other human from multi-processing by simply saying “p*ssy” or “nekkid @ss” suddenly and unexpectedly. High impact words have high bandwidth because of visualizations-connotations-connections that are complex. It’ll bust your mental stream and you will have to work to get back to “background multi-task points”; finding some now, some later and irretreviably losing others.

grrr…no editing ability…and typo’s from distracting people talking next to me as if no one else is working in the entire section of this floor…

Really what I’m describing isn’t anything miraculous – we all do it to a degree, but certain types of activities actually make use of it.

Picture for a moment a toddler with one of those “fit the shapes” puzzle toys, who hasn’t yet worked out that the shapes correspond and is still trying to fit them by brute force trying different combinations… Hold the thought…

One side of your brain deals is more abstract and creative than the other, it deals with long-term planning and memory.

It is continuously trying to find “fits” for ideas, concepts and memories. This is the little child trying to fit the shapes into various holes. When you sleep, this side of your brain has more options to play with.

Imagine that while being observed our imaginary toddler can only test one shape at a time, and only on the square hole. But when we leave the room, he can manifest an extra 3 pairs of arms, allowing him to try all four shapes at once…

Not everyone’s brain is exactly the same. What the brain does can affect what the brain becomes. I’m not suggesting that this is conscious control, but we don’t come with all of our faculties wired and ready to go, and we do know that the brain is a living neural network that literally grows connections between cells to implement the “wiring”. And since these connections affect how the brain works, and how the brain works affects which connections are grown and which wither…

Our hardware shapes our drivers and our drivers shape our hardware and …

So my theory…

In my adolesence I missed out on a lot of social development and integration because I was the “foreign” kid in a rather prejudicial town with very few foreigners, so I turned to computers. Faced with not fitting in, our inner ape makes us look for a proxy to attach ourselves to the troupe with and through. From the very beginning I saw computers as a social tool, as I’ve said countless times before :)

The creative brain is also responsible for constructing emotional models of other people. I suspect that I diverted some of that development from people-modelling to program-modelling.

I, for one, welcome our Quantum Baby overlords.

Wow, I must get my hearing tested.. I never realised all thsi time people were telling me that I’m forked in the head…

Leave a Reply

Name and email address are required. Your email address will not be published.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <pre> <q cite=""> <s> <strike> <strong> 

%d bloggers like this: