Friday, February 15, 2008

About Branches and PPAs

I've recently experienced a very successfully story regarding the benefits of using PPA in Launchpad, that I'd like to share with you.

As you know I'm not an official Ubuntu developer, I wish I could have the knowledge and time required to be part of such bright group of people, but it's not the case. So, I'm writing this as a mere enthusiast.

Going straight to the point, some days ago, I've got curious about Twitter (again time only allow me to see 'old' stuff in the net). I've signed up, typed some texts, followed some friends and it became very boring ...

I thought it could be better if they provide a standalone client and voilĂ , I found the upstream project and the ubuntu gutsy package

Internet is really fast above the equator.

I've installed '1.0~beta-5', but my dark theme didn't fit the darkblue text very well :(


Checked hardy version to see it got better support for GTK themes and it didn't.

I didn't think twice and took the liberty for quickly registering a product in Launchpad and imported the upstream SVN branch.

Then, expecting to get very lucky, after checking that the build dependencies where constant, I realized it could build on gutsy.

I've downloaded the hardy sourcepackage:

$ dget https://edge.launchpad.net/ubuntu/hardy/+source/gtwitter/1.0~beta-6ubuntu1/+files/gtwitter_1.0~beta-6ubuntu1.dsc

After unpacking and applied the diff, I've created registered and pushed a branch for the 1.0beta6 package series so I could keep track of my changes.

I already have a activated PPA, but following PPAQuickStart describes it in a very detailed way.

Felling brave, again, I've simply mocked a smaller version and uploaded a backported version to my PPA.

$ cd gtwitter-1.0beta
$ dch -D gutsy -b -v 1.0~beta-6ubuntu1~gutsy1
[type a changelog]
$ debuild -S -sa
[type your gpg passprase twice]
$ cd ..
$ dput my_ppa-production gtwitter_1.0~beta-6ubuntu1~gutsy1_source.changes

After 5 minutes I got an email from Launchpad informing that the source was accepted.

Got extremely surprised when, 40 minutes later, it was already successfully built (it is getting faster...)

[enabled my PPA in /etc/apt/sources.list]
$ sudo apt-get update
$ sudo apt-get install gtwitter
...
Setting up gtwitter (1.0~beta-6ubuntu1~gutsy1) ...

...

It is still dark and unreadable, true, but works very well in gutsy.

What's the problem ?! I do have the code :)

Using my non-existent c#-fu, I've managed to change the code the way I wanted , to use gray fonts.

My change will probably be considered offending by the upstream maintainers, but shhh, they don't need to know right now.

(you've gotta love the indentation pattern used by them)

$bzr ci -m "trying a new version, using 'gray' fonts to match my dark theme."
...
$bzr push

Code changes are there, publicly available to embarrass me for the rest of my life:

Well, let's upload the new version, I have a lot of friends using dark themes (it's the future !), they will send me cookies :)

$ dch -D gutsy -b -v 1.0~beta-6ubuntu1~gutsy2
[another creative changelog message]
$ debuild -S

[note that I've omitted the '-sa' option, the orig.tar.gz doesn't need to be sent again, it's already published]
$ cd ..

$ dput my_ppa-production gtwitter_1.0~beta-6ubuntu1~gutsy2_source.changes

5 minutes, I had the notification in my mail box, another successfully upload :)

Other 40 minutes and I got the binary I wanted.

$ sudo apt-get update
$ sudo apt-get install gtwitter
...
Setting up gtwitter (1.0~beta-6ubuntu1~gutsy2) ...

...




That's all, folks.

It's quite possible that you hated it ... No problem, all you need is:

bzr branch lp:gtwitter/1.0-beta6

to easily make it the way you want and then wait 45 minutes to spread the free-software joy amongst your friends.

Sunday, August 19, 2007

"Inbox Zero" in action

Recently, I was suggested to take a look at Inbox Zero - action-based email" article by Merlin Mann (of http://www.43folders.com).

In few words, it basically introduces a programmatic way to process your incoming messages in order to maximize the actual task demanded by them.

I found the approach very useful, specially in a environment like we have in Canonical, with a high flux of daily messages (around 1k including Launchpad, Ubuntu and internal communication) of which, at least, 20 % would, theoretically, require some action from me.

The fact is, I must recognize, that only a small part of the demanded actions are taken at a reasonable time, most of them are delayed by a explicit inefficiency when dealing with email.

Part of the admitted inefficiency is acceptable since, as a programmer, I still have to deliver some work and it does have higher priority (!). However it is clear that I could continue to do my work (maybe more) and become more responsive if I adopt a better way to deal with emails.

Well, the title of the post says "in action", so let's go for it:

First, I've switched to Gmail sometime ago and the byzantine "enormous number of folders & filter" were inherited from a long time using IMAP/POP based emails accounts.

That's gone ! I've only preserved company/wide-topic tags (that's what gmail calls it, actually) and they are:

* Gwyddion: all messages related to the Gwyddion scope. it includes system/server messages, development & bugs mailistings;
* Async: all messages related to Async, including kiwi-dev and internal communication;
* Canonical: Canonical communications and Launchpad development messages;
* Ubuntu: Ubuntu development messages;
* Personal: everything else that do not fit in the categories above, including several developments maillists like Trac, Twisted and MSPGCC.

What is the aim of this severe change ?

I expect to give more attention to the messages that really deserve it, for instance, all Canonical messages will be processed in 30 minutes batches, i.e, I expect to spend 2 or 3 minutes one each core-hours processing them.

Gwyddion & Async related messages can be processed in a less frequent manner, let's say once every 2 or 3 hours. That's actually the usual ETA for actions in that area anyway.

Finally, 'Personal' messages will be processed maximum twice or three times a day, normally before start, after lunch and after finished my core-hours, times when I will need something to 'warm up'. Honestly, nobody will die if I do that.

Summing up, considering that my core-hous varies between 8 and 9 hours a day, I expect to spend:

* 8 x 3 minutes = 24 minutes processing Canonical messages;
* 4 x 3 minutes = 12 minutes processing Gwyddion & Async messages;
* 0 minutes dealing with Personal messages during core-hours;

Right, it is still 36 minutes, about 5 % of my day, 'dealing' with a pile of messages.

One could say it is still too much, however, I expect to be a lot more responsive for messages that requires me to only *nod* or say "Yes, sir. We can do that. What else ?" ... And, as far as I can tell, a considerable amount of my incoming messages are like that.

Quick and precise answers will increase the my "information throughput level" and benefit the entire community that I take part (or, at least, those persons that depend on me on a certain moment). Also having a constant amount of time applied/spent in a given task will help me to optimize it if necessary (doesn't it really look like programming ?).

That's it ... check new messages in the respective folders at the established frequency, answer those that you can with a Yes/No (obviously, two paragraphs answers are included in this category) and defer (in gmail it would be star it) those that you will have to think about. The deferred messages will have to be dealt as Tasks during your day, scheduled according their priorities (decided during the processing time).

The game is all about keeping your Inbox (specific folders) empty at the end of their 'processing period' and big *bonus* for ending the day also with "Zero Starred" messages.

(Your friends will understand if your Personal messages take a little longer to be answered, thing that won't happen to your bosses/clients ...)

I will come later with more accurate statistics about this experiment.

The video of the presentation at Google is available in http://www.merlinmann.com/2007/07/26/google-inbox-zero/.