When is an achievement not an achievement

Recently I’ve found myself wondering if some of the work I do is really worth it. And I’m not talking about civilization level cancer research type is it worth it, but is it worth it just on my level, for me.

Sure we have to do those small annoying menial tasks both in our jobs, or even at home. I know I know, you really really enjoy hanging up the washing or cleaning the toilet, but for the rest of us, it isn’t something we can’t sleep the night before in anticipation of doing. It just isn’t.

Completing a large work goal, yes it helps them the company, and you might feel great about it. Will you be remembered for it? Will you yourself even remember it in a few weeks? What about a few months? Ten years time? Or will it help you get to where you are going? Do you even know where you are going? More importantly, do you know where you want to be going?

Lots has been said on the fact that you should design your own career or someone else will, and I think that equally applies to life. Life is more than your job, or at least it should be. Work to live, don’t live to work as they say.

Find some balance, unless it is your baby

And yes I truly believe that. If your work is your own, your own company, your own creation, your own goals, then yes, go all in. If it means the world to you then give it the world. It’d be almost irresponsible not to. That isn’t to say you should over commit or forget about the rest of your life. After a long day (or week) of work, being able to switch off for a while isn’t cheating. It isn’t ignoring your goals. It isn’t you being lazy.

Many highly successful people carve out time blocks, sometimes as frequent as each day, and during this time, nothing work related exists. Come hell or high water, they are taking this time as their own and everything else can wait. For anyone working in computing, you probably already know of the benefit of downing tools and walking away when faced with a problem. Your mind can solve it even when you aren’t thinking about it. Over thinking is real!

The flipside

In Your Money or Your Life, the authors talk, quite literally, about how life is money and the true cost of working. Best way to explain it is what it costs for you to work, everything from the time travelling to and from work, to your lunches, to your work clothes. It all adds up and is rarely taken into account.

Perhaps you are building your own company and it has goals you believe it, or perhaps you think you do love your job, maybe you even do, but when its all gone, and inevitability it will be someday, will you look back and think, yeh, I did good, or will it fade away into the blur?

Now don’t get me wrong, working towards goals is good. I’d recommend settings lots and lots of goals to help you on the path, it is how I operate. Big goals are difficult to achieve, but break them down to small steps and each one is easy to do. Lots of these goals won’t match up when viewed from the proverbial deathbed either, that’s ok. A building is built brick by brick, and few bricks are as memorable as the end piece, but forgot that first brick and it could all fall down.

Is there a point to any of this?

I guess my overall point is that taking time out to create the map, even if it means you miss your achievement or goal, isn’t really time wasted. 10 Miles in the wrong direction is still 10 Miles in the wrong direction.Getting started is important, but so is knowing where you are going. Knowing where you want to end up lets you know if this really is something you should be doing, or just noise along the way.

I can’t do that…yet

He who thinks he can, and he who thinks he can’t, are both usually right.

Most people laugh at that quote, but honestly, it is in my mind a lot. Whether it is a new problem or task that has come up, or talking to someone who is stuck at an impasse, it describes things beautifully. The mindset really does impact the outcome.

I know with any technology problems (outside of electronics, that stuff is my kryptonite!) it is simply a question of how long, not if. Yes there are problems which aren’t technically solvable, YET, but we can build the best solution now and be ready when things catch up. And this equally applies to thing that I don’t know how to do, YET.

That is one thing Google is great for. Your problem is unique. One of a kind. A perfect little snow flake. But then Google let’s you find the others who have been there, done that, and provided the steps to build upon.

If you think you can move mountains, if you really really believe, then you aren’t crazy, others just don’t see that the mountain isn’t going to move…

I know, I know. Someone who thinks they can will a mountain to move probably is crazy, but the mountain is a metaphor. The thing to realise is you rarely have to move the mountain. There is always is another way. Some may be longer, more painful, or downright scary, but they are options. If you think you can’t, or think it’s too difficult, then you will never see these.

The mind is amazing, and I really know relatively little about it. But I know for fact that given the right motivation, your mind can make you do almost super human feats. We’ve all heard the story of the mother who lifts the car to save her baby, so imagine channelling just 1% of that each and every day, into the same task. Things don’t seem so impossible any more do they?

Remember then, anything is possible, its just a case of do you want it. I can’t do that can easily turn into, I can’t do that, YET…

Just think of the possibilities.

Why do we code

Last night while the night went on and I worked away optimising some code on a website I got to thinking about why we do it? Why do we code, and by code I’d guess you could apply this to anyone in the opensource community too. Its all lots of effort for no measurable payoff. Or is there?

The project I’ve been working on will never make me money. It’ll probably never be in a portfolio. My name isn’t visible on the site and nothing is credited back to me. And yet I’ve spent at least a few hundred hours on it at this stage with many more to come.

For as long as I’ve coded, I’ve also been doing non-paid coding. Hell its pretty much how we learn most languages unless we are lucky enough to have an understanding work place. But no, this project is written in PHP, a language I’ve 10+ years experience in.

So why do we do it?

