Pedal PGH 2015

At the top of the South Side in the morning

At the top of the South Side in the morning

It will be a yearly tradition now and the 2016 edition of Pedal PGH was as great as the previous one. The metric century course (about 62 miles with ~5000 feet of elevation) is really nice with many good outlooks and good spots all around the city. It took about 5:30 to finish the whole things with several stops. The ride is really well organized and marked, with several aid stations along the course. If you like to bike, consider attending the event next year, there are courses for all levels, from 25 miles to 62 miles!

EMFTA available on the Eclipse Marketplace

I have been working for few hours on EMFTA recently, taking some time off from running and focusing on writing software and trying new things (well, having a hammac in my backyard helped me to work for a while at night). The initial goal when starting EMFTA was to evaluate the Sirius modeling framework but it turned out that it went beyond that initial objective and now provides advanced features.

Now, the project is available on the Eclipse Marketplace. So, you can get it easily: you just have to download Eclipse (the Mars version), install it and look for EMFTA in the marketplace. The software will be automatically installed.

You can create a new Fault-Tree using the wizards or start a new one from scratch. I have added new features as well, such as the generation of cutset, the computation of probabilities from the leaf events or the consistency checking of probability values among different events and gates. Many thanks to Bill who helped me to debug and improve the current version. Without his feedback, I would never have add all the new features.

If you have any feedback, any idea for improvement, please send me an e-mail or even fill a bug report on the github area. This software is open source, everybody is welcome to participate and be part of it!

 

Race Representativity in (ultra-)running events

Last week, I volunteered for Eastern States 100, at the Aid Station Barrens. While I was considering running it, it was not possible because of the recent finish at Burning River but also because I am still under medical attention for the next few weeks. Of course, considering our location (mile 91), we met all finishers and people were pretty toasted at that time. Our aid station provided all what runners need: grilled cheese sandwich, peanut-butter and jelly, candies, gels but also Rum, beers and vodka. The right fuel at the right time for the runners.

During this 18 hours stay in the woods, I had the time to discuss with fellow runners about almost everything: life, running, work, politics. One topic raised by someone that night was the lack of diversity in ultra running. Not in terms of gender: there is a lot of women that compete in ultra races and women are now the majority in short distances (60% in half marathons). But in terms of race: I do not remember having seen any black dude during an ultra. Sure, we still have the cliché that the fast guys are Kenyans, but taking apart the elite field, black people accounts for less than 2% in road races in the USA.

Yes, our Aid Station had the right fuel. And some people really enjoyed it

Yes, our Aid Station had the right fuel. And some people really enjoyed it

Something more interesting pointed out during that discussion is that this topic has never been addressed/discussed in the media. We can find some articles on the web but not in media such as Trail Runner Mag or Runner’s World. And while diversity (male vs. female representation and performance), age (running ultra at 60 years-old) or even parenting (“should I let my 10 years old kid run 100K with me?”) concerns have been discussed several times, race representativity was never discussed. Is it the taboo of ultra-running (or just running)? Is there anything people do not want to discuss about it? I hope this aspect would be investigated and discussed, it definitively seems to be a topic worth considering.

 

30 ans: le bilan

Il est courant de considerer que tous les dix ans, on passe par une crise. Cela m’a toujours semblé assez mystique et il semble que ca commence à 30 ans. Pourquoi? Aucune raison et il est commun de parler de la crise de la quarantaine et enfin, la cinquantaine. A croire qu’après, il ne se passe plus rien et qu’on est tellement lobotomisé qu’on s’est resigné à accepter la vie qu’on s’est formé. Du coup, je me suis dit que cela pouvait être intéressant de dresser un bilan avec les 10 règles les plus importantes retenues. Lorsque j’arriverai à la crise de la quarantaine, ce sera sûrement l’occasion d’en rajouter une autre dizaine.

