Blog-o! Notes from latte.ca

Tue, 21 Jul 2009
Thunderbird 3.0 beta 3 shipped!

It’s true, after a lot of hard work, and a few hard decisions, the first version of Thunderbird that has code of mine in it has shipped. Dan Mosedale has some comments on what’s changed. If you like Thunderbird, please download it, give it a try, and let me know what you think!

On a more personal note, the thing I did on this release that I’m the most proud of was to add a button that lets you reply to a mailing list.

Reply to a mailing list

I’m proud of it because it feels like a neat-but-still-usable UI, and because it is one more step on the road to getting people to change their mailing lists to not munge the Reply-To header. (With this patch, you are given the option of replying to the list, or the author. Unless the list has set the Reply-To to point to the list, in which case you can only mail the list.)

A couple of the other areas I worked on for this release were updating the Activity Manager so that it didn’t hang when you clicked “Clear Now”, and so that it merged a bunch of move/copy/delete notifications into a single notification that told you how many messages had been processed; and fixing a some layout and logic bugs in the Autoconfig dialog (which you get to from “File » New » Mail Account (Quick Setup)…”). Yeah, the Autoconfig dialog is still kind of ugly, but it’s better now than it used to be, and I’m working on making it prettier for beta 4.

[Posted at 21:13 by Blake Winton] link
Wed, 15 Jul 2009
Books in June and July

Dude, I don't even know why I'm doing this blog entry. I'm so tired! The girls and I had an epic day today: we took the streetcar out to Kew Garden and the girls played on the beach for hours. After that, they played in the wonderful playground, and after that, we walked for blocks and blocks to have an ice cream with a friend the girls met on the beach. Then another long (long, long) streetcar ride (punctuated by an emergency stop at Starbucks for a bathroom visit) and finally home at five. I made supper, put the girls to bed, cleaned the kitchen, and then rearranged all the furniture which had been disarrayed so I could paint the wall. Then I reloaded the bookcase, which I had emptied so I could paint it. I must have put on more coats of paint than I realized because I couldn't fit in all the books I was sure I had taken out of it, but I finally got all that sorted out and now I am sitting. Hurray!

On to the books.

The Book of Negroes by Lawrence Hill was our book club book, and it's also the Canada Reads book for this year, which means that just about everyone I meet has read it, or at least heard of it. Now that's cool.

The Book of Negroes is the story of Aminata Diallo, an African woman who was kidnapped into slavery as a child. The book follows her life through slavery and freedom, and all around the world. Some of the people in my book club didn't know about the slave ships and stuff, and I didn't know about the loyalists in Nova Scotia, the actual Book of Negroes, and the ships to Liberia. It was an informative read, and a good yarn, but I didn't get as emotionally engaged as I did when I read, for example, A Thousand Spendid Suns (which just about killed me). I found Hill kept a distance between the reader and Diallo, and didn't let me get right into her emotions.

The book is sold as Someone Knows My Name in the US, because apparently "Negro" is just too loaded a word down there. I think from a marketing standpoint, The Book of Negroes is a better name, but Someone Knows My Name is truer to the themes in the book. Names are important in this book. But it's a bit forgettable, marketing-wise.


I don't often buy books. I used to buy books a lot, before Delphine was born and we had a 1-to-1 people-to-jobs ratio. But a couple of weeks ago Blake and I found ourselves in a bookstore and I decided I was going to buy myself a book, dammit. Lucky for me it was coming up on Father's Day so I checked out the display of Man Books, which I love. (Why are there no science books in the Mother's Day display?) In amongst all the spy books and stuff I saw the bright yellow cover of A Case of Exploding Mangoes by Mohammed Hanif. The cover promised a witty, clever thriller. It started off a little confusing; it's not one of those books that spoon-feeds you every detail, so you just have to forge ahead and figure out things as you go along. It's worth it, as the book unfolds into a touching and intriguing story of love and revenge. With a great ending.

A Walk In The Woods by Bill Bryson. Bill Bryson decided to walk to Appalachian Trail from Georgia to Maine. Well, not the whole thing. But enough to get an idea of what the trail's about, and write a book. As usual, it was great Bill Bryson writing, funny and easy to read. Reading the book inspired me to do (well, think about doing) a long hike sometime. (I'm trying to figure out how to go for a long hike without pitching my own tent. I expect that will involve paying someone a lot of money.) Reading this book was the next best thing to actually walking the AT.

