How I Ran a Marathon

Those that knew me a few years ago would be understandably surprised if/when they heard I was planning on attempting the 2022 Dublin Marathon. Heck, if you had told me from that timeframe I wouldn't have believed you. I was, frankly, an overweight and increasingly unfit person as I was barreling through my mid thirties. I was (and still am) an enjoyer of good food and craft beer, and it will be unsurprising that when paired with a pretty sedentary lifestyle, there's a bit of an inevitable trajectory implied.

So what changed? Well a few things happened. I was definitely aware of the overall trend for quite some time but it took a long time for me to get off my ass and do something about it. Part of the impetus for this was that my fitness had dropped enough that I couldn't keep up with my fellow (ice) hockey teammates. So in September of 2019 I began my running journey. And now, just over three years later, I ran my first marathon.

At the risk of being a bit self-absorbed, I thought it might be mildly interesting to some people on how I managed it. So read on if that would interest you!

Approaching the start line!

Forming Habits

Probably the single biggest thing I would attribute to this was getting into some good habits. The biggest of these was simply to make it not an option to get out for some exercise every single day. From about June or July 2020, I got out for a walk and/or went for a run nearly every day. I'm currently rocking a streak of nearly 720 days of meeting my daily fitness goal on my Apple Watch (and there was a single day in November 2020 that annoyingly broke a prior streak of ~150 more days).

There are a few nuances to this habit forming that I concentrated on over time. First is that the nature of the commitment to getting out every day is that the decision to get outside was fundamentally not an "if" question, but a matter of "when". So the daily forecast was a critical part of this. It turns out that while Ireland has a reputation for a lot of rainy weather, there was almost always a window in the weather that allowed for at least a short walk minimising time in the rain, or where the wind was calm enough that an umbrella was practical enough.

Second, I applied the "when" not "if" pattern to running occasions as well. If the goal was to run once a week, then I had to pick a day during the week to actually get out for a run. No exceptions. Looking back at my Strava logs, since August of 2020, I count just two weeks where I didn't log a run, so I did a pretty good job of sticking to this!

And third, the aim was to get better fitness. So for both walking and running, I began to push up the pace and distance traveled over time. There was a bit of variance over the past couple years, but I was easily averaging over 8km a day when walking, and 13-14km each outing when running.

There's one extra bonus I discovered with this plan. I found the daily walk/run routine was tremendously good for my mental health, particularly over a chaotic couple of years that included a global pandemic amongst other things. There's something about taking a break from whatever is going on at work or at home and spending some time on your own experiencing the neighbourhood and the outdoors. I explored the area around my house, discovered several very pleasant parks and green areas, and found that with a bit of time devoted to it, a lot more was within "walking distance" than I would've given credit to years ago.

Tracking Metrics

I found tracking my metrics and progression tremendously motivating. There's something about watching general trends move in a good direction that must appeal to my nerdy sensibilities. While I have long worn an Apple Watch, it wasn't until I started giving fitness some attention that I started to benefit from most of the fitness tracking aspects that it had. It is an incredible device for this purpose though! Between that and a basic bathroom scale I had most of the tools I really needed to have a good grasp of my fitness metrics.

The main things I tracked included:

  • Weight

  • Route and Pace of walking and running workouts

  • Heart rate during workouts

  • VO2 Max

  • Calories burned and exercise minutes

  • Resting heart rate

Some observations on what I saw over the past three years:

  • I lost the bulk of my weight in 2020 (nearly 10kg!). After that, my weight has stayed very stable within about a 2-3kg window.

  • I don't have nearly as much data yet and am not entirely sure how much I trust it, but I got a smart scale that alleges to be able to do some amount of body composition measuring. The general trend this year since about January is that while my weight has stayed fairly stable, I've lost fat and gained muscle.

  • My VO2 Max scores did not start to go up until midway through 2021. While I was increasing my walking pace and running once a week, it wasn't until I returned to hockey training that my VO2 max score started to increase meaningfully. More on that in a bit!

  • I gradually increased my daily calorie burned target (what Apple calls the activity ring) from ~500 kcal a day three years ago to 700 kcal the last couple weeks before the marathon. That should be viewed as a minimum per day to earn the activity award for every day - my average was nearly 950 per day in 2022!

  • It's important to make sure you're looking at overall trend lines. It's not a good idea to stress about a particular datapoint - particularly for things like weight that can fluctuate a fair bit from day to day. I obsessed over my metrics, but made sure to be zooming out to the week or month time frame as that gave a much better picture of the progress I was making!

(Mostly) Sticking with a Training Plan

Okay, so all of the above gives a picture of general fitness, but now we should talk a bit about the specifics of training for a marathon. Keep in mind that this is how I did it, and I may have gotten exceptionally lucky with how it all worked out - it's one datapoint, albeit hopefully an inspiring one.

