Android Device Database

By the end of 2009, Google predicts there will be at least 18 Android phones. This is great news, but it also means developers must create apps that work on a wide range of devices. Each phone may have a different screen resolution, support different sensors, and could report a different User Agent string when accessing web sites.

The Idea

Create an online, interactive Android device database. This web site will list every Android device, along with complete specifications. The site should use AJAX so visitors can sort, search, and filter efficiently. Using this site, people can see:

  • Detailed specifications for specific phones
  • Sort by screen size or any other attribute
  • Filter to show phone supporting the accelerometer or any other combination of features
  • Select several phones and compare their features side-by-side
  • etc…

Android Client Software

Part of this project involves a client application running on Android. This application will inspect all of the phone’s features and upload them automatically to the Android device database web site. For example:

  • Screen resolution
  • Keyboard type (physical or soft)
  • List of supported sensors
  • Software version information
  • OpenGL features
  • Anything else we can detect without violating user privacy…

This information is easy to gather, and can be POSTed to the web site as XML or JSON. Once submitted, the information is automatically entered into the phone database along with the User Agent the phone sent.

How I Would Do It

I don’t have time to create this app (I’m working on something else). If I did have time, here is how I’d do it:

  • GWT 1.6 for the web site
  • Google App Engine for the server hosting and data storage
  • Android SDK for the client (duh)
  • Google security to prompt for username/password when submitting a new report
  • Host everything on Google Code with an Apache 2.0 license
  • Use Mercurial for the source code

Moderation Queue

This is a technically easy project. The main challenge I anticipate is fighting bogus submissions and spam. You could implement a moderation queue for any new submissions. Once someone with a T-Mobile G1 submits the first report, all subsequent submissions from identical phones should be identical, and would thus be automatically ignored.

You may need to moderate and approve brand new submissions from phones that are not yet recorded in the database.

Other Ideas

It might be nice if people could post pictures of each phone on the web site. This would be a manual process, as the phone software cannot take a picture of itself.

So what do you think? Is anyone interested in creating this application?

Ominous New Direction for Java?

Java SE 6 Update 14 (gotta love those names) is now available. According to the release notes, a new “Garbage First (G1) Garbage Collector” is enabled. To use it:

-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

Do so with caution, however. As @kimchy noted on Twitter, the release notes include this statement:

Although G1 is available for use in this release, note that production use of G1 is only permitted where a Java support contract has been purchased.

What do you think?

Google I/O Contest

Are you attending Google I/O? I’m not, but @davidangry is.

Submit your best @davidangry Google I/O story on Twitter. After the conference ends, the best Tweet wins a $20 Amazon gift certificate.

Rules

  • Your tweet must mention @davidangry (so I know how to find it)
  • Your tweet must include the #io2009 hash tag
  • I am the judge.

The contest is real. @davidangry is not. Let the tweeting begin.

Setting Java Version on Leopard

Today I learned something new about Leopard. On the command line, my default JDK was 1.5. I was about to edit a symlink under /System/Library/Frameworks/JavaVM.framework/Versions to change to 1.6, but instead learned about the Java Preferences app.

In Spotlight, find “Java Preferences” and launch it. Or, find it directly under Applications/Utilities/Java. It looks like this:

Java Preferences

Just drag and drop to rearrange items in the lists. The JDK at the top of the list becomes your default.

Ant

While this worked, Ant still used the old Java 1.5. I fixed this by adding a line to ~/.bash_profile:

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home

Wolfram|Alpha – Flummoxed by an Apostrophe

Wolfram Alpha is the hot new search engine. Of course I searched for “Eric Burke” first, and found nothing.

Next, I searched for my city and state (O’Fallon, MO) as shown here:

OK, that didn’t work. Let’s try removing the apostrophe:

As you can see, it worked. Oddly, their own “Input Interpretation” displayed the city name with the apostrophe. They just won’t let you search that way.

See also: Apostrophe Abuse.

Water Rocket

via vimeo.com

This is our homemade water rocket, built with PVC pipe and a 2-liter soda bottle. Go to the “Ask This Old House” and search for “water rocket” to find the plans. You won’t believe how high this thing goes!

Posted via web from Eric Burke