Dec 24, 2010

Geeky nostalgia

To those who didn't know me when I was an active programmer, some of the stuff in this post - including its basic premise - will seem incredible, obnoxious, or both. But those who did know me back then, know it's completely honest.
I saw the movie 'the social network' last night. It was quite good. As I often do these days, I looked up Mark Zuckerberg on wikipedia to find out some more about him. On the page, I came across the following pieces:

"Zuckerberg began using computers and writing software as a child in middle school...
He enjoyed developing computer programs, especially communication tools and games. In one such program, since his father's dental practice was operated from their home, he built a software program he called "ZuckNet," which allowed all the computers between the house and dental office to communicate by pinging each other. It is considered a "primitive" version of AOL's Instant Messenger, which came out the following year.
According to writer Jose Antonio Vargas, "some kids played computer games. Mark created them."

Now, I do not mean to sound boastful or anything, but this reminded me of ME! I'll explain why.

I learnt programming in BASIC in class 8 and created my own version of the 'Bricks'. Then, I read that BASIC was for amateurs, and 'real' programmers used C. So, I went on to teach myself C & C++ by reading books. In class 9, I created my own version of 'paint' (for DOS - Windows hadn't become popular until then, so we didn't have MS-Paint. Or even mice, with most PCs.)

When I was in class 11, some of my friends played a game called 'gorilla', where u basically had to specify a speed and an angle to toss a stone to hit the other guy, avoiding obstacles in the path. I couldn't beat them at the game, so I created my own version for the class project! (I still couldn't beat them, though.)

My most ambitious 'game' program was a simulation of a game of football, which I created between the class 12 exams and 1st year of college. This was inspired by EA's FIFA RTWC '98, which we'd all enjoyed over the last few months. I still remember - when I 'ran' the first version of the algo, all 20 players converged on the ball in 1 second, and also the 2 goalkeepers 2 seconds later. Over the next few weeks, I'd improved the algo enough to make the game somewhat realistic and even fun!

In college, I heard Java was the next big thing. So I taught myself that next. My girlfriend at the time was quite fond of playing 'snake' on her Nokia. One jobless weekend, I created my own version called 'Happytrain' - for the PC. For this, I have proof! Below is a screenshot of my program.

The 'snake' is replaced with a chain of emoticons who look 'happier' as the chain grows. You try and pick up happy-lookin icons, and avoid sad-looking ones (make you shorter and less happy), especially the skull (instant kill).

(Updated on 2/18/13 - you can now download this game here. Just unzip the downloaded archive, and run the extracted file named 'HappyTrain.jar'. If it doesn't work, you probably need to install a JRE)

So, what else did Zuck develop? Ah yes, a messenger, and a social networking site. Well, I did too.

During my college days, we didn't have internet connectivity in our hostel rooms. We had to access the internet either from labs, or cyber cafes. Cyber cafes were expensive - too expensive if you wanted to chat with ur steady girlfriend everyday. (My parents once got worried that I'd picked up a drug habit, coz I kept asking them for more money!). And most labs had blocked Yahoo, MSN and other popular 'messenger' programs. So, I decided to create my own messenger application, which they wouldn't block coz they wouldn't know about it!

Not only did I create my own messenger program, I added features that none of the existing programs had at the time. The most important among these was the ability to set your 'visibility' level individually for each contact. At the time, MSN messenger didn't allow you to chat with anyone if you wanted to appear 'offline'. Yahoo messenger didn't have this stupid restriction, but you could either be visible to everyone (including annoying relatives), or invisible to everyone including your girlfriend (who was also invisible to avoid relatives, so you ended up not talking for 15 precious paid minutes, as both thought the other was running late). I fixed this in my program, a good 2 years before Yahoo introduced individual visibility settings.

There were no noteworthy 'social networks' back in 2001. Friendster was the first in 2002. Facebook and Orkut didn't happen until 2004.

In 2001, when I was designing my messenger, I also included concepts of 'community' and 'profile'. The 'signup' process for new users asked for some information to share with the 'community'. I was going to give users the option of specifying personal details including relationship status and selecting some of this info to share on their 'community member profile' page. Check out these screenshots:

Yes, I had done all this in 2001. The colors used in the above screenshots are evidence of my youth at the time :P

In 2002, I also won a 'special mention for a brilliant single-handed performance' during 'Java Jeopardy' at IITM's Shaastra (one of my proudest moments, because it was a contest between teams). Then I entered the final year of college. Time for placements. I knew that I was - and had even acknowledged by many - one of the best programmers on campus at the time (even though I was NOT enrolled in the Computer Science course). I assumed I'd get picked up by one of the many software cos. If they'd really been looking for the right talent, I would have. I didn't. And that was the death of a programmer. I went ahead and enrolled at a business school.

Anyway, cut to today. Zuckerberg is the youngest billionaire, and worth ~ USD 25Bn at the age of 26. I'm a 28-year-old nobody, sipping vodka and blogging in Bangalore. Something went wrong somewhere.