This Monday I turned 41 years old. It came as a bit of a surprise. All my life I've felt a particular age, usually not my actual age, and it's always been younger, as if I got stuck. For example, I felt 34 for at least three years after I stopped being 34, and I think the one before that was 27. This is the first time I've gotten ahead of myself: I feel like I'm about 44, and I keep being surprised that I'm only 41.
It has been a rocky year. My last birthday was marked by picking up my family from the airport in Saskatoon, and picking up my mother's ashes from the crematorium on the way out of town. Then we stopped for burgers at A&W.
This birthday was marked by sharing a traditional memorial feast for (and with) our ancestors with good friends who also lost a grandparent on July 31. We had burgers.
I'm going to go out on a sturdy limb and say 2015 wasn't one of my best years. It wasn't an unqualified disaster, though. Let's start at the beginning.
The year started off phone-free, because I dropped my phone down a drain in December 2013. I stubbornly tried to manage without buying a new iPhone, but I finally gave up and blew the $600 or whatever on an unlocked replacement. I'm much more careful with my phone outside, now, so I guess I grew as a person.
Today would have been your birthday. It’s been three and a half months since you died, and I thought you might like an update.
I know that of all the places you’re likely to be (and I expect you’re probably not actually anywhere, although Shirley thinks you’re in the blue jays) the Internet is the least likely, so I’m not sure why I’m posting this online. Maybe, like everything else post-mortem, it’s for me, not for you --- on account of you’re dead.
I hope being dead is working out for you. Wouldn’t it be nice if there were really a heaven, and you could be with your dad and your sister again? Maybe even your handsome first husband, who you loved so much. (I didn’t find any pictures of him in your stuff --- but there were pictures of Dad’s first wife. You were way prettier.)
(This article is also posted on Mozilla Hacks.)
You might have heard about Mozilla’s WebExtensions, our implementation of a new browser extension API for writing multiprocess-compatible add-ons. Maybe you’ve been wondering what it was about, and how you could use it. Well, I’m here to help! I think MDN’s WebExtensions Docs have a pretty great definition:
WebExtensions are a new way to write Firefox extensions.
The technology is developed for cross-browser compatibility: to a large extent the API is compatible with the extension API supported by Google Chrome and Opera. Extensions written for these browsers will in most cases run in Firefox with just a few changes. The API is also fully compatible with multiprocess Firefox.
The only thing I would add is that while Mozilla is implementing most of the API that Chrome and Opera support, we’re not restricting ourselves to only that API. Where it makes sense, we will be adding new functionality and talking with other browser makers about implementing it as well. Finally, since the WebExtension API is still under development, it’s probably best if you use Firefox Nightly for this tutorial, so that you get the most up-to-date, standards-compliant behaviour. But keep in mind, this is still experimental technology — things might break!
Okay, let’s start with a reasonably simple add-on. We’ll add a button, and when you click it, it will open up one of my favourite sites in a new tab.
Six years ago, I started contributing to Mozilla.
I can’t say 2014 was one of my best years ever. I tried to travel, and failed; the house ate all our money; my mom got sick. On the other hand, my mom got better (and we discovered how much fun it is when I visit her without the kids), and we got kittens.
We don’t get a fog a lot in Toronto, and on a foggy night about a month ago the Christmas lights were particularly lovely -- dreamy and soft. I was on the way home from a meeting and thought the lights on house on a corner were so pretty, I wanted to take a picture to show the girls. I paused at the curb opposite the house, and took my phone out of my pocket. I still had my mittens on, but I needed my fingers to use the phone, so I wedged the phone in my left hand, wedged between my fingers and the fleshy base of my thumb. I used my fingertips and thumb to remove the mitten from my right hand, and as I did so the phone slipped, or my grip relaxed. For the longest second ever recorded, my phone fell toward the storm drain I had just realized I was standing above.
One of my favourite upcoming features in ES6 is Template Strings. I’ve used JQuery’s templates in some previous code I’ve worked on, and while it was very useful in finishing the feature on time, it’s aged now and relying on third-party libraries which we don’t have time to keep up to date isn’t the best idea and so we’re in the middle of some work to remove them. So having said that, I’m quite happy to see something similar arriving in the base language, so that we can take advantage of it without having to add any extra code.
As an aside, all the code below was tested in Firefox 34, using the Scratchpad. The comments are pasted in below the code when you select it and choose the
Execute » Displaymenu item or hit
Cmd+Lon Mac). I hear they also work in Chrome, but they didn’t seem to in the version I was running (39.0.2171.95), and I didn’t want to start messing with an
--es-stagingflag. If someone can confirm whether they work or not, I would certainly appreciate it! :)
Well, I managed to spend New Year’s Eve lying sick on the couch, and then went to bed semi-delirious from lack of sleep at 12:08, which kind of sucked, but I’m still hopeful that 2015 will be better than 2014 was. I mean, it almost has to be, right?
Anyways, my first, and so far only, resolution is to consume less and create more. When I look back on the year, I find I have spent more of my free time than I’ld like passively consuming other people’s content instead of making new things of my own, and that kind of bothers me. I’m very glad that a large part of my job involves making things, and that has definitely been rewarding, but there are also a lot of personal projects I want to start or finish or just push forward. And it doesn’t have to be code. I’ld like to write more blog posts, to explain the things I’m doing, and why they interest me enough to spend time on.