Les tribulations de bioinformaticiens en territoire sarthois.
Ou pourquoi les dev' jam, c'est le bien.
Préambule glorieux.
Bonjour à tous !
Vous trouverez dans cet article (mon premier sur internet <3) mon retour sur ma première dev' jam, et l'intérêt qu'il peut y avoir, en tant que bioinformaticien, à se rendre à un tel évènement. Pour ceux qui ne connaitraient pas, une development jam est une sorte de concours de programmation en équipe sur un ou plusieurs sujets imposés, sur une durée de temps limitée (généralement un week-end).
Mais quelle est donc cette compagnie, et quel est son objectif ?
Le 23/24 Janvier a eu lieu au Mans la dev' jam Les 24h du code, organisé par l'ENSIM et la Ruche Numérique : 4 sujets au choix, 24h pour rendre un projet fini.
L'occasion pour moi et mes compagnons codeurs d'aller mettre à l'épreuve nos compétences en programmation.
Nous étions à l'origine 5, mais suite à un impondérable, nous fûmes 4, tous en provenance du M2 Bioinformatique de Rennes :
— Lucas : Issu d'une filière informatique, aime le Python, la programmation logique et le chocolat.
— Pierre : Cursus pharmacie, aime les technologies en rapport avec le Web, Python, travailler la nuit et le troll intensif.
— Romain : Vient d'un Master de Biologie, aime bien le C++, SublimeText et le thé.
— David (moi) : Vient de bio, aime faire du Python, des blagues nulles, manger et dormir. Ne se déplace jamais sans ses écouteurs.
Ayant déjà participé aux 24h, et ayant d'un commun accord le plus d'expérience, Lucas a été désigné chef d'équipe. Notre nom (glorieux, et qui retentira à travers les âges) fut choisi avec minutie : The Duck Typers ! Dès le début, il fut décidé d'utiliser Python, éventuellement couplé avec autre chose : c'est un langage que nous connaissons tous, et qui est très versatile.
Attention, dans tout l'article, quand je parlerais de Python, ce sera de Python 3. Si jamais je m'aventure à parler de Python 2, c'est sous le terme (légèrement) trollesque de Dinopython. Vous êtes prévenus.
De comment ça s'est passé. Raconté de manière héroïque (ou pas).
Debout à 6h30, on récupère tout le monde, on prend le train et on arrive au Mans pour 9h30. Le temps de s'installer, présentation des sujets directs à 10h (début du compte à rebours). Premier problème : TOUS les sujets demandent une interface graphique (ce n'était pas le cas les années précédentes), et de nous tous, seul Pierre s'y connait vraiment. Nous choisissons le sujet de data-mining, concocté et géré par le HAUM . Nous avons accès à Tourinsoft, une base de données d’évènements et lieu culturels, et avons pour mission d'afficher de manière originale les données qui s'y trouvent. En gros, on doit fournir une interface permettant de visualiser nos données (en bon bioinformaticien, je pense direct à des graphes). De fait, comme nous l'apprenons plus tard, cette visualisation doit permettre d'extraire le maximum d'informations sur ces évènements culturels. Pour ajouter du contenu à nos données, on décide d'ajouter des informations météo (les coordonnées GPS sont disponibles dans les données), et aussi d'utiliser la DBpédia. Jusqu'à midi, nous réfléchissons au sujet et examinons la base de donnée.
Midi, on mange, petite détente et on y retourne. En bref, on croise les données : je récupère les données météorologiques, si elles sont disponibles, à travers l'API d'OpenWeatherMap (grande première pour moi), Pierre s'occupe de fouiller la DBpédia pour récupérer des infos, et Romain normalise ce qu'on récupère dans les 2 bases de données. Le total de tout ça est encapsulé par Lucas dans un objet facilement manipulable. Tout ça nous prend jusqu'à environ 19h30, heure de la pause repas. Pour l'accès aux résultats, il est décidé de partir sur une interface via smartphone, qui donnera accès aux événements proches.
Cette pause fait du bien au cerveau, mais vraisemblablement pas assez pour moi. Vers 21h, je ne comprends plus rien à ce que je fait, pause d'environ 20min dans la partie dortoir. 21h30, juste à temps, point avec les auteurs du sujet, qui précisent certaines spécificités et ajoute des difficultés au projet, notamment le fait que l’utilisateur puisse ajouter ses propres données. Ils proposent une sortie dans un bar. Acceptée à l'unanimité, cette sortie fait du bien à tout le monde. On reprend, on a du mal à tout assembler et Pierre lutte comme un damné sur l'interface sur téléphone. On s'attaque à une représentation des données sur une carte dynamique (c'est-à-dire avec des réactions en pointant les différents lieux), la documentation de la bibliothèque logicielle utilisée est inexistante… 4h30 du matin, crevé, je vais dormir et Lucas me réveille pour le petit déjeuner à 7h. 8h, rendu du projet et exposé des résultats des différentes équipes.
Ce qu'on a produit au final : une application qui permet, lorsque l'on appuie sur un gros bouton rouge, d'afficher les zones intéressantes à X km de l'emplacement de l'utilisateur. Cela montre également certaines infos supplémentaires, comme la météo, éventuellement le tarif, et une description de l’événement ou du lieu. Pour ceux qui seraient intéressés, notre code est trouvable ici.
Nous sommes finalement classés 2nd, juste derrière une équipe qui a fait tout le projet via MATLAB ! Rien que pour ça, bravo. Eux ont produit une carte des différents lieux et événements, avec la possibilité de rajouter des points supplémentaires. C'est donc eux qui repartent avec les lots, un t‑shirt chacun plus 2–3 goodies si ma mémoire est bonne.
(Pour la petite histoire, l'équipe était composée de physiciens voulant montrer à leurs collègues informaticiens que MATLAB est pleinement utilisable en dehors de la physique… C'est démontré maintenant !)
Mais du coup, combien on a gagné d'xp ? Et on en fait quoi ?
Il faut savoir que pour tout le monde à part Lucas, c'était notre premier projet de ce genre, donc nous avions peu d'expérience. Dans l'ensemble, malgré la fatigue, on a tous bien aimé cette expérience, le sujet imposé et la contrainte de temps obligeant à être créatif. Moi j'ai appris à me servir d'une API, un truc utile (j'ai d'ailleurs en projet de reprendre ce que j'ai fait avec OpenWeatherMap et d'en faire une bibliothèque logicielle pour Python). Et c'est également une expérience précieuse en terme de gestion de projet et de travail en équipe.
Épilogue avec musique épique sur fond de soleil couchant.
Bref, c'est le moment du résumé : en quoi, en temps que bioinfo, vous pourriez être intéressé par ce genre d'événement ?
— C'est un excellent prétexte pour passer un weekend à coder avec des amis.
— On a parfois (souvent) du mal à trouver un projet sympa pour pratiquer, et à s'y mettre. Là, le sujet est offert, et la date de rendue courte oblige à bosser dessus, à être efficient et productif.
— On travaille à plusieurs, c'est un bon moyen de s'entrainer à la coordination en équipe, tester des techniques de gestion de projet, regarder comment les autres bossent.
— On apprend : comme les sujets sont imposés, ou pour le moins thématiques, il y a de grande chances que vous soyez obligés d'apprendre à vous servir d'outils que vous ne connaissez pas. Et là, on remet pas au lendemain, on le fait tout de suite !
— Enfin, cerise sur le gâteau : on évalue ses habitudes de codes ! Personnellement, en dehors d'un léger manque de commentaire, mon code a été jugé globalement très lisible, malgré le manque de relectures et le fait qu'il fallait coder vite, ce qui est assez gratifiant.
Voilà, du coup si vous en avez la possibilité, n'hésitez pas à tenter l'expérience, je vous recommande !
Un grand merci aux relecteurs, Nahoy, Clem_ et Bérénice Batut pour leur remarques et corrections !
Laisser un commentaire