Archive for the ‘Projects’ Category

Shutter

Wednesday, March 11th, 2009

The Shutter logoScreenshots are screenshots, right? If whacking the “Print Screen” button doesn’t offer enough refinement, then surely firing up The Gimp, gnome-screenshot or knsapshot would give you what you need, wouldn’t it?

The team behind Shutter would disagree. I was interested to know what would motivate someone to develop a new screenshot app, so I asked Mario Kemper why he began work on Shutter.

Mario: Well, I am a computer science student working as QA person in my freetime. When i started to do the QA work I was looking for a neat screenshot application because we are doing a lot of documentation for the developers as well.

There were some apps like ksnapshot, gnome-screenshot etc. but they all focus on a single screenshot; no editing features, no session, no nice effects etc. So i started to develop Shutter (formerly gscrot) with these features and goals in mind.

There is another big point, though: we all spend much of our time in forums, wikis, chats etc. From time to time we need to do some screenshots and upload them so we can share them with other people so i wanted to have a built-in function to upload your screenshot with nice link-formatting so you can post the generated link directly in the forum, wiki etc.

Shutter uses Launchpad for bugs, code, translations, answers and blueprints. You can get hold of Shutter from the Shutter team’s Personal Package Archive.

Why PyRoom chose Launchpad

Wednesday, March 4th, 2009

Perhaps shutting out the distractions of the physical world is no longer enough.

PyRoom is a simple text editor that shuts out all the distractions you might find in a more complex editor or word processor, giving you nothing but a black screen that you can type into.

Bruno Bord has driven the project and chose Launchpad to host it. I asked him what led him to choose Launchpad.

Short answer: Because I was lazy, and I didn’t want to hack on a project management system myself. Launchpad hosts everything I wanted: code, bugs, translations.

Long answer: It’s not just the bug tracker. It’s the whole thing. Bug trackers are very interesting to track down tasks, reorder them, assign them priorities, etc. But it’s like playing all alone on a video game while you could have much more fun playing it online, with other people
involved.

I discovered Code Versioning System and then moved to Subversion, which was a massive improvement. When I had to download a source code from CVS, I used to copy-paste command lines I didn’t understand into a bash script, and run it from time to time to update my working copy. I’ve never used CVS as a committer, and I’m glad.

I was working in a small web agency where the “revision” system was just renaming the old version of a file/directory “_old”, make a copy of it, and go on with the developement. Of course, when there was another “revision” to “commit”, you had to rename it “_old2″. Hem. Pretty amazing how things can become hellish using that kind of system.

I heard about Subversion, and reading the docs, I instantly fell in love with the syntax. At last, I could version my work with commands I could grok!

I made a quick svn+trac install on our local server, and that was ready. One of the major drawbacks of Trac at the time was the impossibility to track several projects at once.

So I had to build up a trac instance for every new project. Which was fine, as soon as I could make a tiny bash script that did everything from the ground up (svn repository and trac setup).

Anyway. I started using SVN for my personal projects. A friend of mine accepted to host my trac+svn instance for pet projects on his personal web server, and everything was fine.

One day, I moved. And I went off the internet at home for 149 days. Yes. It’s a huge number of days for a geek. At work, it was ok, but it was impossible for me to commit changes about my pet projects.

After months of despair, I finally found out about Distributed Version Control. And bzr changed my life. I could work on my projects offline, commit code, branch, merge, etc, and push it back again in the main repository when internet connection came back — this is true for any DCVS, not only bzr…

But bzr isn’t very well integrated into Trac (yet). And it’s fully integrated with Launchpad.

What’s absolutely brilliant in Launchpad is the fact that any item may interact with another. You can register a branch in a project, or in your “+junk” repository, or you can link a bug to a branch or link a branch to a bug. Once the bug is fixed, you propose the branch for merging. You can build up teams, working on specific tasks on your project: bugsquad to sort out bugs, developers to commit in the main branches, translators, or a just more general team where people interested by the project can get notifcations at any time.

Hence, using LP as a project manager makes sense.

Using LP for PyRoom was an instant choice. When I retrieved the initial python script from ubuntuforums, I commited it into a bzr branch, hacked on it a bit to clean up the code, and pushed it on the fresh new project hosted on LP.

I learned a lot during the first weeks of the project: one of the best practises is to create teams. You are on your own at the beginning, but create a team anyway, and give this team read/write access to the trunk of the project. When people start to get involved, they join the team, and are granted instant access on the main branches of the project.

But the good thing with LP is that you don’t actually NEED to be part of the dev team to send code. For Gwibber, for example, I just hacked on a bug I found with my French locale the main developers couldn’t guess. I just registered a bug, created a branch, pushed my code to this branch, and proposed it for merging. It was merged without me being member of the Gwibber team or whatever. Now the bug may be closed. WIN!

