Is Adobe Apollo better than Ajax? (applications back to desktop!)

 May be you’ve heard the buzz about the Apollo project from Adobe. Basically, it’s a desktop framework that allows the execution of  applications in a machine independant mode, and provide access to local ressources of the computer (mainly filesystem). The objective is to be able to use Web applications in a non connected mode (local) for various reseaons (speed, availability of network, etc…). This is also called RDA (Rich Desktop Application )

The first remark, is that it sounds very similar to the initial objective of Java, 10 years ago! A machine independant VM, internet oriented, etc… especially with automatic upgrade features that are now parts of JavaWebStart. I am always surprised by the way industry always “re-create” the same things again and again. The good thing is that each iteration is better than previous one, but now, after the “everything is on the browser”, we are back to “local applications”. Sun had the lead some years ago, but was totally unable to drive and support the market.

About the framework, himself, there is not yet so many information, but I am afraid that it’s just a good repackaging of a local Flash player with PDF and an HTML component…Nothing really exciting, but Adobe is very good at creating the right buzz  and as always, got great designers that create apps with the right waoow effect. The positive side is that Ajax/HTML are not really good technologies to build rich UI, they are just hacks, so it’s time to have something better. Not sure that Adobe will bring something better, but the fact is that there are not so many alternatives yet. Microsft is polishing is WPF framework (ok, not polishing but starting) so Adobe may have a timing advantage here.

But I have a few remarks:

- This is not standard. By developping an Apollo application, you rely on Adobe as the only provider of a technology. You can not provide your own Apollo implementation for specific devices, like mobile phones for instance. It’s a step back from the internet open standards.

- Full offline capacities won’t be for Ajax/HTML: I am quite sure that the offline capacities will only be available for Flash/Flex application. In other word, an existing Ajax/HTML based application won’t be able to run offline , or just as the equivalent of a “save as” mode, unless it will be rewritten. So do not expect to “port” your existing application now. It’s the best way to push you to adopt Flash/Flex.

- Is JavaScript/ActionScript the right language? JavaScript is a nice language, but is it adapted to develop full applications? Remember that in a RIA, most of the application logic will reside locally while now you can have part of this logic – especially the complex one – on the server side. So suddenly you will haves thousands if not more lines of code in pure JavaScript. Was already hard to manage on the internet, might be harder with RIA? ActionScript, which is ECMA based, seems more mature than pure JavaScript, but also incompatible….

My last remark (and linked to the first one) is that on mobile for once are not to far away. The availability of Ajax enabled browsers was limited (read non existant), so all rich applications are made using this kind of concept through J2ME, FlashLite, native, etc…and framework (like Mobease Widget one) are built on top of these technologies.

As I’ve previously explained, mobile is most of the time more about synchronisation than browsing (for mails, address, news, etc…) and such locally running app with connected capacities are the best answers.

That’s why Apollo go into the right direction even if there is still a lot of weaknesses in the approach, so let’s see how others react – Microsoft is doing WPF . Is there any attempt from the opensource community to propose something like this? OpenLaszlo? FireFox with XUL?

Note: during the preparation of this note, I’ve discovered “SideWinder“, which seems to be a project that attempt to build a framework for connected/non connected internet application. Seems highly interesting, but also not very mature as I was not able to run a single demo…

Technorati Tags: , , ,

3D avatars: this would be a cool techno for phones!

Techcrunch published today a post about Gizmoz, an Israli company that seems to have increadible technology to create avatar. Read Michael Arrigton paper for full story, but as a mobile obsessed guy, it’s the first time that I see a 3D mobile avatar technology that could be used for mobile…
The customized avatar service is still in private beta, but from the screen shots, it seems quite easy to create your own avata from a picture. Which is great, as now most of the cell phones haves camera. Then, add recording, or text to spach, a few transformations and you have tons of perssonalized services that could be created easily….

See some video generated iwht Mike head here

(Pictures from Techcrunch)

Technorati Tags: , , ,

Orange/Google phone on the way?

According to the Guardian, Orange and Google are discussing the creation of a “Google Phone”. Probably manufactured by HTC (HTC is also provding many of Windows devices for Orange), this phone should be internet oriented and optimized for browsing, as well as providing some location based services….