The three reasons I have are pretty simple, although explaining them to non-coders never works. If you code, you’ll just nod along, but if you aren’t, well the usual response is just but why?

  1. Its fun. (a.k.a the what the hell are you smoking reason)
    No really, most coders I know actually enjoy it. Its quite satisfying to look at a problem, then solve it. Or to be creating something, even if that something takes days of work and ends up as just a small dot on screen.
    In short, the best coders like their work.
  2. I get some use out of it. (a.k.a. the selfish reason)
    In this case it started as some fun, a challenge even. Then it turned into some useful things that I like to see on a regular basis. It just so happens that others also like to see the same stuff so why not share the love?
  3. Experience. (a.k.a. the job reason)
    Some things in computers you can’t do without real world, high traffic. Yes you can simulate things, but it is never the same as that crazy user who does that thing you never thought possible. And when you get a few hundred of those, well that is when things get interesting. Sure you can say you built a site that does a, b, c, but it is much more impressive to have that site handle X number of users.

Overall I guess the whole thing loop around on itself a lot. It starts because it’s something you need or want, but that gives you some enjoyment so you keep at it, and then it grows only to become something that gives a bit of experience while building something else that you’ll get some use out of. And that gives you some enjoyment so you…

The road to recovery is marked by two scars

Back at the beginning of March I had an arthroscopy done on my knee in the Sport Surgery Clinic. This was to address all the knee problems I’ve had and have referenced previously. In short, it worked.

Step back a little

After the marathon, I waited a while before heading back to see the consultant. After a little back and forth we agreed on get an injection into my knee to try sort the muscles. He wasn’t sure if this would really help things, something that was going to become a common theme. A few weeks later when I was in to get the injection, that consultant didn’t want to give me the injection as he thought he saw a bone spur that may be causing the problem but needed to confer with the original consultant. Roll on another two weeks and they wanted to see the surgeon. After two years of back and forth of working leg, non working leg, I wasn’t one to argue.

The consultant ran through the MRI and ruled out the bone spur. The original meniscus tear was likely the cause and resulting in the other related issues, however I didn’t have the other symptoms that would fit with these things. In medical speak, my condition was A-Typical. However the surgeon did feel that cleaning up the tear was the best option. It could fix things, but he was honest and said that it wasn’t certain and I may be back in the office in a few months still with the same problem. Main thing, it was unlikely to make it worse, so surgery it was.

The big day

I had never experienced a full general anaesthetic before, but it was just like the sedative they give in other procedures. A nice easy sleep with groggy times afterwards. Only difference this time is my head really remaining groggy for the rest of the day. Its funny, you say things, then shortly after realise that it wasn’t right. Definitely strange.

Anyway I was out from one I entered the pre-op room outside of the OR. I remember getting first the injection and my heart fluttering, then returning to normal. Talked to the anaesthesiologist for a bit and was watching the clock. Next thing I remember, I was out in the bed in the waiting room again. A few hours later I had seen the physio and surgeon and was on my way home again with a stop at the pharmacy to collect the prescription. Really no major fuss.

Pain, what pain?

Before the op the most pain I had really experienced in my need was a very occasional dull pain, but mostly it was like hitting the funny bone. They warned that the op could cause stiffness, swelling and lots of pain. The prescription included 100 pain killers and they said don’t be skimping in the first few days if you need them, and call back if it gets too much.

During the following two weeks I took the anti inflammatory meds, but no pain killers. In fact bar sleeping, my knee was in less pain than before. Sleep just required a pillow between my knees as contact was sore. Walking up and down stairs also had its moments. The worst day was after returning to work. While at home I could stop every hour and do the stretching and other exercises, but in work it wasn’t suitable. That evening was the first time I experienced proper pain, struggling to move my leg properly for a while. Lesson learnt.

Where we are now

Primarily for me, I’ve been able to cycle again. It isn’t perfect, and the rides aren’t even pain free, but I can go out and don’t experience sudden loss of power. I do need to be extremely careful turning as that has caused pain quite a few times, but otherwise it is getting back on track.

Unfortunately my powertap on my training bike is broken so I can only compare times. The dates are nearly a year off and do show things where fairly far off. My weight was within 3lbs of the same period too, so it really was about power and cardio.

27/03/2012    10:53:00
30/03/2013    16:05:00

Over the weeks I did manage to get down to 12:56:00, but that is still nearly 20% off in basic maths, and as any cyclist will tell you, speed vs power is far from linear, so it is most likely more.

Am I happy with the results?

Hell yes. While things are still way off my pre-injury times, I was lighter and had a much better cardio base then. For the first time in the last two years I do actually see myself being able to start training again. Yes I do have pain in the knee, but its consistent and I can ignore it. It is getting less with the exercises from the physio visits, and hopefully will go away completely in time.

Maybe before the year it out we’ll even have a race report or two.

Email Compression

Recently, one of the companies I work for switched across to Dovecot as the email daemon of choice opening up a host of possibilities for new advancements. Compression is one such advancement since Dovecot supports it transparently. But you can’t just enable something that will change hundreds of millions of files without asking some questions first. It can all be summarised as Speed, Speed, and Speed. Read on…

Background to the testing

As with all testing, it begins at the individual mailbox level. My initial tests with mailbox compression consisted of first tar’ing my own mailbox, the gziping that. Then gziping the individual files in the Maildir. Next I tried my archive mailbox where lots of stuff gets dumped to keep it off my primary mailbox. Immediately a problem came up. The compression ratios between two mailboxes varied quite a bit, one at 10%, the other at 30%. Obviously I needed a bigger corpus to test upon.

