iPhone games…

A co-worker recently got a new iPhone, and I since he didn’t have many apps on it yet, I thought I’ld send him a list of the stuff I had bought/downloaded and enjoyed. So, without any further ado, here are a few of my favourites, all available on the AppStore.1

Toy Bot Diaries. (The link is to the free version, but I bought the full version.)
Wheeee!

Galcon. (The link is to the free version, but I bought the full version.)
Whoa!

Line Rider. ($2.99, but c’mon, it’s Line Rider. How can you not get it? ;)
Aaaaaah!

Twitterrific. (Free, but only useful if you’re on Twitter. Which I am. As bwinton.)
Chat!

TimmyMe. (Free, finds the closest Tim Hortons to you.)
Caffeine!

Tap Tap Revenge. (Free, like Dance Dance Revolution, but for your fingers. I actually don’t play this much, but it’s free.)
Ba dum dum dum!

PapiJump. (Free. By the guy who made the world’s most addictive Palm game, SFCave.)
Boing!

Labyrinth. (The link is to the free version. I didn’t buy the full version of this.)
Easy now!

Cube Runner. (Free. I got this after watching someone play it on the subway.)
Whoo-ha!

Enigmo. ($4.99, but really impressive. Really, really impressive.)
Ahhhh!

That’s about it…


  1. As opposed to Jailbreak apps, which I’ve got a few of. They tend to be more productivity/programming apps, which I didn’t think he’ld be interested in. 

Home alone

As Amy mentioned in the previous post, her father passed away. So she’s gone out to Saskatchewan to spend some time with her mother. This means that for the next seven days, I get to stay home and take care of the kids, making sure that they have food to eat, clothes to wear, and get to wherever they’re going when they need to be there.

The first day went pretty well, the only casualty being a slightly-charred side of a grilled bacon-tomato-cheese sandwich. And today has been going pretty well too, with a load of laundry washed and hung, the dishwasher currently running, and tonight’s meal (beef stew in the crock pot) already cooking.

A large part of why it’s all running so smoothly is my parents. They have totally stepped up, helping me by taking Delphine and Cordelia places, or just looking after them while I do the stuff that needs to be done around the house.

Delphine has been a huge help too. This morning, while I was in the shower, she got dressed, came downstairs, got out three bowls and three small spoons, some cereal, and the milk from the fridge. She then poured cereal for herself and Cordelia, and the two of them were done breakfast before I was dressed. I know she’s five and all, but sometimes she’s so grown up it astonishes me.

Anyways, they’re currently out on an adventure with Zaida, so I’ld better get to folding the laundry, because it ain’t gonna fold itself.

Dead Dads Club

My dad died today at 4:15 am Saskatchewan time, which is 6:15 am EST. So fifteen minutes before I woke up this morning my dad was quietly dying two provinces away.

My mom called at 6:37 am to tell me. I was only half-awake, and so my first thought was "How did they know it was 4:15?" My dad wasn't on any kind of life support, so barring the unlikely event that someone was in the room with him and noticed him go, 4:15 is surely just a best guess. Which is fine, really, but my early morning pedant wanted that to be clear. 4:15? Really? Or 'around 4:15'? Which is, I'm sure, exactly what my mother needed!

Actually apparently what she thought I meant was "How did they know he is dead?" which is a valid question because lately the difference between my dad dead and my dad alive has been a subtle one. When we all went to see him in August he was largely unresponsive, and in an unguarded moment (I have a lot of them) I described him to the girls as Mostly Dead. Which he was.

So now he's Completely Dead, and it's a bit weird how that's so very different that him being only Mostly Dead at, say, 3:15 this morning, while also being so much the same. My brother and I and probably my Mum are having trouble with this state change, this passing from being Mostly Mourning to Completely Mourning.

Right now the girls are with their Baba and I suppose I should be doing grown-up things like getting a flight home, but really I just feel like baking a giant batch of cookies and sitting down with a magazine and some tea.

One last whine — our terabyte drive crashed so we don't have any music, and I don't have a single Requiem on my ipod. Not Mozart, not Faure, not even the fairly alarming Brahms we started practicing yesterday. So I'm stuck listening to some random mass, which is nice but not the same.

