Blog-o!
Notes from latte.ca
Sun, 01 Jan 2012
Year in Review: 2011

Well, wasn't 2011 a piece of work? Lots of things happened, some great and some lousy. Let's start at the beginning.

In January we were taking Thomas the cat to the vet for excessive skinniness, strange loss of hair and general geriatric decrepitude. It turned out he had fleas, some kind of allergy which was giving him red spots all over, and lots of weird growths here and there: under his tongue, on his head, and probably in his bowel too. We treated him for fleas and gave him antibiotics for a while to clear up his skin problems, and put him on a permanent course of prednisone to treat his various tumours. (He's eighteen years old, so the growths are just because of old age.) We prepared ourselves for his imminent death; however, a full year later he's not dead yet, and indeed seems healthier than ever.

At the end of January Blake took off for Hawaii for work. I wasn't invited, which was particularly galling given that, you know, Hawaii in January. Not to mention, we hadn't been on a proper not-visiting-mum trip since before Cordelia was born. So come March Break I decided we should go to New York for the week. That holiday was more successful and fun than I expected it to be—the girls are at the perfect age to travel with. (Which is a bit ironic, now that I think about it, considering we won't have the money to go anywhere in the forseeable future.)

In May Greg Wilson and I published the paperback edition of The Architecture of Open Source Applications (Volume 1). In the process of publishing the book I learned an immense amount about TeX, typesetting, book production and publishing on Lulu.com, as well as getting a lead on a copyediting job. I enjoyed the whole process so much that I made it into a
business. So far I've had a handful of jobs and made some good connections, and I'm looking forward to growing the business this year.

February through June we were in reno upheaval. Our 80-year-old plumbing started leaking and we somehow decided, with impeccable North Toronto logic, that the only possible solution was to put a powder room in the basement and completely redo the upstairs bathroom. I've been meaning to post about that... It took a long time because our contractor usually runs much bigger jobs, and her trades were sneaking our bathroom in between other jobs. But when it was all finally done it was very satisfying and lovely.

In the middle of June one of the kindergarten students at the girls' school was hit by a car and killed. It shook up the staff and a lot of the parents pretty badly, and it's been on my mind a lot ever since. The little girl who died was the same age as Cordelia, and she was out with her mother when she was killed—actually her mum was hit by the car too. Imagine the fodder for rumination and imagination and nightmares that provided... It's a bit ridiculous that it would take something like this, but it made me understand that the continuing existence of my children is a gift. Anyway, that's a whole post on its own, really.

At the end of June I took a plane to Tokyo (by myself) to visit Dave. I'd never been to Japan, and it was a grand adventure.

By the time I got back from Japan the girls' summer vacation was well underway. The girls were at camp for a couple of weeks, then we went to Saskatchewan for a couple of weeks, then shortly after we came back the girls went to the cottage for a long weekend with Baba and Zaida. I felt like the real mooching-around-Toronto part of summer didn't start until the middle of August, but then we did manage to do our usual round of the Toronto Islands, High Park, Harbourfront, and a few trips to the park. I love summer.

I have to say I don't think anything terrifically interesting has happened since September. Greg and I have been working on the second volume of the software architecture book. (This time I'm actually going to copyedit the book, which will both be fun and educational, and improve the book.) Cordelia likes Grade One, Delphine likes Grade Three, Cordelia likes gymnastics and Delphine likes ballet. We're all pretty content to carry on into the new year as we've been carrying on.

[Posted at 22:08 by Amy Brown] link
Sat, 31 Dec 2011

This poor blog has been sorely neglected, and especially the book blog. I feel like I haven't been reading much—I certainly don't get big blocks of time reading time very often—but I've managed to plough through a few books while brushing my teeth or waiting in line or taking the bus. I think these are most of them, although I always manage to forget a few.

Key:
(**) Loved
(?) Forgot
(x) Did not care for
(hm) Made me think

Books I Read With Delphine

  • All Creatures Great and Small and All Things Wise and Wonderful by James Herriot (**)
  • Harry Potter and the Philosopher's Stone by J.K. Rowling

Kids' and Young Adult Fiction

  • Milo: Sticky Notes and Brain Freeze by Alan Silberberg (**)
  • Scars by Cheryl Rainfield (hm)
  • Better Than Weird by Anna Kerz (**) (hm)
  • Bud, Not Buddy by Christopher Paul Curtis (**)
  • Masked by Norah McClintock
  • Knifepoint by Alex Van Tol
  • Comeback by Vicki Grant (?)
  • Rock Star by Adrian Chamberlain
  • Harriet the Spy by Louise Fitzhugh

Book Club Books

  • The Things They Carried by Tim O'Brien (?)
  • The Uncommon Reader by Alan Bennett (x)
  • Good to a Fault by Marina Endicott
  • The Brief Wondrous Life of Oscar Wao by Junot Diaz
  • The Book Thief by Marcus Zusak
  • The Golden Mean by Annabel Lyon (hm)
  • Annabel by Kathleen Winter (**) (hm)

Pulp and Other Fiction

  • Gideon's Sword by Douglas Preston and Lincoln Child (x)
  • Guilty as Sin by Joseph Teller
  • The Sweetness at the Bottom of the Pie by Alan Bradley
  • Open Doors by Gloria Goldreich
  • Half of a Yellow Sun by Chimamanda Ngozi Adichie
  • Blackout by Connie Willis

Self-Improvement

  • Seven Principles for Making Marriage Work: A Practical Guide from the Country's Foremost Relationship Expert by John Gottman and Nan Silver
  • Health at Every Size: The Surprising Truth About Your Weight by Linda Bacon (I know, right? Mmm, bacon...) (hm)

Non-Fiction

  • Too Safe For Ther Own Good: How Risk and Responsibility Help Teens Thrive by Michael Ungar (?)
  • Lapsing into a Comma: A Curmudgeon's Guide to the Many Things That Can Go Wrong in Print—and How to Avoid Them by Bill Walsh
  • The Battle Hymn of the Tiger Mother by Amy Chua (hm)
  • Losing Our Cool: Uncomfortable Truths About Our Air-Conditioned World (and Finding New Ways to Get Through the Summer) by Stan Cox
  • Wrong About Japan: A Father's Journey with His Son by Peter Carey
  • Ah-choo!: The Uncommon Life of Your Common Cold by Jennifer Ackerman
  • Bury the Chains: Prophets and Rebels in the Fight to Free an Empire's Slaves by Adam Hochschild (**) (hm)
[Posted at 23:01 by Amy Brown] link

Santa was good for family cohesiveness this year — he brought us lots of things to do together. Delphine got a build-your-own-catapult kit, Cordelia got a giant puzzle of Toronto, and we got three board games. We haven't opened the catapult or the puzzle yet, but the games have already seen a lot of use.

Apples to Apples, Jr.

Apples to Apples, Jr. is one of those games that makes you feel slightly stupid for having paid for the game and all the packaging, because there's nothing special about the game parts that you couldn't fabricate yourself. The creator's genius is in coming up with the game and getting it into production. And in this case I don't feel too bad about paying for it, because it's a really fun game.

What you get in the box are two sets of cards: red (nouns) and green (adjectives). Each player gets five nouns, and one player is the judge and selects an adjective. The non-judge players have to select from their hand the noun which most exemplifies the chosen adjective, and submit it without revealing which noun is theirs. Then the judge chooses—using criteria of their own choosing—the winning noun. Players are encouraged to advocate for their cards, and the game is more fun if the judge deliberates out loud.

We've enjoyed this game every time we play it, with every age group. It's best for readers, but even Cordelia can play if she has someone to help her with the words she isn't sure of. There is an adult version of the game which I can only imagine is extremely fun.

Lego Champion

We have Lego Creationary, which I kind of like but I'm not really good at Lego, so I don't love it. I wasn't sure about Lego Champion, but we all like it way more.

The board is a track made (by you) of Lego, and each turn adds another piece to the board. Each turn also involves a challenge, a game the whole team plays to determine who will move forward a bonus amount.

There are five possible challenges which vary wildly in difficulty. In On Target everyone throws a Lego brick and tries to hit a target. Bluffing Bricks is a guessing game where everyone takes three blocks and then players take turns guessing how many of a particular colour there are, or calling the previous player's bluff. In Topple Tower players take turns balancing a successively larger Lego creation to the top of a tower: the first player plays one piece, the second player plays a two-piece object, the third plays a three-piece object, and so on. The trick is that you can't interlock your object to the tower. The last player to add to the tower without toppling it wins the challenge.

In Codebreaker, the challenger (the person whose turn it is) makes a three-brick code, and then other players have to figure it out by asking yes-or-no questions. And finally, in Speed Builder the challenger builds an eight-brick structure in secret, and the rest of the players race to duplicate it exactly.

Our favourite challenges are Topple Tower and Speed Builder. Bluffing Bricks is a little hard to understand, but once you've worked it out it can be a clever and fascinating exercise. I think you have to be quite a big of a game theory nerd, though; last night we played it with some friends and it was so confusing we ended up substituting Lego bowling when Bluffing Bricks came up on the dice. (Lego bowling is surprisingly challenging, it turns out, because the bowling ball (the dice) is cube-shaped and bouncy.)

The game play for Lego Champion is fairly quick and we've played it successfully with ages from six to adult. (Although Cordelia tends to amuse herself between turns by building things with the extra blocks.)

Trivial Pursuit Family Edition

For a long time I've imagined that it would be really nice if there were a trivia game with different questions for kids and adults. I looked here and there (although not on the Internet) for such a game with no luck. At the local games shop (which is admittedly really nerdy, catering mainly to the Chess, Go and D&D crowd and only reluctantly carrying a selection of mainstream board games) they had Nickleodeon and Disney Trivial Pursuits which depressingly advertised, "DVD Included! No reading! No adult participation required!" Well thank goodness for that.

Imagine my surprise when I found Trivial Pursuit Family Edition at Toys! Toys! Toys!, the second tackiest toy store in town. It is exactly as I imagined it, Trivial Pursuit with two sets of cards, one for kids and one for adults. The board is changed slightly to speed up game-play: half of the "roll again" spaces are now shortcuts to pie spaces, but even so Delphine and I have found that our two-person games drag on a little.

The kid questions are pitched perfectly for a well-read eight-year-old, so Delphine really enjoys it and gives me a run for my money. I am not sure how well this game would go over for a kid who doesn't read a lot or watch a lot of education TV. Cordelia basically can't play because there's too much reading and she doesn't know enough yet, although she has a nice time being on someone's team, for a while at least.

My only problem with this game is that it's American and the questions are heavily skewed to American history and geography. I suppose it's too much to ask that there be a Trivial Pursuit Canadian Family Edition...

[Posted at 21:03 by Amy Brown] link
Thu, 08 Dec 2011
What the heck am I pushing, anyways?

Much of the new work I’m doing these days is being stored in git repositories. Now, I’m not the biggest fan of git, particularly its UI, but the advantages of GitHub and GitX are hard to ignore. Despite that, I still really missed being able to type hg out to see which patches I would be pushing, so, after a short chat with (and demo from) Ben, I came up with the following:

Somewhere in your path, add a file named git-outgoing which contains the following contents:

# !/bin/sh
# Uh, there shouldn’t be a space between the # and ! in the previous
# line, but the highlighter I’m using seems to require it…
git push --dry-run $1 2>&1 | awk '/^ / {print $1}' | xargs git log

(Make sure it’s executable by whomever needs to use it!)

Then, in your git config, add the following section:

[alias]
    out = outgoing

And finally, you should be able to type git out, and see something like:

commit 7d4c9b89a4663a07bed030669bae2d3c73ec78dc
Author: Blake Winton <bwinton@latte.ca>
Date:   Thu Dec 8 12:22:41 2011 -0500

    Blear 2

commit a4e8c6627bc26d7371fb2614a1c47aaf694957bd
Author: Blake Winton <bwinton@latte.ca>
Date:   Thu Dec 8 12:18:04 2011 -0500

    Bleah.

So, hopefully some of the rest of you will find this helpful, too, and if you know of a better way to do this, please let me know in the comments!

[Posted at 13:04 by Blake Winton] link
What the heck am I pushing, anyways?

Much of the new work I’m doing these days is being stored in git repositories. Now, I’m not the biggest fan of git, particularly its UI, but the advantages of GitHub and GitX are hard to ignore. Despite that, I still really missed being able to type hg out to see which patches I would be pushing, so, after a short chat with (and demo from) Ben, I came up with the following:

Somewhere in your path, add a file named git-outgoing which contains the following contents:

# !/bin/sh
# Uh, there shouldn’t be a space between the # and ! in the previous
# line, but the highlighter I’m using seems to require it…
git push --dry-run $1 2>&1 | awk '/^ / {print $1}' | xargs git log

(Make sure it’s executable by whomever needs to use it!)

Then, in your git config, add the following section:

[alias]
    out = outgoing

And finally, you should be able to type git out, and see something like:

commit 7d4c9b89a4663a07bed030669bae2d3c73ec78dc
Author: Blake Winton <bwinton@latte.ca>
Date:   Thu Dec 8 12:22:41 2011 -0500

    Blear 2

commit a4e8c6627bc26d7371fb2614a1c47aaf694957bd
Author: Blake Winton <bwinton@latte.ca>
Date:   Thu Dec 8 12:18:04 2011 -0500

    Bleah.

So, hopefully some of the rest of you will find this helpful, too, and if you know of a better way to do this, please let me know in the comments!

[Posted at 13:04 by Blake Winton] link
Sun, 23 Oct 2011

Delphine, her friend Darina and I invented a word game. It goes like this:

  1. The first player says a letter.
  2. The next player says that letter and then another letter to start spelling a word.
  3. The first player says the first two letters then continues spelling the word – maybe the same word as the second player, maybe not.
  4. The players continue to take turns spelling, adding a letter each time.

You win if:
- you finish spelling a word and the other player can't think of a way to make it longer.
- you stump the other player - they can't think of a word which starts with the letters so far.

So we just did:

Amy: A
Delphine: A-W
Amy: A-W-E
Delphine: ... (she didn't know "awesome" has an "e")

Delphine: J
Amy: J-U
Delphine: J-U-N
Amy: J-U-N-I
Delphine: ...

I was going for "junior" but Cordelia reminded me about "juniper".

Then Cordelia gave us "G" as a start letter, and Delphine lead with:

G-E
Amy: G-E-N
Delphine: G-E-N-U
Amy: G-E-N-U-I
Delphine: G-E-N-U-I-N
Amy: G-E-N-U-I-N-E

So I won that round because I got to the end of the word and Delphine couldn't make it longer. But then we decided (when we did "zamboni") that if you're both obviously working on the same word you should both get a point. (We're not much for points, anyway.) It works best if you're playing with someone with about the same vocaulary as you; I kept stumping Delphine with ridiculous words but Delphine and Darina were well-matched.

Anyway, I don't know if it's a brilliant game but we almost never come up with good games so we're pretty pleased with ourselves.

[Posted at 20:46 by Amy Brown] link
We Invented a Game!

Delphine, her friend Darina and I invented a word game. It goes like this:

  1. The first player says a letter.
  2. The next player says that letter and then another letter to start spelling a word.
  3. The first player says the first two letters then continues spelling the word – maybe the same word as the second player, maybe not.
  4. The players continue to take turns spelling, adding a letter each time.

You win if:
- you finish spelling a word and the other player can't think of a way to make it longer.
- you stump the other player - they can't think of a word which starts with the letters so far.

So we just did:

Amy: A
Delphine: A-W
Amy: A-W-E
Delphine: ... (she didn't know "awesome" has an "e")

Delphine: J
Amy: J-U
Delphine: J-U-N
Amy: J-U-N-I
Delphine: ...

I was going for "junior" but Cordelia reminded me about "juniper".

Then Cordelia gave us "G" as a start letter, and Delphine lead with:

G-E
Amy: G-E-N
Delphine: G-E-N-U
Amy: G-E-N-U-I
Delphine: G-E-N-U-I-N
Amy: G-E-N-U-I-N-E

So I won that round because I got to the end of the word and Delphine couldn't make it longer. But then we decided (when we did "zamboni") that if you're both obviously working on the same word you should both get a point. (We're not much for points, anyway.) It works best if you're playing with someone with about the same vocaulary as you; I kept stumping Delphine with ridiculous words but Delphine and Darina were well-matched.

Anyway, I don't know if it's a brilliant game but we almost never come up with good games so we're pretty pleased with ourselves.

[Posted at 20:46 by Amy Brown] link
Thu, 20 Oct 2011

A recipe by Delphine. [Spelling and capitalization hers. -AB]

Ingredeents

Banana
Small fruit [Like strawberries or blueberries. -AB]
Ckrackers
Jam
Peanut butter
cheese

  1. Spread peanut butter on crackers
  2. Cut Banana and place on crakers with peanut butter
  3. Spread Jam on three Differet crakers [That is, not the crackers with the peanut butter. -AB]
  4. Cut cheese. Hee Hee Hee!

How to place

  1. Put crakers Around edge of a plate.
  2. place small fruit in middle.
  3. fill cracks with cheese.
[Posted at 17:49 by Amy Brown] link
How to make a After School Snack

A recipe by Delphine. [Spelling and capitalization hers. -AB]

Ingredeents

Banana
Small fruit [Like strawberries or blueberries. -AB]
Ckrackers
Jam
Peanut butter
cheese

  1. Spread peanut butter on crackers
  2. Cut Banana and place on crakers with peanut butter
  3. Spread Jam on three Differet crakers [That is, not the crackers with the peanut butter. -AB]
  4. Cut cheese. Hee Hee Hee!

How to place

  1. Put crakers Around edge of a plate.
  2. place small fruit in middle.
  3. fill cracks with cheese.
[Posted at 17:49 by Amy Brown] link
Tue, 27 Sep 2011
Thunderbird’s UI Directions.

On a previous post in a different blog, some commenters were asking us if we were considering doing things that we have planned to do for a while now, and that led me to realize that I haven’t been communicating the future of Thunderbird’s UI nearly well enough. I mainly blame it on my trying to do too many other things, and thus failing to cover all the bases. So, having said all that, here is the list of things, in no particular order, that I would like to see worked on in the next few versions of Thunderbird. But first, I’ld like to say a little bit about why I want them.

I recently heard about someone who said “Thunderbird looks like iTunes”, and while that’s rather complimentary given the amount of time Apple puts into making things look good, it doesn’t really lead me to believe that people can pick our product out of a screenshot. And so one of the overall goals is to make Thunderbird iconic. You can always tell when a screenshot is of Apple mail, based on the layout and the lack of colour, and Firefox is similarly immediately recognizable because of the big circular back button and smaller rectangular forward button. Similarly, I’m hoping to have Thunderbird look different to other apps, while still fitting in on the platform, and maintaining a little consistency with Firefox. Of course, that’s not the only goal, nor even the main goal. My main idea for Thunderbird is to let you focus on the content that’s important to you, and not be distracted by things you don’t care about. Hopefully most of the changes I talk about here will help that, and as a side benefit also help to give us a more unique style.

  • A simple thing that will make the product nicer to use is just to line things up. We’re all over the place, and it should be fairly simple to make this better. There are a couple of bugs that are related to this, and I suspect we could file a few more for various other parts.

  • We want to put the tabs on top, because they let us put the compose and address book into tabs, while still having the appropriate toolbars. (As well, having everything be a tab makes the application more consistent, as described in the next point.)

  • This leads into removing the standalone Compose and Address Book windows. You’ll still be able to open a window for those functions, but it will just be a regular window with a Compose or Address Book tab. (No bugs for this yet. Removals are sensitive things, and we want to get the replacement UI working well before we remove the existing UI.)

  • We really want the Thunderbird button, so that we can hide the menus, and have less Glass on Windows, and make the most common actions easier to find and use.

  • But, to add that button, we first need to see what the most common menu items people use are, therefore we need Test Pilot.

  • We would like to add a HomeTab, to give people a personalized place to land when they start Thunderbird, or open a new window.

  • We would like to merge the Gloda bar and Quick Filter bar, cause duh.

  • Having two different settings locations is too confusing for me, let alone people who don’t care about the details of the product. We want to merge those into a single searchable place for all the settings, a la Mac System Prefs.

  • This next change is more a small, personal thing, rather than part of a grand plan. It was originally suggested by Mike Beltzner, and while I’ve had some time to work on it, I haven’t had enough to push it through to completion. Basically, I’ld like to be able to order my email by date, while grouping it by subject. (This is different than threading, because I don’t care about which replies are to which messages. I just want a single group for the subject, with the messages ordered by date within that group, and the groups ordered by the date of the most recent message.) There’s no bug for this yet, but as mentioned, I started to write an extension, before hitting some annoying bugs that made it hard.

  • Compactify the header. It’s really too big. Well, that’s a bit of a lie. What I really mean here is that we should move the buttons and their toolbar out of the header, to float just above it. This would allow people to easily turn them off (by removing the entire toolbar), and for those of us who like to keep them, it would make them more visually distinct. As an added bonus, in vertical mode, we could merge that toolbar with the other toolbars, to get something like the pictures of what Thunderbird could look like posted by Asa Dotzler.

  • And finally, I think we should remove the Migration Assistant. It was very useful in the 2.0⇒3.0 transition, but it’s been less and less useful as time goes on, and as people have moved more and more onto Thunderbird 3, and 4, and 5… (No bug for this one either, again, because removals are sensitive things.)

See all the bugs in one big list.

Many thank-yous to Alex Faaborg, and areweprettyyet for the code to link the bugs, and the basis of the styling to make them stand out.

[Posted at 11:02 by Blake Winton] link
Thunderbird’s UI Directions.

On a previous post in a different blog, some commenters were asking us if we were considering doing things that we have planned to do for a while now, and that led me to realize that I haven’t been communicating the future of Thunderbird’s UI nearly well enough. I mainly blame it on my trying to do too many other things, and thus failing to cover all the bases. So, having said all that, here is the list of things, in no particular order, that I would like to see worked on in the next few versions of Thunderbird. But first, I’ld like to say a little bit about why I want them.

I recently heard about someone who said “Thunderbird looks like iTunes”, and while that’s rather complimentary given the amount of time Apple puts into making things look good, it doesn’t really lead me to believe that people can pick our product out of a screenshot. And so one of the overall goals is to make Thunderbird iconic. You can always tell when a screenshot is of Apple mail, based on the layout and the lack of colour, and Firefox is similarly immediately recognizable because of the big circular back button and smaller rectangular forward button. Similarly, I’m hoping to have Thunderbird look different to other apps, while still fitting in on the platform, and maintaining a little consistency with Firefox. Of course, that’s not the only goal, nor even the main goal. My main idea for Thunderbird is to let you focus on the content that’s important to you, and not be distracted by things you don’t care about. Hopefully most of the changes I talk about here will help that, and as a side benefit also help to give us a more unique style.

  • A simple thing that will make the product nicer to use is just to line things up. We’re all over the place, and it should be fairly simple to make this better. There are a couple of bugs that are related to this, and I suspect we could file a few more for various other parts.

  • We want to put the tabs on top, because they let us put the compose and address book into tabs, while still having the appropriate toolbars. (As well, having everything be a tab makes the application more consistent, as described in the next point.)

  • This leads into removing the standalone Compose and Address Book windows. You’ll still be able to open a window for those functions, but it will just be a regular window with a Compose or Address Book tab. (No bugs for this yet. Removals are sensitive things, and we want to get the replacement UI working well before we remove the existing UI.)

  • We really want the Thunderbird button, so that we can hide the menus, and have less Glass on Windows, and make the most common actions easier to find and use.

  • But, to add that button, we first need to see what the most common menu items people use are, therefore we need Test Pilot.

  • We would like to add a HomeTab, to give people a personalized place to land when they start Thunderbird, or open a new window.

  • We would like to merge the Gloda bar and Quick Filter bar, cause duh.

  • Having two different settings locations is too confusing for me, let alone people who don’t care about the details of the product. We want to merge those into a single searchable place for all the settings, a la Mac System Prefs.

  • This next change is more a small, personal thing, rather than part of a grand plan. It was originally suggested by Mike Beltzner, and while I’ve had some time to work on it, I haven’t had enough to push it through to completion. Basically, I’ld like to be able to order my email by date, while grouping it by subject. (This is different than threading, because I don’t care about which replies are to which messages. I just want a single group for the subject, with the messages ordered by date within that group, and the groups ordered by the date of the most recent message.) There’s no bug for this yet, but as mentioned, I started to write an extension, before hitting some annoying bugs that made it hard.

  • Compactify the header. It’s really too big. Well, that’s a bit of a lie. What I really mean here is that we should move the buttons and their toolbar out of the header, to float just above it. This would allow people to easily turn them off (by removing the entire toolbar), and for those of us who like to keep them, it would make them more visually distinct. As an added bonus, in vertical mode, we could merge that toolbar with the other toolbars, to get something like the pictures of what Thunderbird could look like posted by Asa Dotzler.

  • And finally, I think we should remove the Migration Assistant. It was very useful in the 2.0⇒3.0 transition, but it’s been less and less useful as time goes on, and as people have moved more and more onto Thunderbird 3, and 4, and 5… (No bug for this one either, again, because removals are sensitive things.)

See all the bugs in one big list.

Many thank-yous to Alex Faaborg, and areweprettyyet for the code to link the bugs, and the basis of the styling to make them stand out.

[Posted at 11:02 by Blake Winton] link
Thu, 08 Sep 2011
A Proposal for Updates with Add-ons.

Add-ons are an important part of many Mozilla products, and many people have noticed that they’ve taken a hit as we’ve switched to the Rapid Release process. To help users have a little more control over how well their Firefox works, I would like to propose the following slight modification to the automatic Update process:

It all starts when Firefox (and Thunderbird) notice an update is available.

We immediately check the user’s add-ons to see if they are compatible, or if there are compatible versions we haven’t downloaded yet.

If all the add-ons are compatible (or will be made so at the next download), we show the NoAddons dialog:

NoAddons dialog

It‘s the same as the current Firefox or Thunderbird update dialog, and as you would expect, the “Ask Later” and “Update Firefox” buttons do the same things that they do now.

On the other hand, if there are in-compatible add-ons, we show the Addons dialog:

Addons dialog

As you can see, we let the user know which add-ons are incompatible, and give the user an extra button at the bottom to do something different.

The new “Update when my add-ons work” button (wording to be clarified later) will check the add-ons periodically, and automatically update Firefox when all the add-ons are compatible. If the add-ons aren’t compatible after a week (period of time to be configurable), the user will be shown this dialog again, with the (hopefully smaller) list of incompatible add-ons.

Showing the user which add-ons are incompatible will let them decide whether the add-ons are important enough to not upgrade, or whether they can live with the (hopefully short) period of reduced functionality.

As always, comments welcome, but keep them polite or they’ll be deleted.

[Posted at 14:49 by Blake Winton] link
A Proposal for Updates with Add-ons.

Add-ons are an important part of many Mozilla products, and many people have noticed that they’ve taken a hit as we’ve switched to the Rapid Release process. To help users have a little more control over how well their Firefox works, I would like to propose the following slight modification to the automatic Update process:

It all starts when Firefox (and Thunderbird) notice an update is available.

We immediately check the user’s add-ons to see if they are compatible, or if there are compatible versions we haven’t downloaded yet.

If all the add-ons are compatible (or will be made so at the next download), we show the NoAddons dialog:

NoAddons dialog

It‘s the same as the current Firefox or Thunderbird update dialog, and as you would expect, the “Ask Later” and “Update Firefox” buttons do the same things that they do now.

On the other hand, if there are in-compatible add-ons, we show the Addons dialog:

Addons dialog

As you can see, we let the user know which add-ons are incompatible, and give the user an extra button at the bottom to do something different.

The new “Update when my add-ons work” button (wording to be clarified later) will check the add-ons periodically, and automatically update Firefox when all the add-ons are compatible. If the add-ons aren’t compatible after a week (period of time to be configurable), the user will be shown this dialog again, with the (hopefully smaller) list of incompatible add-ons.

Showing the user which add-ons are incompatible will let them decide whether the add-ons are important enough to not upgrade, or whether they can live with the (hopefully short) period of reduced functionality.

As always, comments welcome, but keep them polite or they’ll be deleted.

[Posted at 14:49 by Blake Winton] link
Wed, 07 Sep 2011

I haven't posted about the girls for ages because Delphine's not totally comfortable with being the subject of a blog any more. I guess if you want to get to know Delphine better you'll have to either meet her or wait until she starts her own blog. But I might sneak in the odd post, like this one.

This week Delphine started Grade Three and Cordelia started Grade One. Cordelia wasn't excited about starting Grade One until a few days before, when her sister convinced her it would be fun. Delphine has had Cordelia firmly under her wing since school started: they entered the first day fray together (with strict instructions to us to stay out of the way) and they have been meeting up at recess and sharing snacks.

Both girls love their respective teachers. Delphine is in a 2/3 split which seems like it's going to be an awesome class. Cordelia is in a 1/2 split – I'm not sure who is in that class but I really like the teacher so I think it will be a good year for her, too.

More generally, Cordelia is still clinging to her baby status. She doesn't like to read, although I think she reads better than she likes to let on. She also flat-out refused to learn to ride a bike this summer, although she's learning to go like stink on the scooter to keep up with Big Sister. I'm curious to see what being in Grade One will do for her carefully maintained aura of incompetence. I'm pretty sure she steps up and shows her abilities when she's at school, and I think soon she's going to have to accept that we know that she can do stuff.

Cordelia has always had an affinity for numbers (as I expect I've mentioned) and her report card last year said "Cordelia shows an avid interest in math". I'm curious to see how that interest develops in Grade One's more advanced math.

Cordelia's my little maker. Her catchphrase is "I could use that for something!", whenever I try to throw away some interesting box or widget. And indeed, if I let her have the thing she will cut it up and glue some other bits to it and transform it into a building or a slide or a cat or some other creation. I so want to take her to a Maker Faire.

Around about when she turned eight Delphine transformed from a little kid into a pre-adolescent. I used to think "tween" was a nonsense marketing category, but there's a marked difference between seven and eight. She's got a new spirit, a little bit of sassiness and attitude, but not in a bad way; she's still polite and civil (mostly) but she's got opinions. A few of her rants: "Why do they change everything when they make movies out of books?!" (with a subrant: "'How to Train Your Dragon' was nothing like the book!"); "Everyone thinks Canadians live in igloos!"; "Why does everyone drive everywhere?!"; and one of my favourites, "Everyone else has a nice basement, why is ours is all gross?!" She's going through a bit of a noisy, self-righteous phase which, if she doesn't grow out of it, will serve her well on the Internet (or in the Computer Science Club) some day. But it all comes from noticing the greater world and realizing that there are different ways to be in it, and trying to work out what your choices say about you.

This year she's starting ballet, which will hopefully teach her self-discipline and maybe some humility (unless she turns out to be really good at it). She's still enjoying piano, and she's taking an art class with Cordelia. Perhaps a little overscheduled; we'll see how it goes.

[Posted at 22:32 by Amy Brown] link
Thu, 01 Sep 2011
Japan 2011: What I Ate

The sad thing is, I wasn't all that hungry when I was in Japan. Normally I love to eat but I couldn't get excited about food, probably because of the heat and humidity. It's terribly ironic, to me, to go all that way to somewhere where I'd normally want to stuff my face and then not being interested. Fortunately I was hanging out with a person with a normal appetite, so we ate regularly and interestingly anyway. (If I had been by myself I might have just survived on bread and fruit juice, and that would have been a pity.)

My first meal in Japan was dinner: okonomiyaki at a cook-it-yourself restaurant near Ameyayokocho, with Dave and his friend Robert. We had a kind of miscellaneous omelette, fried enoki mushrooms in butter (so good!) and some sautéed greens. The greens came in their own little soup of cornstarchy sauce, which you are supposed to add gradually to the greens. After you have cooked the greens and sauce, you add a bunch of cheese, which suddenly changes the whole thing from sautéed greens to fried cheese with bits of greens. Tasty.

We also had a couple of flagons of Japan's Default Beer. You go into a restaurant and order "beer" and they bring you "beer", a glass mug of a cold, easy-drinking lager with a good inch of head on it. (Usually Asahi Super-Dry or Kirin Lager, I think.) It was the perfect drink in that weather, and Dave and I had one with almost every meal.

Japanese Breakfast For the next morning's breakfast I had ordered the "Japanese breakfast" at my ryokan, and I was eager to find out what it entailed. It turned out to be rice, miso soup, some lightly-pickled sliced cucumber, steamed greens in a sweet sesame sauce, scrambled egg with tomato and orange on the side, and some grilled fish. Also green tea and a little package of nori. It was a lot of food and I didn't finish everything, which I'm sure is either completely insulting or totally acceptable. The fish was delicious: mild and slightly crispy on the outside.

Tiny shrimp sushi For lunch that day I decided we should have sushi, since that's the quintessential Japanese food in my mind. Dave found us a conveyor belt sushi place where we had eel, salmon, tuna, tiny fish, tiny shrimp, and plenty more.

Later that afternoon we wandered to Harajuku, where the street eat of choice is crepes. This is curious because there aren't really any other street eats in Japan, apart from the odd soft-serve ice cream place — walking while eating just isn't done — but for some reason it's acceptable to eat a filled crepe folded into a cone while walking around Harajuku. I had ice cream, chocolate syrup and whipped cream in my crepe; I think Dave had bananas or apples in syrup or something similar. (Dave has lost lots of weight since moving to Japan by eating carefully and walking a lot; I think he must have had to eat even more carefully and walk even more after I left to make up for sharing my bad habits while I was there.)

For dinner that evening we went to a (chain?) restaurant which offered a variety of food: garlic cheese bread, pizza, shrimp chips, chicken. We had some gyoza and an assorted yakitori plate (grilled chicken parts on sticks; mmm, chicken kidneys). I think we also had something with cheese, but it's hard for me to say because I was rocking some serious jet lag and pretty much falling asleep on my plate.

Next day's Japanese breakfast was about the same, but with salmon instead of the mystery white fish.

Ramen We had ramen for lunch in Fujisawa, on the way to Enoshima. It was a rustic little restaurant, staffed only by two cooks behind the bar. You order by selecting and paying for your dish from a machine, then giving the resulting receipt to the cooks. It was delicious: the meat was tender, the noodles were soft with that particular chewiness you only get from freshly made noodles, and the broth was savoury and rich. (I wish I had been as hungry when I had it in front of me as I am now writing about it. Irony!)

It was on Enoshima that we had the mango softserve ice cream that I posted about earlier. It was almost like a mango sorbet, with enough creaminess to make it luxurious without cutting the refreshing fruitiness of the mango. Served in a twist ("mix") with vanilla it was like a creamsicle all grown up.

After Enoshima we went on a long train ride to a yakitori restaurant run by some friends of Dave's. We could have ridden the whole way in a standard JR train car, like a fancier subway car, but there's an option on JR (the rail company) to take a "Green car", a sort of first-class which is more like a double-decker GO train car — cushy reclining seats with a tray, and drink and snack service (with very cheap beer!)

Sink The restaurant was like a pub, kind of dark and medieval with low ceilings and lots of wood. (Never mind the high-tech powered sliding door which are all-but ubiquitous in stores and restaurants.) The sink in the picture gives you an idea of the rough-hewn feel of the place.

Once again the food was delicious: we had grilled bits and pieces on sticks, mostly-raw chicken (I wasn't up for more than a taste of that), and hiyayakko, sliced tofu with soy sauce and fish flakes. (A.k.a., "That cold shit.", as Dave thinks of it.) Also more beer.

For Sunday's breakfast I requested "Western-style", as much because I wanted to see what they would do with it as because I craved familiar food. "Western-style" breakfast turns out to include back bacon, scrambled egg, a giant slab of toasted white bread, tomato and some orange. Also penne with sweet tomato sauce, and steamed broccoli. Of course.

Tonkatsu We had lunch at a chain tonkatsu restaurant called Wako. I had a combo with pork medallions, a shrimp and some pumpkin, all breaded and deep-fried, as well as a haystack of shredded cabbage and the usual miso soup and bowl of white rice. There was a side of mayo, for what I'm not sure (I made the cabbage into coleslaw with it). Also chawan mushi, a savoury custard. The tonkatsu was crispy and delicious and the pile of cabbage was a refreshing change from the analogous pile of french fries you would get on this side of the Pacific. It, as well as the miso soup (I think) were bottomless — you could hail the waitress and she would come over with a enormous bowl of shredded cabbage and pile another stack of it on your plate.

Having had a tasty plate of deep fried for lunch, we set out vaguely in search of something healthy for dinner. I moved to a hotel in Saitama on Sunday, so we were in Saitama for dinner, and had a choice of the usual suspects: ramen, sushi, and so on. We eventually talked each other into Korean barbeque and decided to be healthy another day.

Most Japanese restaurants have pictures of all the dishes they offer, but the interesting thing about Korean barbeque is that the food in the pictures is still raw. I guess that's not the most interesting thing — the most interesting thing is that the food they bring to your table is still raw. Each table is fitted with its very own little fire pit, some intrepid young man comes by with a bucket of hot coals and skillfully sets it into place, and then you use cunning little tongs to cook everything to your taste. We had some delicious strips of beef and placated the gods of healthy eating by roasting up some assorted veggies.

There was no breakfast at my hotel in Saitama, so on Monday morning I ventured out on my own to find something to eat. It seems like an odd choice, but I found it at 7/11. They have a decent selection of cellophane-wrapped pastries, so I bought brioche sort of thing, and added a can of delicious Boss Caffe Latte from the vending machine in the hotel lobby.

Lunch led us on an epic train journey to Utsonomiya, the world's gyoza capital, for (that's right) gyoza. We went to a tiny restaurant and ordered their special plate of 12 gyoza*, all different (and beer!) There were pork, shrimp, chicken, kim chee, pork and shiso, and some more which were delicious but not readily identifiable. (I actually left the kim chee dumpling; it was just too spicy for lightweight me — Dave helped me out with it.)

(The more I write this post the sadder I am that I had no appetite to speak of while I was in Tokyo. Everything was good but it would have been even better if I had been hungry.)

By dinner time I was craving a Pickle Barrel big salad. I don't know what it says about me that when I'm in a foreign country full of exotic, delicious food I crave the most pedestrian Western food, but there it is. All I desired was a giant bowl of crispy iceberg lettuce, ham, eggs, and chicken smothered in some unctuous dressing. There is about 0% chance of finding that anywhere in Tokyo, let alone Saitama. We wandered around sussing out various restaurants and finally chose an odd little second-floor pub, advertising $3 beer in the window. (We weren't sure whether $3 beer was a good sign or not, food-wise, but we figured at least it meant there would be $3 beer.)

The place was decorated in a blackened-wood and fishing nets motif. We got ourselves a beer, and ordered what might be the closest thing to my big salad you'd find in Tokyo: a green salad with sashimi. It was delicious, and hit the spot. We also had shrimp and cheese sticks — shrimp with cheese rolled in an egg roll wrapper and fried — and I think Dave ordered some other stuff I either didn't try or tried and didn't remember.

Individually wrapped boiled egg On Tuesday my 7/11 breakfast was a boiled egg (individually wrapped) and a Georgia Iced Coffee. I thought the Georgia Iced Coffee would be pretty much the same as the Boss Iced Coffee, but it was much more bitter and metallic-tasting. I learned from Dave, later, that all the different iced coffee brands have distinctive flavours, and I just lucked into the one I like best first try.

We were down at Tokyo Bay at lunchtime — I wanted to check out Tokyo's "Harbourfront". There's a big mall down there (Doug Ford take note!) and they were having some kind of ramen festival in one of the food courts. (Or else one of the food courts was set up to simulate a perpetual ramen festival; now that I think about it I'm not quite sure which.) I had a hankering for eel, so I ordered something which looked like a delicious bowl of ramen with eel on top. Turns out the colour reproduction on the picture was a little off, and I got a delicious bowl of ramen with two slices of boiled bacon on top. (Dave tells me it was Okinawa-style ramen, which is of course different from the various other kinds of ramen.) I know boiled bacon sounds disgusting, but it was smoky and tender. I expect if you tried boiling Canadian mass market bacon it would fall apart or go slimy, but I think if you got good bacon from a butcher it would boil up nicely. Try it in soup!

I also had some melon soda. Melon is a big flavour over there, although it seemed more vaguely fruity than tasting of any melon I'm familiar with.

After we walked around the waterfront some more we had kakigori, which is like a sno-cone or granita or whatever they call flavoured ice where you are. I chose Blue Hawaii flavour, which is... blue. And sweet. It was delicious, just the thing to eat while sitting by the water and sweating gently.

Our next stop was Tokyo Tower, where I had a piece of cheesecake at the restaurant up top. Cheesecake seems to be quite popular in Tokyo, and I was curious as to how it was interpreted. It was softer and smoother than a New York-style cheesecake, and had a nice sharp cream cheesy bite.

Dinner was fancy, at the Chou Chou Dinning Room (not to be confused with Tony's Fine Dinning, a roti place up on Sheppard). Like many restaurants in Tokyo, it was on the second floor — Tokyoites don't have our aversion to going up a level or two to eat or shop. The restaurant was beautiful; we entered on a transparent walkway over a mock riverbed of white stones. Shiny dark wood and elegant lighting set a mood of quiet refinement.

Keeping with the classy style of the place, I refrained from ordering my usual beer and had a grapefruit sour instead. We ordered chicken gyoza and little fish baked in phyllo, with the heads still on. But the highlight of the meal was the risotto, a creamy sweet-savoury delight.

Wednesday was my last day in Tokyo. My final 7/11 breakfast was a green bun filled with cantaloupe-flavoured custard. Why was it green? Green tea? Melon? Mint? It's hard to say, and the flavour wasn't much help. The custard was delicious, though, and not something I'm likely to ever get in Toronto. I also had a tub of yogurt in a vague attempt to eat some protein, and, sadly, my last can of Boss Caffe Latte.

Dave and I decided that my last meal in Tokyo should be the iconic conveyor belt sushi, so for lunch we ducked into a really cheap little place. It was fascinating — they had laid out the restaurant so that the conveyor belt wound round into every cranny of the odd-shaped room, so it formed an irregular, jagged L-shape and we had to shuffle sideways behind half the other diners to get to our chairs.

I didn't realize how cheap the place was until Dave pointed out they were serving fake wasabi. But even the cheapest saddest Tokyo sushi is still fresh and delicious; really, the only thing that distinguished it from more expensive sushi was that the rolls were slightly misshapen. We had the usual selection of tuna, salmon, and clam. Dave scooped himself a plate of natto sushi, and I had some alarmingly tacky shrimp salad sushi, while I amused myself trying to think what you could serve conveyor-belt style in a Canadian restaurant: sandwiches? Salads? It's such a great way to have lunch: fast, fresh and cheap.

My very last Japanese food purchase was a can of peach soda from a vending machine in the airport. Even though I was only there for a week, the idea of Japanese vending machines has lodged itself in my brain, to the extent that whenever I go to a public park in Toronto I'm always briefly disappointed that I can't buy myself a can of coffee or a soda from a handy vending machine.

I love eating in other countries; you learn so much about a place from what and how they eat. I loved the little plates, which allow you to try lots of different things, and to eat as much as you like and no more. I liked the way everyone orders together and shares the food. I think the Japanese custom of not eating while walking is healthy and sensible (although it would take me more than a week to get out of the habit). And I liked the food itself: everything (apart from my 7/11 delights) was freshly made from excellent ingredients. Tokyo is a great destination if you like to eat.

[Posted at 11:23 by Amy Brown] link
Sun, 10 Jul 2011

crow cat There are hardly any urban animals in Tokyo. I didn't see any wild mammals at all (although I'm sure they have rats) and the only birds I saw were crows and sparrows. There are cats around shrines because the monks feed them.


When you go to a restaurant you get a little towel in a plastic bag. Sometimes it's a disposable wet wipe, sometimes it's a little facecloth (hot or cold). The catch is you don't get a napkin.


hydrangeas growing by
the subway There are hydrangeas everywhere; in parks and gardens, but also growing wild by train tracks. I also spotted daylilies and hostas — it was cool to see my garden friends in their native environment.


July in Tokyo is really freaking hot. Really, and humid too. They don't report a Humidex, which is good because it'd be up in the 40s and it would make everyone feel worse.

facecloths for sale The good people of Tokyo don't suck it up and act all stoic, they hate it and deal with it in a number of ways. Hand fans are very popular and no-one is shy about using them — lots of companies give out fans as promotional material. Everyone carries little schmattes to mop themselves with. You can buy them all over the place.

A lot of ladies carry parasols. These are distinguished from umbrellas by their eyelet lace edging. I assume if you are expecting rain and sun on the same day you have to carry both devices.


manhole All the manhole covers are pretty, and they're different in every area.


They have awesome transit in Tokyo. There are a bunch of different companies which provide subway and train service, but they all work together seamlessly because they use the same payment card system. Yet again the TTC looks like a bunch of bush league amateurs by comparison. (Not that they're dealing with the same size user base. But still. They could suck less.)


sidewalk garden No-one in Tokyo has a garden so some people get their green thumb on by creating sidewalk gardens; pots and planters on the sidewalk. I saw a rosebush in one, and a little fish pond with water plants and actual fish in another.


Most restaurants serve meals as a collection of little dishes; instead of ordering, say, steak which comes with veg and potatoes, you'd order a little plate of steak, a little plate of veg and a little plate of potatoes. And you don't order everything up front, you order a few things, then add some more stuff later if you're still hungry. (You also share with everyone, so if you don't feel like what everyone else feels like, you're screwed. Until dessert, then everyone gets what they want.)

It's a great way to eat - you can order the right amount of food and stop when you're full instead of being tempted to finish a big plateful. And you can order the exactly kind of food you want and the restaurant doesn't get to screw you by serving you a giant pile of cheap carbs and calling it a deal.


child seat in bathroom Some of the bathroom stalls have little child seats mounted on the wall for you to park your baby when you pee. I cannot tell you how much I wanted this feature when my kids were babies!


mango soft-serve
ice cream They have great softserve flavours. I don't know why we stick with chocolate and vanilla here, because mango-vanilla swirl is sublime. I also spotted green tea and black sesame.


Parks and playgrounds in Tokyo run the gamut from lame to non-existent. They have a few big parks, but they're not big on lawns and greenspace. I spotted a handful of playgrounds, but they all featured the same monkey bars, two swings and a metal slide. I also didn't spot any children at the playgrounds. I don't know if Japanese kids play at private playgrounds, or if they just don't play at all and are at organized activities.


They have 24-hour karaoke. (24-hour karaoke!!!)


shoes socks Shoes in Japan are awesome. Okay, plenty of women wear boring shoes, but there are some amazing shoes worn just out and about. And the fancy shoe ladies are dedicated to high heels.

To go with the shoes are lots of fancy sock options; some girls even wear socks with strappy sandals. They have sock configurations for every kind of shoes; tiny socks with lace mary-jane straps and lace trim to wear with ballet flats, socks with a split at the toe to wear with thong sandals, socks with cut-out heels for... when you feel like wearing socks with cut-out heels. Socks in Japan have gone beyond their traditional role as foot/shoe protectors; they augment the shoe.

[Posted at 00:15 by Amy Brown] link
Wed, 15 Jun 2011
Customization and choice.

A friend of mine recently said:

EVERY behavior aspect of EVERY application should be user-settable if the user is prepared to drill down far enough. No exceptions. Even if the user will be shooting his own foot by messing with it.

I, obviously, disagree with him, and wanted to explain why in a few more characters than Twitter would allow.

While giving the user complete control over every aspect of an application seems like a good idea, there are two slightly-hidden downsides to it.

First, every choice you give the user doubles the amount of testing you have to do. (Okay, it doesn’t exactly double it, but it certainly adds a testing, maintenance, and support burden.) Is it a responsible use of your time to implement these options if less than 1% of your users will ever change them (and risk shooting their own feet), or would it be better for everyone to implement a feature that more people would use?

Second, Emacs notwithstanding, you’ll never get to a great text editor by customizing a mail reader. The whole Unix (and iOS, oddly) philosophy is to write each app to do one thing, and do it well. Not to do a whole bunch of optional things. And if you’re doing only one thing, presenting an option to the user to do it or not doesn’t make a lot of sense.

And finally, because I can’t count, if you offer people too much choice, it imposes a cognitive burden on them which can lead to their making no choices at all, or at least not making them any happier than when they had fewer choices.

To bring this back to the product I’m working on, we are going out of our way to make Thunderbird more usable and part of that is simplifying it by offering fewer, more meaningful choices.

[Posted at 10:13 by Blake Winton] link
Customization and choice.

A friend of mine recently said:

EVERY behavior aspect of EVERY application should be user-settable if the user is prepared to drill down far enough. No exceptions. Even if the user will be shooting his own foot by messing with it.

I, obviously, disagree with him, and wanted to explain why in a few more characters than Twitter would allow.

While giving the user complete control over every aspect of an application seems like a good idea, there are two slightly-hidden downsides to it.

First, every choice you give the user doubles the amount of testing you have to do. (Okay, it doesn’t exactly double it, but it certainly adds a testing, maintenance, and support burden.) Is it a responsible use of your time to implement these options if less than 1% of your users will ever change them (and risk shooting their own feet), or would it be better for everyone to implement a feature that more people would use?

Second, Emacs notwithstanding, you’ll never get to a great text editor by customizing a mail reader. The whole Unix (and iOS, oddly) philosophy is to write each app to do one thing, and do it well. Not to do a whole bunch of optional things. And if you’re doing only one thing, presenting an option to the user to do it or not doesn’t make a lot of sense.

And finally, because I can’t count, if you offer people too much choice, it imposes a cognitive burden on them which can lead to their making no choices at all, or at least not making them any happier than when they had fewer choices.

To bring this back to the product I’m working on, we are going out of our way to make Thunderbird more usable and part of that is simplifying it by offering fewer, more meaningful choices.

[Posted at 10:13 by Blake Winton] link
Sat, 11 Jun 2011
Great Piles of Crap

I cleaned my purse out today. It had been getting heavier and heavier, and I was quite curious as to what was in there.

Crap from my purse

Some highlights:

  • vast quantities of paper napkins (only some of which were used)
  • Chinese restaurant flyer
  • pirate eye patch
  • pirate map
  • plastic telescope
  • plastic shark
  • yoga studio brochure
  • Ontario Science Centre flyer
  • four lip glosses
  • Licemeister™ lice comb

I've been doing a lot of work-work lately, and not finding time for life maintainance. The state of my purse, before I cleaned it out, was much like the state of my wallet, and the state of my desk, and the state of my yard, and indeed the state of my house. When that much of your life is in disarray it makes you feel like a bit of a failure. I was really glad to get a chance to clean out my purse, and I hope I can get to some of that other stuff soon.

[Posted at 22:26 by Amy Brown] link
Wed, 01 Jun 2011
Who should review my change?

One of the big questions I had when I started writing patches was who I should ask to review them. Now that I’ve been in the community for a while, I’ve got a much better sense of who I should be talking to for the type of things I’m likely to write, but there are still times when I want to make a change in a part of the code that I haven’t touched before, and I’m not sure who to ask. In those cases, I usually fall back to a fairly simple (if non-obvious) set of steps to try and figure out who to pick.

  1. Get the list of files I’ve changed.
  2. Get the hg log for those files.
  3. Check through the log for “r=”, and “sr=”.

Of course, that’s a fairly easy set of steps to automate, and so I present my first cut at the automated reviewer chooser!

Of course, there are a lot of things I’ld like to do with this, such as:

  • Improving the documentation.
  • Checking to see how well this script would have done on previous commits.
  • Taking into account the length of the queues for the reviewers.
  • Adding some sort of recent-ness calculations.

But I think that this tool is useful enough in its current state that releasing it and getting feedback on what to actually work on would be a win.

To use it, be in a mercurial source repo, and type getReviewer.py to get a list of suggested reviewers for the current differences, or getReviewer.py temp.diff or getReviewer.py https://bugzilla.mozilla.org/attachment.cgi\?id\=536017 to specify a different set of changes.

[Posted at 20:13 by Blake Winton] link