The phone is not expected before 2008.

Interesting, as Google was frequently considered as an operator competitor….

Some would expect this to be an “Web2.0 enabled phone”, allowing to browse existing Google wbe site. My personnal thinking is that it will be an optimized experience for mobile devices, just like what have been made in an excellent way with GoogleLoacl and Google Mail for mobile.

Technorati Tags: , , ,

Augmented Reality: Total Immersion moving on CellPhone?

Earlier this year, I had a post about potential interest of augmented reality on mobile. It seems that Total Immersion, the leader of this sector – well now with a famous demo 2004 presentation  haves also plans for mobile.
Here is a video which shows some potential usage of AR on mobile for advertising for instance. Sorry, the video is in french. Examples includes “augmented reality advertising”, and the manipulation of a small character. I am sure that there are much more interesting scenarios than these one, so let’s see….
On negative things is that the demo still running on a PC, and very little to do with mobile now. One of the great things with AR on mobile, is that the concept of a camera phone allows you to use the mobile as a “window” or a “lens” that transform what you see. This feeling does not happen with the current demo where you have to look in a different direction to see the results. Hope that before 3GSM this will be solved (Total Immertion plans to demonstrate it on 3Gsm next year).


Video: Total Immersion – On10

Through Codors Blogs

Technorati Tags: , ,

A new patent war ahead : Surfkitchen on dynamic download?


Surfkitchen, a provider of ODP (On Device Portal) is on the way to have a UK patent that  – if I understand it well – might generate a lot of troubles if granted. This patent cover the download of dynamically generated data that is trigerred by an SMS.

 First, let’s look at the abstract:

Abstract of EP1536613

A method of server initiated download of information is described. When a server (5) determines that content (26,28) is stored which is to be made available to a remote device (1;2) the server (5) dispatches a signal to the appropriate remote device (1,2) in the form of a non HTTP message such as an SMS message which has a predefined format. When such a signal is received, this indicates to the remote device (1;2) that content to download exists. A browser program (14) on the remote device (1;2) then responds to the received message by forming a conventional HTTP link to the server (5) and requests location data identifying the location of content (26,28) to download from the server (5). When the browser program (14) receives the requested location data the browser program (14) utilises the location data to generate instructions to cause copies of the content (26;28) to be downloaded via the HTTP link.

So the patent seems to cover the fact that you notify a mobile through SMS that a content is available on the server. Then, the mobile answer by forming an HTTP request to download this content from the server.

This seems quite broad, and might cover many existing services/technologies:

  • MMS ( See Wikipedia definition ) . A notification is send to the client, using SMS or Wap Push and then the phone generate an HTTP request to download the contents.
  • Wap Push, more generally speaking, is just sending a link (an URL) to a mobile phone, so it trigger by definition an HTTP request.

If you dig one step further, it appears that the patent highlight the fact that it’s not really an URL to the exact location which is sent. It only trigger the fact that some informations are available, and then, the server identify the user and only send the relevant information….

  • [0019] Having the server 5 send an initial content update signal which indicates the existence of content to be downloaded from the server 5 but which does not indicate the location of that content gives rise to many advantages.
  • [0020] Firstly as the signal does not identify the location of any particular item of content, a single signal can be sent to a remote device to enable the remote device 1, 2 to download multiple items of content. The fact that a single signal can be sent reduces the amount of data which is transmitted to the remote device via the non http link.
  • [0021] Additionally, since data identifying the locations of content to be downloaded only needs to be generated after the browser program 14 has initiated a communications link between the remote device 1; 2 and the server 5, this data will identify current locations for content to be downloaded even when there is a delay between the sending of the initial content update signal and the initiating of a communications link by the browser program 14. The possibility that content from within the content store 24 is deleted in the interim between notification of the existence of content and the dispatch of a request to download content from a location and hence a requested item of content is no longer available is therefore reduced.

Translation: the data to be downloaded is created dynamically. In other words, the link might be http://myservice.com/get/tomsoft  ( or just http://myservices.com/get if the user is automatically identified) and then the answer content depend of the user: it’s a dynamic content/page creation….

