01 6 / 2014

Masters Of Doom

I ordered Masters Of Doom on Flipkart two weeks ago. It was delivered last week on Monday. I wanted to read the book in one sitting and yesterday, that is just what I did.

I have an unhealthy obsession with computers and programming. The culture and people that make up its history are a big part of that obsession.

John Carmack is one of the most respected and admired programmers in the industry. So when I came to know of Masters of Doom, a book which documented his coming of age and starting his company, Id software, I had to have it.

Masters of Doom is very well written and documents the life of programmers at Id software, in particular, John Romero and John Carmack, who brought PC gaming into the mainstream and produced Doom and Quake, two of the best selling gaming titles of all time.

Of particular interest to me was Carmack’s ability to completely lose himself in a problem and come up with simple and elegant solutions. His solutions to problems of side scrolling on the PC, parallax motion and lighting led to a game engine which gave game designers the ability to build highly immersible gaming experiences.

A lot of text in the book is reminiscent of a start-up: A group of passionate, hard core enthusiasts break established rules and lend their own voice to a medium and in the process take it to a whole other level.

It also gives a peek into the human side of the ‘two Johns’. The same strong personalities and drive which brought them together to build great games also ultimately caused them to go separate ways.

10 11 / 2013

Learning HTML with CSS and using Anki.

A while ago, I wrote about why developers should learn HTML and CSS. I wrote that post after formally re-introducing myself to HTML and CSS using Head First HTML with CSS and XHTML.


A short time later, I got caught up with more server side programming. As if often happens, once you learn a programming language, you need to build something in it, else with time you’ll forget most of what you have learnt.

More than a year passed without me building anything with HTML or CSS. A while back, Head First released a second edition of the book with XHTML part stripped out and a greater emphasis on HTML 5. I picked up the book with the intention of working through it.


It sat on my shelf for over 5 months. Last week, I worked through the book and this time around, thanks to Anki, I am a lot more optimistic about remembering and recalling everything I have learnt.

Anki is this fantastic piece of software that implements active recall testing and spaced repetition.

The software is written in Python, is open source, and is available for Windows / Linux / Android / Mac. A paid version is available for iOS devices.

There are two simple concepts behind Anki: active recall testing and spaced repetition. I came across this on Derek Sivers’ blog and have been using it ever since. I would rank this third in my list of wildly useful tools to learn, right after learning to type and using distributed version control.

My study process is:

1. Work through each chapter, type in each example.

2. At the end of a chapter, recall all the important concepts and type them in question / answer form in Anki.

3. Open up Anki each morning and review all the cards it shows for that day.

Simple, ain’t it?

AnkiWeb is a free service which allows you to sync your Anki cards across all devices. This lets me sync my cards on my Android phone and revise them when I am commuting or any time I find myself outside with time to kill.

10 11 / 2013

Desktop Computing

Last week, I bought a HP Envy - desktop tower. This is my first desktop purchase after 8 years of using laptops.

My 2 laptops - HP & Lenovo are functional. I bought them in America years ago. The batteries on both the machines reached their end of life. I could not find spares for either models in India. The ones that I did buy were labelled “duplicate” - which meant generic and manufactured by other companies. Both batteries died after their short 3 month warranty period.

Running the notebooks without batteries seems to heat them up to the point that they would simply turn off.

This was 6 months ago.

I started looking to purchase a new laptop which would hold up for atleast 3 years. I was waiting for Intel to launch their Haswell series of processors. It has been 2 months since Intel launched their 4th gen processors. I haven’t seen any of the big PC brands launch decent models with these processors in India.

I have pretty much given up on laptops at this point. The laptop scene in India has not improved much in the past 5 years.

Dell, HP and Lenovo have no customization options available on their laptops. Most of their higher end laptops ship with 5200 rpm drives with no options to upgrade or even add a 7200 rpm or a SSD drive. The only models that were close to acceptable were the Dell Alienware series and Lenovo’s super expensive - ThinkPad Carbon.

The Dell Alienware machines are very bulky and there have been concerns with their battery performance.

The ThinkPads are way too expensive.

So after 2 months of research and not finding a single laptop which would satisfy my needs - a quad core processor / 8 GB of RAM (with expansion slots) / SSD drives. I gave in and bought a desktop from HP.

I have been using it for a little more than a week and I am really happy with this purchase. The machine is a i7 quad core / 8 GB RAM (with 2 empty slots) / 1 TB 7200 RPM drive and a 3 GB NVidia card.

The expansion options on this machine were what got my attention. I can bump up the RAM to 32 GB, there are 3 empty HDD slots. The hard drive is not an SSD, but 7200 rpm should suffice, for now. The GPU can support up to 3 displays.

There are more USB 3, USB 2, memory card slots than I would ever need. A Blue Ray DVD player, Beats audio support. The tower itself is very well built and nicely ventilated. The tower came with a wireless keyboard and mouse. I have used Microsoft Keyboard 4000 and MX 518 for a while now but I must say that the HP wireless keyboard and mouse work really well.

I have a early MacBook Pro - 2011 model. I would have bought newer iMac or a MacBook Pro laptop, but I need the machine to program in .NET. Performance wise, Windows 8 / VS 2013 in Boot Camp just does not cut it. Besides, I also wanted the ability to load up virtual machines with Debian / Ubuntu / Fedora and not have to worry about the rapid loss of battery power. Apple has a built in battery. What happens to the battery if you use Windows in Boot Camp & Linux VM on Apple hardware? If this causes the battery life to take a hit by even 20%, do you send the laptop to Apple to replace the batteries? How expensive is this?

It is nice to be able to buy a screamer of a desktop machine (which can be easily upgraded) for half the price of an equivalent laptop. No worries about battery performance, easy access to expansion slots. HP also threw in a 3 year onsite-all parts warranty!!.