bari - Marco Barisione

Permanent IM notifications

Gnome 3 and the shell look really great, but there are a few things that annoy me. My main complaint is that I keep missing IM messages because there is no visual clue that you got a message (unless you are staring at the bottom of your screen exactly when you receive something).
This problem will probably be fixed in the next version of Gnome, see bug #641723, but I wanted something now. That’s why I wrote a simple extension that just displays the number of conversations with unread messages. To install it, just clone the git repository and execute “make install”.

Spot the difference
Spot the difference

The extension is unpolished, it does very little, the code is horrible and I didn’t pay any attention to usability; I just wanted a quick fix while waiting for upstream to fix the bug properly. Nevertheless, I hope this code will be useful for other people too!

bari - Marco Barisione

Broken GTalk calls

Recently Google updated their XMPP servers to use standard Jingle for audio and video calls; see the “Google: The Future is Jingle” post on xmpp.org for some more details.
This would be good news for us, except that, by doing so, they broke calls in telepathy-gabble (so in Empathy, the N900 and MeeGo) in multiple ways.

Luckily GTalk developers were really cooperative and they agreed on fixing their servers and Will and Olivier already fixed Gabble too. The new version of Gabble (0.12.2 for the stable branch and 0.13.1 for the development one) should make calls work again on the desktop, MeeGo and on Harmattan (i.e. the N9 and N950) too.
For the N900 we don’t have any way to release updates, but Google will push an update to their servers (in the next week or two hopefully) with a N900-specific workaround.

Sadly video calls on the N900 will keep not working; the version of gst-dsp on the N900 doesn’t properly handle changes in the parameters of the stream :(.

Update: just to be clear, this affects only calls from GTalk to gabble. Calls in the other direction still work and calls between two devices of Gabble work too.

bari - Marco Barisione

Folks and QtContacts

At the moment I’m at the MeeGo conference in Dublin, finally finding a bit of time to blog on what I have been working on for the past 2 weeks. The conference is really well organised and the location is a bit unusual but awesome. For me, the best thing about this conference seems to be the possibility of meeting so many people that I know because of GNOME, Collabora and Maemo/MeeGo. Considering that Collabora is now employing several KDE people, this conference is also a good way to meet more KDE developers while awaiting for the Desktop Summit in Berlin.


The Aviva stadium

Nowadays, Empathy uses libfolks to access contacts and to merge multiple contacts (called personas in Folks) into a single “meta-contact” (called individual).
On MeeGo, on the other hand, it seems that QtContacts (part of QtMobility) is the future. QtContacts is just an API and relies on backends for the actual access to contacts, so why not trying to have QtContacts using libfolks? In the last weeks I worked a bit on writing a QtFolks backed for QtContacts and a small demo written in QML to show what the backend can do.

The demo showing some of my XMPP contacts
The demo showing some of my XMPP contacts

Folks doesn’t just want to be a library for IM contacts, but a generic library to access all of your contacts. The next logical step was to add extra backends to access more sources of contacts.
If you use the Facebook XMPP server, you can already have access to Facebook friends and chat with them, but you don’t get all the information that are available through the web API. This is why I modified the Facebook libsocialweb plugin to also access Facebook contacts and added new interfaces to libfolks to expose this information. Moreover, we can rely of the Facebook ID to automatically merge the persona from the Facebook XMPP and the one from the Facebook web API into a single individual.

A contact with multiple IM addresses and information coming from Facebook too
A contact with multiple IM addresses and information coming from Facebook too

guido - Guido Vicino

Anche io sarei potuto diventare un pirata

“..ci sono pirati che violentano le ragazzine. Ci sono ricchi mercanti che vendono armi alle nazioni in cui i bambini non hanno cibo da mangiare. Ci sono proprietari che impiegano bambini come manodopera[..].Quando stiamo in piedi davanti alla montagna,subito prima di Toccare la Terra capiamo di essere non solo bodhisattva ma anche le vittime stesse dell’oppressione e dell’ingiustizia. Noi siamo il pirata che sta per violentare la ragazzina e siamo la ragazzina che sta per essere violentata dal pirata. La famiglia in cui viveva quel pirata viveva nella miseria più nera, suo padre era un pescatore che conosceva un solo mezzo per dimenticare i suoi problemi,la bottiglia;un uomo che non sapeva educare il figlio e lo picchiava spesso.Alla morte del padre poi,aveva continuato il mestiere suo;non aveva rìisorse per comprendere o amare. Il giovane aveva ceduto alla tentazione di diventare un pirata. In mare aperto non c’era la polizia,quindi perchè non seguire l’esempio dei suoi compagni e violentare quella ragazzina,sulla barca che aveva assalito?
Se avessimo avuto un fucile avremmo potuto sparare al giovane e lui sarebbe morto,ma non sarebbe stato meglio insegnargli a comprendere ed amare? Dov’erano i politici,gli educatori che dovevano aiutarlo? Se i bambini non verranno seguiti ed educati adeguatamente,alcuni di loro diverranno pirati. Se io stesso fossi nato in una famiglia povera,se non avessi mai ricevuto un’istruzione,se avessi avuto genitori così anch’io sarei potuto diventare un pirata.”
Thich Nhat Hanh – Il segreto della pace

bari - Marco Barisione

Feature complete custom ringtones

I finally released a version of “Custom ringtones for your contacts” that implements every basic feature I wanted to have for a first stable version, so I think it deserves being called 1.0 :).
Apart from some bug fixes, this new version is translatable and allow you to set a ringtone for callers with a hidden phone number and for contacts not in your address book. The new settings are available from the address book settings dialog.

The settings dialog with the extra ringtone buttons
The settings dialog with the extra ringtone buttons

For now there is only an Italian translation, but any help to get more is appreciated. Don’t worry, there are just 8 strings to translate!
To propose a new translation just go to the Transifex component page, download the .pot source file, add the translations to it, login to Transifex, and upload the file by pressing “Add a new translation” and setting as target file “po/XX.po” (where “XX” it the language code, for instance “fi” for Finnish, “de” for German, etc.). If you don’t know how to use gettext translation files I suggest using Poedit or gtranslator.

The custom ringtones application is now available both from extras-testing and from my personal repository:

Install per-contact-ringtones
Install from my personal repository
(follow the link on the N900 browser)

Update: I released version 1.0.1 containing some new translations: German (by NightShift79), French (by Alban Crequy), Brazilian Portuguese (by Humberto Sgrott Reis) and Swedish (by Andreas Henriksson). I will add more when I receive more.

Update 2: I released version 1.0.2 containing a crasher fix and some new translations: Albanian (by Ilir Gjika), Dutch (by Daniel Holsboer) and Spanish (by Fernando Borrego Polo).

Update 3: I released version 1.0.3 containing some new translations: Russian (by Misha Ketslah), Norwegian (by Stian Husemoen), Korean (by KwangHee Cho), Czech (by Pavel Fric), Hungrarian (by Balázs Bárány) and Romanian (by Bogdan Vernescu).