My first contributions in LP were translations, IIRC (into French, what a surprise!). Again, I was not member of any team to translate small strings in my mother tongue.

You see… it’s not just the bug tracker. Any text editor can work as a bug tracker, as long as you keep your tasks up to date in a single file. It’s the whole shebang that rocks.

Ubuntu LoCo website kit

Friday, February 13th, 2009

If you’ve had much contact with the Ubuntu community you’ll most likely have come across loco teams: local groups who promote, support and socialise around Ubuntu.

Two loco teams — South Dakota and Quebec — have combined the Launchpad Drupal modules with a customisable Drupal theme to produce the LoCo Drupal kit.

So, if you run a LoCo team and want to set up a website, the kit gives you:

  • a customisable, approved, Drupal theme
  • easy login using Launchpad IDs
  • Drupal role assignment according to a person’s Launchpad team memberships.

The kit works with Drupal 5.x and 6.x, with support for Drupal 7.x on the way. They’re also promising fast, friendly support.

Take a look at the project’s Launchpad page for more.

Drizzle is people

Friday, February 6th, 2009

Interesting post from Jay Pipes, one of developers working on the Drizzle project:

“To paraphrase the late Charlton Heston: ‘[Drizzle] is people!’

“Recently, I’ve seen the fruit that transparent, open source development bears. This fruit takes the form of engaged, motivated, and humble individuals who wish to make their mark on a project.

“Whether it’s on IRC on #drizzle, the drizzle-discuss mailing list (now with 354 active members), or via the platform which Launchpad.net provides our community, I’ve seen new developers scrambling to pick up blueprint tasks, tackle bugs (minor and major), and stamp their footprint on the code base.

“With each new face comes an entirely new perspective, a new angle, a different set of skills and experience. And I’m taking the time to chat and learn with each of them. It’s a humbling experience for me, as I learn from each person who visits the ever-growing IRC channel and mailing list. It doesn’t matter if it’s the sage advice of folks like MySQL’s Mats Kindahl, Bernt Johnsen and Roy Lyseng, or database veteran Jim Starkey. It doesn’t matter if the new face is a college student wishing to help in any small way they can. Everyone makes a difference in their own way.”

Spring RTS available via PPA

Friday, February 6th, 2009

Spring is a free software real-time strategy game engine that’s available for Ubuntu via the Spring Team’s PPA.

From the Spring About page, it features:

  • Large battles limited only by the power of your computer; support for up to 5000 units.
  • Large, highly detailed maps in which to wage those battles, fully 3D with deformable terrain, forest fires, dynamic and reflective water, and custom skyboxes.
  • Several camera modes, allowing for anything to be viewed from almost any angle.
  • Fully 3D combat in land, sea, and air, with realistic weapon trajectories (physics engine).
  • Many different Games, made just for Spring.
  • Complex 3rd party AIs, some of which are quite good.
  • An extremely powerful GUI, designed to minimize unnecessary micromanagement.
  • Frequent additions and bugfixes.

There’s more on Spring’s website.

Pidge!

Thursday, January 15th, 2009

Pidge logoFergus Ross Ferrier tells us about his project, Pidge.

Matthew: What is the Pidge project?

Fergus: The goal is to have an open web platform — code and data — that students can use as a robust, trusted online community for sharing relevant information across their campus: events, initiatives, courses, peer education … all via their online ‘pidgeon hole’.

The only current installation — codename MyPidge.com, and a separate project on Launchpad — is at the University of Cambridge, England.

I can’t say it’s a raving success at the moment (it’s not), but there’s strong indication that this is a worthwhile goal, and we just need to plough on and improve it to the point where it gets widespread adoption.

Matthew: What parts of Launchpad do you use for Pidge?

Fergus: Mainly code hosting and bug / blueprint tracking at the moment. As soon as someone starts using it in a locale other than the UK, we’ll look at translation, and answers I’ll think about as a primary support method for users.

Matthew: Why did you choose Launchpad?

Fergus: The bits fitted together nicely. Linux, Apple and Django all benefit from the full-stack approach, and I really don’t want to waste my time chasing the ‘best’ software project management tool. I’d simply like to trust people at Canonical to work that out for me.

Matthew: What would you like to see changed in Launchpad?

Fergus: Consumption of OpenID…?

And it’d be super-cool if the UI and workflows were so well tested for non-technical people that I could actually send ordinary users to the Bugs / Blueprints / Answers areas and get them to chip in productively, without them having to work out the whole structure of the project.

Matthew: What do you particularly like about Launchpad?

  • Err, it’s free.
  • It’s used for a number of high-profile open-source projects (and thus hopefully will continue to be developed and supported!)
  • And I really like the open nature of the whole thing: how anybody can walk into any project listed, pick up the structure, and get involved. No politics, no asking for commit access to a repo, no hidden bug trackers.

Matthew: What’s next for Pidge?

