03 July 2009

A real paper cut

AbiWord had a long lasting usability issue: pressing the insert key caused to toggle the overwrite mode on and off. When doing so we provided two different feedback to the user:

  • a display in the status that switch from "INS" to "OVR"
  • the caret (insert point) switch to red.

This lead to different kind of complaints:

  • "When I type, the text to the right is replaced"
  • "Why is the insert point red? What did I do?"

See bug 3641

This reveal two problems. The first one is that the user didn't realise something happened. I hit a random key (ie he didn't realise which one) and something happened. The second the user noticed the caret changed colour, but still didn't know why.

I had a few ideas in mind.

  • Change the feedback, and there are a few options for that: change the caret shape (colour is never enough), change the status bar message, any other kind of notification
  • Do something for the key binding: popup a dialog, use clippy, play a music just make it disabled by default.

How I did implement it:

  • For now I changed the status bar message to be more readable. INS and OVR are just confusing obscure and an anachronism inherited from the AbiWord first step over 11 years ago mostly in trying to clone MS-Word with some of its atrocities. Now it is in plain $LANG (English here, but it is / will be localised, I hope).
  • I added a UI to enable the toggle. We had that option already in place, it was just on by default, not bound to any UI. I'm not a big fan of adding options, but that's just the best way to do it for now.

What can be done in the future?

  • Change the caret shape when in overwrite mode. I didn't want to do it that late in the release cycle has it seems to have been source of problems. Also it need to be well thought too as we also deal with bi-directional writing.

But that was a real paper cut for AbiWord. Not the only one, just one of them, and it was not that hard to fix. For the sake of it, I did it watching the BSG mini-series for the 3rd time.

GNOME Foundation Board Meeting at GUADEC

GUADEC is starting tomorrow, but the GNOME Foundation was busy today with a all-day board meeting. With the election results now being official, we were able to welcome Germán and Srini.

Still, the meeting wasn't easy for everybody.

Lucas doesn't enjoy the meeting

John is having a hard time

Germán discovers a board meeting

Behdad simply gave up

Still, you can be sure that the board is working hard for the Foundation to make sure that the GNOME project will succeed!

This is your board!

02 July 2009

GCDS: Discrimination by accent

My level of Spanish being what it is, and my accent being what it is, my cab ride to Las Palmas cost me some €60 from the airport, and that's after the cabbie switched off the meter...

Apparently, the «Catalina Park» apartments booked by the nice people at the GNOME Foundation, have a namesake near Playa de Inglés.


From top to bottom: where I wanted to go, where I was, where I ended up (locations provided «by ear», do not try to replicate at home). Yippee!



FreeFA

In other news the FreeFA tournament is going to happen next Thursday, from 15:00 to 17:00. I'll put the details onto the Wiki when I can remember my password.

Why I disagree with RMS concerning Mono

The GNOME press contact alias got a mail last weekend from Sam Varghese asking about the possibility of new Mono applications being added to GNOME 3.0, and I answered it. I didn’t think much about it at the time, but I see now that the reason Sam was asking was because of Richard Stallman’s recent warnings about Mono - Sam’s article has since appeared with the ominous looking title “GNOME 3.0 may have more Mono apps“. And indeed it may. It may also have more alien technology, we’re not sure yet. We’re still working on an agreement with the DoD to get access to the alien craft in Fort Knox.

Anyway - that aside, Richard’s position is that it’s dangerous to include Mono to the point where removing it is difficult, should that become necessary to legally distribute your software. On the surface, I agree. But he goes a little further, saying that since it is dangerous to depend on Mono, we should actively discourage its use. And on this point, we disagree.

I’m not arguing that we should encourage its use either, but I fundamentally disagree with discouraging someone from pursuing a technology choice because of the threat of patents. In this particular case, the law is an ass. The patent system in the United States is out of control and dysfunctional, and it is bringing the rest of the world down with it. The time has come to take a stand and say “We don’t care about patents. We’re just not going to think about them. Sue us if you want.”

The healthy thing to do now would be to provoke a test case of the US patent system. Take advantage of one of the many cease & desist letters that get sent out for vacuous patented technology to make a case against the US PTO’s policy pertaining to software and business process patents. Run an “implement your favourite stupid patent as free software” competition.

In all of the projects that I have been involved in over the years, patent fears have had a negative affect on developer productivity and morale. In the GIMP, we struggled with patent issues related to compression algorithms for GIF and TIFF, colour management, and for some plug-ins. In GNOME, it’s been Mono mostly, but also MP3, and related (and unrelated) issues have handicapped basic functionality like playing DVDs for years. In Openwengo, the area of audio and video codecs is mined with patent restrictions, including the popular codecs G729 and H264 among others.

What could we have achieved if standards bodies had a patent pledge as part of their standardisation process, and released reference implementations under an artistic licence? How much further along would we be if cryptography, filesystems, codecs and data compression weren’t so heavily handicapped by patents? Or if we’d just ignored the patents and created clean-room implementations of these patented technologies?

That’s what I believe we need to do. Ignore the patent system completely. I believe strongly in respecting licencing requirements related to third party products and developer packs. I think it’s reasonable to respect people’s trademarks and trade secrets. But having respect for patents, and the patent system, is ridiculous. Let a thousand flowers bloom, and let the chips fall where they may.

So if you want to write a killer app in Mono, then don’t let anyone tell you otherwise. If you build it, they will come.

01 July 2009

Newsflash: Ice Cream Deathmatch!

Woo, Jan Schmidt just created a wiki page so people can register to the most important part of GUADEC: the Ice Cream Deathmatch (renamed to Ice Cream Eating Competition, probably because Jan doesn't feel he can win ;-)). So go ahead and register! If you want to help organize this, send us a small note — we don't know yet the date or format of this competition.

Last year, the deathmatch was crazy, with Henri being stunningly fast. And fast is actually not giving him enough credit...

30 June 2009

Secure Simple Pairing support, now in Fedora 11

I updated gnome-bluetooth in Fedora 11, and that new version supports Secure Simple Pairing, an easier pairing mode for Bluetooth 2.1 devices.

The update currently lives in the updates-testing repository, but will be in the normal updates when we've had enough good feedback about it.

If you have Bluetooth devices in your possession that don't work as expected with your systems, and fancied a bit of playful testing, find me at GCDS, and we'll try and fix that.

29 June 2009

I love Europe

Eiffel Tower wearing Europe colors

I'm currently in UK for the week-end and this morning my French mobile phone operator (SFR) sent me a wonderful SMS: WAP sessions within European Union are charged 1.20 euros for the first 50kB and then 5 euros per MB. I was so happy to learn that the prices are still crazy...

Then a friend pointed me to this Europe press release. It tells that starting on July 1st, the maximum price in Europe will be €1/MB, then it will decrease to €0.80 in 2010 and to €0.50 in 2011. SFR had not the nice idea to inform me about this price drop (5 times cheaper) which will happen in 34 hours...

This decision also tells that sending SMS in Europe will not be charged more than 0.11€ (before VAT). That explains why SFR was so proud to annouce me one month ago that starting on July 1st they will decrease the price of SMS in Europe from 0.30€ to 0.13 (VAT included).

I hope the 4th mobile license will be given soon and real competition will enter French mobile market, so that we don't need European laws to have reasonable prices (mobile prices in UK are so low compared to France...).

26 June 2009

Les plans les mieux conçus des souris et des hommes souvent ne se réalisent pas

J'y étais presque, j'allais enfin partir en vacances depuis 3 ans. J'avais tout: des tas de fringues, une nouvelle paire de lunettes de soleil, retiré plein de liquide. J'avais tout prévu. Plus qu'un vendredi à travailler et j'étais bon.

Ce matin, je me gare devant mon travail, je reviens avec mon portable d'astreinte, mais j'oublie de prendre mon ibook et même mon portefeuilles rangé avec. Quand je suis revenu vers 12H00, plus rien. Vitre cassée. Plus de portable, plus d'argent, plus d'identité. C'est arrivé près de chez vous.

Après-midi au commissariat, banque, assurance, carrossier, etc.

Donc voilà, je repars de zéro, même au niveau de mon compte ça va se sentir. Demain je taille la route vers Madrid et avec un peu de chance, je me ferais arrêter sans papier aucun.

Bonnes vacances à tous !

Petit éloge de l'excès

Il y a une dizaine de jours, j'allais être en avance à un rendez-vous, une vieille habitude dont je tends à me défaire, je décide donc d'un rapide tour dans ma librairie habituelle. Vite fait bien fait, me voilà à la caisse, bonjour, voici voilà, ça fera 36 euros, oh vous pourriez ajouter celui-ci, bien sûr c'est donc 38 euros, et hop, payés, merci, au revoir. Les petits livres pas chers étalés à côté de la caisse, c'est bien trop tentant. Cette fois je craque donc pour « Petit éloge de l'excès » de Caryl Férey, une dizaine de courts textes.

J'aurais du avoir la puce à l'oreille il y a quelques mois, en lisant l'épisode du Poulpe du même auteur (D'amour et dope fraîche), ce n'est pas tous les livres qui citent Vaneigem...

Pour revenir au petit éloge de l'excès, il commence fort, clair et net, et continue de bien bonne manière, jusqu'à un "comment j'ai rencontré Raoul Vaneigem" (dont le titre exact ne me revient pas, et n'étant pas chez moi je n'ai pas le bouquin sous la main pour vérifier) que je trouve, forcément, tout bonnement excellent.

Mais là je me dis que le point fort a été atteint, et c'est donc une magistrale surprise qui arrive deux ou trois textes plus loin, où c'est Jacques Brel qui parle, en fait la retranscription d'une émission (radio ou télé, je dirais radio), pas si curieuse coïncidence la même émission que celle figurant dans le dernier spectacle de (l'indispensable) Tristan-Edern Vaquette, grande interview du grand Jacques, avec entre autres ce moment : « La difficulté pour aller de Vilvorde à Hong Kong, c'est pas d'aller de Bruxelles à Hong Kong, c'est d'aller de Vilvorde à Bruxelles. »