guido - Guido Vicino

Morte di un Cool-er Ereader

COOL-ER ereader

Qualche giorno fa si è rotto il mio primo lettore di EBook dopo circa due mesi scarsi di vita. Il lettore in questione era un COOL-ER Ereader. Lo schermo a tecnologia E-ink si è dimostrato non all’altezza di un pendolarismo selvaggio tipico della mia attività… I pregi e difetti del defunto sono erano i seguenti:

Pro:

  • Economico (269 €).
  • Ottima leggibilità.
  • Supportava molti formati elettronici (in due mesi ho letto 2 PDF ed 1 Epub.

Contro:

  • Fragilissimo e fatto della stessa plastica dell’ovetto Kinder
    (si è rotto tenendo nella borsa porta computer interna tra una cartellina e dei fogli).
  • La ditta che lo produceva è andata in liquidazione.
  • L’attacco per le cuffie non è quello standard (anche se dentro ne trovate un paio.

Il mio problema attuale è se vale la pena comprarne un altro o meno (ovviamente di un’altra marca). Cosa fare?

bari - Marco Barisione

Ringtoned 0.2.4 (now with vibration!)

I just released ringtoned 0.2.4 with a fix to make the N900 able to vibrate again when a call is received.
Ringtoned (displayed in the application manager as “Custom ringtones for your contacts”) is available from extras-devel (that contains a lot of other unstable software!) or from my personal repository:

Install per-contact-ringtones
Install from my personal repository
(follow the link on the N900 browser)

This release fixes the last major reproducible bugs, but I’m sure there are more. If you find any please report them in the bugzilla explaining clearly what you are doing, what you would expect to happen and what happens instead. A log attached to the bugzilla entry is very useful to understand what is going on, and can be easily created by opening a terminal and giving this command:

ringtonedctl -d stop startwait > /home/user/MyDocs/ringtoned.log 2>&1

Then attach the ringtoned.log file that is in your documents directory to the bug report.

bari - Marco Barisione

Ringtoned 0.2.1

The Fremantle daemon that decodes ringtones seems to have a bug that, in some cases, makes it produce wave files with an invalid size in them. These files cannot be played by libcanberra, so it meant that some ringtones couldn’t be played when you receive a phone call. I just released ringtoned 0.2.1 with a work around for the bug, please let me know if this version works better for you.

Anyway, I got a new component in the Meamo Bugzilla for ringtoned, so please report bugs there.

Update 2: I released ringtoned 0.2.2 that just adds some more debugging info to make my life easier.

bari - Marco Barisione

Faster custom ringtones

Several people complained that my custom ringtones application is too slow when receiving calls, so I started analysing what ringtoned does when a new call is received. The three main operations in this case are creating the object that represents a call after retrieving all the needed information (caller ID, etc.) from Telepathy, looking up the contact that matches the caller and playing the ringtone.
The Telepathy bit just needed to be slightly smarter, but was already quite fast. The contact look up was already very fast, unless you have so many contacts to make your address book unusable.
The code that needed more optimisation was the one that plays ringtones. It turned out that using GStreamer with playbin2 (the element able to detect and play all the supported file types) is not fast enough for this use case. I tried different approaches and in the end I decided to always use uncompressed wave files and stream them directly to PulseAudio.[1]
Note that GStreamer is not the best solution just in this very specific case, for all the other use cases GStreamer is still the best solution.

After these changes I was really expecting to get very good performances, but it was still quite slow. My analysis was showing that, since when ringtoned gets notified from Telepathy of the existence of a new call to when it starts streaming to PulseAudio, less than 0.1 seconds passes, so why was it still slow?
At this point I tried using bustle to generate graphs of the D-Bus activity when a call is received. The graphs showed that the delay was not ringtoned’s fault, but a bug in Maemo causing a freeze that made the dispatching of new calls about 4 seconds slower when ringtoned was running. Somebody is now working on the bug and trying to figure out why it’s happening, in the meantime I’m working around it watching for new calls in a different way.[2]

Ringtoned and the related packages are available in Maemo extras-devel under the name “Custom ringtones for your contacts”. If you don’t want to add the extras-devel repository (as it contains a lot of unstable software, you have been warned!), you can download ringtoned directly from my personal repository:

Install per-contact-ringtones
Install from my personal repository
(follow the link on the N900 browser)

The only known big problem left is that ringtoned breaks vibration, I will fix it in the next days/week.

Update: It looks like MyContacts is incompatible with ringtoned, so you cannot use these two programs together.

[1] The file is uncompressed in background, so you can still use any type of file for ringtones. Just notice that, when you update from a previous version, the first time you receive a call from a contact that already had a custom ringtone you will get the default ringtone and not the custom one as previous versions were not generating the uncompressed file.
[2] For people interested in Telepathy: the freeze happens if there is an observer running, even if at that point the dispatching to observers didn’t start yet! The (ugly, but effective) solution was to just listens to the NewChannels signal directly. When the Maemo bug will be fixed I will revert my code to use an observer.

bari - Marco Barisione

Disappearing plugins

If you have any application that adds buttons to the address book (like the contacts merger), you could have noticed that the buttons recently disappeared. This happened because of a bug in Monorail, the IM file transfer application.
Alban already fixed this bug and uploaded a new version to extras-devel. This new version also fixes other bugs, including a crash caused by the sharing plugin in Conboy.

Update: Note that you need to reboot or kill osso-addressbook after updating monorail to see the plugins again.

bari - Marco Barisione

Custom ringtones for your contacts

Yesterday I finished implementing the first release of a new program (ringtoned, i.e. ringtone daemon, i.e. I don’t have any imagination for program names) that allows setting a custom ringtone for specific contacts. Ringtoned tries to integrate nicely with the system:

  • You can select the default ringtone in Settings → Profiles as usual
  • To set a custom ringtone you go to the Contacts application, select the contact and press the new “Set custom ringtone” button in the menu
  • The dialog to set custom ringtones tries to be a perfect copy of the dialog to set the global ringtone
  • It works both for normal phone calls and GTalk/SIP/Skype calls, thanks to Telepathy
  • The ringtone is played only when the normal one would be played and at the same volume, thanks to some PulseAudio magic

Ringtoned also tries not to break your phone, if for any reasons it crashes the default behaviour should be restored. Nevertheless, this is just version 0.1, so it could be full of bugs and could make you miss phone calls. You have been warned! Moreover, replacing the default ringtone components with something more complex could make the ringtone start slightly later in case of heavy load, see my previous blog post. You have been warned again!

If you still want to give it a try, ringtoned is now in Maemo extras-devel under the name “Custom ringtones for your contacts”. If you don’t want to add the extras-devel repository (as it contains a lot of unstable software), you can download ringtoned directly from my personal repository:

Install per-contact-ringtones
Install from my personal repository
(follow the link on the N900 browser)

If you are interested in the source code, it’s in Collabora’s git repositories.

The are two major features that are missing at the moment: the ability to set a custom ringtone for anonymous phone calls and for calls from an unknown number, and the ability to set ringtones for groups and not only for single contacts. The former feature should be easy and it mainly just requires some UI, so it will be hopefully implemented shortly.
Groups are more difficult to implement because they are not supported at all by the Maemo address book; I would first have to implement support for groups and then add ringtones for the groups. I hope to be able to find time for this, but I cannot guarantee anything.

In a future post I will explain the architecture of ringtoned and how to extend it: the code that chooses the custom ringtone is actually just a small plugin of the ringtone daemon and it’s possible to write other similar plugins for different needs.

bari - Marco Barisione

How hard can it be? (Or why you don’t have custom per contact ringtones on Maemo)

Often in blogs, forums or IRC you can find people complaining of missing features in some programs (and some of them are very rude). While they can be right sometimes, other times they just make me angry because they don’t know how difficult writing software can be, and they don’t understand the difference between a semi-working prototype and a proper stable application written by professional developers, designed by professional UI designers and tested by professional testers.

Implementing some features can actually be quite difficult and it could be better to skip those from your product and focus on other things; on the N900 one of these missing features is the ability to set customised ringtones for specific contacts.
Several people wondered how hard it can be, after all a lot of old phones do it. What they don’t consider is that, in many ways, the N900 is not a traditional phone and is more similar to a small computer. On the other hand, the N900 still needs to be reliable to be certified as a phone; for ringtones this means that the ringtone should be played as soon as the phone call is received, or the user could miss it.
Now suppose your N900 is under heavy load due to multitasking (real multitasking, like on a normal computer) and you receive a phone call from a friend; being a close friend that often calls you, you have an MP3 ringtone set just for him. The phone has to look up for the contact corresponding to the phone number, load the file from the (slow) memory card, load the libraries for playing the ringtone, uncompress the file, and finally play it. All of this on a phone under heavy load with most programs swapped out of memory!
To workaround this problem the N900 seems to do some tricks: the ringtone is uncompressed into a (big) WAV file and saved on the faster (but small) internal memory, and the component playing the ringtone is memlocked (i.e. never removed from memory). Of course, you cannot do this for all the possible ringtones or the already small disk space would be used immediately. Choosing not to uncompress the files, on the other hand, would mean keeping loaded in memory all the possible codecs.

Does this mean that it’s impossible to have a different ringtone for a specific contact on Maemo? No, it just means that if you want it you have to be ready to accept that the ringtone could start playing a couple of seconds later in some uncommon heavy load conditions. When you are ready to do that you just have to wait a couple of days, so that I can polish and publish the program I wrote to have custom ringtones :D

In other news, I’m going to GUADEC for the whole week: see you there!

I'm going to GUADEC

pierlux - Pierre-Luc Beaudoin

Wikipedia Path extension for my browser?

Dear Lazyweb,

On this partly-cloudy day of April, I’ve thrown myself at Wikipedia seeking mercy upon my insatiable need to know more about diverse subjects such as the International Phonetic Alphabet.  But, as with any visit to Wikipedia, I ended up reading about even more diverse subjects such as the Mortgage word (from Law French), the Arabic loanword Orange and the Merovingian dynasty.

This was all great to read upon (thanks Wikipedians!).  But I’d like an easy way to find my way back to the original piece.  I’d like a nice Firefox extension to draw for me the threads of articles I’ve read.  Each time I’d open a new tab it would create a new branch from this article.  When an article links to an already open tab, it should be identified with a dashed line.

I’ve drawn an example of what it could look like (click for more details):

My path through Wikipedia today

So please, tell me someone already wrote that piece of software? (It took me quite too long to draw this funny diagram).

Regards,

Pierre-Luc

NB: An attentive reader will realize that I like reading on History, Languages and History of Languages.

pierlux - Pierre-Luc Beaudoin

Comment mettre fin aux invitations et pourriels

Malos humos, el / Bad Fumes, Him

Malos humos, el / Bad Fumes, Him. CC By-NC Heart Industry

Voici quelques petits trucs pour savoir si un groupe/chaîne de lettres est illégitime (comme “10 voitures OFFERTES à 10 membres FACEBOOK”):

  1. Si le titre inclus des mots en majuscule;
  2. Si on y parle de faire de gros cadeaux mais qu’on en a pas entendu parlé dans les nouvelles;
  3. Si tout ce qu’on doit faire pour participer est ridiculement simple (joindre un groupe, envoyer à tous tes amis); en plus au Québec, il faudrait répondre à une question d’habileté mathématique ;-)
  4. S’il est impossible de corroborer l’information (ça veut dire de trouver d’autres sources d’information qui confirme les faits);
  5. S’il est impossible de trouver les règlements officiels du concours;
  6. Si vous n’avez pas été contacté directement pour ce concours: les gens de chez Facebook et MSN savent encore comment contacter leurs utilisateurs.

Merci d’appliquer ses règles simples avant de m’envoyer invitations/chaînes de lettres et autres choses qui pollue la vie en ligne.

pierlux - Pierre-Luc Beaudoin

The rumors of our extinction have been greatly exaggerated

This is a public announcement to everyone who have seen the opening and closing ceremonies of the 2010 Winter Olympics in Vancouver: Canada is still inhabited by French speakers.

Despite all the criticism the Vancouver Organizing Committee received after the opening ceremonies, little changed in the closing one.  Yes, the VANOC’s CEO made an effort to speak in French but that’s about the only change you could see.  That and the fact that Canada’s Olympic Broadcast Media Consortium added a live translator on French TV so that the less “fortunate” can understand the ceremonies in their own country.

Would have it been too much to ask for one of the monologues to have been in French? After all, I am sure there are Francophones outside Québec ready to do such a creed for Canada.  They probably just didn’t try to find one but I personally believe finding one could also have been a hard job, considering that doing such a creed, even if it’s a caricature, could mean professional suicide for a Québec comedian in Québec’s French market (where such creeds on any side isn’t popular these days).

In short, we still exist.  What you have witnessed is a sad image for a country with 2 official languages.  It is reminiscent of old English-French frictions which we all would like to believe were long gone.  As it has been pointed out on this blog (a post worth reading) and in the professional press (in French!), denying French Canadians such visibility has done more for the sovereignty movement of Québec than the current leaders of the movement themselves. And that’s quite a job, considering the health of the movement at the moment (the leading party not being the ruling government for 7 years now).

This is also reminiscent of West-East frictions.  The (mostly English) West feels bilingualism is being wrongly imposed on them. They feel too much power is given to the central provinces (where 60 % of the population lives).  They probably also feel (rightfully) they are paying for our social wealth services considering the thriving west economy of tar sands and, I have to admit, their just efficient administrations.  Those frictions may never disappear, after all British Colombia was almost part of the United States of America if it were not of the Canadian rails built in 1870s.  My point of view on the subject is that parts of Canada and United States are being unnecessarily separated on political reasons.  Vancouver’s economy is probably more active with Seattle’s than the rest of Canada.  The same applies with the province of Québec and state of New York.  Politically enforcing an horizontal relationship where the natural flow of business is vertical.  This argument has been mentioned in the latest High Speed Trains plans of Québec–Windsor and Montréal–New York.  I am going to stop here but this could lead to interesting debates on history and politics. :)

