Category Archives: life

I don’t trust motivation

This is a general thing I’ve been observing, but it was sparked by a comment from my friend Marcus on my previous post:

I think you missed off the most important thing for me – be happy. I find it way easier to do the things I should do, like exercise, when I’m already cheerful. I tend to exist in the moment more than most people, so maybe it’s just me.

I’ve already replied to the comment:

Yeah, I don’t trust this strategy.

The problem is that happiness is transitory, and too much at the whim of external factors, which means that behaviour changes that rely on it tend to lead to relapses. I agree that it’s much easier to achieve your goals when you’re already in a great mood, but you need to be able to achieve your goals when you’re having a shitty day and really don’t want to as well.

But I think this deserves elaborating on further (and not just because I’m desperately trying to prevent a beeminder goal that requires me to spend more time blogging today from derailing *cough*).

A similar theme I’ve heard a lot recently is the idea that the solution to my exercise problem is that I should find things that are fun to do and I will then want to do them.

I think these are good ideas. Happiness is great, and it makes everything easier, and if you have fun things to do that are good exercise you should definitely do them because they’re fun and you’ll get more exercise.

But as strategies I fundamentally don’t trust them, and believe that following them would actively sabotage my attempts to achieve my goals.

The problem is that they all are ways of making you want to achieve things.

Wanting to achieve the things you’re trying to achieve is also great, and you should do as much of that as you can, but there are going to be times when you don’t want to achieve things, and you’re still going to have to anyway.

I don’t know about you, but my energy levels (both physical and mental) are incredibly variable. I’m aware I’m somewhat atypical on this front, but only in the sense of maybe like a standard deviation worse than average. This means that I will often go for periods of a week or maybe even two where I just can’t be bothered with things because everything seems like hard work. It’s not that I’m unable to function, it just means that my motivation is at a distinct low.

What this means is that on a regular basis I have to assume I will have very little motivation to achieve anything, and that the things that I learned how to get done by being happy about it, or by enjoying them, no longer seem like they’re worth the effort because the effort seems so much greater. Eventually this will pass, but by that time the habit will be broken and I will have lost a lot of ground and have to restart from a much earlier phase.

And what that means is that I have to regard any approach which is built purely on motivation as doomed to failure. This is why I need strategies, and I need to design systems where the response to “I can’t be bothered” is that I go and do it anyway.

This may sound overly specific to me, and your experience of personal experience of energy levels might be different, but there are other things that can cause this too – external variation in circumstances can cause life to get a bit overwhelming, and then suddenly you too can find that you don’t have as much motivation as you once did because you’re spending it all on the current crisis, and then like me all the things that you were relying on motivation for will start to fall by the wayside.

This is of course not to say that you shouldn’t use motivation when you have it. You can always rely on the times where you have motivation to do more of it. I’m certainly planning to try to find some more fun exercise to do (I’m already doing swimming as part of that) for when the motivation strikes me, but you need that baseline habit that carries you through for the rest of the times when you don’t.

This entry was posted in life on by .

Exercise for people like me

I have a history of failing to exercise, and as a consequence am a bit out of shape.

A few years ago I managed to get in shape through means of a personal trainer. After about a year and a half of that I was feeling much better about myself – both in the sense of how I looked and how I felt.

The whole experience was awful. It was expensive, it was painful, and in the long run it just convinced me that I hated exercise even more than I’d previously thought I did. So when I moved away from the company that put me in the area of that personal trainer I lost all motivation to go to the gym. I then spent the next two years losing all that fitness I’d managed to build up at great pain and expense.

I’m now trying again, and this time I’m reasonably committed to not back-sliding. I’ve been tinkering with how this works and I think I’ve hit on an approach that works for me. I thought I’d share some of it in case others have similar problems.

It’s all centred around the basic principle that the single most important thing of an exercise program is that you keep doing it. A minimally effective exercise program that you’re doing can be turned into a more effective one. An exercise program that you’re not doing probably won’t be. Moreover, an exercise program that is great for you but you stop doing after 6 months is much worse than one that is pretty good for you but you’ll keep doing for the rest of your life.

I’m hoping that in the long run I’ll manage both of course, but if I can stick to pretty good for the rest of my life I’ll be OK with that.

Basic principles

You’re going to arrange this as if you’re going to be doing it for the rest of your life. This involves making it into a habit.

Obviously for me “make it into a habit” means “put it into Beeminder”. I recommend this as an approach, but it’s not necessary. A diary, or a recurring calendar event, probably work just as well if you don’t need the kick from Beeminder to help you stick to it.

