Monday, May 10, 2010

Mobile Web in JavaME apps - now with CSS!

Twitter's home page as rendered by HTMLComponent before CSS support and after

Following my post on Mobile Web in JavaME that discussed the new possibility of embedding web content inside LWUIT applications using HTMLComponent, I'm glad to announce that CSS support was added to HTMLComponent and is now publicly available in the LWUIT SVN.

Now, developers can not only render HTML documents in their JavaME apps, but can also design them with CSS by adding colors, borders, backgrounds, fonts and more. This means that now HTMLComponent is almost fully compliant with the XHTML Mobile Profile 1.0 standard, which requires WCSS support (WCSS specs here)

The support is about 90% complete and provides almost complete coverage for most pages today. The 10% that were not implemented (at least yet) are features that do not sit well with LWUIT's styling model and/or they require extensive efforts and provide with little value (Some of these are less used tags or edge cases). In any case, you should be able to see most pages rendered correctly (And if you create your own content you can simply avoid using unsupported properties for now).

And while there's a great difference in how HTML pages will look now, the change is transparent to developers, and there's almost no difference in using HTMLComponent. Basically once you load a page that has CSS segments (either external, embedded or via the style attribute) they will be parsed and rendered.

The only difference is that you can turn CSS off by calling HTMLComponent's setIgnoreCSS method, if you don't want CSS segments parsed for some reason. And actually there may be reasons for that - CSS does require extra memory, and adds some performance overhead as well, all depending on how complex the CSS used in specific pages are.

There are also more esoteric methods such as addSpecialKey and setCSSSupportedMediaTypes - I won't go into details on those here, you can read the documentation.

Here's the full list of what's supported and what not:

Fully supported CSS properties

Background: background-color, background-image, background-repeat, background-attachment, background-position-x, background-position-y
Border: border-*-width, border-*-style, border-*-color
Fonts: font-family, font-size, font-style, font-weight, font-variant
Lists: list-style-image, list-style-position, list-style-type
Margins: margin-* , padding-*
Text: text-align, text-indent, text-transform
Misc: color, height, width, visibility
WAP : -wap-access-key,-wap-input-format,-wap-input-required
Shorthand properties: All shorthand properties are fully supported
(* = top/left/bottom/right)

Unsupported/Partially supported properties:

Unsupported: clear, float

Partially supported:
- display - Supported: none, marquee / Unsupported: block, inline , list-item
- white-space - Supported: normal, nowrap / Unsupported: pre
- vertical-align - Works only within tables

