Première rédaction de cet article le 29 mars 2017
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 RFC 7710) :
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 branche devel/
, attention, j'ai pas testé »).
Allez, une image de nourriture, pour finir, pour montrer qu'on ne mangeait pas que des pizzas :
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)