Fergus: Well I need to learn a few things about motivating other students (and myself!) and keep ploughing on until it reaches critical mass here at the U of Cambridge.

And, as this is designed as a reusable package, I’d like to see someone at another student campus in the world taking up the gauntlet to set up a remote installation. Referrals, suggestions and introductions welcomed!

Exaile media player

Friday, December 19th, 2008

Exaile logoThe Exaile media player has been attracting fans over the past couple of years. I asked the project’s founder, Adam Olsen, about the project and their use of Launchpad.

Matthew: It seems as though music players are a bit like mail clients: they’re a problem that you might think are easy to solve but, in practice, no one ever seems entirely happy with what’s available. How are the Exaile team tackling that problem?

Adam: Before I started Exaile, I was somewhat happy with Amarok. I liked most of it, however, I was using Gnome and Amarok was quite buggy at the time. I thought, “well, I’ll write a Gnome clone for it”, and that’s how it got started. Once I had all the features in that I wanted, it moved to the users to give ideas by requesting features.

Now it’s a cat and mouse game, to keep up with what users request. Can’t really give everyone what they want, but we do try.

Matthew: How many people contribute to Exaile?

Adam: There are three developers, and three or four people that contribute regularly with patches.

Matthew: What made you choose Launchpad and Bazaar for Exaile?

Adam: I chose Launchpad because I wasn’t in charge of hosting it. Prior to Launchpad, I was using trac on my own server, which eventually got hacked. Launchpad was a natural choice to me because Ubuntu was using it, and I chose Bazaar because Launchpad used it.

Matthew: Is your team PPA an important way to distribute stable Exaile release or just for test versions?

Adam: It’s to distribute stable versions of Exaile. Prior to PPA, I’d only distribute packages for different architectures when someone contributed them, but this is much easier

Matthew: What features do you feel are missing from Launchpad?

Adam: A wiki would be nice, or some sort of documentation section.

Matthew: Is there anything in Launchpad that is much harder than it should be?

Adam: Sometimes Launchpad is hard to navigate, but I think it’s because it does some things that no other projects do. Terminology is sometimes an issue, for instance, the word “driver” to describe the person (or team) that is in charge of decisions and bugs for a series is probably something that a new user hasn’t heard before, even though it does accuratly describe the purpose.

All in all, though, the documentation is good, and the community is very helpful, so it’s really not a big deal.

Matthew: Have you used merge proposals and code review in Launchpad?

Adam: Not extensively. We’ve had probably two or three merge proposals.

Matthew: Do you use the bug tracker’s ability to track one bug as it affects different projects?

Adam: Yes, if there is a bug Exaile and also another Python project that gets fixed, sometimes I’ll look through to see what they did to fix it.

Matthew: What’s next for Exaile?

Adam: Right now we’re doing a complete rewrite of the codebase that’ll allow features to be added more quickly and easily. It’s currently in a very usable state and we’ve released a beta. No word yet on when we’ll be done, but people seem to be pretty excited about it.

Matthew: Thanks Adam!

OpenTeacher

Wednesday, December 17th, 2008

OpenTeacher logoMilan Boers runs the OpenTeacher project. I asked him about the project and his use of Launchpad.

Matthew: Tell us about OpenTeacher and what you’re hoping to achieve.

Milan: OpenTeacher is an application that helps you learning a foreign language. You enter some words, and OpenTeacher tests if you know them. There’s project called Teach2000, but this is only available for Windows and it’s closed-source. I hope to make OpenTeacher a good (or maybe even better) alternative to Teach2000 for other platforms like Linux. OpenTeacher is written in Python and
Qt4, so it can run on many platforms.

Matthew: How many people contribute to Openteacher?

Milan: Just me, but I would like to have more people contributing by adding blueprints, bug reports and patches. I’m not a python-expert, so coders are very welcome. OpenTeacher is still a very young project, so maybe it will grow later on.

Matthew: What made you choose Launchpad?

Milan: I’ve been using Ubuntu for a while now and sometimes reported bugs to other Launchpad-project, so I already knew what Launchpad was. For me it’s the ultimate place to manage a project with features like bug reporting, blueprints and code hosting. Especially the easy and clean interface is an advantage. SourceForge can learn a lot from the Launchpad interface.

Matthew: What features do you feel are missing from Launchpad?

Milan: I think the translation feature of Launchpad is a weak spot. At the moment, it’s not really easy to find the untranslated sentences. It’s possible to only view the untranslated items, but this also shows the items which already have suggestions for translations but have yet to be reviewed. I think it would be better to make it possible to show untranslated items which also don’t have any suggestions.

I also miss the feature to upload .ts files instead of .po files to be translated. Qt uses its own translation system, using .ts files.

Matthew: Is there anything in Launchpad that is much harder than it should be?

