HTTP Status Codes with Alfred

I’ve been doing commercial web-based development for about six years now and I still don’t haven’t committed each and every HTTP status code to memory. I refer often to HTTP Status Codes — httpstatuses.com to appear way smarter than I am.

Today I realised I could do this with fewer keystrokes (e.g. [Alt]+[Space]hs 418[Enter]) using the amazing Alfred - Productivity App for macOS.

Somebody’s probably already done this and I wish they’d shared it with me, so I’m sharing it with you.

Alfred Custom Search

You can import these settings (apart from the icon) using the following URL: alfred://customsearch/HTTP%20Status%20Codes/hs/utf8/nospace/https%3A%2F%2Fhttpstatuses.com%2F%7Bquery%7D

I tried to share the URL in a tweet but Twitter mangled it.

I hope this little tip helps improve your productivity.

What’s your favourite Alfred custom search?

Addendum (2019-04-22)

I am glad I shared this tip. It led to Ricky sending me this knowledge upgrade:

One brew cask install dash and a couple of clicks later and I found myself with an even easier workflow than I’d had before. No need for web browsers (or even an Internet connection):

Alfred and Dash FTW

Thanks Ricky!

Running to Work

The Story

I completed my first run commute in November 2015 but it wasn’t until after my last cycling commute the following April that running to work became my preferred start to the working day.

These days I run to work on Mondays, Wednesdays and Fridays, with the latter usually being a long run (over 21km). I’d like to share some thoughts on my active commutes with you. My journey is a little shy of 12km, which is a nice distance to start the day. Run commutes allow me to keep a base level of fitness without me taking too much time away from my family… it’s mostly time I’d be travelling anyway!

Logistics

One question I get asked a lot is “do you run home?”. I don’t usually. I’m a morning runner for preference and I’ve had a couple of bad experiences of “doing the double” (i.e. running both ways), which have ended up with minor injuries. So I catch public transport home on the days that I run to work.

I habitually work from home on Tuesdays, which facilitates me taking the kids to where they need to be (Kirsty kindly does this on my run-to-work days).

On Thursdays I bring my clothes and toiletries to work in a holdall or small suitcase (depending on what I need to bring with me) for the next three runs. I bring my running gear home with me each running day. These days tend to start with the family travelling together to daycare, school and work, which takes the sting out of having to catch the train!

Carrying stuff

I’m often on-call for work and need to keep my laptop (a 12-inch MacBook) close by. I think I’ve been “paged” twice in three years of run commutes.

The light but powerful MacBook sits snuggly in the place of the removable reservoir in my Skycrane 2L hydration backpack. This backpack is absolutely ideal for my run commutes, it stays in place while I’m running and has sufficient storage space for my laptop, phone, keys, wallet, glasses and a jacket for after the run on the cooler mornings. It also has loops to which I can attach a pair of Million Mile Light V2 units so that I can be seen by other trail and footpath users on those dark winter mornings.

Motivation

It doesn’t take a lot of motivation to run through the Melbourne Spring or Autumn… those mornings are the best. The hot Summer mornings can be more of a struggle and when it’s freezing cold and dark through the Winter it can be very difficult to get out of bed! My motivation for these mornings is simple, I promise my Merri Creek Running Club friends that I’ll meet them at a pre-arranged time and place via our WhatsApp group the night before and that’s enough to get me out the door on time!

Running with friends makes the commute go so much faster, which is a bonus. We often finish our run at one of Melbourne’s many excellent coffee shops for a post-run coffee (or gelati if we’ve run 21.1km or more, but that’s another story).

On the rare occasion that nobody is available to run, I know that my announcement in the group will mean somebody will be watching Strava to hold me accountable! For these mornings there are podcasts for company (and the Apple AirPods are splendid for running with).

Nutrition

While I prefer to run fasted, I was advised by my GP not to do this. Over the past six months or so I have been eating a slice of toast or a banana about 30 minutes before leaving home. For the long runs (anything over two hours) I’ve been taking bags of honey – one bag per 30 minutes is my rule-of-thumb; I typically stop at a water fountain to have one of these.

End-of-trip facilities

Active commuting would not be possible without suitable facilities at my workplace. I’m very grateful that not only does my employer provide on-site showers but also has a laundered towel service. When I arrive at my desk after a run commute, I feel set to start a productive day – far more so than the days where I’ve squeezed onto a crowded train.

Nearest Event Not Done Yet (NENDY)

Since handing over the Event Director role at Coburg parkrun to Marcus last year, I’ve been taking the opportunity to enjoy being one of the parkrun adventurers and have been ticking off my Nearest Event Not Done Yet (NENDY) as time permits.

Visiting local parkrun events is a great way to experience parkrun and to discover hidden gems in our neighbourhood (Newport Lakes parkrun comes to mind).

If you want to find your NENDY, install the Running Challenges plugin in Firefox or Google Chrome on your computer (I haven’t found an iOS version) and set your home parkrun in the preferences.

NENDY

The Running Challenges extension displays a whole host of fun statistics about our parkrun participation but I’m finding the NENDY to be the most enjoyable to chase!

Improving Online Security

The revelation of the “Collection #1” data breach highlights, once again, that we do a poor job of keeping ourselves safe online. January is a good time for setting personal goals and if I could recommend one goal for you, it would be to improve your online security. I’m not a security professional but my work involves online identity management and I find our community’s behaviours fascinating. This blog post contains free, unsolicited advice, so you are guaranteed value for money but do give it some consideration.

Get a Password Manager

Password Entry

