We’ve hired another MusicBrainz developer!

I’m pleased to announce that Yvan Rivierre has joined the MusicBrainz development team! Yvan is not new to our community — he has been participating MusicBrainz development for some time and more recently has been attending our weekly community meeting. He’s submitted several pull requests to MusicBrainz already, and now he joins us as a full time developer.

Yvan’s nickname on all things MetaBrainz is now yvanzo, was formerly yvanz, in case you’re wondering what happened. Expect him to be around even more, helping bitmap to make improvements and changes to MusicBrainz. The MusicBrainz search infrastructure and hosting are no longer core tasks for the MusicBrainz team, leaving yvanzo and bitmap to focus solely on MusicBrainz. This brings us to a new level of dedication to our most important project and should allow us to tackle more issues faster focus new areas of improvement. (e.g. hopefully we can start making improvements in UX/UI this year!)

Welcome aboard Yvan!

MetaBrainz Foundation Board Meeting Minutes: September 15th, 2016

In an effort to try and be even more open and transparent, the MetaBrainz Foundation’s board of directors agreed last year to publicise the minutes from its board meetings. This is the first entry of that new series. The board meets up 3–4 times a year, so don’t expect these postings to be too frequent. 🙂

These particular minutes have been approved at its following board meeting, but we will try and get future meeting minutes up prior to the next one, which means that future posts will be subject to change if the board feels something is wrong or missing in the minutes. Also note that discussion related to personnel or confidential topics have been (and will be) redacted. Furthermore we will also add more text to the notes in order to give context and background, while not altering the meaning of theses notes.

With all that said, let’s get started!

MetaBrainz Foundation Board Meeting Minutes 2016­-09­-15

Attendees: Robert Kaye, Nick Ashton ­Hart, Sophie Goossens, Rassami Hok ­Ljungberg, Frederik “Freso” S. Olesen, Cory Doctorow
Absent: Paul Bennun, Matthew Hawn

Agenda

0. Call to order.
Rob called to order at 18:15 CEST.
Editor’s note: Unless otherwise noted, Rob will be the one speaking in the notes below.
1. Approval of last meeting minutes
Moved by Rob. Rassami objects to all board members sending chocolate, but with that removed, she seconded. Unanimous. Motion carried.
2. Board changes
Editor’s note: Christina, our former biz dev manager, used to be on our board of directors as both Secretary and Treasurer. Since she was no longer with us, we needed to replace her positions in the board.
Rob moves that Christina is replaced by Rassami as Treasurer. Sophie seconds. Vote is unanimous. Motion carried.
Rob moves to replace Christina with Frederik “Freso” Olesen, our community manager, as the new Secretary of the board. Having Freso as our secretary gives the community some insight into the board meetings. Rassami seconds. Rob suggests that Freso should take the board meeting notes and remove private/confidential points and release a version that is suitable for public consumption.
3. Old business:
  • General update: It’s been a challenging year: Planned for a lot, had a lot of set backs. Series of perfect storms, causing extremely and challenging year for me personally, but I am finally climbing out. I’m digging out and focusing on the core issues.
  • Office: Power, plumbing issues resolved. Ready for use with the hack day next week.
  • Hosting: We’ve been moving services away from Digital West and to Google. At the same time we continue to get more traffic and asking people to be polite in using our service isn’t really working anymore, thus the focus on NewHost. Another perfect storm. Now have 4 servers at Hetzner in Germany, working to move in. We’ll order more servers closer to migration time. Been working all summer to move services to containers. We gain flexibility and mobility, but there is loads of work.
  • Summit: We’re not going to have a summit this year, but opted for a smaller hack weekend where we iterate faster to get to NewHost.
  • Non paying companies: Data is wide open, and commercial customers can legally make use our data and API. Soon we will prevent them from using our API (by using API keys), but abuse is still possible. How can we deal with non-supporting companies? So far, we would put companies into the penalty box and then send a tweet to that effect. This has been our practice and I explained this to our biz dev manager, but due to other issues compounding she decided to pick this issue to start a war over. So, how should we deal with non paying companies? How far can we go in pestering companies to do the right thing?

    Nick states that the heaviest offenses will be eliminated by introducing API keys. Rob notes that he still wants to bring attention to people for leech our data outside of the WS and data dumps.

    Rob asks if we should try and keep track of people who download our data, but there might be some legal concerns related to (knowing if pirates download the data).

    Rob to-do: ask our pro bono lawyer legal question about keeping track of people.

    Rob asks: Do anyone have an objection to the “penalty box” idea?

    Cory suggests to perhaps get a pro bono lawyer to send a letter to bad actors telling them they’re bad actors.

    Cory also suggested that the board should be consulted before a company goes into the penalty box. Rob agrees and will write follow-up email to this point.