At the gentle prodding of a friend who had run the last couple Dublin Marathons, I decided to put my hat in the ring for a lottery entry into this year's Dublin Marathon. I thought that the chances were pretty slim that I'd actually get the chance to actually buy a ticket and what was the harm? Well, on the 17th of January this year I got an unexpected email that I had won an entry. So without thinking too much about what I was signing up for I plopped down my entry fee and proceeded to plan out my summer training schedule.

After some research I settled on aiming for a fairly ambitious 4-hour target. To pick that, I used some of my personal longest run times to plugin to an online calculator to get an estimate about what might be feasible. So after some more research I picked out the 4 hour marathon plan from The Marathon Handbook, and then proceeded to make a few modifications to it.

The original plan was 20 weeks long and I was anxious to get started so I tacked on an initial week at the start. Possibly not advisable though - the plan ramped up my running volume a bit faster than I probably should have.

I used my hockey club's weekly in-the-hall-on-wheels training session to substitute for the one day a week that program had you do sprints. Hockey is a great cardio sport and is not that dissimilar from doing sprints - particuarly in game-like sessions. This let me reduce some running volume but still getting good benefit to my cardio training. Our hockey team also had matches scheduled on the weekends which I just added into the schedule for a little extra exercise. Perhaps a bit foolhardy but it worked!

A typical hockey training session. Look at that heart rate graph!

I scheduled myself to take part in the Dublin race series of events. Since I had spent all of my running training on solo runs I figured that my first race with other people shouldn't be the Dublin Marathon. The Dublin race series is one-event-per-month series of increasing distances over the summer: 5 mile, 10k, 10 mile, and a half marathon. These race days didn't quite line up with the schedule so I had to bump things around a bit to accommodate them.

Finally, on every day without a run on it I continued to take my lunch time walks to make sure I filled my daily move goal. These walks continued to be fairly high-pace things which I believe also contributed to my overall fitness levels.

My training plan with colours indicating if I had met the plan or not. Target pace for all training runs was 5:27/km, target pace for all long runs was "easy pace”. Days outlined in red had ice time in Belfast in addition to the training schedule.

So plan in place, I kicked things off early in June with my now customised 21 week marathon training program. I was able to follow the plan pretty consistently throughout with the main modifications during the program of swapping a few activities around to suit the weather or the social schedule. I ran into three disruptions that caused me to miss a little bit of training:

  • About a month in, we had some friends in town and we took them on a bit of a decadent trip to the west coast and had several nice meals. I did my best to fit the training schedule around that, but some of the adjustments to both my diet and the training schedule resulted in a heavier week including some interval training instead of hockey. The result was after returning from that trip I nursed some sore knees and decided to give myself a bit of a break from running, missing three runs and struggling a little on a very hot day for the Fingal 10k. Thankfully, I was able to get back on track!

  • A hall closure caused us to miss a couple weeks of hall training and I missed one due to some end-of-month festivities at work. I did substitute a HIIT workout from Apple Fitness on one of the evenings, but it was a bit of a drop in overall cardio training in the middle of September.

  • October was my tapering month but throughout most of the month my knees were giving me grief (particularly my left one). I completed nearly all of these runs in October but by the last week I was in a bit of a panic that my knees were not close enough to 100% for comfort and dropped a couple of small runs at the end of the schedule and reduced my walking pace and duration a whole bunch to try and avoid provoking the injury more. Somehow this along with icing the knees and foam rolling contributed enough to get me back into business for the big day.

I guess I bring up the above detail as specific examples of how my training didn't go to plan. You'll see most guides indicate that basically nobody's training plan goes totally to plan and that injuries or issues can crop up. It's important to be agile and use your training plan as a template for making progress towards the goal but not treat it as a strict mantra.

The Big Day

Since this is the one and only marathon I've ever run, this part is probably the least instructive of the whole story. But I figured it'll at least be interesting to capture some anecdotes from the experience.

First of all, the whole event is a surreal thing to be a part of. The amount of community support is incredible. Almost every part of the route was lined with at least a sprinkling of people cheering you on, and at several junctures there was huge crowds of people with a DJ playing tunes. I can't even describe the feeling of being on the race route and getting that energy from the crowd, but I can say that it definitely gives you a boost to keep going.

I'm impressed by the sheer variety of people that draw into this event. A marathon distance is no joke, but people of a huge variety of fitness and age show up and give this event a go. When you see so many people struggling in whatever way they are affected to cross the finish line, it is incredibly inspiring. I'll say this: more people can run a marathon than I would've given anybody credit for before seeing this happen. I think that's far more inspiring than my own attempt I'm chronicling here.

Because I had put a purposefully pessimistic time on my entry, I was staged in the 4th and final starting wave of the race. It turned out that this was a pretty good spot to be. I showed up early and took my spot pretty close to the start of that wave and because my planned pacing was a good bit faster than the pacers in my wave (the fastest pacers in my wave were targeting 4:30), I got out of the pack pretty early. The other psychological benefit this had was I spent most of the race passing people from the wave ahead of me instead of being passed.