First thing’s first… get yourself a password manager! No, really. I used LastPass for many years and found it sufficient but a couple of security issues gave me pause for thought. I recently switched to 1Password (the migration was very straightforward) and have been impressed with its slick user interfaces and its Watchtower functionality for highlighting where I may be vulnerable online.

I have literally hundreds of online accounts, many of which are years old and I have no idea how secure my credentials are with those services. I know from services such as Have I Been Pwned (HIBP) that some of these services have stored my credentials in plain text and those credentials have subsequently leaked, so I treat all online services with suspicion. Keeping track of all these accounts is only manageable with a password manager.

Use Strong, Unique, Memorable, Diceware Passphrases Locally

There are some places where password managers don’t work, such as unlocking your computer’s operating system and getting into your password manager. Since your online security is only as strong as the weakest link, these logins need to be strong enough to keep others out and memorable enough to let you in!

I’d like to see the word “Password” eradicated from all authentication setup scenarios as it encourages poor security choices. Passwords are guessable by other humans and are quickly found by computer algorithms. Where you see this word, read it as “pass phrase”.

The diceware method of creating a sequence of words makes for strong login credentials. To make these words memorable, compose an image in your head that joins the words together. The XKCD “correct horse battery staple” comic is a good illustration of this concept but please don’t use “correct horse battery staple” as your pass-phrase, it has already been breached!

Use Long, Unique, Random Passphrases Online

Your password manager doesn’t care for the legibility of your credentials, so turn up the strength of your “password” to the maximum. 1Password and LastPass offer generators that will do the heavy lifting for you.

Password Generation

Sometimes websites, even ones I’d expect to know better, such as those belonging to telecommunications companies will tell us that our generated passwords are “too long” or “contain invalid characters”. I’m pretty certain that these are storing our passwords in plain text and are therefore insecure. Which is the perfect segue to the next piece of advice.

Never Reuse Credentials

It’s safe to assume that your credentials from at least one online service will be leaked at some point in time. See HIBP, it probably has been already! When this happens, those credentials are likely be used in credential stuffing attacks. If an attacker gets hold of your credentials for, say, your favourite band’s online discussion forum it would be bad for them to impersonate you on that service but potentially far worse for them to impersonate you using the same credentials to log into your social media or email service.

Enable Two-Factor Authentication (2FA)

Multi-factor authentication (MFA) is not available everywhere but it is available on many major online services. The site Two Factor Auth (2FA) keeps a great list and provides us with ways to contact those who don’t yet offer 2FA.

I remember reading the real life horror story Hacked! in April 2012 and sitting up late that night enabling 2FA on a bunch of accounts. At the time I used the popular Google Authenticator application to manage my time-based one-time passwords (TOTP) but have since switched to using Authy, which makes moving from one mobile device to another much more convenient.

The only times I have ever found 2FA to be an inconvenience are those when my browser has crashed or Google has logged me out in the middle of a Hangout (or “Meet”).

I don’t consider SMS-based MFA to be secure due to the risk that SMS messages may be intercepted or redirected so prefer TOTP or Universal 2nd Factor (U2F) devices, where available. When presented with backup codes, keep these safe as you would your birth certificate, passport or driving licence.

Conclusion

Please keep strong, unique pass-phrases in a password manager and secure your email and social media accounts with 2FA.

Let me know how you go!

On meaningful error messages

Today I was trying to make a simple change to a Git repository, privately hosted with GitHub. I cloned the repository, made the change and went to push it up for review. The git push didn’t succeed and I thought maybe I had fat fingered the remote URL when I cloned the repository (but that couldn’t be right because I’d successfully cloned the repository, right?). I tried removing and re-adding the remote but still “no dice”, as they say.

See if you can understand my initial confusion…

% git remote -v               
origin    https://github.com/our-organisation/some-repository.git (fetch)
origin    https://github.com/our-organisation/some-repository.git (push)

% git fetch -v origin
From https://github.com/our-organisation/some-repository
 = [up to date]        MO_Adding_ECS_configs             -> origin/MO_Adding_ECS_configs
 = [up to date]        update_gems                       -> origin/update_gems
 
% git push -v origin
Pushing to https://github.com/our-organisation/some-repository.git
remote: Repository not found.
fatal: repository 'https://github.com/our-organisation/some-repository.git/' not found

[Some names may have been changed.]

What do you mean, “Repository not found”? Look harder! After spending some time troubleshooting and getting increasingly frustrated, I sought the counsel of my colleagues. Some of my colleagues helpfully suggested I try an SSH remote. So I do this…

% git remote add ssh git@github.com:our-organisation/some-repository.git

% git fetch ssh
From github.com:our-organisation/some-repository
 * [new branch]        MO_Adding_ECS_configs             -> ssh/MO_Adding_ECS_configs
 * [new branch]        update_gems                       -> ssh/update_gems
 
% git push ssh     
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

“The correct access rights?”

Well why didn’t you say so?

It’s worth noting at this point that while the SSH failure mode in this scenario is slightly better, I use HTTPS remotes over SSH because GitHub recommend HTTPS over SSH.

I understand that GitHub uses “Not Found” where it means “Forbidden” in some circumstances to prevent inadvertently reveling the existence of a private repository:

Requests that require authentication will return 404 Not Found, instead of 403 Forbidden, in some places. This is to prevent the accidental leakage of private repositories to unauthorized users.

GitHub

This is a fairly common practice around the web, indeed it is defined:

The 404 (Not Found) status code indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

6.5.4. 404 Not Found, RFC 7231 HTTP/1.1 Semantics and Content (emphasis mine)