In conclusion, just don’t forget we still exist.  We have a thriving musical culture (among other) as you can see here, here, here and here (my personal favourite local artists these years).  Its absence from the Olympics is an anecdotal abnormality.

pierlux - Pierre-Luc Beaudoin

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!

pierlux - Pierre-Luc Beaudoin

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)

pierlux - Pierre-Luc Beaudoin

J’ai invité Clutter pour Noël

C’est maintenant une tradition établie pour les réveillons de Noël du côté de ma mère: on se rassemble tous pour un bon repas de mets traditionnels, on échange les cadeaux et on joue à un jeu. Mais pas n’importe quel jeu, un jeu fait maison créé pour cette occasion unique. Par exemple, ces 2 dernières années nous avons joué à une version de Serpent et échelles géante et une adaptation du Banquier.

Le jeu de Serpents et échelles de 2008 (notez que l'échelle fait 20 cm!)

Le jeu de Serpents et échelles de 2008 (notez que l'échelle fait 20 cm!)

Mais 2009 était une année spéciale, j’allais être l’hôte du réveillon. J’allais avoir à bâtir un jeu pour l’occasion. Ma mère est créative et aime bricoler mais ce n’est pas tant mon cas. J’ai donc décidé de créer un jeu à l’ordinateur. Noël de fortune était né.

Écran de démarrage du jeu

Écran de démarrage du jeu

Après consultation avec mon cohôte, nous avons établi les règles de base du jeu: ce serait un jeu avec tours où chaque joueur doit deviner une expression. Le joueur pourra nommer des lettres et elles seront révélées dans l’expression. Si la lettre n’est pas dans l’expression, il perd un point et c’est au prochain joueur de jouer. Le joueur peut également essayer de résoudre, mais s’il échoue il perdra 5 points. Chaque joueur a sa propre expression à deviner. Lorsqu’un joueur trouve son expression, il a droit à un cadeau. Il y aura 3 manches. Pour aider les joueurs, l’alphabet sera affiché en haut de l’écran et les lettres déjà nommées seront identifiées pendant la première manche, seulement les lettres nommées seront affichées pendant la 2e manche alors que rien ne sera affiché pour la dernière manche. C’est une augmentation du niveau de difficulté. Le joueur qui aura trouvé ses expressions avec le moins d’essais aura un cadeau supplémentaire à la fin du jeu. Ces règles vous rappellent peut-être La roue de fortune ou le bonhomme pendu.

Pendant le jeu

Pendant le jeu

Nous avons trouvé plus de 400 expressions pour le jeu afin que nous puissions prendre part au jeu avec toute la famille. Il y a eu 3 thèmes, un par manche: Noël, Chose à faire, Personnalités connues. Sans surprise, le premier thème a été très facile mais les 2 derniers plus difficiles.

Pour créer le jeu, j’ai décidé d’y aller avec Python puisque je voulais un langage de programmation avec des structures de base de haut niveau comme des ensembles, listes et dictionnaires. Ces dernières se sont avérées très utiles pour l’implémentation. Un jeu doit être excitant visuellement et puisque je m’y connais déjà en Clutter, ça aurait été un choix qui va de soi. Le graphisme est plutôt simple: tout est une image (à l’exception du texte!) qui est animée avec Clutter. Lorsqu’un joueur nomme une lettre, toutes les cartes sont animées comme si quelque chose passait sous elles et elles tournent si la lettre correspond. Un son magique est aussi entendu! S’il y a une erreur (lettre déjà nommée, lettre pas dans le mot), une boîte de dialogue s’affiche. Lorsque la manche est terminée, le pointage est affiché tel un diagramme à bandes qui s’affichent une à une (pour ajouter de la tension).

L'écran de solution

L'écran de solution

L'écran de solution erronée

L'écran de solution erronée

L'écran de pointage (données simulées ;-)

L'écran de pointage (données simulées ;-)

<video controls="true" src="http://blog.pierlux.com/wp-content/uploads/2010/01/cards.ogg">
[Oups votre navigateur ne supporte pas le tag Vidéo!] Téléchargez le vidéo ici!
</video>

Cela m’aura pris bien au delà de 80 heures pour créer le jeu. En tout et partout, ça aura été un grand succès :) Nos invités l’ont trouvé original et la partie a duré des heures.

Gabriel explique les règles. Vous pouvez voir les cadeaux dans les bibliothèques.

Gabriel explique les règles. Vous pouvez voir les cadeaux dans les bibliothèques.

Je ne rendrai pas le code de ce jeu libre. Pour être franc, le code n’est pas exemplaire: c’était mon premier jeu, ma première application Python à partir de rien et à la fin, je ne faisais que corriger bêtement les bugs sans corriger les problèmes de fond. Mais bon, il fonctionne. Je suis sûr qu’il y a des applications fermées pire que ça.

La plupart des images proviennent d’images disponibles sous licence Creative Commons comme le fond d’écran. Malheureusement, j’ai mal fait mon travail et je n’ai pas gardé le nom de l’auteur ou le lien de la page où j’ai trouvé les bordures utilisées partout dans le jeu. Si vous le trouvez, je le lierai!

Ah! En passant, puisque ma mère avait beaucoup de temps libre (n’ayant pas à créer un jeu cette année), elle s’est investie dans l’emballage des cadeaux. Avez-vous déjà reçu un cadeau emballé comme une bûche de Noël? ou dans le tambourin de l’enfant au tambour? :)

