3 February 2010

My upcoming talks at Confoo.ca

After touring FOSS events all around the world, I decided to see what’s happening on the local software scene.  I met with the guys from Montreal-Python, the Ubuntu Québec local team guys (after all Montréal is the home of Canonical’s Global Support Services) and the local start-ups at DemoCamp.

confoo.ca Web Techno ConferenceThey convinced me I should give a talk at Confoo.ca.  In fact I decided to submit 2 talks and both were accepted.  Confoo.ca is a new conference building on the famous PhpQuébec conferences but gathering much more communities together: .Net, Python, Ruby and Web developers. The conference will cover technical topics as well as project management, marketing and social medias.

Based on my personal knowledge and the experiments I’ve been doing lately with Web + Desktop apps combinations, I’ve submitted the following talks.

Django + RESTful APIs as an application server

Application servers are the central part of data applications. They are responsible for mission critical activities of businesses and yet have to be cost effective. Django offers a lot of flexibility by providing rapid application development. Django-piston makes it easy to add RESTful APIs to existing Django apps. Web servers are very common and rather cheap to rent or host in house.

Once your application has a RESTful API, nothing is keeping desktop applications to access your web services. For example, using librest on the desktop, Emerillon accesses on-line databases such as Geonames. Librest simplifies accessing RESTful web services and makes parsing XML fun again (that’s a Robert Bradford quote if I am not mistaken).

Introduction to OpenStreetMap and how to use it

When thinking of online maps, Google Maps is often mentioned as a reference. But you can’t use their data in all the exciting ways you could ever imagine. Enters OpenStreetMap: community built openly licensed map data. You are virtually free to do anything with the data, short of not giving proper attribution of its origins.

With this gained freedom, you can explore and create unique maps adjusted to your needs. You can also simply reuse the default one available on OpenStreetMap.org, in some locations it is way more complete than any other maps anyway.

Come and attend Confoo.ca!

29 January 2010

MapBuddy 0.2, libchamplain 0.4.4 and 0.5

What a big release week!

First, a quick update to MapBuddy:

  • Translations (French, Spanish, German, Swedish, Polish, Slovak)
  • A “Add to addressbook” button on merchant’s window (with the help of Jonathon Jongsma)
  • A precision circle is drawn around your position
  • Kinetic scrolling is turned on

Then, a bigger update for libchamplain 0.4.4:

  • API clean up (with API backward compatibility): champlain_view_set_size should have never existed
  • Fix to make Python bindings work out of the tarballs!
  • Use shared paths by all tiles consumers on Maemo devices to store tiles (saves bandwidth)
  • Load tiles in a spiral manner from the centre (thanks to Jason Woofenden)
  • Optimizations resulting in
    • Faster start-up
    • Smoother scrolling
    • Energy savings (by doing less computations)

Then, a huge update for libchamplain 0.5:

  • First development release with new APIs:
    • Local map rendering (Google Summer of Code of Simon Wenner)
    • New Map Source mechanism à la Pipe and Filter (Jiří Techet)
13 January 2010

OpenStreetMap mappers band to improve Haiti’s map

In order to help people, free and widely available maps are a good tool to rescue parties.  Many users of OpenStreetMap have organized a wiki page to manage the work that needs to be done to quickly improve OpenStreetMap for this part of the world. Thankfully, Yahoo has high resolution imagery of the region making it possible to trace the streets.  Note: remember that only Yahoo imagery can be used, as OpenStreetMap has a signed derivative work permission with Yahoo.

If you know how to edit maps, maybe you can land a hand! CrisisCommon also has other resources.

Follow-up: Mikel Maron has before and after images along with more info.

Slippy Map

12 January 2010

One more map app for the N900

Well, I finaly got my hands on a N900 (given as a Christmas gift by Collabora to Gabriel).  This gave me the occasion to observe first hand that the Ovi Maps, while having a lot of features, is slow and that the Hildon Emerillon port is less than perfect.  It is hard to use with fingers and feels alien to the platform.