First Day of Senior Kindergarten

Last Tuesday was Delphine's last day of summer vacation. We stuck labels on her new backpack, lunch bag and shoes, and speculated about her new teacher, which of last year's kids would be in this year's class, and whether the JKs would be cute or not. While we were eating lunch I wondered how we had felt on the same day last year, Delphine's last day before Junior Kindergarten. Were we excited, were we nervous? I don't know, and I never will because I never wrote it down.

This year Delphine was a little nervous. She was scared that the teacher wouldn't like her, although that fear was largely soothed by the arrival of a lovely letter from Mrs Thompson to Delphine (in the mail, no less!) saying how excited she was to meet Delphine and what fun they would have in kindergarten, learning letters and numbers. Delphine was a bit offended by that last bit — "I already know letters and numbers!" — but I said Mrs T probably sent the same letter to the SKs and JKs, who might not know their letters and numbers yet.

I, too, was a little nervous, probably more so than last year because this year I know what is coming — a lot of getting people places on time and not much time in between to take stock. But only a little nervous, because this year I do know what's coming, and I have a plan, and perhaps most importantly I have accepted that taking people places is my main job during the school year (well, along with feeding and clothing them), and anything else I can get done apart from that is pretty much bonus. So rather than regarding the commuting as an inconvenient interruption to my life, I now just go along with it. Think of all the exercise!

Delphine's first day of school was last Wednesday. She's still in afternoons, and she's in the same classroom as last year, and as it turns out, all the Seniors were in her class last year. The first day of school was only Seniors, so she got to renew some old friendships and get to know her new teacher. Delphine loves Mrs Thompson! Mrs Thompson smiles a lot, and on the first day she wore a pink dress — I don't know if that was calculated to win the favour of a roomful of five-year-old girls (the Seniors are six girls and two boys) but if it was, it worked. Delphine says Mrs Thompson does everything in the wrong order (which is to say, not the way Mrs Hollister did it) but she seems willing to indulge her errors. Mrs Thompson taught her a new song! In fact, yesterday Mrs Thompson taught her the Macarena! And they say public schooling is inferior!

Delphine has now had four days of SK. She wasn't impressed by the JKs on day two — they were noisy and talked too much — but yesterday she kind of made friends with one of them. She had gym on Thursday (her teacher's name is Mr Laundry! Actually it's Mr Landry, but 'Mr Laundry' cracks her up) and Library on Friday, and everything seems to be going fabulously.

Since Delphine learned to read over the summer, and SK/Grade 1 is supposed to be when you learn to read, I'm going to talk to Mrs Thompson about what, if any, other goals Delphine should work towards over the school year, and what kinds of enrichment she can offer her. She's beyond the basic "k-k-k-kite" Jolly Phonics stuff this year, so I hope we can manage not to bore her out of her tree. Especially considering there are only eight SKs. But I'm borrowing trouble, I'm sure we'll work something out. Now it's time to make lunch and haul everyone off to school, at least once I manage to get some clothes on Cordelia.

What We Did On Our Summer Vacation

It's cool today, and rainy, but I opened the doors and windows anyway, because it's the last day of summer vacation and I want to get as much of that summer air in the house as I can before we get back to the routine of walking here, walking there, packing snacks, hurrying up and going. This year I have got myself yet more taking and fetching to do in the form of an eight-year-old boy I'm looking after before and after school. He won't make much more work for me (I think, unless he turns out to be horrible, which I'm pretty sure he isn't) and he makes me quite a lot more money, so I expect that will be a net win.

But that's what's happening next, and I wanted to post about what we did this summer.

The first thing we did in summer vacation was a trip to the ROM, on the very first day after school ended. Getting there turned out to be quite an ordeal; the subway wasn't running, so we tried in various ways to outsmart the crowded shuttle buses; we took the number 11 back to Mount Pleasant, tried to catch a Mount Pleasant bus (almost lost Cordelia), then got back on another number 11 which magically turned into a Yonge Street shuttle. (We missed the most obvious workaround which is to take the normal 97 Yonge St bus.) All our fooling around killed enough time that they managed to get the subway running again by the time we got to St Clair, and we were back en route.