Mon cadeau était emballé à la manière d'une bûche de Noël.  Je l'ai mérité pour avoir trouvé le mot Ragoût de boulettes.

Mon cadeau était emballé à la manière d'une bûche de Noël. Je l'ai mérité pour avoir trouvé le mot Ragoût de boulettes.

pierlux - Pierre-Luc Beaudoin

I invited Clutter for Christmas

It’s now an established tradition at my mother’s Christmas Eve party, we all gather for a good meal, exchange gifts and then play a game. Not any game, an home made game built for this occasion only. For example, in the last 2 years, we played a giant Snakes and ladders game on my mom’s wall and an adaptation of Deal or No Deal. During the game, each player wins little gifts. Usually the games include special rules so that everyone finishes with the same amount of gifts.

The Snakes and Lader game of 2008

The Snakes and Ladders game of 2008 (the ladder is 20 cm long)

But 2009 was special. I was going to host the party. I was going to be the one to build a game for this occasion. My mother is creative and resourceful when comes the time to use whatever materials are at hand, but I am not. I decided to build a computer game instead! Noël de fortune was born.

Splash Screen of the game

Splash screen of the game

After consulting with my co-host, we elaborated the basic rules of the game: a turn-based game where players have to guess an expression. They would be able to give letters that would then be revealed. If the letter is not in the expression, the player loses one point and it is then to the next player to play. The players can try to solve but if they fail it costs them 5 points. Each player have their own expression to find. When he finds his expression, he wins a gift. There should be 3 rounds. To help the players, during the first round the whole alphabet is displayed with the letters he already said highlighted. During the second round, only the given letters are displayed, and nothing during the last round. It makes it harder :) The player who finds his expression with the less tries wins an extra gift at the end of the game. These rules probably remind you of The Wheel of Fortune without the wheel, or of Hangman.

