Découverte :
Les dev' jam c'est bon pour vous !

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.

IMG_20160123_103437

À ce moment là, on était encore un peu frais ^^

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.

IMG_20160123_200217

Parfois, quand on prend une pause, on a un peu l'impression d'exploiter quelqu'un :p

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.

Photo du Haum, les autres sont disponibles sur leur twitter.

La peer review par les gars du HAUM ! (Vous noterez ma tête pas du tout épuisée tout en bas à gauche)

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 !

  • À propos de
  • Issu du master Bioinfo de Rennes, actuellement en thèse à l'INRA de St-Gilles sur la précision de la prédiction génomique chez la poule pondeuse. Gros addict de Python, mon péché mignon c'est l'Answer Set Programming.

9 commentaires sur “Les dev' jam c'est bon pour vous !

  1. Ça ressemble vachement à une quête vu comme tu l'as présenté ! Merci bien c'était agréable à lire !

    Je me lancerais bien dans un hackaton cette année ! L'avantage de ce genre de projets comme tu l'as bien souligné c'est que tu peux pas dire, tanpis je regarderai demain cette API.

    En ce moment, j'essaie de convaincre mon équipe de bioinformaticien de l'utilité d'une journée tous ensemble pour avancer le code, fixer tous ces petits bugs chiant et s'isoler pour pas être ennuyer toutes les 2 mins. Je pense que le "code" en équipe peut-être hautement profitable !

    Un pti plus pour les Cookies de chez Carrefour : il faut bien de l'énergie !!!

    • C'est comme n'importe quel travail, notamment les révisions d'examen : ce n'est pas productif quand on a son portable dans la main.
      C'est hélas ainsi que de nombreuses personnes «travaillent». (et on l'a vu chez certaines équipes)

      Une dev jam est suffisamment intense pour montrer les bénéfices d'une séance de travail, mais fatigue beaucoup parce que s'étend sur plus de quelques heures.
      Je pense que le côté gestion de projet et travail en équipe rend l'activité absolument crevante, et en cela une nuit de hackathon est beaucoup plus fatigante qu'une nuit de code seul chez soi. (vraiment, j'insiste. On ne m'a pas cru, et même ceux qui avaient l'habitude de passer la nuit réveillé on fait une sieste pendant les 24h)

      L'auteur et 75% de l'équipe sont rôlistes, alors le côté «quête» est assez inévitable 🙂

      • Pour l'aspect quête, à l'origine je voulais écrire tout l'article comme ça, mais c'était trop lourd, alors j'ai gardé que les titres ^^

        Je rebondis sur ce que disais Lucas: c'est effectivement très crevant, notamment à cause du stress. D'un autre coté, c'est aussi induit par le format réduit: 24h, c'est vraiment court, à moins d'être très bien organisé. À voir ce que ça donne sur 48h. Sans compter que la gestrion de projet joue également beaucoup: savoir qui fait quoi, où on en est, est ce qu'il y a le temps d'aller dormir 2-3h, etc...

        En fait, c'est un peu comme un jeu d'arcade: c'est éprouvant, stressant, mais on a envie de recommencer pour améliorer son score 🙂

  2. Salut,
    C'est intéréssant comme article. Est-ce qu'il y aurait un site qui répertoriait différents def jam à travers la France ?
    Merci

    • À ma connaissance, il n'existe pour la France aucun agrégateur ou planète de ce genre de flux, d'autant que nombreuses sont les associations qui font leur comm dans leur coin.
      L'exemple des 24h du code est assez frappant : la communication sur l'évènement est souvent faite à l'arrache et à peine deux semaines avant l'event. Cette année, le site officiel n'a été mis à jour qu'une semaine avant !

      Néanmoins, pour les plus grosse dev jam, on en trouve souvent un écho dans les site d'actu orienté informatique (linuxfr.org, par exemple), mais surtout pour les dev jam dans les plus grandes villes. (paris et lyon essentiellement)

      Le mot clef sur le net français pour ce genre d'évènement, c'est «hackathon». Ça englobe un peu plus que les dev jam.
      Wikimedia, openstreetmap et beaucoup d'autre projets communautaires s'appuient de plus en plus sur ce genre d'évènement pour booster une partie de projet.

      En cherchant un peu, j'ai pu trouver ces pages, qui semblent assez à jour, et probablement les plus complètes que j'ai pu voir :
      - http://www.programmez.com/actualites/evenements/concours-hackathons
      - http://lanyrd.com/guides/paris-hackathons/

    • Lucas s'est avéré plus rapide que moi, mais je ne sais pourquoi son commentaire n'est pas passé, alors je le recopie:
      À ma connaissance, il n'existe pour la France aucun agrégateur ou planète de ce genre de flux, d'autant que nombreuses sont les associations qui font leur comm dans leur coin.
      L'exemple des 24h du code est assez frappant : la communication sur l'évènement est souvent faite à l'arrache et à peine deux semaines avant l'event. Cette année, le site officiel n'a été mis à jour qu'une semaine avant !

      Néanmoins, pour les plus grosse dev jam, on en trouve souvent un écho dans les site d'actu orienté informatique (linuxfr.org, par exemple), mais surtout pour les dev jam dans les plus grandes villes. (paris et lyon essentiellement)

      Le mot clef sur le net français pour ce genre d'évènement, c'est «hackathon». Ça englobe un peu plus que les dev jam.
      Wikimedia, openstreetmap et beaucoup d'autre projets communautaires s'appuient de plus en plus sur ce genre d'évènement pour booster une partie de projet.

      En cherchant un peu, j'ai pu trouver ces pages, qui semblent assez à jour, et probablement les plus complètes que j'ai pu voir :
      http://www.programmez.com/actualites/evenements/concours-hackathons
      http://lanyrd.com/guides/paris-hackathons/

  3. Si des gens s'intéressent aux hackathons, il y a un guide plutôt bien fichu sur le sujet : https://huit.re/edK5ehoc

  4. Félicitation les gars pour votre seconde place!
    BIG POWER!

    Et merci David pour cet article, ça donne envie d'y aller également.

  5. Bonsoir,
    Tout d'abord merci pour le partage de cette expérience !

    J'ai tout de même une question, adressée à Romain (qui 'Vient d'un Master de Biologie, aime bien le C++, SublimeText et le thé') :

    'Pourquoi avoir réalisé, en plus de ce master en biologie, un master en bio info ?'
    Pour une double compétence, avec une base en biologie plus solide, que celle que le Master BIG propose? Par simple changement de goût ? Par ce qu'il n'y avait pas d'offre d'emploi qui te convenait à la suite du Master de Bio ?...

    Merci de votre réponse et de votre aide dans le choix de mon orientation.

    A une prochaine : )

Laisser un commentaire