Flash, Flashlite, SVG and Java

Flash is a huge success on the web. It’s been like that for a long time now.

SVG is a recommendation (read standard) by the W3C that should address some of the functionalities of Flash.

While Flash Lite has been very successful in Japan for many years (and I think simply because DoCoMo decided it would be the default on all devices), it has struggled in the rest of the world.

In the last couple of years Nokia, Sony Ericsson and other top vendors have more or less quietly implemented SVG Tiny (a subset of SVG for mobile devices). From my perspective it seemed like SVG would take over Flash (Lite) in the mobile space, but it looks Adobe is moving to make sure this does not happen.

A few news that I’ve read in the last couple of weeks, all within just a few days:

“Over the Air” event in London

Make sure you note these dates on your calendar. On April 4-5 there will be a very exciting event in London called “Over the Air“. We are all mobile mammals (read fans and addicts) and this event is really the place to be: the topics will be anything that has to do with services provided over the air. It will not be limited to browsing, one of the most common topics of dotMobi, there will also be Android, iPhone web apps and native apps, J2ME and more.

If you are in London it’s a must, if you are not, it’s probably worth to start looking for a flight and a hotel.

I will be talking about DeviceAtlas, of course.

See you there.

MovaMessenger Review

MovaMessenger is a multi-protocol IM client for your mobile, developed using J2ME, which means that it will run on most mobile devices. MovaMessenger was developed by MovaFone, the same company that did MovaMail, so the general layout is very similar.

First off I went on the website, read that it supports most IM-protocols and started wondering about how it works. Is it based on Jabber? Is it using libpurple? I don’t know, unfortunately (maybe I should sniff some TCP connections on the mobile…).
On the site I could decide if I wanted to download directly or subscribe online. I decide to register and this has been a good idea as I could define one service account immediately from the web, much more comfortable than using the phone keyboard. Once defined login, password, my phone number (what do they need it for?) and setting up one account (AIM) I was presented with a URL to type in the phone and download my personalized version.
I would have liked to be able to define all the protocols from the registration. Also, since I provided my phone number (in international format, of course!), I would have liked to receive a wappush to download the JAR and not type it manually. Not a very long URL, but still a wappush would have been nicer.

I downloaded the application, 137KB, it took just a couple of minutes and I was ready to go. After downloading and starting the application I saw a short explanation message and then was asked to create an account… Hmm… I thought I had defined everything from the website. Anyway, I typed in everything and of course it said the account already existed. I chose to go to the main menu and not try to provide new parameters. Once in the main menu I could pick “Login”, account and password were already there and I logged in. Once logged in the AIM account was already there, configured. I added ICQ and MSN profiles. It took a bit to login, but eventually I was online and my buddies started popping up.
Scrolling up and down seems sometimes a bit slow, but I’m not sure it’s MovaMessenger’s fault or rather my W810i’s slow CPU. I should probably test on some other device. Keeping the up or down key pressed jumps to either the top or the bottom of the list. I have to say that I also instinctively tried to scroll pages up and down using “left” and “right” keys as in Opera Mini, but that actually zoomed on the current buddy.

Chatting with friends is as easy as you’d expect it, pick a user from your list, click on “Chat” and start typing. On my W810i, the “chat” button is on the right softkey, I would have expected it to be on the middle button of the phone (the one in the middle of the 4 directional arrows). The chat menu opens a window where you see your last messages and can type new ones (of course!). Standard emoticons are automatically converted into icons, the others are shown as they were typed in. Quite acceptable from a multi-protocol client that also runs on a low-power, slow-network device.
The left softkey lets me access the options menu where I can “set Status”, “invite Buddy”, configure “Services” or make changes on the selected buddy such as renaming.
Clicking the middle button on my W810i opens a popup where I can configure the phone number of the remote buddy. I can either type it manually or pick it up from the addressbook. Once set I can press a button to start a call. I don’t see the use of it, right now, but maybe some day I’ll need it.