During the game

During the game

We built a list of 400 possible expressions for the game so that we could also play with everyone. There were 3 themes, one per round: Christmas, Things to do and Famous People. Not unexpectedly, the first theme was quite easy to guess, but the 2 others were more challenging.

To create the game, I decided to go with Python as I wanted to have a language with rich built-in types such as lists, sets and dictionaries. They came handy in the implementation. A game has to be exciting to the eye and considering I already had a fair amount of experience with Clutter, it was an obvious choice. The graphics are simple: everything is an image (except text!) and is animated using Clutter. When the player says a letter, all the cards bounce as if something passed under to read them and they turn around if the letter matches. A nice magic sound is played out. There are error dialogs (the letter was previously given or the letter is not found) and solution dialogs too! When the turn is over, the score is displayed using vertical bars that show up one by one (adding a little stress hehe).

The solution dialog

The solution dialog

The bad solution dialog

The bad solution dialog

The points screen

The score screen (not actual game scores ;-)

<video controls="true" src="http://blog.pierlux.com/wp-content/uploads/2010/01/cards.ogg">
[Oops, your browser does not support the video tag!] Download the video instead!
</video>

It took quite over 80 hours to create the game. Overall, it was a great success :) Our guests liked it and fun lasted for hours!

Gabriel explaining the rules

Gabriel explaining the rules. You can see all the gifts surrounding the LCD screen.

I will not be releasing the game. Quite honestly, the code is a mess: it was my first game, my first Python application from scratch and in the end I was just fixing bugs without fixing core issues. But hey it works: I am sure there are worst proprietary apps out there :)

Some of the graphics are composed of images available under Creative Common such as the background. Unfortunately, I did a lazy job keeping track of my sources and I lost the link/name of the author of the nice graphics I used. If you find it, I’ll link it!

Oh by the way, since my mom got her hands free of creating a game, she invested herself in the packaging of the gifts. Has anyone of your ever received a gift wrapped like a Bûche de Noël or a drummer boy’s drum? :)

My gift was wrapped like a Bûche de Noël. I won this gift by finding the word "meat ball stew".

pierlux - Pierre-Luc Beaudoin

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

pierlux - Pierre-Luc Beaudoin

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!

pierlux - Pierre-Luc Beaudoin

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.

bari - Marco Barisione

Essere inglesi

Mettersi a litigare all’una e mezza di notte per decidere se la fila per i taxi deve andare da sinistra verso destra o da destra verso sinista.

pierlux - Pierre-Luc Beaudoin

Complainte funéraire pour la pomme

Ici se trouvait une pomme
Ici se dressait la table
Là était la maison
Là était la ville
Ici gît le pays

Cette pomme là
C'est la terre
Un bel astre
Sur lequel il y eût des pommes
Et des mangeurs de pommes

Traduction libre de “Nänie auf den Apfel” de Hans Magnus Enzensberger

pierlux - Pierre-Luc Beaudoin

Lancement de l’Agenda du libre du Québec

Une nouvelle ressource en ligne pour la communauté de l’informatique libre du Québec est ouverte au public aujourd’hui: l’Agenda du libre du Québec. Ce site gratuit vise à rassembler en un seul point tous les évènements du Québec portant sur l’informatique libre: des InstallFest aux conférences, en passant par les Mapping Party d’OpenStreetMap.

Le site est très simple à utiliser.  Dès l’arrivée sur le site, le visiteur voit les évènements du mois en cours dans un calendrier.  Il peut ensuite le filtrer pour sa région administrative ou passer à un autre mois.  Il ne verra alors que les événements pour sa région et les événements à portée nationale ou internationale ayant lieu au Québec.

L’Agenda du libre du Québec est aussi un service de calendrier en ligne.  Les visiteurs peuvent exporter les événements vers leur application de calendrier favorite (via l’un des fils WebCal) ou leur application de nouvelles (via l’un des fils RSS).

Le contenu de l’Agenda est contribué par la communauté et est modéré selon les règles suivantes: les événements doivent porter sur un projet libre (c’est-à-dire avec une license acceptée par l’Open Source Initiative ou Creative Commons). Le contenu de l’Agenda grandira au fur et à mesure où les événements y seront ajoutés par les membres actifs de la communauté.

L’Agenda du libre du Québec est une réimplémentation légitime de L’Agenda du Libre (France).  Comme cette dernière, le code source, le texte et le design de la version québécoise est entièrement disponible, en faisait un exemple de logiciel libre.

pierlux - Pierre-Luc Beaudoin

De l’anglais au CÉGEP: encore un peu plus SVP

Le débat est relancé de plus belle au Québec sur l’obligation de forcer le peuple à faire une partie de ces études supérieures en français.  Rappelons qu’au Québec, il est obligatoire pour un francophone de naissances et les nouveaux arrivants (allophones) de fréquenter l’école jusqu’à la fin du secondaire en français si celle-ci est financé par l’État, pour les autres (les anglophones de souche), ils peuvent fréquenter l’école de leur choix.  Cette démarche vise à éviter une assimilation du Québec vers l’anglais par “noyade” d’immigrant parlant anglais, tout en protégeant le droit des minorités existantes. Pour les Européens qui lisent ce billet, le CÉGEP est un collège qui offre des diplômes techniques ou pré-universitaires.

D’après les statistiques qu’on voit à gauche et à droite, seulement 4 % des citoyens francophones de souche décident d’aller étudier de plein gré dans un CÉGEP anglophone alors que cette proportion grimpe à 50 % chez les allophones.  Le débat médiatique ces jours-ci semble toujours autour de cette dernière statistiques.  Certaines gens voudraient ces 4 % et 50 % forcé de choisir un CÉGEP francophone, certains vont même jusqu’à imposer l’université en français!

Je suis d’avis que forcer les gens à continuer une partie ou toutes leurs études en français n’est pas la solution. Si les jeunes choisissent d’aller étudier en anglais, c’est pour connaître la langue des affaire et de voyage internationale. Après tout, ils maîtrisent certainement assez bien le français après 11 ans d’école primaire et secondaire.  Il faut protéger cette liberté pour les francophones qui désirent parfaire leur connaissances linguistiques de manière pratique en étudiant en anglais.  Si nous les forçons à aller ailleurs pour faire cela, nous contribuerons à l’exode des cerveaux.