One other thing I quite liked throughout the race was I used the official time tracking app to get notifications of the other people I knew in the race. The app gave a notification every 10km and at halfway and the finish line. So as I was racing, I got notifications to my watch about where people were. I found it encouraging to see my friends and colleagues making good progress in the race.

In terms of my own pacing, I tried for the first 10km or so to keep my pace a bit on the slow side. I had found this to be a hard thing to do in every race I had done so far and it was similar in the marathon - but for the first 10km I managed to keep things in and around my target pace of 5:27/km. As the race continued I found it harder to hold back and started to push my pace up a bit through the 20km and 30km milestones.

Things nearly unraveled around the 34-36km mark where the second steepest hill of the route hits you for a bit more than 2km. My left knee that had thus far held up started giving me some really concerning spasms every few strides. Thankfully, a bit of a slower pace and some determination got me up that hill and my knee mostly held on through the remainder of the race.

I had enough energy left to push the last couple of kilometres, and once I saw that I was within range of beating out a 3 hour 50 minute time I buckled down, drew energy from the crowd and pushed over the finish line. I have to give most of the credit to the surge you get from being cheered on by a ridiculous number of random strangers. It's not something I'll get to experience very often in my life, but it is incredible and impossible to describe.

Crossing the finish line was surreal. And very soon after slowing down to a walk you definitely start to feel just a bit of the soreness you've been trying to ignore all race long. It's hard to walk, but it's also hard to sift through the emotions at the time. Someone puts a finisher's medal over your head, you make your way along and pick up the swag bag and the marathon participant's shirt in a very strange mix of exhaustion, euphoria, soreness, and disbelief. What a bizarre thing.

Some other quick hit anectodes:

  • Somewhere in the first half of the race, somebody had a BBQ going with tantalising smells of grilled food. More than one person around me made the joke of running over to ask for a serving - I'm sure they weren't the only ones.

  • Given the proximity to Halloween, there was several people who put in the effort/sacrifice to wear a costume. I think I saw a couple of Star Wars Mandalorian characters, a Spider-Man, some Baywatch lifeguards (complete with an inflatable lifesaver under their arms), an Elvis, and many more that I can't immediately recall.

  • There was some good signage out there. One read "never trust a fart" which gave me a good laugh as I was passing by. Several "tap here to power up" signs with a Super Mario magic mushroom were common. One guy near the end had a "the end is nigh" sign right near the finish line.

  • Again it's hard to overstate just how many supporters there were out there. So many people had offerings of sweets or orange slices or bananas, or were playing music loudly on their car stereo or whatever speaker they could blare tunes out of. So many people screaming and cheering for you as you went by. I don't know if that's how every marathon is, but that is how the Dublin one was, and it was incredible.

Media Year in Review, 2021

One thing I’ve tried to do with a bit more of a concerted effort over the past couple years is try and keep track of the media I consume. As a result, it’s a little easier to go back and review what it is that I watched or read over the last year. So I figured maybe it might be interesting to share the highlights from 2021 from my perspective.

Television

TV is a big part of our relaxation time. I like to think we have a decent relationship with TV: we seldom binge watch anything, preferring to watch one or two episodes of TV in an evening in the daily routine. But given that the daily routine wasn’t often disrupted for social events (because this was the year that it was), we got through a lot of TV this year. Here are some highlights:

  • For All Mankind, Season 2 - This is fantastic alternate history show with excellent characters. It’s ostensibly a space show, but a lot of the action happens back on earth. Honestly, this is right up there with Ted Lasso as the best shows that the Apple TV+ streaming service has to offer, so if you happen to have a subscription and haven’t seen this yet, I think it is worth your time.

  • What We Do in the Shadows, Seasons 1-3 - This is a ridiculous mockumentary style show (kind of like The Office) which follows a group of vampires that live in Staten Island. The TV series is based on the movie of the same name that introduced the concept back in 2014. The show is hilarious, awkward and corny in all of the best ways.

  • Loki, Season 1 - We watched a few of the new marvel TV series this year, and for my money this was the best of the bunch. I loved the old tech (50s or 60s?) aesthetic of the “Time Variance Authority”. The characters, acting, and plot all meshed together really well.

  • Bojack Horseman, Seasons 1-5 - We worked our way slowly through this series throughout the year, and I’m still not entirely sure what to say about it. This star-studded show replete with guest stars is hard to describe. It has all kinds of silly nonsense, but it’s got some difficult subject matter that I think it does a good job with but make for some challenging watching. It makes it difficult to binge watch, but we’ve reliably worked our way through most of these old seasons all year and we’ll likely wrap up the last season early in the new year. So I’m not sure I can strongly recommend, but it seems worth mentioning.

  • Hacks, Season 1 - This HBO Max series about a young writer who gets a job writing for an extremely successful standup comedian at the end of her career is brilliantly smart and funny. Not a huge amount to say here except we quite enjoyed this show.

  • Ted Lasso Season 2 - I rate this season very close to the first season in enjoyability and will almost certainly go back to rewatch this delightful show again. We prepped for the new season this time around by rewatching the first season: something that we haven’t done in a very long time. A strong recommendation.