Healthy Lunchboxes For Kids by Amanda Grant. Picked this one up off the display at the library. Delphine's starting all-day school and while I'm not expecting her to stay for lunch often, I thought I could use some ideas. Thinking of something for dinner every day pretty much saps my food creativity, so I need all the help I can get. This is a great book, with lots of sandwich and salad ideas, recipes for scones and cakes and cookies, as well as nutrition information and advice on how to reduce waste in your kid's lunch. Very useful book and one I'd consider owning. Although you could tell it's an English book; apparently English kids love chutney, will consider eating dip made with smoked fish, and enjoy sausage sandwiches. No sign of Marmite, but plenty of nuts.

50 High Impact, Low-Care Garden Plants by Tracy DiSabato-Aust. I ordered this from the library but it's really not my kind of thing. I like low-care garden plants, but I also like them to be local to my area, and this book featured lots of foreign plants chosen because they have spectacular foliage or great flowers. This is a useful book but not for me.

A Perfect, Gentle Knight by Kit Pearson is a young adult book about a large family coping with the death of their mother. Sebastian, Rosalind, Corrie, Orly and Juliet live in a big old house with their father, a distracted English professor. The older kids take care of the younger kids while they all try and stay out of the way of the latest housekeeper. They cope with the loss of their mother by escaping into a game of Round Table, playing the roles of knights, squires and pages. The children struggle with growing out of the game, or not being able to, and the pressures of having to take care of themselves without an involved parent. It's a lovely book with beautifully drawn characters and a satisfying resolution.

[Posted at 22:33 by Amy Brown] link
Tue, 07 Jul 2009

A few weeks ago I started a new full-time contract at Mozilla Messaging (a.k.a. the people who brought you Thunderbird). I meant to post this on the Wednesday after I started, but didn’t get around to it until now. So, here you go, my notes from just after I started a new job.

It has been a pretty crazy couple of days, both because I’m not that used to working for a full 8 hours on one thing, and because I’m at the point where there’s still so much to learn that I could spend all my time researching stuff, and never get anything done.

But even with all the stuff for me to learn, I feel like I’ve made a fair bit of progress. There were a few bugs assigned to me, based on a previous patch, as well as a couple of things left to do to get the feature working, so I jumped right in to those. After I had new patches up for review on all of those bugs, I talked with Bryan Clark about what bugs I should tackle next. He and David Ascher both suggested that the new automatic mail server config dialog could use a bit of love.

This morning, I did some investigation on group email addresses for one of the bugs I’m working on, and took a look at how the autoconfig dialog was put together so that I wouldn’t sound like I was completely lost in the meeting. (XUL, CSS, and Javascript. No surprises there. :) Then, after the Status Meeting, Bryan and I chatted a bit about what the various bugs were that he had assigned to me, and what sort of things I might look into to try and fix them. A few hours later, I had a fix for one of them, and applied a similar fix to another. (As an aside, you’ve got to love the 3 hour investigation which ends up being a 9-character change. At least while investigating the bug, I learned a lot about hboxes, vboxes, flexes, grids, and descriptions, which will hopefully come in handy in future bugs. :) Finally, I ended the day by reading a review of a patch I submitted on Monday morning, making some tweaks to my code, and resubmitting it.

The final thing that amazes me is that each day is taking up pretty much a full page of my log book, which is way more than usual. Most of the days last month got a line or two. Really full days would maybe get half a page. But yesterday and today were a solid page, chock full of information, each. I wonder how long this trend will continue. I hope it keeps on going like this for a long time.

