The Car is an Engine

Over the past few weeks I worked on my 2008 Nissan Maxima. While I had changed the spark plugs late in 2015, I never thought about publishing a post on the experience.

I am a Software Engineering Manager and a Programmer. One of the patterns in writing programs is Object Oriented Programming. Almost every book on OOPS starts off with the Car, Vehicle, and Engine analogy. Hence my interest in posting this. Here I am listing a few lessons I learned from fixing my car. Read this keeping Software Engineering in mind and you’ll see a completely different spectrum.

  1. Use the manuals for truth. Use other sources for context. Use a wrench for experience. I rely on the Nissan manual for a Maxima. It contains the absolute truth as seen by the Maxima designers. However, forums like My6thGen have been an unbelievably valuable sources for research. Pictures posted by members have in many cases helped me figure out the orientations. Eric the Car Guy, for me, is the John Carmack of cars. However the best teacher is holding that wrench and getting to work, much like in Programming. This became evident for torque specs, for the angles my fingers could not fit, and the fact that I had to create chimeras out of my limited tools.
  2. Plan, Plan, Prepare, and Execute. Following the manuals and the videos is good but at the end of the day you need the tools, materials, and the parts to get the job done. In many cases I had to order the parts from online stores like Rockauto and Courtesy Parts. That meant shipping and it inturn meant preparing slots of 3-4 hrs over the weekend. This in turn meant I needed to clear weekends off of grocery shopping. It is extremely important to plan the parts, the tools, and fluids into the schedule. Once you have the parts it is time to prepare and this becomes critical. Prepare yourself with the steps that need to be executed before you execute them. Unlike programming an undo or revert generally involves a tow truck and that is painful and expensive. Once we start executing the only way is forward. There is no undo and I cannot stress this enough. This became extremely important when I was replacing the Clockspring/Spiral cable. Since the job involved taking out the air bag on the steering wheel, I had to pay extreme attention to discharging the battery, ensuring I am always electrically grounded, and storing the air bag in a safe place. I ended up researching, planning, and rehearsing for close to 3 days before I even started the job.
  3. Following the earlier point, all the planning in the world won’t prepare you for the surprises. Accept it, and deal with it when they occur. Working on cars, or for that matter software, bring experience. The difference between an newbie (I was) and a pro (I am not yet) is that a pro commits far fewer mistakes than a newbie. A pro will also be able to quickly adjust to surprises that jump at you. One such experience I had was when I was trying to replace the regulator on my driver side window. There was a bolt I had to put back and it was painful to get it into the slot. My fingers wouldn’t reach in, and the socket wouldn’t hold it due to the angle. Worse yet, when the bolt fell into the door assembly it was hard to retrieve it. So the second time the bolt fell into the door chamber I stepped back and had to solve this problem. I tried with a magnet but that wouldn’t work as the door is made of metal. Finally I solved this by using tissue paper. Apparently this is a well known trick, so yeah I reinvented the wheel. It felt good.
  4. Tools. Oh God! Tools. Invest in a good collection. I own a Craftsman set. I then expanded it by buying a few extensions, swivels, spark plug socket, and a few hex bits. The number of times I’ve missed a ratcheting wrench has been fairly limited but I know that when it becomes painful I’ll buy a set. Tools generally make you efficient. As I mentioned in the earlier point, not all tools are manufactured or ready made. Some, like the tissue paper trick, come from experience. Do not be defined by your tools. You can swear by Craftsman or Snap-On but on any given day all they do is turn a bolt only when you use the them.
  5. Contingency plans. Have fun without contingency plans. And then have fun when an event defies you Plan A, Plan B,… Plan Z extended to UTF-8. All the plans you make, including contingency plans, will be shattered. The ones that did not get shattered are the ones you had planned for. Keeping this in mind make sure to think things through. For example when I was changing the CVT fluid, the brand new oil collection pan I bought as Plan A, had its drain hole plugged. Not knowing this I ended up with some fluid on the floor due to the oil overflowing. I had a Plan B and it involved cardboard sheets on the floor. Plan C involved rolls of tissues. What finally happened? The oil was hot and I could not get everything covered in time. Since some of the oil ended up on the floor, I had to find out how to fix the mess. Turns out Kitty litter is an answer. A generous amount of degreaser, and a trip to Walmart to get some Kitty litter fixed the problem. The floor is clean. Had I not made the Plan B and Plan C, I’d have been spending a lot more time cleaning the garage floor.
  6. DIY for best results. I can relate to this as I am a manager. There are too many instances where I was frustrated with the code or the output but at the end of it, if I want something done to my satisfaction I should be ready to do it myself. Else it is a conscious trade-off between priorities. Sometime ago when I was visiting my brother during the Winter, my Maxima had its driver side window just roll down and not roll up. My brother did not have any reasonable tools on hand and didn’t have a garage to work in. So I did the next best thing – took it a mechanic. Two infact. $200 later, I still had a non functioning window. Since I had to drive back I ended up sticking the glass with Gorilla tape and painters tape. The drive back was a nightmare for 10 hrs with the wind howling in my left ear. I can relate to Gollum now. Anyway at the end of it, once I returned home I ordered the parts from Rockauto and fixed it in 1 hr. The correct way. Which loops back to the first point.