Movies

I’m not a big movie buff, and don’t tend to watch nearly as many movies as other media. But the highlights for us this year were:

  • Wolfwalkers - We also watched “Secret of Kells” and “Song of the Sea” which are also by the same studio that has a presence here in Ireland. These three movies were the first movies we watched in 2021, and we found all three delightful. A distinct animation style paired with good stories are a recipe for success.

  • Palm Springs - It’s a silly movie that has a bit of Groundhog Day vibe, but it’s an enjoyable bit of silliness.

  • Luca - I try and watch all the Pixar films when I remember to check if one is out. I remember enjoying this one similarly to other recent films, although I think I enjoyed Soul a bit more perhaps?

  • Dune - I’ve managed to not get into the Dune franchise up until now. I’m not familiar with the Dune franchise, but this movie got enough buzz this year to get me to watch it. I enjoyed it quite a bit, and am looking forward to part two!

  • Shang Chi and the Legend of the Ten Rings - I was pretty surprised at how enjoyable this movie was.

Books

I read 21 books this year which is inline with the past couple years since I started keeping track. I’d like to raise this a little bit, although exactly how I’ll find the time I’ll have to figure out! Here are some highlights from this year:

  • The City of Brass, S.A. Chakraborty - This, as well as the sequels called “The Kingdom of Copper” and “The Empire of Gold” were an enjoyable start to my reading this year.

  • The Golem and the Jinni, Helen Wecker - This and the sequel called “The Hidden Palace” were incredibly good. The series covers a golem and a jinni and how they interact with New York City in the early 1900s. The author did a huge amount of research about that time period, and the books are tremendously charming and definitely some of the best reading I did this year.

  • Leviathan Falls, James SA Corey - The end of the Expanse series which has also been turned into a TV series in its final season right now. This series is a really imaginative science fiction series detailing man-kind’s interaction with alien technology and how it impacts the different factions of Earth, Mars, and “Belters”. The whole series is worth a read, and I really appreciate that the authors finished the series in a reasonable amount of time!

Podcasts

In a year where I got out to walk and run more frequently and for longer than ever before, I spent a lot of time listening to podcasts. The last time I highlighted anything in this area was this blog post reviewing 2014! Here’s what my regular podcast listening looks like these days:

  • Accidental Tech Podcast - this is still required listening for me every week. It’s a really good way to keep up to speed with what’s going on with Apple and technology in general throughout the year.

  • 32 Thoughts the Podcast - It’s hard to follow NHL hockey in Ireland given that most of the games are not played at a Irish friendly time. But I’m tremendously impressed at how good these guys are at interviewing their guests and getting good stories to come out of them. As a case in point: their “Christmas party” episode at the end of this year was over three hours long and somehow they managed to get through a huge number of guests with many interesting stories. A really good listen for any hockey fan.

  • Connected - One of several Apple-focused tech podcasts I listen to every week. These guys are some fun nonsense each week and I really appreciated this show this year.

  • Dithering - this podcast is subscription only and releases (exactly) 15-minute episodes a couple times a week. An excellent listen to get a snapshot of the latest tech news.

  • Reconcilable Differences - This is a hard show to recommend in a weird way since I don’t know how to describe it. But for those familiar with either John Siracusa or Merlin Mann (or both), this is an enjoyable listen every couple of weeks.

  • Upgrade - Rounds out the slate of Relay.fm podcasts that I regularly listen to. Another technology podcast that is mostly Apple focused. Out of this show, ATP, and Connected, this might be the best of the three to listen to (although it’s not an easy call).

AGDQ 2020 Highlights

In its various forms, Games Done Quick is a wonderful exposition of enthusiastic and skilled gamers demonstrating those skills for charity. It’s amazing. AGDQ 2020 just ran, and they upload most (all?) of their videos to their YouTube channel for later perusal.

I find I get the most enjoyment out of the ones for which I’ve played the game for or at least have some familiarity. This year’s slate had a few highlights for me.

The Legend of Zelda 100% No Source Requirement

It’s three hours long, but this is an insane demonstration of how the landmark 3D Zelda game is as glitchy as hell. This video shows a cool collection of the state of the art techniques that players can perform without tool assistance. They can manipulate the game’s memory to give them items they shouldn’t have or clip through the walls to teleport right to the boss. It really is astounding.

“One Mind” Super Mario World Co-op

This is mind blowing. A hacked Super Mario game that switches control of the character between the two controllers every 30 frames (approximately every half second). The players need to be incredibly fast and they need to react to each other’s cues and miscues. This video is both funny and entertaining. Worth a watch.