What makes no sense to me is when I am authenticated with GitHub using a credential helper and I have access to that repository (having successfully cloned and fetched it) that GitHub would choose to hide its existence from me because of missing write permissions. That’s pretty terrible user experience and cost me a whole bunch of time when I could have been doing more valuable work.

Checking https://github.com/our-organisation/some-repository/ using a web browser confirmed that I didn’t have write permissions to the repository. Our team’s GitHub administrators were able to grant my team write access in a short time and I was able to push the branch up. When I did this I got a custom success message:

% git push        
Enumerating objects: 23, done.
Counting objects: 100% (23/23), done.
Delta compression using up to 4 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (16/16), 2.07 KiB | 706.00 KiB/s, done.
Total 16 (delta 12), reused 0 (delta 0)
remote: Resolving deltas: 100% (12/12), completed with 6 local objects.
remote: 
remote: Create a pull request for 'paj/my-branch' on GitHub by visiting:
remote:      https://github.com/our-organisation/some-repository/pull/new/paj/my-branch
remote: 
To https://github.com/our-organisation/some-repository.git
 * [new branch]        paj/my-branch -> paj/my-branch

I like this success message. It’s helpful.

Developers: Failures happen, plan for them and make your error messages as helpful as your success messages!

Dingo Dash

Over the last few years I’ve come to really enjoy running. I typically run three or four times per week with one of these runs being a long run, at least 21.1km. After my first marathon I agreed with my family that I’d not spend such of my weekend doing long runs and formed a habit of getting up very early on a Friday morning for these runs, usually with a couple of my Merri Creek Running Club friends.

This week, we’ve driven from Melbourne to Yulara in the red heart of Australia. I got out for my habitual runs on Monday (in Adelaide) and Wednesday (in Coober Pedy) and have been looking forward to my Friday Long Run from the tourist resort to watch the sunrise over the majestic monolith that is Uluru, enjoying twenty-odd kilometres of serenity along the way.

The run started off well, a little earlier than planned, at about 5:15am and I saw a warming campfire at the edge of the resort. It was about 8°C, still and dry: perfect running conditions! As I hit the Lasseter Highway, the soft street lighting of Yulara faded into darkness and a spectacular starscape opened up in front of me.

Running alone in the dark was a strange experience. My head torch illuminated enough of the road ahead of me to pick out any unevenness in the road and my Million Mile Lights ensured I was visible to the couple of passing vehicles along the way but I had no peripheral vision.

Approximately 2.5km into my run I thought I heard a tapping sound behind me. I turned around and the light from my head torch bounced off the eyes of a small animal on the other side of the road. I quickened my pace and heard the animal do the same, so I stopped. And it stopped. I turned and was faced with a black and tan dingo. Aware that most wild animals are as afraid of humans as we are of them, but equally aware that I could be on the menu, I motioned to the animal that I intended to carry on in the direction of Uluru and that I would leave them in peace. The canine didn’t take the hint and continued to pursue me from the other side of the road. The beam from the head torch seemed to act as a nonphysical barrier beyond which the creature wouldn’t step, but I didn’t get the feeling that it offered any real protection. I continued to trot along the highway with the torch now in my hand to keep the dingo at bay. It followed along on the other side of the road keeping parallel with me for about a kilometre but I become increasingly aware that my long run was not going to go anything like I had planned, I couldn’t take my eyes off my new companion for long enough to look at my running watch, but I knew my heart-rate was elevated and my pace was erratic, there was little chance I was going to make it to meet my brother-in-law at the Sunrise Viewing Area at the time we’d agreed last night.

And then, after about a kilometre, the dog moved in front of me on the same side of the road, facing me. I stopped and slowly crossed the road. It crossed the road too, still facing me. I said, “this is clearly your territory, I’m going to go back to my home now and you can go back to yours!” and I turned slowly and began to walk back to the resort, keeping the torch beam on the dog.

It followed me.

I part walked – part jogged back along the Lasseter Highway, using the beam to keep a distance between us. A vehicle approached, heading for Uluru-Kata Tjuta National Park and I warned the dog to get out of the way. Despite being scared of this animal, I wanted no harm for it. After the vehicle passed the dog sat facing me and growled a deep, menacing growl. I became increasingly concerned for my safety and tried hard not to show any signs of fear. I again told the dog that I was going back and it should go on its own way but it remained unconvinced and continued in pursuit.

It wasn’t long before the street lights of the resort at Yulara welcomed me back into civilisation but the mutt was undeterred by these and followed me regardless, getting closer and closer. A delivery vehicle went past and the driver must have seen me shining the torch on the dingo. I’m not sure what they were thinking but they tooted their horn. After the van had gone, I was left face to face with the seated dingo. I backed away slowly.

A tour bus approached and the driver saw a similar sight to the delivery driver but slowed down. In a moment, I flagged the coach down and walked slowly over to the passenger door, torch beam on the animal at all times. The driver kindly opened the door and invited me aboard. He said he’d seen that dingo a few times over the past few weeks but never on the resort ground, when he’d seen me there he knew I was in trouble! The driver was picking folks up from the first hotel on the resort for a sunrise tour of the national park and advised me to tell the hotel receptionist that there was a dingo on the resort so that they could “deal with it”. I couldn’t find any staff members at the reception area and after the coach load of tourists were on their way for a fun morning, I sent my brother-in-law a message to say not to expect me at Uluru and headed off back to our hotel. As I left the first hotel’s car park and started to cross the road, I heard familiar paw-steps across the road. I shined my torch and the eyes of the hound reflected the light back at me. I headed straight back through the brightly-lit car park into the reception area. This time there were a few people in reception and two behind the counter. I made my report to one of these who said they’d inform maintenance and I had a drink of water before setting off in the other direction to make my long, illuminated way back to bed.