[Posted at 00:04 by Blake Winton] link
Mon, 06 Jul 2009
An odd coincidence?

I have a theory. (No, it’s not bunnies.) One of my favourite foods is soy beans. I love it both because they’re tasty, and because they’re so changeable. I mean, what other substance can be used to make a hard white solid (tofu), and a viscous black liquid (soy sauce)? Hey, waitaminnute. “Soy beans” are oil! It’s all just different names for petrochemicals!

[Posted at 10:50 by Blake Winton] link
Jeff and Colleen

Back in March of 1999, I started working at a small software company downtown. I got there about a week before their network administrator quit, to be replaced by a quiet guy named Jeff. Jeff was an agreeable fellow who would listen patiently when I wandered into his office to talk his ear off about last night's TV or the latest movie I'd seen. It soon became apparent that Jeff had a formidable memory for facts and details; he could identify obscure actors, recall chemical names and properties from his grad school days, and could reel off all kinds of sports minutiae which still don't mean anything to me. You could talk to Jeff about just about anything—food, science, sports, celebrity gossip—and he would be able to hold up his side of the conversation.

Jeff soon became my number one work buddy, my go-to guy whenever I needed a break from my computer and wanted a chat, my faithful lunchtime companion, my reference for all things operating system-y, my fellow sufferer of workplace bullshit. Once we skipped out of work for the afternoon to see The Perfect Storm.

A year or so after I met Jeff, I started taking singing lessons. The girl whose lesson came after mine was named Kathryn; our music teacher introduced us once, but I didn't pay much attention because I'm a lazy cuss with limited social skills. My laziness came back to haunt me when a few weeks later a pretty, animated girl walked up to me in choir practice. "Hi, Amy!"

Blank stare.

"It's Kathryn! From singing lessons?"

Oh, yeah. I'm a dork.

Fortunately Kathryn forgave me and we became fast friends. One day I invited some friends from work, and Kathryn, over to play Trivial Pursuit, eat pizza and drink beer. Jeff, as usual, kicked our asses in Trivial Pursuit because he never forgets anything he's ever learned. Kat was struck by the breadth of his knowledge and also his unassuming, agreeable manner. She decided he would be a perfect match for her little sister Colleen, herself a games nut and formidable repository of trivia.

But first we had to wait for Colleen to break up with her boyfriend at the time. Then we had to try and get the two of them together in the same room. That took a couple of years. Finally in September of 2007, they were both invited to our deck party, Colleen with specific, illustrated instructions to seek out and interact with Jeff. Sure enough the pair of them hit it off and chatted all night. Kat and I nudged them together over the next couple of days, and...

Yesterday they were married.

The ceremony was at U of T's Miller Lash house in Scarborough. It was short, sweet and sunshiney (most of the female guests seem to have gone home with the sunburn booby prize, myself included). There followed a long break for lunch, during which Blake and I came back into the city to drop the girls off with Baba and Zaida, and (in my case at least) take a nap. Refreshed, I trowelled on some spackle (I mean makeup), wired my underwear and outerwear together, glued my hair in place, wrestled with some strappy sandals, and thanked God I don't have to look like a girl every day. Finally Blake and I caught the #54 bus and rode it all the way to the end of the line, for the reception at the East Rouge Community Centre. "Community Centre" conjures up images of sweaty basketball courts and ice rinks, but this is actually a very classy venue, an elegantly casual, good-sized hall with a balcony and a fireplace.

This might sound a little bit lame, but I was really excited to go to this wedding reception. Between being a stay-at-home mum and economising, we never go out for a fancy dinner, and I haven't gone dancing since Delphine was born. The idea of a nice dinner with tablecloths and wine and interesting company, followed by dancing, was pretty thrilling. Fortunately (considering the commute) the night more than lived up to my expectations.

