Wednesday, June 23, 2010

Development tools and host platforms

I've spent the last few days hacking up some Android code, and it has been a lot of fun. Android has an excellent development environment, which works on Linux and Mac, in addition to Windows. Once this is done, I will probably hack up a remote control for my Nikon camera using an Arduino board. The Arduino board can also be programmed in Linux and Mac, in addition to Windows.

It is tiring to see embedded hardware makers provide a development environment that only works on a specific platform. It is understandable if Windows software can only be developed on Windows, or Mac software on a Macintosh. I wouldn't advocate it, but I understand it. On the other hand, embedded devices rarely host the dev environment. You could develop Android software using the Android Scripting Environment, but that isn't a common practice. Most probably, you'll be on a big computer. With a big keyboard, and a bigger monitor. In that case, why limit yourself to one environment? Every platform wants developers, and it isn't hard to support at least Windows, Mac and Linux.

Parallax lost out to Arduino, even though Arduino initially could not match all the functionality of a Parallax board. The Arduino board is easy to hack in Linux and Mac, and there are lots of developers with Linux or Mac as a primary computer. Now, partly because of these Mac and Linux hackers, Arduino has a crazy momentum: the number of hardware and software add-ons is mind-boggling.

Something similar is happening with Android. I see much more momentum around Android hacking. Here is a sample:
  1. Serial port on an Android G1 device.
  2. Using a Wii controller to play games on Android.
  3. USB Host mode on a Nexus One.
On that last video, notice how Sven, the person giving the demo, is using Linux?

I thought I'd spend some time learning how to program a Nintendo DS, or Nintendo WII, using the variety of tools that people have written in their spare time. These tools don't always work, and they don't always work well. Nintendo is selective about who should be allowed to program their devices, and will not support these tools. In fact, they'll go out of their way to ensure that you can't program their devices. After some time of struggling with it, I figured it was futile. The tools and dev kits of free environments is so much better. It is a lot more fun to program Arduino or Android instead of a Nintendo device. You don't have to struggle with random library versions, you can make your software available to others, and more importantly, you aren't treated as a criminal. So with that, my DS was quickly sold, my Wii will be given away, and I'm back to devices that I am welcome to program.

Tuesday, June 22, 2010


Lately, I've been watching the Dogfights series (link starts a video). It recounts tales of air-to-air combat. The series brings veteran pilots to discuss tactics, and they've recreated the actual battles using computer graphics. It is fascinating to watch how pilots battle at high speed in three dimensions. Air combat require strategic thinking, a good knowledge of the aircraft's capability, and a body that can handle high G-forces.

Worth a watch if you haven't seen this before. Netflix has all the DVDs of the show.

Monday, June 21, 2010

Ramchandran Guha, and rediscovering India

I am reading "India: After Gandhi", by Ramchandran Guha. It is a book of Indian History, which starts around the time of independence, and goes all the way to the present time. Strangely, there are very few books of Indian political history after independence. For some reason, we don't chronicle history well.

I am also listening to a series of lectures about Chinese history. It is fascinating how well the Chinese kept records. There are few breaks in their history, and there are good records of what was happening, as far back as the second century BC! In comparison, Indian history is very spotty. We of major dynasties, but there are large gaps in our knowledge. I suspect it is a cultural thing. Even major freedom fighters did not think it necessary to write an autobiography, and we are all poorer for it.

Luckily, Ramchandran Guha fills one of these gaps. I've spoken to many friends, and they mirror my sentiment. This is a book that many people have been waiting for. Grab a copy today. If you are buying it in India, get it from Indiaplaza. They have a hardbound copy for Rs.542, which is a great price. This is a book that is best in hardbound: you will want all your friends and family to read it.

Saturday, June 19, 2010

Installing Windows XP, and Kulchas!

I spent the better part of last evening installing Windows XP on a brand new computer. I must say it was very, very painful. At this point, I don't know what people mean any more when they say Linux is difficult to install. On this specific Acer computer, Ubuntu boots off a USB stick, and does everything just fine. That reminds me, why can't Windows boot off a USB stick? Ancient, outdated tech.

After much struggle, I realized that there were memory issues on the computer. Running memtest86+ found memory errors. Eeek! This computer is headed back to the vendor, and I'm getting a replacement: something that can run Windows XP.

On an unrelated note, we found a wonderful new Indian restaurant: Naan and Masala. Don't let the ambience fool you, and make sure you go there with an empty stomach. Their paneer kulcha is delightful. Avoid the seekh kababs: they aren't very authentic. But the standard curry fare is crazy good.

Trying something new: after having ignored my blog for months, I'm going to try posting something new every day. I expect the quality to plummet shortly, stay low for a while. Then, it will probably drop a lot more. Wish me luck!