I was utterly, utterly unprepared for what I might meet in Outback Australia and will certainly not be making the mistake of attempting to run alone in the outback again, I can tell you! Still, I’m unharmed and have what I think is a great holiday tale. I’m looking forward to running with my mates back in Melbourne in a few days and continuing my training towards my fourth Melbourne Marathon on 14 October.

My last cycling commute

It’s a sad day. Today I rode to work for the last time. I still love bicycles. I still love cycling. But I love life more.

The beginning of the end

In my post How do we stop this happening?, I mentioned the death of Alberto Paulon on Sydney Road, Brunswick. That was a turning point for me. From that day I felt far more vulnerable on my bicycle than ever before. The realisation that a cyclist’s life could be wiped out in an instant by somebody else’s mistake hit me, and with each ride I would be paying greater attention to hazards that could affect not just me, but those on bikes around me. I became fearful for those who chose to ride without helmets or for those who chose to listen to music as they rode. These choices may be good choices in other environments, but not, as I see it, when cycling on the streets of Melbourne.

And then came the day I was knocked off my bicycle by a passing motorist. To recap…

I had been avoiding that stretch of Sydney Road, where Alberto was killed because was and still is too dangerous for cyclists. I would often avoid the parallel Upfield Bike Path at rush hour because it’s just too busy and I got two rear punctures in the week leading up to being knocked off my bike. Instead I took a hook turn at Brunswick Road. The first motorist in the left hand lane moved across as they passed me and knocked me clean off my bike as we crossed Sydney Rd. Lots of people stopped to check I was okay, including the motorist, who said, “I didn’t see you”.

I was wearing fluorescent yellow and the sun was beaming in the sky over Brunswick.

Other than the shock and grazing to my upper body, I was OK but that incident heightened my fears.

The motorist who hit me must have been distracted at the lights to not see a cyclist fluorescent yellow pass in front of them as they were stopped at the red light and to subsequently have been behind me so far across the junction after the light had turned green.

From that day on, each time I have stopped at a junction, I have paid particular attention to motorists at that junction to ensure that they have seen me.

On every single commute, bar none, I have seen a motorist handling a smartphone.

Some days it’s just one or two, but I have counted double digits on numerous occasions and my commute is under 10km.

It is illegal in all Australian states and territories to use a hand-held mobile phone while driving.

I have asked motorists to put down their phones on some commutes but I only ever get abuse in return.

Cycling to and from work had ceased to be a pleasurable experience.

The final straw

This morning, as I cycled alongside Princes Park, a grey Mazda 3 swerved into the cycle lane ahead of me and crossed back and forth a few times. I caught the car up in the inevitable traffic and the motorist was staring at their phone. I gestured at them to put the phone down but I was invisible. How could I be invisible to a motorist? I was wearing my typical fluorescent yellow cycling jersey. I had flashing white and red lights atop my helmet. I had flashing white and red lights attached to my bicycle. All the things my family and friends recommend to me to “stay safe”. I was wearing a helmet and my bike was equipped with a bell and a reflector, as is required for my safety on the roads in Victoria. And yet I was invisible to a motorist who was more interested in the content served up by a smartphone screen than the direction of travel of their vehicle. I passed this vehicle three times in traffic. Each time, the driver was looking at their phone.

I had two other near-misses due to vehicles being in dedicated cycle lanes between Royal Melbourne Hospital and the City Centre but by that point my mind was made up.

Will I return to cycling to work?

I would like to hope so, but I think it unlikely. There is a “Towards Zero” campaign running but already in April twice as many cyclists have been killed on Victorian roads this year than in the whole of 2015, so it is not working.

I cannot see myself riding to work until the number of deaths on Melbourne’s streets is stable at zero.

How do we stop this happening?

Since I started cycling to work a couple of years ago, I have come to love and fear cycling in Melbourne in almost equal measure.

I love the feeling of freedom, flexibility, agility and reliability I get from my bicycles. I can get from point A to point B in a reasonably predictable time, take in the sights of our trails when time permits and get some exercise and fresh air while I commute. It beats waiting for an overcrowded train on the Upfield line every day of the week.

Cycling in Melbourne is dangerous, though. At almost every intersection, I am aware of motorists distracted by their smartphones. Bike lanes on our highways, where they exist, are too narrow, have uneven surfaces and usually contain a stationary vehicle or two. Car doors present a threat on every stretch. Since Alberto Paulon was killed while cycling on Sydney Road last year, VicRoads has painted new markings along the stretch warning cyclists and motorists about the risk of car doorings but segregated lanes that were talked about have not materialised. I don’t really see what good these signs do: cyclists are acutely aware of the danger and if car users can’t see cyclists at eye level, they’re not going to pay attention to markings on the ground next to their cars! I have avoided cycling along there since, favouring quieter roads through Brunswick.

Avoiding that stretch didn’t prevent me from being struck by a car on my ride home from work one evening in November, alas.

And yet, when my elder child started school in January, I encouraged him to cycle to school. I want him to share my love of cycling and enjoy the benefits of an active lifestyle as well as taking an environmentally friendly mode of transport to school. He does love it and cycles almost every morning with his Mum (the other days he has taken his scooter).