My current goal is to try to get in about 3 sessions of 40 minutes each on Monday, Wednesday and Friday. This seems to be a good schedule, but I’m not really sticking to it yet – I mostly manage to make it Monday, Wednesday and Friday, but I’m not really up to 40 minutes. I seem to be averaging more like 30. That’s OK though – I started at much less than that and was struggling to make it to two half hour sessions a week. The idea is to work up to it. Don’t try to do more time than you can really bring yourself to do – start with something you can fit in, when that becomes normal and habitual increase it slightly.

The second stage is to prevent a rapid burn out. I don’t know about you, but I get… enthusiasms. If I start doing a thing I’ll basically go “Woo, I’m doing a thing. I must do the thing more. Let me do lots of the thing”. In exercise this manifests as my pushing myself way too hard, making some good initial progress and then hitting a wall. I then get dispirited and stop doing it.

So, step 1 is to not do that. I know I can make progress. Partly because I’ve done it before, and partly because well bodies are basically designed to be able to make progress at this. I’m not so uniquely bad at exercise that I won’t make any improvements. So, secure in that knowledge, the trick is to make steady progress.

What does that involve? It involves doing things that are easier than you think you can do. The exercise program should be pitched at basically one tiny notch above “too easy”. Sure you can do that level of weight? OK. Cool. Now take 5 kilos off it. Sure you can do that number of pushups? OK. Do about 2/3rds that (actually for me this manifests in the fact that I’m doing the 100 pushups program. I’m confident I can easily do 10-15 pushups, but instead I’m starting myself on the easiest version of the program and repeating each week. I have a history of trying this program and hitting walls). Once this level has gone from “I can totally do more than this” to “this is embarrassingly painfully easy” you can make it harder.

There are a couple reasons for this.

The first is that if you constantly push yourself, it will hurt. Especially the next day. You might be OK with that, but I’m not. Pain is rubbish, and if I’m going to the gym often enough this will mean that I’m spending about half my life in pain. If anything is going to convince me I hate exercise, that will.

(I know you’ve heard no pain no gain. It’s macho bullshit that has no useful grounding in biology. Your muscles will improve fine without constant agony).

The second is that it stops you hitting a wall. What I’ve found in the past is that the degree to which I can push myself does not improve as fast as my baseline strength. If I’m constantly pushing myself to my limit then my strength will improve, but each time I increase my strength the rate at which I can increase my strength will drop significantly. This will cause frustration

Finally, we’ve already established that you’re here for the long haul. It doesn’t matter if your progress is a bit slow because you’ll get there in the end, and when you do you’re much more likely to stay there.

Getting started

Step one is to find a gym to go to. You can do this at home if you like, but I’ve found having a place which puts me into exercise mode really does help.

You’ll need a program design. For this you probably do want a personal trainer, but only for a session or so, to design a custom program for you which will be exactly like all the other custom programs that they’ve designed for everyone else. They can show you some good exercises, give you a basic framework to fit everything into, etc. Make sure to ask them what exercises are actually for.

Now you’ve got that program you can basically throw it away.

Well, not throw it away, but basically redesign it to actually fit your needs.

First, take all the exercises you hate, and replace them with something vaguely similar you don’t hate. You don’t need a good reason for hating the exercise, there are just going to be some you don’t like. That’s OK. Replace them. Do some searching online to try to find equivalent exercises that you’re less likely to hate (Example: I really hate situps. Turns out I think leg raises are perfectly fine. I don’t really know why. I also hate plank and have no problem with push ups).

Will this result in a sub-optimal program? In one sense, yes: You’ll probably hate some really good exercises and lose out a bit by not doing them.

In another, more important sense, no: If you hate your workout you’ll resent doing it, you’ll do it less, and then you’ll stop. A slightly sub-optimal workout that you do is infinitely better than a great work-out you don’t.

Also figure out which bits of the program you want to skip at first. Chances are your personal trainer will have over designed for you. Personal trainers are like estate agents for exercise: “I’d like a half hour session design” “OK here’s one that will take you 45 minutes. It’s got a really nice view of the lake”. They’re probably right about how much time you should be doing, but you’re almost certainly going to want to work up with that.

So now you’ve got a gym, you’ve got a plan. Go to that gym.

While you’re going to that gym… Figure out everything that makes it annoying for you to go there. Try and find the best way to fit it into your schedule, try and find all the other things that get in your way (e.g. for me it was bringing the gym kit to work, so I changed things around to just have enough clothing in there for several visits to the gym and only do a wash when they’d all been used. The whole process became much more pleasant).

My program

You shouldn’t follow my advice here. I can figure out the bits about motivation, and some of the bits about biology, but exercise design there are probably way more competent people than me and if you can find them let me know. There are lots of people who say they know what they’re doing but I struggle to take the “BECOME RIPPED IN JUST SIX MONTHS” posturing seriously.

