Une revue de mon équipement de course d’hiver

Ai-je déjà mentionné que j’ai passé l’hiver à m’entraîner à la course à pied? En fait, j’ai été relire mon billet de rétrospective de course pour l’année 2014 et je ne l’ai pas mentionné textuellement. En revanche, ce que j’ai mentionné, c’est que je devais garder le rythme d’entraînement afin d’être prêt pour la première course de l’année qui va avoir lieu à LaSalle le 29 mars prochain.

Pour être prêt le 29 mars, il faut se préparer en avance. Cela implique que je devais me faire à l’idée de courir en hiver. Je n’ai jamais été vraiment de ceux qui détestent l’hiver sans, toutefois, l’aimer inconditionnellement. En bout de compte, je me suis résolu à me dire que j’habite au Québec. Il y a de la neige quatre à cinq mois par année. Il faut s’y faire!

Mon équipement de course d’hiver en photos

Alors, s’habille-t-on pour faire de la course à pied en hiver? La clé du succès réside dans les couches de vêtements que vous porterez. Ce que j’ai retenu de cette expérience c’est qu’il est impératif de choisir des vêtements qui sauront vous garder au sec tout en étant confortable lors de votre activité de course.

Le morceau d’équipement le plus important à choisir est ce que vous porterez pour le haut de votre corps. C’est-à-dire la combinaison de chandails, vestes et/ou manteaux que vous porterez pour la course. Cette décision est logique, car, avec votre tête, c’est par là que vous perdez la majorité de votre chaleur corporelle. Pour ma part, j’ai opté pour une combinaison de chandails à manche longue en deux couches ainsi qu’un manteau mince avec un capuchon.

Ce que je vais énumérer ci-bas est la liste des vêtements que j’ai utilisés lors de ma saison de course cet hiver. Ce n’est rien de scientifique, mais ça donne une idée de quoi utiliser.

3031-medium
Chandail à manches longues – Chandail (première couche) – Pantalons (OK, des collants!) – Shorts
aa
Manteau – Souliers – Gants (pour les grands froids) – Gants (première couche) – Tuque – Bouteilles d’eau
*Prenez aussi note que le lien qui figure sur le morceau d’équipement vers le site MEC est pour vous donner une idée du visuel du morceau en question.

Leçons retenues et anecdotes à propos de la course en hiver

  • La clé du succès réside dans la planification des sorties afin de tirer le meilleur de la température. Par exemple, j’ai déplacé mes courses matinales à la fin de l’après-midi pour tirer profit de la température plus chaude à ce moment de la journée.
  • La planification est aussi dans le trajet que vous allez parcourir pour vos courses. Pensez à éviter les trottoirs, trouver un endroit qui est bien dégagé et à l’abri des voitures.
  • La différence de température entre 5 et 0 degré Celsius est plus frappante que celle entre -5 et -10 degrés.
  • À mon grand étonnement, j’ai été moins incommodé par la transpiration en hiver qu’en été. C’est principalement expliqué par les vêtements qui sont efficaces pour me tenir au sec.
  • Même s’il fait froid, il est très important de s’hydrater lorsqu’une course en hiver. Par contre, il faut bien fermer le capuchon des bouteilles. Lors d’une sortie à -15 degrés, la moitié d’une bouteille s’est vidée dans mon dos et sur mes jambes à mon insu. J’avais l’air d’un glaçon ambulant.
  • La course en hiver met à rude épreuve la peau. Penser à hydrater comme il faut la peau avant et après une course.

Bonus #1 – Pascal après une heure de course lors d’une tempête le 8 février dernier

pascal-course-hiver

J’étais content, mais je n’ai pas pu sourire plus que cela.

Bonus #2 – le coucher de soleil photographié lors d’une de mes courses de fin d’après-midi

coucher-soleil

Les liens de la semaine – Édition #120

Développement

.NET

Technologie

Web

Science et autres

À la découverte du Design Pattern « Template Method »

L’un des gros dilemmes de blogueur traitant de technologie et de développement logiciel francophone que je fais face est la traduction des termes spécifiques au domaine. Ces termes sont habituellement en anglais et, à mon avis, sont difficilement traduisible sans perdre leur sens original.

Vous l’avez peut-être remarqué en me lisant régulièrement. Quelques termes restent en italique lorsque je les écris. C’est plus fort que moi. Un framework reste un framework. Ce n’est pas vrai que je vais aller écrire « le cadre de travail .NET 4.5 ». Ça ne fonctionne juste pas! Même le site Stack Exchange dédié à la langue française est d’accord avec moi.

