Archives mensuelles : mai 2016

Les liens de la semaine – Édition #186

Développement

.NET

Web

Technologie

Science et autres

Advertisements

Demi marathon de Châteauguay – Courir plus vite que jamais

La saison de course 2016 est assurément la plus étrange que j’ai eue depuis mes débuts à la course à pied en 2013. Elle est différente des précédentes en raison des différentes situations que j’ai eues à faire face lors de mon entrainement.

Par exemple, les années précédentes, je m’entraînais généralement le matin. Cette année, afin de contourner un conflit d’horaire avec celui du travail, j’ai tenté de courir le soir. J’ai eu à trouver un plan alternatif, car je n’ai jamais eu autant de crampes à la course qu’à ce moment-là.

Dans ce cas-ci, mon plan B aura été de courir sur l’heure du lunch au travail. Être matinal me sert quand même, finalement, car je reprends mon temps du midi le matin.

Cet exemple est qu’un seul exemple parmi tant d’autres. Ceci étant dit, à l’aube du demi-marathon de Châteauguay, plus que j’avais des petites réserves sur mon objectif d’atteindre la marque de 01:30:00 à la fin de l’été au demi-marathon de Montréal. La constance rassurante que j’avais développée à l’entrainement avait été absente.

Pour quelqu’un de routinier comme moi, la constance, même si elle n’est peu excitante, est très importante.

La course en quelques mots

Pluie.

Vent.

Froid.

Objectif : 01:45:00.

Temps officiel: 01:43:20.

Faits saillants

Le plus difficile ce matin-là aura été de sortir de la maison et de constater que cette course aura bel et bien lieu sous la pluie. Les prévisions météo les plus optimistes annonçaient la fin des précipitations vers 9h-9h30. Ça, c’est sans oublier que, sous les dix degrés Celsius, c’est relativement désagréable.

Le départ a finalement été très humide. À un certain moment, on aurait même dit que la pluie tombait à l’horizontale tellement il ventait. Heureusement que j’avais mes lunettes pour protéger mes yeux!

demi-chateauguay

À cette course-ci, le chronométrage a été séparé en quatre étapes. J’ai trouvé ça intéressant après coup. Cela donne un peu plus de détail sur l’analyse de la course.

En faisant abstraction de la pluie, cette course avait débuté d’une drôle de façon. Les cinq premiers kilomètres ont été les plus difficiles à parcourir. J’avais les jambes lourdes et les muscles qui me faisaient mal. Pourtant, j’étais bien reposé avant cette course.

Ceci étant dit, il a fallu que je me ressaisisse, car je m’éloignais de mon objectif. À un rythme 5:07/km, je m’éloignais de ma cible d’une moyenne de 5:00/km nécessaire pour atteindre mon temps désiré.

Dans ces situations, la meilleure chose à faire est de trouver quelque chose à penser. Avec l’entrainement, il n’y a pas que la forme physique qui est développée. Il y a aussi le « muscle » mental qui est travaillé. Cela est principalement la capacité à s’occuper l’esprit pendant une course à pied.

Alors, je me suis mis à l’oeuvre : programmation, couleur des cheveux de ma blonde, épeler des mots à l’envers, ce que j’ai mangé hier. Tout y a passé. Incluant mon mal de jambes.

Trempé à l’os.

Par la suite, à part mon incessant monologue intérieur pour me garder « sur la track », j’ai fait la rencontre d’un certain André. Parfois, en course, on se découvre des amis. C’est environ à la mi-course que j’ai réalisé que nous nous suivions depuis le début de celle-ci. Nous avions pratiquement le même rythme.

Jusqu’à la fin, nous nous sommes accrochés l’un à l’autre pour rallier l’arrivée. Il s’agissait de la deuxième fois que ce phénomène m’arrivait. Trouver quelqu’un qui court à la même vitesse que soit et qui a un style de course compatible est un réel atout pour conserver une motivation jusqu’à la fin.

La course à pied est peut-être un des sports les plus individuels qui existe. Toutefois, il y a quand même une petite partie sociale à ne pas négliger.

Par la suite, pour la dernière moitié de la course, j’ai accéléré le tempo à la limite de ce qui me permettrait de me rendre jusqu’au bout sans manquer d’énergie et de combler le retard cumulé de mon début de course.