To solve this, I created Map Buddy: a map application specifically designed for Maemo 5.  It is quite simple to use and works out of the box (no configuration or selection of plug-ins required!).  It also has something other apps don’t: it uses web-services to provide business search capabilities.

Here’s the use case I built Map Buddy upon: you just arrived in Montréal and want to find a sushi restaurant.

  1. You start Map Buddy, it will be centred on the place you closed Map Buddy on.  You can click on the “Center on me” icon on the bottom left, and it will centre the map on Montréal ‒ remember you are in Montréal for this example! By the way, your position is marked by a blue dot. Later version will display the precision too.
  2. To search for businesses, you have to switch in business search mode, tap on the magnifying glass to do so.
  3. Enter sushi in the search bar and press enter! The map will be populated with markers representing the places tagged with sushi (powered by Praized Media, a Montréal start-up).
  4. To get the name of the place, tap once on the marker.
  5. To get the complete details about a place, tap once on the name: a new window will be opened with the business’ address, phone number and web site if available.  Map Buddy even provides a call button!
  6. To clear the search results, tap on the trash can in the search bar or do a new search.

It’s that simple!

Map Buddy includes a place search so that if you are looking for Pizza in New York, you don’t have to scroll from San Francisco to New York to get there.  Select the Place search mode, enter New York in the search field and press enter.  A picker dialog will be opened to let you select the correct New York.

To switch to other maps, click on the layer icon, it will bring up the list of possible maps to display.

I hope you like it!  Try it today! WARNING: Installing Map Buddy in this early stage requires adding the extras-devel repository which might install unstable software on your device.  Try it at your own risk or if you are a professional ;-)

NB: Praized Media only has strong data sets for Canada and United States.  They plan to sign business partnerships to get data for Europe in 2010.  In the mean time, you can directly add businesses using this form.

NB: Help is appreciated to translate it!

4 January 2010

Can you spot what’s new?

Yes! Libchamplain now has a scale! It was long overdue. In fact, I first started to work on it way before libchamplain 0.2.2 was even released (1.25 year ago). It got impeded by more important features and bug fixes. Two or three months ago Tollef Fog Heen took over the branch and added the magic required maths to compute the scale. I then took over his work (as he was quite busy and I wanted this too) to provide the final result.

Since all the changes are backward compatible, I’ll soon release a libchamplain 0.4.3 with the scale disabled by default (to ensure the same visual behaviour as before upgrade). To display a scale, an application just has to change the show-scale property to TRUE.

#if CHAMPLAIN_CHECK_VERSION (0, 4, 3)
g_object_set (champlain_view, "show-scale", TRUE, NULL);
#endif

The scale also supports other exotic units than the SI/metric ones. It can display miles and feet, if you’re into that. :) By the way, the scale will automatically switch from kilometres to metres when it makes more sense. That was quite more complex to do with miles and feet as they are not simply a power of 10. Set the scale-unit property to CHAMPLAIN_UNIT_MILES to get miles.

You can limit the width (in pixels) of the scale with the max-scale-width property.  If you watch closely, the scale will adjust itself right away when you move the map.

10 November 2009

Ein neues plugin um zu vorangehen

Ich habe in der letzten Wochen an einem neuen Plug-in gearbeitet aber das war nicht alles.  Es liegt unter dem Repository emerillon-plugins (inspiriert von EOGs).  Es sind schon 4 Plug-ins in Arbeit aber nicht alle sollten mit Emerillon vertrieben werden.

Dieses Plug-in soll für Montréalers nützlich sein: es zeigt den Status des Bixi Netz. Bixi ist der öffentliche Montréaler Fahrradverleih. Er ist so schön, er soll in London (Großbritannien) und Boston (Vereinigte Staaten von Amerika) eingerichtet werden.

Das Plug-in ist einfach: es gibt ein Drop-Down-Menü wo man wählen kann, ob “Verfügbar Fahrräder” oder “Freie Docks” angezeigt werden. Die Karte wird immer zeitnah mit den neuesten Information aktualisiert. Die Stifte ändern ihre Größe wenn es gibt mehr verfügbar Fahrräder oder freie Docks gibt. Die Information wird alle 5 Minuten herunterladen.

