Now blogging at diego's weblog. See you over there!

the limits of MIDP

Jamie talks about one of the great disadvantages of MIDP in accessing information present on the device itself. MIDP-based applications are completely restricted by a Sandbox, both in terms of execution and storage, which is bad (the restriction by default is ok for security reasons, but there should be a way to go beyond it): after all, part of the point of building an application for a mobile phone is that you can interact with its core functions, and those are largely centered around data. Since the MIDP doesn't allow access to JNI either, there is zero possibility for interaction.

And, as Jamie says, it is indeed strange that no JSRs are in place to deal with this. However, I remember reading somewhere (recently) that once the rollout of MIDP 2.0 is done the focus would soon shift to providing APIs to access the device's information.

Btw, my previous post on Symbian was just the first on several things that I wanted to comment on regarding mobile development. Next subject: J2ME. :)

Categories: technology
Posted by diego on July 16, 2003 at 7:15 PM

symbian's achilles' heel


Recently I've been diving more into mobile development, and I've been experiencing firsthand the issues that a lot of developers are going to start facing more often as mobile development in general (and development for next-generation mobile phones in particular) becomes more pervasive.

For any new platform, in the end, that's all there is to it, isn't it? Developers. Even though platforms can (and have) rise to prominence on their strength alone, sooner or later it's third-party developers that carry it forward. Look at the Palm, that sparked a development movement that fizzled out a little bit ago as the platform itself (and its support for third-party addons) stagnated.

Developers. Developers. Developers. I remember seeing that Steve Ballmer video that made the rounds a few months ago, in which he jumped around a stage, dark circles of sweat under his armpits, screaming that word over and over into the microphone. It was funny, in a way. But it also showed that Microsoft doesn't just understand this, but that developers, or more accurately, support for third-party development for their platform, are a big priority for them. In fact, Microsoft has repeatedly and actively leveraged its developer community to achieve dominance in new markets and platforms. The best example (and the most successful case so far) was how they used the Win32s/Win32c transition to move developers into the new environment that would be presented by Windows NT. They tried this with web-downloadable applications (remember when ActiveX controls were supposed to kill Java Applets?) but that didn't quite work, in large part because downloadable applets (of any kind) weren't really as important as it seemed, thus forcing them to conquer the browser market by leveraging their Windows monopoly directly.

I remember reading that when the first project started at Microsoft to develop an answer to PalmOS, it wasn't based on Win32. On learning this, one of the holy trinity (I can't remember if it was Gates, Ballmer, or Allchin), sent a clear message to the people that were working on the software: What do you mean it isn't based on Win32?. And that was it. A competitor project, one that was based on Win32, but was too big and bloated to gain serious traction for small devices at that point, took over.

That project became Windows CE.

And so began a long curve in which the WinCE based adapted a bit to the devices, and the devices grew powerful enough to support it. Up to now, when it can run on phones.

Some time ago I had the opportunity to play with the phone that comes in the Windows Smartphone developer kit. This is a pre-release device, mind you. Not deployed. Compared to Symbian phones (supposedly) in the same category, such as the SonyEricsson P800 or the Nokia 3650, this phone is downright pathetic. It doesn't have Bluetooth. It doesn't have Infrared. It doesn't have a camera. And so on.

But what it does have is a single, relatively simple developer kit, which also integrates nicely both with other tools currently in wide use (Visual Studio) and, more importantly, with the knowledge that many developers have today. By the end of the year, most of the technologies that you can use on a PC will be available, albeit in a limited fashion, for Smartphone, including the .Net runtime. The phone comes built in with Pocket MSN Messenger, Pocket IE, and a bunch of other things. Its user interface is not easy to use, but it looks nice. It looks familiar.

For all purposes, the shift required in a developer's head to start developing for this platform is very low.

Developers that have been building applications for Windows CE/Pocket PC will have little trouble moving over to it. There will be problems, as usual, porting issues, incompatibilities, functions that are not available on the platform, etc. Sure. And, as some operators/device makers use the phone, the need for customization will grow, creating some of the problems that Symbian faces today. But they will be contained, because Microsoft excerts more control over its platform. Certainly more than Symbian does. Which is, precisely, what I wanted to talk about.

