Developing a mobile blogclient with Breeze

breeze similator with mloggerI’m one of those crazy gadget-loving freaks that are eagerly awaiting the arrival of the Palm Pré. One of the reasons I’m that exited about that device is the development-stack. Applications are written on the Mojo-framework: html+css+js plus a great API to interface with the OS and hardware. But the Pré isn’t available yet and there’s nothing more to do then drooling over the specs, the pics and the vids. Or is there?
Actually there are more companies betting on html+css+js-stack as mobile application development platform; the mobile version of Google Gears allows you to download web-applications to run locally (which is a slightly different approach, but with approximately the same result). And another giant, Nokia, has its Web Runtime for S60 5th edition devices, which seems to follow the W3C widget-specs to some extend (they can be tested as Opera widgets).
The issue with both environments however, is the lack of an API to interface with the phone. And that is not the case for my latest crush; Cascada Mobile‘s Breeze. Breeze provides you with a simulator (or Eclipse-plugin) and a simple javascript API to access o.a. storage, contacts, camera, gps and network off course. It compiles your applications into J2ME midlets, which can then be distributed via breezeapps.com and installed on a whole bunch of J2ME handsets (Nokia, Blackberry, LG, Samsung, Sony Ericsson, …).
I’ve played around with Breeze, building a prototype of a blogging-client (ugly and wordpress-only for now, source here) and it really is great fun to develop applications that way. And it works too; the first draft of this post was written using it on my Nokia E61i. How I love the smell of my own dogfood in the evening!
Powered by mlogger

5 reasons why the NMBS should have an API

nmbs should have an apiThis weekend I joined the Facebook-group “NMBS should have an API”. The NMBS (or SNCB, for the route planner) and Infrabel (for railtime) have data available that is very relevant for their customers, but this does not really translate in great applications, does it? Wouldn’t it be better for public companies such as the NMBS to focus on exposing their data/ business logic and less on the presentation, allowing 3rd parties to connect to their API’s to create innovative new applications?
Just image what kind of sexy, useful applications that could be created this way. Here’s 5 to start with:

  • A mobile application that can
    • plan your rail-travel based on your current GPS-position and the destination you enter
    • adapting your route while “on rails” in case of delays of current or next train
  • A Netvibes-widget containing basic route planner and railtime funcionality. Netvibes is great by the way, their widgets can be deployed in Netvibes, iGoogle, Live.com and standalone on any site, but also on your Mac OS X and Vista desktop. I build a very simple LinkedIn widget almost a year ago. It’s actually little more then a wrapper around their mobile site, but according to the Netvibes stats it’s installed by more then 1200 users. Great potential!
  • mytrain.be: a personalized website for daily commuters:
    • register and select the train(s) you use on what days of the week
    • receive warnings by mail/ sms in case of delays
    • automatically propose alternative routes in case of delays
  • A sexy mashup of real-time train info and Google Maps, as already seen on http://swisstrains.ch/ (great to look at, not sure it’s that useful though)?
  • A trainusers-application integrating into social websites, allowing you e.g. to hook with fellow-travelers on Twitter or Facebook while on rails?

So indeed, NMBS and Infrabel, give us API’s and enjoy the great stuff that’ll be build on it. And if you’re reading this and you would like to use or develop applications based on such data, join that Facebook group!

Tomorrow’s phone, now!

palm preAs every boy could tell you, it’s our toys that keep us kind of young. Because of that and as I work for a telco, I can’t but regularly buy a new phone.  Over the years I’ve had a.o. a Nokia 7110, a Sony-Ericsson T68i, a Qtek 9100 and I currently own a secondhand Nokia E61i. But time flies and my E61i is aging fast (maybe if I wouldn’t drop it that often …), so in a few months time I’m buying a new smartphone. Time to start shopping for pics, specs and reviews!
Smetty recently asked for advice on this topic as well, she was thinking about the Nokia E71 as a cheaper alternative to the iPhone 3G. But I won’t be buying Apple’s must-have gadget any time soon; although it has some superb features (OS, browser and that multi-touch interface), it lacks a real keyboard, has not tethering and doesn’t allow applications running in the background. And last but not least; the platform is far too closed to appeal to an open standards and open source minded wannabe-geek like me. All Windows Mobile-based devices are banned from my shortlist as well; I really don’t like the OS and its GUI, it feels too much like Windows 3.11 to me.
I’ll probably end up buying either the Nokia E71, a HTC Dream (the Google-phone) or the Palm Pré. So let’s do a pro&con-list, comparison-tables are always fun, no?