C’est seulement au dernier quart que j’ai réalisé que j’étais réellement en voie de dépasser mon objectif. C’est aussi là que le monologue intérieur s’est activé avec des calculs mathématiques dignes de grands astrophysiciens. Dans le genre : « si j’ai fait 7 kilomètres à 5:07, 10 kilomètres à 4:52 et que j’ai environs 80 minutes de couru, à quel rythme dois-je courir pour faire 01:45:00 ». Le temps passe vite comme ça, je vous le dis!

Au final

Contrairement à mes propres attentes, j’ai réussi à dépasser mon propre objectif. En plus de signer mon meilleur temps au demi-marathon, j’ai retranché environ neuf minutes sur mon temps précédent.

Hélas, cela signifie aussi que cette tendance magique à retrancher d’importantes minutes à mon meilleur temps est à sa fin. Dans ma quête à atteindre la cible du 01:30:00 pour le marathon de Montréal, les victoires vont se faire à coup, je suis encore pas mal sceptique sur ma capacité à descendre de treize minutes mon temps une fois de plus.

Ceci étant dit, ce n’est pas la première fois que je doute de ma capacité à atteindre un résultat à la course à pied n’est-ce pas? C’est une motivation de plus pour aller m’entraîner plus fort!

Les liens de la semaine – Édition #184

Développement

.NET

Web

Technologie

Science et autres

Hygiène de code – qu’est-ce qui cloche avec ce code?

Cette semaine, ce billet sera un peu spécial. Il s’agit d’un petit exercice de ce que j’appelle d’hygiène de code.

Qu’est-ce que l’hygiène de code? Paraphrasons le Larousse.

Ensemble des principes, des pratiques individuelles ou collectives visant à la conservation de la santé, au fonctionnement normal de l’organisme

Remplacez le mot organisme par application et vous avez la définition même de l’hygiène de code.

Dans la vie tout comme dans le code, nous avons tous une façon différente de concevoir l’hygiène. Certains ne se brossent pas les dents. D’autres vont prendre un bain le soir. Certains vont ne pas se laver les mains après avoir été à la salle de bains. Certaines pratiques sont plus répandues que d’autres. Sans compter les normes sociales qui imposent certaines pratiques de l’hygiène.

Comme j’ai mentionné précédemment, la même analogie s’applique à la pratique du développement logiciel, le code. La façon que vous codez vos trucs est un reflet direct de votre hygiène de code. À mon avis, la meilleure image que nous avons dans le domaine à ce sujet est la notion de code smell. C’est simple. Si ça pue, c’est que c’est sale. Si c’est sale, c’est que ce n’est pas propre. Si ce n’est pas propre, c’est que c’est lié à une mauvaise hygiène.

Les grosses méthodes sans structures, les if sans accolades, les noms de variables sans significations font partie des pratiques faisant en sorte que votre hygiène de code soit considérée comme douteuse.

C’est ainsi que je présente un sapristi de bon exemple de ce que je considère un bon cas de code qui sent mauvais. C’est un ami qui m’a présenté le bout de code.

Combien d’irritants comptez-vous? Sur deux lignes de code, j’en dénombre quatre. Ce n’est pas pire n’est-ce pas? Voici ma liste.

  • La variable count est incrémentée dans le if
  • Il y a un point virgule à la fin de la ligne 3 (celle de la déclaration du if)
  • Il n’y a pas d’accolades sur le if
  • L’utilisation de « \r » pour faire un saut de ligne dans la console. Environnement.NewLine devrait être à préconiser.
  • Je comprends que le résultat de la division doit être (double) mais la spécification dupliquée du type (double) et 100d me laisse dubitatif.

Ceci étant dit, ce code en question peut être facilement refactoré pour le faire sentir bon comme un nouveau-né. Ce n’est pas ça le problème. Le vrai pépin avec ce genre de code est la maintenabilité à long terme, comme toujours. Il s’agit d’un petit exemple. Imaginez maintenant une classe, un module ou même une application entière programmée de cette façon.

Juste à l’odeur, on se croirait dans un dépotoir tellement c’est infect.