Aller au contenu | Aller au menu | Aller à la recherche

mer. 03 août '16

Flock 2016, day 1

The Fedora users and developers conference, called Flock, is our annual gathering to update everyone on the direction the distribution is going, to talk and hack together, and have fun together. This year it was held in Krakow, Poland. I had the chance to go there with most of the Fedora Infrastructure team, and gave a talk about the HyperKitty deployment we had this year.

Lire la suite...

jeu. 21 mai '15

Mailman 3 is out

….aaaaaaand it happened. The Mailman team just released version 3.0. Three weeks ago, OK I’m late, but that’s nothing on a Mailman-scale ;-)

Here’s the official announcement. You’ll learn there that the first alpha release for 3.0 was published a little over 7 years ago. That’s a “seven”, not a “one”. I won’t paraphrase the announcement, but I’d like to thank all the people who made this release possible over the years. Mailman 3 is complete rewrite of the popular mailing-list server that is used all over the world to create communities. The new software architecture is really sound and clean, and makes it possible to create great addons. Such as HyperKitty. HyperKitty 1.0 was released at the same time as Mailman 3.0, and is part of the Mailman suite.

People are already starting to install this new version and think about migrating their old list servers. There’s a piece of software called Mailman-bundler to help you setup the whole Mailman suite quickly and test it out, but for a real production server you may want to rely on individual packages and custom configuration.

Come talk to us on IRC (#mailman on freenode) if you have any issue setting it up!

Thanks again to the wonderful Mailman team and all those who contributed over the years. Mailman 3 is going to be legendary :-)

sam. 11 avr. '15

First day at PyCon 2015 in Montréal

The day started with a very interesting keynote about volunteer citizen development solving problems where the government falls short.

Then I met some people of the Mailman team, Florian first, then Abhilash (for the first time), and Barry. Barry had just pushed some code in his subpolicy branch that he wanted me to review, and since I didn’t find a talk that inspired me a lot this morning, I spent a couple hours reviewing his new code and making small changes.

Afterwards I realized there were two talks I would have liked to attend, but the good thing with PyCon is that all talks are recorded, so I’ll just watch the videos later.

I had lunch with Luke and Ralph of Fedora engineering fame, and then went to a talk on Python 2 & 3 compatibility, that went over the differences and the tooling we have to overcome them. Since Mailman3 is Python 3 and HyperKitty is Python 2, there are a few intermediate libraries where knowing this will be useful.

Then I went to talks on services and concurrency, which I think will be useful in a Fedmsg-enabled Fedora infrastructure.

After the break, I went to two talks on REST APIs. HyperKitty has a REST API, and it will prove very useful for integration when it’s deployed in Fedora and elsewhere. I want to make sure the API is useful and follows best practices.

The last talk, by Jeff Schenck of, was really interesting. With the dawn of full UI Javascript libraries like Angular.js and Backbone.js, REST APIs today are commonly used to serve data to your own application running in the client’s browser, and not to external developers only. As a consequence, an interface that used to be internal and run in a trusted environment (the server) is now callable by any web client. As a result, we need a powerful authorization models for REST API.

Permissions usually apply to table-level information (may I look at users?), column-level informations (I can look at users but may I look at user’s passwords?), row-level information (I can’t look at user’s private info except if the user is myself), and read/write permissions (I can only write my user info). And obviously a combination of all that.
Right now it’s way too complicated to implement, at least in django-rest-framework. You need to write your permissions twice: one for object listing and one for object access. Some libraries make it a bit easier but we’re far from where we should/could be.

Since I’m using django-rest-framework for HyperKitty’s API, I do intend to work with Jeff and all those interested to solve that issue.

In my very humble opinion, we should create permission classes that would utimately translate into ORM filters. This would apply nicely to object listings, and can work with single object access using another SQL request specifying the object’s primary key. For example, running this type of query: “SELECT COUNT(*) FROM the_table WHERE id=42 AND <permission-filters>”. If you get 0, you’re not allowed, if you get 1, you’re allowed. This model won’t work perfectly for read/write permissions, but they can be a bit different anyway, because they work with HTTP verbs.