Given that these email systems I had access to in my new job are a slight bit bigger than what I had access to previously, I decided to take one of the backup snapshots and work off it. And so went the weekend.

Testing Size and Methodology

This data set is a subset of a subset of a subset. It was originally meant to be a single disk from one server but due to some unseen complications (read: a stupid scripting error), it covers about 60-70% of that set. And to fend of the inevitable questions, a single disks it just a crude segmentation system in use to partition email. The reality is that the disk is from a NetApp filer, so multiple spinals are in place.

The data set covers a few hundred active accounts, some pop, some imap, some webmail. No attempt was made to count which was which, or should it really make a difference to the overall conclusion. (Hint: compression is good)

Overall a total of 2,625,147  emails which processed having a size of 399,502,115,126 bytes (Appox 372 Gigabytes). (An aside, this does give an average email size of 148 Kilobytes which is probably above average. It may be possibly skewed by some of the large emails. Further look at this below).

My testing method was to scan the backup snapshot for all emails using the following logic.

foreach email
 copy to ramdisk
 measure size
 gzip, bzip at 1/5/9 compression ratios
 measure size of compressed files
 measure time to read back the compressed files
 cleanup and save results

Given that the files were all being worked on in the ramdisk, disk latency can be ruled out. This was especially important given the source of the files was a file system snapshot. The machine in question also maintained a load under 1 the whole time. It is a multi-cpu system as well, so no cpu wait timing should have occurred.

Goals

I went into this with a few goals set. My main one was to figure out if compression would actually be a good idea. At 10%, the savings wouldn’t be huge compared to the overhead that compressing stuff would bring. Especially given the time to setup and maintain. At 30%, it is a different matter. I wanted to know what the actual average would be over a larger set since obviously my mailboxes were much too different.

Next goal was to produce some graphs. I kid you not. It has been a while since I’ve created something fun, but graphing compression ratios seems like a nice way to do it. Its no MapMap, but its a start!

Next in line was figuring out the overheads. I knew that bzip2 had a larger overhead than gzip does but produces much higher compression ratios. Perhaps there would be a point where using bzip would make sense over gzip. Perhaps there was even a point that emails would be too small to justify any compression at all. Who knows, but the averages from this are ideally suited to a graph.

Results

Speed 1 – Compression speed

While I did measure the overhead while compressing the files, the original logic was that compression would happen solely as an offline task on cpu-free hosts. As such a 2000% overhead wouldn’t matter much provided the host could keep up with the daily volume. Dovecot does support realtime compression via both imap and the LDA, so perhaps this is something I’ll come back to.

What I did set to measure was the impact running the script would have on live or active mailboxes.

The script works roughly as follows

find all mails in $PATH without Z flag and with the S= set
if file is already compressed
 add the Z flag
else
 run the compression

Two things to note, running the find to ignore mails with the Z flag greatly speeds up things. This is due to the fact that dovecot will drop the Z flag when moving a compressed email between folders. That is also why it is necessary to check if the file is compressed before operating. The find itself is also quicker than expected given a hot FS cache.

When compressing, I choose to run maildirlock only around the moving of compressed emails. This means the mailbox isn’t locked for extended periods – it is not uncommon to hit a folder with tens of thousands of mails (or a few large mails) and drastically increase the time taken to process a folder. The benefit of this approach means that users won’t notice a compression cycle running against their folder.

To demonstrate a worst case scenario, I took a folder with 65000 emails. This was loaded up in webmail (Roundcube) and I started selecting random emails. A compression cycle was then started across the folder. Lastly, I started a script with connected in over imap and started moving emails out of the folder. Surprisingly nothing lagged by any measurable amount.

Speed 2 – Compression speed – Readback

The overhead while reading back compressed files was an area I definitely wanted to measure. If compressing an email saved 50% disk space but increased read latency by 50%, then would it be worth it? What about 40-60? How much additional slowness for the user would be okay? Would the extra files in cache offset any introduced slowness on a larger sample size?

As mentioned above, the tests involved operating on a RamDisk to rule out any disk latency. This means the measurements here are purely for the compression overheads, i.e. cpu usage lag. My hope was to measure a percentage low enough that it could be justified by have more data in cache and thus reduce disk latency. What was found was even more promising.

Compression Overhead VS Size - VSmallCompression Overhead VS Size - SmallCompression Overhead VS Size - Large

As the graph shows, gzip really doesn’t add much overhead throughout the sizes until the files get large. However shockingly, gzip actually operates quicker than simply reading the file, even on the RamDisk, in certain cases, usually large files. Results like this would easily help the case but the averages obviously go both ways. And the average overhead of 25.8% is easily eaten up by the extra data in cache by the reduced sizes of the emails. In fact, on some tests with larger emails, we were getting responses back via imap for compressed mails quicker than uncompressed mails even before the cache became useful. Less data to read from the disk meant it returned the data quicker. Definitely something that will need further work.

Overall, since it is usually disk IO that runs out before CPU on a mail server, this really comes down to trading some CPU for reduced disk IO.

