Wednesday, November 30, 2011

Laptop attachment syndrome

Since 1996 or 1997, my main work machine has been a laptop.

The one and only desktop machine I ever bought new was from Midwest Micro (I was one of the few who actually bought a machine with a 486DX4-75). Since then, I have rescued some from being discarded and built a collection of a few Frankenmachines, but I have done most of my work on laptops for the last 15 years.

Now, I have a confession to make.

My main laptop is more than five years old.

It was definitely not top of the line when I bought it.

True, in the intervening years, I put more memory in (2GB instead of 512MB), swapped the hard drive for a larger one (400GB instead of 100GB), and got an even chunkier battery (4.5 hours instead of 2 hours).

It's no beauty, and definitely not a speed demon, and would not win any beauty contests.

But, it is set up the way I want it. My text editors, various programming language distributions, video editing tools, graphics tools, and LibreOffice work just the way I like them.

I can dual boot between ArchLinux and Windows XP. Wireless and graphics work well under Linux. I can roam between access points, USB devices automount correctly. There does not seem to be any more pain left to discover (oh, I forgot, I dare not hibernate the machine under ArchLinux, but suspend works fine).

I have it set up so that Cygwin Perl, ActiveState Perl, and Strawberry Perl all stay out of each other's way. Ditto for the umpteen different versions of gcc I have on that machine.

The keyboard has good travel. I don't have to look at it to type (never been much of a touch typist I am afraid, just 2-4 finger pecking. That's still faster than I can think). More importantly, it has all the keys I need (take that MacBook) and even a microphone input jack (take another one, MacBook!). The touchpad has the right size and right amount of sensitivity. I would prefer a 1400x900 resolution, but 1280x800 works.

It has a built in optical drive. More importantly, it has a built in modem which means I can fax from anywhere which came in extremely handy over the last few months.

While I also use a recent vintage MacBook Pro and a couple of Windows 7 64-bit laptops for various things, I always go back to my trusty Lenovo 3000 N100.

Did I mention, I don't play any other games than Angry Birds for Chrome, Dogfight 2, and Doom?

I am beginning to think there is something wrong with me. After all, I must be able to find a laptop with a decent screen (no shiny, reflective panels for me), decent keyboard, decent touchpad that is also fast, has a huge hard drive, is quiet, does not generate much heat etc.

But, every time I get excited, I find some flaw with it.

I think I am suffering from laptop attachment syndrome.

PS: I will not touch Dell, HP, and Gateway laptops. And Macs will remain too annoying until Apple figure out that Page Up and Page Down keys are indeed necessary.

Saturday, November 12, 2011

I failed to reverse a linked list

A couple of weeks back, I noticed the ad for the Silicon Alley Talent Fair on Stackoverflow.com. Given that I was going to be just across the river from Manhattan this weekend, I figured I would stop by, check out the event and some of the companies I had not heard of before, and drop off some resumes just in case.

First off, let me point out that the event was well organized. I arrived about an hour after the doors had been opened, and noticed that there might have been a line out the door at some point, but my processing went smoothly. My only major complaint is the fact that the organizers used i.e. pretty much everywhere they meant e.g. and listed personal hygiene as the first thing to bring. I am a firm believer in the fact that that sort of thing should not need to be explicitly mentioned, but then, what do I know?

Inside, I got a chance to find out more about some of the companies whose web sites I had checked out before (and some companies whose Career links 404'ed on my phone ;-).

At one point, I got lured to the ZocDoc stand for what I was told was a "fun computer science quiz". I am an economist by training, and a self-taught programmer, so I find these kinds of things to be fun tests of whether I can think on my feet. So, I signed up.

Half an hour later, the thingamajiggie they gave me starts flashing, I run over to their booth, I am met with an interviewer, and he wants me to write C code to reverse a linked list in place on a 3x5 piece of paper. Panic sets in. Not panic that I don't know this, but panic that in the middle of all the commotion and noise and distractions, I won't be thinking clearly. A little sketch clarifies that you need three pointers to keep track of what you are doing.

[ el1 ] → [ el2 ] → [ el3 ] → …

needs to be turned in to:

[ el1 ] ← [ el2 ] ← [ el3 ] ← …

We agree that's the right way to do it, but I just cannot write the loop condition. My hand writing is horrible and large and I can't fit anything on this little sheet. My *s look like blobs. I run out of my five minutes, there are other people waiting etc, so I decide not to waste more of their time. The interviewer takes my resume that was in a pile of other papers, scribbles some stuff on it and I am left with the sinking feeling of arrggghh! Why did I volunteer for this?!

In my defense, I had thought it was going to be a fun computer science quiz.

In the scheme of things, this was not as bad as not being able to solve FizzBuzz, but now I understand how those people feel.

And, while ZocDoc provides a cool, new, and exciting service, I was not even interested in working with them.