Every time I’m idling and I receive a new message, the phone vibrates. Nice.
Users who sent you a message get a little message bubble next to their name. It’s a bit slow to scroll up and down searching for the sender’s name. This could be improved, maybe popping them up or having a quick menu item from the Chat window.

A bit annoying that every time I open a chat with someone, the remote user receives the following “advertisement”:

“Hello, I’m now using MovaMessenger on my mobile phone to talk to you. If you’d like to chat from your mobile phone you can get MovaMessenger for free at http://www.movamessenger.com”

The application seems solid, even if I have used it for only a few hours.
I can’t check my data traffic in real-time, unfortunately, but I’m sure I’ll see a spike in my next bill. IM on the phone is certainly VERY interesting, but I need a flatrate for data, before I can consider it for full time usage.
Also, being a Java app (not MovaFone’s issue, of course) doesn’t make it entirely integrated with my phone in the sense that I either open it and keep it running, OR put it to sleep. Would be great to have it running in the background, maybe Sun and OMA should think about this seriously.

Sun’s Mobility Pack uses WURFL

According to Lukas Hasik, Sun’s Mobility Pack 6.0 now uses WURFL to determine device capabilities. Lukas wrote about the new release of Mobility Pack citing that many developers wanted to get more information about devices. Thanks to WURFL they are now able to dig in and see device information.

Mobility Pack 6.0 is still under development, there’s a page to read the updates, Mobility Pack New and Noteworthy.
Mobility Pack is part of NetBeans.

J2ME Guide – Part 1

Massimo Carli recently published a book about J2ME. The book is in Italian, but the good news is that it’s also available online for free. I had also put a link here on the right column, but I’ll take this chance to link it again, here.

Massimo has done another step further and published the first part in English on a friendly site. If you are considering to approach J2ME development and you’re a J2SE developer this is a very good starting point.

J2ME Guide – Part 1

20+ years and still on top of game sales

I am talking about Tetris, of course! Created around 1984-1985 has been a best seller for more than 20 years.

Every time a new console comes out one of the first games to be released is Tetris (plus some variants) and what is amazing is that it just keeps selling!

In the mobile space it’s not different. If you check out the monthly chart published by ELSPA, for example, you will see that the February 2007 UK mobile chart lists Tetris in third position and was second last month.

How is this possible? Well, I think that Tetris shows how all the most important rules of Casual Games should be applied and demonstrates that if they are well balanced will generate an endless interest from gamers in all times.
Here’s a blog post by Tom Hume written after “Casualty Europe” 2006, it’s from a presentation by Jason Kapalka of PopCap called “10 ways to make a bad casual game“. I remembered Tom’s post, but while searching on the web I also found another post from a Microsoft person, Kim Pallister, Casuality Session: Designing casual games.

My favorite rules (deduced from the worst mistakes according to Jason) are number 1, 8 and 9. I really think that the winning combination of a casual game is to make it easy to pick up (so no need to read or really just 1 minute to know the basic rules) and hard to master. Easy to pick up means that users will start playing quickly and see how the game works and get sucked into the game world, hard to master will make sure that users don’t get bored too quickly. Hard to master does not mean it is complicated, but that with many little things you can achieve a higher level, more points, better rewards.
Games like racing or war with too many power-ups, for example, are fun for a few hours or days, but then become boring. It must be something that you get little by little.

I think that Tetris matches the most important rules, SUPER easy to pick up, years to master. Simple graphics, you don’t need a modern computer with 4 processors to run it (it was designed in the Eighties!).

If you checked out the ELSPA chart you will have seen Puzzle Bubble in that list. The game is younger (1994), but same rules apply. Needless to say these are among my favorite games (and also the only ones I still play).

It comes as no surprise that in the mobile space these are the games that still sell the most, even if sometimes the phone keypad is not the best joystick even for these games (think of when it starts running fast!).