25 June 2009

8 years later

8 years after I filed bug 1349 in AbiWord, I implemented it. Definitely something that should have been done sooner.

It is about JPEG support. AbiWord has been able to import JPEG images for a good while, but it always converted the JPEG to PNG for internal storage. This is IMHO wrong, but at the time it was debated that it was the right tradeoff to allow using AbiWord on embedded platforms (I'm too lazy to dig up the archive). Anyway.

Tuesday I sat down and implemented the JPEG support, removing cruft, and cleaning up the rest. Basically when import and bitmap image, if the format is JPEG, the JPEG stream is kept as is, otherwise we convert to PNG, as usual. It hit SVN last night. The bonus is that a file with a JPEG in it will open properly in AbiWord 2.6 (and likely older), so even the issue I had with compatibility isn't.

This is probably the last real feature implemented for 2.8, and it will be in 2.7.6. Back to bug fixing.

Free, la triple peine

Ayant la chance d'être chez cretin.fr (c'est-celui-qui-dit-qui-l'est), je connais le triple-pay, la triple-peine mais pas le triple-play. Chez Free, si t'as besoin de rien, t'es servi...

  1. J'habite dans une commune de 3.000 habitants qui jouxte une agglomération de 100.000 habitants. Grâce au formidable FAI qui ne m'a pas dégroupé premier semestre 2008 (comme il l'annonce toujours), je bénéficie d'une Freebox V4 qui me fournit 1Mbps et le téléphone un jour sur deux (le reste de mon temps étant consacré à redémarrer cette boîte).
  2. J'ai tenté ma chance avec le support pour avoir une Freebox HD pour avoir le wifi - comme tout le monde -, c'est niet.
  3. Et maintenant je découvre que ne disposant pas d'une Freebox HD, je ne peux pas utiliser FreeWifi puisqu'il faut avoir une boîte HD pour s'inscrire. (Idem chez Neuf d'ailleurs).


Bref, là où Free vend de la HD, de la téléphonie, du 25Mbps, du FreeWifi, de l'IPv6, du "il a tout, il a Free, il a tout compris", j'ai bien compris que je me fais triplement couilloné.

23 June 2009

Libgda’s progress

Long time no blog…

I’ve been busy lately working on adding a UI extension to Libgda: merging the good parts of Libgnomedb and Mergeant (which have not been kept up to date) into Libgda. This new UI “extension” will remain optional (built only if GTK+ is found) and includes:

  • some data bound widgets (grid anf form views)
  • some “administrative” widgets such as a login widget to enter credentials when opening a connection
  • a reworked control center where one can manage named data sources (DSN) and check the list of installed database providers (drivers)
  • a re-write of the browser tool usefull to analyse the structure of a database and run some statements; this a a kind of merge with the one which existed in Libgnomedb and Mergeant but with a much improved user interface.

This is now all in the master branch in git.gnome.org, works (except for some DnD) on Windows and MacOSX. Here are some screenshots of the new browser, taken using a PostgreSQL database. One can open several connections at the same time in the browser, and for each connection, several windows can be opened. Each window displays a “perspective” (similar to Eclipse’s perspectives), and currently the schema browser perspective is implemented, which is shown below, more will come later (statements execution, reports, etc).

browser, index view

The shot above shows the index page where all the database objects are displayed (tables only for the moment), and the favorites bar on the left where one can drag n drop tables (or later other objects types) for quick access (the trashcan at the bottom is to remove favorites by dragging them on it). Clicking on a table opens a new tab as shown:

browser2

The shot above shows the details of table “products” with the traditional fields list and the constraints below (here clicking on the “warehouses” link opens yet another tab for the warehouses table). You can note in the bottom that when showing a table, it is also possible to display the table’s relations, ie. which table are referenced by the current table and which tables reference the current table, as show:

browser3

The shot above cleary shows that the “customers” table references the “locations” and “salesrep” tables and is itself referenced by the “orders” table. The canvas is drawn using GooCanvas and can be exported to PNG and SVG or printed.

That’s all for now, more later…

20 June 2009

I voted, did you?

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

19 June 2009

Maemo Summit - help make it great

This year, I’ve been asked to help with the content selection for the Maemo Summit, which will be held in October, in Amsterdam. We’re aiming for a very cool conference with lots of tips, tricks, hacks and general hardware coolness over 3 days.

Nokia is organising the first day, and the second and third days are entirely organised by the community. After a round of discussion, myself, Valerio Valerio and Jamie Bennett will be choosing content for the summit from among presentations proposed by the community. We’re aiming for presentations which will target three main audiences: tablet users, application developers and platform developers.

You can read more about the call for content or how to submit a presentation on the Maemo wiki. We’ve agreed on a fairly novel way of filling the schedule - we are starting from an empty grid, with three tracks, a couple of plenary sessions, and some lightning talks. As great talks come in, we will add them directly to the grid. If we don’t think that talks are up to scratch, they will be rejected, the submission will move to the Talk page for the Submissions wiki page, and if we are hesitant, the proposals will stay in the Submissions queue.

This has some great benefits over the usual call for papers/deadline/selection/publish the entire schedule scheme of things. Most proposers will know straight away whether their talk has been accepted, rejected, or converted into a lightning talk. Attendees will see the schedule building up and be able to propose sessions to account for topics that are not yet accounted for. And we will be able to keep some small number of slots until quite late in the organisation cycle for “late breaking news” - those great presentations that arrive too late for your deadline, but which you would really love to see get onto the schedule. And it is a kind of auction system - you have a great interest in getting your presentation proposal in early, rather than waiting for the last minute.

Anyway - let’s see how it works. You can follow the progress of the schedule on the wiki as well.

Good luck to all!

LiveJournal

I finally got a livejournal account in January to be able to comment, and now I get this email...

Hi pterjan,
pterjan's birthday is coming up on June 21!
You can:
* Post to wish them a happy birthday * Send them a virtual gift * Gift them with a paid account

So nice of them... They don't wish me a happy birthday but ask me to do it myself...

15 June 2009

Geolocation in Empathy: now real

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

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

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

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

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

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

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

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

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

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

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

14 June 2009

First commit!

Finally, 4 years and 5 months after my first contibution to GNOME (the JoinGnome page of the wiki), I did my first commit in the GNOME repositories. It's been quite a nice trip since these old days. I finally applied to an account, so you won't hear me again telling you "no, I can't commit my patch, I don't have commit rights". I hope I won't f*ck things up, especially with my little git knowledge. Now let me grow these stats !

11 June 2009

Workshop on the Analysis of System Logs

Just a reminder, we are approaching the June 29th deadline for WASL, http://www.systemloganalysis.com/

07 June 2009

Elisa Media Center RTBF plugin 0.6 released

I just released the 0.6 version of my Elisa/Moovida RTBF plugin. The goal of this release is to integrate better with Moovida's user interface.

- Fix "Use this plugin" hook with Moovida.
- Use new, Moovida style, square icon.
- Move radios menu to "Internet -> Radio"

It should hopefully be available through Moovida's plugin section next week.

03 June 2009

Panik Party

Après quelques dizaines de jours bien remplis niveau GNOME, la semaine dernière a renversé la balance avec d'une part le « vrai » boulot (avec visite de potentiels nouveaux bureaux, (qui seront quand même loins de ceux d'Igalia mais surtout la soirée de l'année, la Panik Party, promotion le jeudi midi sur Radio Campus (merci Debs), transport de matériel le vendredi, montages de mille trucs le samedi, avnat le coup d'envoi à 19h.

Il faisait beau, les gens arrivaient peu à peu, après quelque temps passé sur le stream de la soirée je mangeais un morceau, puis je remplaçais Seb au son de la petite scène installée dans le café, et je croisais des gens, et je voyais le monde remplir l'esplanade devant Recyclart. Du monde et des discussions sur mille sujets à recroiser des gens, échanger quelques mots à propos d'Ardour avec Stéphanie, de la Cyclonudista avec Jérôme, de sa prochaine performance avec Marjolaine, c'était un mix hallucinant de personnes.

Et puis à une heure trente fermer la petite scène, ranger le tout, prendre un peu d'air, d'abord du dehors (waaa, tant de monde!) puis de la grande salle (waaa, tant de monde! (bis)), continuer à croiser des gens jusque très tard, encore ranger, démontage du sommaire cablâge réseau à sept heures, rentrer, dormir. Pour être debout à 18h pour la discussion débat Minitel 2.0 au Nova.

27 May 2009

Rhythmbox GSoC

The coding period for this year Google Summer of Code has just started. I haven't blogged yet about Rhythmbox GSoCs, now is a good time to do it ;)

This year, 2 students will be hacking on Rhythmbox. Paul Bellamy (who I am be mentoring) started hacking on synchronization between Rhythmbox and media players.

And John Iacona (mentored by Jonathan Matthew) will spend the whole summer working on a contextual information pane for Rhythmbox. This information pane will display various information about the song being played (artist bio, similar artists, ...)

25 May 2009

Eicar 2009 slides available

You can find the slides for the lecture Philippe and I gave at Eicar for download.

Enjoy! (feedback greatly appreciated)

20 May 2009

Adventures in udev land

I've mentionned a while ago the work that has been done on libgpod hal callout. It's working nicely, but with HAL being deprecated, I thought now might be a good time at looking at how to do things in the future, and to check if udev already lets us do what we do in the HAL callout. The good news is that it's working now and is pretty straightforward. However, I got stuck on a few details, so I thought it might be useful to others if I documented my findings here.

Currently, libgpod installs a .fdi file with the iPod vendor ID/device ID and a binary name. When HAL detects that a device that matches these 2 IDs is plugged in, it runs the binary. The binary issues a SCSI inquiry command to the iPod to get various information, and set some HAL properties using libhal.

My goal was to do something similar with udev, ie get udev to run a binary when an iPod is inserted and then associate some information with the iPod device in udev database so that other applications can access it.


iPod detection

Running a binary when the iPod is inserted wasn't too hard, it's done with a udev rule file (the format is documented in udev manpage, don't forget to read it if you have to write such a file! ) which goes to /lib/udev/rules.d. My first version was simple enough:

ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem",
ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1204",
RUN+="/tmp/udev-test.sh"

udev-test.sh is a simple shell script wrapping the actual udev callout. It makes it easier to dump various information to a log file (for example the callout environment which udev uses to pass useful information to the callout). And, lo and behold, after plugging an iPod, my shell script was run!


Adding information to the udev database

The next logical step was to add some values read from the iPod to udev database so that other apps can get this additionnal information. And this is one of the steps that gave me some troubles. I was a bit ashamed of finding a really informative post by Kay Sievers answering my question right after having sent this email...

In short, it's really easy to import new values in the udev database, all you have to do is to output key/value pairs on stdout. This is nice, since udev passes information through environment variables and adds information to its database by reading stdout, this means that your callout doesn't have to depend in anyway on libudev.

I quickly modified my test program to print a few key/value pairs to add to the environment, triggered an unplug/replug of my ipod with udevadm, and watch the 'block' subsystem devices with the devkit binary. But I was really disappointed not to find my values associated with the iPod :(

After double checking everything and fiddling a bit to try to figure out what was wrong, I read again Kay's email, and I saw there was another difference between his code and mine: he is using an IMPORT rule to run his binary while I was still using a RUN rule.

I changed my udev rule to an IMPORT rule and.... it still didn't work :;)After staring at udevadm monitor output, I noticed that when the iPod was plugged in, there was first an "add" udev event for the iPod device shortly followed by a "change" event. Since my rule was only catching the "add" event, I hypothetized maybe my changes to the udev database were first properly added, and then overwritten by the "change" event. So I changed my rule file to catch "change" events in addition to "add" events, and it finally worked!

ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem",
ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1204",
IMPORT{program}="/tmp/udev-test.sh"

I was very happy with my udev callout, however I shortly realized that when going from a RUN rule to an IMPORT rule, udev no longer passed me the device name (/dev/sd??) in the DEVNAME environment variable. I went to #udev on freenode to check if this was the expected behaviour, and Kay confirmed this is normal because when IMPORT rules are run, the final device doesn't exist yet.

However, the $tempnode variable can be used as an argument to the binary that is being run to give it access to a temporary device node which can be interacted with. And indeed, after adding this argument to my udev rule, I could do everything that I wanted to :)


Final polish

After this successful experiment, all that remained to be done was to make the udev callout as featureful as the HAL callout. This was pretty straightforward, I abstracted the information gathering part from the HAL callout. This generic code then uses some backend-specific code to set the values. The HAL backend does that by using libhal, the udev backend does that by just outputting values to stdout.

David Zeuthen was (as always) really helpful by pointing me at the udev/devicekit equivalent for info.desktop.icon and info.desktop.name: DKD_PRESENTATION_NAME and DKD_PRESENTATION_ICON_NAME. I also cooked up some variable names in a LIBGPOD namespace to have an udev equivalent to the stuff provided by podsleuth, let me know if it could be useful in your projects, it can be changed to fit your needs :)


End result

And here is the end result after plugging in my iPod:

# udevadm info --query=env --name=sdb2

DKD_PRESENTATION_ICON_NAME=multimedia-player-apple-ipod-color
LIBGPOD_VERSION=1
LIBGPOD_IS_UNKNOWN=0
LIBGPOD_FIREWIRE_ID=000A270002BAD546
LIBGPOD_SERIAL_NUMBER=JQ446FN4R5Q
LIBGPOD_FIRMWARE_VERSION=1.2.1
LIBGPOD_IMAGES_ALBUM_ART_SUPPORTED=1
LIBGPOD_IMAGES_PHOTOS_SUPPORTED=1
LIBGPOD_IMAGES_CHAPTER_IMAGES_SUPPORTED=1
LIBGPOD_DEVICE_CLASS=color
LIBGPOD_MODEL_GENERATION=4.000000
LIBGPOD_MODEL_SHELL_COLOR=white
LIBGPOD_PRODUCTION_FACTORY_ID=JQ
LIBGPOD_PRODUCTION_YEAR=2004
LIBGPOD_PRODUCTION_WEEK=46
LIBGPOD_PRODUCTION_INDEX=20272
LIBGPOD_MODEL_CONTROL_PATH=/iPod_Control



Et voilà! The code is available from the devicekit branch of my libgpod git repo
and will be committed to libgpod svn soon.

10 May 2009

Quels sont les avantages et inconvénients de Linux par rapport à Windows ?

C'est une question qu'on me pose souvent... Je mets ma réponse type ici pour la retrouver plus facilement. Si vous avez d'autres idées, mettez les en commentaires, je mettrai à jour le post...

Avantages de Windows :

  • Équipe 90% du parc informatique grand public, donc plus simple de trouver un pote « qui s'y connait » pour filer un coup de main.
  • C'est l'environnement des joueurs qui veulent jouer au dernier jeu 3D qui vient de sortir.
  • On peut trouver des logiciels pour Windows facilement dans les magasins.

Inconvénients de Windows :

  • Garder un système sain, exempt de virus, spywares et autres, demande beaucoup (trop) de connaissances.
  • C'est très cher pour ce que c'est : Microsoft fait la majorité de ses bénéfices sur Windows et Office, et vu que les gens pensent qu'ils n'ont pas le choix, ils continuent soit de les acheter, soit de les « pirater ». Mais même un logiciel piraté occupe le terrain et empêche ainsi la concurrence de s'installer, cela ne résoud donc pas le problème.
  • Microsoft utilise une technique illégale (la vente liée) pour contraindre l'utilisateur à acheter une licence d'utilisation de Windows à l'achat d'un ordinateur, même si l'acheteur possède déjà un système d'exploitation. Les utilisateurs qui se retrouvent à devoir payer cette « taxe Microsoft » ne sont pas que des utilisateurs de systèmes alternatifs comme GNU/Linux. Il y a aussi ceux qui ont déjà acheté une autre version de Windows en version boîte (par exemple une version Pro à la place de la version Familiale livrée d'origine), ou les étudiants qui bénéficient par leur école d'un partenariat pour avoir une licence Windows gratuite ou à prix réduit.
  • Windows facilite l'utilisation de DRM qui décident de ce que l'on a le droit de faire avec de la musique, même légalement achetée. De nombreux services de vente de musique avec DRM ont fermé, laissant les utilisateurs se démerder avec leur musique (virgin, leclerc, wall mart, etc.)
  • Le « Windows rot », littéralement la « Pourriture Windows », phénomène qui fait qu'après avoir installé et désinstallé plein d'applications à la noix, on se retrouve avec un système instable, lent au démarrage, et à l'utilisation, et qui fait croire à l'utilisateur Windows qu'il est normal de devoir reformater sa machine tous les 6 mois.

Avantages de GNU/Linux :

  • On peut bien souvent installer un système Linux sans payer un centime, ou acheter du support technique avec certaines distributions Linux. Bref on a le choix entre investissement en temps ou en argent.
  • Insensibilité aux virus, spywares et menaces diverses qui ciblent quasiment toutes Windows uniquement.
  • Choix très étendu : il existe plein de distributions Linux, on peut donc en trouver une qui couvre ses besoins.
  • Plus de piratage de logiciels : la plupart sont gratuits, et utilisables en toute légalité.
  • Les mises à jour sont centralisées : le système d'exploitation et les applications se mettent à jour ensemble.
  • Moins exigeant en ressources matérielles.
  • Pour installer une application, le plus dur c'est de se souvenir de son nom, pas besoin de fouiner sur le site de l'éditeur.
  • Les applications sont traduites dans de nombreuses langues, les messages non traduits présentés à l'utilisateur sont rares.

Inconvénients de GNU/Linux :

  • Difficile d'acheter des logiciels en magasin (très dur d'en trouver pour Linux), et les logiciels pour Windows ne fonctionnent sous Linux qu'au cas par cas (en utilisant Wine).
  • Certains périphériques n'ont pas de pilote pour Linux, ou sont mal gérés. Cela arrive quand les constructeurs ne fournissent pas de pilotes Linux, ou ne fournissent pas les spécifications du matériel pour que la communauté Linux le fasse. Il faut donc faire un peu plus attention à l'achat, et vérifier la compatibilité avant l'achat.
  • Il peut être difficile d'installer une version récente d'une application si le distributeur de la distribution GNU/Linux ne l'a pas mise à disposition.

24 April 2009

Nice fonts with Emacs 23 (GTK+)

Emacs 23 is a real improvement from the previous release (GTK+, xft, faster with DVCS, etc) and with a bit of tuning (it’s still Emacs :), it’s again better:

  • the rendering of anti-aliased fonts is strange in Emacs 23 but the Terminus font is really great IMHO:
    (setq default-frame-alist '((font . "terminus")))
  • the post Recipe: Bearable Emacs is a must-read and provides the wonderful Wombat theme.
    emacs23circus
  • the on-the-fly syntax checker, flymake, is also really pleasant to use when you code in Python. I’ve copied the configuration from the Emacs Wiki and added this line to limit the use at Python
    '(flymake-allowed-file-name-masks (quote nil))

14 April 2009

Telepathy Jaunty PPA open for business

As Jaunty is now almost released, I synced the Jaunty Telepahy PPA with Debian packages. Main user visible changes include:

  • File transfer support in Gabble
  • Better Theora support in video calls
  • Support of Google relays improving connectivity when trying to establish audio/video calls using a gtalk account.

As usual, we'll try to keep the PPA as sync as possible with latest released versions. So if you are interested in bleeding edge Telepathy components just add this repo:

deb http://ppa.launchpad.net/telepathy/ppa/ubuntu jaunty main

02 April 2009

GNOME 3.0 planning announced

After a lot of thinking
Vincent thinking about which bug to fix first

GNOME release team is happy to announce
Vincent Untz (vuntz)

planning for GNOME 3.0

Enjoy (other members of Release Team did blog about it too : Vincent, Lucas, Andre).

Now, back to work, folks !
GNOME group photo (take 2)

La baisse de TVA dans l'Horeca n'est pas une mesure sociale mais un leurre du secteur

Comment le secteur de l'Horeca nous a menti ?

En allumant mon poste de télévision pour écouter la rediffusion du journal télévisé, j'ai pu découvrir en 1er titre cette directive européenne permettant à partir de 2010 de diminuer la TVA dans l'Horeca et dans la construction.

Cette mesure était réclamée à grands coups de cris par les responsables des restaurants et autres tavernes.

Rappelons que la TVA est bien une taxe pour le consommateur final (les particuliers et les entreprises non assujetties grosso modo) qui est perçue par les "acteurs économiques" et reversée par ceux-ci à l'État. Il n'y a donc aucune charge directe pour les acteurs économiques (les restaurants en résumé). Ils n'agissent qu'en temps que collecteurs de taxes.

Donc, pourquoi réclamaient-ils ? Baisse d'affluence, crise économique (que doivent-ils dire aujourd'hui alors ?), ... étaient les causes principales selon eux. Une baisse de TVA permettrait donc de diminuer les prix donc ... moins de taxes, donc moins cher vu que leur chiffre d'affaire reste identique. En terme chiffré cela donne qu'un plat à 12,10 EUR hier devrait coûter 10,60 EUR après diminution. Aucune perte pour le restaurateur, moins cher pour le client et moins d'argent pour les rentrées fiscales.

Personnellement, je doutais vraiment de cette argumentation mais bon ... puisque le secteur de la restauration le disait.

L'avenir m'a donné raison ;-)

