Extending the family metaphor

27 02 2013

The metaphor of family is everywhere in programming. We have parent and child processes, HTML has parent nodes whose child nodes are all siblings. The fact that in all these cases there is only one parent who apparently produced its offspring by some sort of asexual[1] reproduction fits nicely with the common conception of programmers’ social skills.

The metaphor of family is often extended, if a process’s parent process terminates before its child you get an orphan process (not to be confused with zombie processes), a process can inherit handles from its parent and so on.

I recently run across a family relationship which was new to me. When traversing the windows of IE10 I found a window whose parent had no children. Here is the window hierarchy of an alert dialog in IE10:

Window hierarchy of IE10 alert window

We can see that the alert dialog is a top level window with a parent which is also its sibling (said parent has no children).
I don’t usually muck around with HWNDs so I don’t know how rare this kind of thing is and I’m not sure how it fits into the family metaphor. On the one hand this window is a sibling of its parent so perhaps it’s an incestuous window (I’m not sure exactly how this would work in the context of asexual reproduction), on the other hand its parent disowns it so I think perhaps the best name for this window is a bastard window.


[1] I hadn’t realized there were so many different kinds of asexual reproduction.





The Carpet Rule

26 01 2013

I spent my professional life working in only two places, in both of these companies a Carpet Rule was available to protect people’s coffee breaks. Simply put the carpet rule states that:

Work may be discussed only in carpeted locations.

The rule is based on the fact that work areas tend to be carpeted while kitchenettes, cafeterias and, not to put too fine a point on it, toilets are typically not carpeted.

The way the carpet rule is invoked usually goes like this.

Alice and Bob are on a coffee break when Charlie approaches.

Charlie: Hey Bob, what’s the status of the bug I assigned you?

Bob: I’m sorry, do you see a carpet here?

The Carpet Rule has many sub clauses and exceptions (one can discuss programming as long as it’s not directly related to work and one can opt-in to a work discussion) but it is there if you need it.

I became aware that this rule is not universal and tried to add it to the font of all human knowledge but the deletionists would not have it[1].

Now the fact that 100% of the places I worked had this rule cannot be used as an indication to the fact that it is indeed ubiquitous especially due to the fact that the two people most responsible for enforcing this rule are myself and the rule’s inventor whom I head-hunted from our previous employer…

Your mission Internet, should you choose to accept it is to adopt the Carpet Rule in your own place of employment for the greater good of coffee beaks everywhere!


[1] This isn’t the only time I was thwarted by Wikipedia, when another cow-orker and I started the  Jews in Space wiki page it was quickly renamed to be List of Jewish Astronauts  :(





Picking sides

22 05 2012

Say you walk into a conference room.
Conference room

Where do you sit?

It’s as Multivac said:

INSUFFICIENT DATA FOR MEANINGFUL ANSWER.

Well, here’s some more data, you’re expected to hook up to the projector during the meeting.

The other day I was presenting some data when I realised I had sat on the wrong side. What difference does it make I hear you think. Well when presenting I tend to use the Extend option in presentation mode (⊞ Win-P).

Connect to projector menu

I do this so I can browse reddit look up important information on my monitor without sharing this with the rest of the room.

By default when you extend the display across two monitors the second monitor goes to the right of the primary monitor. This is because the (0,0) coordinates as used by the computer (the datum) are at the top left corner of the primary monitor. If you add the monitor to the right – all the coordinates on the secondary display are positive

If on the other hand you place the projector to the left of the primary monitor we get negative coordinates (which may confuse some (badly coded) applications).

So in order to get the cursor from the laptop monitor to the projector you have to move the mouse to the right. If you’re sitting on the left side of the table the screen is to your left and intuitively you move the mouse to the left to reach it, just to run into the end of the display area. Every time you move from one display to the other you have to fight your intuition (or more likely try and fail before you realise you have to move to the other side).

Conclusion: If you’re going to be presenting in extended monitor mode, prefer to sit on the right side of the table.





Give me some credit!

23 10 2011

I’ve been trying to keep to a minimum of one post a month but am a bit short of ideas. In my desperation I’ll take some liberties with the mandate of this blog and talk about something pertaining to payment (even though my previous post regarding financial issues wasn’t such a big hit.)

This must have been around 15 years ago, before I had an international credit card, I wanted to pay for some small purchase with my credit card when the cashier asked to see a photo ID (this is unusual in this neck of the woods.)  I pulled out my ID and she said “The credit card says Motti Lanzkron but the ID says Mordechai Lanzkron.”  I told her, what every native Israeli knows, (she was an immigrant) that Motti is short for Mordechai just as Bill is short for William, this took some convincing but she conceded the point. She then looked at the back of the credit card “this isn’t signed, you need to sign the back.”  I told her it was signed although a bit faded but she insisted so I re-signed the back (thinking inwardly how pointless this was.)

At this point the cashier looked at the back of the credit card and at the signed receipt and said “the signatures aren’t the same.” I was sure she was joking but that was not the case. After pointing out that she had just witnessed me pen both signatures I finally managed to finalize the transaction.





The day the version died

15 11 2010

Chrome users, quick without looking, what version of chrome are you using?

Chrome version

I personally didn’t notice when my copy of Chrome upgraded itself to version 7. Now a browser’s major version is a big deal, nobody could miss moving from IE8 to IE9 and Firefox likes to inform you of every minor version update but Chrome has been breezing through major versions with reckless abandon. Looking at the changes added for Chrome7 leaves me unimpressed.

  • Hundreds of bug fixes
  • An updated HTML5 parser
  • File API
  • Directory upload via input tag

Now I’m not trying to diss Chrome, it’s a great browser (although I’m still sticking to Firefox) and there’s no denying that it’s a very impressive achievement but you have to get the feeling that Google doesn’t think of versions in the traditional way.

It’s not surprising that this is the case, Google is a web based company, its bread and butter is updating stuff on the fly. You don’t know what version of the Gmail you’re using (not to mention the Google search page) so why should you care what version your browser is? Don’t bother your pretty little head on picking which version of the browser you want, Big Brother will take care of these technicalities.

I realize I come across as very anti Google but I actually mean it, why should I care what version of any app I’m using? I don’t think my copy of Word will upgrade itself any time soon (for one thing it doesn’t fit the financial model) but I won’t be surprised if in the future the version of the applications we use will be much less significant than it is now.








Follow

Get every new post delivered to your Inbox.