After all that we had a nice visit to the ROM, and saw both the Darwin and Wedgewood exhibits. Because my mother is from North Staffordshire of course we think we're related to both Wedgewood and Darwin, so I particularly enjoyed the exhibits. For that reason and also because both Staffordshire pottery and evolution are particularly close to my heart. And did you know ceramics and fossils have similar chemical properties? It's all connected.

I mentioned we almost lost Cordelia, but what I should say is that she almost lost us. We were all standing at the corner waiting for the bus, and the girls were fooling around on a little staircase, hanging on the banisters, walking down the hill, the usual fidgety little kid stuff. Suddenly Cordelia took off running in the opposite direction, crying and shouting. I wondered if perhaps she had been bitten by something, or seen a scary dog. I shouted her name but she didn't turn around, so Blake took off after her. She was running full-tilt so she got half a block before he caught up with her, and apparently she had lost track of us and thought we had lost her. She was petrified! She has a fear of being left behind or leaving someone else behind — if I don't stop and wait for Delphine while we're out walking she screams "Mummy 'top!" — and I guess she panicked and forgot to, oh, look around a full 360° before running for it.

Another adventure was a trip downtown to have lunch with Daddy. I wasn't sure whether simply going downtown would be enough excitement for two little kids, but Delphine kept saying "I love downtown!" We went to Queen and stopped at The Bay for some kid undergarments, and then walked along to John to Grange Park. Delphine and I had already walked along Queen a few weeks earlier when we went to the ballet, and I think she got a kick out of seeing places again. "This is where they always have a ice cream truck and a french fries truck!" We stopped for a snack on the landscaped median of University, under the statue of Adam Beck who apparently invented hydro-electricity. Apparently it still isn't cheap enough, because the fountain at his feet wasn't running. As we were sitting, Delphine looked up and said "That building says 'Canada Life'." Which it does! She reads everything now, signs and the writing on trucks and labels, which I remember doing as a kid and apparently Blake did too. Actually I still do it; if it's printed I have to read it.

One of our goals for this summer was to go out on a boat, so one fine Monday morning the girls and I went down to the Harbourfront. We walked along the boardwalk admiring the boats and ships, and looking for ducks, until I found someone selling boat rides. I asked him which was the cheapest one, and he said we could all go out on the Ste Marie for $11; it was to be a 45 minute ride leaving at 11:15, so we signed on. We turned out to be the only passengers on a tour around the Toronto islands; we saw nature preserves and Centre Island, swans and cygnets, and learned all about Ned Hanlan. Delphine won herself and Cordelia a lollipop each in a one-question trivia contest: "What lake are we on right now?" "Ontario Lake!" I had told her that very morning.

Our biggest adventure this summer was a surprise trip to Saskatchewan, surprise because I had intended to go at Christmas until I realized it would be fully twice a much money, to the tune of $4000 instead of $2000, to go at Christmas instead of summer. So we decided to go in August instead. I flew out there with the girls first, and my mother's saintly friend Shirley picked us up from the airport in Saskatoon. Blake came a few days later, and picked up a rental car and drove to Big River by himself, almost without incident!

Shirley also engineered the high point of the visit, a fishing trip in her motor boat. Delphine got to reel in a fish, and I also fished for the very first time. Blake caught the biggest fish of the day, but we released all of them in favour of some already-clean fish from Shirley's freezer.

We managed to stay quite busy in Saskatchewan, going out for lunch a couple of times, driving down to PA to see an old school friend, going to the school playground, visiting the farmer's market, shopping in Debden, or just going to get the mail. The girls had a great time with my mum; she let them watch as much TV as they wanted, eat cookies and play with all her thousands of tchotchkes. Blake said that between the cookies and fishing and Wheel of Fortune and Jeopardy! it was just like his visits to his grandparents in Winnipeg when he was a kid.

