0

Broken link in translation import failure emails

Published by Данило Шеган February 17, 2009 in General, Translations

Due to some caching problems between our machines, some large translations have failed to import, generating strange errors such as:

You’d see the error message in import failure emails. Retrying (sometimes a few times) would push the file through.

This morning we’ve disabled caching between the importing and file storing servers, and it seems to have fixed all the problems. However, the fix we used means that everyone will now get a broken URL in translation import failure emails. If the email mentions a URL like

http://mizuho.canonical.com:8000/SOME-NUMBER/filename

replace mizuho.canonical.com with launchpadlibrarian.net and the link should work.

If you still see one of the above errors on your imports, and you are sure it’s not a msgfmt syntax error (or bug #88831), please add a comment to the bug.


4

Performance week in Translations land

Published by Данило Шеган February 13, 2009 in Launchpad Performance Week, Translations

The week of February 2nd – 6th has been the inaugural Launchpad Performance Week: a week where we concentrate on the most pressing performance issues and do anything we can to improve them. During that week, we also establish a hard goal that we enforce by lowering the timeout limit by 5 seconds.

The Launchpad Translations team has been concentrating on improving performance of two most problematic pages we are in charge of: POFile +translate pages (where translators do most of their work) and Person +translations pages, which display history for a person’s translation contributions inside Launchpad.

Jeroen has done a very good job improving Person:+translations pages (pages like Yannick’s translation history which used to timeout occasionally). We have since seen no timeouts on that page.

Henning has spent some time on writing a script to remove obsolete Ubuntu translations (translations for Warthy, Hoary, Breezy, Edgy and Feisty) from the database, before joining Ubuntu guys for the Jaunty sprint in Berlin. This should remove around one third of our entire data set, which should help with rendering of POFile:+translate pages. Unfortunately, he was unable to complete that — due to not being around 🙂 — so I picked it up and have completed and tested it this week. We should have this done by the end of the month, and that should bring large improvements to the rendering of +translate page.

Additionally, I’ve disabled global suggestions on edge (translations coming from different PO templates in Launchpad for the same English string) to confirm this is indeed our biggest problem. Edge has practically been flawless since, and we’ve discovered more areas for improvement. We are getting some new hardware to help with competition for resources between different jobs on the server as well (should be in by the end of the month), and as soon as we do, we’ll re-enable global suggestions (which are one of Launchpad’s essential features).

Just as the week was ending, we started getting a bunch of timeouts on DistroSeriesLanguage pages like the Brazilian Portuguese one for Jaunty: anonymous users started getting it frequently using a script, along with a large batch size of 300, and that started putting a lot of load on the server. Jeroen already has an idea how to improve the situation significantly, but that will have to wait until a later date.

I am looking forward to February release of Launchpad which should bring performance improvements for everyone to notice.


1

Ubuntu LoCo website kit

Published by Matthew Revell in Projects

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:

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.


0

Launchpod 17: performance week update and IntraHealth

Published by Matthew Revell February 12, 2009 in Podcast

Launchpod: the Launchpad team podcast!

Host: Matthew Revell.
Theme: Obscurity by Barry Warsaw.

Download ogg vorbis file.

Podcast feed.


0

Project aliases

Published by Matthew Revell in General

It’s not unusual for a project to be known by more than one name. Y’know, like Superman and Clark Kent. Or maybe something a bit more subtle, such as PostgreSQL/Postgres.

You can help people find your project in Launchpad, whatever name they know it by, thanks to project aliases.

Give it a whirl:

To request an alias for your project in Launchpad, ask us using Launchpad Answers. If the alias you’re requesting isn’t well-known, we’re more likely to give it to you if you let us know the background.


1

Triage in the Launchpad suite

Published by Curtis Hovey February 10, 2009 in Bug Tracking

We in the Launchpad team are changing the way that we triage bugs reported against the Launchpad suite of applications.

The Wishlist importance will no longer be used. Clearly the term is not about importance. It would be nice to convert bugs into blueprints, but the two applications need to achieve feature parity before that can happen. Bugs that describe new behaviours will be tagged as a “feature”. This means that closing the bug requires more than adding missing test coverage and fixing bad logic — the feature needs specification too.

There is a distinction between the Confirmed and Triaged bug status, namely that any user can confirm a bug, but only a project member can state the bug is in the application’s code. Many bugs in the Launchpad suite of applications are implicitly in the Triaged state because the Launchpad team members have set the importance.

Changes to current bugs:

We want to clarify the meaning of Critical, High, Medium, and Low by expressing their definition in practical terms. Some teams do not think Medium is distinguished from Low, so will not use it. The teams that do use Medium importance will use it to create a pool of bugs for release planning — the bugs may be escalated to High or targeted to a release without a commitment to complete them.

Critical
The bug dramatically impairs users. Users may lose their data. Users cannot complete crucial tasks. The feature is needed to encourage adoption or prevent abandonment of the project.
Synonyms: essential; now, stop everything else; must do
The work is immediately assigned to a engineer. It is his top priority to fix. Team members help the engineer to plan and do the work. The work is released as soon as it is deployable; in the case of a bug, it is released outside of the release schedule.
High
The bug prevents users from completing their tasks. The feature provides new kinds of tasks or new ways of completing tasks.
Synonyms: expected; important; now; can do; should do
The work is assigned to a engineer to be completed in the next 3 releases. The engineer may choose to do other work if he believes it is within the scope of the high priority work.
Medium
The bug is an inconvenience for many users. The feature provides new ways of completing tasks.
Synonyms: preferred; someday; last; try; want to do
The work is not scheduled, though it is intended to be completed. When the work is assigned, it may also be scheduled, but there is no commitment to complete it for the stated release. The engineer may choose to postpone the work in favour of more important work.
Low
The bug is an inconvenience to users, but it does not prevent them from completing their tasks. The feature is a convenience to users.
Synonyms: optional; someday; last; may do
The engineer may assign the work to himself while working on high priority work because the high work provides an opportunity to complete the low priority work at less cost. If the low work in any way jeopardises the high priority work, the low work is unassigned. The engineer is thus certain that the work can be fixed quickly and without difficulty. A corollary to this rule is that low work that is assigned to a engineer must be “in progress” or “fixed” states.

You can read A Practical Guide to Launchpad Bug Triage to learn more about the reasons for these changes.


5

Simplifying dput.cf for multiple PPAs

Published by Cody Somerville February 9, 2009 in PPA

If you’ve ever contributed to a Debian-based distribution or used the neat Launchpad PPA services then you’ve probably used dput before. We use dput to upload packages to a Debian repository such as the Debian Archive, Ubuntu Archive, or personal archives such as a Personal Package Archive on Launchpad. Getting the hard work you’ve done to the archive for the whole world to enjoy is an important part of a packager’s work flow and should be easy as possible. This is probably why dput is so popular – it does its job and stays out of the way.

However, recently while adding support to dput for uploading packages via sftp, I realized that one’s dput configuration file can get rather lengthy and messy. Being the Lazy Engineer (TM) that I am, I decided to fix this problem. What I noticed was that you needed to configure an upload target (aka host) for each PPA you might want to upload to but all the configuration stanzas for PPAs were exactly the same except for a part of the path. In fact, it seemed like a number of the stanzas for other archives in my dput configuration file were the same except for the same spot. Wouldn’t it be nice if I could just have a single configuration stanzas for these cases and only need to supply an argument for dput to automagically do the right thing? I thought so which is why I’ve added a new feature to dput that allows you to have an upload target “template” where you can pass a single argument to the target specified that will be used to fill in the missing pieces.

So, instead of having a .dput.cf file in your home directory that looks like the following:


[my-ppa]
fqdn = upload.launchpad.net
method = ftp
incoming = ~cody-somerville/ppa/ubuntu
login = anonymous

[xubuntu-ppa]
fqdn = upload.launchpad.net
method = ftp
incoming = ~xubuntu-dev/ppa/ubuntu
login = anonymous

….

I can simply have the following:


[ppa]
fqdn = upload.launchpad.net
method = ftp
incoming = ~%(ppa)s/ubuntu
login = anonymous

To upload to my PPA now, I’d type: dput ppa:cody-somerville/ppa <changesfile>

To upload to the Xubuntu Developers’ ppa, I’d type: dput ppa:xubuntu-dev/ppa <changesfile>

Once Launchpad supports multiple PPAs per user or team, simply replace “ppa” with
the name of the PPA. If you’re lazy, you can modify your .dput.cf to have the
ppa part automatically entered for you until then.

Anyhow, I hope you enjoy. Cheers!


1

PPA page performance improvements

Published by Julian Edwards in Cool new stuff, Launchpad Performance Week, PPA

Last week was the first of some Launchpad Performance Weeks that we’re embarking upon. The Soyuz team worked hard on improving the performance of the PPA page, which had a tendency to be very slow or even time out on PPAs that have a lot of binaries published.

The more observant of you will have noticed that the PPA page on edge is now using asynchronous requests to fetch both the “Repository disk usage” section, and the package information section that is expanded when you click on the triangle at the left of each source package row. This means that the initial page load time is a lot quicker! There’s still some more speed we can get out of the page by reducing the query load that it places on the database server, and we’ll deliver that change soon.

We also fixed a smaller snafu — as part of the webservice work that we’re doing, we managed to accidentally enable a URL that let you view the main Ubuntu repository as if it were a PPA page. These links nearly always timed out because of the size of the Ubuntu archive, so that URL will now redirect to the /ubuntu page on Launchpad instead.

Also in the pipeline is a major overhaul of the PPA page. Watch out for that soon!


0

Drizzle is people

Published by Matthew Revell February 6, 2009 in Projects

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.”


4

Spring RTS available via PPA

Published by Matthew Revell in Projects

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.


Previous Entries
Next Entries