Je crois qu’il serait plutôt beaucoup plus efficace d’améliorer l’offre et la qualité des cours d’anglais au CÉGEP et au secondaire.  Après tout, si ces cours menaient à une meilleure maîtrise de la langue de Shakespeare, nous ne ressentirions pas le besoin d’étudier dans cette langue.  J’ai fait toute mes études dans le réseau francophones.  De par mes résultats supérieurs en anglais, j’ai toujours été classé dans les classes avancées au secondaire comme au CÉGEP, mais je crois que ces classes avancées ne l’étaient pas encore assez!  Il faut que la barre soit remontée pour tous.

Je pense qu’on regarde ce problème-qui-n’en-est-pas-un du mauvais angle.  À l’observation “plusieurs gens décident de faire leur études supérieures en anglais” certains pensent “forçons-les a les faire en français”, je pense “offrons de meilleurs cours d’anglais et ils changeront d’avis”.

pierlux - Pierre-Luc Beaudoin

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.

pierlux - Pierre-Luc Beaudoin

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.

pierlux - Pierre-Luc Beaudoin

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.

pierlux - Pierre-Luc Beaudoin

Looking for a tool to draw pipe networks

Dear knowledgeable(lazy)web,

I have a friend who’s looking for a free software application to draw pipeline networks using the Piping and Instrumentation Diagram Standard Notation such as this example:

He didn’t find any and resorted to draw each possible elements in svgs he later intend to import as symbols in Dia.  Does such a thing already exist? or is there another specialized tool that comes with such symbols?

Answer in comments to this post. Thanks!

pierlux - Pierre-Luc Beaudoin

Trying GnuCash

When I realized Gnome Bugzilla passed the 600 000th bug mark, I went to see which project got the “honours”.  Turns out GnuCash is the big winner!   I had never started GnuCash before and I though it was a good moment to try it!

First of all, the learning curve is high.  That’s to be expected, after all GnuCash is a complete accounting application. While the UI is quite simple and lean, there’s terminology and procedures to learn. That where the documentation comes handy.

The documentation covers many topics: terminology, accounting principles and howtos for many specific uses.  In about 2 hours, I was setup: I had setup my accounts (based on their very well localized presets: it even included Québec’s taxes and perceptions accounts), I had imported transactions from my bank account and credit cards.  Now if only Desjardins also provided retirement savings (RRSP) details in a computer readable format beside their brochure PDFs… I’ll have to wait ’till I get my detailed printed report (once every 3 months) before I can manually enter the data in GnuCash.

All in all, I’d like to kudo the GnuCash contributors.  Somehow I didn’t expect so much polish on a 12 years old application (and don’t get me wrong, but sometimes apps get stuck in time).  The ledger view comes with handy keyboard shortcuts designed to speed up data entry and I like it. Custom reports? that even more awesome.

I’ll submit some localization bugs (or request a fr_CA version) because somehow it looks like French and Québécois accountants didn’t agree on all the words (ie. conciliation).

guido - Guido Vicino

Webmin

Webmin

Webmin is a web-based system configuration tool for OpenSolaris, Linux and other Unix-like systems, although recent versions can also be installed and run on Windows.

guido - Guido Vicino

Danziger – The People are still behind me

Danziger - The People are still behind me

Danziger,

from Los Angeles Times (Unknow number…let me know which if you know.)

pierlux - Pierre-Luc Beaudoin

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.

pierlux - Pierre-Luc Beaudoin

Just arrived in Boston

I just arrived in Boston in time for the Boston Gnome Summit.  The trip down to Boston with Greyhound was less than wonderful, and to think I was complaining about Orléans Express’ service between Montréal and Québec city!  Comparing Greyhound to German trains would be comparing chaos to order.  We only had a lunch pause because we were offered one when we changed driver and we were not supposed to change driver… That would have been a very long 8 hours bus ride!

At least the hotel we are staying at this year is in a more lively part of the city :) See you tomorrow!

guido - Guido Vicino

The Modern Day Shugyosha

IT Consultant – The Modern Day Shugyosha

…ho sempre avuto il dubbio che Reply avesse il potere di chiedermi l’Harakiri!

guido - Guido Vicino

Memo sull’Impermanenza

<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/pgYA2c5iyzs&amp;hl=it&amp;fs=1&amp;"/><param name="allowFullScreen" value="true"/><param name="allowscriptaccess" value="always"/><embed allowfullscreen="true" allowscriptaccess="always" height="344" src="http://www.youtube.com/v/pgYA2c5iyzs&amp;hl=it&amp;fs=1&amp;" type="application/x-shockwave-flash" width="425"></embed></object>

…un bel memo sull’impermanenza.

guido - Guido Vicino

Umberto Veronesi

« L’umanità rischia un effetto a catena distruttivo: esaurimento di energia, di acqua potabile, di alimenti base per soddisfare consumismi alimentari errati. In Cina e in India è aumentato il consumo di carne, così come non si ferma in Occidente. I conti non tornano. Sei miliardi di abitanti, tre miliardi di bovini da macello (ogni chilo di carne brucia 20 mila litri d’acqua), 15 miliardi di volatili da alimentazione, produzione di combustibili dai cereali. Tra un po’ non ci sarà più cibo. Grano, soia, riso, mais costano sempre di più e vanno a ingrassare gli animali da allevamento. Dobbiamo fermarci ora. Primo passo: diventare vegetariani, o quasi. »

Umberto Veronesi, (citato in Corriere della sera, 20 maggio 2008, p.9)

guido - Guido Vicino

L’ospite molesto

”Non ti aspettavo”! E chi se lo aspetterebbe? Le fulgide e meritate proiezioni verso un futuro coltivato e sperato accompagnano giustamente le ore giovanili di ogni essere dotato di progettualità e passione: eppure Alda porta con sé, da epoche in cui non sospetta lontanamente la visita di quel futuro “Ospite molesto”, già l’avvisaglia di una Natura matrigna. Un preannuncio che la renderà forte inconsciamente “pronta” in vista dell’arrivo di un “mostro strisciante” il cui nome dovrà imparare a pronunciare e ad accettare: “Sclerosi Multipla”.

Michele Nigro

Riguardo al libro “L’ospite molesto” di Alda Visconti Tosco pubblicato da ENNEPILIBRI.

guido - Guido Vicino

MIT: il global warming sarà peggiore del previsto

MIT: il global warming sarà peggiore del previsto

bari - Marco Barisione

Uova in cocotte agli asparagi

Uova in Cocotte agli Asparagi

Ingredienti:

  • 25 asparagi circa
  • 100 g di stracchino
  • 4 uova
  • 4 cucchiai di panna
  • parmigiano reggiano
  • sale
  • pepe