Speed 3 – Backup Speed

Since files change once, there is a large enough hit then. The same with space if you lag compression instead of doing via the lda. Ideally you’d be able to differentiate between active pop users (i.e. those that down all mail without leaving a copy on the server)and everyone else. An active pop user probably doesn’t need compression although the benefit of less date to read if the mails comes into play. The real benefit of doing it through the LDA is that your backups will only grab one copy of an email, not the pre and post compression one.

The real improvement for the backups comes with the lower data sizes. Lower data means more ends up in the file system cache. Doing a backup from something like rsync, more folder entries will remain hot allowing it to scan them much quicker. Never underestimate the importance of the FS cache. On a slower testing box, a different of 20-30 seconds can be seen between a cold read (i.e. non cached folder entry) and a hot read of a large (~100k mails) maildir.

Lower individual mail sizes only really play a part if your backups are restricted by your link speed or in a remote location. They will play a part for rsync’d MDBOX folders since these can be large in size. Compressing the MDBOX is much more efficient than doing differential block syncs with rsync. Only time is when the MDBOX purge is run. Depending on the users delete pattern, the chunk size of the MDBOX, and the lattency, the differential option can end up faster for these.

If you are only doing the purge say weekly, then try running it on your backup host before the sync after your live system. If your users are delete happy, it can help quite a bit.

Some  Conclusions

Firstly sysadmin mailboxes are not a-typical mailboxes. Upon testing my own from different mailboxes, I got wildly different results. One had an >80% compression rate, another of <10% with a huge overhead. Yes some of your users will match these profiles (video storage on email anyone?), but it is unlikely you’ll hit a mailbox with >100k mails of pure nearly identical text (a nagios archive).

Once I had the script running on a much large set the averages starting floating around the same point. Things were within 3% of the final average after around 25 mailboxes which was somewhat surprising.

To be honest, with the graphs I was really hoping for an aha graph. One which had a really clear crossover point to point to and go, yup, that is the correct figure for X. But since I didn’t know what X was, it was hard to produce such a graph. I had also forgotten just how much moving the axis affects things, and how much you can adjust things to fit the answers you want to see. More so defining which cross over point you actually want to see also affects the outcome. Do you want to come the overhead of compression against the data in cache? Well then how much cache do you have now because that matters.

One example of the different cross over points is in the following graphs. They cover compression vs the size of mails.  The crossover changes drastically on the small and vsmall graphs.

Compression VS File size - VSmallCompression VS File size - SmallCompression VS File size - Large

But then that isn’t an overly useful cross over. At least not looking at it. Originally I wanted to see if there was any points where compression wouldn’t make sense. Combining the information with the overhead graphs above, it is clear that compression makes sense everywhere from a read-back point of view.

How about if we look at the distribution of file sizes?

Number of files VS File Size - VSmallNumber of files VS File Size - SmallNumber of files VS File Size - Large

There are more small files than large files. This makes a difference if you lag your compression since you can ignore the smaller files and still get most of benefits of compression in a shortly time. Just how much?

Compression with number of files VS Ignored size - Compression with number of files VS Ignored size - SmallCompression with number of files VS Ignored size - Large

What was really interesting if just how much space you can save by only compressing large files, and by large I mean > 1 Megabyte large. If you ignore everything smaller than 500KB you still get a 28% compression rate with gzip VS an overall rate of 38%, and that is with skipping well over half the data set. Not bad at all.

But what should you choose to ignore? Well the difference between doing everything and ignoring say 2KB is within the area of data errors. Basically it probably isn’t going to do anything to your compression rate but will help with the speed of your compression runs. Where you go really depends on how cold your data will be. If you are going to do it via the LDA then you will automatically hit everything, and frankly I doubt there is a need to exclude things at that stage.

My Recommendations

In simple terms the best I offer is

  • Turn on compression at the LDA.
  • Use gzip with a middle setting (5/6) unless you know your mail is in some way different (think archiving with attachments stripped, but even then the midway works pretty well).

To back compress your data, start with a high exclude value, let your backups catch up then lower down, rise and repeat. It is probably also worth excluding by time until you get caught up and your backups have stabilised. Remember that backup space will balloon out by at least 40-50% as you are doing this; all the compressed mails are effectively new data.

Version 0 – a tale small goals

Version 0 is a concept you are probably already familiar with, but by a different name. For me it is about getting a task or project broken down to the smallest possible building block, and laying the foundation from where to proceed.

In software that can mean something as simple and saving the file and having it print hello.

Or in finance it could be a simply as putting 1cent towards a savings goal.

Small wins which help you accomplish big goals.

Mark Twain put it best

The secret of getting ahead is getting started. The secret of getting started is
breaking your complex overwhelming tasks into small manageable tasks, and then 
starting on the first one.

Thus making the secret to finishing anything is just simply starting it. Break it down to your version 0 and just start. You can build from there and sort the direction as you go. It is much easier to change direction and go where you want, than it is to start after having done nothing for so long.

Inertia is a killer. The slower you go, the more stuck you  become, until eventually you have forgotten what it feels like to move. Or even how to move, thinking that doing nothing is actually progress.

Inertia