Das Plug-in ist jetzt frei verwendbar, nachdem alle rechtlichen Fragen geklärt sind. Es ist einem schönes Beispiel dafür was Sie mit libchamplain und Emerillon machen können. Es ist die erste Verwendung einer von ChamplainMarker abgeleiteten Klasse (das ich kenne), die das eigene Look-and-Feel zur Schau stellt.

Ausschlussklausel für Haftung: Dieses Plug-in wurde von Novopia Solutions zugänglich gemacht und steht nicht in jeglicher Verbindung zu Bixi, dem öffentlichen Montréaler Fahrradverleih. Bixi ist ein Warenzeichen der Société de vélo en libre-service.

9 November 2009

A new plugin to lead them all :)

In the last weeks I (among other things) worked on a new plugin repository (vastly inspired by EOG‘s) for third party plug-ins for Emerillon.  There are currently 4 plugins being worked on and not all of them should be distributed with the base Emerillon application. Enters emerillon-plugins.

It currently has 1 plug-in.  This plugin is one that will be useful to Montréalers: it displays the status of the Bixi network.  Bixi is Montréal’s self-serve public bike system.  Apparently its design is so good — the bike system, not the plug-in :) — that it’ll be implemented in both London (UK) and Boston (USA) very soon.

So the plug-in is quite simple: you have a drop down list where you select to see available bikes in stations near you or available docking stations.  The map is updated instantly to display the new values.  The markers on the map change in size depending on the available bikes/docks.  The information is automatically updated every 5 minutes.

After all the legal verifications, this plug-in is now free for everyone to share.  It should serve as a good example of what you can do with Emerillon and libchamplain.  It is the first piece of code (that I am aware of) to demonstrate ChamplainMarker sub-classing to implement unique look & feel.

Disclaimer: This plug-in has been independently developed by Novopia Solutions and is not in anyway related to or endorsed by Bixi, the operator of Montréal’s public bike system.  Bixi is a trade mark of Société de vélo en libre-service.

Un greffon pour mener la voie :)

Ces dernières semaines, j’ai travaillé sur un dépôt pour greffons (très fortement inspiré de celui d’EOG) pour les greffons de tierces parties pour Emerillon.  Il y a présentement 4 de ces greffons en cours de réalisation et ils ne devraient pas tous faire parti du paquetage d’Emerillon.  C’est pourquoi il y a maintenant emerillon-plugins.

Ce dernier compte un greffon.  Ce greffon en est un qui sera très utile aux Montréalais: il affiche l’état du réseau Bixi.  Bixi c’est le réseau de vélo en libre-service de Montréal.  Son design est si bon — le réseau de vélo, pas le greffon :) — qu’il sera bientôt disponible à Londres (Angleterre) et Boston (États-Unis).

Le greffon est très simple: une liste déroulante vous donne l’option de visualiser les vélos disponibles ou les points d’ancrage libres.  La carte est immédiatement mise-à-jour pour afficher la nouvelle information.  La taille des points sur la carte change en fonction du nombre de vélo ou de points d’ancrage.  L’information est téléchargée depuis les serveurs de bixi à toutes les 5 minutes.

Après toutes les vérifications légales, ce greffon est maintenant librement disponible pour tous. Il sert de très bon exemple de ce que vous pouvez faire avec Emerillon et libchamplain. C’est à ma connaissance le seul code qui existe qui sous-classe ChamplainMarker afin d’implémenter un rendu unique.

Avis: ce greffon a été développé de manière indépendante par Solutions Novopia et n’est pas lié, supporté ou approuvé par Bixi, l’opérateur du système de vélo en libre-service de Montréal.  Bixi est une marque de commerce déposée de la Société de vélo en libre-service.

14 October 2009

Back from Boston with an Emerillon release

So I am finally back from the Boston Summit, a unique occasion to get updates on latest developments, and I am releasing Emerillon 0.1 for distributions eager to package.

Mandatory Greyhound rant

