2 October 2009

New beginnings

About a month ago, I left Collabora in order to bring new, different challenges in my life.  Today, I am announcing publicly that I have founded Novopia Solutions, a new player in free software.  Novopia’s long term goal will be to bring free and open source solutions to market that have yet to be penetrated by free software solutions.

While this is a field where there are plenty of FOSS solutions, the primary focus in the upcoming weeks will be on improving the geolocation solutions in GNOME.  Commercial support for libchamplain is of course on the list.

More to be announced later. :)

1 October 2009

Ubuntu Global Jam 2009 à Montréal, Québec

Si vous êtes à Montréal ce week-end, arrêtez dire bonjour au pavillon principal de l’École de technologie supérieure et participez au Ubuntu Global Jam 2009!  Ça m’étonne un peu que ce soit à l’ÉTS, mon ancienne université, considérant l’absence totale d’intérêt pour le logiciel libre qu’il y avait.  Je crois que c’est un bon signe que les choses changent!

Ce sera ma première conf Ubuntu ou même locale. Ça peut sembler étrange, mais je connais plus de contributeurs au logiciel libre en Europe qu’à Montréal.  Et ce n’est pas parce qu’il y en a pas, c’est seulement que j’ai eu la chance de participer à des conférences à saveur plus internationale ces dernières années.  Pour faire changement, je vais donner un tutoriel sur comment contribuer au projet OpenStreetMap avec Ubuntu (ou toute autre bonne distribution GNU/Linux hehe) vers 14h samedi le 3 octobre.

Au plaisir de vous y voir!

Ubuntu Global Jam 2009 in Montréal, Québec

If you are in Montréal this week-end, stop by the École de technologie supérieure main building and attend the Ubuntu Global Jam 2009!  I have to admit I am surprised this is happening at my former university, considering the lack of FOSS culture there was.  It is a sign of changes I am welcoming!

This will be my first Ubuntu event and my first local conf.  After all, I realized I know more FOSS contributors in Europe than in Montréal.  And that’s not because there aren’t, I’ve just been more often to international conferences.  Time to make a shift.  To mark the start, I’ll be giving a tutorial on Saturday October 3rd around 14:00 about how to contribute to OpenStreetMap from an Ubuntu desktop ‒ for what matters, any GNU/Linux distro would be fine too :-) .

See you there.

14 September 2009

libchamplain hits 0.4

About a month after its 1 year birthday, libchamplain hit the 0.4 mark – the first stable release of this new version.  It’s a Clutter based ClutterActor and Gtk+ widget to display street maps, cycle maps or other maps.  It comes with eye candy.

Special thanks to all contributors to this release (in chronological order of first contribution):
Pierre-Luc Beaudoin, Jonathon Jongsma, Lorenzo Masini, Packz Enoch, Thomas Van Machelen, Anders M-Pedersen, Stephane Delcroix, Denk Padje, Mike Sheldon, Emmanuel Rodriguez, Emmanuele Bassi, Lionel Dricot, Simon Wenner, Kritarth Upadhyay, Debarshi Ray, Paulo Cabido, Sjoerd Simons, Victor Godoy Poluceno, Javier Jardón, Patryk Zawadzki, Sebastian Reichel, Tim Horton, Frederic Peters, Cosimo Cecchi, Vincent Untz, Felix Riemann

Libchamplain in action in Eye of Gnome,
displaying a picture of Lübeck, Germany.

New in this release (since 0.2.10)

  • Support for custom map sources: embedding apps can define their own map sources and provide tiles for libchamplain to display.  This includes a way to list available map sources.
  • Zoom on double click is now configurable.
  • View keeps centred when you resized the view.
  • A way to convert screen coordinates to map coordinates: lets you interact with the map and its markers.
  • Cache tiles: downloaded tiles are cached.  The cache is intelligently validated against the server every 7 days for now.
  • Revamped marker API: Default markers now have a nicer look with rounded corners, nicer colors and a shadow.  The API allows easy image and label markers to be created.
  • Limit visible zoom levels: you can now limit what the user can view.
  • Feedback during loading: ChamplainView will emit a state change when loading resources from network providing better feedback possibilities to the user.
  • Line and polygon drawing API: You can now easily draw lines and polygon over the map.  This is useful for indicating routes or highlighting areas.
  • User Agent: libchamplain now identifies itself in HTTP requests
  • Marker selection support: libchamplain provides a helpful API when you want to let user select a bunch of markers (or only one).  This API has been designed with Gtk+’s selection API in mind.
  • Ported to Clutter 1.0: libchamplain now depends and use Clutter 1.0.  It allowed us to add the very nice in and out for markers.
  • Bindings: the API is now bindable.  Only the Python bindings works for now but that’s not because the Perl binder didn’t try hard to get some too, try having a baby close to a release! :)   C# bindings and C++ have been worked on but didn’t make it on time for the release.
  • Many bug fixes.

