MyZone, MyJob and MyHeart

As a small step back onto the exercise bandwagon, I ordered a MyZone heart rate-monitoring belt and associated watch. (They sent me a $70-off link if anyone wants to buy one. I don’t believe it kicks back to me; I hope it kicks-back to my gym).

Like the MeasureUp DEXA scan we take at the beginning and end of every F45 eight-week challenge, the idea is that “you get what you measure”. MeasureUp have that written on the side of their van. MyZone go with the shorter and more pithy “Effort rewarded.”

The same idea shows up a lot, it’s considered a “business truism” according to brief research using Google. Certainly when we started looking at Scrum and Agile/Lean at work, this came up a lot.

I mean “You get what you measure”, not “Effort rewarded”. The latter is a Dilbert comic:

 - Dilbert by Scott Adams

I tend to pull this one out when we’re talking about communication, not salary reviews.

In Agile, it was a warning to be careful not to measure the wrong thing (e.g., effort undertaken), because we would end up optimising for that thing rather than pursuing our real goal (i.e., value delivered).

So unless this “truism” is in fact false, there must be an actual cognitive basis for it. I was unable to find anything relevant on this handy Cognitive Bias Cheat Sheet, but an observation I saw somewhere else is that this works because human brains are very good at releasing dopamine when we achieve something or make progress towards it, and putting numbers on a thing makes it possible to achieve.

It’s much easier to see progress towards “Lose 10kg of body fat” than it is towards “Be healthier”. I would have achieved the latter half-way to the 10kg, but you can’t observe that the same way.

F45 Training (the gym franchise I attend) runs a regular eight-week challenge as I mentioned above. They have a large focus on measuring your changes at the beginning, the middle and the end. It’s from this that I have done the DEXA scans, and also been encouraged to purchase the MyZone equipment. Because these things are pricey, I’ve hopefully also engaged the Sunk cost fallacy, which should help me stick with the program, or even return after taking a period off, whether due to travel or sheer laziness.

I’m not sure if attempting to trigger the Sunk cost fallacy in myself is considered Precommitment or not. I’m also not sure if it works when you do it deliberately…

The “eight-week” part is quite interesting. I’m not sure where it comes from, but a lot of fitness plans, fitness bootstraps, and general “Get off the couch” programs will be eight weeks long. My theory is that someone’s observed that it takes that long for a habit to build, and that building a habit of fitness is good for you. My other, more cynical, theory is that someone’s observed that eight weeks is about as far as motivation based on “fear of my own mortality” will get you through an exercise program, before you drop off naturally, and that by limiting the program to eight weeks, it will be considered a success, with subsequent drop-off being attributed to one’s own laziness.


Why not both?

The F45 challenge is clever because it’s not a once-off thing, but you repeat it with four week breaks (longer over the solar New Year). Again, that’s either “give the body a rest” or “give time for regret to sublimate into motivation”, but I couldn’t say which. They encourage you to keep attending between challenges. And you get measured at both ends of the break, so you can see how far you’ve fallen.

So whichever mechanism they’re tapping in to, it should work.

Sadly, a combination of work travel, eating habit-breaking issues, and general laziness on my part meant that after a good result on the first challenge, my second challenge round was a write-off, and the third didn’t start so well.

Hence my decision to self-motivate by sinking more money into the program, beyond the already-expensive membership.

I spent the afternoon wearing my new MyZone band and looking at my new, ugly, watch to see my heart rate. I had confidently predicted a resting heart rate of 50-57 beats per minute, based on being measured in Viet Nam as having a slow heart rate, and taking my own pulse on occasion. I was hence shocked to see myself running at around 79bpm.

The best time to measure resting heart rate is first thing in the morning. So I’m going to take the belt home, and measure when I wake up. Hopefully I’ll get a more accurate, lower result.

Assuming that’s what will happen, why would my heartrate be so high at 1pm?

I’m not sure, but a few possible causes spring to mind:

  • At work, my zone is a standing desk, so I’m standing up all day, and hence more active than resting, which was the point of getting the desk.
  • I’m still stressed about my job, particularly wanting to get things done but have trouble making time, or working out what I can actually achieve in a day to get my dopamine hit.
  • My diet is still pretty poor, and while today was the day I got back into protein-heavy meals (protein shakes on work-provided cereal, wheat protein-based fake duck), there’s still one vice I haven’t shaken, which is possibly directly affecting my heart: Coffee, or the nearest substitute caffeine source I can stand…

Monster Zero Ultra

Really, it could be any of those…

To be brutally honest, I also ate a block of chocolate while writing this post, so it’s pretty clear my diet is not yet under control in any meaningful sense. Although at least I have not regained my daily chocolate habit, nor any real Diet Coke habit, except when travelling.