Known issues
  • width/height work for simple elements, but may be problematic with complex elements.
  • font-family accepts the first mentioned font and ignores all fallback fonts, since finding a matching font is very time consuming, and also since in the ME environment usually there aren't that many fonts anyway.
  • text-decoration is unrelevant: since the only mandatory WCSS decoration value is 'none' which is usually used to remove underlines from links - since we don't have underlines it has no meaning.
  • text-transform may have issues when overriding a parent which has a different transform.
  • HTMLComponent.FIXED_WIDTH mode does not work with some CSS attributes, and thus its default value is now false (The downside is that in FIXED_WIDTH mode 'justify' alignment doesn't work).
  • Some properties will be ignored if associated with a pseudo-class (such as a:focus/hover) - and that's because while LWUIT does have separate styles for selected, unselected and pressed states - these styles include properties such as padding, margins, colors, background, font - but for example not alignment or visibility which affect the component in all of its states.


Monday, March 1, 2010

MWC 2010 Recap

As in the past 4-5 years I've attended the Mobile World Congress (MWC) in Barcelona. I must say that being a veteran attendee it is starting to get a bit old and also a bit sad to see the show shrinking a bit every year, but still I did manage to see some interesting stuff that are worth mentioning, so here goes:

Missing but yet present: Nokia

Nokia's decision not to present inside MWC was definitely a blow to the GSMA. But still though it didn't pay the $$$ to the GSMA to be inside the show, it had its own side event a few steps away from the Fira (MWC's venue). So still even for those wanting to meet Nokia, coming to Barcelona in that time a year is still worthwhile which of course works in the best interest of MWC. Nokia's strategy was to create a more targeted side invite-only event, which they hoped would be more productive than the buzz and noise inside the show halls. It will be interesting to see if they repeat that strategy next year and if any other big players will follow.

Saddest Hall: Hall 2.1

And very related to Nokia's decision, the show was simply smaller this year both in terms of visitors and in terms of booth space. Last year some halls were already a bit thinner than in previous years, but this time, aside from most halls being less dense, the second floor of hall 2 almost completely disappeared. There were only 2 booths there and the media center and that's it. In the good times it was filled with booths all over. The good news is that I noticed more advertising on the streets, metro stations and next to the Fira, way more than the previous year. So guess we'll have to wait till next year to see if there's a trend here or just a minor setback.

Best Booth Babes: CBOSS

Well, there's really no competition here... The CBOSS girls simply give the best show of MWC year after year... Definitely the show stopper of hall 1 in which you can see quite an audience every time these lovely girls make an appearance. On the other hand, other companies failed to deliver on the oldest trick in the show marketing book and it was kinda dry elsewhere... I can only say MWC still has a lot to learn from the great E3 games show...

Most "out-there" product: Motorola

When I walked into the Motorola area, at first I thought I stepped into Borg territory (Startrek reference...) - It seemed to inhabit half-man half-machine beings... Soon enough I was assimilated and became one of them by wearing Motorola's thingie... And in fact what seems to be science fiction at first is very down to earth. This device includes a tiny screen with a magnifying glass that is placed right in front of your eye (with a flexible arm that can be tilted) and when you look into it you get the experience of a full SVGA screen. It has no keyboard, and is activated by vocal commands and has several useful applications like a media player, an office-like suite etc. The idea here is to give people who need their hands free the ability to interact with a computer - for example in construction sites where you need both hands, but may need to take a look at some drawings from time to time. Pretty neat and useful - the only down side (Other than looking like a cyborg) is that it did give me a headache after a short while.

Yummiest Phone: NTT DoCoMo

One of the things I've noticed is that as handsets technology advances, it is very hard to really thrill in this domain. If a few years back a touch screen or a full qwerty phone was something to write about, today there's basically nothing new - all improvements of the UI and other handset parameters. So, if you can't innovate in the technology department, you can always do that in the style and design department, and this is exactly what several vendors did, and one of those is this really tasty looking NTT DoCoMo phone along with some cookies...

Worst Party Ever: Samsung

And talking about food, I can't forget the special treat some of Samsung's guests got in their party in the first day of the conference: Food poisoning... Yes, unfortunately for me I decided to go to the Samsung party and ate some tapas which tasted a bit weird and proved later on to be truly funky... Anyway, the lesson learned is to be very careful in Barcelona with the food... Samsung - please pick another venue next time... And despite their attempt on my life, I'll be kind and at least mention their Ruggedized phone edition which includes a phone for field purposes (Sand resistant and battery lasting for weeks) and their water-resistant phone shown here. Placing a mobile handset in your aquarium is elegant and it saves the need to buy fish food...

Sweetest Ride: Qualcomm

Another trend you couldn't miss this year was mobile integration with vehicles. It was very difficult to miss due to the cars several of the big companies placed in their booth. The one that caught my eye was Qualcomm's system installed in a luxurious Audi model (Coming to a dealership near you...). It had all you can dream of - a computerized system that includes GPS navigation, media system, speakerphone, internet browser - and all built it - the driver even has very convenient controls for the system near the stick. All communication is done mobile of course, and passengers can also enjoy wireless internet as the system includes a WiFi router... Indeed a sweet ride...

Coolest Demo: BlackBerry

The Blackberry guys had the neatest demo I've seen. To demonstrate their device's gyro, they wrote a controller for a small Lego robot - If you tilted the device forward, the robot drove forward and so on for all directions - that was really neat, and though I don't think that Apple has driven them into the Lego business, it was really a nice way to catch audience and explain about their stuff - so way to go...

Greenest solution: Asimelec

The green trend is all over the world these days, and Asimelec, which is a Spanish association backed by some of the prominent handset vendors and mobile operators has a solution for your old mobile device: recycle it... These guys place recycling bins for mobile phones and disintegrate them into components that can be recycled back into other industries. And with the current rate of devices innovation, they probably have their hands/bins full... Asimelec's booth was also the most original one: It was made wholly out of cardboard... The booth, the chairs, the table - everything...

Worst use of space: A bags shop?

Yes, the picture here is from MWC 2010 and not from a fashion trade show... It seems that they will sell space just about to anyone these days...But seriously this booth which was quite centrally located (Right in the entrance to hall 8) was a bit weird to see considering the surroundings, but still perhaps when you have lots of men away from home that have to come back with some gifts, it might be a pretty good idea... In fact, I bet they are the only booth who actually made instant money in this show...

Best Giveaway: Google

It was a good show for Google - if last year we saw only a few Android prototypes, this year we experienced an explosion of Android based devices from many vendors. But every blessing has its drawbacks and in this case word of the fragmentation in the Android platform was heard from various sources (And we all saw the toll it took on JavaME). But anyway, Google will probably not be remembered in this show (only) for this but rather for the generous giveaway.... Now, we all got used to giveaways in conferences, including branded mints, pens, bags and even sometimes disk-on-keys. But Google really set a new barrier in MWC 2010: Everyone who attended their Android seminar got a Nexus One phone. Yes - EVERYONE. The only catch was that you either had to be pre-registered to the seminar, or stand for an hour-two in the non-registered queue (Which got bigger as the rumor spread...). And BTW - If you saw people with weird pink markings on their hands - it is how Google marked (or indexed?) people so they won't grab more than one device... Unfortunately for me I got the news kinda late, so when I got there it was already closed... So, Google - if your intention was to hand out phones to mobile developers, bloggers and other professionals so they would spread the word - you missed one (Should I give you my mailing address?... :)


Well that's all for this year, I am sure you all had your experiences as well, so if you saw something interesting drop a comment right here.

Wednesday, February 10, 2010

MWC 2010 party list on your mobile!



A video of the app - fonts look better on actual devices (video compression takes its toll)

Everybody knows that MWC is more than just the show itself. The networking events and parties are sometimes as important (not to mention quite fun...). But with almost anyone throwing a party, it is easy to lose track, especially when you're on the move looking for the evening's next adventure...

Well, no more! Meet the MWC 2010 Parties List Mobile Guide - A small JavaME mobile app with all the info you need in your fingertips, and best of all, it's free and all info is stored in the app itself offline so there's no need to go online while you're roaming!

To download it point your mobile browser to: http://budurl.com/mwcp
Or download the JAR to your PC - http://budurl.com/mwcpjar

I made this small app over the weekend with LWUIT and what started out just as a small test for a new feature became quite a useful app. It still has some bugs and quirks, but thought I'd better release it now rather than after MWC.....

You can also find more info on the app here: http://budurl.com/mwcparties

Also, if your phone supports JavaME and this app doesn't work, drop me a line or fill in your feedback in http://budurl.com/mwcupdates.

And if you want to get "technical" on how this app was made, you can read this post.

Wednesday, February 3, 2010

Mobile web and HTML inside JavaME with LWUIT



In the video: A use case of using HTMLComponent. Used both to render offline content within the JAR (The events detailed descriptions) and also to access external web-flows (Facebook, Google forms). Fonts look better on actual devices (video compression takes its toll...)

One of the things I always missed in J2ME was the ability to perform some web-based flows or display HTML in general as part of the application (and not by sending the user to the native browser with platfromRequest, not knowing if he'll ever come back...).

Most of the other mobile platforms do have solutions that allow embedding web seamlessly into the application, but in J2ME it never existed. So this is why I am glad to unveil my latest project which was done as part of my consulting work at Sun Microsystems: HTMLComponent.

HTMLComponent is a LWUIT component that allows J2ME developers to render HTML documents (local or remote) that conform to the XHTML Mobile Profile 1.0 standard. It truly revolutionizes the things you can do in J2ME and brings the platform to new heights.

Use Cases

There are many use cases for HTMLComponent, here are a few I can think of:

Rendering rich-text locally - The simplest one is when you need to render some rich text locally - for example a text segment that part of it should be bold/italic and an image next to it, or maybe even a small table - to do that with current tools is not an easy task. But with HTMLComponent, you can simply compose an HTML document describing that exact scenario and you're done! This is classic for Help/About pages and can also scale up to rendering parts of your UI with HTML (Since it supports forms).

Dynamic Content and UI - Another common use case is dynamic content and UI. When you release your app, sometimes you need parts of it to be dynamic - for example a catalog section for your app that changes daily or a news page or an elaborate details page. Up until now developers had to make their own frameworks to support such cases and most of the time it wasn't truly 100% dynamic. With HTMLComponent you can simply have the app refer to a URL, and serve HTML there - and since HTML is not only the content but also the layout and even UI, your catalog can look totally different without you changing anything in the application and having to release a new version of it.

Using your existing web flows - A third use case is when you already have a web server-side, and instead of writing the whole thing again for mobile, and having to handle 2 separate processes you want to utilize the already existing process for mobile. A good example for that is registration and login - why recreate this process if you can simply redirect users from your app to the existing registration URL?

Embedding third parties web flows - the fourth use case is when you want your users to be able to access third parties existing mobile web content. For example you have an LBS app and want to let your users check the weather in an affiliated site - no problem - just provide the URL. Other examples can be referring users to online dictionaries, translators, search engines and other services.

Anyway - The real strength here is the fusion between the client application and the web. It is ideal for use cases in which a simple mobile web site is not adequate enough - and an application needs to rely also on web-based flow for dynamic content/UI (either existing or specially designed for the app)

Getting HTMLComponent

And now you probably ask yourself: When can I get it and for how much? Well the answers are the best you could hope for: Now and for free!

HTMLComponent is a part of Sun's LWUIT framework, a UI toolkit that allows you to create great looking and portable UI for J2ME applications. I worked with LWUIT since it came out back in mid 2008 as a consultant for various companies. I did several project including adding RTL support to LWUIT, and in the past few months I have joined the LWUIT team at Sun as a consultant.

One of the best things about LWUIT is that it's open-sourced and can be used also for commercial purposes for free, and HTMLComponent is no different here, so basically this solution is available now for all J2ME developers out there and can be checked out from the LWUIT SVN (Note that it is not included in the LWUIT 1.3 drop, so downloading the latest drop wouldn't help, you have to check out the sources from the SVN).

If you check it out, don't forget to check out also the LWUITBrowser project which I wrote to demonstrate what you can do with HTMLComponent. I'd like to emphasize that a browser is not the use case we're aiming for, since all mobile phones (at least those with J2ME...) have native browsers that nowadays support even more than XHTML-MP1. But still this demo is the best way to show what types of documents HTMLComponent can render without us having to build a whole server side.

About XHTML-MP 1.0

And now a few words about the XHTML Mobile Profile 1.0 standard: XHTML-MP 1.0 is a subset of XHTML adapted to mobile. The standard supports most of the basic elements such as Images, Fonts, Lists, Tables, Forms and even CSS. It does not support however Javascript and frames and also other tags or attributes. The full details of which tags it supports can be found in this document, and also a more detailed list of which attributes in each tag are supported can be found here, though I am not sure of its accuracy.

The XHTML-MP1 standard should be sufficient for most use cases above, and as for the fourth use case above (using existing third party content) - While there are not many sites that conform 100% to the XHTML-MP1 standard, a lot of mobile sites are very close, and since the parser in the package is not very strict they can be rendered. Just make sure you're using the mobile versions, since using regular web will surely be unsuitable.

Detailed support list

And now for those of you who stayed this long, here's a more detailed list of what is supported and what's not (in general and in the current version):

Text - Obviously text is supported... But that also includes most of the important ways to format it in HTML including alignment, paragraphs, div, new lines using the BR tag etc. Text justification is not supported yet (align="justify") and will hopefully be added later on.

Fonts - Fonts can be changed anytime for example by using B for bold, I for italic BIG for a bigger font, SMALL for a smaller etc. Also header definitions (The H1-6 tags) and other less known font directives (such as KBD, CITE etc.) are supported, but all subject to availability of such font in the device. If the needed fonts are not available in your device or don't look as expected, you can always add LWUIT bitmap fonts and assign them to the various tags.

Images - Images are supported and basically any image format that your device's JVM support will work here. Image download is done asynchronously by using a number of threads, so the document loads up even before all images are available. The number of threads can be tuned and image downloading can also be turned off. Note that HTMLs containing large images may cause memory problems and/or cause the page to look weird.

Lists - Lists are supported including nesting. This includes ordered lists (the OL tag) and unordered lists (the UL tag) with their items (the LI tag) and also definitions list (the DL, DT and DD tags).

Forms - Forms are also supported. Both the GET and POST methods are supported as a form action. The HTML package takes care of URL encoding and most input field types are supported including: text fields and areas, check boxes, radio buttons, combo boxes, hidden fields and of course the reset and submit buttons. Regular buttons (both input type=button and the button tag) are not supported due to the fact that they can only function with Javascript. Also not supported is the File upload control (input type="file") as it is not part of XHTML-MP1.

Tables - Tables which are still the best way to layout HTML documents, are supported including nested tables. There are still some open issues here and there but these will be solved over time.

Char entities - In order to be able to write HTML reserved characters such as the tag brackets or non-displayable/type-able characters, char entities are used and they are supported. All char entities up until ASCII code 255 are supported and beyond that you can add your own.

HTTP - HTMLComponent is mainly a UI component and its job is to render HTML documents. As such it does not deal with network/IO and the complexities of the HTTP protocol. It does use an interface by the name of DocumentRequestHandler that should be implemented by developers to fetch documents from wherever they need and in whatever protocol they want to use. Since the most common uses are fetching HTML via HTTP, there is an implementation of this interface in the LWUITBrowser project that handles the HTTP communication and knows to take care of request/response headers, cookies, redirects, network errors etc.

Parsing - HTMLComponent uses an internal parser to parse the given HTMLs. The parser is not 100% strict and will also accept some errors in the document. The developer can control however which errors to ignore and continue parsing and which errors to stop on by implementing the HTMLCallback interface. Also note that some errors may be too fatal for the parser, so try to stick to the XHTML-MP1 standard and especially always close tags that have been opened and in the correct hierarchical order.

Refresh/Redirect - HTMLComponent performs refresh/redirect directive that are defined in the META tag and HTTP_EQUIV attribute of the HTML. As for redirect response codes, these should be implemented in the request handler.

CSS - While CSS (or more accurately WCSS) is a part of the XHTML-MP1 standard, it is still not supported in the current version. The meaning is there is no way to change individual style properties of elements. So for example while you can determine the colors of regular text, links and other elements (with LWUIT styles) as a whole per component type (i.e. all text will be black, all links will be blue), there's no way yet to make one word blue and the other red. But this will be added as CSS will be introduced later on.

Embedded objects - While the OBJECT and PARAM tags are a part of XHTML-MP1, embedded objects are not supported, and there are currently no plans to support those (as they would require writing mechanisms that actually run these objects which is a whole different issue...)


Anyway, that's about it - hope you'll find this new piece of software helpful for your innovative mobile project, any comments and feedback will be appreciated so we can further develop this technology.

Friday, November 13, 2009

MoMoTLV Exceptional event this Sunday

Perhaps a bit late, but I'd still like to update you of a truly exceptional MobileMonday Tel Aviv event we're having this Sunday (Yes, I know MoMo on SUNDAY...)

We have high-key speakers who came a long way from the edges of the world: Paul Lee, Co-Founder and General Partner of VanEdge Capital and former President of Electronic Arts Studios, Ralph Simon, Chairman Emeritus & Founder of the Mobile Entertainment Forum, Dr. KF Lai, CEO & Co-Founder of BuzzCity and Michael Bidu, Executive Director of WINBC and Founder MoMoVan (MobileMonday Vancouver).

All the event details and registration are here.So if you're around Tel Aviv this Sunday (Nov. 15), please register and drop by!

Monday, October 5, 2009

WIP JAM at CTIA

I am moderating a discussion group this week in the WIP JAM event at CTIA San Diego. Those of you who don't know what WIP JAM is, it's a mobile developer event where the main activity is the JAM sessions in which developers gather around in several discussion groups each discussing a hot topic in the mobile development space. The atmosphere is great and the event attracts great folks.

These JAM sessions have been running already in several major mobile conferences such as MWC and CTIA, and it's happening again in October 8, and as said this time I will be hosting one of the discussion groups. I will focus on Mobile UI and will be co-hosting it with Brian Fling.

So if you'd like to meet, drop me a line or just show up!

Wednesday, June 24, 2009

LWUIT RTL support announced at Java Tech Day



Last Monday in the Sun Java Tech Day 2009 (A mini-JavaOne held in Israel) I announced together with the LWUIT team the new support for RTL (Right-to-Left) languages in LWUIT.

LWUIT is a UI toolkit from Sun for the JavaME platform. JavaME suffered for quite a while from lack of a reasonable UI framework. The basic components it provides are well... very basic... And also not very portable across devices, which made developers to adopt other solutions such as developing their own UI frameworks internally or use other frameworks such as J2ME Polish.

And then came LWUIT which was announced a year ago in the JavaOne conference. It offers an entirely different mobile coding experience, and gives developers complete control over the UI. In fact it is resembles Swing a lot and gives the mobile developer tools which he/she never dreamt of... (except nightmares...)

Moreover, it is open sourced, and unlike other JavaME UI solutions it is free to use for any purpose, including commercial. And let's not forget one more fact that seperates it from other solutions, it is not a 3rd party add-on, it comes from the "source" itself, the developer of the JavaME platform, Sun.

I have been engaged with LWUIT for the past year in my capacity as a consultant - helping companies figuring out if it's worth migrating to, building a UI architectures over LWUIT, designing it and even "getting my hands dirty" sometimes and coding... I have to say that my experience shows that this is a truly robust framework, and a real breakthrough for the JavaME world. Like everything else it has its issues and bugs, but overall it is definitely what we all needed a long time ago...

One of the things LWUIT was missing was proper support for right-to-left languages such as Hebrew and Arabic. This of course doesn't bother everyone, but here in our local market in Israel, it is certainly something the LWUIT team was asked about.

So, Telmap, a mobile mapping and navigation company, which is one of my clients picked up the glove, and sponsosred a full project for adding RTL support to LWUIT. The project was done by myself and after a few months of work - it is here, and will be contributed back to the LWUIT community later this year.

The support is full and thorough and includes the following:

* Components - All the basic components LWUIT offers (Label, Button, RadioButton, CheckBox, ComboBox, TextArea etc.) support the RTL mode and are rendered accodinglty (i.e. in checkbox the box would be to the right of the text).

* Padding/Margin/Alignement reversal - A main concept of the solution is enabling seamless and easy "porting" of an English/LTR application to a Hebrew/RTL one. So, when the RTL flag is turned on, LEFT becomes RIGHT and vice versa. Why? Because if you had an app with a list of bullets that had a left padding of 10 pixels, it would make sense that the hebrew version of this app will feature these bullets in the right side of the screen, and with a padding of 10 from the *right* side and not left padding. So instead of having to provide different values to your English and Hebrew version, everything is reversed and transparent to the developer.

* Layouts - All layouts support RTL and components added are added from right to left when applicable. For example in a horizontal BoxLayout everything will be aligned to the right, in a GridLayout of 3x3, the first component you add will be in the top right, the second one in the top-middle, third in the top-left and so on. This of course includes right-to-left focus traversal. BTW - In BorderLayout WEST becomes EAST and vice versa.

* Bitmap Fonts - One of the problems when using RTL languages, is what happens when it is mixed together with LTR text and/or numbers, the text direction of each segment can be different, which makes things difficult. When drawing such mixed text in system fonts, usually the handsets marketed in the relevant markets already support a bidirectional (BiDi) algorithm that fixes this, but for bitmap fonts, we have to do it on our own - so a BiDi algorithm was added and is applied when a special flag in LookAndFeel is activated.

* Text input - TextField also supports bidirectional text input, including placing the cursor where it should be (Not very easy in mixed LTR/RTL texts...).

* Horizontal List - Supports now RTL in all of its modes, all items are added from right to left.

* Misc - A lot of other behaviours were modified when the RTL flag is turned on, such as reversing the ticker direction in Labels, reversing the horizontal slide direction, the vertical scrollbar is always on the left side etc.

That's about it, I'll update here when the code is officially contributed back to the LWUIT source base and can be downloaded. For other LWUIT updates check Shai's LWUIT blog and to download it and start working you can go to LWUIT's homepage or simply download the new JavaME SDK 3.0 which includes LWUIT.

Sunday, June 7, 2009

The power of MobileMonday

Back a year ago, we had our first MobileMonday Tel Aviv event. If you're in the mobile business you probably know what MobileMonday (MoMo) is, but in case you have been living in a cave, it's an international non-profit organization that has presence in 70+ cities around the world. The main activity of MoMo is holding monthly events in Mondays, the events usually include sessions on a certain theme inside the mobile world, and a lot of networking.

It has been around since 2000 in Finland where it originated from but became a worldwide phenomenon starting at 2004 and it is still growing rapidly these days.

I saw MoMo events while I was travelling in Europe and the US and thought to myself that this is something we simply have to import to Israel, which is not only rich in web 2.0 startups, but also in mobile startups, as well as several mobile "Giants" such as Comverse and Amdocs. Also, you can hear so much Hebrew at the Mobile World Congress in Barcelona, that it should be titled as an official congress language...

And the funny thing is, I used to meet my Israeli colleagues from the mobile space - in Barcelona... There was simply no other format for us to meet here... So I decided to act up and after receiving the Finnish MoMo's blessing, I started forming MobileMonday Tel Aviv. It snowballed quite fast: My call for volunteers to join the organizing team was answered with some great people - and after we had a team, I went on to recruit sponsors - which also proved as quite an easy task. Some already heard of MoMo, others didn't hear but liked the idea - and then we had a liftoff...

Since then we had already 9 successful events, most with around 120-150 attendees, and tomorrow we celebrate our first anniversary and tenth event.

Another important thing is that I got to know some great people, founders and organizers of other MoMo chapters around the world. The MoMo community is very diverse, people joined this family each for his own reason, and managing it each with their own style - but in the end we all have in common enthusiasm for everything mobile, for people and events and also for staying connected both in the local and global levels.

This community is a great driver of the industry, and I am very glad to be a part of it, so if you're in town - come and celebrate with us (event details). Long live MobileMonday!

Wednesday, April 22, 2009

Java news: Oracle buys Sun, Google Java App Engine and LWUIT

I just returned this week from a 2 weeks vacation and got straight back into the action... Just 2 days ago I was in a meeting in Sun Microsystems, and halfway through the meeting, Sun actually became Oracle, after being purchased by the latter in one of the biggest deals lately...

Many analysts seem to think that Oracle will use this acquistion to provide with a full IT solution (i.e. Oracle's DB and software and Sun's servers) and be able to compete more fiercely with IBM. However, I believe that Sun's greatest asset is not its hardware. In fact, Sun lost a lot of its edge in the high-end and robust computing arena in recent years to competitors of all kinds. Its SPARC processor that was in the heart of their servers in the past lost its place to Intel in almost every market which led Sun itself to move to Intel some years ago. After that, the dive into becoming a commodity in a saturated was pretty quick.

But Sun has one thing that tops any hardware - and that's Java. What started as a side project evolved to become one of the most dominant programming languages in the world, and spawned to power a wide range of applications: desktop, enterprise and mobile. Oracle is a software company and has invested a lot in Java as it is. So it seems to me that this is the strong connection point between the two companies and not necessarily the hardware. It will be interesting to see what Oracle's vision is with Java, and in particular J2ME.

Also it would be interesting to see Oracle's strategy in regards to MySQL which was acquired by Sun lately. MySQL is a cheap and simple competitor to Oracle's elaborate DB software, will it remain free for development/non-commercial? Will it remain at all?... (Probably it will and be renamed to Oracle super-ultra-lite or something like it...)

And on more Java news - Google App engine now supports Java! These are great news for all Java developers. Up until now the engine supported Python only, but now it supports a real programming language... (Just kidding Python is also cool...), for those of you who don't know, Google's app engine basically allows you to run your appliation on their computing cloud, similar to what Amazon is offering, but with Google, the first 5M page hits or so per month are free...

And last but not least, LWUIT, Sun's (or should I already say Oracle's) UI framework for J2ME is making some great progress, I am working closely with several companies helping them adopt it, and also working with Sun/Oracle on some interesting projects that will give LWUIT even more "zing" in some markets.

Anyway, it's going to be a pretty busy month or two, but I'll still try to squeeze in a post here and there...

Tuesday, February 24, 2009

MWC 2009 Recap - Here we go again...

As in most previous years, I went to the Mobile World Congress (Previously known as 3GSM) which is held in Barcelona. A totally overwhelming event by all standards, including a huge exhibition floor (though a bit less huge this year), a full conference program, networking events, parties and much more...

As in the last conference I've been to, I decided to sum up my experiences by giving the virtual "Nextys" Awards (which don't really mean anything...) to the following companies and trends:

