Category Archives: Personal

My Thunderbird / Firefox wallet – one of a kind

My friend Joel Beck is kind of a badass.

When he’s not designing / building reactors for Atlantic Hydrogen in New Brunswick, he’s learning all sorts of cool skills.

Skills like leather-working.

Look what he gave me as an early Xmas gift:

[shashin type=”photo” id=”812,810,811,809,808,807,806″ size=”medium” columns=”max” order=”user” position=”center”]

This is a one-of-a-kind, hand-made leather wallet, made by my good friend Joel Beck.

Thanks Joel.

MoMo All-Hands: Day 4 (Another Gorgeous Day, and then a Dicey Situation at Night)

As usual, I woke up, grabbed a shower, and headed down to breakfast.  The routine was really starting to sink in.

Breakfast was yogurt, croissants, and granola, with little cakes.  Very tasty.  And the weather?  Gorgeous as usual.

After breakfast, we were underway.  There was lots of talk about features in the upcoming version of Thunderbird.  There was a long talk where we batted around ideas on how to reward contributers to Thunderbird.

I got a lot done that day – I’d been having some trouble getting Ubuntu Natty running on my laptop virtual machine, and I finally got it going.  I kicked off a Thunderbird debug build, and got the globalmenu extension I was tinkering with compiled.  I had a segfault to solve, and I dug into that.

Around five, we broke for dinner.  Everybody was going to different places, and I chose an Italian restaurant called Il Lupino with Karen, Gozer, Shane, and Mark Banner.  The restaurant was new, and seemed like they were still getting their act together.  It seemed like there were a lot of waiters standing around not doing much, and only one or two staff running around doing a whole bunch.

It was a bit of a wait, but they fed us bread.  Eventually, dinner arrived, and it was tasty.

After dinner, we walked back to the hotel along the beach.  It was a nice, cool night.  There was a super fine mist in the air, which I gather is the Hawaiian version of a light rain.

When we got back to the hotel, a bunch of people were playing XBox in the meeting room.  I watched for a bit, played a few rounds, and eventually called it a night.

Trapped

I headed up to my hotel room, and started getting ready for bed.  As I was brushing my teeth, I noticed something strange about my bathroom.

The bathroom was divided up into two sections.  One section had the sink, a big mirror, and a bathtub.  The other section was where the toilet and the standup shower were.  The sections were divided by a doorway that didn’t have a door to go with.

Or so it seemed.  On closer inspection, it turned out there was a door to go with the doorway.  It was a sliding door, like one might have to out onto a back patio, and it was recessed into the side of the doorway.

I was curious, so I pulled it out to take a look at it:

[simage=771,288]

The only feature on the door was a little metal plate for sliding it back and forth:

[simage=769,288]

And you’ll notice that in the center of the little metal plate is a white button.

I’m a naturally curious guy, and I wanted to see how the locking mechanism worked.  So I closed the door, and pressed the white button.

It only took me a few seconds to realize that there was no way to un-press the white button. I had just trapped myself into the toilet/shower side of the doorway.

At first, I thought this was really funny.  What a stupid design for a door!  After a few seconds of laughing at myself, the gravity of my situation started to sink in:

  1. I had no cell phone to call for help.  No roommate who’d be coming in.
  2. Nobody would be looking for me until morning.
  3. The door didn’t have any hinges for me to take apart.  And, because it was a sliding door, it meant that all edges of the door were recessed into the doorframe, which meant no kicking it down.
  4. I’d put the “do not disturb” on my door, so I couldn’t count on the cleaning lady to let me in in the morning.
  5. The space in that section was about the size of two phone-booths combined.  If I had to sleep there, it’d be an uncomfortable night.
  6. It was late, so banging on the walls and making a huge ruckus was probably a last option.  And there was no guarantee that any of the rooms near me were occupied.

It was a sticky situation.  Not life-threatening by any means, but quite a predicament nonetheless.

Macgyver

So, after thoroughly examining the lock, my first step was to take an inventory of my tools:

  1. There were towels and toilet paper.  I didn’t see how I could use those on the lock.
  2. The contents of the toilet tank included the floater ball, and a chain for the drain mechanism.
  3. The shower head was connected to the faucet via a snaky metallic tube that could be disconnected at both ends.
  4. I was carrying my wallet, which had some paper money, and some coins.
  5. I was wearing my belt.
  6. I had shorts on, and the metal tab on my zipper could possibly be used as a screwdriver.

I decided to attack the lock with my belt.  I rammed the swing-arm on the belt buckle into the area between the white button and the metal plate, seeing if I could make some room on either side of it.  I ended up working away some of the plastic on the button, and was able to make some space.

Ok, so now I could wiggle the button back and forth.

