Analysis Services dans Azure!

Je suis sûr que vous avez noté l’arrivée récente de SSAS Tabular en mode PaaS dans Azure. Je voulais rapidement revenir dessus parce que ça faisait au moins 2 ans qu’on le sentait venir, et que finalement ça valait le coup d’attendre.

aas_1.png

Rappel : je bosse chez Microsoft maintenant. Même si ceux qui me connaissent savent que ça ne changera pas grand-chose à mon avis sur les produits, je préfère le rappeler pour être 100% transparent 😉

Azure Analysis Services c’est tout simplement la possibilité de déployer ses modèles SSAS Tabular dans le cloud sans se soucier du tout de l’installation ou de la configuration d’un serveur. Si on ajoute à ça le fait qu’il est désormais possible de développer un modèle Tabular dans SSDT en mode intégré (sans disposer d’une instance workspace), on peut donc aller du prototype à la production sans jamais toucher une ISO d’installation de SQL Server. Cool 😉

« Oui mais moi j’aime mieux Multidim ! » dirons certains. J’y répondrais qu’il n’est pas écarté qu’on voit les cubes rejoindre Tabular dans le service (le flou est maintenu dans l’annonce : « Support for multidimensional models will be considered for a future release, based on customer demand ». Mais surtout je dirais que SSAS Tabular est devenu vraiment solide avec SQL Server 2016, et qu’il est urgent de lui donner une deuxième chance (performance, support du many-to-many, nouvelles fonctions DAX…).

Je vous fais un petit tour d’horizon de comment c’est génial, en montant un datamart et le cube associé en moins de 30 minutes.

  • Au programme:
    • Création d’une base SQL Azure pour notre datamart
    • Création d’une instance Azure Analysis Services
    • Création d’un modèle SSAS Tabular dans Visual Studio (SSDT)
    • Déploiement du modèle dans Azure Analysis Services
    • Accès au modèle avec Power BI, Excel et SSMS

Tout commence dans le nouveau portail Azure : https://portal.azure.com. Si vous n’avez pas de compte Azure pas de problème, vous pouvez tout essayer gratuitement

  • Première étape : Création de la base de données sur Azure SQL Database pour mon datamart, histoire de tout faire en PaaS

Pour un DWH de taille respectable on devrait plutôt utiliser Azure SQL Data Warehouse, mais pour s’amuser une SQL Database suffit:

aas_2.png

Je vais la pré-remplir d’un sample: AdventureWorksLT v12. Notez que c’est une option à la création de la base, parfait quand on veut juste jouer avec le produit:

aas_3

Je valide, et on peut laisser tourner et passer à la suite en attendant 😉

  • Deuxième étape : la création de notre instance Azure Analysis Services

Cette fois-ci on regarde du côté Intelligence + Analytics:

aas_4.png

Ne vous embêtez pas pour le pricing tier, D1 suffit pour notre petit test. Idéalement on devrait mettre la base SQL et Analysis Services dans le même groupe de ressources, et donc la même location. Par grave pour notre test si ce n’est pas le cas:

aas_5.png

Là encore je valide et on laisse tourner.

  • Troisième étape: dans SSDT (SQL Server Data Tools, les templates data/BI pour Visual Studio) on va créer un nouveau projet SSAS Tabular

Pas de panique si vous n’avez pas SSDT, il est désormais disponible en download direct et gratuit, tout comme SSMS d’ailleurs. N’hésitez pas à télécharger la version la plus récente, elle se base sur Visual Studio 2015, et est capable de gérer des projets SSAS/SSIS/SSRS de SQL Server 2012 à 2016

New Project > BI > Analysis Services > AS Tabular:

aas_6

Profitez du mode intégré, c’est tellement plus pratique:

aas_7

De là on va pouvoir se connecter à notre datamart : Model > Import From Data Source:

aas_66

aas_8

Un petit guide pour savoir comment configurer la connexion:

aas_9

On passe sur l’impersonation pour le moment avec une option par défaut:

aas_91

On veut ensuite choisir nos tables:

aas_92

De quoi construire un petit modèle, avec 2 tables de fait et 4 dimensions :

aas_93

Ça charge, et on peut valider que le modèle ressemble bien à quelque chose grâce à la vue en diagramme:

aas_94

On peut ajouter des mesures, changer la direction du filtre en bidirectionnel entre les 2 tables de fait… Ou s’en passer 😉

La partie marrante c’est le déploiement. Dans les propriétés du modèle:

aas_95

On configure la destination du déploiement. Retenez le nom du serveur (asazure://…) c’est celle qu’on utilisera plus tard pour se connecter à SSAS avec Excel ou Power BI :

aas_96

Et lorsqu’on déploie:

aas_97

Après une demande de credentials pour le processing du cube post déploiement:

aas_98

On obtient un cube déployé dans les nuages !

  • Quatrième et dernière étape: on va se connecter à notre cube avec SSMS, Power BI ou encore Excel

Le nom du serveur on l’a déjà, c’est celui qu’on a utilisé plus tôt au moment du déploiement (asazure://…).

Power BI: Get Data > SSAS

aas_991

Excel: Get External Data > SSAS

aas_992

Notez qu’il faut choisir l’option User Name / Password, et utiliser le compte Azure qui vient de créer le service (c’est juste pour le test, évidemment il est possible de créer toute une liste d’utilisateurs via Azure AD):

aas_993

Enfin, avec SSMS, si vous êtes intégré avec Azure Active Directory ça marchera tout seul, sinon voir cet article (c’est simple):

aas_994

Magique non ? 😉

Si ça vous plait, je vous encourage à l’essayer ainsi qu’à suivre le compte Twitter @Azure_AS pour être mis au courant de toutes les nouveautés.

Outils pour (mieux?) gérer son temps

Je voulais faire un petit article sur les outils que j’utilise en ce moment, suite à une récente introspection sur l’efficacité de mes workflows. En effet il fallait que j’optimise mes pratiques pour ne pas succomber sous le flux permanent de travail qui s’accumule…

J’ai ordonné mes besoins selon 2 axes qui m’allaient bien :

outils_mapL’objectif c’est d’alléger au maximum le nombre de choses à garder en tête, la liste de courses, l’email à envoyer au client, se souvenir de préparer la réunion de la semaine prochaine… pour alléger le stress et concentrer son énergie cognitive sur des taches productives.

Dans le détail :

  1. A Faire
    1. Court terme: une todo list pour la journée, avec max 5 items. Elle est mise à jour tous les jours si elle n’est pas finie la veille. Je n’utilise pas d’app, j’ai besoin du contact physique avec le papier, et de la satisfaction de la jeter une fois qu’elle est complétée. S’il y a plus d’items à mettre que ce qui est faisable en une journée, il est temps de définir des vraies priorités.
    2. Moyen terme: j’ai plusieurs Kanban boards en place : une pour la gestion de l’ensemble de mon portefeuille de clients hors mode projet sur Trello. outils1Et en projet j’utilise une board par équipe sur Visual Studio Team Services, avec les items qui descendent jusque dans Visual Studio c’est magique.
    3. Long terme: là on est plus sur la mise en place de bonnes habitudes sur la durée, et une approche qui ne marche pas trop mal pour moi c’est le suivi de séries : les streaks. Pour ça une bonne app c’est juste Streaks (iOS). Un streak assez connu dans le milieu c’est celui de GitHub:Outils2.png
  2. A Retenir
    1. Court terme: j’utilise encore beaucoup de papier. J’aime prendre des notes, gribouiller des schémas, ordonner ma pensée sur le papier. Régulièrement je vide mon bloc-notes : poubelle ou photo direction OneNote (voir plus bas).
    2. Moyen terme : je viens de me mettre au Mind Mapping avec XMind. Je ne l’utilise pas du tout pour construire des plans d’actions, mais uniquement pour ordonner des ressources que j’ai besoin de garder sous la main : articles de blog, liens intranet, shortcut vers un répertoire sur ma DropBox… outils3Il m’arrivait trop souvent de redécouvrir accidentellement des ressources de haute qualité, 1 mois après en avoir eu vraiment besoin, en ayant complètement oublié qu’elles existaient. L’objectif ici est de garder une liste organisée de ressources de haut niveau que je ne veux pas que mon futur moi oublie. C’est flou, je sais, je vous en dirais plus quand j’aurai fini ma phase exploratoire.
    3. Long terme : et pour tout le reste, ce que je peux juste chercher, je le stocke dans EverNote ou OneNote. EverNote pour le contenu que je n’ai pas créé – principalement des liens internet – que je n’organise pas, je cherche dedans. OneNote pour du contenu que j’ai rédigé : comptes rendus de réunion, photos de mes notes… qui lui est hautement organisé (par client, date…)

En termes de workflows, j’essaye de tout faire passer par ma boite mail. Si je trouve un article intéressant sur Twitter ou autre : je m’envoie le lien par mail, si je dois me souvenir de faire quelque chose : je m’envoie un mail… Si je ne l’ai pas sur email alors ça n’existe pas 😉

Ensuite, tous les matins, je vide mon inbox : chaque item va soit dans ma todo list, sur le kanban, ou dans la zone de stockage qui lui convient (voir inbox triage). Ma boite mail est également bien organisée (un répertoire par client/projet…), et je conserve 100% des emails (je parle de la pro là, la perso c’est n’importe quoi), même s’ils ne génèrent aucune action/stockage de mon côté. A noter que certaines tâches qui n’ont pas vraiment leur place dans le Kanban mais que je n’ai pas besoin de faire dans la journée finissent souvent dans mon agenda comme un meeting de 15 minutes plus tard dans la semaine (par ex : préparer le voyage pour voir un client hors de la ville). Le tout c’est que ma tête et mon inbox doivent rester vides. D’ailleurs un bon indicateur que je suis sous l’eau c’est que je ne suis plus capable de vider mon inbox quotidiennement.

N’hésitez pas à partager vos bonnes pratiques, je suis toujours preneur !

Ô Canada!

Je sais, cela fait bien 6 mois que j’avais disparu, mais pour une bonne raison dont je lève enfin le voile : je me suis installé au Canada (d’où le titre de cet article). Plus précisément ma femme et moi avons quitté Paris pour Vancouver, Colombie-Britannique, Canada.

Carte du Canada et ses principaux leaders

Je vous arrête tout de suite sur les blaguounettes: il ne neige quasiment pas à Vancouver (à part sur les stations de skis a 30 minutes/ 1h du centre-ville), la température ne descend que rarement en dessous de 0° Celsius, par contre… il pleut. Point de vue climat on peut dire que c’est la Bretagne du Canada. C’est certainement la raison pour laquelle 50% des français qu’on croise ici sont Bretons!

On a choisi Vancouver en grande partie pour son climat, et parce que l’on voulait vivre dans une ville anglophone. Egalement sur la liste, l’atmosphère définitivement West Coast (San-Francisco / Portland / Seattle / Vancouver), et bien évidemment la nature:

Vancouver West End.JPG

Le vue depuis West End, c’est genre, le centre ville de Vancouver…

Pourquoi partir? Principalement pour améliorer notre qualité de vie. Paris devenait étouffante pour nous. Je suis convaincu que c’est la promiscuité engendrée par la trop grande densité qui génère autant de comportements antisociaux. Dans tous les cas pour nous c’était trop. La France aussi devenait étouffante. Je ne tiens pas à parler politique ici, ou épiloguer sur les terribles évènements qui ont eu lieu juste après notre départ, et leurs conséquences désastreuses, mais il est clair que des raisons géopolitiques ont également motivées notre décision.

Ici l’herbe est un peu plus verte (heureusement que Justin est passé) mais pas tant que ça – par contre on se sent moins concernés (pour le moment), et juste plus loin. C’est un répit.

Je vous rassure de suite, l’amélioration de qualité de vie nous l’avons bien trouvé. Tout est plus facile ici, l’administratif, la vie de tous les jours, le boulot (pas en trouver, mais une fois en poste), les loisirs… Rien à voir! Mon niveau de stress n’a jamais été aussi bas !

Cheers Mate!

Tout n’est pas rose non plus. Il existe une réelle différence culturelle avec les locaux (vrais Vancouverites) qui se manifeste toujours quand on ne l’attend pas, de façon assez désagréable, dont je vous reparlerai peut être plus tard. Par contre il y a tellement d’expatriés de toutes les nationalités qu’il est plutôt facile de faire des belles rencontres – et on en a fait !

Egalement pénible, le marché du travail vraiment concurrentiel, et la encore des différences culturelles qui ne nous favorisent pas dans la compétition. Enfin les loyers sont élevés et la vie culturelle certainement moins folle qu’à Paris – oui je confirme les clichés de Vancouver, mais ça n’en fait pas moins une ville que j’adore.

 

Pour partir nous avons profités du programme PVT. Pour ceux qui connaissent, merci à la fibre optique d’Orange: une connexion optimale au site web qui gèrait les inscriptions le jour J nous a permis à ma femme et moi d’avoir chacun un visa. Pour ceux qui ne connaissent pas, le permis Vacances Travail permet de travailler (ou pas) pendant 2 ans au Canada, sans être lié à un employeur et sans avoir à prouver qu’on ne vole pas le travail d’un local. C’est définitivement la meilleure option pour partir, il est donc évidemment victime de son succès. C’est un programme d’échange et le fait qu’il y ait 5 fois plus de français qui veulent partir au Canada que de canadiens qui veulent venir en France n’aide en rien.

J’en profite pour adresser un grand merci à toute l’équipe de pvtistes.net qui fait un travail formidable pour expliquer comment le tout fonctionne, leur contribution est inestimable. C’est LE point de départ si l’aventure vous tente.

Merci pvtistes.net!

Quand je fais la rétrospective de l’année passée, notre départ au Canada me semble parfois relativement facile et sans encombres. En réalité cela aura été un ascenseur émotionnel continu, un rollercoaster comme on dit par ici ! Les doutes, les remises en question, la synchronisation de tous les processus administratifs, le risque financier (et toutes les dépenses), et certainement le plus dur: laisser toute le monde derrière, famille et amis.

En passant je reconnais l’apport énorme que sont Facetime, Skype et les autres moyens de communication modernes à ce sujet. Je n’ose pas imaginer vivre la même aventure 20 ans plus tôt, quand rien de tout cela ne permettait de rester connecté avec ses proches.

Bla, bla, bla… cet article est déjà assez long comme ça. On se reparle bientôt, avec un sujet plus dans la ligne éditoriale de ce blog : est-ce que la Business Intelligence est la même à Vancouver qu’en France ? 😉

Humilité, empathie et égo

Plus le temps passe, et plus j’ai la conviction que la plupart de nos problèmes professionnels sont en réalité des effets de bord de nos problèmes personnels profonds.

Après tout, cela paraît logique : on l’avait vu dans Peopleware, nous sommes vraiment dans des métiers liés aux relations interpersonnelles, bien plus qu’à de l’expertise technologique. Confere votre dernier projet : le plus gros problème c’était plutôt la techno, ou plutôt le chef de projet / PO qui ne voulait pas comprendre que la techno ne pouvait pas faire ce qu’il voulait?

Screenshot du film Office Space, pour un effet comique

Par problèmes personnels j’entends les conséquences de la condition humaine, qu’elles soient innées ou acquises. À un niveau macro, cela se visualise à travers toutes les particularités de l’égo qui font de nous des animaux tant sociaux qu’asociaux. Pas de panique, je ne suis pas psy, ni philosophe, je ne creuserai donc pas plus dans cette direction 😉

Ce qui m’interpelle plutôt c’est l’égo, et comment la présence d’une personne à l’égo atrophié ou surdéveloppé peut nuire complétement à une dynamique de groupe. Cela peut se manifester par une déférence trop importante à la hiérarchie, à la limite de l’obédience, ou à l’inverse par une rébellion permanente, souvent générée par le sentiment d’être injustement spolié d’une chose ou d’une autre par le groupe. Le pire étant peut-être l’apathie détachée : « le monde brûle autour de moi mais vraiment, que font les autres pour corriger ça ? ». Il y’en a d’autres, des manifestations d’égos incontrôlés, vous en faites autant l’expérience que moi, et bien souvent elles se combinent et sont amplifiées par nos biais cognitifs naturels.

Screenshot de Shining, pour un autre effet comique

Lors d’un dysfonctionnement en milieu professionnel, il est d’ailleurs facile de blâmer une « mauvaise dynamique de groupe » et courant d’essayer d’y remédier via un changement des méthodes de travail en équipe (SCRUM, Lean…). Je crois sincèrement que cela ne peut pas marcher sans y associer un travail sur soi de chacun des membres de l’équipe, vers une prise de conscience des casseroles qu’on traîne et qu’on impose au groupe.

De mon côté, la seule recette que je vois pour adresser tout ça c’est juste d’être soi-même relativement carré dans ses baskets. Parce qu’au final, la seule personne sur laquelle on a prise, c’est soi-même. et je crois assez fort que si on arrive déjà à tenir son propre égo dans les clous, on rend un service énorme au monde. Imaginez si tout le monde faisait pareil ! 🙂

Pour travailler sur ce sujet, rien de révolutionnaire : cultiver son empathie (mais pas trop) et développer son humilité (lisez l’intro de l’article wikipedia, il est top), autrement dit régler ses problèmes ou du moins les prendre en mains…

Etre humble ce n’est pas être un bisounours. L’humilité n’empêche pas la fierté, ni de lutter face à un égo démesuré en face, bien au contraire. Pour moi l’humilité c’est se connaître, et s’accepter tel que l’on est, avec ses forces et surtout ses faiblesses. De cette maturité vient la sagesse de ne pas projeter sur les autres la douleur issue de ses propres failles, et de ne pas prendre pour soi la projection de la douleur des autres. En clair : arrêter de faire de tout une histoire d’égo.

Je ne sais pas vous mais pour moi c’est un travail quotidien, difficile, qui n’a pas de fin. Souvent j’échoue, mais ça ne m’empêche pas d’y croire et de persévérer 😉

Un dernier screenshot rigolo, cette fois de Orange is the new black

Revue : Big Data par Nathan Marz et James Warren

Je vais aller droit au but: vous savez comme je vois le DWH Toolkit de Kimball & Co comme LE bouquin de référence pour le décisionnel, et bien c’est très simple, voilà son équivalent côté Big Data. A mon sens c’est une lecture incontournable, d’autant plus si vous avez déjà écrit ou prononcé les mots « Lambda Architecture ».

Notez que je ne suis pas le seul à en dire du bien, c’est un ouvrage qui a été largement encensé depuis qu’il est sorti, et franchement il le mérite!

Nathan Marz (Twitter, Site) c’est un ancien de Twitter et l’un des créateurs d’Apache Storm, la techno de stream processing la plus utilisée dans la stack Hadoop. Il a fait ses preuves.

Couverture : Big Data chez Manning

Au delà du fond, vraiment passionnant, la forme est également au top. En effet on alterne des chapitres théoriques avec des exemples d’implémentation technique, sur des technologies variées, toujours dans le cadre de la mise en place d’un même système de web analytics. Ça donne un fil rouge au bouquin qui rend sa lecture vraiment digeste.

Morceaux choisis:

  • Les techniques fondamentales liées au Big Data: des systèmes (storage & compute) qui ont conscience de leur nature distribuée, des données immutables, le tout pour permettre le scaling horizontal (ajout de machines) le moins douloureux possible

  • Pour rendre un système de données résistants aux erreurs humaines : on conserve les données dans un format immutable (on ne peut qu’ajouter, ni supprimer ni mettre à jour) et des algorithmes en re-calcul complet (recomputation, à opposer aux chargements incrémentaux)

  • D’où l’architecture lambda : un master dataset immutable avec une ligne de chargement en re-calcul complet (batch + serving layers), mais ce sera lent, donc on y adjoint d’une ligne de chargement rapide (speed layer), à côté, qui gèrera les delta en attendant le prochain batch. Et pour l’utilisateur, une vision unifiée qui brasse des données issues du batch et du streaming.

Schéma de la Lambda Architecture

  • Côté Master Dataset, on utilise une techno robuste qui assure le caramel en batch write / batch read : du filesystem, en mode distribué avec HDFS. Là-dessus on emploie une modélisation particulière (fact-based model, une normalisation complète), si possible structurée via un framework de serialization genre Avro, ProtoBuf ou Thrift.

  • On prépare des batch views dans le Serving Layer, à coup de Map/Reduce en Java ou Python, à destination d’une base batch write / random read orientée requêtage ad-hoc. Ici on va indexer et dénormaliser, pour le confort des utilisateurs.

  • Sur le Speed Layer, le but va être de reproduire la même chaîne de traitement qu’en batch (un des inconvénients de la méthode), mais sur un volume bien moindre de donnée, pour s’approcher du temps réel. On parle Kafka pour gérer la queue multi-utilisateur, Storm pour le stream processing incrémental, et Cassandra pour gérer le random read / random write à exposer aux utilisateurs.

Si vous voulez avoir le pourquoi de tout ça, expliqué de façon propre et illustrée, direction le bouquin, il vaut le coup.

Je recommande plus que vivement 🙂

S’ouvrir l’esprit

C’est en lisant l’article tout récent de Troy Hunt que j’ai mis des mots sur une sensation ressentie dernièrement:

There’s this odd thing that tends to happen in many peoples’ careers and I suggest it’s particularly prevalent in technology: you get really, really good at something and then it hits you – you have to stop it. Well actually, you could continue doing it, but not if you want to “progress” against traditional measures such as seniority and income.

En français dans le texte:

Il y a cette chose étrange qui se produit dans la carrière de beaucoup, et qui je crois est prévalent dans la technologie: lorsqu’on devient vraiment, vraiment bon dans son domaine, l’évidence se fait: on doit arrêter. En fait rien n’empêche de continuer, mais cela va à l’encontre d’une progression sur des métriques comme la séniorité et le salaire.

C’est d’ailleurs une idée qui se marie très bien avec certaines théories dont on a déjà parlé ensemble, particulièrement le fait que les sur-performeurs ont tendance à rester coincés sur le poste qu’ils occupent (pourquoi les promouvoir, ils sont tellement bons là où ils sont!). Une autre problématique c’est que plus le gap est important entre son niveau d’expertise et repartir à 0 dans un nouveau domaine, plus le cerveau fuit la possibilité: ça fait trop mal à l’égo. Et tout un tas d’autres raisons.

Bien évidemment, rien de dramatique de mon côté: j’aime la BI sur SQL Server et cela reste mon gagne pain principal. Cependant je prends conscience de certains faits: le sujet n’est plus qu’une part minime de ma veille technologique, et au final, les projets excitants qui se dessinent à l’horizon concernent des technologies différentes.

Quels sont justement les sujets sur lesquels je creuse en ce moment? J’en ai déjà parlé:

  • Le Machine Learning, via le parcours Data Science de l’Université John Hopkins sur Coursera.
  • R, le langage de manipulation de données, via le même parcours
  • Python, un langage objet avec une syntaxe simple, pour me remettre gentiment dans le bain du « vrai » développement. L’excellent tutorial pour Python c’est Learn Python the Hard Way
  • L’intégration de données moderne, via des lectures et vidéos dont je vous reparlerai plus tard, à transposer sur Azure avec entre autres Event Hub et Stream Analytics

Evidemment ça fait beaucoup de front, alors j’alterne sur des cycles de 2/3 mois: Coursera, Intégration, Python… Et tant qu’à causer logistique, je me suis équipé de Coach.me, qui permet de rester motiver dans la durée grâce au principe des chaînes/streaks. L’autre nouvelle habitude c’est de pousser mes développements perso sur Github, comme ça je m’améliore aussi sur la partie ALM. L’avantage d’avoir commencé par Coursera c’est qu’une partie des premiers cours était dédiée à Github et au Markdown.

Franchement je m’éclate. L’ensemble débloque des scénarios d’usage vraiment sexy, genre « Internet of Things » (marketing power!), avec par exemple: la mise en place d’un dashboard web qui affiche en temps réel la température de la pièce. Rigolo non?

Pour ça on mélange un tas de technos et c’est ça qui est top:

  • Une board Arduino Yun
    • Jouer avec les composants électroniques pour cabler le capteur
    • La logique embarquée (du pseudo C) pour relever la température chaque seconde
    • Le module wifi pour envoyer le relevé vers Azure, auquel en accède en Python en y intégrant le SDK Azure
  • Côté Azure
    • Paramétrer l’Event Hub en PowerShell
    • Implémenter la logique d’agrégation dans Stream Analytics via du pseudo SQL et une logique de streaming
    • Finalement écrire les résultats dans Power BI avec l’API Rest

Et je vous avoue que voir la courbe de température évoluer en temps réel quand on réchauffe le capteur en le touchant, c’est bête mais ça provoque de la vraie joie!

Tout ça pour dire que je vous dois une série d’articles sur tout ça, et que je m’y mets de ce pas! En attendant, n’hésitez pas à vous y mettre de votre côté. Oui ça peut faire peur toutes ces technos étranges, mais en persévérant ça finit par rentrer 😉

Un sauteur de haie qui oublie de sauter, mais qui finit quand même la course!