Archive for the ‘Uncategorized’ Category

Everything looks worse in black and white

February 3, 2010

When we worked on describing our values at the Symbian Foundation, the adjective which came out top was Passionate. We are all passionate about what we do and what Symbian is for.

Working with a small group of passionate people can be great, but there are some perils which I’ve been thinking about recently. Everything is more vivid: the highs are higher, the progress is faster, the successes are sweeter. Sadly, the lows are lower and the frustrations more frustrating. Here are some of the bad things that can happen:

The Last Word – Passionate people care about getting their point across. Sometimes this drives them to keep going when others want to stop the conversation and just agree to differ.

Heat – Passion can turn a vigorous debate into a heated debate, and maybe even a full blown row. People care about the subject, so they are more likely to start the discussion in the first place, and invest more in winning the argument.

Toes – Caring passionately about the outcome can lead you to overstate your case, and to ignore common courtesy and politeness. Someone agrees to accept part of what you say? Great – but the temptation is to press harder to win the rest of the argument, when maybe you should be acknowledging the concession that they’ve made.

Dogma – The worst thing is when passion leads to “You disagree with me, so you can’t be a True Believer”. This is a really lose-lose mistake, because it divides people who ought to be able to cooperate, and poisons the mood for everyone. For the people on the receiving end, there’s no way to answer. Burn the heretic!

All of these bad things are made much worse by another feature of being passionate: if I am really passionate about something, I will build that something into my view of myself. If you challenge that something, then it feels to me like a personal attack. If you say that I’m not a true believer, then maybe you are right, and maybe that part of me just suddenly evaporates leaving … nothing?

So why am I blogging about this? Well, I’ve been surprised by the depth of feeling in some discussions lately, and very surprised by my own reactions. This blog is the result of trying to understand: now that it’s written down I can see clearly that I’ve been demonstrating some of these behaviours as well as being on the receiving end, and I have a few more things to watch out for. I will continue to be passionate about the Symbian adventure, and I hope to contribute more effectively by controlling that passion better.

Thanks for listening – you’ve been a great audience.

I wanna be like you, ooh, ooh

December 23, 2009

One day, I was using the “–similarity 100” feature of the Mercurial addremove command to work out which files were really just renamed rather than newly created. It struck me that Mercurial could do this more efficiently for the “100” case (files have identical content) by using the file checksums rather than extracting the files and diffing them. I thought I’d suggest this as a “wish” in the Mercurial project’s bug tracking system.

Could the “hg addremove –similarity 100” performance be improved by noting that the checksums of the two files must be identical for 100% similarity, and so there’s no need to extract the file content and compare. It’s a special case optimisation, but “identical” is surely the main use of this feature?

Here’s how the story unfolded:

2009-11-24 14:36 – I posted my wish

2009-11-24 14:51 – Martin Geisler agreed that it would be more efficient, and pointed me to the place in the Mercurial code where I could try to implement my suggestion.

It’s my itch, so it’s fair enough to suggest that I should do the scratching. I had a look at the code, but I’ve not done much Python yet and it wasn’t very clear to me how the code was actually working right now, and what functions I would need to call on which objects to get the checksums. I thought I might as well have a go, but probably another time.

2009-11-24 15:38 – Benoit Boissinot added a suggested implementation to the issue.

Wow! That certainly saves me some work, and probably helps me get my head around the Python code as well. I’m still a bit stuck, but I asked my colleague Pat Downey how I would build a version of Mercurial with the change. Pat offered to try it out for me, so I thought I’d wait for his results and then feed them back to Benoit the next day.

2009-11-24 18:31 – Pat emails me to say that he’s tried the change and it showed a speedup in a largish example of 17 minutes reduced to 6 minutes.

2009-11-24 18:45 – Benoit adds a rework of his changes, as commits into his working version

2009-11-24 21:03 – Benoit delivers the reworked changes into the mercurial-crew repository, and asks me to try out the new version

I come into work the next morning and discover that the stuff is all done. I confess that I didn’t follow up on the second set of changes and retest, but even that failing on my part didn’t stop the ball rolling

2009-11-26 16:00 – Benoit finishes testing the change to his satisfaction and promotes the code to the main repository.

From “wish” to implemented code in 49.5 hours!

This is what “good” looks like. No, strike that – this is what “outstanding” looks like.

It’s not about fancy tools, beautifully crafted instructions or elaborate processes: it’s about having people who are skilled in what they do and passionate about the project. I’m part of the Symbian Foundation and I’m passionate about what we do: in future when people ask me what the “contribution user experience” should be, or how package owners ought to behave, I’m going to say:

Look at Mercurial. Look at guys like Martin Geisler and Benoit Boissinot.

Go and do likewise…

Do you want to know a secret?

November 19, 2009

Back in the days of Symbian Software Ltd, Symbian OS was a commercial product with fairly complex licensing conditions. Code that was wholly owned by us as divided into 5 categories called A, D, E, F and G, with category A indicating the “crown jewels” , the very essence of the Symbian-nature. Most people didn’t get to see the Category A code, and even Nokia wasn’t permitted to change a line of it.

As you know (Pay attention in the back row), Symbian Software Limited is no more, the code has passed to the Symbian Foundation and we’ve started opening up the source code to the public. The Kernel and Hardware Services package is now available under the Eclipse Public License, and Lo and Behold! – there are the Category A files.

The list seems to have grown a bit since I last looked, probably because the distinction ceased to matter after Nokia completed the purchase of Symbian Software Limited in December 2008.

Good – that’s another bit of arcane knowledge I can forget about forever…

Don’t come around here no more

November 4, 2009

It’s quite striking how different life is working for an Open Source foundation, compared to a conventional commercial organisation. One difference is what happens when people leave.

In a commercial organisation, there is a very clear point at which you stop being “One of Us”: you give back your badge and your laptop, and then you are out on the street, with the door slammed shut behind you. Your accounts are closed, your existence terminated, and salt is scattered on the ashes.

Here at Symbian, it seems to be very different. Several people have left in the 7 months we’ve been going, and some of them continue to show up in our offices from time to time, working on stuff for us. Back in the commercial world it’s almost impossible to do contribute once you’ve left, but the Open Source world involves lots of volunteers and so people can switch easily from paid full-time work to occasional contribution.

X is no longer with us, except in spirit. And occasionally in body as well…

Hello Darkness, my old friend

September 4, 2009

As mentioned elsewhere, the main Symbian blog is undergoing a change of focus/policy, so it’s time to come back to a personal blog, where the usual disclaimers can apply.

Please tick one or more of the following (Note: viewing will be invalidated if no disclaimer is selected)

  • The opinions expressed in this blog are my personal views, and do not imply endorsement by my employer. Hell, I’m not sure I believe ’em half the time…
  • These words are published under the Creative Commons license, but don’t quote me on that.
  • By reading this posting, you agree that these words will not be used for purposes associated with chemical, biological or nuclear weapons or missiles capable of delivering such weapons, nor will they be resold if you know or suspect that they are intended or likely to be used for such a purpose.