Well, that’s just from the top of my head, and it my be obvious (or obviously wrong) to those who have been fighting with this for months/years.

Anyway, that was a very interesting and productive first day. Let’s see what tomorrow brings (and what I’ll be able to bring to tomorrow ;-) )

Also: Montréal is a wonderful city. It really is. And the people there are charming. Plus their language is wonderful :-D

jeu. 19 mar. '15

HyperKitty is now compatible with Mailman3 again

A couple days ago, I released a new version of HyperKitty on PyPI, which is now compatible again with the current Mailman3 branch (and beta tarball releases).

Lots of big changes and refactoring in this version:

  • KittyStore was merge into HyperKitty, which makes the whole suite much easier to install and maintain. This move was announced and discussed on the mailing-list. All the unit tests were ported to HyperKitty, so there shouldn’t be new bugs ;-)
  • The Mailman archiver plugin was split off in its own project: mailman-hyperkitty. This is necessary because this plugin runs within the Mailman process and thus must be Python3-compatible. It makes HTTP calls to HyperKitty to get URL locations and send emails to archive.
  • HyperKitty is now compatible with Django 1.6 and 1.7, with automatic testing using tox. A lot of tests were added, and a couple mistakes were discovered by PyLint.
  • The full-text search engine is now driven by the Haystack library, which allows us to switch to different backends depending on our needs. HyperKitty ships with the Whoosh backend enabled by default, but I’m using the Xapian backend for my tests in the Fedora infrastructure, and it’s significantly faster.

If you want to install HyperKitty now, just use the documentation. If you want to install Mailman 3 + Postorious + HyperKitty at the same time, then wait, there’s more :-)

At PyCon US 2014, I wrote a tool to easily install Mailman 3 + Postorious + HyperKitty in the same instance. This tool used Buildout to compose the install from the releases on PyPI, and was called Mailman-Bundler. Life was good. Unfortunately, when Mailman moved to a Python3-only project at the end of 2014, this tool stopped working for two reasons: HyperKitty was no longer compatible, and Mailman needed its own Python3-based virtualenv to run.

I am pleased to announce that the Mailman bundler tool is working again. If you want to easily install Mailman + HyperKitty + Postorius, just follow the tutorial. It is not very suitable for development though, because I get the code from the PyPI releases, not from bzr/git. Please test it and report bugs! If you want a development setup with fresh code from the VCS, there’s this tutorial that Mo wrote a few months ago, and that I updated.

So you may be wondering: when are we finally going to see HyperKitty in action for real? A just question. I have written a quick wiki page to summarize the steps needed to deploy HyperKitty in the Fedora infrastructure. Basically, the next big step is to package Mailman’s dependencies for EPEL7, which includes the whole Python 3.4 stack, since RHEL7 only ships 3.3 and Mailman requires 3.4. Fortunately I’m not the only one with this requirement, and a Fedora contributor has already drafted a packaging plan. There’s no code yet, but I will contribute to it.

The Mailman team is aiming for a final release at PyCon in April (this year, yes), and we’re aiming for a HyperKitty deployment around the F22 timeframe.

Also, the perspective of the incoming GSoC program this summer is bringing a lot of interested students to Mailman and HyperKitty these days, this is very cool :-)

ven. 23 janv. '15

News of the Mailman3 front

Alright, an update on HyperKitty’s status is looooong overdue. Actually, I should have written this post a week or two ago, but I had hosting issues which forced me to migrate my server at the last minute, and getting it back on was a bit painful… Done now. So, about Mailman3.

There’s been a lot of activity during the Christmas holidays. Barry, the Mailman project leader, decided to merge a branch porting Mailman 3 to Python 3. And since it’s a large amount of code, Mailman3 will not be bilingual: it won’t run on Python 2.X. So yeah, in a couple days, we went from “Python3 compatibility would be nice for Mailman 3 but it’s not a blocker for the release” to “Mailman3 will only run on Python 3”.

