I’ve been busy writing, well, a bunch of code. Next release should have 16 tickets of mine; not all of those are internationalization-related, since I also tackled some other low-hanging bugs.

Notable i18n changes: presuming it passes beta testing for the next week (done one already!) my split-domains work should make it in. Additionally, I’ve done a variety of things on my so-called “fixup path”: fixing edit type i18n, making the tabs on the statistics pages translatable,  and translating editor dropdowns. Non-i18n changes include bringing back voting icons on edit notes, fixing some statistics-related things (so, last year’s GSoC project), and fixing the database settings for slave installations.

Next week, during beta freeze, I’m hoping to start working on the language-picker and the associated reworking of our language-switching infrastructure.

Creative Commons License "GSoC 2012: quick update" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Not that it’s new to me, but I have my first GSoC work up for code review: http://codereview.musicbrainz.org/r/1941/! This is the entire “domain-splitting path”, essentially. It also includes some other fixes, though, especially a few we’d already put on http://i18n.mbsandbox.org/: correcting the language codes to the right format for translation, and successfully translating non-ASCII msgids.

Hopefully this’ll ship soon — but it’s already on the sandbox, for those who want to test it out.

Creative Commons License "GSoC 2012: code review!" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Transifex (https://www.transifex.net/projects/p/musicbrainz/) is updated with all the new translations, and I’m working on updating the server to use these new domains — I have the framework in place, now it’s just a matter of changing over huge numbers of places using the old system where the new domains need to be used! Picard 1.0 also got released, which included a number of languages where translation was done on Transifex. Several Picard developers are working on using the ‘countries’ domain I extracted from musicbrainz-server, to reduce duplication.

Hopefully shipping the code changes for the new domains in the next few days!

Creative Commons License "GSoC 2012: i18n update" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Hello again! Just a quick update: I’ve set up the new fancy split domains, and put them up on Transifex for reviewing by interested parties. The default ‘server’ domain hasn’t been updated yet, since I’m still working on migrating translations to the new system, but the splits, and the contents of all the other domains, can be seen at https://www.transifex.net/projects/p/musicbrainz/. You’ll also see a new ‘picard’ domain, for translation of MusicBrainz Picard. Thanks to Lukáš Lalinský for migrating that to the same place as musicbrainz-server translations; hopefully Picard can benefit from some of the new split domains!

I hope to update again shortly, once the translations are migrated to the new system (and once musicbrainz-server knows how to use these new domains).

Creative Commons License "GSoC 2012: i18n: splitting domains" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Hi everybody!

Been a while since I’ve posted here, but for all three of you readers (±3) I figured I should do an update.

Specifically, I’d like to report that I’ve been accepted for a second year to work on MusicBrainz for a second year in a row as part of the Google Summer of Code program. Last year I worked on the MusicBrainz Timeline Graph (and statistics in general); this year I’ll be working on internationalization of musicbrainz-server.


MusicBrainz: Now in Japanese!

Internationalization is an interesting topic in this context – the basic structure for i18n has been in musicbrainz-server from the start, but it’s never been particularly well set-up, and it’s never run on production. I’d like to fix both of these problems. As you can read on the GSoC Project Details page for my project, I’m doing this through three distinct “paths”: interface, domain-splitting, and general fixups. Domain-splitting deserves further explanation: currently, all our translatable strings are in one huge context – more than 5,000 strings. I’ll be splitting them up somewhat to group things contextually related, both so some things can be reused (for example: names of relationship types, which are useful for anything using MusicBrainz data) and so that translation isn’t quite so insurmountable a task.

My first task, during the “Community Bonding Period” through May 21, will be to find “language liaisons” – people who can serve as people I can ask questions of for languages I don’t personally know, to highlight problems with our system for those languages, file tickets, and serve as coordinators of translation teams.

Read more on the GSoC Project Details page for the project! For the interested, our current i18n/l10n is available on Transifex. I’ll be updating that soon, though, hopefully. Some of our translations, a bit out of date, are also running on i18n.mbsandbox.org, an internationalization-oriented MusicBrainz sandbox (note: I also run the MusicBrainz sandbox server).

I hope to report more soon!

Creative Commons License "Google Summer of Code 2012: Internationalization" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

… I may as well update the wide vague population of the Internet as to my progress.

So, hm, what all have I done:

a.) added some various statistics to the collection mechanism; specifically, artist countries, genders, and types. I made them get displayed, too! See http://musicbrainz.org/statistics and http://musicbrainz.org/statistics/artist-countries for these. I’m currently working on/have in review a fix for the gender calculation, since despite adding calculation for type statistics at the same time, I totally neglected to think of the fact that groups can’t have genders!

b.) I added copyable URLs (mostly) for the timeline graph. For example, see http://musicbrainz.org/statistics/timeline#-recording+-medium+-label+-artist+-release+-releasegroup for a graph of just Works. I have in review a fix for this one, too, so that the region you’ve zoomed to also goes into and gets parsed from the URL. In the same change, I made it so the zoom level doesn’t reset when you add and remove lines from the graph.

c.) In review, I have something to merge the checkboxes for adding/removing lines and the legend. Yeah, that means the checkboxes won’t move when you click on them any more! Part of this change was also hardcoding the colors (rather than hardcoding integer indexes into an array… complicated, but anyway), so there’s a new colorscheme which you can see at http://codereview.musicbrainz.org/r/1343/s/83/. Thanks to Eliza, my coauthor on this blog and fellow MusicBrainz GSoC student, for helping me work around my stunted color sense.

d.) In the works:
i.) MusicBrainz Events, once I figure out how to display and interact with them in a nice way.
ii.) Statistics for release and label countries (in the same vein as artist countries), and potentially a whole bunch of other things like instruments, formats, scripts, languages… etc. This is a bit removed from my actual project, so the progress will be a bit slower!

So, cool. Now to see if that run of CollectStats.pl has finished up yet…

Creative Commons License "GSoC 2011: MusicBrainz Data Visualization: While I wait for this script to run …" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Perhaps predictably, I’m making further progress. To see: http://codereview.musicbrainz.org/r/1295/ is pretty up to date. I’ve added some hover functionality, improved the ticks on the graph, improved the controls for zooming, added controls for adding and removing lines from the graph, and some other random trivialities.

Or, if you don’t want to go over to Review Board for yourself:

musicbrainz-server graph as of 2011-06-03

This thing’s getting close to something that might actually be useful!

Now I just get to wait for my mentor to review and merge my code. Wonder if there are any low-hanging bugs I can tackle in the mean time…

Creative Commons License "GSoC 2011: MusicBrainz Data Visualization: Progress" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Well, sort of. First code to ship! I’m working on “Database Size/Growth Visualization” for MusicBrainz. I’ve been working hard the last week, and my first code will be rolling out on the main MusicBrainz site with the release tomorrow, having made its way into master (the main branch of code) yesterday!

Right now it’s a pretty basic graph (only Artist/Label/Release/Release Group/Medium/Work are shown, and the controls are a bit primitive, and a bit undocumented), but it does exist, and lots of improvement is happening. Since the part that’s in master, I’ve already added better controls, better axis labeling, and some interactivity on hover.

But hey, shipping code 8 days into GSoC — I’ll take it!

Creative Commons License "Google Summer of Code 2011: MusicBrainz Data Visualization: First Code" by Ian McEwen is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.