4. New business:
  • Big Query: Make MusicBrainz, AcousticBrainz and ListenBrainz available on BigQuery — Google would like better and more dynamic data sets to show off their service. We get free data hosting and people will be able to query their own LB (last.fm) data on their own if they want to. Game changer. We’ve moving LB/AB, Google is adding MB. Once this is done, Google will do some publicity for this.
  • Dec board meeting: London. I’ll pick a date soon.
5. Finances:
  • Moved to new EUR capable accounting system, which took time to do, but now saves time.
  • Income is increasing, this is the most amount of money we’ve had in the bank ever! > $200k!! \ø/
  • Moving forward with new Biz Dev: I’m not going to replace biz dev manager right this second. I’m managing the influx of new customers, and need to focus on moving servers to new hosting facility (NewHost). Once our hosting setup is stable, I’ll work to hire more people in order to make my life more sane.
5. Adjourn
18:57 CEST

Footnotes

  1. Q2 P&L: https://metabrainz.org/finances/files/MetaBrainz_Foundation_profit_loss_2016_Q2.pdf
  2. Aug P&L: https://metabrainz.org/finances/files/MetaBrainz_Foundation_profit_loss_20160831.pdf
  3. Aug Balance sheet: https://metabrainz.org/finances/files/MetaBrainz_Foundation_balance_sheet_20160831.pdf

MetaBrainz has been accepted to Summer of Code 2017!

I’m pleased to announce that MetaBrainz has been accepted into the Google Summer of Code program for 2017!

If you are an eligible university student who would like to participate in Summer of Code and get paid to hack on a MetaBrainz project over the summer, take a look at our ideas page for 2017. If this sounds interesting, take a look at our getting started page.

We kindly ask that you carefully read the ideas page and the getting started page before you contact us for help!

Thanks and good luck applying!

Welcome to the team Elizabeth!

I’m very happy to announce that we have a brand new Supporter Catalyst on our team. Elizabeth Bigger, AKA Quesito, joined our team at the beginning of the year and is now coming up to speed.

Her duties include making contact with any supporters who sign up on the MetaBrainz site and to sort out any questions they may have working with such a quirky organization like MetaBrainz. She’ll also be reaching out to established customers to make sure that they are on the right support level and that things are working smoothly for our supporters.

I anticipate her also helping out with other tasks such as putting on our annual summit and other events we may hold in our office in Barcelona.

Welcome on board, Elizabeth!

Google is awesome: How should we spend $5000?

The Google Open Source Programs office is amazing!

In the past few years Google has sponsored our summit where we gather a pile of MusicBrainzers into one room and talk shop (and a bit of play) for a whole weekend. But, due to extenuating circumstances and our move to NewHost, we opted for a much smaller and lower key developer gathering in Barcelona. As a result we didn’t spend much money and I opted to not pester Google to support our summit as they have in the years past.

Then yesterday the lovely Cat Allman from OSPO send us a PO for $5000 and a stern reminder to send an invoice soon. After explaining the situation to Cat, she still felt it was appropriate to collect the money and to “use the money as best serves the project.” 

Wow, thank you!

The question I have, for all of our readers, contributors, editors, hackers and advocates: How do you think we should spend $5000 to best serve MusicBrainz and its sister projects?

I’ll leave it wide open to everyone to chime in — feel free to put suggest anything reasonable and meaningful in the comments. Please do the skip the “send it to me!” type comments. 🙂

Finally, I want to thank Google for its continued support of our projects. Through its annual support of $40,000, Summer of Code, Code-In, the paid data license for its Knowledge Graph and the support of our summit, Google is the biggest supporter of the MetaBrainz Foundation. By far: Google has donated more than $366,000!

THANK YOU GOOGLE. Your support really helps us along!

Replication update: Do you have a DB that could help us?

In my post from yesterday I talked about our continuing struggle to fix our replication stream. Overnight we learned two new things:

  1. The lengthy hard drive recovery process has failed and yielded no useful results. 😦
  2. We have a working DB diff program in place that allows us to create missing replication packets from two DBs at known packet numbers.

