OT: Toshiba USA service sucks. Don't buy their products!

Sorry for the off-topic post, but I feel that I need to speak up about the atrocious customer service I’ve gotten from Toshiba.

About a year ago we purchased three new portable hard drives that we use for backing up the MusicBrainz servers. These are used for off-site back-ups; every monday when I am in town, I pedal to Digital West and swap out the back-up disk. Should a bomb hit Digital West, we have an off-site backup that we can use to restore MusicBrainz. After about 3 months, the first drive failed and I promptly attempted to return the drive, but the site where you request an RMA number refused to recognize the drives as valid products that Toshiba supports. I periodically checked back to see if they would finally give me an RMA number. About 3 months ago, the system did give me an RMA number and I sent the drives in. 2 weeks later nothing had happened, no replacement drive appeared.

I called Toshiba and no one knew where my drive was. Finally I got an email saying that I had sent the drive to a place that was no longer accepting the drives and my drive was going to be returned to me. What? I filled out the forms and use their mailing label to send the package, how could this go wrong? I called them back asking to ”’not”’ return the drive, but to actually forward it to the RMA place. Of course, no one could actually tell me what was going on. Three days later of being escalated and talking to clueless idiots, I finally got someone who had a clue about what was going on. But that person was wholly unwilling to make an effort to make things right. My drive was sent back to me, but the address was written unclearly and it took an extra 2 weeks for UPS to actually get the drive back to me. (This person also said I should cut Toshiba USA some slack since they were a tiny organization. Ha! They have no idea what tiny really means!)

I finally have my broken drive back and I’m out many hours of time and $12 in shipping costs. And this week the second drive died and I have no patience for dealing with Toshiba again. I am going to recycle all of these drives and replace them with new drives and be done with this. I want nothing to do with Toshiba again. Thanks Toshiba, we’re out $300 — you suck.

This post serves as a public notice that Toshiba sucks and that you should not purchase anything from them, since they refuse to properly support their products.

Search server release: 2012-03-23

Earlier today we switched the latest release of our search server live. Paul says:

In this new release of the search server the basic search will now search more fields and return variations of what you searched such as spelling mistakes and the scoring has also been improved. Advanced search now lets you search for when a field doesn’t exist and you can do exact searches that take accent characters into account using the new accent fields.

We’ve also upgraded to the latest version of Lucene, added a way to see how scores are calculated for results and added integration tests. Hopefully this will all help with future stability.

UPDATE: This code lives in svn and can be found at r13480. I’ve also created this tag.

Thanks for your hard work on this release, Paul. And also thanks to Ollie for taking time to push the server portions of this live today. Here are our release notes:


  • [SEARCH-168] – Recording Search doesnt consider track duration only recoridng duration
  • [SEARCH-191] – Duplicate qdur values being added to document


  • [SEARCH-152] – Update Code to use Lucene 3.5
  • [SEARCH-160] – Searching artist by name and initial(s) is impossible, the initials are useless
  • [SEARCH-163] – Search for exact string, with no accents
  • [SEARCH-166] – Artist search does not always offer the obvious (to a human!) results
  • [SEARCH-170] – Move Basic search logic from mbserver to searchserver
  • [SEARCH-171] – Basic Search should work more like Solr Dismax Parser
  • [SEARCH-173] – Index Catalogos without space
  • [SEARCH-174] – Provide a way to search for empty/non-empty fields
  • [SEARCH-177] – Support for initialize index remotely http://localhost:8080/?init=mmap
  • [SEARCH-188] – Add Integration Tests

New Feature

  • [SEARCH-172] – Make it possible to search for barcode:"[none]"
  • [SEARCH-194] – Add debugging option to be able to get lucene explain for results

Schema change update

As per my previous blog post, today is the deadline for submitting tickets for consideration in the May 15 2012 schema change release. Eleven tickets have been championed for this release — you can see each of these tickets in the schema change release fix version in jira.

I would like to call your attention to three tickets that I think ought to get more input from the community:

  1. Split release group attributes into two types
  2. Lyrics language for works
  3. Add ISO 639-3 language codes to the database

