As promised, Launchpad has been fully open sourced (as opposed to the initial idea, nothing has been held back). Get it now, fix your favorite pet bug, and improve tens thousands of people's experience.
Update: yes, fully means including soyuz and codehosting, Mark has decided to release everything. The whole history is there.
See the loggerhead page:
I kicked off an import of Loggerhead's history, and in less than a day, it was up and working.
Kudos to the ohloh team!
A week ago I started going through my blog's logs, and realized that I'd had a jump in visits from Google. Digging a little bit deeper into it, I realized that a lot of people seem to be searching for "working at canonical" phrased in different ways. From what I can gather, it's split up into two groups: people who want to find a job in Canonical, and people who are considering a specific role and want to know what it's like.
So, I thought it would be useful to provide information for the dozen of people who land here every day 🙂
If you want to work for Canonical, check out the employment page, it always has the latest job offers: http://webapps.ubuntu.com/employment/
Among many other things, my team is currently looking for awesome people to join the User Experience Team, the coolest place to be today 😉
As for what it's like to work at Canonical, here's my take on it:
At this point, it's been a little over five months since I started working full time, although I was doing some contracting work before that, and I've been around the Ubuntu and bzr community for ages, so I already knew a lot of the people before joining.
One of the coolest things for me is that the way most of the company works, is basically the same as your typical open source project: mailing lists, irc, distributed, and filled with passionate people. If you have an open source background, the transition should be pretty seamless. Coming from other companies may take a little bit of getting used, but you know how it is, "your mileage may vary".
The Ubuntu-like atmosphere where everybody is extremely nice and respectful seems to span across the whole company as well. This was especially surprising to me considering that everyone is astonishingly smart, and have done amazing things I had read (and still do!) on news sites for years. My experience is that when too many smart people are together, it's a much more cut-throat competitive environment. Here, it is not. You could sit down and have a fantastic and interesting dinner with anyone in the company (I've shared meals with dozens of different people, and it's held up true every single time).
On the technical side, all the teams are constantly revising and improving work flows and tools, pushing towards the cutting edge by adopting all kinds of lean and agile development strategies, while still being very much test-driven. What can be more appealing to a developer than that?
Finally, there are so many interesting projects being worked on at the same time, it's often very hard to keep up with what's happening. Personally, I believe that the balance between open source development and projects developed in-house as services or for third parties, plays a very big part in making everything happen so fast a two-hundred-and-something people size the company. It's amazing how so many people are payed to work full time on directly on free software, directly interleaved with the community.
So, as you can guess, my recommendation is that if you ever get the chance to work for Canonical, take it, it will almost certainly be a fulfilling experience.
The 1.10 release is mostly a bug fix release. There has been some effort to improve performance, we've updated the code to work with bzr 1.10, URLs are now much more user-friendly and permanent and breadcrumbs have been added to make navigation easier.
As part of the release, I have also uploaded packages to the bzr PPA: https://launchpad.net/~bzr/+archive
My intention is to keep doing that in releases from now on 🙂
It has also been rolled out to Launchpad, so you will see nicer URLs like: http://bazaar.launchpad.net/~loggerhead-team/loggerhead/trunk/annotate/head:/serve-branches
- Fixed some performance issues (Robert Collins, James Westby, Martin Albisetti)
- Update loggerhead to work with bzr 1.10 and the latest bzr-search (Robert Collins)
- Add startup deamon script for Linux (Marius Kruger)
- Switch navigation from file_ids to paths. Fixes bugs #260363, #269365 and #128926. (Martin Albisetti)
- Fix bug #258710 ("the /files page explodes in an empty branch"). Also minor improvements to the /files and /changes pages. (Marius Kruger)
- Added --port, --host and --prefix options to serve-branches script. (Martin Albisetti)
- Fixed broken template for project browsing with start-loggerhead (Martin Albisetti)
- Added --reload options to restart the application when a python file change. (Guillermo Gonzalez)
- Added error handling middleware. (Guillermo Gonzalez)
- Fix bug #243415 ("Tracebacks go to console but not log file"). Also minor improvements to logging in serve-branches and start-loggerhead. (Guillermo Gonzalez)
For those of you who heavily use Launchpad for code hosting, Jonathan Lange has a very good post about an optimization that has been rolled out in Launchpad a while ago. Check it out.
I bumped into the Who uses bzr page today again, and I'm impressed on how fast it grows, just a few examples:
Are you using it? Add yourself to the wiki!
This means that now you can use the --auto switch, and from now on, your commits will automagically get uploaded.
To start uploading automatically:
bzr upload --auto
bzr upload --no-auto
So, some of you already know, and some of you, including myself, will be a bit surprised.
Starting Monday, I'm going to start working full time for Canonical.
I've been active in the Ubuntu community since very close to the beginning, then jumped to working on Bazaar and surrounding projects, which, btw, has one of the greatest community ever. So, working for Canonical is like going to Disneyland 🙂
I've been doing some contracting work on my free time (mostly for Loggerhead, which turned out great, and some UI in Launchpad), and things just got more exciting every day, until at some point things just started speeding up, and I got offered to work full time a few weeks ago. Having sorted out the remaining details yesterday, Monday is officially my first day.
I'm going to stop working actively as a lead developer at my company, have found some very qualified people to take over the work I've been doing, and I'm going to fully focus on making user interfaces mind-blowingly good.
I'll also get to continue working on Loggerhead as part of my job, so expect to see the improvements to keep on landing regularly.
I'm really excited to start working full time with the smartest people in the world, doing a job that has the word revolution in it's description!
Update: see what happened 5 months later 🙂
I was lucky enough to be able to attend the Bazaar Sprint back in March, mostly thanks to Canonical sponsoring my entire trip across the globe 🙂
The sprint was interesting in all sorts of ways, and it got me working on several projects (some of which I'll talk about in future posts), but there was one in particular that amazed me how fast it was put together. Bzr-upload.
It all started one night, while sitting across the table from Vincent Ladeuil, the guy who basically wrote transports in Bazaar, and I started complaining about how I had to work around bazaar to make it fit into my daily work flow (doing web development).
The problem was simple: bzr doesn't update the working tree (the actual files) remotely, so there was no simple way for me to upload the websites I worked on a daily basis.
Long story short, Vincent asked some questions, sat down, wrote tests, wrote code to work with those tests (TDD, FTW), and after some fiddling, we can now upload websites (and anything else, actually) using bzr's knowledge of what we've changed, and it's solid transport libraries (ftp, sftp).
So... how does this work? Simple.
Assuming you already have bzr installed, fire up a terminal and do:
bzr checkout lp:bzr-upload ~/.bazaar/plugins/upload
Now that we have the plugin installed, go to the branch containing your website, and with a simple:
beuno@beuno-laptop:/mywebsite$ bzr upload sftp://beuno@host/path/to/http
No uploaded revision id found, switching to full upload
Did more work?
beuno@beuno-laptop:/mywebsite$ bzr ci -m'Random bug fix'
Committing to: /mywebsite/
Committed revision 2.
beuno@beuno-laptop:/mywebsite$ bzr upload
Using saved location: sftp://beuno@host/path/to/http
bzr-upload will remember the last revision you uploaded, and make sure it only sends what you've changed.
Project's page: https://launchpad.net/bzr-upload
Comments, feedback, patches, etc are very welcome.
- November 2014
- July 2014
- May 2014
- April 2014
- June 2013
- March 2013
- February 2013
- October 2012
- June 2012
- May 2012
- April 2012
- February 2012
- December 2011
- November 2011
- October 2011
- June 2011
- May 2011
- April 2011
- March 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- April 2010
- March 2010
- February 2010
- November 2009
- October 2009
- July 2009
- June 2009
- May 2009
- February 2009
- January 2009
- December 2008
- November 2008
- September 2008
- August 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007