Archive for May, 2010

Losing weight scientifically

If you are overweight, then losing weight is one of the ultimate ways of being proactively lazy.

If something as simple as not eating as much can postpone years of poor health (and all the inconvenience and costs this entails), it’s a no-brainer really. If you wish to persue this worthwhile goal, I can highly recommend the Hacker’s Diet, which is what I am following.

The Hackers diet, written by John Walker (founder of AutoDesk, makers of AutoCAD) is a very logical, technically minded look at the human body as a “black box”, with calories going in and exercise and metabolism burning them out. That’s it. No balancing food groups, eating the “right” food etc; Just. Eat. Less. (Than you burn)

The core ideology is that there are some lucky people born with (or have developed) a knowledge of when to stop eating. I do not posses this. ūüė¶

So what can we do? We can use our brains to substitute this missing innate ability.

Walker suggests plotting your weight on a graph, but unlike so many others, he compensates for the wild 75% water retention inaccuracies with a moving average technique, so that the trend line is almost exactly your “true weight”. Luckily there is a fantastic website that does this for us,

My graph is public (yours don’t need to be) here:

The blue line is your “true weight” and the red and green points above and below it are the actual weight readings, you can see they vary wildly! But the blue trend line is on a slow, steady march downwards.

What about Exercise?

As you’ll read in the Hacker’s Diet, you don’t exercise to lose weight, you exercise to get fit and live a healthier life. Half an hour of running, for example, burns 300 calories. Which is only slightly more than a Mars bar (260kcal). It’s far easier to put down the fork ūüôā Use that time more productively for now. (Sure, a solid hour burns 600, but who runs for a solid hour? You may be in the gym for an hour, but most of that time is taken up with changing, warming up, showering and other¬†distractions)

I am not doing any special exercise at the moment, I find that would increase my appetite (it would increase my metabolism too, however) and who has time to exercise?

However, a few months down the line, when I am settled at a healthy ~500kcals per day deficit (one pound a week loss: a pound of fat stores about 3600kcal) I recommend simple weights and cardiovascular-based workouts at home – no need to stump for a gym membership.

As for a balanced diet? It’s all optional, all the body cares about is calories, it doesn’t care where it gets them from. By all means try to eat a balanced diet, but you are in no danger of getting too little of any group in the modern age that we live. I would be careful of most protein from meat, it’s high-cal. The bottom line is: Just eat less of what you love.

Read the short PDF book, and use the website. I’ll see you in 6 months when I’m 30 pounds lighter!

DISCLAIMER: Don’t be stupid.

EDIT 30/06/10: Click here for part II.


Get stuff done: Part II

In the first part of this series on GTD I told you about task processing and breaking down into context ands projects. Now I’m going to fill in the gap, what about incoming ‘stuff’ that are not tasks? Stuff that you shouldn’t forget (social security number, company policy changes etc) but doesn’t need to be actioned but only referenced.

This is your information file. This file can be stored in anything from an alphabetical file cabinet to a fully-indexed database. Which leads me on to the second part of this post.


Tracks /

I am going to talk about two tools that I use in my current GTD sytem. Tracks and Springpad.

Tracks is a Ruby on Rails webapp dedicated to managing your GTD tasks, managing contexts, projects and deadlines. It integrates with google calendar (or any calendar that can subscribe to an ICAL link) and looks awesome.

Tracks also has a fantastic API via RSS, ICAL and human-readable TXT. It’s awesome to just pull down your “at work” todo list on the console in text format with a simple cURL!

For those of us who dont want to (or can’t) host our own version of Tracks, I use the fantastic free version hosted at Don’t forget to check out Shuffle, the Android-based task manager with full Tracks sync!