Symbian devices are already being deployed by the millions, by several operators. By all accounts, they are outselling, outmarketing, and out-everything MS Smartphones by a mile.

But development for Symbian is incredibly difficult to get started on. Why?

One word: Heterogeneity.

Each device maker that uses Symbian provides their own development tools. Nokia has one toolset. SonyEricsson has another. Motorola has another. And so on. Even for Java, were it would be expected that there would be more homogeneity.

True, it is possible to develop on one platform and then deploy in many, but testing is a nightmare. You actually have to test on different emulators, and then the devices differ from the emulators (which in some cases makes the emulator moot). Some phones have different capabilities. It's not a coincidence that Symbian is so hot on J2ME, since Java makes it easier to develop portable Symbian apps by pushing them to a portable, lowest common denominator. But if you want to develop Java applications for Symbian's J2ME MIDP 1.0 implementation, you've got to get toolkits from Sun, then from the manufacturers, and then finally test against each phone, because, hey, they don't even implement things in the same way (such as Network sockets behavior). What's worse, a J2SE application will not port over in any way to J2ME. The only commonality is syntax, and some of the basic classes. This is a minor point though, since writing an application for a radically different UI (like that on smartphones) requires major redesign anyway.

Exacerbating these problems is the fact that there isn't a single information clearinghouse for Symbian development. Information is scattered all over the place, while Microsoft's is centered around a single site for all mobile devices (although device makers will probably add their own information as well for device-specific features). What's more, in the case of Symbian the most valuable information is not found on Symbian's site; it's found on the device makers' site, such as Nokia's developer site. But Nokia has not been, historically, an organization that understand developers, or development toolkits. It understands consumers. Symbian understands developers, but Symbian can't help you if you want to develop for a Nokia 3650. Symbian provides pointers to an incredibly confusing array of choices: toolkits, IDEs, language-specific articles, etc. Here, click on this link, they say, and all will be well. And then it isn't.

This is, in my opinion, the greatest threat that Symbian faces from Microsoft. MS's ability to move developers over from other Win32 platforms, particularly PocketPC, and its understanding of developer tools and the developer community, has to be countered by Symbian in some form, or it will end up suffering the fate of UNIX in the 80's.There is time, because Symbian enjoys a huge lead in deployment, along with the goodwill of developers.

How to fix it? One way would be for Symbian to create a single SDK, and include in it a single IDE base (such as Eclipse) to create a single reference development environment implementation that includes not only their own tools, but also Sun's tools for J2ME, along with plugins for each type of phone provided by the manufacturers.

One download. One system.

That's it. The barrier would be immediately lowered.

This SDK with IDE included would come with a plugin architecture (which Eclipse already has) so that every time a manufacturer deploys a new Symbian-based device, they also provide a new plug-in with an emulator for it, as well as the additional libraries that can be used on the device. Sure, if Metrowerks or Borland want to improve on that, they can. But the basic system would exist, and Symbian development would flourish.

Then everything should be wrapped up to be accessed from a single website (including developer forums) that deals with issues for the common platform as well as device-specific forums. All managed by Symbian. The device manufacturers' site would refer developers back to it. And so knowledge could be easily obtained, and shared, with the added advantage that companies like Nokia and SonyEricsson could go back to focusing on what the do best, which is developing consumer devices and not managing developer programs.

Categories: technology
Posted by diego on July 16, 2003 at 3:50 PM

the best movie you've never heard of

A few weeks ago I was talking with Patroklos, a fellow NTRGer, about Matrix Reloaded, when he said, "have you seen Avalon?"

I said: Avalon?

Patroklos then proceeded not only to tell me about it ("It's The Matrix as it should have been" was one of the things he said), but also helped me procure a copy. :-)

And finally yesterday (or, more accurately, early this morning) I had some time to sit down and watch it.