I understand Barry’s motives, Python 3 is really superior, especially in the email and unicode handling area which are crucial to Mailman 3. However, this means that a part of HyperKitty’s structure has to change. In the Mailman 3 architecture, an archiver is a Python plugin which runs in its own subprocess, but with the same interpreter. Our plugin calls KittyStore, the HyperKitty backend. As a result, KittyStore must be Python3-compatible. Then, HyperKitty (the Django app) also makes programmatic calls to KittyStore to retrieve the content, update the votes, etc. The API between the two is somewhat isolated, but it would not make a lot of sense to have a fully separated REST protocol between the two, because the requests are just very diverse and complex. So KittyStore is used as a library, which means that if KittyStore is Python 3, HyperKitty must be Python 3 too.

Porting HyperKitty to Python3 is not really an option, because we want it to be installable on an existing Django server, with various other applications that may not be ported yet. So we decided to introduce a level of protocol isolation between Mailman and KittyStore, since that’s where the API is the simplest. REST is what is most logical here, it’s used elsewhere in the Mailman architecture and it’s very flexible. As a consequence, KittyStore has to grow a REST server, be run as an independant process, etc.

After working on that a bit, I realized that the separation between HyperKitty and KittyStore made less and less sense. It was originally a design decision that kept a lot of possibilities opened, for example having other applications (like an NNTP server) access KittyStore, even maybe merging KittyStore into Mailman itself, etc. These things haven’t happened and the chances for them to happen are pretty slim: it would be more logical to access the archive store via REST calls to HyperKitty, which holds more information, and would be more stable and scalable than an internal REST server.

Merging HyperKitty and KittyStore also makes a lot of things easier, as I have explained on HyperKitty’s development mailing-list. Unfortunately, it’s a large amount of refactoring work. But it’s “only” refactoring, and it will make things simpler, thus easier to understand for newcomers and admins. It also means that my automated installer script, mailman-bundler, is broken at the moment, and can’t be fixed until Mailman3 and HyperKitty are compatible again.

Some good news now. Last summer, the two big changes that were under consideration for Mailman 3 were the change of ORM (Storm to SQLAlchemy) and Python 3 porting. Only the ORM change was deemed necessary for the release at that time, but now that I think of it, I should have seen it coming… ;-) As a consequence, only a couple of minor bugs now block Mailman 3 from being released, and the team is aiming for a full release of the Mailman 3 suite at PyCon in April. I’ll be there to lend, so meet us if you can. This is the last mile! :-)


jeu. 31 juil. '14

HyperKitty at Flock

As most Fedora contributors know, Flock 2014 is just around the corner. I’ll have the pleasure to meet you in the beautiful city of Prague, and I’m sure we’ll have an excellent time together at the talks, the hackfests and the evening events :-)

I’ll be giving a talk about HyperKitty on Wednesday 6th at 17:00 (5PM) in room B286, so make sure you attend if you’re interested in how the Fedora folks are going to talk to each other in the future (and then, the whole Free Software world! Mwahahahaha!).

If you want to be a part of that, if you crave for it and want it done faster, if you have a pet feature you’d like to have, come to the workshop that will take place on Friday 8 August at 17:00 (5PM) in room T9:302. I’ll show you the basics so you can be productive quickly.

See you there next week!

mar. 04 mar. '14

Des "mères" en grand nombre

Le texte qui suit est un extrait de Plaidoyer pour l’altruisme par Matthieu Ricard, aux éditions NiL, pages 195, 196 et 197. Gros clin d’œil à la nouvelle association Polyfamilles:-)

Sarah Blaffer Hrdy a consacré sa carrière à étudier cette question, et la synthèse de ses propres travaux et de ceux de nombreux autres anthropologues et éthologues l’a conduite à formuler cette thèse :

L’une des grandes nouveautés des premiers hominidés dans leur manière d’élever les jeunes est l’éventail beaucoup plus large de personnes, autres que la mère, qui prenaient soin des enfants. Cette dépendance par rapport à un plus grand nombre de personnes a créé une pression sélective en faveur des individus les plus aptes à décoder les états mentaux d’autrui et à distinguer les individus suceptibles de les aider de ceux qui pouvaient leur nuire.