Plans for the future

Now that 0.4 is behind us, we already have a huge list of nice to have in 0.6 (due in same time as Gnome 2.30 or Gnome 3.0):

  • Smooth zooming and animation;
  • Rotation of the map;
  • Display cached tiles while downloading new ones;
  • Add a clustering layer: a layer where markers very close on a map will be merged into one marker;
  • An MVC API for layers: use ClutterModel and support GtkTreeModel as sources of Marker data;
  • Limit the visible area on the map;
  • Have the map wrap horizontally;
  • Have a nice dragging mode for markers;
  • Add a map scale;
  • Provide better accessibility;
  • Better cache policies;
  • Better animations;

And most importantly: local rendering of maps. This project is well on its way with the recent conclusion of the Google Summer of Code 2009.  Simon Wenner, which you probably read the progress on planet.gnome.org, did a marvellous job on this.  His work should be included in the first development release of libchamplain 0.5.

9 August 2009

Creating a detailed map with Walking Papers

One of the things I learned about at SOTM, is the existence of walking-papers.org. This tool renewed my interest of mapping around my house in order to create an higher quality map. During SOTM, we were often presented with examples where OpenStreetMap was more accurate and more detailed than commercially available data. I think I just contributed to that!

First of all, what is Walking papers. It’s a simple web site where you can print a map of an area. You go walk around and note the missing information. When you come back, you scan the page and upload it back. From Walking papers you can edit the map using your scanned page as the background to the online Potlatch editor.

Since I am not a big fan of Potlatch (and that I gave away my scanner, not having used it for years), I used the paper as a reminder of what’s on the land when editing with Josm.

Before SOTM, I never though about the high value of extra data (other than ways). Now I highly value all the small details, such as mail boxes, restaurants and addresses. The last one is pretty boring to do by the way. It requires a lot of note taking and a lot of nodes to create and edit. But addressing will be the ultimate step to make precise routing possible with OpenStreetMap data.

So here is what I did (with a friend for Saint-Laurent and Prince-Arthur streets) over the week-end. This represents about 4 hour person walking on site and 4 hour person putting all the data back in the computer. I included a screenshot of Google Map’s Tele Atlas data just as an example to show how far they are from having complete data.

Note: The before screenshot dates after the first pass on Prince-Arthur.  I didn’t do the streets north of Prince-Arthur street yet, that’s why OpenStreetMap is missing a park. I’ll add it when I see it with my eyes (we should never copy from other map sources).

I am really happy with how the Square Saint-Louis renders.  Unfortunately, the square’s page is only available in French on Wikipedia.  The square is bordered with Victorian style houses from the 1880s.  The square itself dates from the same years and has never lost its charm.  In its first years, it was where the upper French Canadian class settled.  Avenue Laval is bordered by georgious victorian houses.  I hope I could buy one some day, those houses are just very nice and we should protect them.

3 August 2009

libchamplain 0.3.6 released, now using Clutter 1.0

libchamplain’s development was not blocked by the never ending delays in Clutter 1.0′s release. But we were waiting for 1.0 with eager.  And now the results are in.  Clutter 1.0 introduces many changes that simplified libchamplain’s code and solved some of our long standing issues at the same time.

Taking opportunity of the new introduced animations in Clutter, I added new marker animations in libchamplain:

If you are viewing through a planet, or a non HTML5 capable browser, here’s the file.

Since porting to Clutter 1.0 was the only condition set by the Gnome release team for libchamplain’s inclusion in Gnome 2.28, we can consider it a done deal!

See the complete announcement.

In other news, libchamplain 0.3.5 was also released last Saturday. It is the last release to use Clutter 0.8, but it also has very good Perl and Python bindings. Since Clutter 1.0′s bindings are not ready yet, libchamplain 0.3.5 is the last release to have bindings until Clutter gets some!

12 July 2009

Attending the State of the Map 2009

I am in beautiful Amsterdam since Thursday attending the State of the Map 2009.

It is a nice conference, but having attended only free software conferences so far I was up for some cultural shocks.  First of all, everyone here has an iPhone, a Mac and a twitter account.  I signed up for one to be able to catch up with the virtual side of the conf.

There are a lot of very short nice talks about what people are doing with the data or how they contributing data. So far, the most interesting one has been how JumpStart paid people to go to Palestine and the Gaza stripe to map the place as no maps were available. This is an exciting idea where they sent people on site to hire mappers and make this data available. They did encounter problems but the result is great! (and is in the process of being imported into OpenStreetMap).

