Wednesday, October 15, 2008

EarthBrowser at the Adobe MAX awards

EarthBrowser has been selected as a finalist in the Rich Internet Application category of the Adobe MAX awards.


If you are going to be at MAX, please stop by and say hello. I believe I'll be showing off the latest version of EarthBrowser from 6:30 - 8:30pm in the Moscone center on Monday Nov 17th.

I have to say that I'm pretty excited to be attending Adobe MAX this year. Flash/AIR is a very impressive platform for applications development, I'm pretty sure that I'll never go back to doing a GUI application in C++. The coding team for Flash Player and AIR have my highest respect for enabling such a powerful tool.

I hope to have the EarthBrowser website plugin API finalized and ready for the public by the time MAX starts. With it you will be able to create your own customized and self-branded virtual globe on your own website. Several companies have already contacted me about developing solutions for their geospatial offerings based on EarthBrowser. I also just finished a project for Autodesk to have EarthBrowser running on a kiosk with a 40 foot projection wall in their new San Francisco Customer Care Center. I hope to drop by and check it out when I'm down there, but the MAX show is keeping me pretty busy...

Monday, October 06, 2008

EarthBrowser and Amazon cloud computing

First a quick note: EarthBrowser has been named a semi-finalist for the Adobe MAX awards. It would be great to get to the finals but I'm just honored to have EarthBrowser be recognized by Adobe as a great use of their amazing Flash technology.

As you may already know, EarthBrowser is a virtual globe that runs on the desktop but that is only half of the story. The other half of the EarthBrowser service is running on a set of servers that manage the website, licenses and data services. Data ingest, processing and management is a pretty big task, but is perhaps one of the most fun tasks that I do and is also the best way to create great content for EarthBrowser. EarthBrowser can read most KML files but unfortunately there aren't many great dynamic KML datasets out there. Perhaps because KML was designed for static content.

My favorite dataset in EarthBrowser is the precipitation forecast model, especially when paired with the tropical storms dataset. It gives a really interesting idea of the extent of the storm and also what is going on inside of it.


Richard Stallman of GNU fame believes that cloud computing is a "trap" but he is using a very narrow definition of the term. Cloud computing seems to be thrown out there to describe anything from web based applications to software as a service, the differences are obscure but important. At least for me, what cloud computing means is that it takes what was once a very time consuming administrative task and turns it into a programming problem.

Managing the software stack, configuration and uptime of these servers is cumbersome task to say the least. Designing an algorithm that can launch and maintain a fault-tolerant clustered server setup with no user interaction is an extremely attractive business advantage and also a very cool programming problem. I have been doing some extensive investigation of Amazon Web Services and am now planning on deploying my entire server side infrastructure on the AWS platform. I have been using the Amazon S3 storage service for quite some time because it is simple and just makes so much sense. With the recent release of the Elastic Block Store and Elastic IP Addresses, Amazon has a complete and very powerful solution for self-configuring web services that can also easily save and restore state in the event of a system crash.

So now in addition to EarthBrowser, I am working on a side project, I'm calling it FireAnt, that will create a server setup that can scale from one small instance to a full blown cluster of servers. It will scale up by adding new servers and as the load increases and scale back down as it decreases saving you money in the process. The base server is running a modified version of GeoDjango with Apache and PostGIS. Pound is used for web server proxying when scaling up and each server can take over for any of the others in the event of a system failure. I may release the code as open source, but I am a little worried about the time it would take me to manage an open source project. There is Scalr which is an open source project that will do something similar but it has a minimum of 4 server instances and it is based on PHP. Yuck.