I first began to truly understood the principle a while back. It happened after completing the work needed to upgrade the Billing System for a company I work for. The first attempt at doing it was nothing short of a complete failure. While I had set down all the goals and mapped out everything correctly, it never got to the point where it could be called working. Each attempt progressed but either I lost interest, or was pulled away onto something more important. And without a working version, no one else could pick up in the middle. Further more, given there was no base working system, every subsequent attempt at completing it was like starting from scratch and trying to finish something you couldn’t test. Guessing if each change wasn’t breaking things that didn’t work.

On the attempt that finally worked I decided that I’d sit down, then spend whatever time was needed but wouldn’t stop until it worked in some fashion. Given this constraint I started to break it down to smaller and smaller parts getting to the point of realising that the core feature is the nightly script. It reads from the database, does the calculations, then writes stuff back. Everything else is either triggered from this, or a view into the database. So I could simply ignore all of that initially.

Next was to break down the nightly script. I set out a goal of getting it to ready from the database, look for one single specific product type, check if it was due to renew, and if it was, mark it and insert a row to an invoice table.

And it worked.

An hour or two later and Version 0 was complete. It could run and handle this single case. The database tables were all there and ready to go. From there each additional feature, like making it understand all the products, or giving users a way to see their invoices from the table, could all be handled individually, as separate building blocks, all on top of Version 0.

In Sport

The exact sample process applies when training for events like The Dublin Marathon which I completed recently. You start off running a few km, then each week building on that and watch the distances get longer and longer, closer and closer to the final goal. At the start, the end goal might look daunting and impossible, so you start on this small piece that you know you can do. Then it is easy to do this next part, then this other part, and it just snowballs from there.

It is always just about starting and getting to that first measurable point. Once you see progress, no matter how small, it is easier to try for the next part. And each time it gets easier and easier.

How to apply it?

  1. Take your task and break it down to its simplest form.
  2. Break this down further so it can be measured after a few hours effort.
  3. Now try to break it down further.
  4. Start on the quickest part.
  5. Record it somewhere, be that an initial commit, a record in your training log, an entry to your accounts programme, a post-it note on the fridge.
  6. Pick the next part and repeat.

 

Homemade Floating Drum Riser

A few weeks back I went an bought a drum kit. I live in an apartment so it had to be an electronic drum kit for noise reason, but what I didn’t know at the time was just how loud it’d actually be. There is tapping on the pads, but mainly its the base drum pedal and it’s pad that seem to create the noise. Or at least noise for the apartment below.

Roll on for the home made drum riser.

The Concept

I had read about others with electronic kits building risers, such as this one, which gave me the idea to search out a rubber mat and something to raise it up off the floor with. The closest thing I could find was a large rubber gym mat, approx 2cm thick, but it looked like it would do the job. I could figure the other parts out as we went.

The Journey

Somethings seem simple on paper but turn out to be much more difficult in practice. This was one of those occasions. The task was simply to drive down into Wicklow, buy a large rubber mat, then get it home. Abbeylawn was the company selling the rubber gym mats also sold rubber cow mats which seemed to offer more give and hopefully more sound proofing. Things started to go a wrong once I picked the initial mat after the helpful attendant showed me through the different mats. Turned out they were down to two of that mat, and one was damaged leaving only the display one.

To put this into perspective, the company is pretty much based on a sort of farm yard. As such things were a bit wet and mucky. At the time I just thought that its a rubber mat, it’ll wash off, not thinking about just about everything else. But into the car it went and onward home.

Once home the next problem popped up. These mats weight 20kg, and while that may not seem much on paper, it is a whole other story with a 3m wide rubber mat that you can only grip with your fingers. Worse was that it didn’t roll up fully and with the muck and water, it made a bit of a mess getting it up the stairs. It then took a whole four days to properly dry off on both sides due to the honeycomb bottom.

But still, I had my mat.

How to float the boat

One of the last steps was just how to raise everything up off the floor. My biggest concern was actually that the whole thing was highest restricted due to its location right beside my wardrobes. Queue looking at types of rugs, carpets, carpet mats, rubber stoppers, foam…

Eventually it hit me. Ice cube trays! Ikea sells some rubber ones, and cheap enough that it would be worth a try. The end result of 5 trays cut apart and tacked on is a follows.