But, for the sake of illustrating what this looks like in practice, here’s my current program:

  1. 3 minutes on the exercise bike to warm up. I tried replacing this with skipping today and it basically destroyed me. Skipping is hard. I’m going to try to figure out how to integrate that into my workout, but I haven’t yet.
  2. Do the current week of the hundred pushups program (I’m currently on my fourth week, which is actually the second week for the second time)
  3. Do a super-set of 3 sets of 10 barbell squats (no weights on the barbell right now, it’s just the bar. I think the bar is about 10kg but I’m not really sure. It might be more than that) with 10 bent leg-raises.
  4. Do a super-set of 3 sets of 15x 10kg barbell bench press with 15x35kg underhand pull-downs.
  5. Do about 15 minutes on the exercise bike.

To be clear again: I don’t know what I’m doing and you probably shouldn’t follow the same program as me. I mean, eh, if you want to you can, it’s probably not awful, but don’t take this section as advice.

Also, does this program sound too easy? Do you feel like making fun of me for my puny bench press? If so, I don’t think you’ve been paying attention to this post…

What next?

What next is simple: You keep this up forever, because nothing else is going to work.

Keep increasing the amount of time you spend in the gym until it hits the point you want to achieve. When exercises get too easy, make them a bit harder. Keep practising until they get easy again and repeat the process.

Does it work? I don’t know. By all rights it should, and based on initial results it seems to be putting me in the right mindset and I’m hopeful that I’ll be able to stick with it, but ultimately I’ve only been doing it for about a month and a half and I intend the rest of my life to be a lot longer than that. I’ll keep you posted as to how it goes.

This entry was posted in life on by .

How hard can it be?

There are two types of people in the world:

  1. People who assume jobs they haven’t done and don’t understand are hard
  2. People who assume jobs they haven’t done and don’t understand are easy
  3. People who try to divide the world into overly simple two item lists

Joking aside, there’s definitely a spectrum of attitudes in terms of how you regard jobs you don’t understand.

Developers seem very much to cluster around the “jobs I don’t understand are easy” end (“Not all developers” you say? Sure. Agreed. But it seems to be the dominant attitude, and as such it drives a lot of the discourse). It may be that this isn’t just developers but everyone. It seems especially prevalent amongst developers, but that may just be because I’m a developer so this is where I see it. At any rate, this is about the bits that I have observed directly, not the bits that I haven’t, and about the specific way it manifests amongst developers.

I think this manifests in several interesting ways. Here are two of the main ones:

Contempt for associated jobs

Have you noticed how a lot of devs regard ops as “beneath them”? I mean it just involves scripting a couple of things. How hard is it to write a bash script that rsyncs some files to a server and then restarts Apache?? (Note: If your deployment actually looks like this, sad face).

What seems to happen with devs and ops people is that the devs go “The bits where our jobs overlap are easy. The bits where our jobs do not I don’t understand, therefore they can’t be important”.

The thing about ops is that their job isn’t just writing the software that does deployment and similar. It’s asking questions like “Hey, so, this process that runs arbitrary code passed to it over the network…. could it maybe not do that? Also if it has to do that perhaps we shouldn’t be running it as root” (Lets just pretend this is a hypothetical example that none of us have ever seen in the wild).

The result is that when developers try and do ops, it’s by and large a disaster. Because they think that the bits of ops they don’t understand must be easy, they don’t understand that they are doing ops badly. 

The same happens with front-end development. Back-end developers will generally regard front-end as a trivial task that less intelligent people have to do. “Just make it look pretty while I do the real work”. The result is much the same as ops: It’s very obvious when a site was put together by a back-end developer.

I think to some degree the same happens with front-end developers and designers, but I don’t have much experience of that part of the pipeline so I won’t say anything further in that regard.

(Note: I am not able to do the job of an ops person or the job of a front-end person either. The difference is not that I know that their job is hard therefore I can do it. The difference is that I know that their job is hard so I don’t con myself into thinking that I can do it as well as they can. The solution is to ask for help, or at least if you don’t don’t pretend that you’ve done a good job).

Buzzword jobs

There seems to be a growing category of jobs that are basically defined by developers going “Job X: How hard can it be?” and creating a whole category out of doing that job like a developer. Sometimes this genuinely does achieve interesting things: Cross-fertilisation between domains is a genuinely useful thing that should happen more often.

But often when this happens it’s at the expense of the actual job the developers are trying to replace being done badly, and a lot of the things that were important about the job are lost.


  1. “Dev-ops engineer” – Ops: how hard can it be? (Note: There’s a lot of legit stuff that also gets described as dev-ops. That tends to be more under the heading of cross-fertilisation than devs doing ops. But a lot of the time dev-ops ends up as devs doing ops badly)
  2. “Data scientist” – Statistics: How hard can it be?
  3. “Growth hacker” – Marketing: How hard can it be? (actually I’m not sure this one is devs’ fault, but it seems to fit into the same sort of problem)