I hope this little write up, taken in two contexts, conveys my philosophy in working on cars and in writing code. I’ll conclude this by saying that my brother would rather buy a car someone else can fix easily and is willing to pay the price for it. You know, not everyone wants to be a mechanic and not everyone wants to be a programmer.


Credits/Thanks to:

Lameo from work for being a great teacher

My wife for Kitty litter trick

My Son for making me think through every step by explaining it to him


John Carmack for well you know

Experiments with audio, music and the like

Up until 1 week ago my concept of music, i.e; good music, was a pair of Behringer head phones, Youtube/BBC streaming. I have a limited collection of music and most of the songs are pretty badly compressed.

I thought that I should venture into the world of amps, where amps has nothing do with current. The jargon stumped me to an extent where I did not know what to look for, where to purchase any of this or who to ask.So off I went surfing the tubes to understand what the heck do these things mean and how I can build these. Audioholics, Lifehacker, Audiokarma, Reddit/r/audio were good points to start and they definitely helped. I got some pointers on where to start with the jargon and after a thread on reddit I got started. As with other things, I needed to know if I actually like this so I did not want to invest ~ 1000 USD only to realise that I am not that into music and the Behringer headphones or Altec Lansing speakers are good enough for my tone deaf ears.

Children of “audiophilia”:

There are enough articles out there on home theatres and audio systems. I generally start with when venturing into the unknown. Almost all the cases I’ve seen they have a good starter guide. Heck it got me started in the United States when I came here, audio should be a breeze for them. What I learned was that Audio/Music world is like a fractal. Any build you toss out there will have specific means to improve. The more serious you take this the better the builds you can spot. Oh and by the way, BOSE speakers, especially non 901/300 series are regarded as mediocre.

The purchase:

As with anything else I started off small. The best piece of advice I got from redditors is that I should make a budget and stick to it. Else it is like quick sand and I know what that means from my experience with Mechanical Keyboards (I have 8 with me now). Los Angeles being what it is, is an amazing place to pick up vintage stuff. So I started checking, and a few other places. I preferred to go with craigslist because I could hear the products before I purchased them. I decided to first purchase the speakers as Receivers are easier to find. I probably visited 15 sales before listening to a decent pair (Bose Interaudio 4000). From what I heard they are not bad. I can’t ask for more when I negotiated it for $30. One of the main reasons I bought this one was because the seller had an impressive collection of speakers and amps. He knew what he was selling.

 New shit has come to light:

Given the rating on this one (4-8 Ohm impedance, 75 Watt RMS on each speaker), it was hard for me to go find a receiver. I was looking around when I ran into Ken. Ken was kind enough to sit me down and tell me where to buy receivers, what sort to buy and the electronics/electrical concepts. If only my professors taught me these concepts like he did, I’d have better grades. He explained to me in plain English what each of these concepts meant. More importantly he explained to me what each of these concepts imply in real life as against “get good grades”. He also told me that I should not purchase the receiver I was looking at. Suggested either Yamaha or Onkyo. His reasoning was that in his experience these were the ones that stood the test of time. Others, while being better sometimes, died early. He also warned that these receivers tend to die over the time so I should be prepared to spend another 60-100 USD on repairs.

At this stage it was simpler for me to scour the internets for the receiver I wanted. I landed a Yamaha RX-v630 and a Marantz SR-73.  The Yamaha was dead anyway and the seller just gave it to me. I figured I’d poke around and see how these things work. If at all I’ll fix it myself and the worst case it goes to ebay “for parts”. Marantz is a good brand and SR-73 has some good reviews.

 Cables, cables cables:

Before I can play any music, I’d need some good music. Of course this presented a bunch of problems because CD players, FM Antennae, Turn tables, Tape decks all have one issue – working models are hard to get. Reddit to rescue and they told me that I can get a good 3.5 mm jack to RCA connector. I also had to purchase a 100 ft 16-guage receiver to speakers cable.

 Let the music begin:

With the cables in places, I decided to hook up the speakers, the music source and go for a test drive. I setup the system in my living room and that meant I could not pull music from my laptop. But wait, I have a Belkin bluetooth music player! Brilliant, now all I had to do was connect the player and stream music over the ether. In this case my music source was my cell phone.

I then realised that I had an old laptop I use to host pictures and my OpenVPN server. I moved it from under my bed to the music system and stuck the 3.5 mm jack into the laptop. There’s my CD player.

 Test music:

I used the following songs to test the setup:

– Halo (original theme)

– Wasted Years (Iron Maiden)

– A tout le monde (Megadeth)

– Ninnena (Salute)

– Cheliya Cheliya (Gharshana)

– Stravinsky At Petrushka (Philharmonia Slavonica)

-KPCC (internet radio)

– BBC World News (internet radio)

– Many of the Annamayya keerthanas (not high quality)

– Enduko Emo (Rangam)

– Another brick in the wall (Pink Floyd)

– Ramachakkani Sitaki (Godavari)

– Beethoven Symphony 9 (Unknown)

Most of these songs were either on a CD or over Amazon Music.

What’s next?

Well I can say this – these sound awesome. I am comparing it to my existing rig so it feels like flying to the moon. Once I establish this as my baseline and I can find better sources of quality music, I’d like to take it up a notch. I definitely enjoy sitting in my living room, which was earlier a place I had to pass through to get to the kitchen, read Clojure/Illiad/Huck Finn/Reddit ;). Till then, this post will hold good. Any suggestions are welcome. That was the whole point of this post anyway.

 New shit has come to light:

My favourite headphones

The Behringer HPM 1000

A loooooong time ago in a city faaaaaar far away I bought myself a pair of headphones. Back then they costed me a bomb – 3000 INR. This was in 2003. Since then the following have happened:

– I moved between 3 cities

– The headphones are still intact

– I went to Korea and returned

– The headphones are still intact

– I got grey hair

– The headphones are still intact

– I put on a lot of weight

– The headphones are still intact

– I got married

– The headphones are still intact

– I have a kid now

– The headphones are still intact

– The city Bombay changed its name to Mumbai

– The headphones are still intact


… I guess you get the drift. Not only are these the most awesomest headphones I’ve used but also the quality has not dwindled. In the meantime I ran through other headphones including Sennheiser and Philips branded. They always ended up with either a broken casing or a snapped cable. So I stopped buying any of these funny things. Instead when I thought about buying a new pair my choice was obvious. The next time I have a chance, I am buying the HPM 1000. Now if only I can find the place where they sell Behringer in India… else I’ll have to travel to the US to get them.

For those who are curious here’s the product info:

Considering that I spent 3000 INR (~$60) for headphones that are working perfectly even after 8 years, I’d say that was mighty good buy… or a manufacturing defect 😀 The second purchase will tell me.

Musings of a 30 yr old – what if I did it differently

I turned 30 yrs a few weeks. I thought that it was time to write about all the things I’ve done and all I’ve not. For obvious reasons the only ones I mention here are the ones I would like to share.

Switched the school:

When I was in the 6th grade I had a terrible time with health. I used to have acute asthma and it flared up when we moved to our newly built house “Alwal” in Secunderabad area. My school was about 20 Kms from where we stayed. I barely attended 10 or so classes at St. Paul’s High School in the 6th grade. Given the fact that travel does not make things better for someone like me my father, against all protests from my mother, decided to move me to a school nearer to our place – Valerian Grammar High School. I have to say that it changed the way I saw the world. For while I was @ St. Paul’s I only thought about studies and all of my “friends” were competitors. I wanted to be 1st in the class but never achieved it. Most of the kids came from a middle class bg and hence they all studied hard. VGHS by contrast was full of the working class. Thus most of the kids came from poor educational bg. I came 2nd easily – inspite of having trouble with my health.

If I had continued studying @ St Paul’s I am sure I would have gone on to join Ramiah and eventually IITs – mostly because of the influence of the people around me and the studies oriented environment. VGHS, by contrast, made me question EVERYTHING. It included why the hell should I study. Coming 1st requires a lot of effort. 2nd by contrast was not bad – but I got time to do other things I loved. A 1st would mean sacrificing what I like for a badge. So essentially I would have turned into a competitive man – successful by all accounts and a different set of friends.


I got into the IIIT, Hyd on the first try. I don’t think it meant anything to me because I didn’t know what computers mean and what difference they make to mankind. Had I given another shot @ IIT, I am sure I would have hit   <500 rank and > 400 rank (hence no Computer Sciences). I am pretty sure that if I had gone down that path I would have gone West after applying for an MS/PhD and become one more NRI.

So essentially, I would have become an NRI, not living in India. My parents would have awesome photographs of me, my wife and maybe kid(s).

Picking Game Development as a career option:

As a Game Developer, I have a great time @ work. Never am I in a single location. I always get to think and work with the next best thing. However gamedev does not pay high flying salaries like MS/Google/Amazon do. I would have, in all probability, gone on to work for a large company in either telecommuncations software or banking software. However I would have definitely still continued to play video games. Working in a creative field definitely has an impact on me. I am ever restless and I feel quite irritated because there are so many things I can do but I cannot decide which ones to work on.

So essentially, I would have become a well paid Programme/Product Manager at a high flying company, I would own a Santro/Alto/City <or one of the expensive by typical alternatives>, would be very well versed with the organisational processes and would wear nothing other than formals 5 days a week.

Returning from South Korea:

GOD I love South Korea. I love Softmax. I would not have met the likes of Jack, Kwang Sub, Jackie, Xeeny, SRabbit, Zeppelin, Byung Jun, Il kun, Euray, Ryouma … and the list goes on. This doesn’t even include the many friends I made outside of work, especially the ones from Animal Rescue Korea. Had I not returned from Korea, I am not sure if I would be married to my lovely wife, sort of obviously. On the other hand I probably would have pretty much dropped anchor in Korea. It is a wonderful place where I would have been making more games in all probability online games. It also means that I would not be working for Sierra Atlantic (now a subsidiary of Hitachi Consulting btw) with the likes of Gopal. Working at SA taught me some valuable lessons – most of them non technical. I am responsible for the gaming vertical and that would NOT have been the case if I had continued to stay in Korea. Besides I realised that I am better at mobilising people, motivating then and ensuring that my team stays happy with what they are doing at work. I would have continued to think of myself as a one man army.

So essentially, I would have been a solo programmer, hacking away at code, probably fairer, would be visiting India on “vacations”, still going to XO bar and having fruit salad (mostly complimentary aka “service”) with Xeeny and Byung Jun, still training dogs and working with ARK, atleast 10 Kgs less than what I am right now.