Ainsi, le fait que les nouveau-nés interagissent très rapidement avec un nombre élevé de personnes pourrait avoir contribué considérablement à élever le degré de coopération et d’empathie chez l’être humain.


Chez les Hadza d’Afrique, un nouveau-né passe dans les mains de dix-huit personnes dans les vingt-quatre heures qui suivent sa naissance. Il a été montré que les “parents secondaires” jouaient un rôle crucial dans le développement cognitif, l’empathie, l’autonomie et les autres qualités de l’enfant.


Une étude menée entre 1950 et 1980 par le United Kingdom Medical Research Council du Royaume-Uni a suivi le taux de croissance des enfants dans les tribus d’horticulteurs mandinka en Gambie. Sur plus de deux mille enfants, près de 40% de ceux qui ont été élevés uniquement par leurs deux parents sont morts avant l’âge de cinq ans. Mais pour un enfant dont les frères et sœurs et la grand-mère maternelle vivaient à proximité immédiate, la probabilité de mourir avant l’âge de cinq ans tombait de 40% à 20%. En particulier, la présence proche d’une grand-mère dès la naissance détermine l’état de santé et les capacités cognitives de l’enfant trois ans plus tard. Pour Hrdy, sans l’aide de “parents adjoints”, il n’y aurait jamais eu d’espèce humaine. La notion de “famille”, limitée à un couple et leurs enfants, ne remonte qu’au XXe siècle en Europe, et aux années 1950 aux États-Unis.

jeu. 13 juin '13

HyperKitty update

Hey y’all !

It’s been a long time since you last heard about HyperKitty, don’t you think? Here are the main new features that landed recently:

  • Unread tracking! This is something very useful in a web forum context that many users rely on. When you’re logged into HyperKitty, it will remember which threads you’ve read and when you’ve read them. When you come back to the month view, the threads that have new replies will be highlighted. When you read those threads, the new messages themselves will be highlighted.
  • When viewing a thread with unread messages, you get a mini navigation bar in the bottom right corner which allows you to jump through the unread messages. There are even hotkeys available! (hover the links to see them)
  • Search engine! HyperKitty now uses the Whoosh indexing library to give you full-text search results. You can even search across multiple mailing-lists in a single swoop.
  • Fixes across the board, especially in the timezone handling. When you have an international community such as Fedora, you have to get those right.

You can try out HyperKitty on this mirror of the Fedora-devel mailing-list. It’s a development server so it may be broken when you look at it; if so just come back later.

Hope you’ll like it!

lun. 20 mai '13

You know what deserves a new release ? HyperKitty.

The last release of HyperKitty was in February (19th). That’s a long time ago. And there’s been quite a few changes in the HyperKitty world, let me tell you.

So I’ve just published yesterday a new version of our favorite Mailman3 web archiver, which is available on PyPI. Here are the most significant code changes since the last version:

  • Merge and compress static files (CSS and Javascript)
  • Django 1.5 compatibility
  • Fixed REST API
  • Improved RPM packaging
  • Auto-subscribe the user to the list when they reply online
  • New login providers: generic OpenID and Fedora
  • Improved page loading on long threads: the replies are loaded asynchronously
  • Replies are dynamically inserted in the thread view

But code is not everything, and HyperKitty has now been deployed to serve real mailing-lists, alongside Mailman3 of course. The Fedora Infrastructure team uses is (lightly for now), and the Arquillian project has chosen to setup its lists on HyperKitty, using our server. This means we have a second server running, deployed using the HyperKitty RPMs and Ansible (which is great by the way).

If you’re interested in the future of mailing-lists, please checkout HyperKitty, I’m sure you’ll love it. And if you don’t, tell me why so I can make it work for you!

mar. 23 avr. '13

Mariage homosexuel : c'est passé

Si vous êtes Français, vous n’êtes pas sans savoir que l’Assemblée Nationale a adopté aujourd’hui un texte de loi qui ouvre le mariage civil et l’adoption aux couples de même sexe.

