| Subcribe via RSS

I voted, did you?

June 20th, 2009 | No Comments | Posted in Gnome, Technologie

Friendly reminder: the days left to vote to select foundation board members are running down!

Make it happen here: http://foundation.gnome.org/vote/vote.php?id=13

Photo (cc) by caribb: a typical sight during elections in Montréal, Québec.

It is my first participation in a such an online election, non national election.  Of course I am exited to be part of it.  Unfortunately, electronic voting makes a quite boring “Election’s night”.   I am used to the 3 or 4 hours of febrile waiting before the people’s choices are announced.  Where are the exit polls? :-)

Geolocation in Empathy: now real

June 15th, 2009 | 14 Comments | Posted in Gnome, OpenStreetMap, Technologie, libchamplain

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!

Introducing geoclue-properties

June 8th, 2009 | 9 Comments | Posted in Gnome, Maemo, Technologie

While deploying Geoclue with friends, I came to the conclusion that we need a GUI tool for end users to setup Geoclue.  Geoclue-properties was born.  gstreamer-properties was an inspiration (for the name, and part of the visual aspect).

I started the project only last Monday night, but you can already do this with it:

  • See your current address and postion according to Geoclue
  • List installed providers and their provided services
  • Set an address on the Manual provider
  • Set the address for the current network on the Localnet provider
  • List previously configured addresses in the Localnet provider

Just the last items save the user of having to use dbus-send incantations.   For the screenshot lovers, here’s your dose.

The project is still quite embryonic.  It is my first attempt at using Python for such a task and I lack knowledge (and quite frankly time) on how to create the project’s infrastructure (almost as if I am missing autotools — scary!).  If someone is willing to contribute that or point me the doc I’d appreciate!

Try it!

Python’s hidden poisoned apple for GPL applications

May 12th, 2009 | 15 Comments | Posted in Gnome, Maemo, OpenStreetMap, Technologie

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.

libchamplain 0.3 released!

May 4th, 2009 | 3 Comments | Posted in Gnome, Maemo, OpenStreetMap, Technologie, libchamplain

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.

gtk-doc is not listing your properties and signals?

May 3rd, 2009 | 3 Comments | Posted in Gnome, Technologie

I’ve got to share what I just found about gtk-doc.  I’ve been using it for months now to document libchamplain’s API.  It was complex to setup but the result is worth it.  Here is my experience about how to get your properties and signals to show up:

  • Is my_object_get_type listing in the .types file?
  • Is the section correctly identified in your doc and -docs.sgml?
  • And today’s discovery: is your object struct declared as a typedef?

To make that last point explicit:

typedef struct
{
  GObject parent;
} MyObject;

will produce minimalistic documentation while

typedef struct _MyObject MyObject;

struct _MyObject
{
  GObject parent;
};

will produce complete documentation with properties, signals and object hierarchy.

Consider yourself warned! :)

Writing a nice API: comments needed

April 26th, 2009 | 11 Comments | Posted in Gnome, Maemo, Technologie, libchamplain

In the race to the 0.3 development release, we are reviewing the API to see it is nice to use, bindable and most of all intuitive to g* coders.  But sometimes, it is hard to find out how to do it well: comments on this particular issue would be appreciated.

ChamplainView is the map view that displays the map.  It needs a ChamplainMapSource from which it gets the map.  There are specialised objects that inherit from ChamplainMapSource such as ChamplainNetworkMapSource and the upcoming ChamplainLocalMapSource (or what ever it will be named by the end of the SoC).

champlainNetworkMapSource* champlain_network_map_source_new_full (const gchar *name,
    const gchar *license,
    const gchar *license_uri,
    guint min_zoom,
    guint map_zoom,
    guint tile_size,
    ChamplainMapProjection projection,
    const gchar *uri_format);

As you don’t want to fill all this information each time you create a new map source, libchamplain currently provides helper constructions:

ChamplainMapSource * champlain_map_source_new_osm_mapnik (void);
ChamplainMapSource * champlain_map_source_new_osm_cyclemap (void);
ChamplainMapSource * champlain_map_source_new_osm_osmarender (void);
ChamplainMapSource * champlain_map_source_new_oam (void);
ChamplainMapSource * champlain_map_source_new_mff_relief (void);

We think it could be interesting to replace these by a Factory to which you pass an enum value to get the constructed ChamplainMapSource.  You would probably be able to add your own map source constructor (as you can implement your own map sources).  You would probably be able to get the list of available map source too.

The question is: is this overkill? the best way to do it? is there something similar in glib or gtk to get inspired from? We base most of the API decisions by looking at other Gtk+ widgets, but this particular object seems to be a different case.

We are asking for your ideas.

Flashing BIOS without floppy drive, cd-rom and no Windows

April 25th, 2009 | 1 Comment | Posted in Technologie

In this blog post, I’d like to explain how I flashed my BIOS without a floppy drive, a cd-rom or a Microsoft Windows installation so that other users can find quickly how to do it.

First, you need a USB key.

Then, you use unetbootin to flash a copy of FreeDos to your key.  You can use the built-in FreeDos distribution.

Download the BIOS flashing utility from your motherboard manufacturer and put it on the USB key.

Reboot your computer and force it to boot from the USB key.

On the FreeDos boot menu, select Live CD.

At the A:\> prompt, enter b: then Enter.

You will now have access to the files contained on your USB key.  Follow your manufaturer’s recommanded steps to flash your BIOS.

My free (as in beer) trial of last.fm is over

April 22nd, 2009 | 12 Comments | Posted in Arts, Gnome, Technologie

I was working listening to last.fm as every day when suddenly the music stopped and the email notification icon appeared.  “Your free trial to Last.fm Radio is about to end.” said the email.  “It is already over” though I.

Who wants to give me a one-year subscription to last.fm? It is only 27 € (if you pay in US$).  My username is  plbeaudoin. :)

I am also open to suggestion for a free (as in speech) service that works as well as last.fm, has content and has built-in support in apps…

Update: Thanks to Benjamin Podszun for his gift! :) On a site note: last.fm, while I understand that the concept of subscription is new for you, the page describing the status of your subscription is 1) very hidden, 2) lacks details.

libchamplain has got a SoC project

April 20th, 2009 | 3 Comments | Posted in , Gnome, Maemo, OpenStreetMap, libchamplain

There will be a Google Summer of Code project for libchamplain - your Clutter based Map Widget for your Clutter or Gtk+ based applications. This project will be realized by Simon Wenner.  He will be working on getting the map rendered locally (using OpenStreetMap xml data) as opposed to downloading the pre-rendered tiles as libchamplain currently does.  At the end of the summer, libchamplain will support both for best flexibility.

This functionality means a lot of possibilities for libchamplain: better accessibility, smaller bandwidth needs, smaller cache footprint, more context data and finally themable maps.  These can be very useful if you are running on different platforms such as Maemo 5 or a desktop: bigger fonts, more contrast, tango colors!

(oh and by the way, this is the new default markers: more on them in a later post)

Unfortunately, another very interestant SoC idea didn’t make it to selected list: a glib based OSM data API.  That would have made it very useful to access the downloaded data.  But hey, that will be for later!  Thanks to all the students that submitted a project idea on libchamplain :-)