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.

Bon­jour à tous !

Vous trou­ve­rez dans cet article (mon pre­mier sur inter­net <3) mon retour sur ma pre­mière dev' jam, et l'intérêt qu'il peut y avoir, en tant que bio­in­for­ma­ti­cien, à se rendre à un tel évè­ne­ment. Pour ceux qui ne connai­traient pas, une deve­lop­ment jam est une sorte de concours de pro­gram­ma­tion en équipe sur un ou plu­sieurs sujets impo­sés, sur une durée de temps limi­tée (géné­ra­le­ment un week-end).

 

Mais quelle est donc cette compagnie, et quel est son objectif ?

Le 23/​24 Jan­vier a eu lieu au Mans la dev' jam Les 24h du code, orga­ni­sé par l'ENSIM et la Ruche Numé­rique : 4 sujets au choix, 24h pour rendre un pro­jet fini.
L'occasion pour moi et mes com­pa­gnons codeurs d'aller mettre à l'épreuve nos com­pé­tences en pro­gram­ma­tion.

Nous étions à l'origine 5, mais suite à un impon­dé­rable, nous fûmes 4, tous en pro­ve­nance du M2 Bio­in­for­ma­tique de Rennes :
— Lucas : Issu d'une filière infor­ma­tique, aime le Python, la pro­gram­ma­tion logique et le cho­co­lat.
— Pierre : Cur­sus phar­ma­cie, aime les tech­no­lo­gies en rap­port avec le Web, Python, tra­vailler la nuit et le troll inten­sif.
— Romain : Vient d'un Mas­ter de Bio­lo­gie, aime bien le C++, Subli­me­Text et le thé.
— David (moi) : Vient de bio, aime faire du Python, des blagues nulles, man­ger et dor­mir. Ne se déplace jamais sans ses écou­teurs.

Ayant déjà par­ti­ci­pé aux 24h, et ayant d'un com­mun accord le plus d'expérience, Lucas a été dési­gné chef d'équipe. Notre nom (glo­rieux, et qui reten­ti­ra à tra­vers les âges) fut choi­si avec minu­tie : The Duck Typers ! Dès le début, il fut déci­dé d'utiliser Python, éven­tuel­le­ment cou­plé avec autre chose : c'est un lan­gage que nous connais­sons tous, et qui est très ver­sa­tile.
Atten­tion, dans tout l'article, quand je par­le­rais de Python, ce sera de Python 3. Si jamais je m'aventure à par­ler de Python 2, c'est sous le terme (légè­re­ment) trol­lesque de Dino­py­thon. Vous êtes pré­ve­nus.

 

De comment ça s'est passé. Raconté de manière héroïque (ou pas).

Debout à 6h30, on récu­père tout le monde, on prend le train et on arrive au Mans pour 9h30. Le temps de s'installer, pré­sen­ta­tion des sujets directs à 10h (début du compte à rebours). Pre­mier pro­blème : TOUS les sujets demandent une inter­face gra­phique (ce n'était pas le cas les années pré­cé­dentes), et de nous tous, seul Pierre s'y connait vrai­ment. Nous choi­sis­sons le sujet de data-mining, concoc­té et géré par le HAUM . Nous avons accès à Tou­rin­soft, une base de don­nées d’évènements et lieu cultu­rels, et avons pour mis­sion d'afficher de manière ori­gi­nale les don­nées qui s'y trouvent. En gros, on doit four­nir une inter­face per­met­tant de visua­li­ser nos don­nées (en bon bio­in­for­ma­ti­cien, je pense direct à des graphes). De fait, comme nous l'apprenons plus tard, cette visua­li­sa­tion doit per­mettre d'extraire le maxi­mum d'informations sur ces évè­ne­ments cultu­rels. Pour ajou­ter du conte­nu à nos don­nées, on décide d'ajouter des infor­ma­tions météo (les coor­don­nées GPS sont dis­po­nibles dans les don­nées), et aus­si d'utiliser la DBpé­dia. Jusqu'à midi, nous réflé­chis­sons au sujet et exa­mi­nons la base de don­né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 don­nées : je récu­père les don­nées météo­ro­lo­giques, si elles sont dis­po­nibles, à tra­vers l'API d'Open­Wea­ther­Map (grande pre­mière pour moi), Pierre s'occupe de fouiller la DBpé­dia pour récu­pé­rer des infos, et Romain nor­ma­lise ce qu'on récu­père dans les 2 bases de don­nées. Le total de tout ça est encap­su­lé par Lucas dans un objet faci­le­ment mani­pu­lable. Tout ça nous prend jusqu'à envi­ron 19h30, heure de la pause repas. Pour l'accès aux résul­tats, il est déci­dé de par­tir sur une inter­face via smart­phone, qui don­ne­ra accès aux évé­ne­ments proches.