This morning, I rode with him. It was great to be able to share this ride with him. He parked his bike at school, ran off to the yard excited and I pedalled off to work, joining the shared path from Pentridge Boulvard along O’Hea St. A cyclist passed me as I crossed Sydney Road and I followed behind them at about the same safe distance I would normally follow my son along the green bike path. The other cyclist wasn’t travelling particularly quickly but he maintained a constant velocity as he approached intersections.

As he crossed the fourth intersection, I saw a white car turning right from O’Hea St into Gilmour St as he was crossing. The car didn’t slow as it cut the corner and I think I shouted something like “BRAKEJESUS CHRISTNO!” as a saw the car hit him, scoop him up, in to the windscreen and, a short time later, come to a stop and throw him onto the road, mangled with his bike.

I felt sick. I thought I’d just watched a person take their last breath.

To my utter relief, the cyclist was conscious and moving as I ditched my mountain bike and ran to his aid. He sat up and was visibly shaken, bruised and grazed. There was some light bleeding but he was in remarkably good condition. He was wearing a helmet (one of the first questions the ambulance crew would later ask) and this probably saved his head from a traumatic injury.

The resident of a nearby house came running out to see why a shoe (his, that had left his body in the collision) had hit her window.

The driver of the little white car uttered the words that no cyclist ever wants to hear, “I’m sorry, I didn’t see you!”. Just like the evening when I was hit, visibility was not an issue, the sun was high in the sky. I was livid. I couldn’t look the driver in the face or say anything.

Cyclist surprisingly well after a motorist "didn't see him"

That's how far the cyclist landed from the cycle path!

I called an ambulance (the second time I have called an ambulance on my way to work after a car has hit a cyclist within 2km of my home since I’ve lived in Coburg) and the motorist called the police.

I stopped traffic coming into the road while the victim lay there and even received some abuse for doing so from a motorist. I’m sorry for the inconvenience I must have caused.

After the ambulance crew had cleared the cyclist to carry on with his day and the police had taken the driver’s and my details, I headed off to work, very cautiously. I counted four motorists with smartphones in their hands at junctions and two blocking crossings during my ~10km ride. This is fairly typical.

For the rest of today I have thought of little else (I guess hence this blog post). I can’t help but think how easily that could have been me, K, or, worse, one of our kids. I don’t want that ever to happen and I feel absolutely powerless to prevent it.

So… how do we stop this happening?

Ride The Night 2016

Having spent a lot of 2015 focussed on running, I thought it might be nice to do my first bike-based event in 2016 — I enjoy being out on my bikes and have often wondered how far I could go in a single outing. My Strava profile says, “Made for distance, not for speed” and this applies equally to running as cycling (and probably swimming, too). I’ve no real desire to go as fast as I can on a bike, so races held no appeal. Part of the beauty of cycling, for me, is taking in the surroundings.

Ride The Night ticked lots of boxes for me: a chance to see our fair city by night in relative safety while covering a greater distance than I ever had covered before. A bonus of it being overnight was that I’d not be giving up a significant portion of a weekend with the kids as I had with last year’s marathon and associated training. Count me in!

Last night was the night and after a night out in the City with K, I pedalled down to Albert Park for the start. There were a few spots of rain on the short ride in but as I entered Albert Park there was an almighty flash of lightning and then the heavens opened. I met with one of my colleagues in the pouring rain and waited while he grabbed his rider’s pack. I was soaked though to the skin and the thunder and lightning showed no sign of abating. I began to think of going home. My colleagues had decided that the rain was too much for them (and I couldn’t blame them) and I began too look to the skies and hope that the organisers were looking at the lightning with a view to calling the whole thing off.

As I wandered around the start area trying not to feel cold, I bumped into one of my friends from parkrun: she was there with her husband and said that another couple of parkrun friends were nearby. Hardy folk, these parkrunners! I got chatting and before I knew it the public address started booming and we were ready to mount our trusty and well-illuminated steeds for the start of Ride the Night 2016.

We set off, slowly, around Albert Park. I’ve never been surrounded by so many cyclists and I found it a little unnerving: one misjudged overtaking manoeuvre and there’d be a nasty domino effect and a whole heap of mangled bodies, wheels and fluorescent clothing. It was good to be rolling, though. The rain didn’t seem so bad now that I wasn’t standing in it and the arrays of lights trailing around Melbourne’s iconic lake was a sight to behold. I also took note of the grandstands that are already erected ahead of next month’s Formula 1 Grand Prix. More on that later.

It was great fun cycling with a couple of friends in the dark around Albert Park, down to Luna Park and up to Port Melbourne to our first rest stop. Cycling along the beach at night felt particularly peaceful. I thought I’d like to do that again. We stopped at the first rest stop before heading to the turnaround point near The Spirit of Tasmania’s terminal and then we hit a snag: we got directed back to Albert Park Lake. We thought it seemed a little strange but kept on pedalling along with a group of our peers. At the entrance to Albert Park, the error was addressed and we all headed back up to South Melbourne where we rejoined the flow heading towards The Arts Centre. On this section, there was a major intersection involving very wet tram tracks and a couple of riders came a cropper. Some other cyclists stopped to help, so I kept moving but I lost my friends in the mêlée and so took it really slowly for the next few kilometres in the hope that they’d catch up.

The next section of the ride was up past Flinders Street Station, through the City to Royal Parade. This section was treacherous, the tram tracks were bad enough but taxi doors being flung open in front of large numbers of very visible cyclists reinforced in me why I prefer riding on Melbourne’s beautiful trails over its city streets. The cycle lanes are too narrow in Melbourne at the best of times and with hundreds of riders, they felt positively claustrophobic. I was taking it slowly hoping to regain contact with my friends anyway, and so I didn’t feel too vulnerable but still I heard many cyclists complaining of close calls and that out me a little on-edge.