With a 3 hour delay on departure (making a total of 5 hours of wait in Boston’s 10 ℃ station), we managed to arrive 5 hours late in Montréal, due to a defective heater in the bus.  Add moving everyone at 5 AM from that defective ’70s bus to a freezing ’90s bus with actually less seats than the previous one, and the fact that there was enough people to fill 3 buses in Boston, but only 54 managed to leave on the first one and you’ve got a complete picture of the fiasco.

I am not going to run in too much details but all this could have been so easily avoided.  The delays were due to the fact that the bus that was supposed to bring us had been delayed at the US border.  Fine, shit happens.  What is not fine is that they waited until our expected departure time to get a replacement driver (since he had busted his legal driving time).  See, it takes about 5 hours from the border to Boston.  Knowing he was going to be late (and therefore busting his hours), the driver should have called his manager, which should have prepared a replacement driver for the next departure in 10 hours! But none of that happened.  And, to top it all, there were no Greyhound dispatcher to be called by the Boston station employees to inform them of a missing departure bus.  Complete utter fail.

Emerillon 0.1.0 release

Now for the fun part.  With all that time on hands, I created 2 new plugins for Emerillon (Copy a link of the current view to online maps, and display map position in statusbar) and cooked a release including all the 5 submitted translations.  Woot! Grab the release here.  This is a preview release with no guaranty on plugin API stability.  See the complete announce email.

Before anyone asks, I am using the gnome-colors Shiki-Wize theme.

For those who missed the original announcement: Emerillon is a map viewer. Aiming at simple user interface, Emerillon is a powerful, extensible application. It features OpenStreetMap based
maps. Use it to browse maps, search the map for places, placemark places for later quick access and more!

There are even packages of this release for Ubuntu Hardy from Mathieu Trudel.  See his blog of the install instructions.

6 October 2009

Announcing Emerillon, the map viewer

Didn’t I foretell you there’d be more announcements?  Here’s one: Emerillon.  It is pronounced Ey-may-ree-yon. It is destined to be GNOME’s Map Viewer.  You will quickly recognize its sister apps: Eye of Gnome, Evince and GEdit. After all, they share a lot of design concepts.

Why another map application do you say? Simply because none of them is free AND targeted at the Gnome desktop AND has ease of use in its (visible) goals.  This project should be easy to use for anyone, not only for mapping geeks.

Emerillon is an application designed to be extended.  There is a number of small specialized map applications that were created in the last year, I have hope this one will be the catalyst of the development efforts.  Out of the box, Emerillon comes with 2 plugins: a search and a placemark plugin.  There are numerous plugins ideas : a GPX viewer, GPS integration, Telepathy integration (both to share the app and to display your friends location), a plugin to display the position under the mouse cursor, a plugin to display personal markers and I have two special ideas that I want to keep for myself to implement :) Other ideas are welcomed too!

Emerillon is a project originally started by Marco Barisione in October 2008.  Due to various reasons, it remained dormant for almost a year, until I decided to take over and push it forward.   Turns out, Marco had laid out very good UI base on which I built upon.

Visit http://www.novopia.com/emerillon/ for more screenshots and details.

Kudos to be given

Emerillon is built of code inspired by other projects and very cool libraries.  Early on, Marco borrowed Evince‘s sidebar.  This sidebar is so nice and clean that it should be part of Gtk+! The problem is that this code is GPL but Gtk+ is not.

Another quite common widget in Gnome apps is Epiphany’s spinning throbber.  Again, it is GPL’d and the code has to be copied from apps to apps.

I am not going to kudo libchamplain ;) Lets say I have found API omissions that will need to be addressed for Emerillon to work perfectly. Who needs a “selected” signal after all? :) Still, libchamplain was quite necessary to build this app.

Emerillon’s plugin system was faster to implement than I expected when I got this idea.  But thanks to Ethos, it was a simpler task.  Ethos is a complete (Gedit/EOG alike) plugin architecture in a library.  It even provides UI widgets to manage the plugins.

Emerillon’s search plugin uses librest to fetch its data from geonames.org.  Rob Bradford was right: it is now fun again to parse XML.  I mean really.  This library makes fetching web service data an easy task.

Fetch Emerillon from Gnome’s git today and give it a try!