Ce débat de société a été long (plusieurs mois), et s’est terminé par des violences dont on se serait bien passées. Mais ça y est, le texte est voté, et il est peu probable que le recours au Conseil Constitutionnel que déposera la droite puisse l’arrêter.

Si j’écris un petit mot ici, c’est pour faire un compte rendu de ce que j’ai observé de ce débat. Pendant les mois qui ont duré, je n’ai pas entendu UN SEUL argument contre le mariage pour tous qui résiste à l’analyse logique. Pas un. Et pourtant je n’ai pas gardé la tête dans le sable. J’ai lu des commentaire, des tas de commentaires. J’ai même lu plusieurs articles qui s’opposaient à cette loi. J’ai un ami qui est contre, et qui a partagé des liens défendant ce point de vue.

Je ne vais pas reprendre les arguments un à un, ce serait trop fastidieux, mais à ce que j’en ai vu ils proviennent de quatre origines.

  1. l’homophobie, ou plutôt des préjugés négatifs envers les homosexuels. Il y avait des arguments de cette nature, c’est clair, mais il n’y avait pas que cela.
  2. le sexisme, par exemple en déclarant que les femmes savent naturellement mieux s’occuper des enfants que les hommes, et que donc un enfant serait malheureux dans un couple de gays.
  3. une méconnaissance des besoins des enfants, qui peut être de bonne foi, par exemple en disant que c’est un besoin essentiel de l’enfant que d’avoir deux parents de sexe différent. A noter que certains de ces arguments sont en fait tout simplement sexistes (besoin de bien séparer et propager les rôles genrés), mais pas toujours. Du moins, parfois il reste un doute, je donne donc avec plaisir le bénéfice associé.
  4. une confusion sur le mariage civil, en l’identifiant au mariage catholique. Le mariage civil n’a pas pour objectif la procréation, sinon il serait interdit aux couples infertiles et aux femmes ménopausées.

On peut facilement démonter le troisième argument en regardant les études statistiques probantes qui ont été faites dans les pays où le mariage et l’adoption sont ouverts à tous les couples. Regarder aussi par exemple l’intervention de Pablo Seban lors des auditions à l’Assemblée Nationale fin décembre (10 min).

Le quatrième argument se retrouve plus sournoisement, parce qu’on discute en utilisant les mêmes termes pour ne pas parler de la même chose, et peut expliquer pourquoi certaines personnes ont l’impression que le mariage est vidé de sa substance. C’est une substance qu’il n’avait pas au départ.

Il est ensuite des arguments qui sont bien moins solides et ne méritent même pas une analyse de plus de quelques secondes, comme le fait que l’ouverture du mariage aux homosexuels l’ouvrirait aussi à la zoophilie (comme si un animal pouvait consentir à un mariage), le fait qu’un enfant ait absolument besoin de ses deux parents (interdisons le divorce alors), le fait que seuls les parents biologiques puissent être les parents affectifs/éducatifs (interdisons l’adoption alors), etc… Quant à l’histoire du “on ne ment pas aux enfants”, ça ne tient vraiment pas la route. Connaissez-vous un seul couple ayant adopté qui ait fait croire à leur enfant qu’ils étaient les parents biologiques ? À part dans un film hollywoodien ? (en plus quand on adopte c’est assez souvent d’une autre ethnie : un haïtien, une asiatique, etc, de toute façon “ça se voit”). Quand on adopte, il est effectivement préférable de ne pas mentir à l’enfant, mais personne n’avait ça en tête. Je connais personnellement un couple qui a adopté, on est bien informé sur la façon d’aborder ce point délicat avec l’enfant. La plupart du temps ça passe comme une lettre à la poste (quand c’est fait assez jeune et qu’il n’y a jamais eu de mensonge justement).

J’ai aussi entendu plusieurs fois une dénonciation du “consumérisme” que représente cette loi, puisqu’elle donne la possibilité à des couples infertiles d’avoir un enfant, au nom d’un prétendu “droit à l’enfant”[1]. Mais il s’applique à l’adoption en général, tout simplement. On ne peut pas non plus limiter l’adoption aux couples fertiles qui font le choix de ne pas faire d’enfant eux-même, ça ne règlerait pas le problème et contribuerait à garder les enfants en orphelinat (combien sont-ils, ces couples ?)

