I've been meaning to finish this up and post it for a good while now. Despite the subject and time of year, this isn't a New Year's resolution post. I started my weight-loss diet in October and have pretty much reached the point where I can declare it a success and write about it in case it will help anyone else out there.
Why I started a diet:
Now that I'm doing it, of course, I can come up with all kinds of good reasons to stick with it, not the least of which is that I want to be sufficiently in shape to keep up with Will while he's crawling around the house. I want never to have to contemplate buying any larger size jeans. As a father, I want to be there for my son when he's my age and to set a good example for him. Et cetera. But apparently no reason of this type was enough to get me started.
Things changed sometime in mid-October when I stepped on my parents' digital scale to weigh first myself, and then myself + Will in order to get a reasonable estimate of his weight. I was shocked to see the scale read 213 before I even picked him up. I'd thought of myself as significantly overweight at 200 for the last year or so, remembered being uncomfortable at 180 when I gained 30 pounds back in college, but 213? Yikes! I must've been gaining a pound a week since we moved in August. That scale reading immediately scared me into eating less, and put me in the right frame of mind to start a diet for real.
Then, I ran across
this Boing Boing post and started to read and follow
The Hacker's Diet right away. With a name like that, how could it fail to get my attention? I'd never really dieted before, but what the heck. The guy went to all the trouble to write the book and put it on the web. It couldn't hurt to give it a read.
How it works:
It's calorie counting, pure and simple. To paraphrase the book, over time, any significant difference between calorie intake and calories burned becomes a difference in body fat and weight, to the tune of a pound for every 3500 calories. To start burning fat, you need to drop your intake to at least 500 calories below what you burn each day, and maintain that for at least three days. Naturally, the first three days are rather hunger-inducing; after that, when the body starts burning fat, the lower calorie intake is reasonably satisfying.
I started with an assumed burn rate of 2400 calories per day and figured I could be happy eating as little as half of that, which would get rid of about 1 pound every 3 days. I would guess I went from eating 2900 calories a day to eating 1200 calories a day practically overnight. I started leaving a measuring cup in my box of Wheaties so as not to sit around eating random amounts straight from the box all morning. I quit drinking chocolate milk (210 calories per cup), plain 2% milk (130 kcal/c), juice (100-160 kcal/c), Coke (100 kcal/c), Milo's sweet tea (90 kcal/c), and replaced them with plain instant coffee (2 kcal/c) and filtered water, not because they're so much more intrinsically healthful, but because caloric beverages simply mathematically would not fit into my daily intake. In the first week or so when I'd get to the end of the day and have a little calorie allowance left, if I was sufficiently hungry I'd have a cup of vegetable bouillon (15 kcal/c). I found it impractical to eat a single peanut butter cracker, which might be 50-100 kcal depending on how much peanut butter would fit on it. I picked up puffed whole grains as a snack, since something like puffed kamut or puffed corn is only 50-60 kcal/c. I take a multivitamin in case I'm short on anything important. But otherwise, I've been eating normal meals and snacks, only with sane portion sizes.
The book recommends meal planning, but I find it impractical when I don't know whose house or what restaurant I'll be at on a given day. Instead, I keep a daily food log, listing what I've eaten so far and how many calories I think it was. I find
this site useful for filling in the numbers for random foods (you don't need to bother with an account just to use it as a calorie reference). When I am hungry or it's just generally mealtime, I pick something based on how many calories I can afford at the moment. I've found that a big lunch leaves me short on available calories for dinner and evening snacks, so I've tended to pick a smaller lunch (e.g. 200-calorie turkey sandwich with 70 calories of potato chips -- it's not health food, just less food, and I'll have to worry about clearing my arteries another day) and distribute my intake in something like 200/400/400/200 sections over the course of the day.
I am finding the recommended serving sizes on food packaging to be quite useful for a change. Instead of eating as much chex mix as I possibly can, straight from the bag, I now get out a 1/2c measuring cup and actually measure out one serving (140 kcal). Pretty much all servings of chip-like snacks are 130-140 kcal, and that's usually enough to savor it and get the craving out of your system. It's also handy for things like sauces, when you want to know how much to account for per amount of salad / meat / what have you, often one serving of sauce per serving of food turns out to be just right.
Another thing I'm doing instead of strictly meal planning is making batch meals. For example, with a 9x13 lasagna-like dish of rotini / ricotta / sauce / italian sausage / mozzarella, it's easy to add up the total calorie content, and then geometrically divide the dish into reasonably-sized servings. In this case, the whole dish was 4243 calories, so I divided it into 12 servings of 353 calories each, then bagged & froze half of them. When I later reheated them, I didn't have to do the calorie math all over again thanks to the magic of the Sharpie. Speaking of which, I second the book's suggestion to take advantage of modern improvements in mass-produced frozen dinners - besides being tasty and nutritious, many are low-calorie and have a calorie count in large print on the box.
The book makes a pretty good case for using exercise to improve general health but not as a weight-loss method. If you'll recall, I was able to change my diet overnight to result in a 1200-calorie daily shortfall. If I had tried to do that with only exercise and no change in diet, I'd have needed to raise my calorie burn rate to 4100 calories a day. With some fairly vigorous exercise like stairmaster, nordictrack, rowing machine, etc., I can expect to burn maybe 500-600 calories per hour while using the machine, which is 400-500 calories above my burn rate for inactivity. That means I'd need to be doing vigorous exercise for 3-4 hours a day in order to achieve the same thing I'm doing in under an hour a day by paying attention to what I eat and doing a 15-minute workout.
For the workout, I'm roughly following the book's recommended plan. At first I tried the exact workout recommended, but I found it caused serious lower back pain. So I still do the toe touches, but in a sitting position. I still do sit-ups, but in more of a crunch position (thighs vertical and calves horizontal rather than with legs or feet flat on the floor). I still do leg raises, but never double leg raises, and I prop myself up on my elbows. I would just say it's useful to have a well-defined exercise plan, but you probably need more information about exercise than this book provides.
Because of its intended audience, the book spends a lot of time talking about feedback systems and how to use geek skills to help track and control weight. The basic point of the feedback discussion is that you need to have a target weight, and adjust your rate of weight loss or gain proportionally depending on how far above or below the goal you are. I'm now at the point where I'm approaching my target weight and am gradually adding calories back into my diet. I'll probably undershoot it (the book does not discuss the net expected weight change during the tapering-off period, so I'm guessing), but that would be a good thing.
Another bit of the book's geekery consists of using an exponentially weighted moving average to take the noise out of daily weight measurements. It's sort of like saying today's measurement is 10% likely to be correct, while yesterday's moving average is 90% likely to be correct, and then taking a weighted average of the two to get the expected value of today's moving average. I had a lot of fun with this concept, but wasn't particularly fond of the author's inflexible Excel spreadsheets. I didn't buy a reliable scale until over two weeks into my diet, so I had to enter fake data for the first half of November to get the month-based spreadsheet working. It requires a measurement every day and treats them as an abstract sequence of values to be averaged rather than a real time series. When it tells you your rate of weight loss, it's not trying to determine your current rate of weight loss, just the least-squares linear fit to your entire measurement history (or this month / quarter / year, but the point is it doesn't try to look for changes in the trend over time). The trend graphs also lag behind your actual weight somewhat, by roughly 10 days (which happens to be closely related to the exponential decay rate they use).
So, I wanted to figure out how to improve upon this system. I played with the math for a few days and settled on a linearly interpolated integrated exponentially weighted moving average instead. Yeah. One of those things that only I would be doing for the fun of it I guess. But when you're trying to will yourself to do something like losing weight, you have to find your motivation where you can. I came out with some PHP code like this:
/*
* data - series of measured values for which to compute trend
* times - measurement time of each data value
* r - decay rate of exponential weights
* e0 - difference between initial data value and initial trend value
*/
function trend($data, $times, $r=0.9, $e0=0) {
$lnr = log($r);
$trend = array($data[0] + $e0);
$e = $trend[0] - $data[0];
for ($i = 1; $i < count($data); $i++) {
// delta t, the time difference between measurements:
$dt = $times[$i] - $times[$i-1];
// slope/lnr, a linear interpolation factor for the current interval:
$sloper = ($data[$i] - $data[$i-1]) / ($dt * $lnr);
// integrated exponential weighted avg of linearly interpolated data:
$e = pow($r, $dt) * ($e - $sloper) + $sloper;
$trend[] = $data[$i] + $e;
}
return $trend;
}
I have a similar function that computes the local derivative of this one with respect to measurement time around each measurement, and I also track the moving average of the derivative, giving me a very good estimate of the current rate of weight loss. Woohoo. Now, to compensate for the lag of the trend graph, I find adding 1/(1-r) times the trend of the derivative works fairly well. Theoretically, I should also be trying to compensate for the lag in the second-order trend by looking at third-order trends, and so on, but I haven't gotten around to it yet. Accurate values for current rate of weight change are probably more important when you're trying to maintain a constant weight, where you'd want to know how much more or less to eat in order to counter a gradual trend. This is all pretty much a matter of geekery, though, because so far the graph of my weight measurements has made its trend pretty darn obvious to the naked eye. Which brings me to...
Results:
In the time since I bought the scale, I've definitely lost over 20 pounds (max reading = 196.5, most recent reading = 174.0). Extrapolating to the start of the diet, I must've started out around 205 or so and lost about 30 (my scale doesn't agree with my parents' scale due to the different time of day, amount of clothing, etc.). I've gone from tight 40-waist jeans to comfortable in a 36, and I fit into large t-shirts again as opposed to only XL. I'm breathing more easily and have lots more energy, partly due to exercising. The most unexpected effect is that I have my singing voice back! When I was eating more, and eating more fat, I often had the unpleasant sensation of gunk in my throat. (Though, as I'm finally about to post this, I'm eating 1800 calories a day and sometimes feeling the gunk).
Anyway, here are some
nifty graphs. Note the calorie numbers for today are off because I haven't had dinner yet.