Yes one fell off :(

How it all feels

The end result is a raised platform for the drum which bounces slightly when playing. Feels a little odd but I’m sure I’ll get used to it pretty quickly. Does it stop the noise to below? Well that I don’t know yet. Since the kick isn’t touching the ground any more, the only noise that should be left is the noise around the room itself, so hopefully it does.

An ikea kids mat for grip

Dublin Marathon 2012 – Race Day Review

Yesterday was The Marathon. A year of working towards it, with all the training and pain that goes with it. Coupled with picking up the flu (not man flu, but real flu, the kind that takes four weeks to clear properly) and my knee giving out a few weeks back, it was a day that really could have gone either way. But here we are.

A Giant Thank You!

I don’t think I said enough when thanking everyone for the previous run events. Given this was my first marathon, maybe I’m being overly generous, but the only thing I can fault the organisers on is the lack of jellies in my goodie bag at the end. Like come on, they were there for every other event.

In all seriousness, the event was fantastically run. I’ve taken part in some large scale events in the past with thousands of participants, but this is a different scale due to the shorter distance. Everything was very well laid out and there were crowds and people lining the streets all along the route. I really don’t remember many sections without people, and usually these were directly after the Spar Cheering Zones. Big up to Spar too. You could tell a cheering zone was coming up well in advance. Large crowds cheering and guys beating the drums, and of course the dancing Spar red thing. I can only assume that Spar played a part in getting some of the sweets around the course as well. While I didn’t take any, just having people standing with them, supporting, it does help push you onwards.

To the supporters, thank you. While not there for me directly, you were supporting the event and adding to the atmosphere. Even to you kid who made fun of my jogging pace just before the turn at the UCD flyover, thank you. That level of support is really something missing for most of the cycling events, partly due to the distances being orders of magnitude longer, although the Tour of Meath does manage to continually have the best atmosphere.

Race Day minus 4 weeks

Why am I starting here? Well as I alluded above, my problems started about 6 weeks before the marathon. During one of my LSRs, I pretty much fell apart. My knee gave out just before the half way point resulting in a near death march home. And given the route was an out and back style route, the shortest way home was the route. A day or two after I ended up with the flu which knocked me right off my feet. Sick enough that I took my first sick day from work in a long time. Long enough that I can’t remember the last sick day I took.

It was a whole week before I got out to do any exercise again, a 14km run at a whooping 6:22min/km, and I was like the walking dead afterwards. The runs did pick up a little the following week but I was still a mess and mostly struggling.

Race Day minus 5 days

Being somewhat smart I decided to take time off work around the marathon, although admittedly was more to use the days I had than anything else. But it didn’t start well. Even before finishing up in work I had stomach pain. Since I’m no stranger to stomach pain, I really didn’t pay much attention to it until later that night. It didn’t let up and just continued to get worse, right up to the point where standing up straight was difficult. Eventually by close to 1am it had let up enough that I could get some sleep. Let up, but not gone away.

The pain continued into the next day and led to constipation of sorts. Needless to say, my mindset changed to one of wondering if I’d actually make it to the start line, let alone finish.

Race Day

With the big day upon me, I was incredibly lucky that my stomach had decided to settle somewhat. All systems were go as they say and it was onward into town for 8am.

If I was running the marathon and had an unlimited amount of money, one thing I’d change is a heated start area. Few giant heaters warming the air while standing around. I’m sure Tony Stark could invent something eco friendly too.

3, 2, 1 and they are off

As the hour inched forward I eventually dispensed with my base layer, dropped the bag off, and started on the way around to my pen. 3:45 – 4:15 finish time, which on normal day would be perfect. 5:30min/km is my safe fallback speed that I seem to end up if I slow down. On a good day it’d be open roads due to the minute gap to the front group. I even managed to get into the pen maybe 5 metres back from the start, although somehow huge numbers ended up ahead by the real start line. Still it wasn’t overly congested and I was jogging along pretty quickly.

The cold played a huge part. For the first time in a long time, km1 came and went and I wasn’t warmed up. km 2 too, followed by km 3 and 4. Even at 6km in I was still feeling the cold. Unusual to say the least and I’ll partly put it down to getting so cold at the start. Yes I wore an extra top to keep some heat while standing around, but it was quite cold.

And here comes the midway point

Skipping ahead perhaps, but once I warmed up things became uneventful. Exactly what you want in a marathon. Just plodding along. I was holding a nice solid pace near 5min/km, a bit higher than previous runs, but overall I was happy with it given my last few weeks.

This is when the problems began. Going into the event, I really wasn’t sure how I’d hold up liquid wise. I’d taken to running with a bottle of sports drink and it it was working pretty well. I somehow go confused while running thinking that there was a sportdrink stop at 15 miles, confusing the original map since it had miles. I’m not sure why, but I ran through the one before the half way point without picking up a bottle, presumably since I had some still left in mine. When it ran out around around 19km, I began to realise my mistake. It didn’t dawn on my until the halfway banner came and went, then followed by mile 14.

By the time the water stop came at mile 15, the damage was done. My pace has really dropped off and my knee was starting to hurt quite a bit. Muscles in my hamstrings and calves followed, I’d say shortly, but then everything in a marathon seems longer while you are experiencing it.

18.5, a magic number

Why a magic number? Some Spar Sport drink, that is why.

The graphs don’t tell the full story, but I most definitely started to improve from then on, at least subjectively. Ok my speed went down, but I wasn’t feeling like a zombie anymore and the marathon switched to a purely mental exercise. One I knew I could win. Words from a friend a few day prior were rattling around in my head pushing me on.

I've known you long enough to know that no matter how bad you feel,
in events like this, you are indestructible.

How could I give up with words like that?

There goes the wall, what wall?

I guess anyone who has talked about marathons has heard of this mythical wall. The point when your body runs out energy and it feels like you’ve just had an elephant dropped on your shoulders. I had always thought of the wall as similar to bonking in cycling, where you run out of energy from not eating and drinking enough. Cycling is definitely different to running in that events are longer time wise, and pretty much impossible without eating on the go. The body just doesn’t enough energy reserves for eight and half hours of non-stop, near the limit physical activity, without some refuelling.

There still reaches a point that you muscles raise the white flag and say enough is enough, so perhaps that is a better analogue to the runners wall. Given I’d experienced this too back shortly after I took up cycling, I knew just how bad it could get, and with the UCD flyover being at mile 22, the hill was perfectly posed to mark the wall, maybe being a hill too far?

Yet nothing. It came and went without much impact. Ok I was going slower than just about everyone on the road around me, but I had been since I slowed after the half way point. Maybe the wall comes later for some?

Spots, red spots, oh…

One thing I used to suffer from is nose bleeds. Few times I’d wake up in the night with one, although mostly I’d get that feeling that as soon as I blew my nose, it’d be a nose bleed. This last year hadn’t resulted in one, until now. 24 miles into a marathon.

Those aren’t dirt marks on the number. Lucky it wasn’t as bad as some previous ones and stopped quick enough. I can only assume it was caused by blowing my nose so often from having the tail end of the flu.

The worst part was covering my face anytime I saw a yellow jacket. St. John Ambulance were everywhere near the end and I really didn’t want them to try pulling me for the nose bleed. (An aside, those guys are great. Luckily I’ve never had to part-take of their services, but I know of more than one person who owes their life to them from other events.)

Here comes the noise

With Dublin City Centre getting closer foot step by foot step, the roads got more and more familiar. All along from before UCD when the 3:45 pace group passed me, I had started trying to do the maths to see just how much time I could lose and still get home in time. Needless to say, my brain wasn’t working all too well.

When we came to the back of Trinity and my average had only dropped to 5:31, I began to think that yes, yes I can do this. My defining memory is switching my GPS to the screen with the overall time and it reading 3:47. At that point it hit home, that yes, short of something completely catastrophic, I was going to make it under the 4hr mark. The elephant disappeared and running became almost easy again. Knowing that even at a near walking pace I’d make it, I didn’t push, but just continued, smiling along as much as I do.

Enter the Green Zone

That last 500 meters really is the longest 500 meters you’ll ever run. You know the finish is just ahead. You can hear the crowds. You can hear the announcer calling out as people cross over. But you can’t see it as it is just behind that building.

And then you see it. The banners. The mats. The boxes. The clocks. Time slows down for those last few steps.

I remember crossing the line and slowing to a walking pace, raising my arms and just feeling amazing. I’d done it. First and only marathon over. Yes it had been painful and the training had fallen apart at the end, but I’d made my medium goal time. I also remember my name being called out by the announcer, something which makes you feel surprisingly special, even though you know you are just another anon in a sea of anons.

The hard figures

My official time was 3:56:34 with a chip time of 3:56:06. I was a little worried that if they used the first wave start time, I wouldn’t have made it under 4 hours as I went along at Trinity, by I knew no amount of speed would have gotten me around in 3 minutes. Overall position of 5050 and a category position of 1544.  Not as high as some of the previous runs, but definitely respectable.

I do wish I took a better picture too.

An aftermath

Well I had said long before this marathon that this was my first and only marathon. And short of getting a shot at the New York Marathon, that is true. I might run some of the shorter events, but I can’t see myself going through the marathon again. Running just isn’t all that much fun. Best described as hitting yourself with a hammer for 4 hours. Yes there are some huge upsides to the running events, but they don’t really counter act the fact that running is quite boring.

Like most others, I have felt quite stiff afterwards. My legs didn’t feel too bad the day of the marathon although my feet were, especially my big toes. The day after was a different story with the muscles being tight and painful that even made it difficult to sleep. Today has been solely determined by knee and its pain of sorts. Mainly its funny bone style pain resulting in a weakness that makes it hard to stand. And this is likely to be the defining factor for the future months.

I’ll hopefully see Mr Knee Doctor Specialist next week to get a proper opinion, but my knee problems have gone on long enough that I need to go back and find a better solution. I someone how doubt that running for cross training to build up other stabilising muscles will work this time around.

In Closing

I must apologise for the rambling nature of the post. The marathon really was the result of years goal and I know I’ll look back on it, presumably fondly due to the lovely nature of the human memory. 100% I’m glad I took to the start and finish the marathon. It has been something I’ve wanted to do for as long as I can remember.

If you were to do a marathon, then the Dublin Marathon is definitely a good candidate, just remember to train.

Dublin Marathon Series 2012 – Half Marathon

Another day, another milestone along the path during the year of the marathon. And while I had failed more than one training session in the preceding week, I wasn’t feeling all too bad, physically at least. I woke up to that feeling you get, the one when you know you should just roll back over and write-off the day.

The Weather

This race really did confirm the difference the weather makes. It was dull, overcast day, with a fair bit of wind chill; enough to make me regret my lack of arm warmers within a minute of leaving the apartment. Overall throughout the race, it was a comfortable temperature. Not too warm, and the wind wasn’t too cold.

The Baby Bottle

Having learnt my lesson on a recent LSR, this marked my first event with carrying a bottle. As stupid as it sounds, it made more of a difference than I expected. My LSRs are all about doing the distance and surviving. The rules are just to cover the distance, no matter what the speed.

Racing is different, although try as I do, and despite what my splits look like, I really am unable to pace myself. I start the run and try to find a rhythm. In every race so far, this has been faster than just about every training run I’ve done.  At times I look at my watch and see the pace, it is nearly impossible to speed up or slow down. Usually I can get small increments, but definitely not a full on pace change.

This hit home more so in this race as I wasn’t physically tired during it, at least until the back hill for miles 11 and 12. I remember running along the road outside the park, not feeling tired, but just feeling bored and wondering why I was continuing. Except that I’d have to stop and still walk the same distance, it almost felt like I could have stopped there. Physically it did hit me a little during the uphill section on miles 11/12, and I did slow down more than usual, but once we levelled out I was back up to the 4:40 splits. I even crossed the line not far out of breath, with water still in the bottle, and not all that thirsty.

Rinse and Repeat

My official time was 01:44:57, Pos 1448, Chip Time 01:40:41, Chip Position 1317. My GPS records confirm I even beat my 10 Mile time, and by a sizeable margin too. I do have to put it down to the bottle/weather, and not training. A category position of 569 has me a bit down position wise, and its further off my 10km position which had me in the top 20%.

Given this was my first and last half marathon, I’m happy its over. The big day is almost here and at this point I’m pretty sure I’ll be able for it physically. Mentally is another story and will definitely be the determining factor on the day.

Dublin Marathon Series 2012 – Frank Duffy 10 Mile

You know those days when you wake up and you know you won’t enjoy something? Today was one of those days. For whatever reason I knew things would be off. Perhaps it is just a combination of the long build up in training, pushing too far on the last LSR with no water, or giving blood last week that did it. Who knows? It probably didn’t help to feel this way before the race.

Going into the race I wasn’t sure where to aim time wise. The 10 mile does seem a bit strange that way at the pace I’m running right now. There is no easy round goals to shot for. Right now I’m hitting between 5 and 5:30 most days in training with the LSRs being much slower. In fact these last 2 weeks or so have had the pace all over the place, no way consistent, and usually dropping way off as the distance goes on. I was expecting as much during today’s race.

The Race

Once again I went into the race with my usual level of preparedness, i.e. none. I knew it was in the park, but that is where it ended. As it turned out we were to run down the main straight away, and we were to do it twice. Then onwards around the usual back part that all the other races take to the finish.

I started in the second pen today, 80 to -95 minutes I think. A good round goal of 90 minutes seemed doable since that only required a 5:35 split. With the watch set at 5:30km/min off we went. There is definitely a difference in starting at the front of a pen and at the back. Things don’t space out anywhere near as quickly. Luckily some people had the great idea of moving onto the grass verge on the side which meant a much clearer path as I followed. My goal of 5:30km/min quickly went out the window as my pace was sitting around 4:30km/min during the straight. Worse still, even though I felt bad and tried to slow down I just couldn’t.

At this pace I did end up passing quite a few people and even found myself doing those little sprints to get by as others slowed, but it was taking its toll, mentally more than anything. As we were completing KM6 and coming back onto the main straightaway, my stomach decided it was wanted in on the action as started its usual pain. Really not the place to start thinking Why the hell am I doing this? I’m not even enjoying it! But since I don’t really understand the concept of giving up, I kept going. Sure I had time to burn until the cycle home so I might as well keep running.

Water water everywhere, so let’s all have a drink!

Giving my level of preparedness, I was slightly counting on the water stops. It didn’t help when the first one was before the 3mile mark, much too early, for me at least. The second one was after 7miles which is probably about right, but it is very, very hard to drink from cups while running. More ends up on your face than in your mouth unless you stop, or perhaps I need some lessons? The water probably hurt more than it helped as well given than my pace dropped off quite a bit after I drank. More and more often in future as I’ll carry a bottle for sure.

The last few KM really were a slog. Funnily there were two or three people who kept the same pace as me from early on and kept appearing, falling back, appearing, falling back, or most likely it was me being inconsistent, but it provided some amusement.

Nearing the last corner I could hear the guy doing the commentary. An aside, that guy definitely adds to the atmosphere and it is amazing just how he keeps talking throughout. But as I was coming home he was announcing that the first group had just under two minutes to cross to break the 80 minute mark. Immediately my head starts racing thinking oh no, how long is left and do I need to speed up. It wasn’t my target but it’s a round boundary. Luckily I remembered that there was a 3 minute gap between the two groups, and that would easily give me ample time to finish without speeding up or worse, sprinting the finish.

The aftermath

Once over the line, so begins the death march to collect a t-shirt and the goodie bag. I was looking forward to the sports drink more than anything; the whole zombie mode isn’t enjoyable. Disappointingly the t-shirt was white today which means it’ll have chocolate on it. Every white tee I’ve owned has ended up that way the first day so perhaps if we don’t touch this one it’ll remain safe.

The journey home on the bike was a slow drag. With very little in the legs it proceeded at a pace I haven’t experienced in a long while, bad enough to question the smartness of cycling in the first place. However given that I don’t feel as bad as I have after the LSRs of recent, perhaps it did help.

For the record

My official time was 1:21:17, Pos 1224. Chip time of 1:18:26 Rank 1134 which matches very closely to my gps record. A Category position of 458. Definitely down on the last race but I’m happy with it, much better than I expected going into it, but I’m glad its over. Only one more stepping stone to go before the big day.

Strange words and thoughts