Difference between revisions of "Development/Summer of Code/2017"

From MusicBrainz Wiki
(Direct access to MusicBrainz database from CritiqueBrainz)
 
(32 intermediate revisions by 7 users not shown)
Line 1: Line 1:
==Ideas==
+
Are you interested in working with MetaBrainz in Google Summer of Code 2017? You're in the right place!
  
=== Direct access to MusicBrainz database from CritiqueBrainz ===
+
==Where to start==
 +
<dl>
 +
<dt>New to MetaBrainz?</dt>
 +
<dd>The [[meb:|MetaBrainz Foundation]] has been set up to build [[meb:projects|community maintained databases]] and make them available in the public domain or under Creative Commons licenses</dd>
 +
<dt>New to MetaBrainz development and/or GSoC?</dt>
 +
<dd>[[Development/Summer_of_Code/Getting_started|Getting started with GSoC]]</dd>
 +
<dt>Ready to apply?</dt>
 +
<dd>[https://community.metabrainz.org/c/metabrainz/gsoc-applications GSoC applications @ community.metabrainz.org]</dd>
 +
<dd>Be aware of the content of our [[Development/Summer of Code/Application Template]]</dd>
 +
</dl>
  
Proposed mentor: ''Gentlecat''<br>
+
=== Mentors ===
Languages/skills: Python, Flask, SQL (PostgreSQL, SQLAlchemy), Docker, Consul
 
  
So far, the biggest cause for slowdown in CritiqueBrainz are requests to MusicBrainz web service. It's not that MusicBrainz WS is slow, it's just that some pages on CritiqueBrainz require a lot of MusicBrainz data, which might take a very long time to retrieve. This can be caused by the complexity of a request, or by a number of them (when showing multiple items, since there's no way to do batch-requests).
+
{| class="wikitable"
 +
|+ Mentor list
 +
! Name
 +
! [[IRC]] nick
 +
! Project
 +
|-
 +
| [[discourse_user:rob|Robert Kaye]]
 +
| ruaok
 +
| AcousticBrainz, ListenBrainz, MusicBrainz
 +
|-
 +
| [[discourse_user:bitmap|Michael Wiencek]]
 +
| bitmap
 +
| MusicBrainz, Picard
 +
|-
 +
| [[discourse_user:alatairp|Alastair Porter]]
 +
| alastairp
 +
| AcousticBrainz, ListenBrainz
 +
|-
 +
| [[discourse_user:lordsputkin|Ben Ockmore]]
 +
| LordSputnik
 +
| BookBrainz
 +
|-
 +
| [[discourse_user:leftmostcat|Sean Burke]]
 +
| Leftmost
 +
| BookBrainz
 +
|-
 +
| [[discourse_user:gentlecat|Roman Tsukanov]]
 +
| Gentlecat
 +
| CritiqueBrainz, AcousticBrainz, ListenBrainz
 +
|-
 +
| [[discourse_user:zas|Laurent Monin]]
 +
| zas
 +
| Picard
 +
|}
  
New infrastructure allows us to easily read data directly from the MusicBrainz database. Doing this in CritiqueBrainz will probably be a significant speedup.
+
Some potential mentors are listed by each project; this is far from a normative list, but it might give you somebody to ask about the project.
  
See https://tickets.metabrainz.org/browse/CB-231.
+
{{Note|Contacting the mentors privately (e.g., via e-mail or private IRC messages) will get you off to a very, very bad start in your relations with us and any application you send us is now almost definitely going to not get accepted.}}
 +
 
 +
=== About proposals ===
 +
Before you dive in and send a proposal to us through Google, it's a good idea to take some time and [[How_to_Contribute|learn about the MusicBrainz community]]. At MusicBrainz we pride ourselves for having a strong community - most of us know each other in some way, and some of us know each other face to face from development summits.
 +
 
 +
A good way to get a feel of this would be to talk about your ideas and proposals on IRC. However, starting off by sending private messages to potential mentors '''is not''' a good way to introduce yourself to the community. '''Please don't do that!'''
 +
 
 +
If you're not sure where to start, [[Development/Summer of Code/Getting started]] might help.
 +
 
 +
===Join in on development===
 +
 
 +
We like it when potential students show initiative and make contributions to code without asking us what to do next. We have tagged [https://tickets.metabrainz.org/issues/?jql=labels%20%3D%20good-first-bug tickets that we think are suitable for for new contributors with the "good-first-bug" label]. Take a look at these tickets and see if any of them grab your interest. If a ticket is not assigned to anyone you can assume that it's up for grabs - feel free to assign yourself and start working on it. We recommend that you also talk to us before starting work on a ticket, to make sure that you understand what tasks are involved to finish the ticket. We recommend that you explain to us your understanding of the ticket - we will help you if there is anything that you have missed. To talk to us, join our IRC channel or post a message in the forums or on a ticket.
 +
 
 +
==Projects==
 +
===[[AcousticBrainz]]===
 +
 
 +
{| style="width:60%"
 +
|-
 +
| style="width:120px" rowspan="3" | [[File:AcousticBrainz logo small notext.png]]
 +
| AcousticBrainz is our new project that crowdsources acoustic information for all music in the world and to make it available to the public. We already have low-level information about more than three million tracks. What we need is a good way for users and developers to interact with all this data and help improve algorithms that are used to analyze it.
 +
 
 +
It would suit someone with experience or an interest in machine learning algorithms, though the majority of the project will probably involve creating infrastructure around our existing algorithms.
 +
|-
 +
| style="background-color:ghostwhite" | '''Languages/skills''': Python, PostgreSQL, Flask
 +
|-
 +
| style="text-align:center" | [[Development/Summer of Code/2017/AcousticBrainz|Ideas page]] | [http://acousticbrainz.org/ Main page] | [http://blog.musicbrainz.org/category/acousticbrainz/ Blog] | [[discourse:c/acousticbrainz|Forums]]
 +
|}
 +
<hr />
 +
 
 +
===[[BookBrainz]]===
 +
{| style="width:60%"
 +
|-
 +
| style="width:120px" rowspan="3" | [[File:BookBrainz logo small notext.png]]
 +
| BookBrainz is a database of book metadata.
 +
 
 +
This year we're interested in projects that help us get more data. The three suggested ideas to build proposals around are data importing, a web API and gamification of editing. Please see our sub-project ideas page for information on getting started and more details about the ideas themselves.
 +
|-
 +
| style="background-color:ghostwhite" | '''Top 3 Desired Skills''': Node.js, Python, SQL
 +
|-
 +
| style="text-align:center" | [[Development/Summer of Code/2017/BookBrainz|Ideas page]] | [[bb:|Main page]] | [[discourse:c/bookbrainz|Forums]]
 +
|}
 +
<hr />
 +
 
 +
===[[CritiqueBrainz]]===
 +
{| style="width:60%"
 +
|-
 +
| style="width:120px" rowspan="3" | [[File:CritiqueBrainz logo small notext.png]]
 +
| Fills the gap between music critics and raw data by providing a platform created for the sole purpose of Creative Commons licensed reviews.
 +
|-
 +
| style="background-color:ghostwhite" | '''Languages/skills''': Python, Flask, SQL, PostgreSQL
 +
|-
 +
| style="text-align:center" | [[Development/Summer of Code/2017/CritiqueBrainz|Ideas page]] | [[cb:|Main page]] | [[discourse:c/metabrainz|Forums]]
 +
|}
 +
<hr />
 +
 
 +
===[[ListenBrainz]]===
 +
{| style="width:60%"
 +
|-
 +
| style="width:120px" rowspan="3" | [[File:ListenBrainz logo small notext.png]]
 +
| An open source music website that allows users to import their listen history. One of the goals is for this data to be used for building open music recommendation systems.
 +
|-
 +
| style="background-color:ghostwhite" | '''Languages/skills''': Python
 +
|-
 +
| style="text-align:center" | [[Development/Summer of Code/2017/ListenBrainz|Ideas page]] | [https://listenbrainz.org/ Main page]
 +
|}
 +
<hr />
 +
 
 +
===[[MusicBrainz]]===
 +
{| style="width:60%"
 +
|-
 +
| style="width:120px" rowspan="3" | [[File:MusicBrainz logo small notext.png]]
 +
| A community-maintained open source music encyclopedia that collects music metadata and makes it available to the public.
 +
|-
 +
| style="background-color:ghostwhite" | '''Languages/skills''': JavaScript (React), Perl, Python, PostgreSQL, SQL
 +
|-
 +
| style="text-align:center" | [[Development/Summer of Code/2017/MusicBrainz|Ideas page]] | [[mb:|Main page]] | [[discourse:c/musicbrainz|Forums]]
 +
|}
 +
<hr />
 +
 
 +
===[[MusicBrainz Picard]]===
 +
{| style="width:60%"
 +
|-
 +
| style="width:120px" rowspan="3" | [[File:Picard_logo_small_notext.png]]
 +
| '''MusicBrainz Picard''' is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz [[MusicBrainz_Enabled_Applications|tagger]]. It supports the majority of audio file formats, is capable of using audio fingerprints ([[AcoustID]]s), performing CD lookups and [[Disc ID|disc ID]] submissions, and it has excellent Unicode support.
 +
|-
 +
| style="background-color:ghostwhite" | '''Languages/skills''': Python, QT
 +
|-
 +
| style="text-align:center" | [[Development/Summer of Code/2017/Picard|Ideas page]] | [https://picard.musicbrainz.org/ Main page] | [[discourse:c/picard|Forums]]
 +
|}
 +
<hr />
 +
 
 +
[[Category:Development]]

Latest revision as of 10:44, 13 March 2017

Are you interested in working with MetaBrainz in Google Summer of Code 2017? You're in the right place!

Where to start

New to MetaBrainz?
The MetaBrainz Foundation has been set up to build community maintained databases and make them available in the public domain or under Creative Commons licenses
New to MetaBrainz development and/or GSoC?
Getting started with GSoC
Ready to apply?
GSoC applications @ community.metabrainz.org
Be aware of the content of our Development/Summer of Code/Application Template

Mentors

Mentor list
Name IRC nick Project
Robert Kaye ruaok AcousticBrainz, ListenBrainz, MusicBrainz
Michael Wiencek bitmap MusicBrainz, Picard
Alastair Porter alastairp AcousticBrainz, ListenBrainz
Ben Ockmore LordSputnik BookBrainz
Sean Burke Leftmost BookBrainz
Roman Tsukanov Gentlecat CritiqueBrainz, AcousticBrainz, ListenBrainz
Laurent Monin zas Picard

Some potential mentors are listed by each project; this is far from a normative list, but it might give you somebody to ask about the project.

Note: Contacting the mentors privately (e.g., via e-mail or private IRC messages) will get you off to a very, very bad start in your relations with us and any application you send us is now almost definitely going to not get accepted.

About proposals

Before you dive in and send a proposal to us through Google, it's a good idea to take some time and learn about the MusicBrainz community. At MusicBrainz we pride ourselves for having a strong community - most of us know each other in some way, and some of us know each other face to face from development summits.

A good way to get a feel of this would be to talk about your ideas and proposals on IRC. However, starting off by sending private messages to potential mentors is not a good way to introduce yourself to the community. Please don't do that!

If you're not sure where to start, Development/Summer of Code/Getting started might help.

Join in on development

We like it when potential students show initiative and make contributions to code without asking us what to do next. We have tagged tickets that we think are suitable for for new contributors with the "good-first-bug" label. Take a look at these tickets and see if any of them grab your interest. If a ticket is not assigned to anyone you can assume that it's up for grabs - feel free to assign yourself and start working on it. We recommend that you also talk to us before starting work on a ticket, to make sure that you understand what tasks are involved to finish the ticket. We recommend that you explain to us your understanding of the ticket - we will help you if there is anything that you have missed. To talk to us, join our IRC channel or post a message in the forums or on a ticket.

Projects

AcousticBrainz

AcousticBrainz logo small notext.png AcousticBrainz is our new project that crowdsources acoustic information for all music in the world and to make it available to the public. We already have low-level information about more than three million tracks. What we need is a good way for users and developers to interact with all this data and help improve algorithms that are used to analyze it.

It would suit someone with experience or an interest in machine learning algorithms, though the majority of the project will probably involve creating infrastructure around our existing algorithms.

Languages/skills: Python, PostgreSQL, Flask
Ideas page | Main page | Blog | Forums

BookBrainz

BookBrainz logo small notext.png BookBrainz is a database of book metadata.

This year we're interested in projects that help us get more data. The three suggested ideas to build proposals around are data importing, a web API and gamification of editing. Please see our sub-project ideas page for information on getting started and more details about the ideas themselves.

Top 3 Desired Skills: Node.js, Python, SQL
Ideas page | Main page | Forums

CritiqueBrainz

CritiqueBrainz logo small notext.png Fills the gap between music critics and raw data by providing a platform created for the sole purpose of Creative Commons licensed reviews.
Languages/skills: Python, Flask, SQL, PostgreSQL
Ideas page | Main page | Forums

ListenBrainz

ListenBrainz logo small notext.png An open source music website that allows users to import their listen history. One of the goals is for this data to be used for building open music recommendation systems.
Languages/skills: Python
Ideas page | Main page

MusicBrainz

MusicBrainz logo small notext.png A community-maintained open source music encyclopedia that collects music metadata and makes it available to the public.
Languages/skills: JavaScript (React), Perl, Python, PostgreSQL, SQL
Ideas page | Main page | Forums

MusicBrainz Picard

Picard logo small notext.png MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagger. It supports the majority of audio file formats, is capable of using audio fingerprints (AcoustIDs), performing CD lookups and disc ID submissions, and it has excellent Unicode support.
Languages/skills: Python, QT
Ideas page | Main page | Forums