Mobile application development middleware?

I am the author of an ExtJS based cluster management web-application (Scyld IMF at Penguin Computing) that allows controlling a high performance compute cluster from any web-browser, be it from your desktop or from a mobile device. This works fairly well already even without writing a special view for the mobile devices as current smartphones (iphone, android) come essentially with a full blown javascript capable web-browsers and lots of processing power. However performance still could be better by having a native app that uses the same data sources / api as the full blown web-application (javascript app running on the browser being the client to the webservice-api on the server side), but implementing the view natively.

After hacking up a proof of concept for the iphone (thanks John for your awesome iphone JSON flickr tutorial and xcode example for download) and thinking of how to do the same for android without duplicating effort, I realized that it would be nice to be able to have some kind of middleware that allows me to create and populate native gui components without code duplication.

One such middleware is phonegap which requires you to write your application in javascript and html, and allows accessing phone specific features through javascript calling the middleware. It then is bundled as a native application that can be submitted to the app store for purchase and can run completely offline once downloaded, unless the programmer chooses to access remote resources. Their initial focus seems to have been allowing access to smartphone specific features like the address book, vibrate and sound, gps location and such, but there also is code in there to use native gui components as well.

I have two problems with the approach:

1. development of javascript – while palm pre developers might tout this as an advantage, I find javascript development and debugging rather tedious and would prefer writing my code in java or objective-c and be able to run it through a full control debugger on my desktop before deploying it to the simulator. I know about and am actively using firebug, the javascript debugger for firefox, but a lot of the bugs I had to deal with were incredibly hard to hunt down and rather than the debugger it was the forums and interacting with developers on #extjs chat, as well as using jslint and manually analyzing code, that helped me figure out a root-cause, workaround or fix.

2. performance – developers report that the phonegap version of their app appears to consume more resources rather than less compared to a remotely hosted javascript app, accessed through the mobile devices web-browser. Apart from the overhead of having to parse javascript at runtime, developers sometimes need platform specific knowledge and implement different than for a web-application, i.e. iphone onclick events being much slower from the touchscreen than ontouch events.

The advantage on the other hand appears to be that it is relatively easy to add new mobile platforms to phonegap. So far they appear to have iphone, android, blackberry and some nokia platforms covered, with palm pre being on the horizon to be added beginning of next year.

And according to phonegaps website, there are already several real-world phonegap powered apps in the marketplaces of both the iphone and android.

Thoughts?

My Photo Store

I have been posting my photos to flickr for a while, and enjoy the wide audience that they get.

One has been featured in Schmaps city guide at http://www.schmap.com/ and now I take it a step further and start offering a few that I am especially in fond of in form of products (cups, canvas prints, posters) at http://my.qoop.com/store/7006611294200106 – anybody here that has successfully marketed their photos that way before? It’s a first-time for me and I am curious if I should invest into some google adwords 🙂

While looking for what other people advertise under searchwords that I was interested in, I found this hilarious squirrel-tries-to-attack-birdfeeder video on http://www.squirrelstuff.com/ – you gotta check it out, too funny!

The quest for my next digital camera purchase decision – spoiled by the beauty of my ex: the Canon G3

The beginning – Fuji Finepix 1400

This was my entry ticket to the world of digital photography, I loved it and collected tons of really good shots in all categories except low-light. Fantastic landscapes, portraits, macro flower and insect pictures… When technology moved on and I finally had a budget to spend, I spent a lot of time researching and found that the Canon G3 was going to be the best bang for the buck.

The happy days – Canon G3

I used to have a Canon G3 and loved it – vario-angle LCD would allow me to shoot over the heads of crowds, or close to the turf
without having to lie in the dirt. Crisp and clear pictures to the pixel allowed me to crop subimages of amazing quality. I was in love, but unfortunately lost the camera to some thug smashing my car window in Moraga of all places, and grabbed it out of the car. I wanted to buy the G7 but since Canon ruined the product line by getting rid of the vario-angle LCD and the RAW mode (raw reintroduced on G9 but still fixed LCD), so I figured I might as well go with a power shot sd550.

Some examples why the live-view and vario-angle LCD are important to me:
Take a look at these, I did them with live preview to make sure the focus was on the right thing, but without the variolense:

Squirrel eye to eye

I have lots more at home that are done with the G3 and the varioangle that are not possible without:
1. waves crashing – right at the waterlevel
2. turf of a bicycle trail
3. police action against protesters when the iraq war started, shooting high overhead to see whats going on in spite of a crowd in front of me
4. water coming down a small canal, similar to 1. – basically a photo of what you would normally not get to see and which looks very interesting.
The lame days – Canon PowerShot SD550

Way inferior to what the G3, the only advantage was not bulging out my pants pockets the way I did with the g3… the image quality was just not allowing much cropping/postprocessing – lots of megapixels, but once you look at the pixel level it was blurry and grainy.

Now that the LCD cracked, I am ready to buy something that gets me back to where I was with the G3…

Whats next? Nikon D40…

I have a hard time deciding what to do next though, go DSLR with the Nikon D40 seemed like the next logical step price/performance wise within my budget, but like traditional SLR it does not have liveview / vario angle LCD and all the high end cameras that have it are way over my budget…

The PowerShot S5 IS seems to be close to what the G3 was, but as far as I can tell from the reviews, I can expect the picture quality and battery live to be disappointing in comparison.

The upcoming rebel Xsi has the live view feature, but still a fixed LCD…

So far I lean towards either borrowing a PowerShot S5 IS or G9 somewhere and test if it is good enough for me, or do the same with the D40 and see if I can live with having to press my eye against the camera each time I want to snap a picture… any volunteers in the SF bay area?

Update: I got the Nikon D40 and so far I am in love, will post more later… See some examples on my Flickr photo blog http://www.flickr.com/photos/mrmichaelwill/

Michael

save flickr – save yahoo mail

Microsoft is going to attempt to incorporate flickr and the other yahoo services into its portfolio.

http://blog.wired.com/monkeybites/2008/02/what-would-micr.html

 http://wow.jules.ca/jules-dot-ca/2008/2/4/microsoft-and-yahoo-what-happens-to-flickr.html

 http://www.linuxjournal.com/content/what-happens-if-microsoft-buys-yahoo points out that multiple important open source projects that are directly competing with microsoft technology like YUI

 http://bits.blogs.nytimes.com/2008/02/01/flickr-users-consider-their-potential-microsoft-overlords/

What can we do to prevent that?

Everybody buy yahoo shares to make it go up to $40 and vote against the merger?

Everybody pull their content out of flickr when the purchase happens?

If you have a creative and smart idea, please comment…