Missing and yet present: Apple

The only apple I could find this year was in the Barcelona market, and even that was not exactly an apple... The people who brought us the iPhone didn't bother to come and display their stuff in MWC. Perhaps they don't have anything new to announce or simply feel others will do the work for them. And guess what? They're right... Even though Apple itself didn't present, the news from practically all handset vendors focused on sleek UI, touch screens and app stores - all old news in the iPhone world. You could hear everywhere "So, how does it compare to the iPhone?"... So though they didn't have a physical presence, Apple was present spiritually bigtime...

Hottest trend #1: Touch UI

As said all vendors have been quite busy with designing new and sleek touch UIs, which were not all the time as sleek as expected. For example, Samsung showcased their TouchWiz UI, which features several neat concepts but when I tried it on the device pictured here, it was a bit sluggish. On the left side of the device you have a strip of widgets which appears after a tap on the screen. You can scroll the widgets using your finger, and to open one, you just drag it and drop on the main section of the screen. Widgets is also a hot trend now for some time, and this word was used (and misused) quite a lot both by handset vendors and application providers.

Hottest trend #2: App Stores

App stores are big. Everyone, and especially the handset vendors, hope this is what will help them balance things a bit when it comes to operators and their walled gardens. All vendors have relaunched their appstores initiatives due to the success of Apple. They all offer the same thing, but one thing did catch my eye, and that's SonyEricsson's PlayNow Download Station. This is basically a physical appstore - you plug your handset and stick in a moneycard, and then choose the content you want using the screen. The prime target is developing markets in which prepaid is king, and this was launched in seeral southeast Asian countries. However, come to think about it, it does have some upside which is no operator in the way and no internet plan needed... I recall that some experts foresaw great future to "sideloading" (i.e. downloading a game/app on your computer and then sending it via bluetooth to a handset), this might be one enabler for that.

