Morten Liebach

Chop wood, carry water — Life™ v2.0 of Morten Liebach

Reinvigorate Your iPhone

| Comments

My iPhone 5 is getting old, but I have given it a new lease on life.

The battery didn’t last for a full day of normal use, and most frustratingly, it wouldn’t charge unless I jammed the connector in real hard, at just the right angle. Lately not even that was enough, sometimes it would indicate it was charging, but the battery would still be draining. It was so incredibly frustrating.

Changing the battery myself was real easy, I got a new battery and toolkit from overnight, and just did it. Very easy.

But the charging still got progressively worse, until yesterday, where I simply couldn’t jam the connector in so it would charge.

That was incredibly annoying.

So I started looking for a solution, and found a list of things to try. The 7th thing to try was “check for lint”, and, lo and behold, there was a lot of lint that I could clear out, and then the phone would charge and connect to the Mac and everything, just like new.

Man did I feel stupid for not having found that out earlier. Would’ve saved me 2 months of frustration.

So, when electronics give you grief, check for lint first. And also, don’t be afraid of servicing your phone, just get the right tools for it before you begin.

Just imagine I had gone and bought a shiny new iPhone 6 just because of such a small thing…

The Joy of LaTeX

| Comments

By LaTeX I don’t mean just latex, but LaTeX, the document typesetting system originally developed by Leslie Lamport.

Being unemployed means I write job applications quite a bit, and I’ve used for it, but one day, which turned in to 2 days, I took the plunge and rewrote my Curriculum Vitae in LaTeX, both a Danish and an English version, using the absolutely excellent ModernCV class by Xavier Danaux. You can peek at the TeX sources in Danish and English if you wish.

A thing I noticed after that was that my writing process became far less “cluttered”, for lack of a better word. I just write in my favourite programming text editor, and it feels so good. No more thinking about how it looks all the time, because I can’t see that. It is the wonderful freedom of not using a WYSIWYG system. It makes for better writing, and then LaTeX does its magic and makes it pretty when you compile it.

LaTeX is a bona fide programming language, although a bit odd compared to modern languages — so many \commands — but in practice it feels more like a markup language like HTML, 99% of the time.

I use MacTeX on Mac, but for Unix + based platforms I’d use TeX Live and proTeXt on Windows. Install what fits your platform, then go and read a bit and you’re flying.

So, I Got Fired…

| Comments

I guess the euphemistic term is “laid off”, but I am not one for euphemisms.

It is quite a gut punch to get fired like that, even on an otherwise gorgeous august monday morning. My boss had requested a “meeting” (complete with the quotes around) the friday before, and I had a bad feeling about it from the start. And I was right like a Jedi.

There are no hard feelings whatsoever, either way. I can’t see how my boss could have kept me, but I also can’t explain the reasons in public without breaking confidentiality, so I won’t.

I am on gardening leave with pay until november 30th, so I have some time to find a new job. And enough time to first think real deep and hard about what it is that I want.

I now have a golden and wonderful opportunity, and I am going to make the most of it.

And I have updated my Curriculum Vitae now too.

Jels Duathlon 2013

| Comments

Today I officially started my 2013 multisport campaign by racing Jels Duathlon 2013 in 2:15:28.6. Files:

The format was 5-44-5 in probably the coldest and most miserable weather I’ve ever raced in. The only other duathlon I have raced, back in 1992, was warmer, but so windy lots of people had trouble staying upright on the bike. What is it with duathlon and the weather? Does it really have to be nasty one way or another?

I drove down with 2 good club mates, Mads and Rasmus, to a vacation house in Juelsminde the night before, so we didn’t have to get up too early the next morning. That was a good plan.

Driving the last hour to Jels in the morning we saw both rain and sleet, and generally horrible weather. At the 10:00 race start it was clearing up, and it was just a real light rain, which stopped soon after the start. But just before the start — very dark thoughts about the weather, as I sat in the car keeping warm. I didn’t begin setting up before 20 minutes before the start, so I ended up only having a pathetic excuse for a warm-up. Didn’t hurt though, because in my race gear it was not about warming up as much as avoiding getting cold.

The first run was predictably crowded, but the trail was wide enough that it wasn’t a problem overtaking. I quickly got into a good rhythm and just cruised through at what felt like a good clip, which ended up being a 4’43”/km pace. Very good for me.

It took a while getting into the shoes with the overshoes on, but I had to do it that way to stay warm. Mounting the bike I felt great. I was racing again, after a way too long winter, and I loved it.

First 30 minutes on the bike was crowded, a bit more stop-and-go than I’d have liked, but such is competition. I rode to the limit, and a club mate who were doing draft busting duty told me he had almost busted me, but then I accelerated and made a clean pass. I just tried to ride as smooth and efficient as I could, but having to ride like that, instead of a pure time-trial, is one of my least favourite things. But it’s inevitable.