“best Java game for the new Samsung D900” contest

Samsung has launched a new contest for the development of the best Java/J2ME game for the new D900.

Prizes are actually very interesting, with a Grand prize of 20,000 USD.

You are required to subscribe to Sharewire, upload your game and then the final winner will be calculated summing the number of downloads and the votes casted by a number of “selected experts” evaluating innovation, fun, usability, graphics and sound quality.

Considering the high prize it is certainly interesting for new and young developers.

This is also a demonstration of how hard it can be for a developer or a small company to reach large audiences. Appearing in a big site or in an operator’s portal is not easy and often the top listed games are developed and distributed by large firms. Smaller companies generally don’t get the same visibility.
Not very different from the music and movie industries where big names are always highly visible and the less famous, but maybe as good (or better), are relegated in the back of shops or rarely aired by radios.
On one side I’m glad this could give a boost to someone and maybe provide some fresh money, on the other side it’s disappointing to think they have to give away a fresh and good idea (a game in this case) for free. This is a tough topic, I could write for hours and no one would reach the end of the post, so I won’t go down to the details of my thinking, but I’m sure I’m not alone. Internet gives you the possibility to reach anyone anywhere, but what you really need is a high position on a big site or on a search engine, otherwise it’s so crowded that nobody will see you.

bluepulse 2.0 – review

A few days ago Bluepulse v2 was launched. I had given it a first try with V1, but honestly, with the RAZR V3 I had more problems than other, so I gave up almost immediately.
I don’t think it was a problem to the bluepulse itself, but rather to the poor capabilities of the V3 (not really a good phone for anything other than being slick, thin and cool).

Now that I have a cool and shiny Sony Ericsson W810i I can give a try to all these nice applications.