IMG_20160123_200217
Par­fois, quand on prend une pause, on a un peu l'impression d'exploiter quelqu'un :p

Cette pause fait du bien au cer­veau, mais vrai­sem­bla­ble­ment pas assez pour moi. Vers 21h, je ne com­prends plus rien à ce que je fait, pause d'environ 20min dans la par­tie dor­toir. 21h30, juste à temps, point avec les auteurs du sujet, qui pré­cisent cer­taines spé­ci­fi­ci­tés et ajoute des dif­fi­cul­tés au pro­jet, notam­ment le fait que l’utilisateur puisse ajou­ter ses propres don­nées. Ils pro­posent une sor­tie dans un bar. Accep­tée à l'unanimité, cette sor­tie fait du bien à tout le monde. On reprend, on a du mal à tout assem­bler et Pierre lutte comme un dam­né sur l'interface sur télé­phone. On s'attaque à une repré­sen­ta­tion des don­nées sur une carte dyna­mique (c'est-à-dire avec des réac­tions en poin­tant les dif­fé­rents lieux), la docu­men­ta­tion de la biblio­thèque logi­cielle uti­li­sée est inexis­tante… 4h30 du matin, cre­vé, je vais dor­mir et Lucas me réveille pour le petit déjeu­ner à 7h. 8h, ren­du du pro­jet et expo­sé des résul­tats des dif­fé­rentes équipes.

Photo du Haum, les autres sont disponibles sur leur twitter.
La peer review par les gars du HAUM ! (Vous note­rez ma tête pas du tout épui­sée tout en bas à gauche)

Ce qu'on a pro­duit au final : une appli­ca­tion qui per­met, lorsque l'on appuie sur un gros bou­ton rouge, d'afficher les zones inté­res­santes à X km de l'emplacement de l'utilisateur. Cela montre éga­le­ment cer­taines infos sup­plé­men­taires, comme la météo, éven­tuel­le­ment le tarif, et une des­crip­tion de l’événement ou du lieu. Pour ceux qui seraient inté­res­sés, notre code est trou­vable ici.

Nous sommes fina­le­ment clas­sés 2nd, juste der­rière une équipe qui a fait tout le pro­jet via MATLAB ! Rien que pour ça, bra­vo. Eux ont pro­duit une carte des dif­fé­rents lieux et évé­ne­ments, avec la pos­si­bi­li­té de rajou­ter des points sup­plé­men­taires. C'est donc eux qui repartent avec les lots, un t‑shirt cha­cun plus 2–3 goo­dies si ma mémoire est bonne.

(Pour la petite his­toire, l'équipe était com­po­sée de phy­si­ciens vou­lant mon­trer à leurs col­lègues infor­ma­ti­ciens que MATLAB est plei­ne­ment uti­li­sable en dehors de la phy­sique… C'est démon­tré main­te­nant !)

 

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 pre­mier pro­jet de ce genre, donc nous avions peu d'expérience. Dans l'ensemble, mal­gré la fatigue, on a tous bien aimé cette expé­rience, le sujet impo­sé et la contrainte de temps obli­geant à être créa­tif. Moi j'ai appris à me ser­vir d'une API, un truc utile (j'ai d'ailleurs en pro­jet de reprendre ce que j'ai fait avec Open­Wea­ther­Map et d'en faire une biblio­thèque logi­cielle pour Python). Et c'est éga­le­ment une expé­rience pré­cieuse en terme de ges­tion de pro­jet et de tra­vail en équipe.

 

Épilogue avec musique épique sur fond de soleil couchant.

Bref, c'est le moment du résu­mé : en quoi, en temps que bioin­fo, vous pour­riez être inté­res­sé par ce genre d'événement ?
— C'est un excellent pré­texte pour pas­ser un wee­kend à coder avec des amis.
— On a par­fois (sou­vent) du mal à trou­ver un pro­jet sym­pa pour pra­ti­quer, et à s'y mettre. Là, le sujet est offert, et la date de ren­due courte oblige à bos­ser des­sus, à être effi­cient et pro­duc­tif.
— On tra­vaille à plu­sieurs, c'est un bon moyen de s'entrainer à la coor­di­na­tion en équipe, tes­ter des tech­niques de ges­tion de pro­jet, regar­der com­ment les autres bossent.
— On apprend : comme les sujets sont impo­sés, ou pour le moins thé­ma­tiques, il y a de grande chances que vous soyez obli­gés d'apprendre à vous ser­vir d'outils que vous ne connais­sez pas. Et là, on remet pas au len­de­main, on le fait tout de suite !
— Enfin, cerise sur le gâteau : on éva­lue ses habi­tudes de codes ! Per­son­nel­le­ment, en dehors d'un léger manque de com­men­taire, mon code a été jugé glo­ba­le­ment très lisible, mal­gré le manque de relec­tures et le fait qu'il fal­lait coder vite, ce qui est assez gra­ti­fiant.

Voi­là, du coup si vous en avez la pos­si­bi­li­té, n'hésitez pas à ten­ter l'expérience, je vous recom­mande !

Un grand mer­ci aux relec­teurs, Nahoy, Clem_​ et Béré­nice Batut pour leur remarques et cor­rec­tions !



Pour continuer la lecture :


Commentaires

9 réponses à “Les dev' jam c'est bon pour vous !”

  1. Avatar de Maxi_Zu
    Maxi_Zu

    Ça res­semble vache­ment à une quête vu comme tu l'as pré­sen­té ! Mer­ci bien c'était agréable à lire !

    Je me lan­ce­rais bien dans un hacka­ton cette année ! L'avantage de ce genre de pro­jets comme tu l'as bien sou­li­gné c'est que tu peux pas dire, tan­pis je regar­de­rai demain cette API.

    En ce moment, j'essaie de convaincre mon équipe de bio­in­for­ma­ti­cien de l'utilité d'une jour­née tous ensemble pour avan­cer 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 hau­te­ment pro­fi­table !

    Un pti plus pour les Cookies de chez Car­re­four : il faut bien de l'énergie !!!

    1. Avatar de Lucas

      C'est comme n'importe quel tra­vail, notam­ment les révi­sions d'examen : ce n'est pas pro­duc­tif quand on a son por­table dans la main.
      C'est hélas ain­si que de nom­breuses per­sonnes « tra­vaillent ». (et on l'a vu chez cer­taines équipes)

      Une dev jam est suf­fi­sam­ment intense pour mon­trer les béné­fices d'une séance de tra­vail, mais fatigue beau­coup parce que s'étend sur plus de quelques heures.
      Je pense que le côté ges­tion de pro­jet et tra­vail en équipe rend l'activité abso­lu­ment cre­vante, et en cela une nuit de hacka­thon est beau­coup plus fati­gante qu'une nuit de code seul chez soi. (vrai­ment, j'insiste. On ne m'a pas cru, et même ceux qui avaient l'habitude de pas­ser la nuit réveillé on fait une sieste pen­dant les 24h)

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

      1. Avatar de David Picard
        David Picard

        Pour l'aspect quête, à l'origine je vou­lais écrire tout l'article comme ça, mais c'était trop lourd, alors j'ai gar­dé que les titres ^^

        Je rebon­dis sur ce que disais Lucas : c'est effec­ti­ve­ment très cre­vant, notam­ment à cause du stress. D'un autre coté, c'est aus­si induit par le for­mat réduit : 24h, c'est vrai­ment court, à moins d'être très bien orga­ni­sé. À voir ce que ça donne sur 48h. Sans comp­ter que la ges­trion de pro­jet joue éga­le­ment beau­coup : savoir qui fait quoi, où on en est, est ce qu'il y a le temps d'aller dor­mir 2–3h, etc…

        En fait, c'est un peu comme un jeu d'arcade : c'est éprou­vant, stres­sant, mais on a envie de recom­men­cer pour amé­lio­rer son score 🙂

  2. Avatar de ClemBuntu
    ClemBuntu

    Salut,
    C'est inté­rés­sant comme article. Est-ce qu'il y aurait un site qui réper­to­riait dif­fé­rents def jam à tra­vers la France ?
    Mer­ci

    1. Avatar de Lucas

      À ma connais­sance, il n'existe pour la France aucun agré­ga­teur ou pla­nète de ce genre de flux, d'autant que nom­breuses sont les asso­cia­tions qui font leur comm dans leur coin.
      L'exemple des 24h du code est assez frap­pant : la com­mu­ni­ca­tion sur l'évènement est sou­vent faite à l'arrache et à peine deux semaines avant l'event. Cette année, le site offi­ciel n'a été mis à jour qu'une semaine avant !

      Néan­moins, pour les plus grosse dev jam, on en trouve sou­vent un écho dans les site d'actu orien­té infor­ma­tique (linux​fr​.org, par exemple), mais sur­tout pour les dev jam dans les plus grandes villes. (paris et lyon essen­tiel­le­ment)

      Le mot clef sur le net fran­çais pour ce genre d'évènement, c'est « hacka­thon ». Ça englobe un peu plus que les dev jam.
      Wiki­me­dia, opens­treet­map et beau­coup d'autre pro­jets com­mu­nau­taires s'appuient de plus en plus sur ce genre d'évènement pour boos­ter une par­tie de pro­jet.

      En cher­chant un peu, j'ai pu trou­ver ces pages, qui semblent assez à jour, et pro­ba­ble­ment les plus com­plètes que j'ai pu voir :
      http://​www​.pro​gram​mez​.com/​a​c​t​u​a​l​i​t​e​s​/​e​v​e​n​e​m​e​n​t​s​/​c​o​n​c​o​u​r​s​-​h​a​c​k​a​t​h​ons
      http://​lanyrd​.com/​g​u​i​d​e​s​/​p​a​r​i​s​-​h​a​c​k​a​t​h​o​ns/

    2. Avatar de David Picard
      David Picard

      Lucas s'est avé­ré plus rapide que moi, mais je ne sais pour­quoi son com­men­taire n'est pas pas­sé, alors je le reco­pie :
      À ma connais­sance, il n'existe pour la France aucun agré­ga­teur ou pla­nète de ce genre de flux, d'autant que nom­breuses sont les asso­cia­tions qui font leur comm dans leur coin.
      L'exemple des 24h du code est assez frap­pant : la com­mu­ni­ca­tion sur l'évènement est sou­vent faite à l'arrache et à peine deux semaines avant l'event. Cette année, le site offi­ciel n'a été mis à jour qu'une semaine avant !

      Néan­moins, pour les plus grosse dev jam, on en trouve sou­vent un écho dans les site d'actu orien­té infor­ma­tique (linux​fr​.org, par exemple), mais sur­tout pour les dev jam dans les plus grandes villes. (paris et lyon essen­tiel­le­ment)

      Le mot clef sur le net fran­çais pour ce genre d'évènement, c'est « hacka­thon ». Ça englobe un peu plus que les dev jam.
      Wiki­me­dia, opens­treet­map et beau­coup d'autre pro­jets com­mu­nau­taires s'appuient de plus en plus sur ce genre d'évènement pour boos­ter une par­tie de pro­jet.

      En cher­chant un peu, j'ai pu trou­ver ces pages, qui semblent assez à jour, et pro­ba­ble­ment les plus com­plètes que j'ai pu voir :
      http://​www​.pro​gram​mez​.com/​a​c​t​u​a​l​i​t​e​s​/​e​v​e​n​e​m​e​n​t​s​/​c​o​n​c​o​u​r​s​-​h​a​c​k​a​t​h​ons
      http://​lanyrd​.com/​g​u​i​d​e​s​/​p​a​r​i​s​-​h​a​c​k​a​t​h​o​ns/

  3. Avatar de Lucas

    Si des gens s'intéressent aux hacka­thons, il y a un guide plu­tôt bien fichu sur le sujet : https://​huit​.re/​e​d​K​5​e​hoc

  4. Avatar de Victor Ythier
    Victor Ythier

    Féli­ci­ta­tion les gars pour votre seconde place !
    BIG POWER !

    Et mer­ci David pour cet article, ça donne envie d'y aller éga­le­ment.

  5. Bon­soir,
    Tout d'abord mer­ci pour le par­tage de cette expé­rience !

    J'ai tout de même une ques­tion, adres­sée à Romain (qui 'Vient d'un Mas­ter de Bio­lo­gie, aime bien le C++, Subli­me­Text et le thé') :

    'Pour­quoi avoir réa­li­sé, en plus de ce mas­ter en bio­lo­gie, un mas­ter en bio info ?'
    Pour une double com­pé­tence, avec une base en bio­lo­gie plus solide, que celle que le Mas­ter BIG pro­pose ? Par simple chan­ge­ment de goût ? Par ce qu'il n'y avait pas d'offre d'emploi qui te conve­nait à la suite du Mas­ter de Bio ?…

    Mer­ci de votre réponse et de votre aide dans le choix de mon orien­ta­tion.

    A une pro­chaine : )

Laisser un commentaire