At the zoo, we joined the Capital City Trail, a path with which I am very familiar and, having realised that my friends were not going to catch me, I decided it was time to speed up a little and find myself some clear track. I enjoyed being off the roads and when I arrived at the second rest stop I decided I’d keep rolling and carry on enjoying the trail. However soon we were on Gertrude Street in Fitzroy and I found myself between tram lines. They were still very wet and very slippery and I was hyper-cautious as I headed downhill. I can’t tell you how relieved I was to exit that particular section and head out past the MCG and the slippery boardwalks to Yarra Boulevard.

Yarra Boulevard was closed to traffic, which made it feel particularly eerie. There was very little noise and all I could see were front and rear bicycle lights. I was a little concerned about not spotting tacks in the darkness I only had two spare tubes and two CO2 canisters with me. Would that be enough? Thankfully, I made it the The Kevin Bartlett Reserve unscathed and I took my second break of the night. It was very muddy at the rest stop, so I didn’t walk too far in my clippy (drippy?) shoes and I was soon on my way again. The darkness probably meant that I missed my fellow parkrunners heading towards me on their way down the Boulevard.

I was very much into the swing of things by now and enjoying the solitude that the night ride was providing me.

As we headed back through the city, along La Trobe Street, I noticed blisters forming on my hands. I was getting on for the longest distance I’d ever cycled and in far wetter conditions than I’d completed my other long rides. I felt thankful for my padded cycling gloves and resolved to keep pedalling. I had no idea what time of the morning it was by this time but I was starting to feel a little weary. As I reached the rest stop at Docklands I decided to power through and head to the finish.

The last segment from Docklands back through Port Melbourne and back to Albert Park Lake was very, very quiet. I seemed to have lost the crowds (so much so that along Lorimer St I began to wonder whether I’d inadvertently left the course), which caused me to pedal a little harder to find some form of civilisation. There’s not much happening at The Docks at that point on a Sunday morning!

I crossed the finish line at Albert Park at exactly 04:00, which I thought was a pretty reasonable time. My Garmin said I’d completed 65km at this stage and I thought if I took the long way back home I could probably make it up to triple digits for the first time.

I didn’t stop long at the finish area; just long enough to have a muesli bar that had been handed to me as I crossed the line. I headed back to the beach and back up along the coast. It really is so tranquil in the dark: I would definitely like to do that section again and again. I hoped to meet my friends on the way back to wish them well for the rest of their ride but it wasn’t until Docklands that I saw them and they were deep in conversation as I passed them.

Various marshals gave me strange looks as I headed against the flow back through Docklands and onto the Capital City Trail. I thanked them all for being out there and providing us with a great ride.

At one point, near Flemington Bridge, the Capital City Trail was completely underwater from the night’s torrential downpours. I had to leave the trail for a little while and cross a road or two. The USB-powered headlight on my bike was not as bright as it had been at the beginning of the night so I switched it to a flashing mode to try to conserve enough energy to get me home.

I followed the CCT back past where we’d been earlier in the night. The marshals had all finished and left. I passed the bicycle counter in Carlton which suggested 1,620 people had been through since midnight. I suspect this means that about 1,400 people bailed in the rain.

At Clifton Hill I tried to join the Merri Creek Trail back to Coburg but, again, the rain had taken its toll and there was no way though. Back up the hill I climbed and crossed St George’s Rd to try to rejoin a little further North. I encountered more flooding and a snake, so I decided to stick to the road for the rest of the journey.

As I neared my home, my Garmin reported I’d clocked up 95km. Tantalisingly close! I decided to pick up the Upfield Bike Path for a couple of blocks and head back along Coburg parkrun’s course to make up the last 5km, which proved to be an interesting ride. I met a couple of early morning runners along the way and the footbridge at De Chene Reserve was almost impassable due to flood waters. My shoes are still drying out.

It was a great ride, I am glad I did it. I learned a lot about cycling and about myself and I’d maybe do the event again. I’ll almost certainly not enter a competitive gran fondo but would like to take on a few long distance rides either solo or with friends for fun. Exercise-wise, riding 100km was a lot less effort than running a marathon and while it gave me a sense of achievement, it was nowhere near comparable to running.

And that beat the snake as my biggest surprise of the night.

My First Marathon

My intention when I revived this blog at the beginning of the year was to write more about the world of software development and delivery. Yet I find myself writing about my relatively recently discovered pastime of running for the third consecutive post.

I’m not one for applying labels to people (that’s another blog post in itself) however were I to label myself, “runner” would be one of the last labels I would think of. At the beginning of last year, I couldn’t run to catch a train without getting out of breath. I completed a couch 2 5k programme in the interests of improving my fitness and keeping my body weight under control, there was certainly no intention of running further than 5km. Why would I want to do that?

And then I discovered parkrun. One of the things I really like about parkrun is its inclusiveness. At any given parkrun event, you’ll find athletes who run the course in under 18 minutes and they start alongside the casual walker who’s happy to wander around the course in an hour, taking in the scenery and enjoying a social chat with the tail-runner. And there is everybody in between.

At my former home parkrun at Westerfolds Park, I met a lot of social runners who were always pushing the limits of their achievements: working hard to beat their own 5km personal bests and setting goals to run further than ever before and always encouraging others to join them. Most weeks, after our run, there’d be talk of the next big run on the local running calendar and all distances were in the mix from 5km to ultra marathons! It was easy to get caught up in the wave of enthusiasm for these events and this was a part of the reason I ended up pushing my own limits and running longer distances last year, culminating in a half marathon – a distance I never imagined I would run!