It’s really small steps that matter in self-improvement.

TBBle Scarry’s Busy, Busy Weekend

Often my weekends start out with grandiose plans of what I might try and get done.

This weekend (and the preceding evenings I guess) saw me produce a Wine patch I was only playing with out of interest but which turns out to affect Warhammer Online, although I didn’t know it until after I implemented the patch, and a WIne patch I’ve been meaning to prototype for a while using XInput 2 to fix a long-standing Wine bug which also affects Warhammer Online.

I also got back to watching Life On Mars, although I’ve only managed one episode and a bit. It’s pretty damned good.

I also decided to make gyoza, as I have fond, alcohol-supported memories of the last time I made them.

I managed to lazy my cooking even more than usual. I’m using a recipe I picked up last time I made them off a site called The Food Palate by Deborah Rodrigo, whom Google has since informed me is from Sydney but both that site and her personal blog appear to have fallen off the Internet, sadly. However, I distilled (with the help of Kirky at work) the ingredients down to this:

Ginger, chives, chili flakes, coriander, garlic, sesame seed oil, soy sauce for dumplings, and gyoza skins

Ginger, chives, chili flakes, coriander, garlic, sesame seed oil, soy sauce for dumplings, and gyoza skins

Adding half a kilo of lean pork mince, and about a half-hour, you get:

30 gyoza, freezer-bound

So not as bad as the ugly cake I made recently, but still not spectacular. And unlike the cake, I don’t yet know if these turn out to be poison or not.

I expect that they’ll be delicious, and not even slightly poisonous. And unlike my cake, I’m not going to try to share them with anyone. ^_^

It could be worse, at least I seem to have not managed to poison my housemate’s lizards, Prime and Grimlock, whom I’ve been feeding while he’s away this weekend. I’m not sure how I could get “put grasshoppers into the box” wrong, but I don’t think I did. I think they’re pretty neat names for lizards, reflecting Mick’s inner geek, and his outer geek, although Prime seems to be larger than Grimlock which is to the best of my knowledge the wrong way ’round.

I was going to try and leverage in a rant about characters in children’s books with alliterative names at this point, and observe that one of my favorite authors as a young child, Richard Scarry happened to avoid that, but upon actually looking him up, I realise the characters whose names I’d forgotten quite often had alliterative names. The characters I remembered still had non-alliterative names, so it’s not as bad as some authors I can’t be bothered remembering, but I’ll chalk that one up as being disappointed by a childhood memory.

A less disappointing childhood memory turns out to be Piers Anthony‘s Incarnations of Immortality series. I read the series when I was quite young, and I’m only re-reading the first one at the moment, but it reminds me how good a writer he is, and why I loved his books so much as a child. Also because he’s alphabetically early on the shelves. I don’t know why I seem to do that. I think when I’m picking a new series, I start at the beginning and go until I’ve chosen one. So that favours the alphabetically early.

I’ve managed to get a whole bunch of reading done recently, which is good. Sadly, Borders now wants me to pay $7 on a $14 book to order it in from overseas, and it turns out most of the series I’m following keenly enough to actually order books are on that list, so I may end up having to do an Amazon order. Which is annoying, because I’m also looking for some DS games: Ace Attorney: Trials and Tribulations appears to be discontinued in Australia and the US, and Impossible Mission never seems to have been released here at all. Along with wanting Race on DVD, I have a fair bit of overseas shopping to do, and the local financial climate is not exactly conducive to that. -_-

Anyway, the above is my documentation supporting why I should not be left alone for days at a time. ^_^

Edit: Fix images after changing hosting.

Self-reflection by the light of my range hood

Spent too much time home alone this long weekend… So I made cake.

Ugly cake

Ugly cake

The bowl cleaning was delicious, so I’m sure it’ll taste good. Experience suggests no one else wants to eat my baking (on the grounds it’s usually ugly, and I probably don’t strike people as someone whose infrequent cooking is of a particularly edible standard) so I expect I’ll get it all to myself over the week.

I’d like to suggest this is an allegory for my love life, but I’m not sure that I’m using the word allegory correctly there.

I also stocked up on the ingredients for fudge (family recipie, bears little resemblance to actual fudge) which is much harder to produce ugly.

If anyone cares to leave a comment as to how big a “dessert spoon” is, that’d be most appreciated. I got 10g from the dessert spoons in my drawers, but I’m not totally sure it was enough, and I’d previously suspected (until I tried my new kitchen scales this evening) that it was 20g. Then again, I believe a tablespoon was 25g, and Calorie King informed me ealier today that it’s about 8g.

Oh yeah, I finally bought kitchen scales. And some more video games. Looking for “Ace Attorney Phoenix Wright: Trials and Tribulations” but I can only find the first two games and the fourth (of which I have the second and fourth already). Reportedly was released in Australia in 2007, but only hit Europe in 2008 due to a ratings blockage.

