New server image for 2009-05-24 release available

The VMWare image has been updated for the 2009-05-24 server release. The previous image was getting old and updating steps have been reported not easy.

The new image has been upgraded to Debian 5.0, includes a more recent Linux kernel and uses PosgreSQL 8.3 (the required version to work on NGS).

To download and play with the new image, read our VirtualMusicBrainzServer wiki page!

Music Hack Day Boston: Would you like to represent MusicBrainz?

The fabulous Music Hack Day is happening in Boston on November 21-22. Sadly, I will be in London/Hamburg that weekend and can’t make it to Boston. The organizers have requested that we have someone represent MusicBrainz at the hack day. Are there any MusicBrainzers who live in/near Boston who would like to go to the hack day and represent MusicBrainz?

Knowledge of the project, our web interface, MBIDs and our web service would be really useful to have. Please post a comment if you’re interested. And even if you’re not interested in representing MB, it looks to be a great event that you should go to in any case!

UPDATE: Alastair Porter has volunteered! Thanks Alastair!

Picard 0.12

We have released the next version of MusicBrainz Picard. Picard 0.12 includes a lot of bug fixes and new features, including:

  • Support for ratings and folksonomy tags.
  • Live syntax checking for tagger script and naming strings.
  • Embed cover art into WMA and APEv2 tags.
  • New script functions $matchedtracks(), $initials(), $firstalphachar(), $truncate() and $firstwords()
  • New plugin extension point ui_init, allowing plugins to add new UI elements to the main window.
  • A new high quality application icon.
  • Support for originaldate tag. While this is not filled by Picard itself it can be used from within plugins such as the Original Release Date plugin.
  • Write ISRCs from MusicBrainz into tags.
  • CD drive dropdown selection on Linux.
  • Various small improvements to the UI.
  • Updated translations and the option to choose the user interface language.

A complete list of changes be found in NEWS.txt.

Picard 0.12 is available for download for Windows and Linux. The Mac OS X version will be released later, sorry for that. We are still in search for a long term maintainer of Picard on OS X.

Thanks to everybody who contributed to this release.

Web service users: What do you think of our current URL structure?

I’m about to finish writing the web service (version 1 & 2) for NGS, based on the work that Lukas started a few months ago. The NGS web service currently does not have a compete means of tweaking how much XML is returned for a given resource. Lukas wondered if we should keep our existing approach or start using a new approach that Last.fm (and others) use.

Compare our current approach:

/ws/1/release-group/052c7adb-5e2d-3cf3-b303-6c2a7d3e5b1c/?type=xml&inc=releases (docs)

to the Last.fm approach:

/2.0/?method=album.getinfo&artist=Cher&album=Believe (docs)

Should we keep our current resource focused URL structure or move to a method centric approach in our v2?

If you’re a fan of the old skool structure, please leave a comment and tell us what could be improved. What do you like about the web service? What do you hate?

For some background — as of the NGS release we will be making a lot of changes:

  • the old RDF web service will no longer work.
  • The old v1 XML interface will continue to work, but not optimally since we will be shoe-horning the spiffy new NGS XML into the old skool v1 XML. Concepts like artist-credits and works will not be available in the v1 compatibility interface.
  • The new v2 XML interface will expose all the NGS goodies like artist-credits and works.

OT: Fix for Text::Unaccent on 64 bit systems

[ MusicBrainz readers: Please ignore this post — its only so that others can find the solution to a problem I just solved ]

If you are running the Perl module Text::Unaccent (version 1.07) on a 64 bit system, you’ll find that it fails its test cases. This is due to a mismatched type in the Perl module. Apply this patch to your Text::Unaccent code, recompile and the tests will pass!

Beta testing delayed

When our first beta testing date rolled around we were not quite ready for testing and had hoped that in two weeks we could catch up and be ready. Sadly, that was not the case. We’ve made some changes in our team and are redoubling our efforts to get a working release editor finished as soon as possible.