Première interview d'un restaurateur après cette annonce :

"Oui, grâce à la baisse de TVA, le travail en noir va baisser."

Je me dis qu'il y a un soucis de logique ne voyant pas le rapport entre le client qui paye moins et le travail en noir mais je m'attendais à la suite.

"Le secteur pourra être mieux rémunéré."

Ohhh, le loup sort de sa tannière, les prix vont augmenter et la TVA va compenser l'augmentation. Donc, le chiffre d'affaire augmente et donc, les restaurateurs augmentent l'argent dans leur poche au détriment des clients qui payent. C'est un revirement de situation amusant mais prévisible.

Donc en reprenant notre plat à 12,10 EUR (10,00 EUR HTVA + 2,10 EUR de TVA) deviendrait par exemple 11,66 EUR (11,00 EUR HTVA + 0,60 TVA).

Quand le journaliste posa la dernière question ... "La baisse de TVA va-t-elle profiter au client ?" Le restaurateur un peu embêté et gêné répondit "Euh, un peu mais cela va avant tout aider le secteur". Et crac dedans, il n'y a plus qu'à le pendre.

Donc en définitive, plutôt que de donner de l'argent à l'État, vous allez le donner directement au restaurateur ... çà c'est de la mesure sociale (ironie inside). Déjà que le secteur de l'Horeca est celui avec le plus de travailleur en noir avec la construction et qu'ils ont une facheuse tendance à oublier de déclarer certains revenus dans leurs déclaration fiscale et de TVA (oui, l'argent que VOUS avez donné pour reverser à l'Etat, ils le mettent dans leur poche).

