Older blog entries for ctrlsoft (starting at number 84)

Working from home

For about 6 months now I've been working for Canonical on the Soyuz component of Launchpad. Like most other engineers at Canonical I don't work at the office but from a desk at home, as our nearest office is in London, not really a distance that is feasible for a commute. I do work at regular hours during work days and stay in touch with my colleagues using IRC and voice over IP.

I did have some experience working on contracts and study assignments from home previously, but working a fulltime regular job has turned out to be a bigger challenge. It seems easy enough. No travel time, every day is casual Friday, being able to listen to obscure death metal all day without driving coworkers crazy. Awesome, right?

Well, not entirely. I can't say I wasn't warned beforehand (I was) but I still ran head-first into some of the common mistakes.


I can work well by myself and I appreciate the occasional solitude, but it does get kinda lonely when you're physically sitting by yourself for 8 hours a day, five days a week.

Fortunately we regularly have sprints at different locations around the world and, apart from appealing to the travel junkie in me, that brings some essential face time with coworkers. Electronic communication mechanisms such as mailing lists, IRC, Skype and, more recently, mumble also help make the rest of the company feel closer, but it's still very different from being able to talk to people at the water cooler (the point of which, btw, still escapes me. What's wrong with proper cold tap water?).

What also seems to help is going into the city and meeting up with others for lunch, or even just to get groceries.

Concentration, work times

One of the nice things about working at home is that you're quite flexible in planning your days; it's possible to interrupt work to run an errand if necessary. The downside of it is that it is also really easy to get distracted, and there's something I do very well: procrastinating. I initially ended up getting distracted quite often and then would end up working into the evening to make up for that lost time. The result being that, while only spending 8 hours doing actual work, it felt like having been at work for 12 hours in the end and having lost all spare time. Or as a friend summarized it accurately: working at home is all about boundaries.

This is at least partially related to the fact that I am a compulsive multi-tasker; I always do several things at once and context-switch every minute or so (prompted by e.g. having to wait for code to compile), including checking email and responding to conversations on IRC and Google Talk. This, among other things, has the affect that I respond quite slowly in IRC/IM conversations; if you've ever chatted with me you've probably noticed it. Multi-tasking has always worked well for me, despite research suggesting otherwise, probably because software development always involves a lot of waiting (for vcses, compilers, testsuites, ...).

Recently I've tried to eliminate some more of the distractions by signing out off Skype, Empathy (Google Talk, MSN, etc) and Google reader completely and only checking email a couple of times per day.

Feeling productive

What has perhaps surprised me most of all was how essential the satisfaction of getting something done is. After spending about a day staring at Python code it's important for your mood to have accomplished *something*. This appears to be a virtuous circle, as lack of progress kills the fun of work, which kills motivation, which causes a lack of progress.

I am hard core, so during my first few months I used my lunch breaks and evenings to hack on other free software projects, triaging bug reports that had come in or reviewing patches. Despite the fact that this is indeed technically a break from Launchpad, it didn't (surprise!) seem to work as well as stepping away from hacking completely. Also, it turns out that spending 14 hours a day programming doesn't make you all that much more productive than working a couple of hours less.

What I've discovered recently is that getting at least one branch done by the end of each day, even if it's just by fixing a trivial bug, helps tremendously in giving me some sense of accomplishment. Julian also wrote a blog post with some useful hints on feeling productive a while ago.

What is your experience working from home? Any good tips?

cp: Sieges Even - Unbreakable

Syndicated 2010-06-25 12:38:00 from Stationary Traveller

Proof of concept OpenChange server working

Seeing this makes me very happy. It's taken us a couple of years to get to this point but we've finally made it, mostly thanks to the dedication and persistence of Julien and Brad.

Syndicated 2010-06-08 19:09:08 from Stationary Traveller

Input overload

During the last few months, despite filtering and thread-scoring, I'm having trouble keeping up with the continuous flood of emails that come my way. I'm now spending way too much of my time dealing with both email and other background noise (hello, web 2.0 services). To cope with this, I've now dropped off a couple dozen mailing lists, unsubscribed from a similar number of RSS feeds and left a few IRC channels. I'm slowly working working my way through the backlog of emails and merge requests that I still have to deal with. If you need me to participate in a mailing list discussion, please CC me.

cp: Agalloch - Our Fortress Is Burning, pt. 1

Syndicated 2010-03-13 23:05:19 from Stationary Traveller

Nostalgia: 10 Years of Samba Hacking

While searching for something else I happened to come across one of my first posts to the ntdom list in November 2000.