Le-kit-SOS-crise-de-la-trentaine

  1. On apprend davantage de nos échecs que de nos réussites. L’échec est une opportunité. Lorsque nous sommes bloqués, les murs sont présents pour nous montrer combien accomplir un projet nous est cher.
  2. Accomplir un project nécessite un investissement conséquent, que ce soit temporel, psychologique, physique ou financier. Il est rare de voir le réel investissement derrière l’entreprise d’un projet.
  3. Être contrarien, penser à contre-courant. Refuser tout affirmation sans avoir pris le temps pour la juger et se forger sa propre opinion. À l’inverse, éviter de clamer ses doutes et son désaccord afin d’éviter les jugements contre vous à l’emporte pièce.
  4. Acheter peu, réfléchir avant d’investir/acquérir. Accumuler les biens sans réel n’a aucun sens et ne rend pas plus heureux.
  5. L’herbe n’est jamais plus verte dans le champs d’à côté. Elle est juste différente.
  6. Se méfier de tout a-priori et tout raccourci. Un jour ou l’autre, nous en serons la victime.
  7. On peut probablement compter ses vrais amis sur les doigts d’une (ou deux si on est chanceux) main.
  8. Se connaître soi-même, s’assumer, s’aimer soi-même avant aimer autrui et avoir le courage d’être soi. Réaliser ses rêves et faire fi du qu’en dira-t-on, peu importe les raisons.
  9. S’instruire continuellement, lire des livres et éviter la pensée pré-mâchée en provenance des médias de masse. Réfléchir, se forger une opinion prend du temps.
  10. Se fier à des faits concrets, tangibles et non sur des hypothèses invérifiables. Éviter a priori toute promesse et toujours se reposer sur les fondamentaux.
  11. (bonus) Éviter les réseaux sociaux. Hier, c’était le Bistro de la Place, aujourd’hui nous avons facebook ou twitter. Discussions similaires, le côté bobo/hipster en plus, la convivialité en mois.

 

Taking Residency

It is official: I am now a permanent resident of the United States of America. It has been a dream since 7 years ago, after landing in the city of Pittsburgh. Having visited and discovered more than 12 states since then, the desire of living in this country never left me and I am finally allowed to stay as a permanent resident. I never had any plan to come back in my country and this is not going to change anytime soon.

I can’t thank enough the people that trusted me since the beginning and supported my application for permanent residency. These first years were just an introduction. And now, this is the beginning of a very exciting future.

Thank you.

Two Faces 10K: race report

The Story

The two faces 10K is simple: it is two races that take place the same day. One road race and one trail race. The road race starts at 7:30am and the trail at 09:00am.

I wanted to do it because of the medal: this is a very cool medal that can be separated. One part is given once you finish the road race, the other one when you finish the trail race. If you do both, you can assemble both medals and have a big medal.

I thought this could be a very nice way to recover from Burning River 100 milers. Just having a short 12 miles run on Sunday morning, sounds like a good idea?

The Race Bling

The Race Bling

The Races

Both races start at the Boathouse in North Park. The road race is a basic loop around the lake in North Park. Clearly not exciting but it can be a nice way to gauge your fitness level. The trail race go over the basic trails of North Park but have some elevation but nothing really challenging.

The good part of it is that the road race is pretty flat so that you can really have a sense of your progress in terms of speed. The trail is mostly single track trail, which makes it challenging when you want to pass. For that reason, I would recommend to speed up in the beginning of the race if you do not want to be stuck on the single track trail. Once you are in the woods, it can be difficult (and not easy/safe) to pass other people.

The trail race is very well marked and there is no way you can get lost. There are also regular water stops on both races so that you do not have to carry any water with you. Overall, the race is well organized and there is nothing to complain about.

Let’s do it?

I finished the 10K road in 43:53 for the road (3/34 age group 30-39 – 13/208 overall) and 52:07 for the 10K trail (5/40 age group 30-39, 14/193 overall). Not a really big result or achievement but considering that I did not sleep the night before, it is still good to see I did not crashed during one or the other race.