Getting married to Kanchana:

I know for sure that there will be no one else who understands me better than my wife. I am pretty sure that I would have been forced to move and stay away from my parents. I don’t think I would have converted my pseudo wife into talking the way I do. In all probability she would be shorter than my wife who is quite tall for Indian standards. Would be spending loads of money on stupid shopping and cosmetics. Probably miserable is the word I am looking for.


*phew* None of the above actually make me feel sad – just nostalgic and amused. I feel good about the decisions I took. Given a repeat performance I am sure I would take the same decisions all over again. Now for the main part – this article is just a musing. Do not try to tell me that I am wrong – it is just a musing. It is a castle in the air, salt in the water…

Experiments on shaving my beard

That’s right, shaving my beard deserves a blog entry of it’s own. I hate shaving my beard, I am frank about it. Everytime the blade touches my beard it hurts as if the blade is plucking the hair from the skin instead of shaving. Think of a jackfruit (or a pineapple) getting shaved. Having to go through this ordeal once every week has forced me into finding ways to shave that would hurt as little as is possible.

My “Hello World” shave happened somewhere in 1997. Dad got me a use and throw 7 Oclock twin blade razor. Over time I have tried all kinds of razors and blades and currently I use a Gillette Mach 3. In my opinion a bad blade will make the shaving experience unbearable but a good blade doesn’t necessarily solve all the problems. Here I will give you some of my experiences and the conclusions I’ve reached based on them.

1) Always shave just after a shower. This should be pretty simple to understand. Taking a shower ensures that your beard soaks up a lot of water becomes soft. Running a blade over it is easier since the blade just slices through it.

2) Be patient. Take sometime to prepare for the shave. Do not do a rush job because you might cut yourself and also make the whole experience quite painful. Brush up enough foam into the beard and let it be for a little while. This generally makes the beard very soft and easy on the blade. It won’t get stuck on ends.

3) Use shaving cream or shaving round. I avoid using the shaving gel or the shaving foam in the canisters. Every single time I’ve tried this, while keeping everything else constant, I felt that my beard felt drier. I could see an immediate difference because it hurt like hell.

4) Use an alum instead of alcohol based after shaves. I’ve used alcohol based after shaves and trust me they are best gifted to your worst enemy. They might make you smell all macho. Then I tried a non alcoholic after shave (Nivea White) and it was whole lot better. Unfortunately this one is hard to find in Hyderabad so I used to get someone to import it whenever they went abroad. I used this for a whole 4 years before I watched one of the old men use an alum at a barber shop. The next thing I did was go to the local store and buy a slab of alum. When I used it on my immediately next shave it burned like hell but man it was so much better than anything I had ever used. To give you a context, I would tear a piece of muscle off of anyone who touched my beard on the day I shaved – this included my wifey btw. After I started using the alum on my beard it doesn’t hurt that much. You know the best part? I don’t have to import the slab and it costs 41 times less than Nivea White.

My research into my beard took me 14 years of experimentation. In the end my shaving rig looks like this:

Gillette Mach 3 blades, Godrej Shaving Round, Nivea shaving brush, Norelco trimmer and Alum

Hope this helps anyone who’s experimenting with shaving. BTW I hate going to the barber to get my beard shaved because they always end up shaving against the grain and it hurts like hell.

Playbook Air Application cockups

Well hello world. That’s all I was trying for a moment. It ended up being quite a long process. I got interested in the Blackberry Playbook apps around 2 weeks ago and since then I’ve had one headache after the other. Fear not since my definition of an expert is someone who’s committed all the possible mistakes in a field.

I am not an expert yet since I’ve taken only one path along and there is a long road to travel. However, I will continuously post my experiences just to ensure that others, who can STFW, will not have to go through the same pain as I did and thus can save 2 weeks atleast. So here goes…

My background:

I’ve not done much flash development (none on AS3 whatsoever) since I come from the world of console video games. 8 years on it with C/C++ and a host of other languages does things to you when it comes to a new hardware. So I got all interested in this playbook thingy. I decided that I wanted to develop something cool on the playbook. That was where the first hurdle came in. Playbook, atleast for now, only supports AIR apps. Although the good news is that these apps will be rendered using OpenGL ES, it was a bummer for me. Being a fan of Blackberries I said, fine, it is just another language and let me go ahead with it. Before I even got to understanding the language, I needed to write “Hello World”. This was the second bummber and one that took far too much time. The Blackberry website lists very little information on the non Adobe Flash Builder 4 packages. I do not have the money to purchase Adobe FB so I was looking for alternatives. Lo behold the flex SDK and the AIR SDK are open sourced and available for free. This implied that I did not have to purchase Adobe FB  (not Facebook you git). I talked to a bunch of other seasoned flash dudes from the company I work for (Sierra Atlantic). One of them is Sudhir and he helped me out in figuring out how to do this. He has been using Flash Develop + Flex + Air for a while now but never touched the Playbook SDK. I hope the following will help the next developer churn out a cool app.

To start off, let’s keep things simple.

1) Download Flash Develop ( and while you are at it donate something to this awesome project.

2) Install Flash Develop and let it also download and install Flex for you. That will keep some of the other configurations easy.

3) Download the AIR 2.5 SDK from Extract it to a location and keep track of this location

4) Extract AIR SDK to a location and take note of it

5) Download and install VMware

6) Download and install the Playbook simulator by following

Note that this works only for 32 bit OSes. For 64 bit OS install by following this link:

Ignore anything that refers to Flash Builder. Essentiall you are just extracting the ISO image and installing it using VMWare.

7) Download and install the Playbook SDK by following

Again, this won’t work for 64 bit OSes. So I followed this link:

Okaaaaaaaay, now all of the above links will help you install and get ready for development. However, when it comes to using FlashDevelop with the Playbook SDK, it is extremely hard to find decent links. So this is where my friend Sudhir helped me out.

Using this link I got started.

However the 3rd bummer was just a few feet away since the application would compile and run fine in swf format and in air format. It did not like me whenever I wanted to deploy it to the playbook emulator. Whenever I used the command line tool it would spike on me with “Invalid value ” for Package-Author” stupid error message. At first I thought that I had to enter the author field somewhere but there was no such facility and that got me to think like a regular programmer. What if the Playbook parser was wrong and it was spewing out gunk? It turns out, I might have been correct since the error had nothing to do with the author field.  It had everything to do with the project xml file. In my case it was called “application.xml” and there were two fields missing in it “description” and “copyright”. So I went in, filled those two fields up in the xml file. Then with fingers crossed, I executed the command line statement… and voila I could see my app installed on the playbook vmware image. Brilliant.

Now all I need to do is write a cool programme. Before leaving, I’d request the Playbook support team to fix some of the glaring issues in the SDK. First the lack of support for 64 bit OSes. Second have better support for Linux. Third show me the Playbook appstore already!! Fourth damn it man, all I keep saying nowadays is “Playboy” or “Blackbook”. I’d appreciate a better naming convention ;). Fifth and the most important thing – better tutorials. I will post tutorials on my website regularly but I was hoping to find some right on the Playbook developer website. Sixth and probably hard to come by – how about native C++ support? You are missing out on all those uber cool OpenGL developers because they have to now use AS3.

Optimisations on 5800

I updated my Nokia 5800 Xpress Music and lo behold the whole thing is slow as a snail now. What’s worse? Their own DRMed (Digital Restrictions Management) concked off and won’t allow me to play the songs preloaded in the phone.  That did not bother me anyway because they had a terrible set of songs in the first place.

So I am asking Nokia – give me a job for optimising your operating systems (Series 60 Rel 5). I’ve done that on my game earlier and can do it again. On the other hand if things don’t get better Nokia will lose a loyal customer. Watch out for HTC is in town now.