My post is a simple question about a Samba crash that I myself no doubt had introduced. I'm sure I could have found a solution to it by using Google - excuse me, AltaVista - but I still received a friendly reply from Jerry explaining me to use GDB. I'm not too embarrassed, at least I used proper punctuation and wrote somewhat comprehensible English.

It's also strange to realize it's already been almost ten years since I started hacking on the Samba project.

Syndicated 2010-02-11 04:32:00 from Stationary Traveller

Nostalgia: 10 Years of Samba Hacking

While searching for something else I happened to come across one of my first posts to the ntdom list in November 2000.

My post is a simple question about a Samba crash that I myself no doubt had introduced. I'm sure I could have found a solution to it by using Google - excuse me, AltaVista - but I still received a friendly reply from Jerry explaining me to use GDB. I'm not too embarrassed, at least I used proper punctuation and wrote somewhat comprehensible English.

It's also strange to realize it's already been almost ten years since I started hacking on the Samba project.

Syndicated 2010-02-11 01:34:00 from Stationary Traveller

Linux.Conf.Au 2010 - Day 3 - Wednesday

I went to Jonathan Corbet's yearly update of the status of the Linux kernel. He talked about the various big changes that went into the kernel over the last year as well as the development processes. The Linux kernel is probably one of the largest open source projects, and very healthy - there are a lot of individuals and companies contributing to it. With this size
comes a few interesting challenges coping with the flow of changes into Linus' tree. Their current processes seem to deal with this quite well, and don't seem to need a lot of major changes at the moment.

His talk also included the obligatory list of features that landed in the last year. The only one that really matters to me is the Nouveau driver, which I'm looking forward to trying out.

The second talk I went to in the morning was Selena Deckelmann's overview of the Open Source database landscape. She mentioned there's new projects started daily, but it was still a bit disappointing not to see TDB up there.

After lunch Rob gave a talk about Subunit, introducing to the ideas behind the Subunit protocol as well as presenting an overview of the tools that are available for it and the projects that have Subunitized as of yet. It's exciting to see the Subunit universe slowly growing, I wasn't aware of some of the projects that are using it. The recently announced
testrepository also looks interesting, even though it is still very rudimentary at the moment.

In the evening Tridge, Rusty, Andrew, Jeremy,AJ and I participated in the hackoff as the "Samba Team".

The hackoff was a lot of fun, and consisted of 6 problems, each of which involved somehow decoding the data file for the problem and extracting a short token from it in one way or another, which was required to retrieve the next problem. We managed to solve 4 problems in the hour that the organizers had allocated, and ended first because we were a bit quicker in solving the 4th problem than the runner-ups. No doubt the fact that we were the largest team had something to do with this.

I hung out with some of the awesome Git and Github developers in the Malthouse in the evening, and talked about Dulwich, Bazaar and Launchpad ("No *really*, I am not aware of any plans to add Git support to Launchpad.").

Syndicated 2010-02-04 00:06:17 from Stationary Traveller

Linux.Conf.Au 2010 - Day 2 - Tuesday

On Tuesday we had the "Launchpad" mini-conf, which featured talks from various Launchpad developers about different parts of Launchpad as well as from community members about their use of Launchpad. It wasn't necessarily about hosting projects on Launchpad, but rather about how various projects could benefit from Launchpad.

I popped out of Launchpad track for a bit to attend Andrews talk about the current status of Samba 4. He did a nice job of summarizing the events in the last year, the most of import one of course being the support for DC synchronization. I'm proud we've finally managed to pull this off - and hopefully we'll actually have a beta out next year. We have been saying "maybe next year" for almost 4 years now when people asked us for estimates of a release date.

In the afternoon I gave the talk about Launchpad code imports and code reviews that I had prepared with Aaron earlier. We had planned to give the talk together, but I unexpectedly ended up giving it by myself because of some confusion about the schedule.

Syndicated 2010-02-03 19:44:24 from Stationary Traveller

Linux.Conf.Au 2010 - Day 1

Linux.Conf.Au has a reputation for being one of the best FLOSS conferences in the world, and it more than met my (high) expectations. The last one I attended was also in New-Zealand, but further south - in Dunedin.

Day 1 - Monday

As usual there were miniconfs the first two days before the actual conference. On the first day I attended some of the talks in the Open Languages track.

mwhudson gave a talk about pypy - Python implemented in Python. He discussed the reasons for doing what they do and the progress they've made so far. Like so many of the custom Python implementations, one of the main thing that's holding them back is the lack of support for the extensions written in C for CPython.