Je ne peux être que dubitatif sur ce mensonge honteux du secteur de l'Horeca ayant porté visiblement ses fruits ... il reste le dindon le client qui ne va presqu pas ou pas du tout voir le résultat de cette mesure sur son addition.

Conclusions : moins d'argent dans les caisses de l'État pour pour payer la Sécurité sociale, l'enseignement, .... plus dans les poches des indépendants.

Démocratie sociale ou démocratie libérale ?

PS : j'ai quelques connaissances dans le secteur, je les respecte et je ne souhaite pas extrapoler inutilement à tout restaurateur. Je n'ai pas dit non plus que les restaurateurs gagnaient bien leur vie mais la question était bien une diminution de taxe payée par les clients qui va presque rien changer à ce qu'ils déboursent pour se sustenter. L'avenir nous répondra sur la question mais je doute énormément.

01 April 2009

Offre de stage

Reçu par le biais de la mailing-list du GUL-Héros, le GUL local sur Montpellier :

Salut ;

nous venons de définir nos sujets de stages et les avons mis en ligne sur :

http://www.cr2i-reseaux.univ-montp2.fr/index.php?param=stages/2009/index.html

Merci de diffuser ce message autour de vous !

A +

==================================================================

Marc FANGEAUD

Equipe Réseau du CR2I

CR2I – Case Courrier 427

Universite Montpellier II

Place Eugene Bataillon

34095 MONTPELLIER CEDEX 5

Tel : 04.67.14.31.31

Fax : 04.67.14.31.30

E-Mail : reseaux@univ-montp2.fr

web : http://www.cr2i-reseaux.univ-montp2.fr

web : https://www.cr2itools.univ-montp2.fr ==================================================================

Discover new features by translating

Last week, Fred (the Release Team member of course) has invited me to a famous radio show[1], “Good Morning, Stallman”. During the show, I said the translating is good way to discover new features before the releases, sometimes it’s also the only way!

For example, I’ve discovered a powerful feature of Tasks by translating some regular expressions, you can enter a task as:

task-add

then the date will be extracted from the message:

added-task

You can use days, weeks, months and various prepositions, eg. in 3 weeks, by w32, due 1st June.
Of course, this feature works fine in French too!

[1] http://www.radiopanik.org is the most famous radio in Brussels or in its street!

22 March 2009

Synchronization Vs. Direct access, the case of contacts


Maintaining accurate and useful contact information data is not an easy task, especially when that information is spread over several places. The solution usually proposed for this problem is refered as synchronization. Synchronization is a mechanism involving copies of data between sources in order to reflect the same state everywhere, also known as data replication.

Synchronization brings several problems. It usually tends to cast information patterns into one predifined one. It flattens the information and causes the loss of the “origin” dimension, which may have important semantics on how and where to use it. It usually breaks the link with the source, thus the newly available information from an updated source won’t be distributed until next synchronization. It implies merging choices which result into inconsistencies, loss and duplication of information.

The worst thing with synchronization is that it actually solves nothing. It may be a sufficient solution when considering only local sources like computer or cellphone addressbooks but with the era of Web 2.0, most of the contact information is to be found on the Internet. Contact sources there are whatever services manipulating people, contact of friend objects. This obviously includes social networks. The diversity of those sources make synchronization impossible to consider, their purpose is different hence the provided content shouldn’t be merged, it should be used differently, depending on the context. And why would you actually want to do synchronization? Since all the information is always out there, you only need to access it.

This is why for People, we made the choice not to copy and merge the contact information from the web to a smashed local version of it but instead provide a unified way of accessing it. Using direct access, the only effort to be done is to explicit the grouping of contact information from different sources defining a single person entity. Direct access ensures integrity and reliability of data (it is not manipulated between access and use), allows knowing about the sources thus consider the relevance of it (the full name of a contact is more likely to be accurate on LinkedIn than on Last.fm), and the update of the information is done by the actual owners of it, your contacts. Associating a cache mechanism to avoid network roundtrips and maybe an offline mode to that way of doing things should benefit the user better than forcing him to understand and suffer the mist of the broken synchronization scenarios.

05 March 2009

Le coup du firewall - VPN - Routeur

J'étais en pleine interrogation dernièrement.

Je devais installer un firewall qui ferait aussi VPN pour une PME. Carte blanche ...

J'avais essayé des distributions Linux spécialisées que je connaissais mais elles calaient toutes sur les cartes réseaux D-Link que je leur proposais (je dois encore vérifier le modèle). Cela m'a un peu refroidi avec les distributions linux orienté firewall vu que l'installation se passait bien mais je ne pouvais pas faire les mises à jour de sécurité sous le risque de voir le driver de la carte D-link concerné disparaître sans que je puisse faire un modprobe au redémarrage ...

Vu que cela n'était pas super pressé, j'ai préféré me concentrer sur autre chose en attendant.

Je me remet un peu à l'ouvrage et je suis donc face à diverses solutions :

  • Le système CISCO bête et méchant (méchant prix aussi et pour les accès multi-plateforme, il y a le Cisco Systems VPN Client) de type "ASA 5505" car le "PIX 501" n'est plus censé être vendu (End-of-Sale et End-of-Life bientôt)
  • Le système PC de récupération qui n'est pas cher mais prend aussi de la place et consomme pour des composants inutiles dans le cas de figure
  • le système appliance genre "Linksys RV0042" moins cher mais pas plus Linux-friendly à la base car comme toujours basé pour des clients Windows donc non testé pour interopérabilité
  • le système appliance monté maison style Soekris
  • le système routeur "flashé" Linux de type Linksys WRT54GL

Les besoins sont assez limités :

  • Accès à Internet à 5-6 personnes - Web Proxy est un atout
  • VPN pour un remote accès par 1-2 personnes en même temps (OpenVPN ou autre) sous différents systèmes d'exploitation
  • Firewall de type SPI
  • Client de synchronisation NTP
  • Client DynDNS vu que la ligne aura une IP dynamique