We also visited my Dad in the nursing home a couple of times. Last year, when Cordelia and I were in Sask in September, my dad had just moved into the nursing home and we visited every day. We chatted with him and had a nice time. This year I literally didn't recognize him at first: he was tucked up in a giant bed-like wheelchair and he had lost a lot of weight. With his teeth out he just looked like some generic old guy, skinny and wrinkly and not like my dad at all. It took a minute to recognize that nose and those ears, things that don't change, and then I realized that old guy was really my dad.

The first day we were there he didn't open his eyes or acknowledge us at all, apart from tapping his foot apparently in response to the songs that the girls and I sang for him. I was so shook up it took me a couple of days to gather the nerve to go again, but when I did I was sorry I had waited, because Dad opened his eyes and looked at me and the girls and smiled at us. But the next time we visited, again he didn't open his eyes. All I could do for him was ask the nurses to play music for him.

While we were in Sask the hospital called my mother to let her know that they are discontinuing his diabetes medication because he's not eating. I know my poor Dad is just trying to go, and there's no legal way we can make it easier for him. Humanity my ass.

The girls took it all in their stride. They asked why Grandpa doesn't talk or open his eyes, and I said he's really old and sick and he needs to sleep all the time. I said he's too tired to open his eyes or talk. They weren't upset about it at all, because they are still young enough that they take it in their stride, and because neither of them really knew him when he was lucid. Dad got to meet Delphine when she was three, but I don't know how much of that either of them remember.

My mother, on the other hand, is doing well by herself. She has friends and neighbours who help her out with things like mowing the lawn. The people in town — the pharmacist, the postmaster, the plumber (just like in a Richard Scarry book) — know her and look out for her. And of course she has her cats to torment her and keep her on her toes.

I remember when the children were younger the travel itself was the big worry, but there was hardly anything to talk about this time; I loaded up with activity books and little plane-friendly toys — a magnetic dress-up doll, some brilliant Micro Playmobil in its own little box, sticker books — and plenty of snacks, and we managed the three hours on the plane and two and a half hours in the car without much ado.

Since we got home from Sask we haven't had any grand adventures, although we have had a steady stream of playdates and visits. School starts next Wednesday and Delphine is looking forward to it. She was scared that she wouldn't like her teacher, until she received a welcome letter from said teacher in the mail and now she's excited and happy. Cordelia's school starts the following Monday — she's doing Monday, Wednesday and Friday this year. I don't know how that's going to go; she has been very clingy lately. I expect she will howl terribly, I will leave and she'll be fine within five minutes. I expect further that after a couple of weeks of school she will no longer be so clingy. There's nothing like confronting your fears, even when you're two and your mother makes you do it.