I’ve been lucky to be able to fit a last minute lightning talk about libchamplain.  I think libchamplain will bring knowledge about OpenStreetMap to the GNOME desktop users and could be benefictal to the first, while we get nice maps for the latter.   As for technology, libchamplain seemed to be on par featurewize with commercial solutions presented here.  Let’s hope its usage picks up (already 5 applications and counting!)

15 June 2009

Geolocation in Empathy: now real

Last January, I announced Geolocation in Empathy.  All pending branches have now been merged and released in Empathy 2.27.3.

It took quite a lot of time to finalize it because we were quite busy and quite frankly while this is sexy, it isn’t a very important feature in Empathy :-) .  In the following screenshots, you’ll discover that things have changed a lot since the original announcement.

First of all, the markers now include more information about the contact.  This uses the new markers in libchamplain.  It works nice for now (as I only have 3 or 4 contacts publishing their location), we’ll see with usage if the markers are just too big.

The map is now interactive: right clicking on a contact will bring up the same context menu you get on the contact list.

The Preferences UI was reworked to be simpler.  The previous UI left space for an hypothetical Manual address mode which was dropped.  The rationale is that Empathy shouldn’t have to care about addresses.  If you want to change the address, change it in Geoclue.

This is new since January: the tool tip now include your contact’s geolocation information.  This is the only part of all the geolocation changes that are present even if you don’t build with Geoclue or libchamplain.  It was impossible to display a map there as ClutterGtk doesn’t seem to like such windows hehe. We already know it is partly ugly and contains duplicate information :-) It will be improved before final release.

Finally, the contact information dialog now displays a map and the detailed information about the contact’s location.

Don’t miss the FAQ that I populated with questions I was often asked during development.  Report bugs on the Geolocation component of Empathy (you can also see that we have work left to do).

I am not the only one who worked on this exiting feature, here are the details:

  • Alban Crequy worked on the XMPP support and reviews;
  • Dafydd Harries did the early work on the XMPP support;
  • Guillaume Desmottes wrote the XMPP PEP code (the same used for OLPC) and reviewed the code;
  • Pierre-Luc Beaudoin did the UIs, the libchamplain and geoclue integration and pursued the XMPP support;
  • Xavier Claessens reviewed many times.

I can’t wait to see more people using this and show up on my map!

12 May 2009

Python’s hidden poisoned apple for GPL applications

I’d like to make people aware of something my colleague Daf pointed out to me: one cannot use Python‘s SSL code (this also applies to other Python projects such as M2Crypto) in a GPL licensed application because it uses OpenSSL.

The problem resides in OpenSSL’s license which requires :

3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
“This product includes cryptographic software written by
Eric Young (eay@cryptsoft.com)”
The word ‘cryptographic’ can be left out if the routines from the library
being used are not cryptographic related :-) .

and (because of its dual license)

3. All advertising materials mentioning features or use of this
software must display the following acknowledgment:
“This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)”

This requirement as been marked as GPL incompatible.  Therefore, any GPL application using it is in license violation. While the OpenSSL FAQ stipulates that you can use it with GPL applications, this opinion is not shared by everyone. This is a quite big unadvertised licensing problem.

Now, I am not a lawyer but I can point to some existing solutions to this problem:

  1. Fix Python to not use such a poisonous (to GPL) licensed library.
  2. Do not use Python’s SSL code and use other implementations such as python-gnutls.  This solution less appealing as replacement libraries often don’t completely cover python’s API.
  3. Relicense your GPL application to “GNU GPL  with the OpenSSL special
    exemption.” (as wget did) and add mentions to OpenSSL in your advertising materials. This solution is sometimes hard to implement as you have to contact all past contributors.
4 May 2009

libchamplain 0.3 released!

I am proud to announce the release of libchamplain 0.3, the first development release toward 0.4.  libchamplain is a map widget.  It is the work of many months (as far as November) and many contributors since FOSDEM.  Here is a short list of what you get:

  • Support for proxies
  • Support for custom map sources
  • A way to list the available map sources
  • Support for 2 new built-in map sources: Cycle Map and Osmarender
  • A bunch of new function to allow more control on the UI
  • A nicer, more flexible Marker API
  • Nicer default markers: they are now grey, have rounded corners and cast a shadow!
  • Notification when the view is loading content and when it’s done
  • Support for locking down available zoom levels
  • A more intelligent cache that can be purged
  • Bindings (in the works): Perl, Python, C# and C++

Of course being a development release, the API isn’t entirely stable yet.  For instance, the code surrounding the ChamplainMapSourceDesc introduced this weekend is subject to be reviewed in the next weeks.

Yet, this release is a big step forward introducing a lot of the desired features while leaving some for an upcoming release (such as the ability to draw lines on the map).

You can grab the tarball or clone the source code.  You can read the NEWS or read about the API.

On a side note, libchamplain as been officially proposed as an external dependency for GNOME 2.28.