»
S
I
D
E
B
A
R
«
My upcoming talks at Confoo.ca
Feb 3rd, 2010 by Pierre-Luc Beaudoin

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!

MapBuddy 0.2, libchamplain 0.4.4 and 0.5
Jan 29th, 2010 by Pierre-Luc Beaudoin

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)
OpenStreetMap mappers band to improve Haiti’s map
Jan 13th, 2010 by Pierre-Luc Beaudoin

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

One more map app for the N900
Jan 12th, 2010 by Pierre-Luc Beaudoin

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!

Can you spot what’s new?
Jan 4th, 2010 by Pierre-Luc Beaudoin

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.

A new plugin to lead them all :)
Nov 9th, 2009 by Pierre-Luc Beaudoin

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.

Announcing Emerillon, the map viewer
Oct 6th, 2009 by Pierre-Luc Beaudoin

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!

New beginnings
Oct 2nd, 2009 by Pierre-Luc Beaudoin

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. :)

Ubuntu Global Jam 2009 in Montréal, Québec
Oct 1st, 2009 by Pierre-Luc Beaudoin

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.

libchamplain hits 0.4
Sep 14th, 2009 by Pierre-Luc Beaudoin

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.

»  Substance: WordPress   »  Style: Ahren Ahimsa