Celeste Farewell

I enjoyed Celeste as a game, but the game caps out at difficulty higher than my ability. But man is it a fun game to watch a player who is good at the game destroy some of the most difficult levels I’ve ever seen.

Other Stuff

There were some other cool moments, like VVVVVV being open sourced, or the standard Super Mario 3 or Mega Man races. But if you have any interest in video games, there’s likely to be a run or two that would interest you here.

Raft Consensus Algorithm

One of the algorithms for server architecture that’s been on my list for awhile to investigate is the Raft Consensus Algorithm. Recently I had enough spare time to start engaging with some of the content on their GitHub page and now I feel like I have a high level understanding of the basic concept.

Dealing with faulty computers is notoriously difficult. I’d wager that a very large portion of server architectures in the real world are ones that don’t deal with computer crashes in a fault tolerant way. Why? Well the simple answer is that computer crashes in these environments are rare events. Over the last 10 years of working in the industry, I’ve only seen crashes of this kind in production a few times. So it’s a rare event, and it’s also a hard thing to architect around. As a result you end up with a situation where you depend on your servers to be running and a crash of the system your server is running on results in downtime until you respond and start your system up again.

I watched a few different videos on Raft, and one thing that struck me is their emphasis on making the algorithm easy to understand. That’s not to say it’s a simple system: the complexities of handling all the edge cases is not simple. But it was refreshing to see an area of computing where some smart people spent significant effort to make things simpler to grasp. The fact that this algorithm has so much adoption since its inception is kind of proof that they hit on something important.

So far I’ve watched three of the videos that are on the Raft GitHub page. The best was probably this one:

It’s pretty cool. One thing that wasn’t clear to me after the first video I watched was how this system deals with clients, and this video explains that better. So the way I understand it, the distributed log that they talk about is more of a log of client requests. Those requests may or may not succeed once they are actually attempted in the system’s state machine. But the consensus algorithm here is getting agreement across multiple servers for the order in which those requests are going to be processed. Once a majority of servers has committed the request to their log then it is safe to attempt executing the request and returning the result (whether success or failure) to the client.

When I first was looking at this, I interpreted the log in this mechanism as what I’d call an event log - a record of the state changes in the system. But that’s the output of the state machine in this formulation so this initial confusion set me on the wrong path a little bit.

I remember our team looking into ways to make our monolithic server architecture more fault tolerant. The observation was that the main server that was responsible for all the state change was vulnerable to these computer crashes or network outages. One strategy that we explored was having a backup server that was getting its state replicated from the current live one, and then have some mechanism to hand over responsibility to the backup if there was a problem with the original. The problem was always going to be that this was a rare occurrence and any handover would likely need to be manual. I guess recovery times might have been quicker though if you knew that it was likely safe to just instruct the backup to become the new live authority.

I find myself curious if Raft would have been an option for us. The downside is that client requests would have more overhead since they would need to be committed to the distributed log first before being attempted. But the cool thing would be that by running three instances of these core servers you could be fault tolerant to any one of them crashing.

Here’s a question I don’t know the answer to though: what happens if these logs of client requests contain sensitive data? In today’s GDPR world, what do you do architecturally to clean out any sensitive information?

Server Architecture Learnings

Happy New Year! This blog has managed to do what most blogs do and languished with no activity for a couple of years now, even though it has kind of been in the back of my mind that I really should do something with it.

Those that know me will know that I don’t really believe in New Year’s resolutions. I typically don’t really believe in arbitrary date boundaries to make changes to my life if I start to realise a change is needed. And famously, New Year’s resolutions don’t tend to stick for people. So I’m not treating this as a resolution, but rather a new thing I’d like to try and concentrate on a bit more from this point forward. The coincidence that it happens to be a thing I’m doing at the beginning of a new year (and a new decade!) is just that.

Over the holidays, I’ve had some more free time to think a little bit about where I am in my life. I’ve come to a few realisations:

  • I’ve spent a lot of my spare time over the last few years playing Hearthstone. I really got into it for some of that time and had some success with it. But if I’m honest, I’ve started to lose interest in it and it doesn’t capture my attention like it used to. It’s an easy game to get trapped in though and for the past few months I’ve been coasting along playing it most days but not feeling engaged. I think it’s time to uninstall and move on.

  • I’ve realised that I haven’t been able to put a name to what I find interesting about computing. There’s a lot of things I do find interesting, but what’s my passion? Something I’ve come to realise is that I find the architecture of servers pretty fascinating. I’ve had the benefit of working on two different highly successful poker server platforms. These architectures are fascinatingly different-but-same. I want to explore those differences and get a better picture of what’s out there for competing technologies. It’s something I have more than a decade of experience in, and I’d like to better be able to discuss that experience and share things I’ve learned.