#2 is a great step forward in fixing our replication stream, but we’re missing a specific replicated database at a specific point in time. If you have a replicated database, please read on and see if you can help us:

  1. Is your database at replication packet 99847? The way to find out your current replication sequence is to look in slave.log in your server directory or to issue the query
    select current_replication_sequence from replication_control;

    at the SQL prompt.

  2. Do you have a complete replicated MusicBrainz database, including the cover_art_archive schema?
  3. Are you willing to make a dump of the DB and send it to us?
  4. Do you have a fast internet connection to make #3 possible?

If you’ve answered yes to all of the above, please send email to support at metabrainz dot org.

Thanks!

 

Sophie Goossens joins the MetaBrainz board of directors (and more!)

I’m pleased to announce that Sophie Goossens, an attorney in London, has joined the board of directors of the MetaBrainz Foundation. Sophie specializes in intellectual property law and has ties to the European Commission, which makes her a great addition to our board of directors.

Welcome to our board of directors, Sophie!

Sophie replaces Carol Smith who decided to move on from the board after leaving her position as the head of Google’s Summer of Code program. Carol joined us in late 2009 and has held the position as treasurer & secretary since then. Two years after joining us, she became a full director in early 2011.

Thank you for everything you’ve done for MetaBrainz in the past 6+ years, Carol!

Last, but not least, we needed to fill the Secretary/Treasurer slots that were vacated by Carol. Luckily for us, our business development manager Christina Smith stepped up to those duties and was voted onto the board back in February. (Now that all of these changes are complete, we can publicly speak about them.)

Thank you for taking on these two positions, Christina. I’m also quite happy that we’ve preserved the balance of people with the last name Smith in our board. 🙂

Thanks Sophie, Carol and Christina!

State of the Onion: MetaBrainz

In the past few weeks we’ve been hit with several traffic increases to MusicBrainz which is putting considerably more strain on our aging infrastructure than we’re happy with. If it seems that we’re not doing anything about it, that is because we’ve been busy behind the scenes trying to keep things moving forward. This sometimes doesn’t leave us a lot of time to keep the public informed on our work. Hopefully this blog post will fix this in the short term:

In 2011 we started to make plans to move MusicBrainz hosting into the cloud, but then out of the blue we were donated a pile of machines. There were so many machines that I postponed the cloud plans and prepared the donated machines for service. That has carried us for 4+ years with almost no hardware cost, which was really great. The plan was to move to the cloud sometime around 2015, but then I spent most of 2014/2015 dealing with conflicts in the team, putting us seriously behind schedule while our hardware decayed.

On top of that, we’ve recently had some “bad luck”. We have had some disrespectful commercial customers hit us really hard and we had to find and block them. We have had unexpected traffic spikes and when trying to address these unexpected traffic spikes, we had two more machines fail on us. These were the donated machines that we kept in reserve for just this moment. The loss of two machines caught us short on capacity to handle the increased demands on our servers.

So, now we face the tough question: Do we buy expensive hardware that we might use for 6 months (~$5000) or do we try and save the money and tough it out? I’d rather not spend so much money on such short term use if we can avoid it. We’re going to try and move to a new hosting facility somewhere in the EU, since that is where most of our users are.