If you are running in North Park, doing this race can be fun but will not introduce you to new trails or roads: you already ran them plenty of times. But it can be fun to hang out with your friends and have a good run. Considering that the race fees are not expensive (about $35), it might be a good plan.

 

Finish line of the Road Race

Finish line of the Road Race – yes, I need to sleep

Information

Comprendre l’immigration par l’expérimentation

“La France, tu l’aimes ou tu la quittes”. Nul besoin de discours aussi percutant que des paroles d’une chanson de Lara Fabian pour decider de quitter le pays. Jusqu’à présent, la seule chose radieuse dont je me souviens sont les fuites des centrales nucléaires, c’est dire si il etait temps de déguerpir.

Après 5 années d’expatriation, je sais que je ne reviendrai pas de sitôt dans mon pays d’origine et probablement jamais. Revenir? Les avantages sont infimes. Et après quelques années, être expatrié est devenu un mode de vie que j’ai adopté. Visiter d’autres pays, découvrir d’autres cultures est enrichissant. Après tout, nous n’avons qu’une seule vie : autant ne pas se rater et en profiter au maximum. Peu importe où cela m’emportera, tant que le parcours est magnifique, je suis partant pour faire partie du voyage.

Pour autant, s’intégrer n’est pas chose facile. Une fois arrivé, l’étranger, c’est toi. Le mec parfois bizarre, parfois marrant mais au fond dont tout le monde se fout. Et pourtant, ma situation est très avantageuse: étant immigré pour mes compétences,  on me voit pas comme un boulet de la societe. Ca aide a relativiser et imaginer comment on traîte Momo lorsqu’il arrive dans notre pays: sans qualification et avec moins d’attributs socialement interessant, on imagine bien qu’il sera plus facilement mis a l’écart.

Et puis ici, être frenchy, c’est classe. Ca fait bien, propre sur soi. C’est le comble du raffinement: tout ce qui est de bon goût est “French”. Peu importe si tu portes des shorts la majorité du temps et que tu te évites la bouffe francaise. Jugez plutôt le vocabulaire ici: french press, french vanilla, french roast, french dressing , tout ce qui est classe est “french <insert-your-name>”. Et dans le pays de l’oncle Sam, on apprend le francais comme on apprend l’allemand en france: a permet de dissocier les gnards issus de la famille Le Quesnoix de la famille Groseille. Choisis ton camps camarade.

Du coup, il n’est pas rare que lorsque l’on rencontre quelqu’un, ce dernier essaye de baragouiner quelques mots en francais, histoire de derouiller le peu de vocabulaire appris durant sa tendre enfance mais aussi pour montrer qu’il fait parti de la haute. Embarassé, on compatit et fait croire que l’on comprend. Il est aussi habituel d’être réduit au rôle de singe ou perroquet et que l’on parle avec vous pour la simple envie de vous entendre répéter certains mots parce que votre accent est “trop marrant”. Se voir réduit à un animal de foire qui répète quelques mots est parfois frustrant voire insultant.

C’est assez facile d’être intronisé, de connaître des gens, se faire des amis. Mais ici, nombreux sont ceux qui considère que le lien d’amitié est aussi important que le lien qui vous uni sur facebook. Des relations purement jetables. Ca a ses avantages mais aussi ses inconvénients et l’aspect pratique est parfois fort appréciable même si il est parfois difficile d’accepter le côté rude de la chose.

musée-de-limmigration-grande-image

Marre des États-Unis? Point du tout. Mais être expatrié, avoir la place de l’étranger aide a relativiser et comprendre pourquoi ce que les migrants ressentent lorsqu’ils entrent en france. Les clichés peuvent avoir la vie dure et s’intégrer est difficile. Cela laisse à réfléchir, particulièrement lorsqu’on est dans une situation très favorable et migre dans un pays qui est habitué à l’immigration (être immigré aux Pays-Bas, pays pourtant Européen était bien plus difficile et douloureux). Cela donne un léger apercu des quelques problèmes qui peuvent être rencontrés par ceux essayant de venir en france et donner un regard autre que les traditionnelles discussions de comptoir.