People are literally creating entire job categories out of the assumption that the people who already do those jobs don’t really know what they’re doing and aren’t worth learning from. This isn’t going to end well.


The main thing I want people to take from this is “This is a dick move. Don’t do it”. Although I’m sure there are plenty of jobs that are not actually all that hard, most jobs are done by people because they are hard enough that they need someone dedicated to doing them. Respect that.

If you really think that another profession could benefit from a developer insight because they’re doing things inefficiently and wouldn’t this be so much better with software then talk to them. Put in the effort to find out what their job involves. Talk to them about the problems they face. Offer them solutions to their actual problems and learn what’s important. It’s harder than just assuming you know better than them, but it has the advantage of being both the right thing to do and way less likely to result in a complete disaster.

This entry was posted in life, programming, rambling nonsense on by .

Putting word counts into beeminder

As I promised in my post about subsuming myself into the hive mind, I’m now using beeminder to try and keep myself blogging. I’ve set up a goal here.

I’ve ended up using word count as the metric rather than number of blog posts because:

  1. It will prevent me from weaselling out with ridiculous tiny blog posts like this one.
  2. It was easy to do

I’ve currently set it up at what right now seems like a rather measly 400 words per week (a typical blog post for me seems to be anywhere between 400 and 1500 words), but given that the whole point of this is to provide a lower bound while I’m under pressure not to blog this seems reasonable. I have however retroratcheted it right before writing this to get rid of the 70 days of buffer the last couple weeks of blogging gave me.

If you’re interested, I’ve open sourced the code I’m using to automate this. It’s pretty trivial, but it may save you the hour or so it took me to figure out how to write this (still well within the xkcd time allotment, but only if I really believe I’m going to keep this up for 5 years).

This entry was posted in Admin, life on by .

We are borg

So those of you who follow me on Twitter / are friends on Facebook already know this by now, but I figured I’d make an announcement here for the remaining 10 of you who read this via RSS (i.e. the correct way). I’d also like to talk about some of my reasoning, and some of the implications.

In June I will be joining Google (specifically the Zurich branch) to work on Knowledge Graph.

This move has not been universally popular. There are some things that Google does that have failed to endear themselves to a number of people I know (some of these I agree with. e.g. I’m definitely not a fan of the real names policy).

But… you know, they also make really good software. I don’t really acknowledge the concept of “more good than harm”, but Google do a lot of good, and I can’t help but see improving the quality of access to information for billions of people as both unambiguously good and more useful than any software I’ve worked on to date. So I’m pretty excited about that.

There is however one thing that I am legitimately quite concerned about in joining Google though: My primary experience of people joining Google is when blogs I read get a blog post saying “I’m joining Google, but don’t worry: I won’t fall into a black hole like everyone else who joins Google. I’ll definitely keep blogging” and then maybe they write one or two blog posts shortly after that and the next one after that is the one several years later where they announce that they’re leaving Google to move onto other things.

Well, I’m joining Google, but don’t worry: I won’t fall into a black hole like everyone else who joins Google. I’ll definitely keep blogging.

A colleague (I forget which one) said the other day that he wasn’t worried because he was pretty sure no power on earth could stop me from blogging. I’m not quite so confident. There have been some pretty long periods (I think the longest was 6 months?) in the past where I’ve not blogged at all, and it wouldn’t be surprising if I had another one.

I’d quite like that not to happen, but I’m not under any impression that I’m in some way special. Lots of other people who wanted to keep blogging also stopped.

One way in which I’m a bit special is that most of those blogs were purely technical, and I know that part of what stops Googlers from blogging is that it’s difficult to blog about technical things when you’re immersed in the Google ecosystem and can’t share the details without extensive clearing from the legal department. I on the other hand blog about plenty of other things – maths, feminism, fiction, voting, etc. As far as I know it should still be fine to keep blogging about all of those.

But I don’t really feel confident that that’s enough. I still haven’t entirely convinced myself that beeminder is useful (I’ve been using it to keep me reading books, but I’m not sure how much that’s helping vs just intention), but I figure I might as well give it a try. Starting beginning of May I’m going to set up a beeminder requiring me to write at least a blog post every two weeks (my normal blogging rate is more like one a week, but I figure I should give myself some slack. If I end up vastly exceeding this I may raise the rate. If this turns out to be intractable due to reasons, I may lower the rate to one a month, but I don’t think I’ll have to do that. Worst case scenario you’ll get a whole bunch more book reviews, half-baked fiction and a few “So, Switzerland. What’s up with that?” posts.

This entry was posted in life on by .