Personnellement, je me pencherais bien sur une appliance de type Soekris 4801 avec une distribution m0n0wall ou pfSense avant tout pour le gain de consommation électriques qu'elles pourraient apporter par rapport aux PC "traditionnels". Le coût estimé est de 190 EUR HTVA pour le Soekris, une carte mémoire Compact Flash et quelques heures pour la confirguration ...

Si vous avez d'autres idées/conseils/...

01 March 2009

Nemiver 0.6.5

So Nemiver 0.6.5 is out.

Last release was in late November 2008. Too many things to do I guess.

This release is about pushing out all the little bugfixes that happened since 0.6.4. We have been fixing little quirks here and there as they were appearing during our day to day use of the tool. The result is a tool that a bit more pleasant to use, at least for my personal workflows :)

Apart from that, the Nemiver repository moved from SVN to git and the mailing list moved to the GNOME infrastructure. You can now browse the source code from here and checkout the code by typing:
git clone git://git.gnome.org/nemiver
Fedora 9, 10 and rawhide packages should hit a mirror near you soon, but the impatients can grab them here.

The tailor

Ok, let’s imagine you’re fed up with the GObject boilerplate code, and decide to use a mature serious language which gives easier access to classes : C++.

C++ followers will tell you how wonderful that language is, where performance with respect to both speed and space is taken very seriously. Read any document about C++ : this language has all bells and whistles, with options everywhere (do I dare saying “A real KDE!”? No, that would be trollish). Let me review some features of this both high and low level language. Performance!

Let’s begin with the most frustating issue, that of inheritance. When you override a method, by default you have done almost nothing : if your object is accessed as being from the base class, then the old method will be called. You have to use the “virtual” keyword on a method you think you’ll need to override later on. If someone else want to override and can’t modify your class, (s)he’s a two-sided toast. On the other hand, the performance!

Sigh, so you add the “virtual” keyword everywhere you think, run your program, and things just go wrong : it’s perfectly normal, you didn’t think C++. Yes, you should declare your base destructor virtual, otherwise when you try to destroy an object through its base pointer, things break, without warning. But with performance!

One more thing about inheritance, and more specifically multiple inheritance : you have to be extra careful in the diamond configuration, because you may end up with copies of data members, which may not be what you had in mind. In such a case, you will again have to use the “virtual” keyword — not where you form the diamond, but on the two branches : again, in C++ you don’t deal with inheritance when it happens, but much sooner. For performance!

The language has also nice things like constructors which get called automatically. Say you wrote an array-like class, with a constructor from integers, and you work with two arrays of integer ; at some point you want to do a comparison tab1[i] == tab2[i], but your fingers type tab1==tab2[i] — ah, you’re comparing a full array with an integer : no problem, the compiler will use the right-hand side to build an array and do a stupid comparison… isn’t it wonderful? Nonsense, but with performance! (for completeness, you saw the previous paragraphs, so I hope you guessed: there’s a keyword to avoid that problem : “explicit”.)

Another case of automatic (and unsafe) promotion is with conversion operators, but I have seen quite a few advices of not using them. I think the “explicit” keyword doesn’t apply to them (yet…).

As closing words, let me explain the link between the title and this post : Fernand Raynaud was a french humorist, and one of its most famous sketches, “Le tailleur” (the tailor) was the story of a man coming back to his tailor to complain about a bad suit. Of course, the tailor finds the suit perfect and puts the blame on his customer, who ends up admitting the suit is indeed perfect, once he has put his left shoulder a little higher, his right shoulder a little back, turned his hips a little, and raised one arm slightly…

PS: if some C++ lover wants to tell me I just don’t have the right mindset, lack the skills or whatever explanation that puts the blame on me and not the language itself : put your comment in /dev/null and read the last paragraph again, tailor!

26 February 2009

fatal: protocol error: expected sha/ref


Dear Lennart,

You should probably know that typing the correct URL would work better for cloning a bzr branch (yes a branch, not a repository).

This is what I get when I try to feed git a random invalid URL:

$ git clone git://github.com/idontexist
Initialized empty Git repository in /home/asabil/Desktop/idontexist/.git/
fatal: protocol error: expected sha/ref, got ‘
*********’

No matching repositories found.

*********’

Now is probably the time to stop this non constructive “my DVCS is better than yours”, and focus on writing code and fixing bugs.

24 February 2009

Catchup

Fosdem 2009

So, Fosdem is over. Yes I am late. As always.

I caught quite a serious cold even before going to Fosdem this year, so I spent the entire event drinking tea and sleeping at 23h30 at worst. Believe it or not, I was able to wake up quite early on Saturday and Sunday, so I didn't miss any morning conference and, although I came back with the flu still, I was less destroyed than after the previous Fosdems.

"Early to bed and early rise makes a man healthy, wealthy and wise", they say. I still have to practise that one. I am not there yet :)

What is sure though, is that I had a voice extinction quite on time for my talk. yay.

So How did my Nemiver talk go ? Well, I haven't received much tomatoes so I guess either the ton of my voice was okay-ish enough to not disturb the audience during its nap, or the talk was okay-ish, or ...
Well, I guess that question shall remain unanswered for years to come.

In any case, the pdf slides of the presentation are here.

All in all, this Fosdem event was nice. Aside from the talks, I met lots of cool people and hang around with the Mandriva crew. Very nice chaps. They even took some nice photos.

Fedora

So I've finally been approved as a Fedora packager. \o/
The packages I'll be (co)maintaining so far are:
I've always be willing to take part in packaging. I was just too lazy busy to sit dow and get into the approval process. I can tick that as done now. yeeesh.

21 February 2009

Upgrading ubuntu…

Today, I upgraded my parents’ computer. From ubuntu 8.04 to ubuntu 8.10. Summary : ouch.

No more keyboard in X. No more mouse in X. No more soundcard.

What happened to X? Eh, it commented the keyboard and mouse sections in xorg.conf — because now it’s magically hal-detected, so those are useless now. So useless uncommenting makes things work again.

It works, but a shiny button proposes to install nvidia drivers. Shiny, click! Let’s restart X. Uh… doesn’t start. But we get a nice dialog asking what to do. One of the choices is to reconfigure. Let’s do that. No keyboard nor mouse — again!!!???!!! Of course, it just made a configuration file without the needed sections. A dpkg-reconfigure xserver-xorg later, the situation is sane again.

Now, what about sound? lsmod | grep snd makes it clear there are no sound modules loaded. After a quick updatedb, I check where the .ko are… none for the running kernel. A google later, I learn that I need a driver package (linux-ubuntu-drivers or something like this, but with the kernel version in the name), and synaptic says it doesn’t have one for the running kernel version. Gasp!

Let’s install a newer kernel, with all we need. Reboot (I hate rebooting… that’s so… stupid). Sound is back.

The fear I have is that it will now overwrite xorg.conf regularly, and hence stop working regularly. I need to find out how to make that box just work!!!

Edit: it turns out the keyboard&mouse issues were caused by the start of X before hal… reversing their initialization order makes things work : it won’t stop working behind my back (and worse, while I’m not there to fix back).

20 February 2009

Speedboot explained

For those of you not following Mandriva Linux development closely, we just released Mandriva Linux 2009 Spring Beta and this is our first release featuring speedboot feature, in its initial phase.

Asterix

Booting fast, is it important ?
Boot time has been a hot topic for the past few months in Linux community, either by chip and SSD manufacturers who want to show how fast their hardware can go when software is fixed properly (Moblin fastboot) or even by distributions, mostly on Netbook and OEM, such as various Mandriva Linux based products, like Hercules eCafé, G-dium, TouchDiva which are using Mandriva finit.

However, most of those initiatives are focused on fixed hardware configuration and software install, which ease boot speed optimization according to system specifications.

Unfortunately, on a generic distribution where many features are available and might be enabled or not, based on user choices, not all optimisations can't be applied blindly.

This is why we have created speedboot for Mandriva Linux 2009 Spring.

What is speedboot ?

Speedboot is a specific boot time mode on a standard Mandriva Linux 2009 Spring where graphical system is started as early. This mode allows users to interact with their system much earlier than it was possible before, so they don't feel frustrated because their system isn't ready yet.

In Speedboot mode, some tasks are done very early in the boot process, other are delayed after graphical display manager has been displayed, and some tasks are ignored completely.

Speedboot has been designed to be transparent for our users : if system meets some criterias (not using network based authentication, not using encrypted partitions, ...), speedboot will be automatically enabled and used, with a fallback mecanism, in the event display manager could not be started properly, so standard (ie slow) boot would still be used to start display manager (for instance, if you boot on a new kernel and your dkms driver haven't been rebuilt yet). Of course, users will also have the possibility to completely disable speedboot if they don't like it.

But you are cheating, you are slowing boot process by running stuff in the background !!
I'm not sure it is cheating, but it is true we are deferring some tasks which used to be executed before display manager. It is a matter of perception for users. For years (since 2002), Mandriva have been starting display manager as soon needed services for X and display manager where running, to give a better user experience in the boot process, so some services (network, ssh server, etc..) were already being started in the background. We improved this system by using a parallel initscript system (prcsys) in 2006, allowing to reduce again boot time and in Mandriva Linux 2009.0, we tuned the system again and added readahead and preload, which, in most cases, reduced again boot time.

However, we also discovered those techniques didn't work everywhere : not everybody has a fast harddrive or SSD, so readhead could sometime slow boot time. Based on user configurations and system power, parallel initscript could sometime "clutters" initial boot time (since some services had no dependencies on other services, they were started early and precious CPU cycles (or IO) were used by them instead of the critical path for display manager startup.

So, we needed to find a path between a fully sequential system (à la finit) which can't be generalized on everybody system, and a fully parallel system (à la prcsys) which can't be optimized easily. We already did some of those optimisation for Mandriva 2009.0 and speedboot is the next step.

So, what do you really do in speedboot mode ?
We are still using standard initscripts, which have been modified a little to do the following :
- start udev almost immediatly after rc.sysinit is up, but do not do ask for coldplug events (this is what eat a lot of CPU on standard systems). Instead, ask udev to coldplug specific components which are needed for Xorg to start. And do this in the background
- check filesystems
- mount filesystems
 - in a new specially created runlevel (and in background) start display manager and its dependencies (syslog, dbus, hal, acpid)
- do some cleanups on various directories

- wait until display manager is up and running (with a timeout, just in case) and then continue the standard boot process in runlevel 5 (using prcsys to use parallel init)
- do not use readahead (nor sreadahead) : atm, I've been confusing on average harddisk and readahead doesn't help in that case, because we are already using too much IO on the disk and even idle IO are slowing the boot. I'll need to check on fast harddrive and SSD and maybe only enable readahead depending on the disk speed (but I'm not a fan of this, because it implies running a disk speed test at some point)