So, where does that bring me? I have a couple of goals for the coming months. I intend on spending more of my free time on learning about server architectures. One way to track this progress is to write about what I’ve learned, and that has the benefit of reviving this blog again and giving me a way to look back on what I’ve learned over time.

If this sticks and I get in the habit of writing more, then I might expand a bit on the kinds of content that I write for this blog. I have several ideas on some things I can do for content, but let’s start slow and steady and see where it take us.

Simulating the 2016-2017 NHL Playoffs

As with prior years, I've run my NHL playoff simulator for the playoffs that start tonight. Here's the table, including the Sports Club Stats predicted percentage to win the cup for reference.

Win Round 1 Win Round 2 Win Round 3 Win Cup SCS
Montreal 46.90% 26.60% 8.90% 4.20% 4.00%
Ottawa 38.90% 13.70% 3.10% 1.10% 0.80%
Boston 61.10% 28.00% 8.70% 3.90% 3.40%
NY Rangers 53.10% 31.80% 11.40% 5.80% 5.70%
Washington 81.70% 53.60% 40.30% 28.80% 32.10%
Pittsburgh 43.50% 16.20% 9.50% 5.20% 6.10%
Columbus 56.50% 24.60% 15.70% 9.40% 8.20%
Toronto 18.30% 5.60% 2.40% 0.90% 1.10%
Chicago 57.30% 25.30% 13.40% 5.30% 5.10%
Minnesota 67.90% 43.80% 28.20% 14.30% 14.00%
St Louis 32.10% 15.00% 7.00% 2.40% 1.90%
Nashville 42.70% 15.90% 7.30% 2.40% 2.30%
Anaheim 58.80% 28.20% 12.50% 4.60% 4.80%
Edmonton 55.90% 32.60% 15.90% 6.60% 6.60%
San Jose 44.10% 23.00% 9.90% 3.50% 2.60%
Calgary 41.20% 16.10% 5.70% 1.60% 1.30%

Washington is once again the odds on favourite to win the cup this year. Maybe they'll do it this time? They have to get out of a pretty tough group though: the winner of that Pittsburgh-Columbus match is going to give them a run for their money I think.

Meanwhile, the Rangers are the favourites to upset the divisional leaders Montreal. This playoff format is so weird with one of the best teams in the East ending up in a wildcard spot due to the strength of one division (and the weakness of the other).

In the West, Minnesota looks like a sleeper pick based on their finishing position. The thing that's interesting about them is they haven't played well down the stretch. But they're still a scary team on paper.

In other news, my hometown Edmonton Oilers are in the playoffs for the first time since I started running this playoff simulator. Hard to believe I've been doing this since 2008, and all this time my team hasn't made the playoffs. Here's hoping they last at least a few rounds into the post season!

Round 2 (Posted April 25)

First a quick review of round 1: Hooray for the Oilers!

Win Round 1 Win Round 2 Win Round 3 Win Cup SCS
Montreal 46.90% 26.60% 8.90% 4.20% 4.00%
Ottawa 38.90% 13.70% 3.10% 1.10% 0.80%
Boston 61.10% 28.00% 8.70% 3.90% 3.40%
NY Rangers 53.10% 31.80% 11.40% 5.80% 5.70%
Washington 81.70% 53.60% 40.30% 28.80% 32.10%
Pittsburgh 43.50% 16.20% 9.50% 5.20% 6.10%
Columbus 56.50% 24.60% 15.70% 9.40% 8.20%
Toronto 18.30% 5.60% 2.40% 0.90% 1.10%
Chicago 57.30% 25.30% 13.40% 5.30% 5.10%
Minnesota 67.90% 43.80% 28.20% 14.30% 14.00%
St Louis 32.10% 15.00% 7.00% 2.40% 1.90%
Nashville 42.70% 15.90% 7.30% 2.40% 2.30%
Anaheim 58.80% 28.20% 12.50% 4.60% 4.80%
Edmonton 55.90% 32.60% 15.90% 6.60% 6.60%
San Jose 44.10% 23.00% 9.90% 3.50% 2.60%
Calgary 41.20% 16.10% 5.70% 1.60% 1.30%

The simulator doesn't do great this year, predicting only 4/8 for 50%. Its only "sleeper" pick to work out was the Rangers. This year's first round was a lot of one-goal games - many of them going to overtime for resolution. NHL parity coming into play?

Let's look ahead to the next round:

Win Round 2 Win Round 3 Win Cup
Ottawa 33.50% 6.90% 2.60%
NY Rangers 66.50% 22.30% 12.20%
Washington 69.30% 52.60% 39.60%
Pittsburgh 30.70% 18.20% 10.70%
St Louis 50.70% 22.20% 7.10%
Nashville 49.30% 21.30% 6.60%
Anaheim 45.30% 24.40% 8.60%
Edmonton 54.70% 32.20% 12.60%