Expérimenter, essayer, se mettre dans la situation de l’autre : il n’y a pas de meilleure solution pour comprendre le malaise d’autrui. Et pour ma part, même si parfois, la vie d’expatrié a quelques côtés déplaisants, je ne regrette en rien ce choix et suis heureux chaque matin du parcours accompli. Pourvu que ca dure.

Passer Outre

Interlude. Il est habituellement plus facile de s’exprimer dans sa langue natale plutot que dans sa langue d’adoption. Et de nos jours, il est aussi difficile de s’exprimer et de reellement trouver sa place au milieu de ce monde desormais interconnecte ou la pensee est service pre-marchee et ou la reflexion est devenue l’exception et non plus la regle.

Lever de Soleil sur la riviere Monongahela

Lever de Soleil sur la riviere Monongahela

Il m’a toujours semble amusant de penser que la vie procede par etape. Nous nous donnons des objectifs, qui, une fois atteints, definissent nos nouveaux buts. Et si vous apprecions ces etapes et savourons ce que la vie nous offre, il est parfois difficile de distinguer ou le voyage nous emmenera et se finira.

C’est une des principales difficultes ou nous echouons souvent (parfois que temporairement, heureusement): savoir mener sa barque afin de definir les prochaines etapes sans trop deriver du plan de route global. Cela necessite de se connaitre: de savoir ce que l’on souhaite (volonte) mais aussi ce que l’on peut faire (capacite). Est-ce si simple? Savez-vous vous meme ce que vous souhaitez ou ayez la force d’accomplir reellement?

Pendant les semaines a venir, cet espace de pseudo-liberte va ainsi se transformer en une sorte de defouloir experimental. Histoire de parler d’une vie d’expatrie depuis maintenant plus de 5 ans. Ou encore evoquer mon gout particulier pour les Etats-Unis et pourquoi vous devriez etre vegetariens pour sauver les ours polaires. Ou tout simplement pourquoi, au fil des annees, la vie est toujours plus enrichissante et passionante. Et peut-etre tout cela a la fois.

Oui, cet espace va se transformer en joyeux bordel. L’occasion de sentir que j’ai encore quelquefois l’esprit frenchy.

Looking back at Burning River: improving your training for an ultra

I ran my first 100 miles race one week ago and it was epic. Looking back, I do not think there is anything I could have done differently during race day that would have made the race better. On the other hand, there is a few things I would slightly change in the training and preparation and would then affect race day. On the following, I am trying to list what worked very well (the good), what could be improved (the bad) and finally, what has to be avoided at all costs (the ugly). If you are preparing for a long distance race, that might help to you adjust your training strategy and your preparation


1400761_481002312015435_748583470_o

The Good

  1. Using the right pacer, do not take a random guy: finding a pacer is easy: go on facebook, and just ask for a pacer. But finding the right pacer is another story. During my preparation, I thought about many pacers. Looking back and how horrible I was at mile 50, I do not think any of them would have pushed me to the finish and would rather recommend to drop. Not because they are bad pacer but because they were not the right person at this time: they would have been terrified by how I looked at that time (and for a reason). Pacing is not just running next to somebody but is definitively a real job. That day, I had the right person on board, the one that not only pushed me to finish but also took care of everything, even if I was about to pass out at every aid station.
  2. Weekly mileage: I averaged 70 miles per week and peaked at 105 one week. It felt ugly while training but it helped be to go through the miles. On the other hands, while the weekly mileage was good, how I spread could be improved.
  3. Hills repeats: During my training, I was eating hills for breakfast and dinner. I live close to a hill (commercial street) and I ran it almost every day to train. In the beginning, it was hard but after few weeks, it sounds like any other part of my training. Running hills on a regularly basis really helped to train for a trail race.