How can I test speedboot ?
That is quite simple : download Mandriva Linux 2009 Spring Beta release, install it and add speedboot to your kernel cmdline (either manually on in your grub / lilo configuration). Be aware speedboot can cause issues like changing kernel version (because it is started before dkms). Those issues will be fixed in future pre-releases of Mandriva 2009 Spring, as well as automatic activation of speedboot. Anyway, if you found issues, please fill bug reports on our bugzilla, against initscripts components or email cooker mailing list.

You lied, bootchart says my boot time is longer with speedboot than without
Well, unfortunately, bootchart is measuring the entire system boot time and with speedboot, we are favoring X early startup (what I call "perceived boot time") at the expense of total boot time (ie when all services are up and running). If you want to compare bootcharts with and without speedboot, look at timing for gdmgreeter (or kdmgreeter) startup. This will mean system is ready for login. On average, we found a gain of 10s, which means you can get graphical login available between 8s and 20s (this varies on your system specification). You can check some results here : you get kdm greeter in 12s instead of 23s. And you can also check the influence of using ext4 vs ext3, which isn't giving that much gain some people thought it would : just 1s with speedboot for kdm greeter.

But you are slowing the desktop login !

Yes, we might, but not that much. Possible solutions would be to start the various services with ionice / nice, but it is a little dangerous since they should be renice back to standard niceness once login is finished and you can't be sure to be able to do that without any leftover. Some people also suggested to us at command but this would not integrate transparently with initscripts provided by various services.

Why didn't use upstart ?
We tested it but it is still very young, changing a lot, breaking its configuration file between major releases and to be able to have a full event based system would require rewriting all initscripts to upstart format, without being sure we would have gain. So, for now, we are keeping with standard technologies, which are LSB compliant as a bonus.

We hope you will like speedboot and are waiting for your feedback, either on cooker mailing list or bugzilla.

Enjoy !

17 February 2009

08 February 2009

People talk at FOSDEM


Yesterday we gave our talk on the People framework in the GNOME devroom at FOSDEM. I have to say that it was the most unprepared presentation I ever gave, which actually resulted in a stress-free and satisfying experience. Most of the demos failed, because of lack of Hinternet access and Bluetooth stack breakage but in the overall I’m quite happy since the feedback is good. I’m hoping to turn the project into reality for users as soon as possible.

06 January 2009

Efficient SQL console, follow-up

Following my post on the new embedded web server feature of Libgda’s SQL console, I have spent some time on improving the user experience (the web server is optionnaly enabled and serves pages containing information about the current opened connections).

Here are the improvements so far:

  • the UI is more polished thanks to the usage of AJAX (through the very nice JQuery javascript library) and to some CSS work
  • a simplified authentication mechanism has been implemented where one can specifiy (when starting the embedded web server) a “token string” which is requested when a browser first connects to the server
  • a “terminal emulator” page has been added, which behaves almost like a normal terminal emulator and where commands can be entered. Through it, one can execute SQL commands and internal commands (commands specific to Libgda’s console for various tasks such as opening and closing connections).

The following screenshot shows a sample session in the terminal emulator; the “.c SalesTest” command requires that the “SalesTest” connection be used, the “.d” command lists all the tables and views of the connection.

This second screenshot is similar to the one above except that the result of the “.d” command has been folded (by double clicking on it) so it just shows the number of rows:

05 January 2009

Ekiga 3.1.0 available

The first beta of Ekiga 3.1.0 is now available on GNOME FTP.

Please note that I started the development of Ekiga 9 years ago.

Here is the list of changes :

  • Added support for the G.722 audio codec: G.722 is a 16 kHz wideband audio codec advertised as HD Voice by the famous Polycom. It is a great boost in quality and interoperability.
  • Added support for the CELT ultral-low delay audio codec: CELT delivers high quality audio at 32 kHz or 48 kHz, allowing to transmit music in high quality, with low delay and low bitrate.
  • Added support for SIP dialog-info notifications: they allow displaying notifications of incoming calls in the roster. With software like kamailio or Asterisk, it allows being informed of incoming calls reaching your colleagues.
  • Largely improved LDAP support: the OpenLDAP guys contributed several patches to provide state-of-the-art LDAP support in the Ekiga address book. The new code even supports authentication.
  • Added support to disable STUN detection: some routers do not need it anymore as they implement NAT traversal for SIP.
  • Killed the gconf_test_age test: when GConf was released, Ekiga was among the first to adopt it. That annoying ‘gconf error’ was a relique of those early times.
  • More efficient memory handling using gmref_ptr.
  • Better handling of multiple network interfaces with dynamic addition and removal.
  • libgnome is not required anymore when using GTK+ 2.14.
  • Many code cleanups, new GObjects, …

The Ekiga developers team is also working on interesting new features that should be available after the 3.2 release :

  • XCAP support & Resource List support: It allows storing the contacts list on the Ekiga.net server.
  • GStreamer audio and video capture support.

Stay tuned for more news!

Thanks to all contributors and welcome to Eugen Dedu, our new release manager!

28 November 2008

foss.in

I’m in Bangalore for foss.in. First, the country is awesome, the Indian food is amazing, etc, etc. The weather is also pretty nice this time of year, not too warm, not too cold, just right. Although it has been a bit rainy in the last three days.

But its not only the country that is nice, it is also an awesome conference, the organizers are really doing a great job. The venue is nice, the speakers are really well treated, etc. But more importantly, the level of the conference is also quite impressive. It is a great place to meet lots of good developers that we rarely meet in the “western” conferences. Free Software is really alive in India and it is great to meet the people here. After my Farsight 2 talk (slides), there were some really good questions, from people who had actually tried to use it. It’s the fourth (and last) time that I give this talk in front of different audiences, and I really got the best questions and the best interaction. The organizers wanted to make it into a truly developer oriented conference and they’ve really succeeded.

19 November 2008

19 Nov 2008

WOW ... Four fucking years without blogging in my advogado's page. I needed times to put my head and my body in the right place. Four years of doubt, sadness and Happiness as well. So since a few days, I decided to blog again.

It's all for the moment :)

13 November 2008

Living in France? Not an April member? You are WRONG.

I’ve been a member of April, the french association for promotion and defense of Free Software, for a bit more than a year, and I often regret not becoming a member earlier. (I was feeling so guilty and shameful about not being a member that I actually postponed becoming a member.)

Stop feeling guilty and shameful, become an April member today!

Why Is becoming an April member so important?

  • Clearly, April doesn’t address the same problems as your local LUG. April is a country-wide organization, and it works on country-wide problems. It’s the only group able to work on such problems at this scale (I’m not sure of the situation in other countries, but I think CCC shares a similar role in Germany for example).
  • Each time I talk to people really involved in April (which I’m not), I’m amazed by how powerful they have become. They are able to talk to french or european deputies or ministers’ cabinets, and are considered important. They are doing a fantastic job spreading what matters to us to legislative and executive powers in France and Europe.

Some of the things they worked on recently (from the top of my head):

  • Lobbying on :
    • OOXML
    • General announcements about politics (Plan France Numérique 2012, aka Plan Besson).
    • European telecom package and HADOPI law (french graduated response) law, through Quadrature du net. (OK, it doesn’t have anything to do with April, but most of the people involved in Quadrature du Net are also involved in April :-)
    • vente liée : the fact that it’s not possible to buy a computer without a Windows license. It’s illegal in French law, but still the de facto situation almost everywhere.
  • Organization of a campaign where candidates to elections in France where asked questions, or asked to sign a declaration about Free Software. In 2007, 8 out of the 12 candidates of the french presidential election answered April’s questions.

So, really, become a member today. It’s only 10 EUR, and you already know they will be well used. April is trying to reach 5000 members by the end of 2008.

(Apparently, if you use that address, April will now that you came from me. No benefit for me at all.)

11 November 2008

Ekiga.net V2 released !

Few people know that maintaining Ekiga also means maintaining Ekiga.net, the VoIP service platform for our users.

Today, we upgraded Ekiga.net, and that’s a lot of work !

Ekiga.net is now running Kamailio as frontend (recently renamed to SIP Router due to the merge between Kamailio and the old SIP Express Router project)
and Asterisk 1.4.

Among others, it allows to run the echo test with codecs like H.264, and better SIP presence support.

The old WEB interface has been replaced by a more intuitive one thanks to
Yannick Defais. The look and feel is now similar to the one you can see on the
brother ekiga.org website.

I would also like to thank Jan Schampera who helps me daily maintaining
ekiga.net and who helped a lot for the upgrade.

You can enjoy to the new infrastructure daily by signing up for an account at
http://www.ekiga.net.

07 October 2008

Hype

It’s really funny to see how popular things can get, and then totally disappear. Some time ago, there was a TV show on the french TV called “Un an de +”, that talked about what was in the news one year before. It was really interesting to see how quickly everybody can forget stuff that looks so important now.