In order to put sprites on screen, you must first compile the universe

I’ve just spent my weekend attempting to get pyglet or pygame going on Python for Windows AMD64 (2.6b2).

The process uncovered bugs in pygame and python, including one which is fixed in 2.6b3, although there’s no Windows builds of that version yet. Also, you can’t currently rebuild Python under mingw. Still some patches to go: pygame tries to build a safe version number for bdist_msi however it gets it wrong in release, I suspect the rules have shifted slightly in 2.6…; and whatever else I’ve modified in my build trees that needs to be sent upstream.

Mingw64 was able to build stuff now (thanks to @NightStrike on the #mingw-w64 IRC channel) but Python’s pretty insistent that I build against msvcr90 and mingw64 doesn’t have an import library for that yet (mingw32 does, but mingw64’s runtime collection is only up to 3.11 or so). @NightStrike informed me that pexports has been ported to amd64 on the mailing list, but I haven’t dug it up yet, but that should allow me to link to msvcr90 from mingw.

Either way, I now have a modified win32/Makefile.gcc for zlib which doesn’t use dllwrap (deprecated since 2002) and works with mingw64 nicely.

After mingw64 worked but I hit the requirement of msvcr90, I grabbed the Windows SDK and the DirectX SDK. Once you know to run dx_setenv.cmd in the Windows SDK cmd window and to use vcbuild /useenv (otherwise it’ll ignore the results of dx_setenv.cmd) things seem to just work. You need to set DISTUTILS_USE_SDK in your environment for Python to trust your compiler version choice, too.

Converting SDL‘s Visual C projects and solutions was easy. Change platform from win32 to x64, change any /MACHINE: entries from I386 to AMD64. I should submit that change to SDL, once I convert and test the examples as well. SDL also builds with mingw64, but I suspect it doesn’t produce a DLL at the end right now.

The Windows SDK 6.1 includes msvcr90 and the Visual Studio 2008 beta 2 toolchain, so that works for Python extensions.

However, after building everything fine, initialising pygame fails:

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\root>python
Python 2.6b2 (r26b2:65106, Jul 18 2008, 18:24:10) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
>>> pygame.init()
(3, 1)
>>> pygame.get_error()
'DirectInputDevice::SetDataFormat: Invalid parameters'

The Internet knows nothing about that particular error in reference to pygame. Since I had to install the DirectX SDK to get this far anyway, I’ll see what that produces in terms of debugging output, when I get back to it.

As for pyglet, which started me on this whole mess? Upstream says it’s not supported under x64, don’t bother submitting bugs. Before I found that, I tried to work through their but pyglet.window.Window() came back from OpenGL with “invalid operation” calling glGetString(GL_VENDOR). The whole exercise with pygame came about from me trying to find a way to test if PyOpenGL was having similar problems as both PyOpenGL and pyglet use opengl via ctypes.

OpenGL on windows is hard. There’s a huge amount of setup needed to get a context to be able to call openGL commands, and PyOpenGL doesn’t provide that code. PyOpenGL’s sample code relies on pygame to do this… -_-

And to think this all started because I wanted to prototype a game idea I had rather than just telling my work colleagues about it and hoping for the best. Oh well, maybe next weekend.

It does warm my heart to know that despite being a professional video games programmer I can still come home and spend a weekend doodling around programming.

I started watching Cheap Love, only two episodes in but I’m pleased to see that already the main love pairing have already met and realised they’ve feelings for each other. Most J-dramas I watch make us wait until half way through the season to let the characters know what’s been painfully obvious to the audience since the opening titles rolled.

And in further good news, I’m down below 136kg. ^_^

My task for this week is to turn my barcode scans of my book collection into something I can access while I’m in Melbourne next weekend so I don’t have to call home from Melbourne book stores again to get Mick to look at my shelves for me. I’ve also given my mother the book-barcode-scanning bug, but I imagine she’ll buy some software off the Internet to manage the collection. Recommendations appreciated. ^_^ (Obviously, if you want to recommend such software for me, go ahead as well. But my requirements are somewhat pathological)

Oh, and I’m in Melbourne next weekend for Medleys. Taking younger sister (they’re both younger, I’m talking about younger younger. Elder younger will be on stage) and hopefully catching up with Phil.

Been eating “Instant Stew” this week. Finally refined recipe down to:

  • ~1.2kg of mixed heart-smart meat, diced
  • 1kg bag of Home Brand mixed frozen vegetables
  • 1 tin (400g) diced tomatoes
  • Random spices as I find them in the cupboard

Combine all ingredients in crock pot. Put on before work, arrive home after work. Makes 6 lunch servings or 3 dinner servings, ~350 calories per lunch serving. I blame recent weight-loss success on this stuff.

Turns out that making stew, unlike Python games under Windows x64, doesn’t involve first creating the universe.

One less excuse

My mother pointed me at CalorieKing Australia which is a web site for helping with weight loss.

I’ll be using this to track my food intake and what little exercise I do. I’m quite hopeful, given its large-looking food database. So far there’s not much I’ve had to add (the kangaroo meat I’ve been eating the main thing missing, and their Home Brand range seems rather small. In the latter case, I’m picking the things I believe are the branded equivalents.

I’ll see how it goes, anyway. One of my weight-loss complaints was that it was all too hard to manage. This site has a menu-suggesting thing, and has an option to exclude all dairy items, so once I’m organised a bit and have gotten through the stuff in my cupboard, I might see how the suggested meals turn out.

It also lets you input nutritional targets and such, and provides some defaults, so I can get a good idea of my fat and protein intake (keeping them down) and my calcium intake (keeping it up). I was disappointed to see that the goat’s cheese I get doesn’t have a calcium value on the packet or the site, and it also about half my daily fat intake. So I’ll be drinking more of the chocolate VitaSoy drink, which turns out to be a healthier way of getting my 1g of calcium a day. (That’s a whole litre. I’ll have to start taking it to work again. Horrors! ^_^)

The only issue I have with it so far is that I have to add a food to my daily record to see its statistics. So when trying to work out what to have for dinner tonight, I had to keep throwing combinations at it until something came up that balance out well. That’s mainly because I had a pretty awful lunch though. ^_^

The site has a built-in blog system, but I don’t see an option to just auto-publish my meals. I’d like to do that… I’m not sure why.

Edit: Carefully hidden away in the account options, my meal diary is now online.

Edit: That’s not how you spell CalorieKing

All juiced out and nowhere to go

I’m out of juice

In other news… Finally upgraded the blog to WordPress 2.0.3 and Spam Karma 2.2r3. Also decided to celebrate with a new theme, blog.txt. It’s OK so far, apart from the title sizing… Dunno if I’ll stick with it yet.

The actual content of this post is twofold… I used CurlFtpFS (A FUSE-based filesystem) to update the site. I chose CurlFtpFS over Fuseftp because the latter consistently failed to handle vimdiff. ^_^

Happily, on Debian, it was easy to set up. m-a a-i fuse gave me the fuse kernel modules, and then grabbing the CurlFtpFS Debian package.

The main disadvantage is that you can’t see the FUSE-mounted share from my windows box over Samba… This may just be a permissions thing, as I can follow symlinks across filesystem mounts OK, although I didn’t used to be able to.

The other fold is that I finally started my exercise regime. Tonight, about a half-hour on Stepmania, for 14 three-foot songs and a four-foot song. I’m working alphabetically through the list of songs at three-feet, and then my last set of the three for the night is whatever I feel like. And tonight I was in a Bubble Bobble, そばかす and WITCH DOCTOR mood.

Most frustrating song of the night was Beyblade 2000 – Off the Chains, the BPM seemed to be tuned to the rappers, not the actual beats. On the other hand, most frustrating in a good way was Cowboy Bebop – Tank [Para Para mix], 307BPM of surprise steps. Fun. ^_^

Final good news, the author of the Top 10 posts plugins noticed my updates. I was linked from a blog that shows up in the WordPress Dashboard. ^_^

Meh, a few other things going on, I should be able to blog about them later this week. >_<

Edit: Back to Ocadia. Also, I bought juice. ^_^

Maginnis Magee

Light in Dark Corners: My Dad wrote this, and it’s really really good. I’ve enjoyed it immensely, and highly recommend it. ^_^
Syriana: The movie was actually really good, but I felt bad after seeing it. It’s a sad and scary world we live in, and that’s over here on the easy side of it.
The AppleCare Protection Plan turns out to be good for keeping my laptop running.Since putting this into place, my laptop’s not once dropped dead from overheating… I actually suspect if I’d configured the power settings properly this wouldn’t be neccessary.

AppleCare Protection Plan 2AppleCare Protection Plan 1

That’s actually the display box. We’re an Apple reseller of some kind at CBIT, but due to lack of a front counter while the construction work happens out the back, all the display boxes are in my offfice…

Oh, the pain… I’m sitting here working on this entry at home, and the damn thing overheats. >_< I prolly should add a temperature sensor output of some kind to my desktop… Or at least bring the AppleCare Protection Plan home with me…

At least, I’ve a belly full of dairy-free pizza. Good on Dominos for publishing their list of allergens. ^_^

Edit: I forgot to give this post a clever title… I think this one’s fitting. ^_^

Edit: Fix images