I think this has been a great summer. At the beginning I wondered if I should have enrolled my kids in a thousand camps and programs, like everyone else does (nevermind that we don't have the money). I decided I would rather not spend my entire summer ferrying everyone around, and that we would make our own fun, and so we did. There was a little whining that there's nothing to do, that we never go to the park, that our backyard is the worst in the world, and that everyone else gets to go away on holiday, but for the most part we got along with each other and found interesting things to do both near and far.

How to start developing Basie

So, first off, I think Python developers these days need to use stuff like virtualenv and zc.buildout in order to develop in a sane manner. Yeah, this is the first project I’m using them on, but do what I say, not what I do.

Anyways, on to the instructions.

sudo easy_install virtualenv
virtualenv --no-site-packages basie
cd basie/
. bin/activate

Then, you’re gonna need a buildout.cfg. Mine looks like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[buildout]
parts = django
eggs = ipython

[django]
recipe = djangorecipe
version = trunk
settings = development
eggs = ${buildout:eggs}
project = basie
wsgi = true

You’ll also need a bootstrap.py, which will look a little something like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
##############################################################################
#
# Copyright (c) 2006 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Bootstrap a buildout-based project

Simply run this script in a directory containing a buildout.cfg.
The script accepts buildout command-line options, so you can
use the -c option to specify an alternate configuration file.

$Id$
"""

import os, shutil, sys, tempfile, urllib2

tmpeggs = tempfile.mkdtemp()

try:
    import pkg_resources
except ImportError:
    ez = {}
    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
                         ).read() in ez
    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)

    import pkg_resources

if sys.platform == 'win32':
    def quote(c):
        if ' ' in c:
            return '"%s"' % c # work around spawn lamosity on windows
        else:
            return c
else:
    def quote (c):
        return c

cmd = 'from setuptools.command.easy_install import main; main()'
ws  = pkg_resources.working_set
assert os.spawnle(
    os.P_WAIT, sys.executable, quote (sys.executable),
    '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout',
    dict(os.environ,
         PYTHONPATH=
         ws.find(pkg_resources.Requirement.parse('setuptools')).location
         ),
    ) == 0

ws.add_entry(tmpeggs)
ws.require('zc.buildout')
import zc.buildout.buildout
zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
shutil.rmtree(tmpeggs)

After you’ve got those, it’s basically:

python bootstrap.py
buildout -v
django help
django runserver

And when you’re done, deactivate

Any comments on things that don’t work would be highly appreciated.

Big Birthday Excitement

Yesterday was my thirty-third birthday. Thirty-three isn't a very interesting number, but it's one of the ones you have to get through on the way to ooooold.

Blake's first present to me was to tell the girls not to fight on my birthday. If you know any two- and five-year-old sisters you will know how long that lasted, but they did try. For at least an hour. The next nice thing was that Blake let me languish in bed while he went downstairs with the girls and made tea and toast for me.

After breakfast we opened presents: Delphine got me a strand of blue silk flowers and beads on a wire, to decorate things with. Cordelia got me a wire and bead ladybug (and then broke it, but not fatally), and Blake got me a Moleskine notebook for Writing Things Down In. I loved everything. Blake thought I might not like the girls' things because of their tchotchke-like nature, but it's surprising how much I completely adore them just because my girlies picked them out. I put the blue flower garland on the banister and I put the ladybug... well, I put it up high. Hopefully I can put it somewhere else soon.

Despite it being my birthday we still had a million errands to run (partly because we're going to Sask next week) but I had a nice time. I spent far too much money on clothes for Delphine (but they were on sale! And so cute!) and far too much money on a present for my cousin. We met up with our friends Tanya and Ursa and continued the tradition started last year of decorating cupcakes (which is to say, burying them in as many sprinkles as they will hold). Tanya and I got some very rare talking-together-like-grownups time while the little ones slept and the five-year-olds played with Playmobil.

After Tanya and Ursa left, Blake came home with KFC (my annual treat) and more presents! A beautiful Basil pannier and the Torchwood season one DVD! He tried to get the latter signed, but I'm glad he didn't manage it because I would have died of jealousy if he had met John Barrowman without me. Well, maybe not died, quite.

Then more company; Kat came over and watched our TV while the children were in bed, and we went for a walk and had coffee. We came home, watched the first episode of Torchwood (I think we may have converted Kat) and went to bed.

All in all, a super birthday, but my first full day of being thirty-three was fabulous too. Kat stayed over and we went to yoga together in the morning. Yoga was fun, as usual, but my hamstrings are astonishingly tight and there were some postures I couldn't even consider. As usual, though, yoga threw me some ego-boosting soft pitches: I can balance! I can ... well, mainly I can balance! But there's a lot of that in yoga! The thing I like about yoga is that you might try a posture one minute that seems completely impossible — you look at the person next to you and wonder if perhaps there is some optical illusion involved — but the very next posture is something you can not only do, but do the "if you want a little more challenge" variation! Yoga wants you to feel good.

But the best thing of all was that today Delphine learned how to ride a bike! She went off with Blake to practice riding in the school ground, and when they got back she was riding all by herself. I could hardly believe my eyes! This summer has been great for her; she learned to climb a tree, she is reading (not entire books but words and phrases), and now riding a bike. Wow!

5000 kilometers.

Today, I finally reached 5000km of biking. I forgot the camera, so I don’t have a picture of the odometer at exactly 5000.0, but I took this one when I got home, and it’s close enough. I guess that’s all, but I wanted to throw up a picture, as proof. So here you go:

More pictures.

This afternoon, Cordelia wanted to “paint on your computer”! so after I finished my game, I fired up Sketches, and this is what she ended up painting. It’s nothing in particular, but kind of pretty nonetheless.