Continuing with my belt, I tried to “scoop” the button out – but the plastic was too slippery, and I didn’t seem to be making and progress.  And, at some points, it seemed like the button was going farther in, and I really didn’t want to make my situation any worse.

I switched tools, opened up my change wallet, and pulled out two dimes.  My fingers were too big to pinch the button and pull out, so I tried using the dimes.

It was starting to get hot in there.

With one dime pinched in each hand, I worked them like the world’s most awkward tweezers.  I grabbed the button, squeezed inwards towards the button, and tried to pull out.

The button was slick, and the dimes kept slipping off.  It didn’t look good.

And then…

Suddenly, I had a good grip on the button, and the dimes pulled it out.

I fist-pumped, slid the door open, and enjoyed the cool air.  I’d been trapped for about 25 minutes.  It was good to be out.

And then I took some photos.  Here’s a shot of the toilet/shower room just after I escaped:

[simage=770,288]

and here’s a shot of my trusty, if clumsy, tools:

[simage=772,288]

I went to bed pretty exhilarated.  I was looking forward to telling everybody about this at breakfast the next morning.

MoMo All-Hands: Day 3 (Data-Driven, Don’t Be Creepy, Italian-Chinese Dinner, Hipster-slamming)

At around 7:30AM, I rolled out of bed, cleaned myself up, and headed down to breakfast.

Breakfast that day was similar to the day before:  yogurt and granola.  Coffee and juice.  The cakes, however, had gotten the axe, and had been replaced by scones.

Very tasty.  A bunch of us ate breakfast out on the meeting room patio.  Once again, it was a gorgeous morning.

After breakfast, we all went inside to talk about data. Specifically, that we aim to be data-driven.  This means that if we’re making a big decision about Thunderbird, or any of the other stuff we’re working on, we should probably have some solid data to back up those decisions.  It’s a good idea; the road to bad design is paved with good intentions, and lack of data.

But how exactly are we going to get this data?  Are we simply going to monitor our users without their knowledge, like Big Brother, and study them like lab rats?  Are we going to collect reams of data about them secretly and silently in the background, without telling our users or giving them a choice?

Of course not, because that’d be evil.  And creepy.  Don’t track me, bro.

Instead, we will always ask the user if they’re interested in submitting data for study.  In general, our data collection is opt-in – and instead of tracking individuals, we aggregate the data, so that we never have a single person as a data point.  Nice.

A lot of ideas got tossed around about how we can ask the users for data, and what type of data we were interested in.  Some very interesting discussions took place regarding the Thunderbird “funnel” (the action path from visiting the Mozilla Thunderbird website, to downloading TB, to installing TB, to running TB, to making TB something commonly used).  Our funnel is pretty wide, but some website tweaks might make it even wider.  I’m excited to hear more about it.

After that, lunch.  Roasted chicken, mashed potatoes, veggies…once again, very tasty.  Cake for dessert.  We were getting pretty spoiled.

Following lunch, a bunch of us went outside to hear Andrew Sutherland talk about Wmsy – his constraint-based widgeting framework.  This was one of the talks that took place out on the patio, and the sun was blazing.  Much sunscreen had to go on, and I wish I’d brought sunglasses, because the image of the giant yellow pads of paper-on-easels that Andrew was drawing on was slowly being burnt into my retinas.  And then, sunscreen started getting into my eyes.  And yet, despite the blazing heat, the blinding sun, and the burning chemicals in my eyes, I was able to get a lot out of the talk.  Wmsy is pretty cool, and you should check it out.

After that, we went inside, and there was a bunch of GSoC talk.  Mentors talked about how it was working with GSoC students, and what kind of GSoC students we’d be looking for.  Then, a big brainstorm happened where we came up with potential GSoC projects.

[simage=767,288]

As a former GSoC student, I have to say, it’s a really worthwhile program.  I had an awesome summer doing GSoC.  Highly recommended.  Thumbs up, Google.

After that, the meetings were over.  I headed upstairs to talk to my parents and Emily on Skype for a bit, and then headed down to the lobby for dinner.  A group of us were eating at “Chow Mein”, an Italian-Chinese fusion restaurant.

It was pretty good. Fettuccine on one side of my plate, barbecue pork fried rice on the other, and some salad…a delicious and eclectic meal.  As an added bonus, while refilling our glasses, our waiter told us in excruciating detail about how he got pulled over for DUI on his birthday.  On that note, we had a fantastic dessert, and then left.

The sun was down, and we walked slowly along the beach back towards the hotel.  We stopped off at the beach-side patio to hang out a bit first.

[simage=766,288]

We raced Mai Tai umbrellas, and trash-talked hipsters.  It was probably the most hipster thing I did in Hawaii.

And speaking of hipsters (mildly NSFW):

Eventually, I made it back to my hotel room, and fell asleep.