Since we’ve made some changes our pace going forward is not clear yet, which makes setting a new schedule very hard. We’re now ready to start using our bug tracker to keep track of remaining tasks and bugs as they appear. To see how we are progressing on finishing NGS, take a look at the MusicBrainz NGS (Beta 1) milestone.

I hope to have a more firm schedule soon. Stay tuned.

Please help test our new search server

Paul Taylor and Aurelién Mino have completed the re-write of our search server — please help us test this new code-base. Here is Paul’s write up:

This update rewrites the existing Search Indexer and Searcher with a
pure Java release whilst maintaining full compatibility with the
existing Musicbrainz Server, prototype by luks, completion by ijabz and
murdos. The aims were

1. Better performance

Search performance should be greatly improved for indexing and
especially search.

The intermediate python layer has been removed.
The webserver layer has been removed
When searching have a single Java VM , that can now be properly
configured/optimized
The latest Lucene and Java libraries are used

2. Better Search Results

The following bugs have already been fixed

Perhaps most importantly stop words are no longer and issue so when do a
search for something that exists in the database you should always get a
match, i.e artist:”the the” or track:”is this it?”

example

and range queries work properly

i.e

example

and theres a host of other bugs and enhancements that can now be
resolved quite easily

bug list

3. Maintainability

The code has been simplified, i.e no hand coding of xml or html or
having to deal with escape characters.
Now has a full set of unit tests, can also easily generate metrics such
as code coverage reports.
No dependency on Linux or Python, making it easier for new developers
to contribute, removing the burden from ruaok.

Testing Stage

Please try it out on http://musicbrainz.homeip.net both as a websearch
and as an XML Service to find any omissions in functionality and any
situations where the search results aren’t good as before.

Paul / ijabz

Getting ready for our Next Generation Schema!

After many years of planning, anticipating and gathering resources, we’re finally tangibly close to our Next Generation Schema (NGS).

This blog post is intended as an official notification to everyone in our community and our customers who are using MusicBrainz services right now. Our next generation schema is drastic evolution for MusicBrainz — we’ve included many of the features that our customers and our community has asked for over the past few years. This means that if you’re using the MusicBrainz data right now, you will need to prepare your systems in order to be ready for the switchover when it comes in the fall. Please do not delay examining our new schema — this change is drastic change from our previous schema!

Our current plans are to enter beta testing of the new server on August 31. The exact release date is very much dependent on the results of our beta phase, but I hope to have the release within 60 days of entering beta.

The most important changes that you will need to consider/address:

  • No old (RDF) web service — the old RDF web service will no longer be supported as of NGS.
  • We will provide an XML v1 web service that is backward compatible to our current XML web service.
  • We will also provide an XML v2 web service that will expose new NGS concepts.
  • Postgres 8.3 will be required. Upgrading your old database will not be possible. You will be required to import the first post NGS data-dump in order to upgrade to NGS. Our provided upgrade script (see below) is very useful for testing purposes but not suited for upgrading deployed servers.
  • MBID changes — The MBIDs will be stable and maintained for artists, release-groups and tracks. All of the MBIDs for our current releases will also be kept, but we are changing what we are calling releases. Essentially all release events (with label, date, country and barcode information) will become releases each with their own MBID. This means that we’re adding a whole slew of new MBIDs for the releases that will not be assigned a legacy MBID.

NGS is documented on our wiki — please take some time to read up on our documentation! If you’d like to play with NGS now, follow these steps:

1. Download and install the 20090524 release according to these instructions. For going to NGS, installing a database only install is the perfect approach. Download and import an existing data set.

2. Download the NGS codebase with subversion.

3. Follow the install instructions. Instructions are included for how to migrate the 20090524 data to NGS — please note that the upgrade script may run for quite some time!

There are a lot of changes to the database from the current release! Please note that we’re done with the overall database design — I am not anticipating major changes past this point. However, I do anticipate a few smaller changes as we get closer to our goal. We will keep the schema diagram and documentation up to date with our changes.

If you care to follow our progress getting to NGS, please see our roadmap.