“Half marathon” is a terrible name for running 21.1km. I hear runners who’ve worked so hard to get themselves fit enough to complete this distance say things like, “I only did the half”. I am sure I used a similar phrase last year. I don’t know many people who’ve run a half-marathon but it’s no mean feat, I can tell you. When I got home from the event last October, I was so tired I struggled to undo my shoelaces. There’s a lot of hard work that goes into training for a half marathon and anybody who runs the distance has achieved a whole lot just by lining up at the start line.

The “half” part was bothering me at the beginning of the year, though. If I’d run a half, would I be capable of running a “full”? Shortly after I crossed the line last year, I bumped into my Engineering Director and one of the first things he said to me, after “congratulations”, was, “can you imagine feeling this tired and realising that you were only half-way?”. I couldn’t imagine running another kilometre at that juncture. However two of my friends who had run marathons assured me that if I could run 21.1km, with enough training, I could run 42.2! My friend Gary had planted the seed of a thought that I might be able to tackle a marathon as we stood chatting at the start of October’s half but I can’t remember the moment I decided I would give it a shot. When the day came that the entries opened for the 2015 Melbourne Marathon, I signed up and committed myself to taking on the biggest physical challenge I ever imagined putting myself through.

I sat down with my friend Adrian one lunchtime and he put together a training plan for me: 23 weeks of running 45-60km per week. I was averaging about 20km per week at the beginning of the year, so I clearly needed to step it up but the increases were incremental and seemed utterly achievable. It’s good to break goals down into manageable chunks!

A number of decisions along the way to the marathon seemed like taking the obvious option at the time although they’re not obvious to me now (such as the decision to enter the thing in the first place). When the time came for me to do my first long training run, a half-marathon, I decided to run four (and a bit) laps of Westerfolds Park, a course that I knew well (and know even better now), and a course that has a whacking great hill! Each hill climb was harder than the last and by the fourth time I wasn’t sure I would be able to run to the top. I went home with a huge sense of achievement that morning but 42.2km seemed a long, long way to go!

A week later, I did the same course in reverse. There are two shorter but perhaps more intensive hill climbs in that direction but I thought a change of direction would keep things more interesting. There was an unexpected benefit of running laps, though. My friend Olivier joined me for two laps. His company (and perhaps a little friendly rivalry) provided good motivation for me and I ended up completing the distance nearly fifteen minutes quicker than I had the previous week. Perhaps I was on to something.

The long runs became the focus of my training and each week I’d return to Westerfolds Park, alternating between clockwise and anticlockwise laps. Each week I’d find myself with great company for a large portion of my run. I had always understood long distance running to be a lonely activity but I could turn up to a car park at seven o’clock on a Sunday morning, before the sun had crept over the horizon, and find that I had friends waiting for me ready to run a few 5km laps before breakfast. Over the next five months I continued to take my long runs around Westerfolds at 7 o’clock on Sunday morning and friends I’d met through parkrun joined me, kept me company and kept me going. Thank you to Alison, Barney (who coined the terms “Lapsterfolds” and “Lapsterfoldians”), Chris, Dougall, Elisa, Gary, Kerryn, Lee, Martin, Matt, Narelle (who also went on to run the marathon), Nicole, Olivier, Rohan, Simon, Scott S, Scott T, Tim and Wendy (and anyone I’ve inadvertently missed).

Aside from my Lapsterfoldian endeavours, I would regularly run before work with Adrian (until he got himself injured), Natalia, Ronja and Peter. These people, too, rock! Indeed, I ran very few of my training kilometres solo.

My running buddies really helped me complete my training and I’m very grateful to each of them.

I ran my last couple of long runs away from Westerfolds, since the Melbourne Marathon course is predominantly a flat one. The first I ran on my own along Merri Creek and the Yarra River down to the City and then around Albert Park Lake down to St Kilda Beach, where I met Kirsty and our kids for breakfast. It was great to see them after a three hour solo run, I can tell you! The other I ran with Scott T out on the Marathon course.

Twenty three weeks seemed like an eternity at the start of the training programme, but it came around quickly and before I knew it I was on my bike heading down to Melbourne Olympic Park for my first marathon (public transport isn’t at its best at that time on a Sunday morning). I bumped into Barney and Simon near the start line and chatting with them really helped me relax. I also managed to find Narelle in the heaving crowd at the start to wish her good luck. Somebody sang the national anthem over the public address system before the starting gun sounded. The atmosphere was sensational. It took a little while to get moving, as large crowds tend to. I crossed the starting line about two minutes after the first starters and kept my eye on the bouncing yellow balloons attached to one of the four-hour pacers: it was my aim to finish in front of these balloons! It took me about 2.5km to catch the pacers and I ran with them for about 5km. As we headed up through Albert Park I became conscious that I wasn’t comfortable with my rhythm and I started to speed up a little, leaving the pacers behind. Soon after I’d broken away from that pack and found some space on a still very crowded course one of my shoelaces came undone. I’d run hundreds of kilometres in training and never had my doubly-tied shoelaces come undone; I had to stop!

I hopped over the low chain fence to the left of Lakeside Drive and tied my shoelace securely before getting back up to speed and hopping back across the chain. Just as I landed back on the road I heard an almighty bang behind me. I turned around to see a pair of sunglasses on the tarmac. The runner who picked them up said that they’d been knocked off his head by a stray golf ball!

As I exited Albert Park, I saw the lead athletes from the 21.1km race entering: these folks had started an hour after me and were only 5km behind. I couldn’t sprint as fast as their half-marathon velocity!