Milan: I haven’t discovered any. Every feature that I’ve seen is easy to use for developers.

Matthew: Do you interact with other projects through Launchpad?

Milan: Not at all.

Matthew: What’s next for OpenTeacher?

The next important thing is the release of the first stable version. I’ve got a big list of improvements that should be made, and I’m working hard to realize them :)

Matthew: Thanks Milan!

Inkscape embeds Launchpad Answers

Monday, November 17th, 2008

Around this time last year I wrote about Inkscape’s switch to Launchpad Bugs.

Since then, Inkscape have taken to Launchpad wholeheartedly, using Code and Blueprint as well.

As an Inkscape user — rather than developer — I was excited to see that when I click “Ask us a Question” in the Inkscape help menu I’m taken straight to Inkscape in Launchpad Answers to ask it!

Inkscape's help menu

If you’ve seen anything similar, I’d love to hear about it.

ElectionAudits

Saturday, November 8th, 2008

Tick in a boxNeal McBurnett has been working on a new free software project — called ElectionAudits — to help audit election results.

With this week’s US elections, it seemed like a good time to ask Neal what the project is about.

Matthew: What problem(s) are you hoping to solve?

Neal: The underlying goal is improving confidence in elections and thus democracy. I know enough about computers and have done enough work and volunteering with elections to know that you just can’t trust the machines and systems (even if they are open source, as Thompson’s famous hack showed decades ago (see “Reflections on Trusting Trust“).

Rivest and Wack have written more recently about the need for “Software Independence” in elections. So good random audits of the actual results are a critical component of election integrity. We do serious audits of banks and casinos. Why don’t we really audit most elections? See my blog message for more detail.

There’s a long list of problems with existing “audits”. But the proverbial itch was seeing how frustrating it was for my county clerk to deal with the way the Hart InterCivic Tally system produces results, which need to be broken down by batch, and sometimes combined to protect the privacy of the voter. I saw several people totally worn out trying to do it in Excel, and said there must be a better way. And I saw a good use for Python and Django :) and a way to play with fun statistics.

Matthew: Has the project seen any use as a result of this week’s US elections?

Neal: We’ll be using it to audit the Boulder County election, probably next week.

Matthew: Is there already proprietary software to do this job?

Neal: None that I’m aware of. The election system manufacturers only seem to produce precinct results, which don’t match the way the paper ballots are grouped in batches of mail-in ballots and in long rolls of voter verified paper records on “touch screen” computers used in Early Voting. So it is a pain to find the paper to back up the precinct reports. I list other software out there, like spreadsheets, to calculate the statistics, but nothing like ElectionAudits.

Matthew: How many of you are working on the project?

Neal: I’m packaging existing statistical code from Ron Rivest and getting input from a handful of testers and users. I’m the main coder so far. It is all based on the work of a much larger community of auditing experts who put together Principles and Best Practices for Post-Election Audits.

Matthew: Are you looking for more participants? If “yes”, what skills do you need?

Neal: I’ve focussed totally on the code, so the project could use a nicer logo, some good CSS and templates. Input on a wide variety of other ToDos would be welcome from folks versed in Django and Python.

Testers and packagers, for setuptools, Ubuntu, Windows, Mac OS X, etc would help a lot. I don’t have a Windows environment, but it is still used by lots of potential users, so more help there would be great. And help providing better documentation would be wonderful.

You can also just join the ElectionAudits team and lend some of your insights.

But most of all, we need folks to use it to improve our confidence in our elections, either as election officials, or by connecting with the folks who run their local elections. Even just sending us a copy of the election results that are used in your local elections would help since we want to be able to parse and publish lots of different common election data formats.

Matthew: What do you use Launchpad for?

Neal: Team mailing list, hosting releases, bzr repository, bugs, blueprints, and if there is interest, translations.

Matthew: Why did you choose Launchpad?

Neal: Because it will be open source next year, putting it in an elite category, and because I’m familiar with it from my Ubuntu involvement.

Matthew: What would you like to change about or add to Launchpad?

Neal: I’d like to see a wiki for project use (bug report).

New Launchpad projects would really benefit from a step-by-step HowTo on setting up each phase of a new project: defining bzr integration, releases, downloads, series, release files, teams, etc. I had to ask in #launchpad a number of times to figure out how to get a new part of the project working. Advice on when to define a new series and the implications of that, especially before the 1.0 release is out, would be helpful.

E.g. clarify how to provide download files. Based on the UI, I thought my only option was to point to my own external web server to host downloads. Finding the set of steps necessary to get the big Download button on the project page to be useful was frustrating even based on the documentation. If a project has no downloads yet, perhaps the Download button should lead to some sort of wizard for that, or at least lead to the appropriate documentation.

I’m looking forward to trying the Launchpad API for simplifying releases, as described in the recipe for uploading files via the API blog post.

Thanks for a great tool!