First things first; installation was fast and smooth. I got on their site with my mobile phone (http://get.bluepulse.com) and downloaded the MIDlet. Tech note: the download consisted of only a jar file, no jad.
In 2 minutes I was up and running. I already had an account from my first try with the RAZR V3, so I simply configured the login and password and I was in.

My Place
bluepulse is first of all a community. “My place” is basically a guided menu that lets users describe themselves, their interests and so on. This is obvsiously central to the community. When searching for friends you can see their profile, read about them, see pictures and videos. None of the fields is required, but if you use bluepulse for chatting and meeting people you will certainly want to fill these fields. Available fields range from Age/Sex/Location to free text fields, pictures, video. You can pick an icon from a list of available images or get one assigned automatically. Details go down to your e-mail address and phone number.
I have browsed a few people in the community. Most users wrote a good amount of text and provided their A/S/L. Very few provided images or videos. If the MIDlet allowed users to use the camera to take a picture or record a video it would have been easier in some cases; on the other side you have to specify a URL and the application will download and store it. Considering that this application also relies a lot on Web 2.0 concepts, it’s should be noted that it also provides the ability to use Flickr.
I am not a usability authority, but I am certainly a user, so I have a remark here: Age/Sex/Location is all menu-driven, so much menu driven, that I think it would be easier to dial in my birth date rather than pick it from multiple menus (first select a year range, then year, then select month, then day all using the joystick).

Community
To start you need to find people. Search is easy, pick age/sex/location, SEARCH. Would be nice to have an automatic suggestion of the same age and location as my profile (if set) and then pick the sex. If wanted, change the other settings. We all know why people use this to kind of tools. 😉
Search my nickname or e-mail is also available.
After searching you may see the user’s profile, add as a friend, browse his/her friends. While most users have written a lot about themselves and their interests, I often could not find pictures or videos. The menu items were always present and often resulted in a “user did not upload an image”. A bit disappointing. It would have been nicer to only list items that contain something. It would also save time (and money).
Exchanging messages is quite easy. You should first add someone as a friend (you send the request and the user is allowed to accept of reject). Once the remote user has accepted your request to become a friend you can send him/her a message. When logging in the application you get an alert if new messages are available. All common mailboxes such as “inbox” and “sent” are available. Messages can be stored or deleted. Sending a message is much like an SMS, so anyone can do it quite easily.
I tried the online chatroom, but they were empty, so I can’t say much. Looked like an IRC channel.

Widgets
Bluepulse can be seen as a container of plug-ins or widgets. Its power layes in the ability to add a lot of custom widgets according to your needs and pleasure. Pre-installed you can find a feed reader and the full messaging and chat system that is part of the “community feature-set”.

Add a widget
Managing Widgets is certainly a major functionality of bluepulse and installing a new one is quite easy. Search among the available plug-ins selecting by category, popularity or more recent. Click, read a short description and install.
Installing a new widget really takes a minute. Once installed you find a new icon in the starting page. A breeze.

RSS feeds
I tried to add my own feeds to see how they would look on BP. I thought it would be better to check feeds I know. Unfortunately I had to type the exact URL of the feed, quite uncomfortable while on the move. During the tests, anyway, I was near my computer and could get them. Once gotten the exact URL (not always very short to type on a mobile) it worked as expcted. I encountered some problems, anyway. I tried the atom feed from Mobile web planet, at first it seemed to work and showed me all the headlines, but then I could not see any contents.
I tried the pre-defined Flickr feed and this time it worked, but I could not see any of the images of the 3 different posts I tried (3 random posts from the first page).
Another pre-difined feed was Yahoo! sports. News were OK and contents were present. I was not able to see any images, again. I guess this is a rescaling problem. The W810i should be able to display most image formats. I think the server-side application (of bluepulse) should convert the files into a supported format, anyway.
Overall results were a bit disappointing. It’s OK if some remote feed does not work, but you would expect the pre-defined feeds to be widely tested.

IM
I installed MSN as a test. Installation was smooth as with other widgets. I looged in at my first try and all the online buddies were downloaded and shown in a list. I hadn’t thought it would have been so easy. 😉
I could exchange messages with a friend easily. The page looked like a standard chat or IRC, all text, not buddy icons. It worked well. The page is refreshed every 30 seconds or so, a good time considering that it’s a mobile application. Sometimes the refresh seemed a bit annoying, maybe because it’s a page refresh and was very visible. Quite acceptable, anyway.

Overall results
The client in general works smoothly. I received an SMS and later a call while playing around; in one case the application kept going without a glitch, after the call I saw an error message (something on the lines of “connection error, try later”), reloaded and everything worked fine. This is certainly a demonstration of solidity.

While Opera Mini was born as a browser, it has a few features such as the RSS feed reader that are in direct competition with bluepulse. I have to say that Opera is much more advanced in this field and that I was a bit disappointed by the results that I obtained in the tests I made with bluepulse.
Opera also takes advantage of the left and right joystick moves to scroll quickly. I think bluepulse should take the suggestion and do the same to make the scrolling of long lists of widgets and contacts faster.
Last one thing is the use of the camera. Opera was really smart to integrate it. If you want a real 2.0 experience, the camera must be part of that.

Pageloading was in generally a big issue that I noticed, as a user. Every time I wanted to do something “Loading 0%” appeared, then jumped to “Loading 100%” and eventually displayed the page. It’s useless to see a “0-100” excursion and it’s annoying to keep re-loading every page. Opera Mini seemed to be faster, I don’t know why. Maybe Opera Mini uses sockets and bluepulse uses HTTP?

The application is very solid, the basic features such as messaging and chatting are good and work smoothly. Installing a widget is very easy and fast and the developers’ community provided a ton of plug-ins aside from the ones developed by bluepulse. The overall result is certainly positive, but not an A. It certainly still has some rough edges and should make the general navigation smoother. It’s a bit frustrating to use it and I think it will make some users walk away due to this.

Related topics:
Opera Mini 3.0 – review, by me
bluepulse website
Bluepulse 2.0 is Bigger, Slicker, Broader and Deeper (and may be the ultimate mobile media platform) on MobileCrunch

J2ME device features recognition

Manufacturers of mobile devices and operators are not always good at providing device descriptions. When they are kind enough to provide them, they often provide them the way they like it. Sometimes it’s a webpage, sometimes is a PDF, sometimes a spreadsheet. Nothing bad, but they are all in a different format and most likely provide different info using different metrics and level of detail.

For these reasons, a number of J2ME applications have appeared to try to track device capabilities and try to put them all in the same grid in the same format.
Going back to my memory, I think the first of this kind that I saw was JBenchmark. It’s been around for a long time and certainly lists A LOT of devices, probably the site and resource with the highest number of J2ME devices. It’s amazing how many devices were tested and how many features. It checks for MIDP 1.0, MIDP 2.0, 3D, audio features and more. Device features are sometimes in integer numbers (such as screensize), boolean (library support) and “stars”. Yes, stars, which means that the feature in question has a vote about it’s performance. Votes range from 0 to 5. This is very good if you want to know which device is better.
The bad part is that you don’t know the real results of the tests. Since they are shown as stars, you will not know the real results.
The software is not open-source, as far as I know, and this means that nobody except for the JBenchmark team, knows for real what it’s measuring and how.
Data is provided by users. Kind people that downloads the MIDlet, runs it and uploads the data to the server (automatic). All results and balanced and the final result is an average of all the results received from users. Quite a good idea, I think.

Next comes to my mind TastePhone. It’s an open-source MIDlet developed by a very good French student. He developed it for a school project, but then kept it going on his own. Really nice MIDlet. The concept is the same as the one from JBenchmark, you download it, run it and upload the results on the main server. The pros are that the MIDlet is open-source and all the results are available from a web page. The cons are that the development stopped a couple of years ago and while the server is still up and running and receiving updates of data from time to time, the development of the software hasn’t had any progress. This was a very good start, would have been good to see it progressing, even as part of other projects.

J2ME Polish has been running for years now. In two words, it’s an open-source framework to develop J2ME MIDlets running on a lot of devices (hopefully ALL). Part of the project is, obviously, to collect device descriptions to be able to optimize MIDlet builds to single devices or device clusters.
Originally developed by Grimo Software, J2ME Polish included SysInfo into its standard release.
Just like TastePhone and JBenchmark, SysInfo is a tiny MIDlet that you download and run on your device and it tests for capabilities. You later see a report and can provide the data to J2ME Polish (or keep it secret if you are so selfish!).
The MIDlet hasn’t seen much development in a long time now and does not provide the ability to upload the results to a central server.
As far as I know, a lot of work is supposed to happen, but I have seen no updates in more than 1 year now. Too bad! (browse CVS here)

So the reason why I originally thought about writing this article is because I found a new kid on the block. All the above softwares have been around for quite some time. A few days ago (I would say a couple of weeks) I stumbled on this site called Mobile Zoo. The site provides a MIDlet that you can download on your device, run it and it uploads the results to the central server.
I downloaded both the MIDP 1.0 and MIDP 2.0 version on an old Nokia 3120. MIDP 2.0 did not even start (as expected), MIDP 1.0 ran for a few seconds (5-10 I’d say) and then started trying to upload the results to the server. Unfortunately the upload never worked. I checked the configuration and it is supposed to be correct. Too bad it did not work.
Apparently, according to the site statistics, they have a lot of contributions and recorded a lot of “device DNA’s”, as they call them.
As per JBenchmark, the MIDlet is not open-source, but the data that is collected is pretty standard, and don’t need much comparison as with the “star-system” of JBenchmark.
I am not a J2ME developer, but I have to admit that I had never seen this site and I had never heard of DSEI, the company behind it.
They apparently provide API’s to developers. If you have any experience with it and would like to share it, you’re welcome.