Bon, les hackathons,
c'est un sujet banal, la majorité (la totalité ?) de mes
lect·eur·rice·s ont déjà participé à un hackathon mais, pour moi,
c'était la première fois. Donc, en mode « Stéphane découvre les
hackathons après tout le monde », voici celui de
l'IETF qui s'est tenu les 25 et 26 mars à
Chicago.
Le concept est à la mode, c'est sûr, mais il est aussi
extrêmement galvaudé. Toute startup, tout gouvernement, toute
organisation de powerpointeurs se doit aujourd'hui d'avoir
son hackathon. La plupart du temps, il s'agit juste de vagues
rassemblements qui commencent à 10 h, s'interrompent de 12 à 14 h,
et se terminent par des
pitches à 16 h. Il
s'agit davantage de séances de
remue-méninges, voire de purs évenements de
communication, que de vrais hackathons.
Mais, alors, c'est quoi, un « vrai » hackathon ? C'est avant
tout un rassemblement où on produit quelque
chose. Pas forcément des programmes, mais c'est souvent le cas,
puisque le concept vient du monde de l'informatique. Le hackathon,
pour moi, c'est une occasion où on parle, certes, on échange, mais
il y a un but concret, à la fin, on a quelque chose qui tourne. Et
comme le vrai travail prend du temps, un hackathon ne peut pas se
dérouler en seulement quelques heures.
Et celui de l'IETF, c'est un « vrai » ?
La tâche principale de l'IETF n'est pas de développer des programmes,
c'est d'écrire des normes. Certes, l'IETF a
toujours tiré fierté de son caractère concret, de l'importance
donnée au
« running code », au code qui marche. Mais la
production de logiciels
n'était pas une activité organisée de l'IETF. C'est seulement en
2015, à la réunion de Dallas, que l'IETF a
organisé un hackathon, le week-end précédent la réunion. Ce n'est
donc pas une vieille tradition.
On travaille sur quoi, à un hackathon IETF ? L'idée est
évidemment de travailler sur les techniques IETF, donc toute la
famille TCP/IP. Mais la priorité est surtout
donnée aux normes en cours de développement : une mise en œuvre
précoce peut aider à détecter des problèmes dans la spécification,
apprécier son réalisme, avoir une idée des performances. La plupart
des développeurs présents travaillaient donc sur des idées
documentées dans un Internet-Draft.
Nous étions 14 équipes, chacune travaillant sur un sujet spécifique de
l'IETF. La liste des équipes est disponible
sur le Wiki du hackathon. J'étais dans l'équipe
DNS (évidemment,
vont dire certains). Globalement, c'est très libre, chacun
travaille sur ce qu'il veut, et si on veut que les autres vous
suivent, il faut les convaincre. Comme
pour tout bon hackathon, on avait une salle de
l'hôtel, du courant électrique, du Wifi, du café à volonté et de temps en temps
des repas qui apparaissaient magiquement (non, je rigole, c'est
Mozilla et Ericsson
qui payaient les repas).
Chacun avait évidemment son ordinateur portable mais quelques uns
avaient du matériel plus spécialisé comme l'équipe
multicast :
À partir de là, chaque équipe a fait ses plans (voici le projet
CAPPORT, le groupe de travail IETF qui essaie de nous sauver de ces
affreux portails captifs, voir par exemple le
) :
J'ai beaucoup aimé le concept. C'est très sympa de
passer un week-end à ne faire que programmer et discuter
d'informatique. L'ambiance était bonne (je craignais un peu que ce
soit assez viriliste, tendance piscine d'une école parisienne à la mode, mais non). En prime, j'ai pu terminer
mon sujet.
Tout programme informatique moderne dépend d'autres programmes et
bibliothèques et,
souvent, les difficultés viennent de ces autres programmes qui ne font
pas ce qu'on veut. Il faut alors prévenir le développeur, attendre
qu'il réagisse. Ici, j'utilisais surtout la bibliothèque de programmes
getdns et le développeur,
Willem Toorop, était assis juste à côté de moi, je
pouvais donc lui demander des trucs (« ya pas moyen de récupérer le
certificat X.509 du pair, dans la struct renvoyée par un call
reporting ? ») et il le faisait tout de suite (« j'ai mis ton truc,
c'est dans la branchedevel/, attention, j'ai pas testé »).
Allez, une image de nourriture, pour finir, pour montrer qu'on ne
mangeait pas que des pizzas :