At work we're in the process of rewriting Firefox for Android to replace most of our JavaScript/XUL front-end code with new code using Android's Java frameworks. This is looking like a very good move technically, but on a personal level it sort of cast me adrift. I've been working on the XUL front-end code for almost two years, and suddenly everything I've done or was about to do is living in a codebase that's soon to be abandoned.

Most of the team has jumped straight into the new front-end code, but I've had trouble doing that, partly because I had some loose ends to wrap up in the old code so we can ship the next few updates, and also because I was tired out from our last big project and didn't have the energy to jump right into another one. So I spent a couple weeks doing simple janitorial work like bug-fixing and sheriffing. This gave me some extra mental energy for my free-time projects like the AI class, and learning enough LLVM to contribute some patches to the Rust programming language.

I'm glad that I've learned to recognize swings in my productivity cycle. Instead of denial and procrastination during the low-motivation periods, now I try to accept them and use them to regroup. I think my anti-burnout strategy worked this time, since I now have some ideas of new projects I'm excited to try in the new codebase. If I'm lucky, that means I'm back on the upward swing of a new cycle.


Meet the authors

A few months ago we stayed at a small bed-and-breakfast while visiting family in Portland, Oregon. Two of our fellow guests were a couple with their own self-published comic book imprint. I had fun talking to them about their work, especially since I've been enjoying DMZ which is very similar to their latest title American Terrorist. (As a bonus, our kids are the same ages and managed to entertain each other nicely for part of our trip.) If you want to check out their work, you get the first issue for free as a PDF or from WOWIO or Comixology. The other issues are $1 each.

In other "self-published books by people I'm vaguely acquainted with" news, David D. Friedman (known to many of you as "patrissimo's dad") has published his second fantasy novel for the Kindle, and his medieval cookbook through Amazon's print-on-demand service. I've read and enjoyed both of his novels and several of his economics books; I haven't looked at the cookbook yet. (He also wrote a bit about the writing process and about self-publishing, if you want the behind-the-scenes view.)


Home office away from home

I've done working from home; I've done coworking; I've done the Mozilla Summit and soon I'll have my first work week. But this week I'm trying something different.

We're visiting my wife's parents in Port Townsend, WA for several days. Instead of taking vacation time, I'm working from their house this week. Since I already work remotely, my team will barely notice the difference. Meanwhile it will be a nice long visit for Sarah and her family, and I get to spend time with them in the mornings/evenings/mealtimes/weekend.

This has got me thinking about other new possibilities for nomadic working. It also seems relevant to this article on vacations and happiness research which says, "The most effective way to inoculate a vacationer against the deadening power of adaptation, however, may be the most counterintuitive — to break it up, to interrupt it with real life."


I've just returned from a busy week-long trip visiting family on the East coast. Now I'm ready to start my second week of work for Mozilla.

I stayed home for all my first week, to minimize potential hassles or distractions. It sure is nice and productive working alone in a quiet office for long periods, and going downstairs for meals and snacks with my family. But tomorrow for a change of scene I will be at StartPad at 1st & Columbia downtown (near Pioneer Square). If you're in the area and want to share lunch or coffee, email/IM/call/text me.

In the future I'll post to Twitter (which auto-updates Buzz and Facebook) on the days I'm downtown. You can follow me on any of those sites (or subscribe to Planet Matt) if you want to know when I'll be around.

Daylight Saving Time

Eleanor (after bed time):
Why is the sky not dark?
Now that it's spring, the days are longer. The sun is just starting to set.
Eleanor (cheerfully):
Daddy, can't sleep when the sky's not dark!



Freelance tips?

I'm starting my new job at Mozilla as a contractor. The last time I was an independent contractor was eight years ago, in Canada. I've got some decent advice from web sites like FreelanceSwitch and Seattle's Poplar, but I'd like to know if anyone here has consulting experience and can answer some questions:

  1. How do you track time and expenses, and send invoices? What do you consider billable vs. non-billable?
  2. I know health insurance is important, but do you have dental insurance or any other personal insurance?
  3. Do you have a separate bank account for your contracting business?
  4. Fellow Washingtonians, what business licenses and taxes do you file, aside from federal income and self-employment tax?
  5. Do you have a lawyer or accountant? If so, can you recommend one in the Seattle area?
  6. Anything else I might not have thought of?


SpreadFirefox Affiliate Button

Later this month I am starting a new job with the Mobile Firefox team at the Mozilla Corporation. I'll be staying in Seattle, with occasional trips to the Mozilla offices in Mountain View. I'll work mostly at home but I plan to come downtown about once a week to work at the library, coffee shops, StartPad, or friends' offices. Let me know if you are in Seattle or the Bay Area and want to get together sometime. After I start working from home I should be eager for company.

Kiha is still doing good things and I'll be watching their progress eagerly. I learned a lot there and I like the direction Kiha is taking, but Mozilla's offer was too good to pass up: working on free software, open standards, new platforms, and with many hackers whose work I know and admire.

Trivia: I've now had more non-student jobs in eight years than my dad has in thirty-eight.



It's been a while since I posted a personal update here. Sarah and Eleanor and I have been in a nice routine for a while now, so it usually feels like there's nothing new to report. Unlike last year, we haven't moved or changed jobs (or changed jobs again). Eleanor is now in the long steady climb through toddlerhood, so her milestones and breakthroughs are not as frequent as they were. But over a year, things do add up.

Eleanor turned three last month. This fall she started going to a nearby co-op preschool, four hours a week. She chatters constantly, and likes singing and rhyming. She has started drawing specific things, like people, flowers, and cookies. She likes taking baths but not having her hair washed. For Halloween Eleanor was a monkey and I was the man with the yellow hat. (Sarah was a firefighter, which also fit the Curious George theme.) She enjoys sharing her Halloween candy with us.

Eleanor still spends one day a week at my mom's house while Sarah and I are at work. When Sarah's school started this September, I moved to a four-day work week so I can stay home with Eleanor on Sarah's other work day. This continues a pattern: When Eleanor was born, I worked four-day weeks for a few months at Amazon after Sarah went back to work; before that at GoTech I worked four-day weeks to spend more time on side projects.

I'm still working at Kiha and we're still in stealth mode. The work itself has changed quite a bit, not surprisingly. I feel much more productive than just one or two years ago, thanks to improved sleep at home and a focus on habit- and skill-building at work. I've also started doing more studying and programming outside of work again. My recent side project Compleat got a nice reception on Hacker News and Reddit a couple of weeks ago. I did put a lot of work into that write-up, hoping for more people to read and share it.

That was also the first post at my new weblog. I'll post programming-related articles there instead of LiveJournal or my old Advogato diary, so please subscribe if you want to know what I'm working on. Or if you are subscribed to Planet Matt then you'll see my blog posts along with all my other feeds.



If you use the bash command line a lot, and especially if you'd like to add custom tab completion for different commands, please check out my new project Compleat. It's a way to create new bash completion rules without writing tedious shell functions.

I'm going to write up some more documentation and post this to Hacker News and other places in a few days, so I'd appreciate it if you can test-drive the installation process for me. Follow the link above to get the source code from GitHub; the README file has installation instructions. Please let me know if you run into any problems or bugs!