Springpad is very similar to Evernote (My pervious information system) in that you can write notes, tag them and search throughout the notes. Where it differs is in the richness of the data. Evernote can make text notes or accept OCR’d image notes, and that’s it. Springpad has special types for foods, CDs, DVDs, task lists, shopping lists, products (looked up from Amazon), contacts (looked up from facebook & other services, Movies (IMDB’d) and even upload files (It also does notes). In a word, it is¬†phenomenal! Also Like Evernote, it has a bookmarklet clipper, I use it to store all my bookmarks a-la too!

So there you have it, after processing with the four Ds, I put tasks into Tracks, hosted on, and information into Springpad. All the stuff externalized thusly, I can relax, safe in the knowledge that my systems will remember everything that I find it so hard to.

What tools do you use, Remember the Milk? Evernote? Paper?! I’d love to hear about it in the comments.

Get stuff done: Part I

I am not blessed with good powers of memory. I would often miss important events and forget information. A lazy person would just accept this and blame it on “my poor memory”. However, this would cause such problems throughout life – what a¬†hassle!

Like many of my peers, I use David Alan’s Getting Things Done (GTD) methodology to help organise my life.


GTD is a form of Active Externalism (As discussed by Andy Clark & David J. Chalmers in The Extended Mind) where the central¬†tenet¬†is that the brain is terrible at remembering information. I can hear you now: “What are you talking about, Tris, the brain is the most powerful computer on the earth!” and you’d be right, but only in processing is the brain superior. Take a piece of paper, for example. This paper will record whatever you write on it for¬†millennia¬†(in good conditions), whereas the brain will forget important information, birthdays etc. so easily.

Alan identifies the two biggest drawbacks of keeping everything in your head:

  1. As mentioned before, paper stores information forever.
  2. Even if the brain has remembered the information (I’m sure you all know your mother’s birthday, for example), it might not yield this information in a¬†timely¬†manner (Only when you read the date on the calendar do you realise it is too late to post a card!)

To solve this, Alan recommends first externalising all information – get it out of your head and on to paper, or in emails, or a todo item – whatever. Put all of that information in a central inbox (physical or virtual). This means that everything that requires your attention is in one place.

Then go through each item sequentially and follow these four rules:

  1. DO. If it takes less than 2 minutes to action the item, do it there and then. If not, continue to the next step,
  2. DELEGATE. Can some one else do this? If not,
  3. DEFER. Is this action too big to do now, or is something you need to do later? Defer it.
  4. DELETE. Not everyone remembers this one, it’s one of my favorites. Most information we receive is junk. Don’t give it another thought, hit the DEL key.

Of course, some stuff that comes into our inboxen will be just “information”, stuff that doesn’t need to be actioned, but we should keep for reference.¬†Receipts, telephone numbers addresses etc. This should be put into an information file, ideally indexed or searchable in some way so that information retrieval is quick and painless. I will¬†discuss¬†this in Part II.

At the end of this processing, you should have a smaller inbox. You will have done a few simple tasks (post that letter, ring that guy),¬†delegated¬†tasks to someone (I also consider using services as¬†delegation, here’s an example: I’ve been meaning to buy some more RAM for my computer for ages, it’s been in the back of my mind all the time, and in the fore when I’m using Windows. How long did it take me to order yesterday? 1 minute.¬†Delegated. Now it’s Crucial’s problem.)

You will now have a list of items that need to be actioned, a task list or some emails telling you what work needs to be done. It’s time to break those up into contexts.

Contexts are a very simple, yet smart, idea in GTD. By putting the tasks into lists arranged by what context is needed to¬†fulfil¬†the task (At work, on phone, Internet, etc,) you immediately can clear stuff out of your mental scope depending on where you are. When you are at home, you just need to look at the “at home” context. You are not bothered by tasks like “Write TPS Report” because they are¬†irrelevant¬†in your current context. This takes a load off your mind.

At its simplest state, GTD can be 80% effective with just these rules.

Stuff -> Inbox -> 4 Ds -> “Contextify”

But the last step is to put¬†related¬†tasks into the same project lists. This will then allow you to look through the project list and decide which is the “next action”. Knowing with certainty what is the next step will allow you to filter all your information into a tiny list of all the next action in your current context. Because this only shows you what you can do, you mind is clear to focus on these few tasks alone.

Stay tuned for the second part, where I’ll talk about the tools I use to implement GTD.

Note: This is my take on GTD, of course, Alan has plenty of other tips and tricks in his methodology, but I believe I’ve covered the basics. Let me know if I’ve missed anything you consider vital in the comments!

Photo courtesy of gilderic

Unnecessary complexity?

So I’m working on a project at work that recieves data in the form of a URL, parses it and saves it to a database.

The previous version of this Python script is very simple, using raw sql to save down the data to the database. My redesign includes SQLAlchemy, a Python ORM/DAL. Many people would say that for such a short script this is overkill. And on the face of it, they would be right.

Lazy Cat

However, as the system evolves over the course of time, the simple SQL approach will be less and less suitable, and the benefits of an ORM framework will be more and more apparent.

A lazy person would not do anything extra, and hack out a quick script that would be very brittle to changes in the database engine, or environment. For example, if we migrated at some point in the future away from our current engine to PostgreSQL (for example), some of the sql syntax may change and break the code, requiring further tweaks and debugging.

A Proactively Lazy person knows that with a little extra effort now (Learning SQLAlchemy’s syntax) many problems can be avoided in the future.

This applies not just to the database framework, of course, but documentation and testing. Both make your job easier in the long run!

Photo courtesy of ~fb~

Screen Fudge: A definition

Parts of the UI that steal precious screen real-estate from a window’s main pane.
Some guy:
“Check out all my firefox extensions!”
“Wow, how can you do any actual web browsing with all that screen fudge in the way?

Proactively Lazy blog launched!

Hi guys, my name is Tristram Oaten, and I’m a Software Developer, living in London, UK.

I’m going to use this blog as a log of how I *attempt* to achieve programmer nirvana: proactive laziness!

I’ll sign off now, as I need to get the domain sorted, and strip out a lot of the screen fudge from this theme! Talk at you soon,


Error: Twitter did not respond. Please wait a few minutes and refresh this page.


  • 1,492 hits