Nokia E71HTC DreamPalm Pré
Pro
  • Symbian is a proven OS
  • Lots of great software
  • Great battery life (1500mAh battery and only QVGA)
  • Builds on Nokia’s experience with the E61(i)
  • It’s a bit smaller then my E61i (which is … biggish)
  • Has tethering
  • Google Android is a Linux based OS
  • Google is an important player, lots of companies will be releasing Android-based phones in the coming months
  • HTC is one of the greatest cellphone manufacturers, they have loads of experience. My Qtek 9100 was a HTC-device as well.
  • Higher screen resolution (HVGA)
Con
  • Symbian feels old and is not always that reliable on my E61i (why does it soft-reset when the browser crashes?)
  • Lower screen resolution (QVGA)
  • Less readable then the E61i (same resolution but smaller screen)?
  • No tethering!
  • Battery life not that great (1150mAh battery combined with and thirsty HVGA)
  • It’s early days for Android, not sure if it’s mature enough
  • Not available through normal channels in Belgium, except for some obscure webshop where it’s already sold out
  • How about battery life (rumours claim 1150-1350 mAh, combined with power-hungry HVGA)?
  • Not available yet, no release date announced (not for USA, and certainly not for Europe)

The conclusion: although it still is vaporware, there’s some extreme chemistry going on between me and that darned Palm Pré. It’s the most exciting device by far and if it is for sale in Belgium, it’ll be hard to resist. The HTC Dream doesn’t seem to do it for me, no chemistry on one hand and not the “safe choice” either, as that award is easily claimed by Nokia E71. So Palm Pré if available in June/July, Nokia E71 otherwise?

Fun with RFP’s: organizing a RAD-race

the original rad race logoSelecting a good (web-)application development partner is not an easy task. Between writing your RFP, reading offers, organizing Q&A-sessions, commercial and juridical negotiations, … it’s easy to lose sight of what is most important: finding someone with the right tools and the right knowledge and experience to efficiently build (web-)applications.
That is why (at work) we decided to include a POC in the last phase of our “web framework and development services” selection process. But not just your normal POC, where you have no control over the context in which the development takes place. No, we brought in Ivan Verborgh to help us organize an “original RAD race“. In such “development competition” you put the participating teams in 1 room and give them 1,5 days to create the same administrative application. And somewhere along the line you throw in a change request as well, just for the kicks of it (and to check agility off course).
Our participants had to use a Java-based solution (as defined in the RFP), but their frameworks were very different, with one opting for a commercial product and the other one for an open source component stack. Without going into too much detail, the RAD-race was a great experience for us as well as for the participants. Although neither team was able to complete the assignment, there was a clear difference in the teams’ performance. For some colleagues the results were a true eye-opener, with one competitor clearly having less knowledge and experience with their chosen framework. The result of the RAD-race was an important element in our decision process and it was a fun experience during an otherwise sometimes dull RFP-process.

Invitation to comment: dofollow

no nofollow = dofollow (sort off)Last Friday Steven of Some Minor Issues asked how he could increase the number of comments on his blog. I jokingly replied he should install the NoFollow Free WordPress plugin. Jokingly, because common blogging-sense claims that nofollow prevents people that are just looking for pagerank from posting irrelevant comments on your blog(*).
But then I began to wonder; why should I be afraid of not having “nofollow”? WordPress has  great spam-detection (Akismet) and I don’t allow comments to be published automatically anyway. Why not give people who contribute some pagerank-juice in return? So yesterday I installed NoFollow Free and configured it to remove nofollow for commentators who have 2 or more published (i.e. relevant, approved by me) comments.
So that’s that, this now is a dofollow blog. Now let those comments start pooring in! 😉
(*) The ranking of your site in search-results depends amongst other things on the number of links to your URL. That implies that if you’re able to “seed” your own link in blog-comments, Google will like you more. To prevent this from happening, nofollow (which is a value of the “rel”-attribute of the “a”-tag) tells Google not to consider a link. If  Google ignores links in blog-comments, people who are only trying to get Google to like their site, will not bother with commenting any more. That’s why rel=”nofollow” has become default in WordPress (and other blog software) ages ago.