The last 45 minutes of the ride were uneventful in a good way, and my inner DJ started playing the first 2 lines of Lana Del Rey — Cola over and over. Don’t worry, it’s completely normal for me.

Only problem was that the contents of my bottles was uncomfortably cold, and I couldn’t feel my fingers. I worried a bit about the transition with cold fingers like that.

I botched the lap timing for the bike a bit, so I don’t know what the exact split is, but I’d say around 31.4 km/h average. Not fast, and I’m not entirely happy with it, but I haven’t been much on the road this year, so I guess it’s OK. I’ll get better.

The transition to the second run went OK. Slow with the extra clothes and frozen fingers, but OK. And then as I tried to hit my stride out of the transition zone my fingers started thawing and hurt like hell. “Fuck, fuck, fuck” I just thought to myself, but luckily it only took 2 minutes or so and then I was fine.

I heard another runner behind my as I ran past the 1 km sign, and I saw another 50 m in front. I half expected to be overtaken by the runner behind me, because that’s what usually happens, but the sound of his footsteps faded, and the one in front came closer. So my thought went from “don’t get caught” to “kill, kill, kill”, and I did. Around 2 km into the run I overtook the guy in front, easily, and started to look for the next one. I saw him on a long straight and started the hunt. I only missed by 5 seconds at the finish line.

I ran 36 seconds faster on the second run compared to the first, 4’35”/km average, after 2 hours of racing. That is pretty great for me, and I’m very happy about that.

I knew my running was good, but this was still a pleasant surprise.

Sleep came easy in the car going home.

Weight Loss, So Far

| Comments

Since I started loosing weight early in November last year I’ve been averaging just over 0.6 kg/week, until late in January. All of February my weight has been stable around 83 kg, and nothing happened.

About a week into February I lost energy, and completely failed to train several days in a row at one point. I thought I had a virus in my body or something, but it didn’t really feel like it. Then one night I had the sudden intuition that I simply needed more energy. So I started eating, and promptly felt better. So I kept it up, without my weight changing in any way, so that was good.

Now that I’m on the other side of Thy Trail ½ Marathon I think it’s about time to get back to weight loss again. Although I probably should wait a day or 2 more, I usually need about 4 days to recover from a ½ marathon.

But I do need to loose more weight, I’m not under 80 kg yet, and I don’t have six-pack either. The latter probably won’t happen, to be honest, but would definitely be nice to have.

And perhaps 0.6 kg/week is a bit too much for long term weight loss. I think I’ll target 0.5 kg/week or less, to avoid that low energy situation again.

Thy Trail ½ Marathon

| Comments

Yesterday I raced Thy Trail Marathon 2013, the ½ marathon distance. I was 61st out of 157, with a time of 2:04:38.

Driving to the race I remember thinking “why did I change to the half distance when the full marathon distance would have been 10 times the fun?” Well, I did because I was afraid the recovery after a marathon would cost too much ironman training, so there was a good reason. But if I had chosen with my heart I would have run the marathon.

Running to give my daughter a hug at the halfway point

You can find all the photos my mother took in the “Thy Trail ½ Marathon 2013” Flickr set.

My awesome family looked after my kids and drove between the start and the 3 aid stations so I could run with my kids for the first 50 m, and give them a hug at each aid station. Clara tried to give me a stick to run with each time. At the last aid station they even ran quite far with me, especially Tobias hung on for more than 100 m, in heavy winter clothes and boots. That’s quite impressive for a 6-year old, as I was doing around 5’00”/km in that place. Sadly they were just a few minutes late to see me cross the finish line, because of the usual parking chaos in the area. But the kids had a great day, both fell asleep in the car on the way home within minutes.

The weather was almost maximally awesome for the season, around -1ºC and a light 6 m/s wind from north-east, with perfectly clear blue skies and a glorious, warm, bright sun. Rare for the Danish winter. With the race going point to point, from south to north, it was exclusively headwind-ish. It was cold, but not brutally so.

It was real hard warming up, basically it was just a matter of not getting too cold, so I stayed in the bus until the last moment I could, 15 minutes before the start. With the race briefing being 7 minutes short and sweet, 10 minutes before the noon start, it left very little time to do much in the way of warming up.

It is an awesome course, in some of the most remote and wild nature Denmark have to offer. I love that area, I lived close by in my teens and early twenties, so I know it well. In the race briefing we were told that, this being a national park, we were not allowed to cut corners at any point, and it was not allowed to take the long route around the puddles, it was to be straight through them, if they were in the path. It was rules dictated by the permit for the race.

There were several section where you got wet feet, and after 17 km there was a rather deep puddle, almost exactly knee deep for me, and cold. The path was almost pure sand right out of that… endless fun.