Bref, je ne suis pas sensible à tous les arguments pour. Je suis autant convaincu par l’argument pro du “sens de l’Histoire” que par l’argument contre de la “loi de la Nature”, c’est à dire pas du tout. Mais j’aurais aimé qu’on présente des arguments logiques, fondés sur des bases solides, si possible scientifiques (études statistiques sociologiques). Et je n’en ai pas vu. Après plusieurs mois de débats et une attention particulière à ce sujet, je suis tenté de dire qu’il n’y en a pas (je ne le ferais pas, bien sûr, ce ne serait pas scientifique ;-) ).

Je suis désolé pour toutes les personnes que cette loi choque dans leurs plus profondes convictions, ou croyances. Il y a ceux et celles qui ont une haine viscérale de l’homosexuel, mais vous êtes minoritaires, et j’espère que vous le resterez. Pour tous les autres qui pensent vraiment au bien des enfants, de bonne foi, mais avec leur propre grille de lecture, je suis sincèrement désolé pour votre souffrance aujourd’hui (j’ai des amis et de la famille parmi vous). Mais j’espère que ce sera l’occasion de réexaminer votre point de vue sur le monde qui vous entoure, et ce qui motive vos valeurs.

Je ne cherche pas à faire du triomphalisme, mais au final je suis très content que ce texte ait été adopté. :-)

Notes :

[1]  Cet argument me marque assez personnellement, puisque je ne peux vraiment pas être accusé d’encourager la consommation à outrance ou la démographie galopante, c’est le moins qu’on puisse dire.

jeu. 21 mar. '13

HyperKitty has a new contributor

Since a few weeks ago, Aslak Knutsen (GitHub, Twitter) has joined the HyperKitty developers team and contributed a few pull requests already!

Aslak is a developer working at Red Hat on the Arquillian project, a testing framework for JBoss applications. He has already improved the HyperKitty REST API and built a very nice interface above it to integrate with his project. Check out his video:

He’s also squashed a few bugs and improved the speed of some database operations. A very good start!

Welcome Aslak, we’re very happy to count you in!

HyperKitty is still marching forward, and there’s been quite a few improvements since the last time I blogged about it (a.k.a the Pleistocene). I’m keeping our development server current, have a look at it if you’re interested!

lun. 14 janv. '13

HyperKitty moved to Github

HyperKitty development used to happen on the platform, using the Bazaar version control system. The reason for this was that the rest of the Mailman developers were all using Bazaar, so it made sense for us to use it too in order to facilitate contributions.

But the fact is that the three main HyperKitty developers are much more at ease with Git than with Bazaar. I for one organized a migration from Subversion to Git in my previous job, where our SVN repositories had an “original” structure, and needed a lot of scripting to convert them to Git branches. I also integrated Git in our previous workflow and continuous integration server (Buildbot). That’s when I learned many of Git’s underlying tools (the plumbing commands), so I’m very familiar with it.

All in all, the move to Git makes sense now, and we chose the Github platform for hosting the code. It’s very popular and we hope it will limit the friction to contribute. Thanks to Git’s distributed nature we are not locked on Github, so the fact that it’s closed source is not too much of a problem for us. The ticketing system, the wiki and the mailing-lists stay on however, Github is only for code hosting.

Here are the new HyperKitty repositories: Feel free to fork and contribute !

ven. 23 nov. '12

First alpha release for HyperKitty

HyperKitty, the next-generation Mailman archiver, is advancing at a reasonable pace, and the time has come for its first alpha release.

The code has been published on PyPI :

I’ve also written some installation and development documentation using the wonderful Sphinx documentation system, which allows us to publish the documentation online at

If you’re interested in HyperKitty, want to test it, or even contribute to it, it’s now pretty easy, just follow the procedure described in the doc. Django hackers, and even regular Python hackers, will find it quite common.

Please report any bug you can find on our tracker project page.

I hope you’ll like it !