[en.wikipedia.org/wiki/Rusty_Russell Rusty] gave a quick tutorial to talloc/ after lunch ("it's a shame K&R didn't think of this!") and explained why it's so great.

In the afternoon I caught some of the talks in the distro summit track. Both of the talks that I attended happened to be Ubuntu-related - first Dustin gave a quick introduction to the components of Launchpad, followed by a talk from Lucas about the
relationship between Ubuntu and Debian. There was a discussion afterwards about
interoperability between the various hosting sites and bug trackers. Several audience members questioned the relevance of Debian and suggested everything should just switch to Launchpad, but this seemed to be founded in ignorance. (none were actually Launchpad developers, contrary to the impression Martin seems to have).

Syndicated 2010-02-03 18:15:45 from Stationary Traveller

Build from branch

At the moment I am returning home after three very productive and awesome weeks in Wellington, Sydney and Strasbourg.

I spent the first week in the West Plaza in Wellington, working together with fellow Launchpad developers on getting the basics of building from branches working. We eventually managed to get something working at the end of Friday afternoon. We split the work up at the beginning of the week and then worked on it in pairs for a couple of days before integrating all work on Friday. At the end of the week William managed to get a basic source package build from recipe through the queue.

Pair-programming with Jono and Michael was very educational, I suspect I'll be a fair bit quicker when I get back to hacking on Launchpad by myself. It's scary to see how some people can make the changes that would take me a full day in a mere hour.

Tim picked up my initial work on support for Mercurial imports and completed and landed it during the sprint. Since the rollout on Wednesday it is possible to request Mercurial imports on Launchpad. Most imports (e.g. mutt, dovecot, hg) seem to work fine, with the main exception being the really large Mercurial repositories such as OpenOffice.org and OpenJDK. This is because of (known) scaling issues that will be fixed in one of the next releases of bzr-hg.

This was the first time I was back in Wellington since 2006, and the weather this year was exactly as I remembered it; showers and wind, with the occasional day of sunshine. For a capital the city centre is quite small, but it has its charm and the view from the various hills around the bay is

On the weekend I met up with Andrew and Kirsty and we did some hiking around Wellington (where the weather allowed it).

Syndicated 2010-02-01 16:49:10 from Stationary Traveller

My first week as a Launchpad developer: impressions

Roughly a week ago I joined Julian, Muharem and Michael, working on the Soyuz component of Launchpad. For now I've been working on easy Soyuz bugs, as a way of becoming more familiar with the internals. I'm working from home but I had the chance to hang out with some of the other Launchpad developers, including the full Soyuz team, at Lucid in Dallas.

Launchpad is different from most other FOSS projects I have worked on so far. Some things I noticed during my first week:

The codebase is big and well tied together. I don't think I've ever used grep and ctags as often as I have in the last week. Fortunately, the directory structure makes it relatively easy to predict where to look for things.

Reviews are really quick - no long round-trips between author and reviewer trying to get a branch landed. This is a really *really* great thing.

It's easy to find somebody familiar with a particular piece of code and it doesn't take long to get an answer when you ask questions. I'm still getting used to this - I tend to ask questions sporadically because I have gotten used to having to wait a couple of days for an answer that's actually useful.

Setting up the development environment takes some time. Or perhaps I'm spoiled by Bazaar where "bzr branch lp:bzr bzr && ./bzr/bzr selftest" is all you need to start hacking. And it seems like karmic is the only platform on which things work - I tried with Debian Sid and Lucid as well, but things broke in strange and unusual ways.

The test suite is heavy and takes long to start up, something that makes proper TDD too hard. I also managed to run into some unexplainable problems where the librarian wouldn't shut down on one of my systems. Since there is only one instance of the database it is not really possible to run multiple instances of the testsuite at the same time unless you use chroots or something like that - this makes it hard to work on multiple branches at the same time, something which would especially be nice since the testsuite is slow (so you can run the testsuite in one branch, hack in another and alterate).

Doctests, while fast, a bit of a nuisance. Because of the setup/teardown overhead that is paid for every single test, doc tests are a lot faster than unit tests. On the other hand, pdb doesn't play well with doc tests - it doesn't show any context. Conceptually I also prefer small unit tests over doc tests, since they're quicker to read, easier to understand and there's less side-effects from previous instructions in the test that could affect the code that's being tested.

And for those that know me well; yes, getting used to somewhat regular working hours was indeed a challenge, but I seem to have managed.

Syndicated 2009-12-10 20:10:17 from Stationary Traveller

75 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!