Ceci étant dit, l’autre mot que je n’arrive pas à me résoudre à traduire c’est le design pattern. Il s’agit de l’un des mots dans la même catégorie que le framework. Il s’écrit en italique sous sa forme anglaise. Point à la ligne.

Cela m’amène au sujet que je voulais amener dans ce billet. Il s’agit d’un design pattern dont j’ai connu le nom que tardivement. Ça a mis un nom sur l’une de mes principales approches lorsque je me lance dans un refactoring qui va mener à un ajout de fonctionnalités.

Il s’agit du Template Method Pattern. Il y a plusieurs variations de la façon de l’implémenter selon votre humeur et le langage que vous utilisez. Règle générale, en une phrase, il s’agit d’une classe qui implémente des fonctionnalités qui seront réutilisées par des sous instances de celle-ci.


public class LinkGenerator
{
public string GetLink(string url, string title)
{
return string.Format(GetLinkFormatPattern(), url, title);
}
public virtual string GetLinkFormatPattern()
{
return "<a href=\"{0}\">{1}</a>";
}
}
public class BoldLinkGenerator : LinkGenerator
{
public override string GetLinkFormatPattern()
{
return "<strong><a href=\"{0}\">{1}</a></strong>";
}
}
using System.Console;
public class Start
{
public static void Main(string[] args)
{
WriteLine(new LinkGenerator().GetLink("http://www.frenchcoding.com&quot;, "French Coding"));
WriteLine(new BoldLinkGenerator().GetLink("http://www.frenchcoding.com&quot;, "French Coding"));
ReadKey();
}
}

Le code qui est présenté ici est une conception simpliste du Template Method Design. Ce qui doit être cependant retenu c’est que LinkGenerator définit une implémentation de base qui peut être redéfini dans ses sous instances.

D’ailleurs, prenez note que l’exemple de code utilise le using Static de C# 6.0. C’est pour cette raison que les lignes 27 et 28 s’écrivent ainsi.

En guise de conclusion, cette approche est souvent le premier refactoring que je tente lorsque je dois revoir la structure d’un module. Réorganiser les propriétés et méthodes d’une classe afin d’en extraire les parties qui peuvent être réutilisées dans d’autres sous instances est un bon exercice pour déterminer ce qui peut être réécrit ou réutilisé.

Les liens de la semaine – Édition #119

Développement

.NET

Web

Technologie

Science et autres

Une introduction à l’outil de scriptage .NET/C# scriptcs

Scriptcs scriptcs-logo est un petit bijou de technologie que j’utilise occasionnellement depuis ses premiers moments. J’ai démarré l’aventure French Coding depuis avril 2012 et je m’étonne encore de ne pas avoir mis en place un billet au sujet de scriptcs.

Qu’est-ce que scriptcs? Il s’agit d’un utilitaire permettant d’exécuter du C# et de bénéficier de la puissance de .NET sans avoir recours à Visual Studio. Vous pouvez écrire du code directement à partir de votre éditeur texte préféré et l’exécuter à la demande. Génial, n’est-ce pas?

Je me suis souvent servi de scriptcs pour tester certaines conditions d’exécution. Là où je m’en suis servi le plus fréquemment c’est pour de l’affichage de dates, ironiquement. Il est vraiment facile de tester un bout de code de cette façon.

La façon la plus simple (et recommandée par l’équipe de développement) est de passer par Chocolatey en utilisant la commande choco install scriptcs. Si vous ne voulez pas utiliser Chocolatey (il n’y a pas de bonnes raisons de le faire, je vous le dis), il y a des façons alternatives d’installer scriptcs sur votre machine.

Suggestion de lecture: mon billet au sujet de Chocolatey.

Mettre à main à la pâte

Il y a deux façons de travailler avec scriptcs.

  1. Le mode REPL (Read-Eval-Print-Loop) permet d’interagir avec le compilateur de C# en lui envoyant du code. D’ailleurs, si vous avez déjà fait du Ruby dans votre vie, vous allez remarquer que cette fonctionnalité de scriptcs ressemble à IRB.scriptcs
  2. Avec des fichiers de script vous permet d’écrire des classes C# et de les exécuter en ligne de commande. Ce qui est intéressant avec ce mode est l’éventail de possibilités qui vous est offert.
    Vous pouvez, par exemple, référencer d’autres scripts (csx) et, notamment, avoir recours à NuGet pour installer des modules pour votre script.

Ensuite, c’est quoi la suite?

Après tout cela, qu’est-ce qui vous reste à voir? Ma seule recommandation serait d’aller jeter un coup d’oeil à la liste des exemples de scripts laissés par l’équipe de développement de scriptcs.

Au pire, les exemples risquent de certainement vous donner des idées. Les bouts de codes vont de RavenDB à créer un client/serveur utilisant System.Net.