There was a very mild breeze as we ran the coastal section of the course, I’d been warned that the wind along there would make it tough, but I got lucky and it was pleasant and cooling. I checked my watch as I passed the 21.1km mark: 1:55, which was quicker than last year’s time but crucially I didn’t feel anywhere near as I had twelve months previously. The training was paying off!

Around 30km in I was heading back up Fitzroy St in St Kilda. As we headed down the street earlier I’d heard another runner comment how hard it was to climb back up the street. I’d not really noticed that it was downhill on the way out but his words echoed in my ears on the way back and I tried to ignore the fact that it was a gentle climb. The next thing, I spotted Kirsty in the crowd with Eamonn and Dara. The sight of them gave me a very welcome boost, as would the drink and the jelly beans they handed me. Shortly afterwards I was heading north back up St Kilda Rd full of energy. I smiled as I saw the 17km flag for the half-marathon event… I recalled how exhausted I felt the last time I saw that. I saw follow Lapsterfoldian Martin spectating (having blitzed the 10km event); seeing familiar faces along the way was surprisingly refreshing for the spirits!

The next familiar face I would see was Scott T. He was entered into the race (which happened to be on his birthday) but had to pull out last minute due to sickness, I later learned. He was out cheering on his wife Iwona, who was running in the 21.1km event, as well as any parkrunner or Westerfoldian he saw along the way. I wished him a happy birthday and continued on my way.

As I ran around the Arts Centre, 35km in, I felt my pace really start to drop. I’d be taking on honey as a DIY energy gel every half-an-hour but 3 hours and 15 minutes into the run, I was really flagging. This was the furthest I had ever run (my longest training run was 34km and at a much slower pace) and I was now into the unknown zone. I reached for the bag of jelly beans Kirsty had handed me earlier, ripped the corner off with my teeth and popped a couple into my mouth. I imagined that they gave me an immediate energy boost and pushed hard to regain my pace. The last seven kilometres of the course are tough physically and mentally as you come so close to the finish line only to be guided back down around to Royal Botanic Gardens and to cover the top section of St Kilda Rd. Again. It was along this section I saw quite a number of runners fall by the wayside to be treated by medics. This was a sorry sight and made it hard to focus.

I’d covered this section in my reconnaissance mission with Scott a couple of weeks earlier and was prepared for last few kilometres. There’s a bit of a gradient as you head around “The Tan” and somebody was holding a sign saying, “you own this hill”. “This isn’t a hill”, I thought; having climbed to The Manor House in Westerfolds Park up to seven times in my training runs, going up steeper hills even when tired was manageable. I was starting to pass people once again!

I bumped into Scott again along Birdwood Avenue and he ran with me for a little while. He confirmed that I was nearly there, that I was still ahead of the four-hour pacer group and that it was mostly downhill to The ‘G. This gave me another boost and I managed to pick up the pace a little more. The Sun had started to break through and after three-and-a-half hours of running, I was getting quite thirsty. I’d been sipping water along the way but now I was gulping down the supplies I’d carried with me all the way. I stopped at a water station on the final section up St Kilda Rd to guzzle down a cup of the sports drink they were handing out and then I was ready to push hard for the finish. The crowds at Federation Square were cheering loudly and that made me smile, just in time for a photographer to get a shot of me opposite Flinders St Station.

The last kilometre down Batman Avenue is downhill, and my legs felt like they were on autopilot, a stark contrast to the last kilometre of pretty much all of my training runs. The MCG is in sight. I was going to finish a marathon! As we entered through a tunnel and there was an almighty roar… another energy boost! I looked out for my friends and family in the crowd but there was this strange void on the lap inside the stadium between the mouth of the tunnel and the finish line where most of the spectators had gathered. The first person I spotted was Narelle’s husband, there with his camera (a familiar sight to my parkrunning friends)! I gave him a wave and then I saw the clock above the finish line, it started with “3:57” and I knew if I kept going, not only would I have run 42.2km, I would have done so in under four hours and that would be the icing on the cake. There is a video of me crossing the line and in it you can see just how overjoyed I was with this.

It’s still sinking in that in February last year I went for my first run and in October this year I ran a flipping marathon!

Two weeks have passed since then and I’ve been letting my legs recover. There was some muscle soreness for the first couple of days but it wasn’t anywhere near as severe as I expected. I felt really fit for the first week and went for a swim and cycled lots. The second week I felt really lethargic and did next to nothing. I jogged around parkrun both weekends with Dara in the pram, just to keep the legs moving, but it’ll be another week or so before I risk going for a run. Going from 60+km per week to nothing is very strange. I’ve found myself feeling grumpy (more so than usual) and lazy but still as hungry! I imagine Kirsty will be kicking me out of the house with my running gear before long to get the endorphins flowing again!

I’ve been asked a lot when the next marathon will be. I don’t know. 23 weeks, 3 hours, 57 minutes and 48 seconds is a lot of time out of family life and I don’t really want to invest that kind of time in another marathon. Kirsty breathed an audible sigh of relief when I got the rejection email from the London Marathon for 2016 (it would have been absolutely great to run alongside my “little” brother, but it wasn’t to be this year). Having actually enjoyed the experience this year, I’m sure there’s another marathon in me but just not yet! I’m very happy to stick to some shorter runs and spending more time with the three very special people who supported me through this wonderful experience. Thank you, Kirsty, Eamonn and Dara; I love you and I could not have done it without you.

I could not have run a mile without these special people in my life

← Newer Page 1 of 11