Probably 5-7 km of the course was on the beach, and it is hard running. On the other hand, around half of the rest of the course was not much better, mostly sand, albeit a little firmer.

The majority of the non-beach trails were singletrack, so overtaking was a problem at times, but I never felt really frustrated, although I was close to other runners at all times.

The Garmin GPS data from my 910XT show a quite even effort, with some really slow parts where everyone bunched up on the steep singletrack parts. Normally I would use the GPS elevation correction in TrainingPeaks to get better data, but apparently the area is so remote, or so fluid because of sand, wind and weather, that there’s no accurate elevation data. So I left the barometric elevation data alone, it seems more accurate (apart from not being zero’ed at the start).

Thy Trail Marathon is a most wonderful race. I will do it again. And maybe next year on the full marathon distance, it is simply too beautiful out there not to get the most out of it when you can.

10 Years

| Comments

Today, exactly 10 years ago, I published my first blog post here.

Since then I found love, got married, had a son and a daughter (not blogged, sadly, since the site was un-updateable for a few months) and a divorce. All more or less chronicled here, alongside lots of random nerdery.

Reading back through the archives is quite an emotional roller coaster, triggering all kinds of memories of the times when I wrote the posts. Including all the stuff I didn’t write about. It’s very cool having a written record like that, I can only recommend it.

I started writing short but frequent posts, but as the years went on, posts got longer but less frequent, with long breaks of several months a few times. I think the longest was just over 6 months.

The historical size of posts

I couldn’t figure out how to make the post sizes appear on the x-axis according to the dates in that graph, but if you can make Numbers do that, I’m all ears how. Pretty sure Excel can do it, but there are limits to how far I will go to produce eye candy. Here’s the raw data if you want to play along.

Let the long boring tl;dr part begin…

The Early Years

The very first website I had was, which I hosted on my own first PC I had bought in late 1998. I think I might have started fiddling around with a website somewhat earlier, but I’m not sure, I have no record of it, or any accurate recollection.

Then, after having moved to Copenhagen I also moved my site to a commercial hosting company, and one day I was hanging around in #BSD-DK, as usual, and discussed anti-spam filtering and setup, bitching a bit about the lack of good solutions with my current hosting (remember, this was before GMail), and Alex Holst kindly offered me an account on And that was just what I needed. (Thanks a lot Alex.)

So from late August 2002, and for the next few years, I had and my blog got started.

1st Generation Blog

In the beginning, being a complete beginner in web development, I went for the minimum viable solution with static HTML files generated with a mix of a Makefile, shell scripts and M4 macros.

I had hacked it together mostly over christmas, finally deploying a little past new year.

It was primitive as hell, even by the standards of the day, but I liked it, because I had made it myself. Remember that back in the day there were very few ready made solutions for blogging, and I also wanted to make my own, just for fun.

2nd Generation

It wasn’t long before the M4 macros showed their inadequacy, there are way better HTML templating solutions out there.

I ended up throwing everything into a super simple single-table PostgreSQL database and pull it all out with some Python and Cheetah Templates to generate HTML, that I would then rsync over ssh to the server.

That worked well for quite a long while.

And no, the database part was not necessary. I just wanted to try out using a database as backend.

3rd Generation

I was unhappy with not having comments, at least sometimes, and I wanted to experiment with the other blog features that were common with ping backs etc., so I moved to, keeping the archive of the old blog running on

4th Generation

After a while, I think almost 2 years, I grew tired of, mostly because I wanted to do my own thing. I didn’t know exactly what, but I ended up not blogging for quite a while, except migrating everything from into my own system.

After a while, I can’t remember if it was immediately after, og if I had a while on my old Python Cheetah based platform, I changed to the excellent jekyll platform, what powers GitHub pages.

This allowed me to keep deploying just simple static webpages as always, keeping the server side lean and mean, and I moved it around a bit among different servers. I even hosted it on my home ADSL on my soekris net4801 for a while, and it worked great.

For comments I started using Disqus, it provided all I needed without needing anything running on the server side. I like to avoid that.

Then came another big break.

5th Generation

I grew tired of maintaining my own site, so I generated a static version once and for all and deployed one last time, and then I put it behind a simple one page front page linking to everything else I do online.

Then I started blogging on — and then Posterous got bought. I think Posterous is in technical decline now, and probably will not exist in a few years time, so I decided to leave before I was forced to it.

6th Generation

So I am now back on jekyll again, by way of Octopress, and loving it, so far.

Through all the changes in platform I have been very careful about keeping everything in place as much as possible, because cool URIs don’t change. Mostly — but I’ve done my best to have the correct redirects in place.

I love writing posts in Markdown—no dumb web interface—with $EDITOR (that means vim, of course) or iA Writer, using Marked for previewing. All great tools.