Dose per 4 persone

Lavate gli asparagi, rimuovete la parte bianca e dura e cuocete in acqua bollente per 10 minuti. Scolate gli asparagi e tagliateli a pezzetti tenendo da parte qualche punta per la decorazione.
Distribuite sul fondo di 4 stampini monoporzione da soufflé (chiamati ramequin o ramekin) gli asparagi e lo stracchino tagliato a pezzetti. Aggiungete un pizzico di sale.
Rompete per uovo in ogni ramequin facendo attenzione a non rompere il rosso. Aggiungete un cucchiaio di panna, un poco di parmigiano reggiano, sale e pepe.
Mettete gli stampini in una pirofila e riempite la pirofila d’acqua bollente fino a raggiungere metà dell’altezza degli stampini. Cuocete in forno preriscaldato a 180˚ C per 15 minuti, le uova devono essere cotte ma il rosso deve rimanere morbido. Rimuovete i ramequin dalla pirofila, asciugate, decorate con le punte d’asparago tenute da parte e servite in tavola.

bari - Marco Barisione

Zuppa di yogurt

Zuppa di Yogurt

Ingredienti:

  • 160 g di riso da minestrone
  • 1 uovo
  • 1 cucchiaio di farina
  • 500 g di yogurt greco
  • 40 g di burro
  • 1 cucchiaio di menta essiccata
  • sale
  • pepe

Dose per 4 persone

L’anno scorso sono stato in Turchia per “lavoro”, quindi nell’ultimo anno ho deciso di sperimentare diversi piatti turchi. Questa zuppa, chiamata Yayla Çorbası, è un po’ strana ma molto buona.

Preparate la zuppa. Portate a ebollizione 450 g di acqua (o se preferite metà brodo e metà acqua), quando bolle aggiungete il riso e cuocete a fuoco basso per 20 minuti.
Nel frattempo amalgamate in una pentola l’uovo con la farina. Aggiungete lo yogurt e 150 g di acqua.
Quando il riso è cotto unitelo con la sua acqua di cottura alla mistura di yogurt. L’aggiunta del riso e acqua calda allo yogurt deve essere lenta e dovete mescolare di continuo per non fare formare grumi causati dal calore.
Mettete la pentola sul fuoco e portate lentamente a ebollizione mescolando di frequente. Lasciate sobbollire per 15 minuti mescolando frequentemente. Quando la zuppa è cotta e densa spegnete il fuoco e regolate di sale e pepe.
Fate sciogliere il burro in un piccolo pentolino. Quando è sciolto aggiungete la menta essiccata e cuocete fino a quando il burro inizia a sfrigolare. Unite metà del burro fuso alla zuppa.
Versate la zuppa in ciotole o piatti fondi e versate sulla zuppa il rimanente burro fuso.

bari - Marco Barisione

Cipollata

Cipollata

Ingredienti:

  • 2 cipolle grosse
  • 3 cucchiai d’olio evo
  • 800 g di pelati a pezzi
  • 4 uova
  • sale
  • pepe
  • pane

Dose per 4 persone

Non è di certo un piatto elegante o raffinato ma sicuramente è molto gustoso e saporito. Nonostante le molte cipolle non risulta pesante da digerire o troppo forte vista la lunga cottura.

Preparate la cipollata. Sbucciate le cipolle e tagliatele a rondelle. In una pentola antiaderente scaldate l’olio, quando è caldo aggiungete le cipolle e soffriggete per 10 minuti a fuoco basso.
Aggiungete un bicchiere di acqua calda e cuocete per altri 15 minuti mescolando di tanto in tanto. Aggiungete acqua se le cipolle si asciugano troppo velocemente.
Aggiungete i pelati e cuocete a fuoco medio-basso per 20-25 minuti mescolando ogni 5 minuti, fino a quando il composto risulterà non troppo liquido. Regolate di sale e pepe.
Aggiungete le uova e amalgamatele bene lasciando cuocere 1 o 2 minuti fino a quando si saranno rapprese.
Servite in piatti fondi con abbondante pane tostato.

bari - Marco Barisione

Tartufata alla bavarese di nutella

Tartufata alla bavarese di nutella

Ingredienti per il disco di cioccolato:

  • 100 g di cioccolato fondente
  • 60 g di riso soffiato

Ingredienti per le torte:

  • 175 g di burro
  • 175 g di zucchero
  • 3 uova
  • 175 g di farina
  • mezza bustina di lievito per dolci
  • estratto di vaniglia

Ingredienti per la bavarese:

  • 250 g latte
  • 4 rossi d’uovo
  • 60 g di zucchero
  • 6 g di gelatina in fogli
  • 300 g di nutella
  • 250 g di panna da montare

Ingredienti per lo sciroppo:

  • 50 g di zucchero
  • 6 cucchiai di rum

Ingredienti per la copertura:

  • 200 g di cioccolato fondente
  • 60 g di glucosio liquido
  • 4 cucchiai di acqua
  • zucchero a velo

Dose per una torta di 20 cm di diametro

Preparate il disco di cioccolato. Appoggiate una tortiera a cerniera su un foglio di carta da forno e disegnate all’interno un cerchio usando una matita. Fate sciogliere il cioccolato fondente a bagnomaria. Quando sciolto aggiungete il riso soffiato e spargete sul foglio di carta da forno all’interno del cerchio che avete disegnato. Mettete in frigo a far solidifare.

Preparate la torta. Preparate le due sponge cake. Quando cotte lasciatele raffreddare su una grata.

Preparate la bavarese. Portate a ebollizione il latte. Nel frattempo lavorate con una frusta i tuorli e lo zucchero fino a ottenere un composto bianco e spumoso. Quando il latte bolle abbassate il fuoco al minimo e aggiungete il composto di uova amalgamandolo velocemente con la frusta. Lasciate sul fuoco per un paio di minuti mescolando di continuo.
Spegnete il fuoco e aggiungete la nutella. Quando questa è amalgamata aggiungete la gelatina precedentemente ammollata in acqua fredda e ben strizzata. Lasciate intiepidire per una decina di minuti.
Montate la panna e amalgamatela delicatamente alla crema con una spatola mescolando dall’alto verso il basso per non smontarla.

Preparate lo sciroppo. Mettete su fuoco basso lo zucchero con 100 g di acqua fino a quando è sciolto completamente. Aggiungete il rum e lasciate intiepidire.

Assemblate la torta Rimuovete la parte ricurva delle sponge cake con un coltello, per la torta useremo solo il fondo. Ovviamente non buttate questo “scarto”, può essere mangiato così com’è oppure può essere tagliato a strisce, messo sul fondo di alcuni coppini e coperto con un cucchiaio di bavarese alla nutella.
Richiudete una delle due tortiere ad anello e mettete un primo strato di torta sul fondo. Aiutandovi con un cucchiaio o un pennello spargete metà dello sciroppo sulla torta.
Versate metà della bavarese alla nutella sulla torta.
Staccate il disco di cioccolato e riso soffiato dalla carta da forno e mettete nella tortiera.
Versate la rimanente bavarese nella tortiera.
Coprite con l’ultimo strato di torta e bagnatelo con lo sciroppo rimasto.
Mettete in frigo a solidificare per qualche ora.