Best Blast from the Past: Palm Pre

Like an 80s rock star that refuses to fade away, Palm is also disturbing our peace with its new and shiny Palm Pre device, which was the uncrowned star of the show. The Pre features a sleek UI (Should I even mention it's iPhone-like?...) that looks a bit more sleek than others with some neat tricks like the "fluid" menu (in the picture) that pops up when you slide your finger from the device's right-bottom corner. Everything is done with hand gestures and provides a great experience. In addition it features an advanced address book that combines your phone contacts with social networks, email and other sources and provides you with presence info and direct connectivity in any supported means. It also has a cool magnet charger, no need for cables, just place the pre on the magnet and it will charge... The only drawback is that it doesn't support any of the known platforms for mobile applications. Instead everything will be done in web technologies (HTML, JavaScript etc.), which makes it unclear how rich applications will be supported, if at all.

Most uninvited guest: Mr. World Recession

A free space in the middle of MWC? This was an odd site in previous years, when booths were so dense you can barely squeeze in your way... But this year, some exhibition halls were quite spacious and some spaces as the one shown here were left empty - however the exhibition was still huge, I actually expected much worse decline of presenting companies, but it was around 15%-20%. Also, the number of visitors decreased by around the same magnitude, on Monday I thought the industry is really going down, but then Tuesday was quite packed and looked like the good old days, and Thursday as always, but a bit more so, I felt like walking in a ghost town. Some areas were more affected than others, mobile content for example was barely seen in the exhibition, while in previous years it had a great presence.

Another clear sign of the recession was the almost complete lack of advertising around Barcelona. In previous years all the buildings across the exhibition as well as metro stations and central locations were covered with ads from the big players. This year, for the first time you could actually see some of the buildings around the congress.... Another thing was the hotels and flights which were not fully booked as in previous years, which made things easier for participants, so at least we get some upside... However, even with less attendees, MWC remains the only place on earth where the line in the men's WC is (much) longer than the women's...

(Second) Best Booth Babes: i-mate

Everybody knows that in MWC booth babes equals CBOSS... This Russian integration company always "invests" in top babes that may or may not be above 18... (Check out the girls dance in 3GSM 2007).So the only competition is on the second place, which goes this year to i-mate, with the Lara Kroft-like babes that had water guns to demonstrate their new water proof and shock proof device. Overall I must say that this year the number of booth babes grew, catching up with other shows finally... So at least the recession didn't affect that...

Creepiest Booth Babes: Access

And every year there's also the guys who don't think things through... And this time the Access babes were dressed as a... tree?! I don't know why but this creeps me up a bit... And no, this is not body paint, they were wearing suits, so you can return now your eyes to their place... Of course I have nothing against Access, but c'mon guys, next time a simple bikini would do...



Best Awards Event: Mobile Peer Awards

As the founder of Mobile Monday Tel Aviv, I might be biased a bit (correction: I am very biased..), but I do think that the Mobile Peer Awards which was held this year in a magnificent venue, is *the* event to be in. The event which is organized by MoMo Barcelona in collaboration with the MoMo community is a contest in which each MobileMonday chapter sends a startup to compete against the others. The startups get only 3 minutes to pitch and convince the jury, the MobileMonday chpaters and the audience that they deserve to win. What made the event even better for me is that MoMoTLV's nominee for the contest, fring, took the MobileMonday community award.

Best in-exhibition party: Yahoo!

Another "space" that seem unaffected by the recession were the famous MWC parties and cocktails (And there were plenty of those). I liked Yahoo!'s, mainly because they let me in... (Luckily I RSVPed for this one...) - just kidding, they showed a good hospitality in their booth and I also enjoyed hearing about their products, mainly Yahoo! Mobile App (previously known as Yahoo! Go) and Yahoo! Blueprint, their mobile platform for app development.

Best off-exhibition party: Swedish Beers

There wasn't a single night in which I returned to the hotel before midnight... Right after the conference everyone is going to the famous MWC parties. There are a lot of events in parallel so naturally I couldn't attend them all, but from the ones I attended, the most "happening" one was Swedish Beers organized by Helen Keegan which did a great job in creating a fun atmosphere which hundreds of people enjoyed (Then again I'll say good things on anyone who give me free alcohol....)

Best Developer Event: WIP JAM

Another good event worth mentioning is WIP's JAM Sessions. The heart of this event is discussion groups in which mobile developers talk about a variety of subjects. It is very enriching, and among the participants you can find high profile mobile experts, C-level officers and top consultants. This is my first time in this event, though it has been held last year in several conferences including MWC and CTIA.

Best (And only?) Mobile Content: Mobile Solid

As said above, mobile content was gone missing this year, but I did saw some neat thing: This technology from Mobile Solid enables video ringtones on your phone - a character of your choice dances to the beat of the ringtone. You can also create characters by cutting and pasting people's faces (Sounds familiar...) which is always fun with politicians, celebrities or your friends. In addition the character animates SMS messages by recognizing words and reacting to it with gestures. It looks really nice, question is of course what is the market potential and is it a gimmick or here to stay.

Coolest Appliance: Parrot by Starck

I am not really sure what this thingy does, as I didn't have the time to stay for a demonstration, but from what I saw it is simply a bluetooth speaker, you can connect your device and play songs through it. Nothing new here, but both the interface on top of the speaker and the product design itself are extremely sleek in a way that makes them stand out, and this is because it was designed by the top designer Philippe Starck. Parrot is the vendor of other bluetooth products such as speakerphones, digital frames etc. and they seem to do quite a nice job.

Best Booth Design: SpinVox

And last but not least, an award for creativity in booth design. MWC is still a very big exhibition and it is difficult to stand out. The guys from SpinVox certainly made an effort to do just that, and it certainly works... Very colorful and doesn't look like a booth at all, maybe more like a theme park... I was told they had the same booth last year, but it is the first time I saw it, so great job guys...

That's all for now, hope you enjoyed it. I should emphasize that these are really just a small glimpse of the exhibition and even I did not get to see everything, if you want to have the whole experience, make sure to book your hotel and flights early on towards MWC 2010...