The cup favourites are still the Capitals, but anecdotally they are in tough against the defending champions. The Capitals escaped a round one series against the Leafs that was way closer than they would've liked. That's probably the series to watch of this round (unless you're an Oiler fan like me!).

The St Louis/Nashville series looks too close to call: I almost wonder if we should just not score or ding the simulator for that given that it thinks they are so close.

Obviously, I'm happy with the Oilers having the highest Western conference chance to take home the Cup. It's a long road, but this team has shown resiliency throughout the regular season and now through the first round. They are a pleasure to watch.

And that Ottawa series may look lopsided, but I ruled Ottawa out too early. They are playing pretty well too - so look out there. They're running into a hot Lundqvist though so we'll see what happens!

Go Oilers Go!

Round 3 (Posted May 12)

Well, that was disappointing. The Oilers fell to the Ducks in a fairly dramatic serious with a little bit too much controversy from where I sit. But hey, I'm a biased fan. How else did we do in round 2?

Win Round 2 Win Round 3 Win Cup
Ottawa 33.50% 6.90% 2.60%
NY Rangers 66.50% 22.30% 12.20%
Washington 69.30% 52.60% 39.60%
Pittsburgh 30.70% 18.20% 10.70%
St Louis 50.70% 22.20% 7.10%
Nashville 49.30% 21.30% 6.60%
Anaheim 45.30% 24.40% 8.60%
Edmonton 54.70% 32.20% 12.60%

Wow, that's a first. The simulator bricks the entire round and now is 4/12. This has been a strange playoffs... the Senators spent so little time in the lead against the Rangers, but managed a couple of miracle comebacks and well-timed goals to launch them into an unlikely conference final appearance. The Capitals continue to fail to beat the Penguins. That Nashville/St. Louis matchup was pretty close on paper and on the ice. And the Oilers went farther than anyone expected and now we're disappointed they didn't go all the way.

What does next round look like?

Win Rd 3 Win Cup
Ottawa 29.50% 11.70%
Pittsburgh 70.50% 42.70%
Nashville 45.90% 19.80%
Anaheim 54.10% 25.70%

Well, Pittsburgh pushed past their toughest opponent and now are big favourites to repeat as Stanley Cup Champions. Crazy. Still, Ottawa gave the Rangers a heap of trouble so let's see what happens. Maybe the simulator is picking the losing teams this year!

Given that the Oilers are out, I'll be following the playoffs a little less closely. It's tough to watch games when they start at 3 in the morning here!

Stanley Cup Final (Posted May 27)

The finals are here! Ottawa gave Pittsburgh a run for their money but in the end Pittsburgh pushed through to the finals. The Preds also knocked off the Ducks (YAY!), which leaves us here:

Win Rd 3 Win Cup
Ottawa 29.50% 11.70%
Pittsburgh 70.50% 42.70%
Nashville 45.90% 19.80%
Anaheim 54.10% 25.70%

So the simulator goes 1/2 here and 5/12 overall. Not a good year for the sim!

Here's what the final stacks up as:

Win Cup
Pittsburgh 63.10%
Nashville 36.90%

It'll be an interesting final. Nashville is a good team, and I think they will give Pittsburgh a run for their money. I think it's pretty likely Pittsburgh wins the cup again this year though.

When to Cut

Every Frame a Painting is always a good watch from my point of view, but his newest video is fascinating.

I don't think I'd make much of a movie editor ... it seems like it would take too much patience and looking at the same footage over and over and over. I guess you could make that argument for what I do as a job: programming. But somehow it feels different. But this channel - and particularly this video - give me a strong appreciation for what the art of movie making. I love it.

Simulating the 2015-2016 Playoffs

We're back! Playoff season is back upon us. As with last year, I'm running my simulator as a curiosity to see how it does. It's been interesting to run it since 2008, and if I can figure it out, it might be interesting to see how it does farther back than then.

Anyway, on to this year!

Round 1 (posted April 13th)

Win Round 1 Win Round 2 Win Round 3 Win Cup SportsClubStats
FLA 59.7% 35.9% 16.6% 9.1% 8.7%
NYI 40.3% 20.4% 7.6% 3.4% 3.3%
TBL 68.2% 33.8% 14.2% 7.1% 6.9%
DET 31.8% 10.0% 2.5% 0.8% 0.8%
WSH 77.7% 48.9% 32.5% 21.3% 21.7%
PHI 22.3% 7.4% 2.7% 1.0% 1.2%
PIT 61.1% 29.1% 17.0% 9.7% 10.2%
NYR 38.9% 14.6% 6.9% 3.2% 2.7%
DAL 60.9% 32.9% 17.4% 8.2% 10.2%
MIN 39.1% 16.8% 7.1% 2.7% 2.2%
STL 49.1% 24.4% 11.9% 5.1% 5.0%
CHI 50.9% 25.8% 12.7% 5.6% 5.3%
ANA 56.9% 27.7% 14.2% 6.4% 7.2%
NSH 43.1% 17.9% 7.9% 3.0% 2.5%
LAK 50.6% 27.7% 14.6% 6.8% 7.0%
SJS 49.4% 26.8% 14.1% 6.5% 5.3%

Washington comes out looking super good this year, and it's pretty unsurprising. They swept away with this year's regular season, and with the team pretty healthy, they've got their best shot at winning a cup since 1997-1998.

Florida also had a great regular season, and given that their division appears to be the weakest, they could have the easiest road to the cup. Detroit squeaked into the playoffs this year and doesn't resemble the Red Wings of old. The Islanders have a young team but their numbers aren't super strong, and that leaves Tampa Bay who have serious injury issues with Stamkos out. So Tampa's percent chance is probably abnormally high. With all that there and with Jagr still playing like he's a decade younger than he actually is, Florida looks like a good team too.

Pittsburgh's got a tougher road as they will likely need to beat Washington on their way through. Malkin being out also hurts their chances. But Crosby has been lighting it up lately and the Penguins are hot.

The West is a tough call. Dallas are the favourites with strong regular season numbers and a weaker division. The Anaheim/San Jose/LA division looks the toughest to my eye which hurts all three teams chances. Still, the team that survives that division might go on to win it if they can stay relatively intact.

It should be an interesting playoff this year. Enjoy, and I'll check back in soon to set the stage for round 2.

Round 2 (Posted April 27)

Oddly, this year's playoffs start the second round before the end of the first round. So we don't know who's playing against San Jose before the Islanders play the Lightning. That leaves me in a bit of an odd spot. I'd like to treat this scenario similarly to previous years where each round is distinct, but I'd also like to publish my numbers before the 2nd round starts. That's not possible this year, so what I'll do is post two charts: one presuming that Anaheim beats Nashville, and one that assumes the opposite. I'll summarise the end of both rounds in the next update.

If Anaheim wins:

Win Round 2 Win Round 3 Win Cup
TBL 55.2% 21.1% 10.3%
NYI 44.8% 14.7% 6.4%
WSH 58.9% 39.8% 25.7%
PIT 41.1% 24.4% 13.6%
DAL 54.4% 28.2% 12.8%
STL 45.6% 21.6% 9.0%
ANA 48.9% 24.2% 10.6%
SJS 51.1% 25.9% 11.5%

If Nashville Wins:

Win Round 2 Win Round 3 Win Cup
TBL 55.2% 21.0% 10.5%
NYI 44.8% 14.8% 6.6%
WSH 58.8% 39.7% 26.1%
PIT 41.2% 24.4% 14.0%
DAL 54.4% 30.0% 13.7%
STL 45.6% 23.0% 9.60%
SJS 58.4% 29.6% 13.1%
NSH 41.6% 17.5% 6.40%

Looking at these is a little interesting. San Jose would prefer to meet Nashville in the next round, and all the other teams also get a small bump in win-cup probability if Anaheim were to be upset in the first round. In other interesting matchups, the Capitals face a tough opponent in the Penguins, but the simulator really likes them due to regular season goal differential. I suspect the series is a lot closer in practice due to a number of factors including the return of Evgeni Malkin. It should be an interesting next round.

Note that because these are two different 1-million rollout samples, there are a couple of 0.1% differences in the two tables where you'd expect them to be the same. I haven't done any work to try and measure variance and error margins, but it'd be interesting to tackle that to see how much variance there is in multiple runs of the simulator. But at any rate, this is what was reported in a separate run.

Round 3 (Posted May 18)

Yeah, I'm a bit late for this round, but I was away from home so couldn't get this post up. So quickly now, I ran the simulator without taking into account the results so far in this round (both series happen to be tied at 1 game each). Here's what we've got:

Win 3rd Rd Win Cup
TBL 43.1% 21.5%
PIT 56.9% 32.3%
STL 47.0% 21.0%
SJS 53.0% 25.3%

We lost the big cup favourite Capitals in the last round leaving a pretty even set of series leftover. Pittsburgh takes over the favourite spot with San Jose the second favourite, but it seems that this year it could easily be any of these four teams. Should be an exciting 3rd round!

Stanley Cup Final (Posted May 30)

We're here! My predictor sets up the final like this:

SJS: 44.7% vs PIT 55.3%

To recap the predictions this year, the simulator went 7/14 for 50% prediction rate. Not super great, although many of those predictions had the teams very very close to an even coin flip.

Anyway, I'm rooting for the Sharks in this final as I have them in one of my playoff pools. Go Sharks!

Jerry Seinfeld has Coffee with President Obama

If you haven't seen Seinfeld's Comedians in Cars Getting Coffee, it's well worth a look. The premise, which the title does a good job getting across, involves Seinfeld picking up a famous comedian in a vintage car and going for coffee.

In a recent episode, Seinfeld visits the president of the United States. It's pretty entertaining, and well worth watching.

Also, check out the one with Stephen Colbert.