Android API designers are reading my mind!

You know you are working with a generous and well thought out system when there are moments you think the API designers are reading your mind. One of the greatest complements to an API designer’s foresight!

While working on a relatively dynamic layout for an Android app I’m developing, I came across a simple problem with RelatieveLayout. A certain View within the layout must always be aligned with another View … almost always. There will be times when this anchor view might be gone. Without manipulating the layout in code, that is only using the layout XML, how do we tell the layout manager where to align things if this anchor View might be missing? Wouldn’t it be nice if it just knew to fall back on using the parent ViewGroup as the alignment guideline? Well, Android API engineers thought that it would be nice as well: android:alignWithParentIfMissing. Sometimes I’m glad my problems are not as unique. More info here.

Read More

What motivates us

A friend of mine recently sent me an insightful animate of a talk about an MIT social experiment where somewhat surprising results were seen. The study showed that higher monetary rewards can usually lead to a decrease in performance if money is the ONLY reward employees get for their work. It explains that money is a great incentive in repetitive mechanical tasks but when tasks require greater cognitive abilities and creativity, autonomy, mastery and purpose were far more important.

I say this is “somewhat” surprising to me not because I didn’t expect these results but rather that these results were finally found in a controlled scientific study. I had seen the behavioral patterns illustrated in the talk in myself as well as some colleagues. Being financially compensated fairly for our work is necessary but not sufficient. Looking back at my career so far, I’ve spent a lot of time doing extra “work” after work hours totally unrelated to my real job simply for the enjoyment of it. I have read and taught myself different aspects of technology not because it will eventually help me get a raise or obtain a better position but because I simply enjoy it like one might enjoy playing a musical instrument. This gives me some purpose and reaffirms the love I have for this profession even after sometimes stressful days. I am definitely not the only one who feels the same way. It is then not surprising to me that this same behavior can be seen in a more general context.

Watch the video:

Read More

Why Android?

Several people have asked me why I’m so excited about Android. They don’t believe it can ever rival iPhone’s success. “It is too little too late”. In part they are correct, Apple has done a tremendous job in putting the iPhone in the hands of consumers. Its sleek design, excellent usability, and “hype” have won the mind of just about anyone that uses a mobile device now days. However, they are not looking at what Android promises deep enough. It is not just about the cut and dry technical merits. It is the potential for greater availability of applications and choice of hardware where I believe Android will come out on top. I have been playing with the Android SDK (on Linux, with Eclipse, no NDAs, no payments, no applications) for a few days and from what I have seen, I believe that developers will shift momentum Android’s way. Apple has made that mistake before. “Developers! Developers! Developers!…”; Crazy delivery but very true words.

When we look at how things are turning out in the mobile world, one can’t help to be reminded of the PC vs Macs battle of the 80s and the Internet vs AOL/Prodigy/Compuserve of the 90s. We all know how those conflicting approaches turned out.

This piece from Professional Android Application Development explains very well what I see.

What Will Drive Android Adoption?

Android is targeted primarily at developers, with Google and the OHA betting that the way to deliver better mobile software to consumers is by making it easier for developers to write it themselves. As a development platform, Android is powerful and intuitive, letting developers who have never programmed for mobile devices create useful applications quickly and easily. It’s easy to see how innovative Android applications could create demand for the devices necessary to run them, particularly if developers write applications for Android because they can’t write them for other platforms.

Open access to the nuts and bolts of the underlying system is what’s always driven software development and platform adoption. The Internet’s inherent openness and neutrality have seen it become the platform for a multi-billion-dollar industry within 10 years of its inception. Before that, it was open systems like Linux and the powerful APIs provided as part of the Windows operating system that enabled the explosion in personal computers and the movement of computer programming from the arcane to the mainstream.

This openness and power ensure that anyone with the inclination can bring a vision to life at minimal cost. So far, that’s not been the case for mobile phones, and that’s why there are so few good mobile phone applications and fewer still available for free.

Corporations will also be attracted to Android for the level of control it offers. By using a popular enter prise programming language in Java, no licensing fees, and offering the level of access and control users demand, Android offers an excellent enterprise platform.

Read More

Gnome-Do Plugin – ManLookUp

Instead of working on my Artificial Intelligence assignment I spent some time last night playing with Gnome-Do (Crazy Delicious!).

For those of you not familiar with Gnome-Do, it’s a very nifty way of accessing commonly used files, actions, tasks, etc in your system. It’s a bit hard to explain with words so check out the screencast. Many of you will recognize its functionality to be very similar to GNOME Launch BoxQuicksilver for the Mac, or launchy for Windows. Gnome-Do of course runs on Linux and it is written in C# using Mono.

The plugin architecture is decently documented, and because it is open source, it is very easy to dive into the code and learn how things are setup to get you quickly going with plugin development.

So, after some researching and hacking around, I came up with “ManLookUp”. It is a is a very simple Gnome-Do plugin that allows to quickly search for man pages installed in your system. One can either type the command: “Man lookup” “View Manual Page” “Read Manual”-> hit Tab  to get a list of pages + description of the entry or search for a man page entry directly. Selecting one of the entries brings up the man page entry on a terminal window. Selected text as well as Application Items indexed by Do itself are also supported. I hope this plugin is helpful for others as well.

Monodevelop project, release/debug binary, and of course, sources can be downloaded from:


Gnome-Do Plugin - ManLookUp

Development site:

Read More