mer. 17 oct. '12

Progress on HyperKitty

Well, long time no blog. But not as long as last time. Oh well.

There was FUDCon (Fedora Users and Developers Conference) in Paris this weekend. We had a great time, got some work done, but more importantly we got a chance to meet each other. I met Spot, my manager, and part of the team. And I met again the other French contributors to Fedora, which is always nice.

I tried to demo the project I’m working on, HyperKitty, but unfortunately I did it at the wrong time, so too few people were interested. This blog post will hopefully spread the word more widely. And who knows, maybe I’ll even take the habit of blogging more often. Sounds familiar ? D’uh.

Below are the slides I made for FUDCon, and some explanations to go with it. Just click to get to the next slide, and right-click to go back.

The current version of Mailman is 2.1, a version we have known to love (or hate every month) over the years. But Mailman 3 is in the works, and very close to release. We’re talking weeks here, a couple of months at most.

Mailman 3 is a complete redesign of the project. It focuses on a core server, which runs components, each running agents and passing email around.

You’ll find more info on Mailman 3’s architecture in its chapter of the AOSA book. There are many very interesting new features in this new version, including improvements in code quality and stability (which is a feature!).

The archiver which was shipped with Mailman 2.1, Pipermail, was stripped off, and an API was designed to enable any archiver to plug into Mailman3. It ships with plugins for The Mail Archive, MHonArc, and a basic archiver which stores the mails in maildirs. This is not how we, at the Fedora Project, think mailing-list would be best archived, viewed, and interacted with. So a few people in the Fedora Engineering Team started the HyperKitty project, working on the design, making prototypes, and recently hiring me to implement it. The links to the early design mockups can be found on the HyperKitty project page.

So, where are we ? I’ve worked a lot on the backend, called KittyStore, and I’ve only recently begun to touch the front-end, written in Python/Django. Fortunately, the work done by other contributors before me (Pingou, Toshio and Syst3mW0rm) was already very usable. A test server was setup with the latest developments, feel free to browse the imported archives there, but don’t be too surprised if it suddenly crashes on you, I may be uploading a new snapshot at the same time. Please report any bug you can find on the project’s Trac instance.

My aim is to have something stable with a basic feature set when Mailman 3 is released. I’ll implement the very nice features designed by Máirín later on. It’s going rather well, I’m fixing a few bugs and implementing the last necessary features such as importing from Pipermail and keeping Pipermail-compatible URL to transparently redirect to the new ones. I think we can meet the Mailman 3 release.

If you want to help, you can by installing it (and writing down the process!), testing it, importing from you own archive, testing the UI, reporting the bugs, etc. It’s a little early for new features, but if you’re motivated please go ahead ! They will probably be merged in a post-1.0 release however.

lun. 30 juil. '12

Joining Red Hat

As some of you already know, I’m joining Red Hat to work on the Fedora Project full time. This is a dream coming true for me, I’ve been involved with Fedora since a few months before its creation, in late 2003 (the times), and although there has been significant variations in the time I could spend on the project, I’ve always been passionately interested with it.

It’s a big career change for me, from C-S and the world of commercial engineering services companies, to an open community and a cooperation-based project, backed by a software company, one of the most meaningful in the world. I am super-excited :-)

I’m joining the Fedora Engineering team, and I’ll be working with excellent hackers, some of which I already had the chance to work with these last years. My work will mainly consist in coding on python-based web apps to help the Fedora project, either by creating new ones or by contributing to the open source projects we use (for example, Mailman).

I leave behind me a lot of great people, but only their “colleague” hat, hopefully not their “friend” hat, since I am determined to keep in touch. I’m also leaving the technical leadership of Vigilo, an open-source monitoring solution based on Nagios, in the very capable hands of François. I’m not the least worried about it, he’ll do a great job.

I will try to keep this blog updated with my progress on the different tasks I’ll be working on, but let’s be realistic: it’s not the first time I decide to update my blog more often. Hopefully this new opportunity will give me the fuel I need to write. Expect updates, but don’t bet too much on them at first. I’ll be blogging my Fedora activities in English, since it’s the language I’ll be working with now, and the one my new colleagues will understand. Maybe I’ll have the courage to write a french version too, we’ll see.