The Bad

  1. Training runs: I logged most of my miles by going to work. I vary my workouts every day (going in the park for more elevation, staying in the streets for flat roads, etc). But it was mostly 5 to 6 miles out and 5 to 6 miles back. Very few long training runs and a couple of back to back. I would add more long runs and back to backs (e.g. 30 miles on Saturday and 20 miles on Sunday). The effect on my performance is clear on my pace: I started to slow down after mile 20. Being used to more long runs would have delay this.
  2. Be used to drink more while running: I am used to drink when I stopped (when I am at the aid station) while it is easier to take small sips while you are running (ensuring consistent and permanent hydration). It would have been better to train and drink while running – something I just started during the race, after finding out I was really dehydrated.

The Ugly

  1. Take action if something goes wrong before the race. Being sick before the race? Take immediate action and seek medical advice right away. Do not wait so that you know what to expect on race day. This would avoid to be in a very bad shape during the day. In my case, I paid the price.
  2. Look your food and nutrition intake. Even if you do not want to drink or eat, try to maintain 200 to 300 Kcal and drink a lot each hour. This is one of the reason I arrived in a bad condition at mile 53 (not enough water and food) and why I finished the race later (took food after this checkpoint). Be careful, catch up after having a calories deficit takes time, so, it is better to fuel regularly.
  3. Recover and rest after the race. I drove back three hours after the finish and did not eat for a long time as I was not hungry and clearly not in the mood of doing anything. I ride my bike the next day but was not walking straight and was feeling I was about to pass out all day long. After medical exams, it turns out that I had low red blood cells four days after the race and had many other issues related to dehydration and intense efforts. Rest a day at least after the race.

1013379_420201514762182_627588454_n

I hope these few comments/suggestions could help you to train for a long distance race, either 50k, 50 miles or 100 milers. Hope to see you during a race, you can check out the race agenda!

What is the real Cost of Software Complexity?

Recently, I had an interest about the runtime cost of complexity. I am used to situation where people argued they used a bad or poor design, especially in embedded systems, where resources are expensive and thus, scare. For example, why would you cut your programs in different modules when you can have a bunch of functions calling each other? Why using parameters when you can use global variables?

But such design flaws have concrete impacts (poor maintainability, or analysis support) and using it come at a cost: more testing (obviously) but also increases certification costs (more tests to write) and reduce potential components reuse.

While this is difficult to quantify these costs, this is easy to evaluate the resources consumption of well designed software. For example, how much does it costs to avoid the use of a global variable. Captain obvious will tell you that the cost is not significant for memory but there are other costs (processor cycles, context switches, etc.).

So I started to compare the same program implemented using two patterns. The program is a simple producer-consumer system with one component sending a value to another component. There are the difference between both implementations:

  1. Shared Variable: The producer and consumer are in different tasks and use a global variable to exchange the value
  2. Isolated Tasks: The producer and consumer are located in different tasks and communicate the value using communication queues

I specified these two implementations in an AADL model, generated the code (with Ocarina) and gather some metrics (with the Linux perf framework). I got the number of context switches for each implementation: using shared variables uses more context switches. As there are the same number of tasks in both implementations, I was thinking I would get a similar value. But not at all.

Producer Consumer: difference of context switches

(x = number of shared variable/data flow ; y = number of context switches)

 

This value is confirmed with the number of instructions for each implementations as well: the shared variable takes then way more instructions than the implementation with data flow.

Variation of Processor Cycles

(x = number of shared variables/data flow in the indices ; y = number of instructions)

 

Still very surprised by this result. I also want to make a comparison on the memory performances. But now, looking at this preliminary results, it sounds very weird and build an argument to avoid bad design (such as using global variable vs. encapsulated data with clear and clean interfaces). I will probably provide more details but these first results are motivating to investigate further with different code patterns and variations.