Friday, September 5, 2008

Android leftovers

The problem was Google's attitude. They love brilliant people, and despise people who are average.
Anyone who has gone through the hiring process with them, is struck by this realization.

While that attitude is unfortunately true for many of us, they carried it over into their Android effort which was supposed to be a community open source thing.

The community served more than as guinea pigs for their nascent alpha stage Android mobile platform. They wrote innovative applications to compete in the Android contest - 1786 applications! During this process they contributed good ideas which Google used, enhancement suggestions that were implemented, tested and reported bugs, helped each other in the forums and some even wrote tools to enhance the platform.

In return, Google loved on the 50 winners of the contest (after an unfair and hasty judging process) and spat upon the rest of us, the 1700 entrants and community. Once Google got what it wanted in a final version of Android, we were discarded like leftover food gone stale. As a result, most got disillusioned, felt used, and simply left. Now Android is just another platform. It has none of the magic and romance that Java and Linux had.

Monday, May 19, 2008

web advertising is Google's Achilles heel

I feel web advertising is Google's Achilles heel. How effective is an advertisement?
People don't really know. That is how Google profits. I have some nascent ideas (half baked).
If anyone is interested, we can collaborate. If my guess is correct and it proves to be Google's Achilles heel, then it has the potential to bring Google crashing down - but none of us would want such a horrible thing to happen - right? ;)

Sunday, May 18, 2008

juwo as a framework for other applications

juwo is misunderstood and much maligned - probably because of its non-intuitive and poorly designed user interface. Yet, it is powerful in concept and potential uses.

Recently, the prestigious and highly competitive Android Developer Contest concluded. Out of 1788 applications, 50 were picked as the winners (the list is here). juwo lost badly - in fact, it was likely disqualified at the outset because I never received my scores.
However I was amazed to see at least 3 winning apps that juwo could pretty much, do all that they could.

  • Breadcrumbz - navigation using pictures. This can be a juwo with each block, containing a photo or a voice note, and text.

  • Cooking Capsules - cooking instructions with a video. Again, this can be a juwo with each block as the step of a recipe. Even better than the original application, you can skip to the important parts of the video and replay.

  • TuneWiki - lyrics stream on the screen as music plays. Here is a juwo demo of American Idol. The lyrics could be - one verse for each block.

These winning applications show that juwo can be used directly or serve as a framework for other applications to build custom interfaces for their specific needs, on top of.

Think... multimedia lists.

juwo can be used for serious applications to benefit society. For the developing world - quicker diagnosis of diseases, better utilization of health care resources - doctors, midwives in rural areas. This is both for the developing world, and rural under served areas in the USA. (I shall release details of this after juwo is available on the actual handsets).

It is discouraging that few can see its potential.

Monday, May 5, 2008

To Google: please make your Android strategy win-win, not win-lose.

To Google - Dan Morill, Rick Miner, Google Android Advocates and Brin(?) - please make your Android strategy win-win, not win-lose.

In the history of software, no company has had 1788 applications for its pre-alpha platform in such a short time. This was propelled, largely by the work of the Android developer community.

Please recognize that most of the 1788 entrants (including myself) did so at personal and family sacrifice. Most of us were not paid a salary to do this. Any hopes of competing and winning will now be tempered by the results and a realization of the intense competition and the long odds.

Only one person can hope to win a prize in a contest, but this was different from other contests in two striking ways.

  1. if this were a desktop contest, we could be turning our apps into business startups right now. With Android, it will likely be 2 years before the common man on the street can afford an Android phone at sub $100 prices (per the Wireless week article).
  2. if this were an Ajax/Flash/J2EE contest, we could be picked up by a good number of local employers, who already use such skills. Contrast this to Android...
In other words, for Android, the payback for most of us, is not clear. It is win-lose.

Suppose there were no applications for Android except the usual boring suite of Google Maps, Mail, Search etc. Then Google would have to hire developers or outsource development to companies to create new mobile applications, or buy up mobile companies. It would have been very expensive for Google. At a minimum, would have cost hundreds of millions of dollars; instead, it is now a free win for them.

For Google, it is currently Win-Win for:

Google
/........ \
OHA - Consumer

The Android developer is not in this picture. If they feel that they are being used and
exploited, then they will walk away. Sure, Android can still win, but it will be costly and
slow.

So please modify your triangle into a square and make it win-win for all of us.

Google - developers
| .............. |
OHA - Consumer


A few ways:

1) Allow hosting of projects with an Android component at code.google.com, even if they are
closed source. Presently only open source is allowed.

2) Marketing. Free use of Google Adwords for our android applications for (say) six months.

3) Subsidize handsets to the developer community. They should be at the same price as a
mid-level GSM handset. e.g. $50.

Tuesday, February 5, 2008

I am in a serious struggle

I was laid off last week. It had something to do with my approaching the company founder - Augustus Grassis and offering him equity in juwo if he would allow me to work on it full time. I had previously asked my manager for vacation and openly told him I would be working on juwo for the Android contest. This rankled them. (I guess it would be fine if I spent two weeks on the beach, but not if I were programming on a personal project). Also juwo had been excluded in the non-compete agreement I signed when I joined them. They said they needed to cut jobs. They said my heart was not in my work. It was true; my heart was in juwo even though I met their project deadlines.

I failed before. Now I need more than ever, to make this entrepreneur thing work. To earn a living.

Wednesday, January 23, 2008

Android redesign - suggestions for Google

  • use a thick arrow anchored at the bottom edge to indicate when there is an overflow of data so that user must scroll down.

  • allow file names to have spaces

Don't simply bubble up Linux' restrictions!
This restriction will make things less interoperable.
see http://groups.google.com/group/android-developers/browse_thread/thread/c3fe7eda6f564d4d/f7d9ca5b7e702d63#f7d9ca5b7e702d63

[Note: I was apparently mistaken - the restriction was from Android. Linux allows spaces]

Use well known Design Patterns for callbacks, and use exceptions not return codes!

A) when calling an Activity:

startSubActivity(...,,[methodName or reference to Method]);
// for example Class.forName().getMethod("foo")

B) in the callback method foo().

foo() {

try {
Activity.checkActivityResult(); // throws exception if error
doSomething();
} catch(Exception1 e1) {
e1.printStacktrace();
}

}
see http://groups.google.com/group/android-developers/browse_thread/thread/9f7ccae2a56f9f1e/6737ef0e75153fcf?lnk=st&q=#6737ef0e75153fcf

  • log filters should use approximate, not exact matches.
The tag in class Bar of my application Foo becomes "Foo Bar". This is
necessary so that I know where the message has come from - like log4j.

However if I want to see messages of my application and create a
filter: "Foo", then they cannot be seen because they match exactly, no
wild cards, and so the filter must be specified: "Foo Bar".

Hence it would be a simple and small but useful change if Google were
to match using startsWith() and not equals().
see http://groups.google.com/group/android-developers/browse_thread/thread/d528d6c810a18647