Un aperçu de ma saison de course à pied 2017

L’année 2017 est arrivée. Cela sonne officiellement la cloche de la préparation de la prochaine saison de course à pied. Excitant tout ça n’est-ce pas?

Tellement excitant qu’une partie de ma boîte de réception GMail ressemble à ceci:

saison

Cette année, je crois que tous les espoirs sont permis au niveau de l’atteinte de mon objectif de réussir un demi-marathon en 90 minutes ou moins. J’ai visé cela, sans succès, l’an dernier. Cette fois-ci, c’est la bonne. Du moins, l’expérience de 2016 m’aura donné quelques trucs pour atteindre mon but.

La planification de cette année va ressembler beaucoup à celle de l’an dernier. Un dix kilomètres et trois demi-marathons. La seule nouveauté est l’essai du demi-marathon de Pointe-Claire qui se tiendra le 18 juin prochain.

Voici l’horaire :

  • 26 mars : Course et marche populaires de LaSalle
  • 14 mai : Au rythme de nos foulées
  • 18 juin : Demi-Marathon de Pointe-Claire
  • 20 août : Demi-Marathon de Lachine
  • 24 septembre : Demi-Marathon de Montréal

Mon principal défi dans l’atteinte de l’objectif de 90 minutes est d’arriver à bien gérer mon entrainement. Je ne peux pas m’en cacher. Ce sera assez difficile. Il faut que je puisse améliorer mon temps de référence (01:43:20) d’environ 16%. L’an passé, j’ai sous-estimé l’effort nécessaire pour améliorer mon temps de façon aussi significative.

Les années précédentes, j’avais réussi à améliorer mon temps par des marges assez importantes. C’est vrai. Cependant, il y a aussi des limites à ce que le corps peut encaisser comme rythme. L’an dernier, j’ai atteint une sorte de rythme de course où j’étais confortable. Arriver à m’en sortir a été difficile.

Il n’y a pas que ça.

L’an dernier, j’ai appris à mieux gérer la fatigue résultant de mon entrainement. La principale arme pour combattre ceci est le sommeil et la bonne alimentation. Chose certaine, je vais devoir m’y appliquer de façon assidue pour éviter une situation comme cet été dernier. J’aurai l’occasion d’écrire plus tard sur la façon que je compte m’y prendre.

Le plan

Cette année, je compte bien suivre encore le plan d’entrainement de Courir au bon rythme 2 pour le demi-marathon catégorie A. Ce plan d’entrainement est réparti sur quatorze semaines, se divisant en deux segments. Il y a un premier segment de transition de quatre semaines et le segment principal de dix semaines.

Selon le guide, il faut participer à trois compétitions dans la période de quatorze semaines. La première, à la fin du premier quatre semaines, pour valider si la transition a bien atteint son objectif. Une vers la moitié des dix semaines en guise de test. Finalement, une course à la toute fin du plan, comme consécration.

Dans la mesure du possible, c’est ainsi que je tente de faire cadrer mes courses dans cette cédule de quatorze semaines. Ce n’est pas super évident, vous en conviendrez.

planif-v2

J’ai indiqué à la dernière ligne la mention pour la Classique du parc La Fontaine. Je ne me suis pas encore inscrit (c’est encore un peu tôt). J’attends surtout de voir comment va aller la saison avant de m’inscrire à une course supplémentaire.

Pour le reste

À l’hiver 2014-2015, j’ai couru à l’extérieur pendant toute la saison. La semaine, avant d’aller récupérer les enfants à la garderie et la fin de semaine tant que c’était sous -20 degrés. L’an dernier, avec l’accès à un gym à mon boulot, j’avais opté pour un entrainement loin de la neige et la glace.

Cette année, je me suis encore demandé où j’avais pu trouver la motivation pour aller me geler les grelots pour courir dehors. Je ne sais pas encore quelle mouche m’avait piqué à ce moment-là.

Néanmoins, je profite de la « saison morte » pour travailler des muscles et ma capacité cardiaque afin d’être prêt pour la saison s’en vient. Au bureau, j’ai accès à un gym ainsi qu’à des cours de groupes.

C’est ainsi que je me suis notamment inscrit aux cours de spinning. Ce serait un peu fou de ne pas en profiter, n’est-ce pas?

Néanmoins, j’ai vraiment hâte que la neige fonde pour que je puisse me remettre à courir dehors. Vivement la saison qui s’en vient!

Les liens de la semaine – Édition #216

Développement

.NET

Technologie

Web

Science et autres

 

Humour

Utiliser AsyncExpiringLazy pour une mise en mémoire de données qui peuvent expirer

Je ne sais pas si c’est comme ça pour vous. Il y a quelques petits bouts de technologie que j’ai dans une liste que j’ai nommée « j’aimerais bien l’essayer un jour si le contexte s’y prête bien ». La liste est plus longue que d’occasions que j’ai de la mettre en oeuvre.

Au moins, la liste existe!

Cependant, il y a un peu d’espoir pour mes rêves. Dans le cadre d’un projet, j’ai eu à revisiter le scénario de la mise en cache des éléments récupérés d’un service externe. Ça a été la parfaite occasion de sortir l’utilitaire AsyncExpiringLazy de ma manche!

Puisqu’il s’agissait d’une liste de personnes utilisée au cœur de l’application, assez volumineuse et longue à récupérer. Je me devais de mettre en place un processus de mise en cache. De plus, par sa nature humaine, cette liste était amenée à changer avec le temps. Elle se devait d’être rafraîchie périodiquement avec des nouvelles données.

Ce qui est intéressant avec AyncExpiringLazy est justement dans son nom. À la base, il s’agit d’une classe qui a le même fonctionnement que la classe Lazy<T> de .NET. Son code d’accès aux données ne sera pas exécuté tant et aussi longtemps qu’elle n’est pas appelée. L’autre chose, c’est que, par configuration, sa mise en mémoire a une date de péremption. Une fois ce délai atteint, un rafraîchissement des données sera à nouveau exécuté.

Le bonus est que le tout tire profit du mécanisme async de .NET. Dans bien des contextes, avec ASP.NET, son utilisation est utile. C’est surtout que cela permet de permettre de rendre l’appel à mon API qui prend du temps moins bloquant pour les autres requêtes en traitement.

Comment ça marche?

Un gist vaut mille mots.

Évidemment, le premier accès sera plus lent. Par la suite, la magie de AsyncExpiringLazy fera en sorte que vous pourrez accéder à vos données tant et aussi longtemps que le délai d’expiration ne sera pas atteint. Dans mon cas, je me suis aussi assuré que la cache soit toujours « chaude » en ajoutant une tâche avec FluentScheduler qui exécute périodiquement CarsCache().GetAllCars().

La dernière chose que vous devrez réaliser est d’utiliser votre librairie d’injection de dépendances afin de faire persister CarsCache à travers la durée de vie de votre application. Par la suite, le tour est joué!

Les liens de la semaine – Édition #214

Meilleurs vœux pour l’année 2017! 

Développement

.NET

Technologie

Web

Science et autres