So if the result of the SMS sent is a dynamic page, then you might be concerned by this patent.

It might be the case of SyncML, where HTTP synchronisation can be triggered by an SMS for instance.

In fact, many services trigerred by SMS might be covered by this patent. MobileScope have plenty of these, but we are not the only one in the industry. Of course, as a competitor to SurfKitchen, we are more concerned by such patent.
But many deployement of applications are done through SMS/WapPush, and it’s not always a link a static ressource, but to a ressource that might depend of your handset for instance.

Note: the patent is not yet awarded, but in a final phase.

So I would be curious to get your feedback/views on this? Does anybody in the industry feel concerned by this?

Technorati Tags: , , ,

J2me mobile development practices

It’s a long time that I am in the mobile industry, before J2me, and at a time where cell phone where not a mass market product!
I’ve followed the evolution of mobile development practices, especially in Java. So I agree partially with this article: The 10 principles of Assembly Java who gives good hint and tips for mobile development, but I also think that hopefully most of them will start to disappear slowly.
It’s a really strange industry, where on one hand people are talking of “MobileAjax” as the killer app, where the cost of one Ajax line is probably equivalent to the cost (in terms of CPU, memory used,battery) of a full Midp1.0 application, while other are strugling with putting everything in a single class to fit in constrained devices.

So the truth is as always, probably in between. These principles are mostly applicable if you want to deploy on older handsets (including MIDP1.0) or generally speaking phones older than 18 months, which is the biggest market in terms of installed base, but might not be the biggest one in terms of usage, but that’s another story.

MIDP is improving and got more memory, so I think that a few OO principles can be back. So I just compiled a few more advices, and I would be happy to discuss of them:

  • Use carefully inheritance, but use it. J2me is an object oriented language and framework. Using inheritance could save a lot of code and time. Use this time to optimize other things.
  • Reduce the number of classes to the minimum, but do not put everything in a single class; It’s better to have an elegant three classes design than a single classe optimized one. The benefit of the later will be killed by the complexity.
  • Avoid setter/getter unless it creates too much constraints. For instance, if accessing directly to a variable and changing it haves no side effect, keep it without accessor, but if you change it and then you need to change a second variable, do accessor.
  • Apply OO principle of high level classes, and “Assembly Java” on small granularity elements. A small granularity element is something that might be instancied (if it was OO) a lot of time in your program. For instance, do not create a 3D animation program with Objects like vertices, points, etc.. but keep things like World, or eventually Meshes as object.
  • Use preprocessing! This is usually considered as a bad thing from OO point of view (which I agree) but it’s a good way sometime to solve embedded problems in a good way. The issue is then that you need to have a complete chain that will support this. In other words, if you generate several different binaries, you must have an easy way to provide to the end user the right binary. That’s something well handled by big companies, but hard for freelancer. The ideal situation (but require a lot of work) is to have only two or three binaries, one for low end, one for mid end, and one for high end devices. Typically Opera Mini achieve this very well. One real issue, is to deal with various JSR. On some Java implementation, it’s not possible to include in your J2Me some classes (like bluetooth) even if you do not use them because these are part of the javax.xxx package. The only way to solve it is through preprocessing.

Other links on this topic:

Is still there any Java ME Programmer Thinking in Object?

About Object Programming
Technorati Tags: , , ,

First Microsoft application for J2me!

Microsoft just released “Windows Live for mobile“, and as far as I know, it’s the first time that Microsft release a J2me Application! (but don’t worry, there is a Windows Mobile app too)


Windows logo on J2me device! :-)

So support for J2me seems quite limited (see my full report on the mobile mapping blog), but it’s rare enough to be noticed.

In summary:
- not yet as polished as Google map
- Still some porting issue (menu keys)
- map download (when working) is quite fast and works well
- some good and interesting UI ideaes….

As expected, the long term war will be one services, and not applications…The underlying language/OS is not very relevant, and I expect to see more Microsoft application on J2me, or in other platforms (Flash, Symbian, etc…).

This is Mobile2.0!

Technorati Tags: , , , ,