I’ll stay with this for a while, and I hope I’ll be blogging right up until the time when I die. And still have everything in one place, of course.

Thanks for reading.


| Comments

My goal for Challenge Roth 2013 is to go sub-10 hours. I want to see the hours on my watch in the single digits when I cross the finish line.

Just like Patrick Rhone I have my fear of failure, and my thought process is almost exactly like his. Setting goals and fear not reaching them is natural. But not a reason not to set goals.

A good goal is a goal that’s a little scary.

Last time I did an Ironman distance race was back in 1997 in Fredericia, at the ripe young age of 26, and I managed 10:07'17". I’ll be 42 when I try to do better. But, Roth is possibly the fastest course in the world, at least for a strong cyclist, so that’s in my favour.

My time budget for the race is as follows:

  1. 1:05 swim
  2. 0:06 T1
  3. 5:00 bike
  4. 0:04 T2
  5. 3:40 run

That’s 9:55 in total, the transition times are very conservative. Still, not much time to waste, and I’ll have to set a personal best in all 3 legs, but not by much either.

So, what to do to make it happen?

Loose Weight

I am loosing weight at a steady and sustainable rate right now, using Madlog to track my food intake. It works, and I learn a lot. Because that’s what you inevitably do when you weigh all you food and track calories and macro nutrients.

Originally I intended to only use Madlog for the weight loss part, but I’m thinking I might continue all the way. It’s a great way to get a good honest look at what I really eat.

I expect to reach 80 kg around March 1st, then I’ll see if I can sustain it a little longer and get a little leaner, but the training load at that time will be higher, and that makes it harder to go to bed hungry.


I need to swim 1'42"/100 in fresh water in a wetsuit to pull it off. I’m not entirely sure what benchmark to use to see if I’m ready. I’m thinking a set like 6-8×400 at a 7'00" send-off for a 20" rest (that’s 1'40"/100) would be a good one to aim for. Or a straight 2000 m training swim at 1'42" pace or better.

I’m open for suggestions.

I train in a 50 m pool, so times should reflect that.


I have a super bike now, with a disc wheel, even. Much faster than the Principia TSL I used in 1997.

I totally get a kick out of having a super cool bike. But it is also objectively much faster. I remember lusting after those Zipp frames and wheels back then, and now I have one! Hard to not feel great about that.

I’ll have to get some riding done, but for me it’s not hard getting fast on the bike. It’s just a matter of doing the work.

And I’m already well under way with all the spin classes I do. I’ve found it helps me get some cycling done, much more than the turbo trainer. And riding outside this time of the year sucks so much I won’t even bother trying.

So I think I’ll arrive in spring having done more cycling over the winter than ever before. It’s a good start.


My run legs are much more durable than ever before, it takes a lot (of stupidity) to get injured now. Gravitating heavily towards a Pose Running/natural running type of technique, starting about 6 years ago, has helped me tremendously. And just lots of years of moderate training I guess.

And I can do 5'05"/km off a hard 2 hour bike now, without it feeling like more than comfortably hard. Currently at a heart rate around 165. I’d like to see that go down to 155 or lower, as that’s the heart rate I’ve averaged before in an Ironman marathon. And I don’t think that’s impossible in 6 months.

I was always a weak runner in triathlon. And I still am, but I feel really confident in my run right now, more than my swim and bike. It’s a good feeling.

Thanks to Aleksandar/OOB Coaching for good pointers on how to set goals.

Race Plans for 2013

| Comments

So far I’ve entered the following races for 2013:

I will probably race Randers Open Water, if I can fit it in, but the Danish open water swim calendar is not yet online, so I don’t know yet.

It would also be nice with a 5 km run race or two, but I’ll just jump in when I can.

See you at the races.

UPDATE 2012-12-24: Added Jels Duathlon early April. It’s good to have races planned to break up the training and have some reality checks along the way. Also because running is not a strength of mine, so I generally suck at duathlon, but, you don’t get good at something by avoiding it.

Extreme Website Makeover

| Comments

Back in march when Posterous was acquired it quickly became clear that it was a talent acquisition, and not because Twitter wanted to use and run the service. There was—and is—a clear sense that Posterous will be neglected and then eventually shut down.

And there has been no new functionality or anything, really, from Posterous since, so it was time to move before it started to suck.

I had also heard about Octopress and liked what I saw, so I started porting the content over. It took a few evenings and some very dirty scripting to sort it out, but I think I have succeeded. There’s a bunch of smaller things that I’ll get around to fixing up, mostly related to source code snippets that are not highlighted currently, but otherwise it is a complete record of my almost 10 years of blogging.

The design is the default Octopress design, because I can’t make anything better myself, and it is very nice anyway. I’ll probably end up making a few tweaks, but generally it is pretty as it is. Works great on mobile devices too.