Moving to a new hosting facility has an incredible number of dependencies that Christina (our Biz Dev manager), Zas and I have been working through. It may not seem like we have a plan, but we do, and we’re incredibly busy trying to make the plan happen. To give you a taste of what we’re up against:

  1. We want to move our hosting to Europe and have a business presence in Europe in order to reduce the costs and inefficiencies of being a solely US based business. A lot of our traffic, customers and contractors are in the EU and it simply makes sense to have a presence here.
  2. To establish a presence in the EU I needed local help to help with the business matters as well as researching and establishing an EU organization. So I needed to find a Biz Dev manager and that person is Christina.
  3. Once Christina was on board she researched our options about what was suited for us. Getting that process moving involved getting certified documents from California, board approval for spending funds to establish the organization, EU labor law research, (and we needed to swap a board member, too!), hiring help to establish the org. and generally navigating the Spanish bureaucracy. (See this only slightly exaggerated short film for some clues of our ordeal.)
  4. Once the org. had been established we needed to convince the bank to open a bank account for us. The draconian US banking laws extend worldwide and the local bank had to ensure that they were not opening themselves up to thousands of $$$ in accounting hassles just to allow a tiny non-profit to open a bank account. We finally have a bank account and have started paying our contractors with it!
  5. At the same time we’re also working to set up an office for the growing team here in Barcelona. That required a byzantine process that barely started when you sign the lease. Getting power, internet and water set up has taken a frustratingly long time. Had I known how long, I would have stayed at my co-working space for a while longer while addressing hosting issues.
  6. While Christina has been focused on the hardcore paperwork, Zas is keeping the site running, which itself requires many heroics. Zas and I have started planning the move to the EU hosting provider. We’ve got a 5-page document that collects some of the open questions and requirements around this process: https://docs.google.com/document/d/16KNm4KksNwz29Opk1aILOMtCmPIeXFuxxUjMoPT3th0/edit#heading=h.dpfvoz1idcro. Right now Zas and Bitmap are here in Barcelona and we’re going to work on establishing a formal plan for moving to the new hosting company. We’re currently comparing hosting company offerings – see what we’ve collected so far if you care to follow along. The amount of work required to make this happen is making my head hurt. (A special shoutout to KodeStar, lead developer of FanArt.tv, for providing a lot of useful feedback about our various options.)
  7. While Christina, Zas and I have our hands full, Bitmap and Gentlecat continue to release new features and work on the schema change. Not to mention all the contributions from Freso and Reosarevok to keep the community happy and polite while we deal with less than optimal site conditions. That said, I am really happy and proud of my team, trying to keep things running in sub-optimal conditions.

This is just a snapshot of everything that is happening behind the scenes that will culminate with the goal of moving to a new hosting company and being set up in the EU. And mind you, we’re doing this with a minuscule budget trying to be careful of how we spent our money.

Notifications and messaging in MetaBrainz projects

During the last MusicBrainz summit in Barcelona we decided to start working on finding possible ways to implement two features that have been requested for a long time:

  1. Messaging between users
  2. Notifications about various actions in MetaBrainz projects

Since MetaBrainz is more than just MusicBrainz these days, we also want to integrate these features into other projects. That, for example, means when a user is reading reviews on CritiqueBrainz they can see notifications about comments on their edits on MusicBrainz. Same applies to messaging. These features are intended to encourage our communities to communicate more easily with each other.

Messaging

http://tickets.musicbrainz.org/browse/MBS-8721

The only ways of communication we have right now are two IRC channels, forums that we plan to replace with Discourse, and comments on individual edits. Sometimes we end up sending private emails to editors for one reason or another. Perhaps it is better to have our own messaging system for this purpose? I imagine it being similar to messaging systems on forums, reddit, etc. We would like to know what you think potential uses are for this and how it might look like to be useful.

Notifications

http://tickets.musicbrainz.org/browse/MBS-1801

Site-based notifications are another thing that people have been asking for a long time. For example, these notifications can be related to edits on MusicBrainz, reviews on CritiqueBrainz, datasets in AcousticBrainz, etc. It can be an addition or replacement for email notifications that we currently have in MusicBrainz. Maybe something similar to the inbox feature that the Stack Exchange network has. People should be able to choose if they want to keep receiving email notifications or only use the new site-based notifications.

Progress so far

We looked at a couple of ways to implement this functionality.

First suggestion was to use the Layer toolkit. The problem with it is that we don’t want to be dependent on closed software and another company’s infrastructure, especially in case of such important features.

Second was to use the XMPP protocol to handle communication and notifications. We tried to implement a proof of concept using this protocol and encountered several issues at the start:

  • It’s unclear how to store messages and process them later;
  • It can be problematic to reuse the same connection in different browser;
  • There are plenty of things that we’ll need to implement on top of this protocol ourselves (like authentication, storage, notifications).

Repository with everything that was implemented so far is at https://github.com/metabrainz/xmpp-messaging-server. Given these problems we started considering implementing our own server(s) for this purpose.

You can take a look at the document where we collect most information about current progress.

Feedback

There’s plenty of feedback on the site-based notifications feature request, and we have a pretty good understanding of what’s needed. This is not the case with the messaging feature. We explored several options for implementing this kind of functionality and decided that it’s time to refresh the list of requirements to get an idea of what needs to be done.

The goal of this blog post is to encourage discussion and gather ideas. If you are interested in these features, please share your thoughts and suggestions.