For example, who remembers Second Life? Apparently, it has been on the decline for some time already, according to Google Trends:

Will Facebook be the next Second Life?

18 September 2008

fsck failure drops me into a shell

One of my non-geeky friends is currently trying Linux on his laptop. For some reason, he stopped it incorrectly and on the next reboot a fsck was forced and the fsck failed… he gets this:


*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue):

Obviously, at this point, he had no idea what to do… He couldn’t boot into his system and he had no idea how to fix it.

THIS IS REALLY REALLY STUPID AND BAD!

And it seems all distributions are doing it, including the supposedly user friendly ones like Fedora and Ubuntu. All non-geeks will be completely lost at this point…

What should be done is: “Repairing your file system may cause errors!!! Do you want to: [F]orce Repair, get to a [S]hell or [R]eboot?” .. ideally in a nice curses front-end. And in the force repair case, just run “fsck -y”.

22 July 2008

Looking for a job

On September I finish my studies of computer science, so I start to search a job. I really enjoyed my current job at Collabora maintaining Empathy, I learned lots of things about the Free Software world and I would like to keep working on free software related projects if possible. My CV is available online here.

Do you guys know any company around the free software and GNOME looking for new employees? You can contact me by email to xclaesse@gmail.com

13 June 2008

13 Jun 2008

A new release: libvirt-0.4.3

After two months a lot of patches had accumulated, including a lot of improvements for Xenner and Linux container support. But this release brings a massive set of code cleanup, and just looking at the patches there there is a lot of obscure case failures which should now be properly handled (or at least better handled, like out of memory situations). I'm pushing testing updates for F-8 and F-9 if you have time and use virtualisation please review them, thanks !

A new name ?

I got married to Miss Wei LI last saturday, it was kept a simple family event with just a few close friends, everything went well except for a bit of rain ! For the name I wouldn't mind being called Mr Li, but it's probably not very practical at this point (ah and good luck getting the li.com domain, and I guess hijacking li.org would not be well accepted either ;-)

A very simple picture, people interested for more should know where to look for already. Oh it also made me fight with the Panasonic HDC-SD9 'new' MPEG-4 output, to get videos to render properly on that other OS, I didn't expect to learn so much about video format so quickly. I will post recipe and scripts later.

small wedding picture

10 June 2008

La parallaxe de Suzumiya Haruhi

On peut, au regard des concepts développés par Slavoj Zizek dans "La Parallaxe", tenter une nouvelle interprétation, plus fondamentale, des aventures de Suzumiya Haruhi.

La mélancolie de Suzumiya Haruhi est due au sentiment de malaise créé par l'incomplétude fondamentale qui nous caractérise tous. Haruhi part donc à la recherche du grand Autre, réponse censée venir combler ce vide, ici fétichisé dans les extra-terrestres, extra-lucides et voyageurs dans le temps. Ce comportement peut être vu comme semblable à ceux des individus cherchant la réponse à leur malaise constitutif dans la religion, voir, et nous y reviendrons, dans la philosophie et la politique.

Cependant, la réalité du monde de Haruhi est qu'il n'existe pas de grand Autre, aucun extra-ordinaire comblant les vides ennuyeux de la réalité, aucun personnage tirant les ficelles dans l'ombre. Ou plutôt, de façon plus importante, que ce grand Autre est Haruhi elle-même, ce qui constitue la réponse fondamentale : c'est bien elle-même qu'elle cherche en voulant résoudre cette incomplétude.

Selon ces hypothèses, le récit de ses aventures peut donc ultimement être vu comme celui de la recherche de la Vérité par les humains, les réflexions autour de son comportement précisant de façon très intéressantes plusieurs problématiques liées à ce processus.

L'interprétation de la fin de la série, où Haruhi semble trouver son bonheur avec Kyon, reste toujours problématique. Il n'existe pas de grand Autre, le manque ne peut donc pas être réellement comblé par quelque chose d'extérieur, donc pas par quelque chose qui soit matérialisé dans un fétiche, même humain, comme Kyon. Cependant Kyon n'est pas non plus quelque chose d'extérieur, puisqu'il est, comme tous les objets du monde de Haruhi, un produit de son imagination. Il s'agirait donc d'une pure matérialisation à figure humaine de la véritable réponse à son manque, ce qui ferait de Kyon une partie de Haruhi et non un personnage distinct. On peut donc avec un peu d'audace avancer que Kyon et Haruhi ne sont qu'un, qu'il est réellement sa moitié, ce qui n'est pas sans rappeler tout en lui redonnant une piquante nouvelle perspective le "happy end" chrétien par excellence. Malgré tout, le fait que Haruhi ne le reconnaisse pas comme tel, puisqu'ils sont clairement toujours deux personnes distinctes, laisse supposer que le problème n'est pas réglé.

01 June 2008

Laïcité

On ne reconnaît habituellement qu'une religion pose problème que lorsqu'elle constitue un risque potentiel pour le système capitaliste libéral dans lequel nous vivons. De fait, ces religions ont donc on potentiel subversif.

C'est à cause de celui-ci que les nombreux individus touchés de plein fouet par le malaise créé par cette société se tournent en nombre de plus en plus important vers ce type de communautés religieuses.

Or, qu'est-ce que le processus de laïcisation tel que nous l'entendons dans la bouche des libéraux, sinon le fait de rendre les religions aptes à rentrer dans le cadre libéral, ou, à défaut, de marginaliser et stigmatiser celles qui ne le feraient pas, leur retirant ainsi tout aspect nocif pour lui ?

Ce processus peut donc être vu comme la condition sine qua non du fonctionnement de l'opium du peuple comme instrument des puissances qui font l'ordre social, même si la résurgence des intégrismes en période de crise nous montre qu'il est de toute façon voué à l'échec.

L'attitude ambivalente de la laïcité promue par la droite, qui dit oui à, voir encourage, la croyance qui se veut inconditionnelle, et simultanément y porte des restrictions, reflète d'ailleurs cette contradiction.

Pour illustrer ceci, on peut prendre l'exemple des lois interdisant à la religion tout caractère visible en public, par lesquelles on leur enlève tout caractère choquant pour ceux qui n'y prennent pas part, tout en ne faisant rien contre leur effet idéologique sur les populations concernées.

La gauche radicale n'a donc aucun intérêt à aider l'ordre libéral à se maintenir en normalisant la religion pour l'intégrer, puis se renforcer, par cette laïcité.

Ce qu'elle devrait favoriser, c'est la prise de conscience par la classe dominée du fait que son malaise est dû à la structure de la société et que le seul moyen d'y remédier est la lutte politique permettant de le dépasser. Par conséquent, la seule laïcité qu'il ait un sens pour elle de défendre est celle qui permette l'émancipation de chacun, pour parvenir à ce fait.

22 April 2008

Enterprise Social Search slideshow

Enterprise Social Search is a way to search, manage, and share information within a company. Who can help you find relevant information and nothing but relevant information? Your colleagues, of course

Today we are launching at Whatever (the company I work for) a marketing campaign for our upcoming product: Knowledge Plaza. Exciting times ahead!

10 April 2008

10 Apr 2008

Releases

I pushed a bunch of releases on Tuesday, trying to catch the Fedora-9 train (I nearly missed it, it led to a not so fun curl_is_failing_to_upload debug session which led to nss3 for firefox3 is not compatible with nss3 for fedora8 curl), thanks to everybody who helped catch that train !

The releases are mostly bugfixes, libvirt-0.4.2 leading the pack, but libxml2-2.6.23 has a lot of fixes too thanks to various people reporting bug and giving patches, notably the Huawei team. Libxslt-1.1.23 includes the dozen or so fixes since last summer.

Developments

Clearly libxml2 and libxslt are in maintance mode, the focus is on libvirt, maybe I will just add support for the latest Proposed Recommendation of XML-1.0 in libxml2 before the Summer.

For libvirt, clearly we need to extend the number of hypervisor supported, maybe update and clean up the OpenVZ support too. IBM is actively contributing the Linux Container driver, I just commited a second set of patches today, you can expect good support in Fedora 10 I guess. On the high end side Sun just posted the patches for the lDOM virtualization on their Niagara based machines, lot of patch reviews those days. I also want to get a complete set of bindings for Java integrated, and now that Fedora java packaging guidelines are out, this is a good opportunity to add this.

History meme

that one is interesting, here is my contribution, as you can see I'm an old fashionned old fart, main workstation at home:

paphio:~ -> history | awk '{a[$2]++ } END{for(i in
a){print a[i] " " i}}'|sort -rn|head
319 vi
257 ssh
255 cd
156 cvs
130 make
125 ls
79 svn
60 scp
48 su
43 ping
paphio:~ ->

and on my second workstation in Annemasse:

wei:~ -> history | awk '{a[$2]++ } END{for(i in
a){print a[i] " " i}}'|sort -rn|head
362 vi
263 cd
262 make
136 cvs
115 svn
105 ssh
78 ls
67 scp
40 xmllint
38 grep
wei:~ ->

28 January 2008

Ubuntu stable updates

There was some blog entries this week about GNOME stable updates on Ubuntu. There is no reason new bug fix versions could not be uploaded to stable out of the fact that the SRU rules require to check carrefully all the changes and doing this job on all the GNOME tarballs is quite some work, or the ubuntu desktop team is quite small and already overworked.

There is a list of packages which have a relaxed rules though, we have discussed adding GNOME to those since the stable serie usually has fixes worth having and not too many unstable changes (though the stable SVN code usually doesn’t get lot of testing) and decided than the stable updates which look reasonable should be uploaded to hardy-update.

There was also some concerns about gnome-games, 2.20.3 has been uploaded to gutsy-proposed today which should reduce the number of bugs sent to the GNOME bugzilla. The new dependencies on ggz has also been reviewed and 2.21 should be built soon in hardy.