So what is Avalon? It's a fantastic science-fiction movie that is, as far as I'm concerned, a worthy heir to the kind of cinema defined by 2001: A Space Odyssey, and Bladerunner, although probably slightly more introspective than those two. Created by a (largely) Japanese crew, a well-known director of Anime who nevertheless opted for live-action, shot in Poland, with Polish actors, with dialog in Polish.

The director is Mamoru Oshii, who also directed Ghost in the Shell, one of the best Anime movies ever made (There is an official a website for the movie, with minimal information and a good trailer). As the movie begins, we get the following introduction:

The near future. Some people deal with their disillusionment by seeking out illusions of their own - in an illegal virtual reality war game. Its simulated thrills and deaths are compulsive and addictive. Some players, working in teams called 'parties' even earn their living from the game.
The game has its dangers. Sometimes it can leave a player brain-dead, needing constant medical care. Such victims are called 'unreturned'. The game is named after the legendary island where the souls of departed heroes come to rest: Avalon.

The comparisons with Matrix are inevitable but a bit regrettable. It's a different, and in many ways, better approach to the subject. The special effects don't get in the way. There is no grandstanding on the part of the characters, no overarching proclamations, and no explanations in the Hollywood style (as in most Anime, or as in Bladerunner and 2001). No need for a character like "The Architect" in Reloaded, in fact, a character like that would be completely out of place in Avalon.

In a sense, Avalon reminds me of ExistenZ, the David Cronenberg film that was released in 1999 close to The Matrix. More introspective, less in-your-face pyrotechnics that left you with more questions, and a greater sense of unease.

Sadly, Avalon hasn't been released yet, neither in theaters or on DVDs in English (although there are DVD versions in Polish of course, as well as others with Japanese and subtitled in some European languages, such as German). Apparently Miramax has acquired the distribution rights to it, so there could be a release soon. I'm not holding my breath though... I guess that with all the Matrix-related hype it would be difficult to release Avalon and not see it swallowed by it, or compared unfavorably to it by critics that would deride the ambiguous ending or the introspective nature of the movie. This is sad though: The Matrix didn't invent anything in terms of visual style, or in terms of story. All those themes already existed, obviously in literature, but also in movies and Anime. As I've mentioned before, there are many, many, many, "similarities" both in terms of visuals and in terms of story between Matrix and Anime classics such as Akira and Ghost in the Shell, and maybe this fact is what drove Oshii to give his own live-action take on the genre.

Anyway, an instant classic. I'll be eagerly awaiting a theatrical or DVD release. :-)

Posted by diego on July 16, 2003 at 1:17 PM

comments: to close or not to close?

A strange blog-effect I've noticed has been happening more often recently is that, if comments are left open on archived entries, people that arrive to the entry much, much later (either through a search engine, or through an old link on another weblog) will add their comments as if the topic was still ongoing. This is a problem, not only because they might check back waiting for a reply that will almost certainly never come, but also because as the number of entries with topic that could elicit discussion grows, it can easily become a burden for me to monitor them and, for example, make sure that the comments are not posting advertising or something like that.

Sometimes the comments are a note of appreciation for information given on an entry, or clearly made by people who know they probably won't get an answer since the discussion is not ongoing, but just want to add some more information. Other times though, those that post the comments almost certainly don't understand that this is a weblog, and as such it's personal. Some comments have asked more questions about the topic, others have criticized that more information isn't available on a given topic (!), others have at times asked for pricing information or wanted to purchase a device outright(!!), and so on.

One thing is for sure though: I have to think about a "comments policy", particularly for those that arrive here and don't know what a weblog is.
But policy aside, what to do? Close the comments after a period of, say, seven days? Stop using the comments altoghether and leave trackbacks? Any semi-automated scripts that anyone knows about for MovableType that can deal with this (since I'd have to begin closing the comments on more than a thousand entries)?


And, yes, yes: comments welcome :)

Categories: technology
Posted by diego on July 16, 2003 at 11:11 AM

Copyright © Diego Doval 2002-2011.