Category Archives: Summer of Code

Announcing the beta launch of CritiqueBrainz

I’m proud to announce that we’ve launched a beta version of our new project: CritiqueBrainz.

CritiqueBrainz is a music review site, where anyone can write a music review for an artist or a release-group (album, single, etc). Unlike Wikipedia’s neutral point of view policy, this site is about passionate reviews about music. If an album is horrible, please write a review about why it is horrible. If it is great, please write one telling us what makes it great.

All of the reviews in CritiqueBrainz will be Creative Commons licensed. The user has a choice to license their review under CC-by-nc-sa (disallowing commercial use) or CC-by-sa (allowing commercial use). To get the site started, the BBC was kind enough to send us their collection of almost 9,000 CC licensed reviews. Go and have a look — there are a lot of reviews for you to read, right now!

CritiqueBrainz is a new web site that was originally written by Maciej Czerwiński for last year’s Summer of Code. All of the goals for the project were met last year, but that didn’t leave us with a site that was ready for deployment. For this year’s Summer of Code, Roman Tsukanov picked up the project and immediately started fixing bugs, making improvements and generally rocking the project into stability and drastically improved the look and feel of the site. On the beginning day of Summer of Code, we’re ready for a beta release!

This past weekend, I attended Music Hack Day San Francisco and worked with Roman to add Spotify integration into the site. If you have a Spotify account, you can listen to the music as you read the reviews. So far, we’ve matched 250,000 release-groups in MusicBrainz to Spotify! Even if an album doesn’t have a review, you can still browse all of MusicBrainz via CritiqueBrainz and if we have a matched Spotify album, you can listen to it by clicking the play button under the cover art.

If an album you find doesn’t have a match in Spotify, we invite you to help us find a match and submit it to Spotify. Click on the “Match this!” link, which will execute a search via Spotify’s API to try and find a matching album. Due to some limitations in the Spotify API, this doesn’t work as well as we want to — we plan to pester Spotify to improve their API to make this a better experience.

We’re hoping to make CritiqueBrainz a user site that uses more cover-art and white space to make a site that is friendlier to browse the amazing pieces of information that MusicBrainz has collected. Unlike the data nerds at MusicBrainz, not everyone loves information overload; this site should hopefully make non-data nerds happy about MusicBrainz data.

If you find a bug, or have a suggestion for improving the site, please file a bug report here and Roman will have a look at it.

Thanks to everyone who had a hand in making this project a reality and thanks to Google’s Open Source programs office for making Summer of Code happen!

Summer of Code: We’ve accepted these projects

I’m pleased to announce the following 5 projects were accepted for this round of Summer of Code:

  • A new website for Picard and its plugins by Shadab Zafar: Give Picard a new website that will be used to host everything Picard related especially its plugins. Also add an interface which can be used to download those plugins right from picard.
  • MBS-6201: Add an “event” entity by reosarevok: Finalising the basic implementation of MBS-799 by adding an event entity to MusicBrainz.
  • Finishing and deploying CritiqueBrainz by Roman Tsukanov: Last year Maciej Czerwiński started work on repository for Creative Commons-licensed reviews – CritiqueBrainz project. He implemented core functionality: storage, API, and web interface. During Google Summer of Code 2014 I’d like to continue his work, finish and deploy the project.
  • MB UI TLC by navap: Spend some major TLC on all the templates and UI of MB.
  • Move MusicBrainz Search to SOLR by Wieland Hoffmann: The goal of this project is to move the MusicBrainz Search server to use SOLR for faster and in-place index updates.

The whole MusicBrainz dev team is very excited to have students take on these projects. We’ve been waiting for events for an eternity and after 9 months of no progress, I’m stoked that soon we will release CritiqueBrainz.

Congratulations to mineo, navap, duffer, gentlecat and reosarevok. And big thanks to Google for having us in Summer of Code again.

places-map50

Venue and Studio Support: Introducing Places

MusicBrainz now supports venues and studios via our new “place” entity!

This was one of our Google Summer of Code projects for this year and many thanks to Nicolás Tamargo for his work on it. We released his work a few weeks ago and after a few initial hiccups, it’s looking good and we want to let you all know about it. :)

So what can we do with places?

The most obvious thing we can do now is store information about recording, mixing and mastering locations.

For example, the studios listed in the credits for Universe by Kyoko Fukada:

places-releasecredits

and the venue for the recordings on Live in Cartoon Motion by Mika:

places-recordingcredits

We can of course link the place to a variety of external sites, as can be seen in the list of URLs for Wembley Arena:

places-urls

Some places are made up of several parts. In those cases, we can link one place as being part of another. For example the various studios at Abbey Road Studios:

places-parts

or the hall and theatre of the Barbican Centre:

places-parts2

We were already able to add engineers to the database as artists, now we can also say which studio they work at, as seen here for the studio Railroad Tracks:

places-engineers

Many orchestras and sometimes other artists have a home venue where they perform on a regular basis. These can now be linked, like in you can see for the Barbican Centre: Barbican Hall:

places-primaryvenue

A premiere is sometimes held for a work and now we can link those works to where the premiere was held, e.g. the following works which were premiered at Carnegie Hall:

places-premiere

The place can also have coordinates, which make it possible to pinpoint the location on a map. The MusicBrainz website doesn’t show any maps at present, but here’s a map of all places with coordinates by Mineo:

places-map50

Events?

No, we do not yet support events.

Thanks to nikki for writing this post.

Summer of Code: We're in for another round!

I’ve not had a chance to blog about our participation in Google’s Summer of Code program this year, so it is time to fix this now. As you might guess, we’ve been accepted into the program again and were given 3 slots. We awarded the slots to:

  • Rearchitect/Improve the Release Editor by Michael Wiencek (bitmap): This proposal aims to re-work the guts of our Release Editor and to change the architecture to use one page and not a series of pages. This project is potentially massive, so the goal is to work on the guts of the editor while not making many (if any!) changes to the UI. But, bitmap is a veteran GSoC student and long time Picard contributor, so we’re excited to have him back!
  • MBS-6200: Add a “place” entity by Nicolás Tamargo (reotab): Our very own Reosarevok joins the GSoC ranks to implement the Places support. In our previous schema change release we added support for Areas and Reotab aims to finish this project by implementing Places. For more discussion and background on Areas and Places, please see this ticket in jira.
  • Repository for music reviews by Maciej Czerwiński (mjjc): The goal of this project is to create a site that allows anyone to write a non-neutral point of view review of an artist, a release or a recording. All of the reviews in this site will be licensed under a Creative Commons license to be compatible with MusicBrainz and its data.

I’m really excited by all of these projects and the people who are contributing. Summer of Code started yesterday, so we’ll see very soon what our three students will accomplish.

Splunk supports MusicBrainz!

As part of Google’s Summer of Code program we accepted Dániel Bali to work on analyzing our web server logs to mine them for interesting information about MusicBrainz and people who are using MusicBrainz. (see a preview of this project)

To make that project a reality we had help from Splunk, the company that creates the fantastic data analysis tool by the same name. Splunk provided us with enterprise trial licenses during the summer and now going forward has accepted us into their Splunk for Good program. This program provides a free 10GB/day (it allows us to import 10GB of data into our Splunk server per day) license on a yearly basis.

We now count Splunk among our sponsors and we’re looking forward to rolling out Dániel’s work in October. Thank you Splunk and thank you to Joyce Morrell and Christy Wilson from Splunk for working with us to make this happen!

Summer of Code log analysis project: May we share our data with our GSoC student?

UPDATE: This clearly going to be a major hassle, so we’ll spend the extra time coding a program that will sanitize the data before it goes into splunk.

Last week Google’s Summer of Code program started and my student Dániel Bali is ready to get busy combing through our massive logs and see what sorts of information he can mine from our logs.

We only have one minor problem — our logs contain the IP addresses of our users and some requests contain the user names of the person making the request. Removing this private information from the logs before Dániel sees them is quite a pain to do well.

I would like to propose that we:

  1. Consider Dániel part of our core team for the summer and allow him to see IP addresses and all the requests in full.
  2. Have Dániel sign a short statement stating that he will not divulge any private information.
  3. Will fail him in his GSoC project if he does divulge any private information.

If this is not acceptable to you, please speak up soon. I would like to make this happen early next week so Dániel can continue his GSoc work.

UPDATE: The final output of Dániel’s work will not contain any private information. If we end up using any private data as input, we will sanitize it and remove private information before we publish the output.

Looking for Language Liaisons

As some of you may know, this summer through Google Summer of Code I’m working on internationalization of musicbrainz-server. As outlined in my proposal, I’m currently looking to find what I call “language liaisons”: folks willing to be the go-to person about a given language for me and other developers.

Auf deutsch!

Auf Deutsch!

What’s expected of liaisons:

  1. Willing to be pestered occasionally, by me or other developers, about language-specific concerns: when adding new features, and thus adding new strings, we’d like to be able to ensure nothing’s added that will need to be changed before it can be translated into a given language.
  2. Willing to file bugs for strings already in the database that are untranslatable, should you find them.
  3. Be on the musicbrainz-i18n mailing list; this will be the main venue for organization and communication about i18n issues.
  4. Ideally, to be an active translator for your language – but this isn’t a requirement, because I’d like to get the widest global coverage I can; even if a language doesn’t currently have a translation, we don’t want to unintentionally sabotage future translators with untranslatable strings!
musicbrainz-japanese

日本語

I’ll also be determining a (related) list of “target languages” for the summer, with the intention of releasing translation on musicbrainz.org with these languages at the end of the summer. I’ll consider for inclusion on this list languages that are both in active translation on Transifex and have language liaisons.

If you’re interested in being a language liaison, please contact me: ianmcorvidae (at) musicbrainz (dot) org, editor ianmcorvidae, or ianmcorvidae on IRC, and join the mailing list.

If you’re interested in i18n generally,  please join the musicbrainz-i18n list. For more information on my project and musicbrainz-server i18n, see the server internationalization wiki pagemy post on my personal blog, and my official proposal, or come ask about it on IRC or the mailing list!

(less useful languages)

(less useful languages)