14 November 2007

GNOME and Ubuntu

The FOSSCamp and UDS week has been nice and a good occasion to talk to upstream and people from other distributions. We had desktop discussions about the new technologies landing in GNOME this cycle (the next Ubuntu will be a LTS so we need a balance between new features and stability), the desktop changes we want to do, and how Ubuntu contributes to GNOME.

Some random notes about the Ubuntu upstream contributions:

  • Vincent asked again for an easy way to browse the Ubuntu patches and Scott picked up the task, the result is available there
  • The new Canonical Desktop Team will focus on making the user experience better, most of the changes will likely be upstream material and discussed there, etc
  • Canonical has open Ubuntu Desktop Infrastructure Developer and Ubuntu Conceptual Interface Designer positions, if you want to do desktop work for a cool open source company you might be interested by those ;-)

GNOME updates in gutsy and hardy

  • Selected GNOME 2.20.1 changes have been uploaded to gutsy-updates
  • The GNOME 2.21.2 packaging has started in hardy, some updates and lot of Debian merges are still on the TODO though
  • We have decided to use tags in patches to indicate the corresponding Ubuntu and upstream bugs so it’s easier to get the context of the change, technical details still need to be discussed though

Update: Scott pointed that you can use http://patches.ubuntu.com/n/nautilus/extracted to access to the current nautilus version

03 November 2007

git commit / darcs record

I’ve been working wit git lately but I have also missed the darcs user interface. I honestly think the darcs user interface is the best I’ve ever seen, it’s such a joy to record/push/pull (when darcs doesn’t eat your cpu) :)

I looked at git add --interactive because it had hunk-based commit, a pre-requisite for darcs record-style commit, but it has a terrible user interface, so i just copied the concept: running a git diff, filtering hunks, and then outputing the filtered diff through git apply --cached.

It supports binary diffs, file additions and removal. It also asks for new files to be added even if this is not exactly how darcs behave but I always forget to add new files, so I added it. It will probably break on some extreme corner cases I haven’t been confronted to, but I gladly accept any patches :)

Here’s a sample session of git-darcs-record script:

$ git-darcs-record
Add file:  newfile.txt
Shall I add this file? (1/1) [Ynda] : y

Binary file changed: document.pdf

Shall I record this change? (1/7) [Ynda] : y

foobar.txt
@@ -1,3 +1,5 @@
 line1
 line2
+line3
 line4
+line5

Shall I record this change? (2/7) [Ynda] : y

git-darcs-record
@@ -1,17 +1,5 @@
 #!/usr/bin/env python

-# git-darcs-record, emulate "darcs record" interface on top of a git repository
-#
-# Usage:
-# git-darcs-record first asks for any new file (previously
-#    untracked) to be added to the index.
-# git-darcs-record then asks for each hunk to be recorded in
-#    the next commit. File deletion and binary blobs are supported
-# git-darcs-record finally asks for a small commit message and
-#    executes the 'git commit' command with the newly created
-#    changeset in the index
-
-
 # Copyright (C) 2007 Raphaël Slinckx
 #
 # This program is free software; you can redistribute it and/or

Shall I record this change? (3/7) [Ynda] : y

git-darcs-record
@@ -28,6 +16,19 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

+# git-darcs-record, emulate "darcs record" interface on top of a git repository
+#
+# Usage:
+# git-darcs-record first asks for any new file (previously
+#    untracked) to be added to the index.
+# git-darcs-record then asks for each hunk to be recorded in
+#    the next commit. File deletion and binary blobs are supported
+# git-darcs-record finally asks for a small commit message and
+#    executes the 'git commit' command with the newly created
+#    changeset in the index
+
+
+
 import re, pprint, sys, os

 BINARY = re.compile("GIT binary patch")

Shall I record this change? (4/7) [Ynda] : n

git-darcs-record
@@ -151,16 +152,6 @@ def read_answer(question, allowed_responses=["Y", "n", "d", "a"]):
        return resp

-def setup_git_dir():
-       global GIT_DIR
-       GIT_DIR = os.getcwd()
-       while not os.path.exists(os.path.join(GIT_DIR, ".git")):
-               GIT_DIR = os.path.dirname(GIT_DIR)
-               if GIT_DIR == "/":
-                       return False
-       os.chdir(GIT_DIR)
-       return True
-
 def git_get_untracked_files():

Shall I record this change? (5/7) [Ynda] : y

# On branch master
# Changes to be committed:
#   (use "git reset HEAD file..." to unstage)
#
#       modified:   document.pdf
#       modified:   foobar.txt
#       modified:   git-darcs-record
#       new file:   newfile.txt
#
# Changed but not updated:
#   (use "git add file file..." to update what will be committed)
#
#       modified:   git-darcs-record
#
What is the patch name? Some cute patch name
Created commit a08f34e: Some cute patch name
 4 files changed, 3 insertions(+), 29 deletions(-)
 create mode 100644 newfile.txt

Get the script here: git-darcs-record script and put in somewhere in your $PATH. Any comments or improvements is welcome !

25 July 2007

RMLL 2007

De retour des RMLL, cette année à Amiens, j'allume enfin mon PC après 15 jours d'absence... En réalité, je n'ai pas fait un vrai break informatique, j'avais mon portable ;o)
Comme d'hab, une très bonne édition. Dès que j'ai mis mes photos en ligne, je fournis l'URL.

Les points forts de cette édition : un nouvel étalon pour le terme "cocktail dinatoire", un repas du libre qui n'a pas démérité, des nocturnes sympathiques et bien sûr les confs et ateliers où j'ai pu faire de nouvelles rencontres intéressantes. Cerise sur le gateau, j'était logé en VIP, au même titre qu'Alan Cox (rien que ça), au QG de l'équipe d'organisation. Un lieu calme entouré de verdure et bordé par un canal. Idéal pour récupérer des longues soirées mais qui n'incite pas à se lever tôt pour assister aux premières confs.
On m'a invité à y rester une semaine de plus pour prendre le temps de visiter Amiens et sa région, invitation que j'ai malheureusement du décliner à cause d'un emploi du temps hélàs peu favorable :((

J'avais entre autres prévu d'assister aux festivités nocturnes du 14 juillet à Paris. Étant hébergé chez un copain qui habite prés de Montparnasse, ce fut déjà une immense galère pour arriver chez lui en voiture... tout le centre de Paris étant coupé à la circulation, et bien sûr pas un seul symphatique policier pour indiquer courtoisement et avec le sourire par où passer pour arriver à destination. 2 heures de perdu dans des embouteillages à la con et la pollution qui va avec ! Enfin arrivé, visite touristique de Paris en vélo... départ 19h... on tourne, on tourne, on tourne, pour info, Notre Dame de Paris ne vaut pas sa renommée en comparaison de Notre Dame d'Amiens. Les parigots devraient sortir du périphérique de temps en temps pour gagner en humilité... vers 23h on se dirige vers le Champ de Mars et là, on voit une marée humaine gigantesque qui visiblement quitte les lieux. J'ai loupé les festivités !!!!!! Mais qu'est-ce que c'est que ce délire, il parait que Paris est une ville nocturne et ils font un feu d'artifice à 10h30 !!! Aucun village en France ne fait ça si tôt !!! Je m'en foutait complètement du concert d'un vieux qui vient finir sa vie tranquille en France après s'être exilé à l'étranger pour ne pas payer ses impots, mais pas le feu d'artifice, pas ça !! 'Fin bon, j'aurais au moins vu de près ce que représente 600 000 personnes (selon la police). À traverser en vélo à contre sens, c'est GIGANTESQUE, SANS FIN, INIMAGINABLE. À déconseiller ABSOLUMENT aux ochlophobes ;o)

Revenons un instant aux RMLL. Je vais donner un coup de projecteur sur un projet qui en vaut vraiment la peine : OpenStreetMap. Ce projet consiste à créer des cartes routières libres. A partir des traces relevé par un GPS, on établi des cartes qui peuvent êtres ensuite utilisé librement pour tout type d'usage. Aux RMLL précédentes, à Nancy, le projet UPCT avait déjà retenu mon attention mais il me manquait à l'époque le GPS. Entre temps je me suis acheté un module GPS Bluetooth et j'ai profité du stand OpenStreetMap et de la présence d'Amaury Jacquot pour configurer mon portable pour acquerir les traces de mes déplacements. Mission réussi, j'ai publié sur le serveur mon parcours Paris - Bordeaux - Pau ainsi qu'un paquet de déplacements sur l'agglomération de Pau. Il ne manque plus maintenant qu'à reprendre ces traces au propre pour indiquer le type, sens et nom des routes, rues et voies. Les points d'intérêts et toutes autres informations utiles.
C'est un projet aussi ambitieux et fou que Wikipedia, mais c'est un enjeu d'avenir ou tout le monde peut contribuer. Téléchargez JOSM, regardez si il existe déjà des traces GPS aux alentours de chez vous, et mettez les en forme.

Voilà, voilà, vivement la prochaine édition des RMLL...

Sources

Planète GNOME-FR

Planète GNOME-FR est un aperçu de la vie, du travail et plus généralement du monde des membres de la communauté GNOME-FR.

Certains billets sont rédigés en anglais car nous collaborons avec des gens du monde entier.

Dernière mise à jour :
03 July 2009 à 23:01 UTC
Toutes les heures sont UTC.

Colophon

Planète GNOME-FR est propulsée par l'agrégateur Planet, cron, Python, Red Hat (qui héberge ce serveur).

Le design du site est basé sur celui des sites GNOME et de Planet GNOME.

Planète GNOME-FR est maintenue par Vincent Untz et Frédéric Péters. Si vous souhaitez ajouter votre blog à cette planète, il vous suffit d'ouvrir un bug. N'hésitez pas à nous contacter par courriel pour toute autre question.