OK, enough talking, let’s write some code and help people.

mar. 29 mai '12

All is emptyness, Mr Anderson

Et c’est parti pour le quatrième article de ma relativement petite série sur les liens entre le bouddhisme et la culture occidentale contemporaine. Cette fois-ci, c’est Matrix qui sert d’exemple pour illustrer la notion de “vacuité”, qui est centrale dans le bouddhisme. Comment ? Pourquoi ? Explications.

Lire la suite...

ven. 09 sept. '11

Mais c'est quoi l'ESS ?

On parle beaucoup d’Économie Sociale et Solidaire, mais finalement savez-vous ce que c’est ? La page Wikipedia donne une courte définition, mais le novice que je suis ne sait pas toujours où elle commence et où elle s’arrête.

Heureusement, une amie geekette travaille dans ce domaine, et a publié un article très clair sur le sujet. Merci Antoinette !

J’en profite pour lui faire un peu de pub, puisqu’elle travaille en tant qu’indépendante dans la sociologie des organisations : c’est quelqu’un de tout à fait équilibré, suffisamment geek pour comprendre une conversation d’informaticiens (et c’est pas toujours facile avec nous ;-)), mais aussi suffisamment persévérante pour détricoter les problèmes relationnels qui freinent les entreprises et les associations. Voilà, la pub s’arrête là, si vous êtes intéressés voici son site.

Pour en revenir à l’économie sociale et solidaire, son lien avec les logiciels libres en terme de valeurs partagées n’est plus à démontrer. Là aussi de très bons articles ont été écrits sur le sujet, je vous recommande cet article de Framasoft et un article de la SCIL qui détaillent bien le sujet. On voit aussi que les associations de ces deux mondes commencent à se rapprocher, notamment avec la création de l’AI2L.

Il semble clair aujourd’hui qu’il y a là un vaste terrain d’entente, et que nous avons beaucoup à apprendre les uns des autres pour faire avancer nos causes communes. Affaire à suivre, et de près.

sam. 16 juil. '11

XHTML2ODT sort en version 1.3

Après environ 1 an de développements épisodiques, voici une nouvelle version de la bibliothèque XHTML 2 ODT, permettant de convertir du HTML bien formé en ODT, le format standard de bureautique.

Parmi les nouveautés, des améliorations de conversion de certaines balises (dl et span par exemple), des améliorations dans la gestion des images, l’ajout de paquets RPM et Deb, et la gestion du HTML généré par Lyx et Elyxer.

En ce qui concerne le packaging, des paquets RPM et Deb sont générés par le OpenSuSE Build Service, qui est un outil vraiment très intéressant quand on cible plusieurs distributions. Pour cette version, j’ai aussi créé un feed Zero Install. Zero Install est une méthode d’installation d’applications qui vient en parallèle du système natif de la distribution (mais qui s’intègre avec). C’est très utile pour des applications qui sont mis à jour très fréquemment, comme Firefox par exemple, ou pour distribuer une application sous une forme indépendante de la distribution. Je vous laisse creuser le sujet si ça vous intéresse, mais c’est un ensemble d’outils qui mériteraient d’être plus connus.

Rendez-vous sur le site du projet xhtml2odt ou directement sur la page de téléchargement pour récupérer la dernière version de la bibliothèque.

sam. 25 juin '11

Le bouddhiste serait-il agile ?

Non, il ne s’agit pas de disserter sur la souplesse des moines Shaolin… :) Voici un article de plus dans ma petite série reliant le bouddhisme à la culture occidentale contemporaine. Cette fois ci je vais essayer de faire un lien entre deux domaines qui m’intéressent au plus haut point : le bouddhisme et l’informatique.

Lire la suite...

dim. 03 avr. '11

Comment écrire du code testable

Je vous propose les diapositives d’une présentation que j’ai réalisée récemment, concernant les méthodes de développement permettant d’écrire un code facilement testable.

Lire la suite...

- page 1 de 20