Preparate il cioccolato plastico. Preparate il cioccolato plastico e lasciatelo riposare fino a quando la torta non si sarà solidificata.

Decorate la torta. Togliete la torta dalla tortiera. Stendete il cioccolato plastico in sfoglie sottili, man mano che sono pronte disponetele sulla torta formando delle pieghe. Quando la torta è completamente ricoperta decorate con un poco di zucchero a velo passato attraverso un colino e mettete in frigo fino al momento di servirla.
Vi assicuro che il risultato della torta era molto migliore dal vivo che in foto!

bari - Marco Barisione

Cioccolato plastico

Ingredienti:

  • 50 g di cioccolato fondente
  • 15 g di glucosio (1 cucchiaio circa)
  • zucchero a velo

Il cioccolato plastico non è altro che cioccolato reso malleabile grazie all’aggiunta di glucosio, in questo modo è possibile usarlo per creare decorazioni di vario tipo. Le dosi che ho riportato qui sono la dose base da aumentare secondo le necessità, per esempio per decorare una torta di 20 cm di diametro moltiplicatele per 4.

Il glucosio si trova in alcuni supermercati, se non riuscite a trovarlo potete sostituirlo con una quantità di miele, meglio se non troppo saporito in modo da non influenzare troppo il gusto finale. Non ho mai provato questa variante, quindi non mi assumo responsabilità in caso di fallimento ;)

Se volete una decorazione bianca potete invece usare del cioccolato bianco ma, vista l’alta quantità di burro di cacao, risulterà un poco più difficile da lavorare.

Preparate il cioccolato plastico. Sciogliete il cioccolato a bagno maria. Aggiungete il glucosio e un cucchiaio d’acqua, amalgamate bene e lasciate risolidificare a temeparatura ambiente per due ore.

Impastate il cioccolato con le mani su un piano leggeremente cosparso di zucchero a velo fino a renderlo malleabile. Non preoccupatevi se all’inizio sarà duro e si sgretolerà, con il leggero calore delle mani e con la lavorazione assumerà la consistenza di un normale impasto.
Stendete il cioccolato in sfoglie sottili con un mattarello o con una macchina per fare la pasta, usando lo zucchero a velo per non fare attaccare l’impasto alla macchina o al matterello.

Una volta steso potete utilizzare il cioccolato per fare ad esempio delle rose, come ad esempio spiegato su Note di cioccolato. Se, invece, volete decorare una torta stendete semplicemente il cioccolato in sottili sfoglie e appoggiatele sulla torta formando delle pieghe.

guido - Guido Vicino

The million masks of God

But now a great thing in the street
Seems any human nod,
Where shift in strange democracy
The million masks of God.
— GOLD LEAVES, The Wild Knight and Other Poems, Gilbert K. Chesterton, 1900

bari - Marco Barisione

Sponge cake

Sponge cake

Ingredienti:

  • 175 g di burro
  • 175 g di zucchero
  • 3 uova
  • 175 g di farina
  • mezza bustina di lievito per dolci
  • buccia di limone grattugiata o vaniglia (facoltativo)

Dose per 2 torte da 20 centimetri di diametro

La sponge cake è l’equivalente nel mondo anglosassone del nostro pan di Spagna, ma leggermente più veloce e semplice da preparare. Normalmente vengono preparate due torte separate di diametro non troppo grosso e vengono impilate una sopra l’altra con in mezzo varie farciture. La farcitura più tipica è semplicemente marmellata di fragole (o fragole fresche in stagione) e panna montata, dando così origine alla torta Victoria. Visto che questo tipo di torta rimane più umido di un normale pan di Spagna è anche ottima senza nessuna farcitura.

Se volete fare due torte di 24 cm di diametro usate queste dosi: 250 g ciascuno di farina, burro e zucchero, 4 uova grandi e tre quarti di bustina di lievito.

Preparate la torta. Lasciate ammorbidire il burro a temperatura ambiente o per qualche istante nel forno a microonde, senza però scioglierlo. Lavorate energicamente il burro e lo zucchero fino a quando otterrete un composto omogeneo e spumoso. Aggiungete la buccia di limone grattugiata o la vaniglia se li volete usare. Aggiungete le uova una a una. Aggiungete il lievito e la farina setacciati mescolando in continuazione.

Versate il composto in due tortiere da 20 cm imburrate e infarinate. Cuocete in forno preriscaldato a 180˚ C per 20 minuti. Togliete dal forno e lasciate intiepidire nelle tortiere. Quando le torte sono tiepide rimuovete dalle tortiere a lasciare raffreddare completamente su una griglia.

Se invece usate tortiere da 24 cm di diametro cuocete per 25 minuti, sempre a 180˚ C.

La foto è di adactio ed è rilasciata sotto licenza Creative Commons attribution.

doccd - Corrado Brosio

Ancora più vintage

Ecco il risultato del primo rullino in bianco e nero scattato con una vecchia Canon AE-1 su pellicola Ilford 125 iso e sviluppato in toto da me!!!

duomoLa grana che si vede dev’essere colpa mia per aver agitato male la tank, così come tutto lo sporco e le righe visto che mi si è srotolato completamente il rullino quando al buio mentre stavo caricando la spirale e ha così toccato il comodo piano in metallo arrugginito dagli acidi e dal tempo. boh per il prossimo proverò a far di meglio :)

fina - Alessandro Finamore

Network Neutrality: Internet freedom is really at risk?

Ho terminato da poco il corso di ‘’Computer Ethics'’, un corso di dottorato del Politecnico di Torino tenuto dal professor Norberto Patrignani. Al termine era richiesto di scrivere uno short paper che sviluppasse uno degli argomenti trattati. Io ho scelto di parlare di Network Neutrality perchè è un problema che mi riguarda direttamente (visto che lavoro su tematiche analoghe) ed è un argomento molto attuale.

Abstract:The last century has faced the explosion of telecommunications systems. Telephone, radio, television and Internet are now so rooted in the daily life of millions of people that is difficult to imagine a world without them. In particular, Internet is so attractive because of its freedom. Recently network providers have started to use traffic filtering policies aiming to optimize the network performance but this has hurt the freedom of both users and content providers.
In this work is described the current scenario of the network neutrality issue looking at the forces that hold the discussion and identifying a possible route to follow in the next years based on recent developments in matter.

L’articolo completo è rilasciato con licenza Creative Commons Attribution Non-Commercial No Derivatives creative commons non commercial no derivatives

fina - Alessandro Finamore

Finale in produzione (75)