Dinner was served buffet-style, with chicken stuffed with goat cheese and peppers, and grilled sirloin with caramelized onions and a selection of sauces, grilled polenta, orzo salad, caesar salad, and little potatoes. For dessert there were butter tarts, lemon tarts, meringues with lemon custard, brownies, homemade Italian cookies, and berries and whipped cream. Oh, and wedding cake after that! Gastronomic bliss, and my wine glass was never empty.

After a few short but heartfelt speeches, there was great music for dancing. Blake doesn't dance, and at first I was too self-conscious to dance "by myself", but soon enough I was dancing with a bunch of girls and having an awesome time.

But enough about what a great time I had last night—it's wonderful to see Jeff get married, and it's gravy (for me—what? It's my weblog!) that he married someone I'm connected to in another way. Because Kat and I are so close, and I'm so fond of Jeff, I feel like this marriage has created a circle of connections which somehow vaguely includes me. I hope Colleen and Jeff are happy together forever, and I hope they (and Kat) stay a part of my life for just as long.

[Posted at 00:02 by Amy Brown] link
Sun, 05 Jul 2009
The New Cordelia

I have a confession to make. For the last few months, I have seriously worried that I might like one of my children more than the other. On the one hand I had Delphine, irritable, emotional, and bossy; on the other, I had Cordelia, amiable, charming and fun. (Also little and cute.) Obviously I love them both, but Cordelia was a lot easier to be around than Delphine.

And then Cordelia changed. She's still funny and cute (and little), but she's gone all intense. She's at that age now, where if you cut her toast wrong, or put the applesauce on top of the yoghurt, or put the left shoe on before the right, she freaks out, sobbing until whatever it is is put right or you manage to make her laugh. The other night she didn't want to go to bed, and she had a stereotypical toddler tantrum, screaming and kicking and yelling, for a good ten minutes. We had honestly never had one of those, with either Cordelia or Delphine.

I'm not sure if this change in behaviour is a developmental stage, or if it's simple that we gave up naps a week or so ago and she's still adjusting. Before this she'd always been a happy, easy-going baby, but I remember Delphine going from Straightforward to Complicated sometime in the preschool years. Parenting a baby and toddler is a physical endeavour, carrying and feeding and wiping. Parenting a child is emotional and mental and completely different. I think I now have two children.

Thank goodness—I don't think I could have pretended they were both equally easy and fun for much longer.

[Posted at 21:45 by Amy Brown] link
Thu, 02 Jul 2009
Oakville ride

A couple of years ago, as you might remember, Blake biked from Toronto to Balm Beach on Georgian Bay, a 135K ride preceded by several long training rides. He got all fit that summer, and seemed to have fun (mostly), so I proposed that we do something similar this summer: plan a nice long ride, do some longish training rides, spend some time together and get fit.

As it turns out, Blake, Kat and I did one 44K training ride, and then we biked to Oakville. (It's way too hard to schedule rides for three people and a babysitter.) We picked Oakville because it is the right distance—a 100 K round trip—and because it's nice. Kat's been there a few times so she knows the lay of the land.

The day started early—our babysitter arrived, Tim's in hand, at 7:50 am, and Blake and I got on our bikes and headed down Mount Pleasant to meet Yonge Street somewhere south of St. Clair. We tried to leave Yonge a couple of times, but with Bay Street on one side and the Pride parade on the other, we didn't have a lot of options. It was fun blowing through downtown first thing on a Sunday, and before we knew it we were at our rendezvous point at King. Kat joined us and we made for the waterfront.

Our route took us west on Queen's Quay to the Waterfront Trail, past harbours and beaches and coves and rocky bits and all kinds of watery goodness. We stopped at the beautiful Humber Pedestrian Bridge for a photo op and some energy bars, then blew past the Butterfly Garden in Mimico, making a note to stop there on the way home.

Soon after that the rain started. It wasn't a drizzle, making us moist and warm. It wasn't a driving rain, lashing into our faces. It was merely large raindrops, plenty of them, falling straight down. Not ill-mannered rain, but very insistent, very wet, very rainy rain. We were soon soaked.

We carried on, through Etobicoke and into Mississauga. We were still on the Waterfront Trail, which at that point alternated between on-road routes (with some great real estate and gardens to ogle, especially on the water side) and a wide paved trail travelling beside the water through parks and woods. For a while we leapfrogged with a pair of athletic dads (I could tell they were athletic because they were wearing technical biking gear) pulling their kids in trailers, but they left us near the edge of Mississauga, saying, "It's all sidewalks from here on".

They were right about that. The Mississauga/Oakville border bit of the Waterfront Trail is mainly oversized sidewalks beside busy streets, with a rather surreal detour through an industrial area ("Trucks crossing") and directly beside a complicated, strangely beautiful Petro-Canada plant.

Eventually the actual trail—well, the overgrown sidewalks—ran out and we had to bike through the curvy, monotonous streets of suburbia. The houses got farther apart, the streets lacked sidewalks, the... oh, don't make me go all Kunstler on you. Finally Mississauga ended and Oakville began, to much rejoicing by Kat. (I don't know that anyone has ever been that happy to get to Oakville. I was just wet. Did I mention it was still raining?)

Oakville's contribution to the Waterfront Trail does not appear to go anywhere near the waterfront. It consists of narrow sidewalks, signposted alternately with forbidding notices informing you that Oakville frowns on bike riding on sidewalks, and friendly green signs with bike icons on them, running beside giant houses on vast acreages. You can't ogle the houses, though, because they're walled in. I did get a look at a couple of greenhouses. Occasionally the sidewalk ends, to be replaced by a grit path, intersected by driveways used by people who don't look out for you because no-one has ever been mad enough to bike this way before. As we biked I nursed my hatred for rich people.

If you persevere on this path beyond all sense and reason, eventually you will get to "downtown" Oakville, which is a lot like Bayview and Davisville. That's a hell of a long way to travel for someplace just like home, but there's modern life for you.

We locked up our bikes and searched for a restaurant sufficiently casual that the entrance of three grubby, soaked cyclists wouldn't put everyone off their lunch. We ended up at a sandwich cafe where we ate good sandwiches, mediocre soup, and disappointing desserts, while debating our next move.

We were wet but not disheartened, but Blake and I were bored with biking through suburbia and Oakville's shitty "bike path". Kat, whose thirst for challenge apparently knows no bounds, wanted to bike the whole damn way back. Blake was having no fun, and wanted to take the GO train all the way back. I was tempted to agree with Blake but I could also sympathise with Kat's desire for a more epic ride, to push ourselves a little more. I suggested we use the GO train to skip the boring suburbs and land us back in civili–, I mean, Toronto to bike home along the bits of the Waterfront Trail that are actually within sight of water.

We raced to the Oakville GO station and made the 2:30 train, wrestling our bikes onto inconveniently non-bike-accomodating cars for the twenty-five minute ride to Mimico, where we rejoined the trail along the water. It had stopped raining while we were on the train, but obligingly started again once we were back on our bikes. The ride back into town was uneventful—we did slow down through the butterfly garden but lacked the inclination to linger. By the time we got to Bay Street our bums were all sore and we were exhausted. Blake and I took the TTC back up to Davisville and then enjoyed the short ride home, although not as much as we enjoyed long, hot showers and some quality couch time.

All in all it came to 67.5 K for Blake and I (7 K less for Kat because she didn't have to ride downtown), which is pretty good but not quite epic. I'd like to try another couple of long rides this summer, if we can find indulgent babysitters, although I think I would rather take transit out to somewhere interesting and bike from there, than have to bike through the suburbs again.

(Incidentally, I looked at the maps after we got home and Port Credit is really where the Waterfront Trail stops being nice—we were being conservative when we came all the way back to Mimico.)

[Posted at 23:30 by Amy Brown] link