If any of these issues interest you, please take a look and leave a comment if you have any input. Finally, I will be keeping track of the progress of the schema change release on this wiki page.

I’m hoping to put together a complete schema change document that outlines the exact changes to our schema on April 2.

Many thanks to all of the volunteers who adopted tickets and are moving them forward!

Server update 2012-03-19

We’ve just finished pushing out a new server update, that addresses a few minor bugs. We initially planned to roll these changes in with the release of our Cover Art Archive, but sadly this project needs a bit longer. Many thanks to Johannes Weißl, Wieland Hoffman, Ian McEwan and the MusicBrainz team for their work on this release.


  • [MBS-3897] – Missing space in template for ARs w/disambig
  • [MBS-4291] – Default install looks for compiled js/css.
  • [MBS-4368] – Release editor: track parser is broken
  • [MBS-4383] – Statistics page is showing "Active Last Week" stats twice, leaving out "Edited Last Week"
  • [MBS-4391] – Track parser broken
  • [MBS-4399] – Medium titles not displayed when attaching a discid to a medium
  • [MBS-4403] – DBD::Pg::st execute failed: ERROR: new row for relation "recording" violates check constraint "recording_length_check" at lib/Sql.pm line 396
  • [MBS-4404] – /ws/1 uses the wrong language code
  • [MBS-4407] – Edit artist alias should fail if edited alias is deleted


  • [MBS-1363] – Add threading headers to mod note emails
  • [MBS-1473] – Report: unlikely language-script combinations
  • [MBS-3313] – New/old edits wording in edit search is misleading
  • [MBS-4044] – Cleanup Discogs URLs
  • [MBS-4284] – Normalize URL encoding for specific sites

A Git tag will be pushed out later. The commit sha is 03343aa460d1.

Another anonymous donation: ~$7500

I’m very happy to announce that another organization has made a large donation to MusicBrainz. Like our other donation from 2012, this company would also like to remain anonymous for the time being.

There is one thing very different about this donation: Its from a record label!

Not too long ago we didn’t have any contacts with record labels and the record labels didn’t really want much to do with us, but that has changed. This signals a deeper adoption of MusicBrainz in the music industry, which I find quite interesting and exciting!

Thank you for your generosity, anonymous donor!

Preparing for the May 15th schema change release

For our last schema change release we had a ton of issues around which tickets we should address and which ones were properly defined for us to work on. I’d like to make this a lot more clear for the next go round; here is what we’re going to do:

Starting today and for the next two weeks, we’re going to seek people to be the champion (sponsor) of a ticket. If you feel strongly about a schema change ticket getting taken care of, you should consider championing this ticket. Once you’ve decided to do adopt a ticket, you should assign the ticket to yourself.

Then, over the next two weeks it will be up to you to do the following:

  1. Derive consensus around the core concept of the ticket. If you go through the process of working up a ticket, but no one agrees with what you’re proposing, you’ve wasted your time. Make sure that you get buy in from others in the community. For instance, if Nikki doesn’t like it, chances are its not going to fly. 🙂
  2. Ensure that the ticket clearly states what needs to be done to implement the ticket. The ticket should essentially become or link to a requirements document. This requirements document should explain what the new feature should do. It should not explain how it should be done — we should leave the how to our developers who are going to implement the feature.
  3. Provide as much supporting documentation as you can. Mock-ups for UIs are deeply appreciated (even if they delve into the how realm of things) and very useful for meaningfully discussing these tickets.
  4. Have the ticket reviewed by a developer for clarity and completeness, then address any issues said developer may raise.

On 19 March, we’re going to look at the list of tickets that people have taken on and choose the ones that are clear enough to move forward. If you’ve done all the work outlined above, the chances are good that your ticket will be chosen to move forward. If your ticket is chosen to move forward, there will be more questions that the developers will raise — hopefully those can be tackled in the space of a week. After that we will take all of the well defined tickets and schedule them for implementation. All the other tickets that are not clear to implement will be rejected and will have to make another pass though this process in the autumn.

If you’re still interested, here is the list of schema change tickets that should be considered for this.