While waiting for the new Firefox beta

While we”re waiting for the new Firefox 3.1 beta (which will probably be released on march 12th, after which 3.1 will become  3.5), the Mozilla Labs guys announced a prototype “about:tab” plugin. It builds on the ideas they put forward on the labs-blog last august and follows in the footsteps of what Opera and more recently Google Chrome and Safari 4 are doing, taking it up a notch.
about:tab in firefox3.1b by aza raskinAfter installing the plugin, a new tab will show you:

  • the title and favicon of the most recently closed tab, allowing you to reopen it
  • a button containing the text in your copy/paste-buffer with contextual actions;
    • if URL: go to that site
    • if physical address: put it on a map
    • else: search for that text on google
    • more actions might be added and the system will be extensible, taking from Ubiquity
  • a list of six of your most visited sites, with thumbnail and title and with the most recent rss-items of that site

Although the developers claim that it’s “a rough-cut prototype” and that “the visual design isn’t right”, I already prefer this sober and functionally rich new-tab-behavior over the shiny “top sites” implementation in Apple’s Safari4. I sure hope this will slip into Firefox 3.5 in the next few months!

Jakob Nielsen on mobile web usability

Using websites on a mobile phones is “a cringeworthy experience” according to recent user tests performed by Jakob Nielsens company. His advice:

Although devices will get better, the big advances must come from websites. Sites (including intranets) must develop specialized designs that optimize the mobile user experience. Today, few sites have mobile versions, and those that do are usually very poorly designed, without knowledge of the special guidelines for mobile usability.

Great article, a must-read for those working on mobile(-friendly) websites!

New powerful iPhone with Flash preinstalled in q4?

So Adobe is working with Apple and “hope[s] to have Flash installed on over a million shipped devices by the end of the year“?
If you consider that:

  1. The (ARM11-based) CPU in the current iPhone is said to lack the raw power to run CPU-intensive applications like Flash
  2. Adobe has teamed up with ARM to optimize Flash on their processors and especially on the new ARM Cortex (which has been confirmed to be the CPU in the Palm Pré, which seems a great iPhone-competitor)
  3. “shipped devices” seems to imply that Flash would come pre-installed
  4. Apple sells more than 1 million devices each month (based on the past 2 quarters)

So we can expect a new ARM Cortex-based iPhone in time for the EOY holiday sales?

Stop software patents

Really, sign this petition

stopsoftwarepatents.eu petition banner
If in doubt, just check out some of these European software patents;
  1. Webshop: Selling things over a network using a server, client and payment processor, or using a client and a server – EP803105, EP738446, EP1016014
  2. Order by cell phone: Selling over a mobile phone network – EP1090494
  3. Shopping cart: Electronic shopping cart – EP807891
  4. Adapt pages: Generate different web page depending on detected device – EP1320972
  5. Related results: Show related results if customer likes the current ones – EP628919

So stop coding that fancy webapp now and go sign that petition!

Put your WordPress-categories back in the tagcloud

When blogging, tags and/or categories allow you to classify your posts. The taxonomy you create that way, allows searchbots (and human readers) to better understand what the post is about and to find related posts.
category cloud widget config screenshotEver since the release of WordPress 2.3 (in sept. 2007), you can specify both categories and tags for your posts. More or less following the ideas put forward by Lorelle-on-WordPress, I use categories as the main classification-method (putting posts in a hierarchical, directory-like structure) and add one-off keywords as tags. The only disadvantage: as tags are one-offs, the default tagcloud-widget in WordPress generates a dense put useless heatmap.
If you’re in the same situation, you might benefit from this little WordPress-plugin I wrote (well, …copy/pasted, actually, 80% is code straight from the original WP-tagcloud widget) to solve my tagcloud-woes. Once unzipped in your plugins-folder, “category cloud” will provide you with a widget which can not only generate a “tagcloud” or a “catcloud”, but also a “cat-and-tagcloud”. And because the default “general”-category might skew your catcloud-results or because you might prefer to have that NSFW-tag not show up, you can exclude tags and categories from being shown as well by entering their ID in the appropriate input box.