A co-worker introduced me to Radiolab recently. It is a radio show that is also available as a free podcast. Each show discusses a specific topic from a scientific angle: why we sleep, how we remember things, even love! It is, without doubt, the best radio show that I have heard. Go get it now, get all the episodes. Buy a music player if you don't have one already, if only for Radiolab.
The hosts of RadioLab are Jad Abumrad and Robert Krulwich, and they do a wonderful job of interviewing people to bring out the joy of inquiry. Each show leaves me with a sense of wonder for the topic. In addition to the excellent production quality, Jad and Robert have a knack for finding the experts and asking insightful questions.
This might just be the second coming of radio. The Internet has allowed good content to find its audience. Without the Internet, a show like RadioLab would be confined to the few cities that broadcast it, and at very specific times. Now, a student in India can listen to Jad and Robert at whatever time is most convenient.
Thursday, June 25, 2009
Monday, June 22, 2009
"Indians are smart!"
This is a statement heard often in schools and companies in the US: "Indians are smart", or "Indians are good at Math". Sometimes it is Asians (Chinese, Japanese, Koreans) instead of Indians, but this notion persists. Since this is such a common perception, it helps to understand where it originates.
Most Indians that are visible to Americans are university students, co-workers, or other hard-working geek types. This is a very select group of people: those who were good at school, loved standardized tests and were willing to work hard and travel a long distance from their families. (People claim this is the cream of Indian intelligence, which is too generous. There are many smart people who choose to stay in India, because they can't bear the thought of leaving friends, family, food behind.)
So when you come across one of these folks in the university or at work, it occurs to you how all Indians are so different from the average American. What's more, every Indian seems to be hard working and reasonably sharp. After meeting a few such people, you cannot help forming an opinion that, "All Indians are Smart". Bang! You may have generalized a bit too far!
Back home in India, I made similar generalizations myself. I had met some foreign students studying in India and I was amazed at how bright they all were. Of course, they knew the university coursework, but they also knew about art, music, cooking and wine. They knew more Indian history than I did! Had I seen enough of such exchange students, I would have concluded that Western students are brilliant at everything they do. Similarly, many of my father's Japanese colleagues seemed to be exceptionally interesting, hard-working and sharp. But if you think about it - these were men with a high levels of responsibility so a dull person would automatically be disqualified from the job.
Something similar happens when Indians watch TV, and conclude that all Americans look gorgeous. Big mistake! They haven't encountered the average American, with his excess baggage of fat.
This is just a Sampling Bias, which was my original title for this post. However, a technical term would scare off half the audience, so I selected a suitably sensational title.
Thursday, June 18, 2009
Android Developer Videos from Google IO 2009
I've been having a lot of fun programming the Android. The Android talks from Google IO this year were informative and are a great resource for android programmers. You can view all the talks at the Google Code page listing IO 2009 videos.
Google has released these videos under the Creative Commons Attribution-Share Alike license so you can download them in the US from Youtube. For everyone outside the US, I created a torrent with Android developer videos from Google IO 2009 that you can download.
You can read the full details about the Creative Commons Attribution Share-Alike license to ensure that your use of the videos is legal.
Have fun programming the Android!
Sunday, June 14, 2009
Best Place to Work
Google gets held up as the best place to work, year after year. Reporters seem to focus almost entirely on the following factors:
- Free gourmet food
- Free massages
- Free fitness centre
- Awesome transportation options
- Google encourages people to work on something they enjoy. Don't like what you're doing: you're free to shift, within reason, to a project you enjoy. There's plenty that a smart engineer can do, and Google appreciates that.
- Managers are technically sharp and have tremendous organization and communication skills. I've attended plenty of meetings, and have always walked away with renewed respect for how well the managers understand all aspects of an issue. After one scintillating meeting, a peer observed this as he remarked, "Well, the brilliance was at display there, wasn't it"?
- The people I work with are warm individuals who care about their colleagues. When I had an unfortunate accident, my manager specifically instructed me to stay at home and recuperate. He also personally offered to transport things from my office to my house. I wouldn't need it, but it was a remarkably warm gesture: and this is just one example. I can recount countless such examples.
- Peers are talented and sharp people: to the point that I reserve Mondays and Tuesdays for feeling like an idiot. Most people seem to understand complex issues faster than it takes me to describe them. The people I have worked with are sharp, and yet they are humble. They encourage inquisitiveness, and lack egotism. And this is a team consisting of people who have authored text books in this field.
- My location, attire and timings don't matter to anyone. I can work from home on days that I'm feeling ill, or just too lazy to get out of bed. As far as I get my job done, why should it matter what clothing I have on? I have never been asked to be present at specific times, or specific places. Sure, there are meetings that I could attend: but if they're not related to my immediate work, I'm not required.
- I have a choice of computing environment. I choose to run Linux on both my desktop and laptop, and both are well supported by the administrators.
- Beyond the immediate work environment, Google seems to be a fertile ground for meeting other sharp people. All around, people are reading interesting books, having fascinating discussions, and building cool things in their spare time. The Google doctor is the best doctor I have ever seen, and her reputation confirms this. You can have great discussions about world cuisine with cafe staff, and they'll follow up the discussions with email.
- Even walking around the office is a rewarding experience. People post interesting snippets along office walls, and there are mini-libraries and common bookshelves stocked with interesting books. Large meeting rooms are abuzz with interesting talks by authors and technical experts.
Friday, June 05, 2009
Worse than an error
I've been using website quality as a metric of the quality of an organization, and it has been surprisingly accurate. Organizations that put effort into their website tend to be customer focussed. A sloppy website means that either nobody uses the site or that the site owner doesn't care about the users.
I had heard that Indian census data was online, and I was always curious to find out what the Indian divorce rates are. So I visited the census site at censusindia.net. You can see a picture of the website here. It is a very poor, shoddily designed website. A summer intern can do better with a day's work.

But what's better is not a single link works.
You can replace the server with a toaster and nobody would notice.
That entire website is worse than an error page!
Some of the links take you to the censusindia.gov.in site. Let's ignore the two domains, maybe there is a strong reason to have two different domains for data. Let's focus on the content. I spent the next ten minutes clicking on links that don't work. Here is a collection of images of error screens I got. As before, most of the links have very sparse content, and many of the links result in errors.

Here is another error screen:

Despite having very little content, they did go through the effort of adding links for translation (through Google Translate). So you can view the website in any language. Given that you will be looking at error pages most of the time, here is the entire website summarized in Russian!

Those two sites are absolute user interface nightmares. The second website does have some useful data after you go through a hilarious registration screen. Instead of putting up a single data file, they have elaborate drop downs that show you information in nibble-sized chunks. The site does not contain links to actually download the data. But they do have CDROMs and books in their "store" if you are eager for more. If you were to do any meaningful analysis, you'd have to spend hours just navigating their interface. Here's a radical suggestion: why not just put the data online and do away with the flashy images, the registration, the 'store', and the labyrinth of drop-down boxes? You know, like the rest of the world does? The site has been developed by LogicSoft, just so you know where the blame lies.
I was showing this to Neha, and we were discussing how bad the websites themselves were. Neha had a wonderful story which was related to the subject. Many years ago, while she was a Statistics student, she figured that it would be interesting to play with real-world data. She was in Delhi, and the relevant government offices were nearby. So she and a friend went over to the office to ask for data. They were treated with such utter contempt that they gave up any hopes of ever working with government data. Further, their story was a cautionary tale to other students in their university, who quickly steered away from any area even remotely connected with the Indian government data. Some of them were considering jobs that would have involved Indian government data, which they quickly abandoned for better employment.
Maybe there is something connecting the quality of the website and the organization. The census bureau website does turn out to be a good indicator of the attitude of people working at the Indian census bureau.
I had heard that Indian census data was online, and I was always curious to find out what the Indian divorce rates are. So I visited the census site at censusindia.net. You can see a picture of the website here. It is a very poor, shoddily designed website. A summer intern can do better with a day's work.

But what's better is not a single link works.
You can replace the server with a toaster and nobody would notice.
That entire website is worse than an error page!
Some of the links take you to the censusindia.gov.in site. Let's ignore the two domains, maybe there is a strong reason to have two different domains for data. Let's focus on the content. I spent the next ten minutes clicking on links that don't work. Here is a collection of images of error screens I got. As before, most of the links have very sparse content, and many of the links result in errors.

Here is another error screen:

Despite having very little content, they did go through the effort of adding links for translation (through Google Translate). So you can view the website in any language. Given that you will be looking at error pages most of the time, here is the entire website summarized in Russian!

Those two sites are absolute user interface nightmares. The second website does have some useful data after you go through a hilarious registration screen. Instead of putting up a single data file, they have elaborate drop downs that show you information in nibble-sized chunks. The site does not contain links to actually download the data. But they do have CDROMs and books in their "store" if you are eager for more. If you were to do any meaningful analysis, you'd have to spend hours just navigating their interface. Here's a radical suggestion: why not just put the data online and do away with the flashy images, the registration, the 'store', and the labyrinth of drop-down boxes? You know, like the rest of the world does? The site has been developed by LogicSoft, just so you know where the blame lies.
I was showing this to Neha, and we were discussing how bad the websites themselves were. Neha had a wonderful story which was related to the subject. Many years ago, while she was a Statistics student, she figured that it would be interesting to play with real-world data. She was in Delhi, and the relevant government offices were nearby. So she and a friend went over to the office to ask for data. They were treated with such utter contempt that they gave up any hopes of ever working with government data. Further, their story was a cautionary tale to other students in their university, who quickly steered away from any area even remotely connected with the Indian government data. Some of them were considering jobs that would have involved Indian government data, which they quickly abandoned for better employment.
Maybe there is something connecting the quality of the website and the organization. The census bureau website does turn out to be a good indicator of the attitude of people working at the Indian census bureau.
Sunday, May 24, 2009
My father, computer security expert
Check this transcript, carried over IM between my father and a friend of his (called Nikhil).
Nikhil: am not fine
Nikhil: am stuck here in uk
Father: what happened
Nikhil: i came here for a resort
Nikhil: and i was mugged at a gun point'
Nikhil: my moeny and so many other thig have being taken away by tis hoodlums
Nikhil: are you here with me
Father: yes
Father: Very sad to hear
Nikhil: am thinking if you could loan me some money to pay my hotel fee and some other thing and as soon as am back i will payyou back
Father: Who was your last boss, and which company you worked for
Father: Which floor was your office on
Nikhil: why asking me all this
Father: What was the PIN code of the office area
Nikhil: i cant talk right now
Nikhil: all i need is your help
Nikhil: my boss
Nikhil: pls help me
Father: Who used to sit next to you
Father: with whom did you fight everyday
Nikhil: ok
Nikhil: bye
In case you didn't understand it, it is a very sophisticated scam, where a fake Nikhil is asking my father for money. My father is not convinced that this person is Nikhil and tries to validate identity through secret keys (answers to questions only the real Nikhil would know). When my father first told me about this, I did not understand what he was doing. This is a very sophisticated phishing attack and I was amazed that my father saw through the scam immediately. There are a couple of lessons from this:
Nikhil: am not fine
Nikhil: am stuck here in uk
Father: what happened
Nikhil: i came here for a resort
Nikhil: and i was mugged at a gun point'
Nikhil: my moeny and so many other thig have being taken away by tis hoodlums
Nikhil: are you here with me
Father: yes
Father: Very sad to hear
Nikhil: am thinking if you could loan me some money to pay my hotel fee and some other thing and as soon as am back i will payyou back
Father: Who was your last boss, and which company you worked for
Father: Which floor was your office on
Nikhil: why asking me all this
Father: What was the PIN code of the office area
Nikhil: i cant talk right now
Nikhil: all i need is your help
Nikhil: my boss
Nikhil: pls help me
Father: Who used to sit next to you
Father: with whom did you fight everyday
Nikhil: ok
Nikhil: bye
In case you didn't understand it, it is a very sophisticated scam, where a fake Nikhil is asking my father for money. My father is not convinced that this person is Nikhil and tries to validate identity through secret keys (answers to questions only the real Nikhil would know). When my father first told me about this, I did not understand what he was doing. This is a very sophisticated phishing attack and I was amazed that my father saw through the scam immediately. There are a couple of lessons from this:
- Security is a mindset, not a product. My father's computer was not compromised. Most probably the attacker has the password to Nikhil's account. No antivirus or firewall on my father's computer would have prevented this attack.
- Unsafe websites and computers are a threat to everyone. Unsafe Windows computers and websites that our friends and family use could potentially be a threat to us.
- With users of online social networks, this attack could be made very convincing. Another reason to avoid putting too much information about yourself online.
- Security is about teaching people healthy skepticism. In this case, my father is already a security expert!
Wednesday, April 29, 2009
Watchtower updated. Now with Spy Glass!

Watchtower is a program that turns an Android phone into a wireless surveillance device. I recently revised Watchtower: it now includes the option of staying awake, a new icon, and a cleaner UI.
The real advance has been a desktop program called Spy Glass, which shows you the view through the Watchtower. It is completely written in Java, and works beautifully on Linux, Mac and Windows.

Downloads for both Spy Glass and Watchtower, and updated information is available.
Go get it now, that's all I can say.
Alright, for the more technical aspects. This was the first time I wrote something large in Java, for the desktop. I had looked at Java earlier (in the jdk 1.0 days), when it would compile and run on my Linux machine, and the binary also worked on Windows. I had written some dopey Blackjack program for the commandline, and was suitably impressed about how a single class file could work beautifully on two systems. I did not bother writing applets, partly because I had a terrible network connection and no use for them, and partly because my Pentium 100 would have a cardiac arrest at the sight of applets.
Before writing Watchtower, I had used Remote Droid for the Android, which turns the phone into a remote keyboard and mouse. Very handy when controlling a media center, and it worked perfectly in Linux. The Remote Droid authors had written their desktop program in Java. I figured it was a good idea for Watchtower to have its own pre-packaged desktop program, to make it easier for lay persons to use. Given that the Java marketing slogans routinely abuse the words network, cross platform and rapid, I figured it was a good time to give Java a try.
The good parts: The Jetty project has written a full J2EE web server in Java, which makes it trivial to embed a full web server in Java code. All I had to do was write a simple servlet which accepts POST requests, stores the images in a location and displays them. The Apache library had awesome servlet-side code which could parse a POST request and return the file.
So all one had to do was put it together, write some trivial Java code to display an image, and update the image when it changed. My work is a single class which is a servlet, contains an embedded web server, and is a JFrame as well! The Eclipse IDE was astonishingly good, perhaps better than IntelliJ on this project due to the vast hordes using Eclipse along with Jetty.
I put in some effort to unpack all the jetty and apache class files, put my own class files, and then packed it all together as a single jar. Again, the Java commandline tools were quite painless, and it was easy to handle, once I knew what I was doing.
In summary, this was ridiculously easy.
The bad parts: the documentation was often quite confusing. Java API documentation is a great reference, and beyond the Java Tutorial, one has to do a lot of searching on the Internet to find how to hook the parts together. Some of this was my own lack of understanding, since I was totally clueless at the start. That said, it seems that there should be a better way to highlight what the bits are doing beyond some pithy API document. Google was very helpful, of course. A minor hurdle remains that jar files cannot have file-specific icons, which means that spy glass gets platform-specific icons.
Finally, I am using some beautiful icons developed by Jacal Team and Artua. Thanks to them for sharing their work and letting others use it.
Labels:
android,
java,
watchtower
Subscribe to:
Posts (Atom)