CINXE.COM
June 2013 – MetaBrainz Blog
<!DOCTYPE html> <html lang="en" class="no-js"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="https://gmpg.org/xfn/11"> <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <title>June 2013 – MetaBrainz Blog</title> <meta name='robots' content='max-image-preview:large' /> <meta name="google-site-verification" content="aHsalzSsjEz9L3kesh85sP49ooc2wS4HR-_8_wmoIJg" /> <meta name="msvalidate.01" content="9A2D04F4206FB5DA8B1A5DDDD8772245" /> <!-- Async WordPress.com Remote Login --> <script id="wpcom_remote_login_js"> var wpcom_remote_login_extra_auth = ''; function wpcom_remote_login_remove_dom_node_id( element_id ) { var dom_node = document.getElementById( element_id ); if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); } } function wpcom_remote_login_remove_dom_node_classes( class_name ) { var dom_nodes = document.querySelectorAll( '.' + class_name ); for ( var i = 0; i < dom_nodes.length; i++ ) { dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] ); } } function wpcom_remote_login_final_cleanup() { wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" ); wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" ); wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" ); } // Watch for messages back from the remote login window.addEventListener( "message", function( e ) { if ( e.origin === "https://r-login.wordpress.com" ) { var data = {}; try { data = JSON.parse( e.data ); } catch( e ) { wpcom_remote_login_final_cleanup(); return; } if ( data.msg === 'LOGIN' ) { // Clean up the login check iframe wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); var id_regex = new RegExp( /^[0-9]+$/ ); var token_regex = new RegExp( /^.*|.*|.*$/ ); if ( token_regex.test( data.token ) && id_regex.test( data.wpcomid ) ) { // We have everything we need to ask for a login var script = document.createElement( "script" ); script.setAttribute( "id", "wpcom_remote_login_validate" ); script.src = '/remote-login.php?wpcom_remote_login=validate' + '&wpcomid=' + data.wpcomid + '&token=' + encodeURIComponent( data.token ) + '&host=' + window.location.protocol + '//' + window.location.hostname + '&postid=2060' + '&is_singular='; document.body.appendChild( script ); } return; } // Safari ITP, not logged in, so redirect if ( data.msg === 'LOGIN-REDIRECT' ) { window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href; return; } // Safari ITP, storage access failed, remove the request if ( data.msg === 'LOGIN-REMOVE' ) { var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }'; var style_zap = document.createElement( 'style' ); style_zap.type = 'text/css'; style_zap.appendChild( document.createTextNode( css_zap ) ); document.body.appendChild( style_zap ); var e = document.getElementById( 'wpcom_request_access_iframe' ); e.parentNode.removeChild( e ); document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000'; return; } // Safari ITP if ( data.msg === 'REQUEST_ACCESS' ) { console.log( 'request access: safari' ); // Check ITP iframe enable/disable knob if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) { return; } // If we are in a "private window" there is no ITP. var private_window = false; try { var opendb = window.openDatabase( null, null, null, null ); } catch( e ) { private_window = true; } if ( private_window ) { console.log( 'private window' ); return; } var iframe = document.createElement( 'iframe' ); iframe.id = 'wpcom_request_access_iframe'; iframe.setAttribute( 'scrolling', 'no' ); iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' ); iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid ); var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } '; var style = document.createElement( 'style' ); style.type = 'text/css'; style.id = 'wpcom_request_access_styles'; style.appendChild( document.createTextNode( css ) ); document.body.appendChild( style ); document.body.appendChild( iframe ); } if ( data.msg === 'DONE' ) { wpcom_remote_login_final_cleanup(); } } }, false ); // Inject the remote login iframe after the page has had a chance to load // more critical resources window.addEventListener( "DOMContentLoaded", function( e ) { var iframe = document.createElement( "iframe" ); iframe.style.display = "none"; iframe.setAttribute( "scrolling", "no" ); iframe.setAttribute( "id", "wpcom_remote_login_key" ); iframe.src = "https://r-login.wordpress.com/remote-login.php" + "?wpcom_remote_login=key" + "&origin=aHR0cHM6Ly9ibG9nLm1ldGFicmFpbnoub3Jn" + "&wpcomid=1935472" + "&time=1743441533"; document.body.appendChild( iframe ); }, false ); </script> <link rel='dns-prefetch' href='//s1.wp.com' /> <link rel='dns-prefetch' href='//s2.wp.com' /> <link rel='dns-prefetch' href='//s0.wp.com' /> <link rel="alternate" type="application/rss+xml" title="MetaBrainz Blog » Feed" href="https://blog.metabrainz.org/feed/" /> <link rel="alternate" type="application/rss+xml" title="MetaBrainz Blog » Comments Feed" href="https://blog.metabrainz.org/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function () { oldonload(); func(); } } } /* ]]> */ </script> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/s1.wp.com\/wp-includes\/js\/wp-emoji-release.min.js?m=1743165756i&ver=6.8-beta1-59942"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); </script> <link crossorigin='anonymous' rel='stylesheet' id='all-css-0-1' href='https://s0.wp.com/_static/??-eJyVjFsKwkAMAC/kGhap1A/xLCXGujWPxWRpe3st1AP4MzAfMzDXhKZBGiAtVW5jUYeJog742h3EbMO9MTnEk4RSmLEDmtQhIOZvv3pZgkiP6H6A/79FH0VLUHJ8G/PP1+13k2s+910+5f7STR/VsEQ6&cssminify=yes' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='https://s0.wp.com/_static/??-eJyljkEKwjAQRS9kMm0ISBfiWZJ2iKlpEmYmSm5vdSO4Krj8PN7jw7OquWTBLFBTCzEzhLZPjxR2QggPM+hBW/AtpgV8KvNdpejJUQeWnlDPzCf4LyQ33I6EPhbDilLdW3e9NFGB4nL4y0+CnMQc+Ktft8t4tqOZJmPs+gJ1p2pO&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-library-inline-css'> .has-text-align-justify { text-align:justify; } .has-text-align-justify{text-align:justify;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-4-1' href='https://s2.wp.com/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpoZmFkYGRuZGmQBAHPvL0Y=&cssminify=yes' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-6-1' href='https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/coblocks-style.css?m=1681832297i&cssminify=yes' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-8-1' href='https://s1.wp.com/_static/??/wp-content/mu-plugins/core-compat/wp-mediaelement.css,/wp-content/mu-plugins/wpcom-bbpress-premium-themes.css?m=1432920480j&cssminify=yes' type='text/css' media='all' /> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #1a1a1a;--wp--preset--color--medium-gray: #686868;--wp--preset--color--light-gray: #e5e5e5;--wp--preset--color--blue-gray: #4d545c;--wp--preset--color--bright-blue: #007acc;--wp--preset--color--light-blue: #9adffd;--wp--preset--color--dark-brown: #402b30;--wp--preset--color--medium-brown: #774e24;--wp--preset--color--dark-red: #640c1f;--wp--preset--color--bright-red: #ff675f;--wp--preset--color--yellow: #ffef8e;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-10-1' href='https://s0.wp.com/_static/??-eJyNjtEKwjAMRX/IGSZV9EH8FOlKnN3atDQZc39vqj4IKviWezk5Ccy5cYkESUCuGJEhTx3IrMXC/iaIBBcFGCKW4me0ipUmh4mbWHttrTyzJ1VxClbs2jGv4E0ep8r0nhgGlGzd+MoQUyI46y70SFh8dXwfP6Q/P2ZZAv6PKwhdSG58nDjFY7vbb9vNwRgz3AE9cm7a&cssminify=yes' type='text/css' media='all' /> <!--[if lt IE 10]> <link rel='stylesheet' id='twentysixteen-ie-css' href='https://s2.wp.com/wp-content/themes/pub/twentysixteen/css/ie.css?m=1448353951i&ver=20170530' media='all' /> <![endif]--> <!--[if lt IE 9]> <link rel='stylesheet' id='twentysixteen-ie8-css' href='https://s2.wp.com/wp-content/themes/pub/twentysixteen/css/ie8.css?m=1493067000i&ver=20170530' media='all' /> <![endif]--> <!--[if lt IE 8]> <link rel='stylesheet' id='twentysixteen-ie7-css' href='https://s2.wp.com/wp-content/themes/pub/twentysixteen/css/ie7.css?m=1448353951i&ver=20170530' media='all' /> <![endif]--> <link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='https://s1.wp.com/wp-content/themes/pub/twentysixteen/css/style-wpcom.css?m=1514503118i&cssminify=yes' type='text/css' media='all' /> <style id='akismet-widget-style-inline-css'> .a-stats { --akismet-color-mid-green: #357b49; --akismet-color-white: #fff; --akismet-color-light-grey: #f6f7f7; max-width: 350px; width: auto; } .a-stats * { all: unset; box-sizing: border-box; } .a-stats strong { font-weight: 600; } .a-stats a.a-stats__link, .a-stats a.a-stats__link:visited, .a-stats a.a-stats__link:active { background: var(--akismet-color-mid-green); border: none; box-shadow: none; border-radius: 8px; color: var(--akismet-color-white); cursor: pointer; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif; font-weight: 500; padding: 12px; text-align: center; text-decoration: none; transition: all 0.2s ease; } /* Extra specificity to deal with TwentyTwentyOne focus style */ .widget .a-stats a.a-stats__link:focus { background: var(--akismet-color-mid-green); color: var(--akismet-color-white); text-decoration: none; } .a-stats a.a-stats__link:hover { filter: brightness(110%); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 2px rgba(0, 0, 0, 0.16); } .a-stats .count { color: var(--akismet-color-white); display: block; font-size: 1.5em; line-height: 1.4; padding: 0 13px; white-space: nowrap; } </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-18-1' href='https://s0.wp.com/_static/??-eJx9jMEKwjAQRH/IuASp1IP4LTHdxq2b3dJsqP69KXhQEC/DvIE3sM4uqhiKQa5u5ppICix4ZU2tJojlE/cNd/BbSqiONQYjlS9wIwda/qkT2hzi/c2QVbcYKmMBkpGEDF2JizKD3TC32db28Sz0METZvi/57I995w++P3XTCzB0UXg=&cssminify=yes' type='text/css' media='all' /> <style id='jetpack-global-styles-frontend-style-inline-css'> :root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-20-1' href='https://s2.wp.com/wp-content/themes/h4/global.css?m=1420737423i&cssminify=yes' type='text/css' media='all' /> <script id="wpcom-actionbar-placeholder-js-extra"> var actionbardata = {"siteID":"1935472","postID":"0","siteURL":"https:\/\/blog.metabrainz.org","xhrURL":"https:\/\/blog.metabrainz.org\/wp-admin\/admin-ajax.php","nonce":"5ac4f99d57","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https:\/\/s0.wp.com\/wp-content\/js\/wpcom-proxy-request.js?ver=20211021","i18n":{"followedText":"New posts from this site will now appear in your <a href=\"https:\/\/wordpress.com\/reader\">Reader<\/a>","foldBar":"Collapse this bar","unfoldBar":"Expand this bar","shortLinkCopied":"Shortlink copied to clipboard."}}; </script> <script id="jetpack-mu-wpcom-settings-js-before"> var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https:\/\/s1.wp.com\/wp-content\/mu-plugins\/jetpack-mu-wpcom-plugin\/moon\/jetpack_vendor\/automattic\/jetpack-mu-wpcom\/src\/build\/"}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s0.wp.com/_static/??/wp-content/js/rlt-proxy.js,/wp-content/themes/pub/twentysixteen/js/html5.js?m=1720530689j'></script> <script id="rlt-proxy-js-after"> rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} ); </script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://musicbrainz.wordpress.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress.com" /> <!-- Jetpack Open Graph Tags --> <meta property="og:type" content="website" /> <meta property="og:title" content="June 2013 – MetaBrainz Blog" /> <meta property="og:site_name" content="MetaBrainz Blog" /> <meta property="og:image" content="https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150" /> <meta property="og:image:width" content="200" /> <meta property="og:image:height" content="200" /> <meta property="og:image:alt" content="" /> <meta property="og:locale" content="en_US" /> <meta name="twitter:creator" content="@MusicBrainz" /> <meta name="twitter:site" content="@MusicBrainz" /> <!-- End Jetpack Open Graph Tags --> <link rel='openid.server' href='https://blog.metabrainz.org/?openidserver=1' /> <link rel='openid.delegate' href='https://blog.metabrainz.org/' /> <link rel="search" type="application/opensearchdescription+xml" href="https://blog.metabrainz.org/osd.xml" title="MetaBrainz Blog" /> <link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" /> <style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <style type="text/css"> .recentcomments a { display: inline !important; padding: 0 !important; margin: 0 !important; } table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar { border: 0px; margin: 0; } table.recentcommentsavatartop a, table.recentcommentsavatarend a { border: 0px !important; background-color: transparent !important; } td.recentcommentsavatarend, td.recentcommentsavatartop { padding: 0px 0px 1px 0px; margin: 0px; } td.recentcommentstextend { border: none !important; padding: 0px 0px 2px 10px; } .rtl td.recentcommentstextend { padding: 0px 10px 2px 0px; } td.recentcommentstexttop { border: none; padding: 0px 0px 0px 10px; } .rtl td.recentcommentstexttop { padding: 0px 10px 0px 0px; } </style> <meta name="description" content="10 posts published by phwolfer, JonnyJD, acidcycles, ruaok, and ianmcorvidae during June 2013" /> <link rel="icon" href="https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=32" sizes="32x32" /> <link rel="icon" href="https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150" sizes="192x192" /> <link rel="apple-touch-icon" href="https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150" /> <meta name="msapplication-TileImage" content="https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150" /> </head> <body class="archive date wp-embed-responsive wp-theme-pubtwentysixteen customizer-styles-applied group-blog hfeed jetpack-reblog-enabled"> <div id="page" class="site"> <div class="site-inner"> <a class="skip-link screen-reader-text" href="#content"> Skip to content </a> <header id="masthead" class="site-header"> <div class="site-header-main"> <div class="site-branding"> <a href="https://blog.metabrainz.org/" class="site-logo-link" rel="home" itemprop="url"></a> <p class="site-title"><a href="https://blog.metabrainz.org/" rel="home">MetaBrainz Blog</a></p> <p class="site-description">MetaBrainz Foundation community blog</p> </div><!-- .site-branding --> <button id="menu-toggle" class="menu-toggle">Menu</button> <div id="site-header-menu" class="site-header-menu"> <nav id="site-navigation" class="main-navigation" aria-label="Primary Menu"> </nav><!-- .main-navigation --> </div><!-- .site-header-menu --> </div><!-- .site-header-main --> <div class="header-image"> <a href="https://blog.metabrainz.org/" rel="home"> <img src="https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-twitter-banner-1500x500.jpg" srcset="" sizes="" width="1200" height="186" alt="MetaBrainz Blog"> </a> </div><!-- .header-image --> </header><!-- .site-header --> <div id="content" class="site-content"> <div id="primary" class="content-area"> <main id="main" class="site-main"> <header class="page-header"> <h1 class="page-title">Month: <span>June 2013</span></h1> </header><!-- .page-header --> <article id="post-2060" class="post-2060 post type-post status-publish format-standard hentry category-development tag-net tag-libdiscid tag-mono"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/30/net-mono-bindings-for-libdiscid/" rel="bookmark">.NET / Mono bindings for libdiscid</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>There has been quite some activity regarding libdiscid in the last few months, here is some more: I have released dotnet-discid 0.2 which provides .NET / Mono bindings for libdiscid. The source is available at <a href="https://github.com/phw/dotnet-discid">GitHub</a>. For easy usage Windows users might want to use the <a href="https://nuget.org/packages/DotNetDiscId/">NuGet package</a>. Alternatively you can download source and binary releases at <a href="http://users.musicbrainz.org/~outsidecontext/dotnet-discid/">http://users.musicbrainz.org/~outsidecontext/dotnet-discid/</a>. To use the assembly you will also need the native <a href="http://musicbrainz.org/doc/libdiscid">libdiscid</a> release (e.g. discid.dll on Windows or any other native package for your platform). On Unix-like platforms you can just use the system wide installation of libdiscid.</p> <p>No API docs yet, but the examples on Github will get you started. The library should be straight forward to use. This is an early release but it supports all the features provided by the latest libdiscid 0.5 (while still supporting earlier versions).聽 I don’t expect many changes in the API but I will provide better documentation soon.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/phwolfer/">phwolfer</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/30/net-mono-bindings-for-libdiscid/" rel="bookmark"><time class="entry-date published" datetime="2013-06-30T14:54:26+00:00">June 30, 2013</time><time class="updated" datetime="2013-08-12T11:35:40+00:00">August 12, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/" rel="category tag">Development</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/net/" rel="tag">.net</a>, <a href="https://blog.metabrainz.org/tag/libdiscid/" rel="tag">libdiscid</a>, <a href="https://blog.metabrainz.org/tag/mono/" rel="tag">mono</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/30/net-mono-bindings-for-libdiscid/#respond">Leave a comment<span class="screen-reader-text"> on .NET / Mono bindings for libdiscid</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2060 --> <article id="post-2051" class="post-2051 post type-post status-publish format-standard hentry category-development tag-libdiscid tag-ruby"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/28/ruby-discid-1-0/" rel="bookmark">ruby-discid 1.0</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>This has already been announced on the mailing list back in May: ruby-discid, the Ruby bindings for libdiscid, have been released in version 1.0. This libdiscid binding for <span>Ruby</span> is the successor of mb-<span>discid</span>. As libdiscid has gained quite a few features in the past I took the opportunity to simplify the API and do some fundamental changes to <span>ruby</span>–<span>discid</span>.</p> <div>The most important features of this release are:</div> <ul> <li>Full support for libdiscid 0.1 to 0.5, including ISRC and MCN reading and feature detection.</li> <li>Uses FFI to load libdiscid, so no compilation is required.</li> <li>Support for <span>Ruby</span> 1.8.7 – 2.0, jRuby and Rubinius.</li> </ul> <p>The probably easiest way to install and use ruby-discid is by using the <a href="http://rubygems.org/gems/discid">Ruby gem</a>. For Ubuntu users there is a <a href="https://launchpad.net/~phw/+archive/musicbrainz">PPA</a> and for Arch Linux users an <a href="https://aur.archlinux.org/packages/ruby-discid/">AUR package</a> available.</p> <div>The source code is available on <a href="https://github.com/phw/ruby-discid">Github</a>, there you will also find more detailed installation and usage instructions.</div> <div><span><br /> </span></div> <div>If you have previously used mb-<span>discid</span> you can continue using it, but you should consider updating to <span>ruby</span>–<span>discid</span>. The API is quite similar and simple enough to make that a painless process.</div> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/phwolfer/">phwolfer</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/28/ruby-discid-1-0/" rel="bookmark"><time class="entry-date published" datetime="2013-06-28T11:11:48+00:00">June 28, 2013</time><time class="updated" datetime="2013-08-12T11:35:58+00:00">August 12, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/" rel="category tag">Development</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/libdiscid/" rel="tag">libdiscid</a>, <a href="https://blog.metabrainz.org/tag/ruby/" rel="tag">ruby</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/28/ruby-discid-1-0/#respond">Leave a comment<span class="screen-reader-text"> on ruby-discid 1.0</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2051 --> <article id="post-2038" class="post-2038 post type-post status-publish format-standard hentry category-development tag-changelog tag-libdiscid tag-python"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/27/python-discid-1-0-0-and-1-0-2-released/" rel="bookmark">python-discid 1.0.0 (and 1.0.2) released</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>In februar I announced a beta version of the first python binding of <a href="http://musicbrainz.org/doc/libdiscid">libdiscid</a>. A couple months have passed and I can now announce the first stable release of <a href="https://python-discid.readthedocs.org/">python-discid</a>.</p> <p>The main purpose is the calculation of <a href="http://musicbrainz.org/doc/Disc%20ID">MusicBrainz Disc IDs</a> from a CD-AUDIO disc or a TOC of such a disc, but reading of ISRCs and the MCN (EAN/UPC) are also supported.<br /> Disc IDs can be submitted without further dependencies. For lookup and ISRC submission it is recommended to use it together with <a href="https://python-musicbrainz-ngs.readthedocs.org/">python-musicbrainzngs</a>.<br /> Python 2 >= 2.6 or Python 3 >= 3.1 as well as libdiscid >= 0.2.2 are required. Newer libdiscid features need a newer libdiscid, but there are methods available to check for these conditions.</p> <p>If you still have a program using python-musicbrainz2, I recommend upgrading to the combination of python-discid and python-musicbrainzngs, since python-musicbrainz2 uses a deprecated web service and is not actively maintained anymore.</p> <p>The main website and API documentation is at <a href="https://python-discid.readthedocs.org/">readthedocs</a>, the repository and bugtracker are at <a href="https://github.com/JonnyJD/python-discid">GitHub</a>.<br /> Official source tarballs are available on <a href="https://pypi.python.org/pypi/discid">pypi</a> and releases are announced in this blog. There are several linux packages available and listed in the documentation.</p> <p>If you have been using a pre-release version of python-discid you will have to update your code.<br /> Compared to python-discid 0.5.0 you now have to use discid.get_default_device(), rather than discid.DEFAULT_DEVICE. If you were using 0.4.0, you should also stop using DiscId() directly or a DeprecationWarning is displayed.</p> <p>There is also a patch release 1.0.2 available, which has no code changes compared to 1.0.0.<br /> There was an intermediate 1.0.1, which tried to make some convenience changes for beta users, but failed. 1.0.1 was never available as a tarball, but the tag and changelog exists.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/jonnyjd/">JonnyJD</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/27/python-discid-1-0-0-and-1-0-2-released/" rel="bookmark"><time class="entry-date published" datetime="2013-06-27T16:12:19+00:00">June 27, 2013</time><time class="updated" datetime="2014-02-11T06:11:38+00:00">February 11, 2014</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/" rel="category tag">Development</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/changelog/" rel="tag">changelog</a>, <a href="https://blog.metabrainz.org/tag/libdiscid/" rel="tag">libdiscid</a>, <a href="https://blog.metabrainz.org/tag/python/" rel="tag">python</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/27/python-discid-1-0-0-and-1-0-2-released/#comments">1 Comment<span class="screen-reader-text"> on python-discid 1.0.0 (and 1.0.2) released</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2038 --> <article id="post-2032" class="post-2032 post type-post status-publish format-standard hentry category-server category-updates tag-changelog"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/25/server-update-2013-06-25/" rel="bookmark">Server Update, 2013-06-25</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>We’ve just finished pushing out another version of MusicBrainz. Sorry that we’re a day behind on this one, yesterday we had a few tests that needed fixing before we could release. This release is mostly bug fixes and small improvements, and should solve problems with the “remember me” login feature working incorrectly. This upgrade might have lost a few remember me tokens, but if you are still seeing problems after a few days of the site, please leave a comment on <a href="http://tickets.musicbrainz.org/browse/MBS-6471">MBS-6471</a>.</p> <p>Many thanks to Luk谩拧 Lalinsk媒, Michael Wiencek, Nicol谩s Tamargo and the rest of the MusicBrainz team for their work on this release. Here’s what changed:</p> <h2> Bug<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-3427'>MBS-3427</a>] – "Internal Server Error" submitting CD Stubs with invalid data </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-5524'>MBS-5524</a>] – Edit relationship type edits are missing information for identifying the relationship type </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-5903'>MBS-5903</a>] – JSON webservice doesn’t return release-list in collection query </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-5958'>MBS-5958</a>] – Release editor did something very very wrong </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6027'>MBS-6027</a>] – JSON webservice returns asin: null for releases with ASINs </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6073'>MBS-6073</a>] – Inaccurate range of credits when grouped at the bottom of a release page </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6101'>MBS-6101</a>] – Redis should only be required if sessions are used </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6206'>MBS-6206</a>] – Soundtrack Collector URLs should not be possible at the Release level </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6244'>MBS-6244</a>] – Private data dump contains bcrypt column and can’t be imported </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6261'>MBS-6261</a>] – "Date unknown" is inconsistent with our handling of unknown values elsewhere </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6296'>MBS-6296</a>] – Area alias links are shown for non-location-editors </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6315'>MBS-6315</a>] – Recordings tab of the RE showing lots of [removed] </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6349'>MBS-6349</a>] – Artist credits display wrong on add release edit </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6364'>MBS-6364</a>] – "Possibly duplicate artists" report doesn’t show any results </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6374'>MBS-6374</a>] – Release editor seeding is broken </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6383'>MBS-6383</a>] – Can’t add search hint to area </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6416'>MBS-6416</a>] – release editor loses track identifiers when editing a medium. </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6467'>MBS-6467</a>] – "you may add a new label" in area search </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6471'>MBS-6471</a>] – "Keep me logged in" is broken </li> </ul> <h2> Improvement<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-2782'>MBS-2782</a>] – "Edit medium" edit type > Don’t show pointless artists credits changes (e.g. when only join phrase has been changed) </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-2848'>MBS-2848</a>] – New "Add medium" artist credits section is cluttered and hard to parse </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-3663'>MBS-3663</a>] – "No" votes should allow time for the original editor to respond </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-4652'>MBS-4652</a>] – Add a link to How To under Documentation </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-5911'>MBS-5911</a>] – Display source for non-CAA cover art </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6205'>MBS-6205</a>] – Clean up Soundtrack Collector URLs </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6207'>MBS-6207</a>] – Check formatting for Soundtrack Collector URLs </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6259'>MBS-6259</a>] – Bring back date/country columns in tables </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6352'>MBS-6352</a>] – ExportAllTables::check_tables_completeness should be updated and used </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6363'>MBS-6363</a>] – Update Twitter URL cleanup to use https </li> </ul> <p>The Git tag for this release is <code>v-2013-06-25</code>.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/acidcycles/">acidcycles</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/25/server-update-2013-06-25/" rel="bookmark"><time class="entry-date published" datetime="2013-06-25T13:13:11+00:00">June 25, 2013</time><time class="updated" datetime="2013-11-27T03:15:54+00:00">November 27, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/server/" rel="category tag">Server</a>, <a href="https://blog.metabrainz.org/category/development/updates/" rel="category tag">Updates</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/changelog/" rel="tag">changelog</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/25/server-update-2013-06-25/#comments">1 Comment<span class="screen-reader-text"> on Server Update, 2013-06-25</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2032 --> <article id="post-2019" class="post-2019 post type-post status-publish format-standard hentry category-development tag-c tag-changelog tag-libdiscid"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/20/libdiscid-0-5-1-released/" rel="bookmark">Libdiscid 0.5.1 released</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>A new <a href="http://musicbrainz.org/doc/libdiscid">libdiscid</a> version was uploaded today.</p> <h3>Changes:</h3> <ul> <li><a href="http://tickets.musicbrainz.org/browse/LIB-40">LIB-40</a>: discid_get_webservice_url() (web service version 1) is deprecated.<br /> Please use <a href="http://musicbrainz.org/doc/libmusicbrainz">libmusicbrainz</a> to gather metadata by disc ID</li> <li><a href="http://tickets.musicbrainz.org/browse/LIB-7">LIB-7</a>: Rewrote data track handling, releases with multiple data tracks. This also fixes LIB-18 (no ID for DVDs) and LIB-9 (PS/PS2 CDs)</li> <li><a href="http://tickets.musicbrainz.org/browse/LIB-44">LIB-44</a>: fix invalid disc IDs on first read of multi-session discs</li> <li><a href="http://tickets.musicbrainz.org/browse/LIB-37">LIB-37</a>: Autotools optimization (non-recursive build etc.)</li> <li><a href="http://tickets.musicbrainz.org/browse/LIB-42">LIB-42</a>: remove Windows 9x platform code</li> <li>renamed openbsd platform code to netbsd, still used by both.</li> </ul> <p>The data track/multi session disc handling was rewritten. This was started by Luk谩拧 Lalinsk媒 quite some time ago and I finished this now. This should fix several issues with data tracks and data track handling works the same on all platforms now.</p> <p>Christophe Fergeau contributed some changes to remove lots of clutter from the autotools build. This stops changing directories during the build all the time (non-recursive build) and should make it easier to see actual problems when building.</p> <p>Additional contributions come from Philipp Wolfer and Sebastian Ramacher again.</p> <h3>Feedback needed:</h3> <p>We are (still) a bit stuck in the discussion for <a href="http://tickets.musicbrainz.org/browse/LIB-28">LIB-28</a> which also blocks several connected things in python-discid and possibly Picard.<br /> The main question is how to name the “default device”, especially on Mac OS X. Usually real/internal device names are used. However, especially on Mac OS X these device names change quite frequently for various reasons, even when the same physical disc drive is “meant”. So I don’t know if using these makes any sense. It also might not be good to add these device names to a configuration file, since they will “break” easily (opening a .dmg before inserting the disc already breaks it).<br /> I proposed using “1” to define “use the first disc drive”. I am no actual Mac user and really would like to know how you guys feel about this.<br /> For Windows the drive letters are much more stable, but can change when USB disc drives are used. Using “1” is an option, but might make less sense, since drive letters are actually known to the normal user.<br /> On Linux/BSD/Solaris the disc drive names are only used for disc drives (not for hard disks) and are quite stable.<br /> This relates to <a href="https://github.com/JonnyJD/python-discid/issues/30">python-discid#30</a> (should DEFAULT_DEVICE be a constant?) which again somewhat blocks <a href="https://github.com/musicbrainz/picard/pull/129">PICARD-503</a> (using python-discid). This question is the only thing keeping python-discid from a stable API release.</p> <p><a href="http://tickets.musicbrainz.org/browse/LIB-28">LIB-28</a> is probably the best place for feedback, but you can also just answer here or in the <a href="http://lists.musicbrainz.org/pipermail/musicbrainz-devel/2013-June/005278.html">announcement mail</a>.</p> <p>Information, documentation and other links are at:<br /> <a href="http://musicbrainz.org/doc/libdiscid" rel="nofollow">http://musicbrainz.org/doc/libdiscid</a><br /> That includes builds for Windows and Mac OS X.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/jonnyjd/">JonnyJD</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/20/libdiscid-0-5-1-released/" rel="bookmark"><time class="entry-date published" datetime="2013-06-20T00:22:14+00:00">June 20, 2013</time><time class="updated" datetime="2014-02-11T06:11:38+00:00">February 11, 2014</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/" rel="category tag">Development</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/c/" rel="tag">C</a>, <a href="https://blog.metabrainz.org/tag/changelog/" rel="tag">changelog</a>, <a href="https://blog.metabrainz.org/tag/libdiscid/" rel="tag">libdiscid</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/20/libdiscid-0-5-1-released/#comments">1 Comment<span class="screen-reader-text"> on Libdiscid 0.5.1 released</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2019 --> <article id="post-2015" class="post-2015 post type-post status-publish format-standard hentry category-summer-of-code"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/18/summer-of-code-were-in-for-another-round/" rel="bookmark">Summer of Code: We're in for another round!</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>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:</p> <ul> <li>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!</li> <li>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 <a href="http://tickets.musicbrainz.org/browse/MBS-799?focusedCommentId=26365&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_26365">this ticket in jira</a>.</li> <li>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 <em>non-neutral point of view</em> 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.</li> </ul> <p>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. </p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/ruaok/">ruaok</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/18/summer-of-code-were-in-for-another-round/" rel="bookmark"><time class="entry-date published updated" datetime="2013-06-18T13:53:59+00:00">June 18, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/google-programs/summer-of-code/" rel="category tag">Summer of Code</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/18/summer-of-code-were-in-for-another-round/#respond">Leave a comment<span class="screen-reader-text"> on Summer of Code: We're in for another round!</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2015 --> <article id="post-2012" class="post-2012 post type-post status-publish format-standard hentry category-updates tag-changelog tag-search-server"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/17/search-server-update-june-13/" rel="bookmark">Search server update: June 13</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>On 13th June we updated the search servers once more. Thanks for fixing bugs and adding Area support, Paul!</p> <p><b>Release Notes – MusicBrainz Search Server – Version 2013-06-13</b></p> <h2> Bug<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-297'>SEARCH-297</a>] – Webservice Json output for aliases when searching is inconsistent with output when doing a lookup </li> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-302'>SEARCH-302</a>] – search server json output use singular for a list of release-groups. </li> </ul> <h2> Improvement<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-292'>SEARCH-292</a>] – Include area info in the indexed search artist and label results </li> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-299'>SEARCH-299</a>] – Ouput TrackIds </li> </ul> <h2> New Feature<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-301'>SEARCH-301</a>] – Search for Area by ISO 3166 code </li> </ul> <h2> Task<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-273'>SEARCH-273</a>] – Support for multiple country/release events on release as as part of schema changes </li> <li>[<a href='http://tickets.musicbrainz.org/browse/SEARCH-286'>SEARCH-286</a>] – Add areas to the indexed search </li> </ul> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/ruaok/">ruaok</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/17/search-server-update-june-13/" rel="bookmark"><time class="entry-date published" datetime="2013-06-17T11:42:32+00:00">June 17, 2013</time><time class="updated" datetime="2013-11-27T05:08:25+00:00">November 27, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/updates/" rel="category tag">Updates</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/changelog/" rel="tag">changelog</a>, <a href="https://blog.metabrainz.org/tag/search-server/" rel="tag">Search Server</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/17/search-server-update-june-13/#respond">Leave a comment<span class="screen-reader-text"> on Search server update: June 13</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2012 --> <article id="post-2004" class="post-2004 post type-post status-publish format-standard hentry category-community category-moderation category-updates"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/14/upcoming-feature-contested-edit-extension/" rel="bookmark">Upcoming feature: contested edit extension</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>The next release (a week from Monday) will include a useful new feature: <a href="http://tickets.musicbrainz.org/browse/MBS-3663">extending the expiration of edits that receive ‘No’ votes</a>! I’d like to take a bit to explain how it’ll work.</p> <h3>The problem</h3> <p>Especially since <a href="http://blog.musicbrainz.org/?p=1784">the amount of time edits stay open was reduced to 7 days</a>, but also before, several problematic situations could arise when edits were contested:</p> <ul> <li>If voters cast ‘No’ votes shortly before the expiration of the edit, the original editor may not have time to respond to the concerns before the edit closes. As a result, it’s generally been considered bad etiquette to cast ‘No’ votes right before an edit expires unless the edit is particularly destructive.</li> <li>In a somewhat related case, sometimes an edit can get many ‘No’ votes in short succession. Since 3 unanimous ‘No’ votes will close an edit, the period between the first vote cast and the edit being closed can be as short as an hour, which is certainly not enough time for the original editor or other voters to respond.</li> <li>It’s also occasionally possible for edits to be put at risk of failing without an email being sent. Specifically, the current code only sends an email on the <em>very</em> first ‘No’ vote. Therefore, if a voter votes ‘No’ early in the voting period and later changes their vote, a second voter later voting ‘No’ would not result in an email being sent. However, a tied vote or a majority of ‘No’ votes will result in an edit being closed, so even a lone vote can tip the balance.</li> </ul> <h3>The solution</h3> <p>In light of all of these problems, the next release will work differently to give editors time to respond to votes against their edits.</p> <p>In short: editors will always have at least 72 hours (three days) to respond after the first vote against their edits.</p> <p>More specifically, and more technically:</p> <p>To address the third point above, the emails for ‘No’ votes will now be sent whenever the count of ‘No’ votes goes from 0 to 1. That is: if two people vote ‘No’ with neither changing their vote in-between, only one email will be sent. But, in a case like the one described above, where an early ‘No’ vote is superseded and the total count goes back to 0, a subsequent ‘No’ vote will send a new email.</p> <p>To address the second point above, ModBot will not reject an edit before its expiration time due to three unanimous ‘No’ votes unless 72 hours have passed since the earliest ‘No’ vote (that is, the vote which resulted in an email being sent). If the expiration time passes or an edit has three unanimous ‘No’ votes after 72 hours, the edit will be closed as usual.</p> <p>Finally, to address the first point above, when new ‘No’ votes are cast close to an edit’s expiration time, the edit’s expiration time will be extended to allow 72 hours for response. This extension will, once again, only happen when the total count of ‘No’ votes goes from 0 to 1 – so only when an edit becomes contested and previously was not.</p> <p>In total, these changes should hopefully ensure that editors are better informed about edits that are in danger of being voted down, and given sufficient time to respond to voter concerns.</p> <h3>In summary</h3> <p>First of all, this change will be fully live on <strong>Monday, June 24th</strong>. Before then, votes cast on the beta server may result in a small number of edits having their expiration times extended, but it won’t happen on the main server or for the majority of edits.</p> <p>While editing: Rest assured you’ll be informed and given time to fix problems with your edits!</p> <p>While voting: Don’t worry too much about casting ‘No’ votes when edits need improvement. Certainly be ready to supersede your votes if things do get fixed up, but if you find an edit in need of fixing just before it closes, or which already has a bunch of recent ‘No’ votes, don’t hold back or vote differently to give the original editor time to respond. This should take care of that for you!</p> <p>Happy editing!</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/ianmcorvidae/">ianmcorvidae</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/14/upcoming-feature-contested-edit-extension/" rel="bookmark"><time class="entry-date published" datetime="2013-06-14T19:15:23+00:00">June 14, 2013</time><time class="updated" datetime="2013-11-26T22:26:58+00:00">November 26, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/community/" rel="category tag">Community</a>, <a href="https://blog.metabrainz.org/category/moderation/" rel="category tag">Moderation</a>, <a href="https://blog.metabrainz.org/category/development/updates/" rel="category tag">Updates</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/14/upcoming-feature-contested-edit-extension/#comments">1 Comment<span class="screen-reader-text"> on Upcoming feature: contested edit extension</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2004 --> <article id="post-2000" class="post-2000 post type-post status-publish format-standard hentry category-server category-updates tag-changelog"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/10/server-update-2013-06-10/" rel="bookmark">Server Update, 2013-06-10</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>Another week, another release! This release is mostly bug fixes, but I’m sure a lot of people will be happy to notice that we have <em>finally</em> resolved MBS-357. That’s right – we no longer have a single clear text password in the MusicBrainz database. We’re sorry that it took so long, but at least it’s finally been done! Other than that, this release mostly builds on top of the new schema change features, and provides bug fixes for things that have regressed.</p> <p>Many thanks to Michael Wiencek, Nicol谩s Tamargo and the MusicBrainz team for their work in this release. Here’s what’s changed:</p> <h2> Bug<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6007'>MBS-6007</a>] – JSON release webservice doesn’t include works </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6179'>MBS-6179</a>] – Sorting a collection by catalog number sorts ‘8BP117’, ‘8BP126’ and ‘8BP127’ in the wrong order </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6260'>MBS-6260</a>] – Dates and countries are displayed inconsistently </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6263'>MBS-6263</a>] – Adding an area without ISO 3166 codes shows blank values in edits </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6264'>MBS-6264</a>] – Languages/Scripts statistics have an empty "Last updated field" </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6297'>MBS-6297</a>] – Can’t create relationships from areas to other entities from the area page, but only from the other entities’ page </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6325'>MBS-6325</a>] – Moving a release with a release date into an empty release group does not provide it with a date (sorting doesn’t work) </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6326'>MBS-6326</a>] – ModBot is unable to close some edits as they still use ‘country_id’ </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6334'>MBS-6334</a>] – Release editor: loses join phrases and artist credits when switching to tracklist tab </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6355'>MBS-6355</a>] – 502 displaying relationships for prolific artist </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6357'>MBS-6357</a>] – Track/medium tables have indexes/constraints with bad names </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6370'>MBS-6370</a>] – Beta: Inline search can load duplicate results </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6377'>MBS-6377</a>] – Track ACs appear changed but the edit isn’t submitted </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6385'>MBS-6385</a>] – Strange results when pasting an area URL in the inline search </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6409'>MBS-6409</a>] – ModBot leaves translated edit notes </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6441'>MBS-6441</a>] – Release (date, country) are blank when displaying a disc ID </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6443'>MBS-6443</a>] – Ascending and descending sorting of releases in a collection results in the same order </li> </ul> <h2> Improvement<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-357'>MBS-357</a>] – Don’t store passwords in clear text </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-4962'>MBS-4962</a>] – Slave servers should cache heavily due to hourly update process </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6203'>MBS-6203</a>] – Only allow recognised URLs for relationship types which are for specific sites </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6233'>MBS-6233</a>] – Ensure SecondHandSongs links are added at the right level </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6300'>MBS-6300</a>] – Link to countries in country statistics </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6301'>MBS-6301</a>] – Consider linking to areas {artist,release,label} list in country statistics </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6347'>MBS-6347</a>] – Show parents somehow for underlying areas </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6358'>MBS-6358</a>] – Add basic area stats display </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6362'>MBS-6362</a>] – Improve how release data is displayed in Google searches </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6371'>MBS-6371</a>] – Extend Wikipedia and Wikidata autoselect to areas </li> </ul> <h2> New Feature<br /> </h2> <ul> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6269'>MBS-6269</a>] – Expose track identifiers in the webservice </li> <li>[<a href='http://tickets.musicbrainz.org/browse/MBS-6270'>MBS-6270</a>] – Expose track identifiers on the website </li> </ul> <p>The Git tag for this release is <code>v-2013-06-10</code>.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/acidcycles/">acidcycles</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/10/server-update-2013-06-10/" rel="bookmark"><time class="entry-date published" datetime="2013-06-10T14:00:17+00:00">June 10, 2013</time><time class="updated" datetime="2013-11-27T05:09:46+00:00">November 27, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/development/server/" rel="category tag">Server</a>, <a href="https://blog.metabrainz.org/category/development/updates/" rel="category tag">Updates</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://blog.metabrainz.org/tag/changelog/" rel="tag">changelog</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/10/server-update-2013-06-10/#comments">3 Comments<span class="screen-reader-text"> on Server Update, 2013-06-10</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-2000 --> <article id="post-1995" class="post-1995 post type-post status-publish format-standard hentry category-community"> <header class="entry-header"> <h2 class="entry-title"><a href="https://blog.metabrainz.org/2013/06/07/privacy-policy-updated/" rel="bookmark">Privacy policy updated</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>Based on the feedback we’ve collected over the last few months, we’ve updated our <a href="http://musicbrainz.org/doc/About/Privacy_Policy">privacy policy and made it live on our site</a>.</p> <p>For the history of how we arrived at these changes, please see <a href="http://blog.musicbrainz.org/?p=1841">this blog post</a> and previous posts linked in that post.</p> <p>UPDATE: If you’d like to see what changed, take a look at the <a href="http://wiki.musicbrainz.org/index.php?title=About%2FPrivacy_Policy&diff=63692&oldid=53341">diff of the page</a>.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://blog.metabrainz.org/author/ruaok/">ruaok</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://blog.metabrainz.org/2013/06/07/privacy-policy-updated/" rel="bookmark"><time class="entry-date published updated" datetime="2013-06-07T14:20:29+00:00">June 7, 2013</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://blog.metabrainz.org/category/community/" rel="category tag">Community</a></span><span class="comments-link"><a href="https://blog.metabrainz.org/2013/06/07/privacy-policy-updated/#respond">Leave a comment<span class="screen-reader-text"> on Privacy policy updated</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-1995 --> <nav class="navigation pagination" aria-label="Posts pagination"> <h2 class="screen-reader-text">Posts pagination</h2> <div class="nav-links"><span aria-current="page" class="page-numbers current"><span class="meta-nav screen-reader-text">Page </span>1</span> <a class="page-numbers" href="https://blog.metabrainz.org/2013/06/page/2/"><span class="meta-nav screen-reader-text">Page </span>2</a> <a class="next page-numbers" href="https://blog.metabrainz.org/2013/06/page/2/">Next page</a></div> </nav> </main><!-- .site-main --> </div><!-- .content-area --> <aside id="secondary" class="sidebar widget-area"> <section id="block-7" class="widget widget_block"><h2 class="widget-title">Links</h2><div class="wp-widget-group__inner-blocks"> <ul class="wp-block-list"> <li><a href="https://metabrainz.org/">MetaBrainz Foundation</a></li> <li><a href="https://community.metabrainz.org/">MetaBrainz Forums</a></li> <li><a href="https://bsky.app/profile/metabrainz.org">Bluesky</a> / <a href="https://mastodon.social/@metabrainz">Mastodon</a></li> </ul> <ul class="wp-block-list"> <li><a href="https://musicbrainz.org/">MusicBrainz</a></li> <li><a href="https://listenbrainz.org/">ListenBrainz</a></li> <li><a href="https://bookbrainz.org/">BookBrainz</a></li> </ul> </div></section><section id="search-2" class="widget widget_search"><h2 class="widget-title">Search</h2> <form role="search" method="get" class="search-form" action="https://blog.metabrainz.org/"> <label> <span class="screen-reader-text"> Search for: </span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> </label> <button type="submit" class="search-submit"><span class="screen-reader-text"> Search </span></button> </form> </section><section id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2> <table class="recentcommentsavatar" cellspacing="0" cellpadding="0" border="0"> <tr><td title="Hevosen Perse" class="recentcommentsavatartop" style="height:32px; width:32px;"></td><td class="recentcommentstexttop" style="">Hevosen Perse on <a href="https://blog.metabrainz.org/2024/04/23/ssl-com-is-evil-and-deceptive-dont-do-business-with-ssl-com/#comment-366399">SSL.com is evil and deceptive:…</a></td></tr><tr><td title="roman412" class="recentcommentsavatarend" style="height:32px; width:32px;"></td><td class="recentcommentstextend" style="">roman412 on <a href="https://blog.metabrainz.org/2025/02/05/picard-2-13-1-released/#comment-366398">Picard 2.13.1 released</a></td></tr><tr><td title="phwolfer" class="recentcommentsavatarend" style="height:32px; width:32px;"></td><td class="recentcommentstextend" style="">phwolfer on <a href="https://blog.metabrainz.org/2025/02/05/picard-2-13-1-released/#comment-366396">Picard 2.13.1 released</a></td></tr><tr><td title="roman412" class="recentcommentsavatarend" style="height:32px; width:32px;"></td><td class="recentcommentstextend" style="">roman412 on <a href="https://blog.metabrainz.org/2025/02/05/picard-2-13-1-released/#comment-366395">Picard 2.13.1 released</a></td></tr><tr><td title="yvanzo" class="recentcommentsavatarend" style="height:32px; width:32px;"></td><td class="recentcommentstextend" style="">yvanzo on <a href="https://blog.metabrainz.org/2025/01/29/musicbrainz-mirror-security-advisory-2025-01-29/#comment-366392">MusicBrainz mirror security ad…</a></td></tr> </table> </section><section id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories"> <ul> <li class="cat-item cat-item-304848241"><a href="https://blog.metabrainz.org/category/acousticbrainz/">AcousticBrainz</a> (17) </li> <li class="cat-item cat-item-12894481"><a href="https://blog.metabrainz.org/category/musicbrainz/android-app/">Android App</a> (9) </li> <li class="cat-item cat-item-494176"><a href="https://blog.metabrainz.org/category/metabrainz/annual-report/">Annual Report</a> (9) </li> <li class="cat-item cat-item-91682"><a href="https://blog.metabrainz.org/category/april-fools-day/">April Fools' Day</a> (7) </li> <li class="cat-item cat-item-143163948"><a href="https://blog.metabrainz.org/category/better-late-than-never-dept/">Better late than never dept.</a> (14) </li> <li class="cat-item cat-item-635784"><a href="https://blog.metabrainz.org/category/metabrainz/board-meeting-minutes/">Board Meeting Minutes</a> (2) </li> <li class="cat-item cat-item-462334187"><a href="https://blog.metabrainz.org/category/bookbrainz/">BookBrainz</a> (18) </li> <li class="cat-item cat-item-19867758"><a href="https://blog.metabrainz.org/category/development/updates/breaking-changes/">Breaking Changes</a> (8) </li> <li class="cat-item cat-item-772072676"><a href="https://blog.metabrainz.org/category/chatbrainz/">chatbrainz</a> (1) </li> <li class="cat-item cat-item-31409893"><a href="https://blog.metabrainz.org/category/community/cleanup-of-the-month/">Cleanup of the Month</a> (6) </li> <li class="cat-item cat-item-424687959"><a href="https://blog.metabrainz.org/category/google-programs/code%e2%80%90in/">Code鈥恑n</a> (4) </li> <li class="cat-item cat-item-55382"><a href="https://blog.metabrainz.org/category/collaborations/">Collaborations</a> (4) </li> <li class="cat-item cat-item-2528"><a href="https://blog.metabrainz.org/category/community/">Community</a> (142) </li> <li class="cat-item cat-item-71159043"><a href="https://blog.metabrainz.org/category/community/community-recap/">Community Recap</a> (3) </li> <li class="cat-item cat-item-143163949"><a href="https://blog.metabrainz.org/category/musicbrainz/cover-art-archive/">Cover Art Archive</a> (5) </li> <li class="cat-item cat-item-225948242"><a href="https://blog.metabrainz.org/category/critiquebrainz/">CritiqueBrainz</a> (12) </li> <li class="cat-item cat-item-22379"><a href="https://blog.metabrainz.org/category/data/">Data</a> (30) </li> <li class="cat-item cat-item-780"><a href="https://blog.metabrainz.org/category/development/">Development</a> (261) </li> <li class="cat-item cat-item-772478166"><a href="https://blog.metabrainz.org/category/musicbrainz/event-art-archive/">Event Art Archive</a> (4) </li> <li class="cat-item cat-item-54"><a href="https://blog.metabrainz.org/category/general/">General</a> (134) </li> <li class="cat-item cat-item-23185871"><a href="https://blog.metabrainz.org/category/google-programs/">Google Programs</a> (18) </li> <li class="cat-item cat-item-79"><a href="https://blog.metabrainz.org/category/hardware/">Hardware</a> (24) </li> <li class="cat-item cat-item-149"><a href="https://blog.metabrainz.org/category/general/hosting/">Hosting</a> (70) </li> <li class="cat-item cat-item-6850"><a href="https://blog.metabrainz.org/category/musicbrainz/instruments/">Instruments</a> (10) </li> <li class="cat-item cat-item-47801351"><a href="https://blog.metabrainz.org/category/internet-pests/">Internet pests</a> (2) </li> <li class="cat-item cat-item-3558"><a href="https://blog.metabrainz.org/category/jobs/">Jobs</a> (1) </li> <li class="cat-item cat-item-2283"><a href="https://blog.metabrainz.org/category/legal/">Legal</a> (1) </li> <li class="cat-item cat-item-143163951"><a href="https://blog.metabrainz.org/category/libmusicbrainz/">libmusicbrainz</a> (15) </li> <li class="cat-item cat-item-7394916"><a href="https://blog.metabrainz.org/category/libtunepimp/">libtunepimp</a> (8) </li> <li class="cat-item cat-item-19606597"><a href="https://blog.metabrainz.org/category/data/linked-open-data/">Linked open data</a> (2) </li> <li class="cat-item cat-item-399253082"><a href="https://blog.metabrainz.org/category/listenbrainz/">ListenBrainz</a> (61) </li> <li class="cat-item cat-item-646467582"><a href="https://blog.metabrainz.org/category/messybrainz/">MessyBrainz</a> (1) </li> <li class="cat-item cat-item-122663067"><a href="https://blog.metabrainz.org/category/metabrainz/">MetaBrainz</a> (121) </li> <li class="cat-item cat-item-42827"><a href="https://blog.metabrainz.org/category/moderation/">Moderation</a> (8) </li> <li class="cat-item cat-item-170964"><a href="https://blog.metabrainz.org/category/musicbrainz/">MusicBrainz</a> (248) </li> <li class="cat-item cat-item-1511234"><a href="https://blog.metabrainz.org/category/musicbrainz/ngs/">NGS</a> (69) </li> <li class="cat-item cat-item-106116"><a href="https://blog.metabrainz.org/category/musicbrainz/picard/">Picard</a> (135) </li> <li class="cat-item cat-item-201310711"><a href="https://blog.metabrainz.org/category/development/updates/breaking-changes/schema-change-release/">Schema Change Release</a> (67) </li> <li class="cat-item cat-item-3079703"><a href="https://blog.metabrainz.org/category/development/search-server/">Search Server</a> (19) </li> <li class="cat-item cat-item-18568"><a href="https://blog.metabrainz.org/category/development/server/">Server</a> (463) </li> <li class="cat-item cat-item-646632085"><a href="https://blog.metabrainz.org/category/spambrainz/">SpamBrainz</a> (2) </li> <li class="cat-item cat-item-5959850"><a href="https://blog.metabrainz.org/category/style-guidelines/">Style Guidelines</a> (23) </li> <li class="cat-item cat-item-13930"><a href="https://blog.metabrainz.org/category/summaries/">Summaries</a> (6) </li> <li class="cat-item cat-item-176372"><a href="https://blog.metabrainz.org/category/google-programs/summer-of-code/">Summer of Code</a> (88) </li> <li class="cat-item cat-item-115537"><a href="https://blog.metabrainz.org/category/summit/">Summit</a> (25) </li> <li class="cat-item cat-item-143163953"><a href="https://blog.metabrainz.org/category/musicbrainz/tagger-affiliates/">Tagger Affiliates</a> (9) </li> <li class="cat-item cat-item-1"><a href="https://blog.metabrainz.org/category/uncategorized/">Uncategorized</a> (59) </li> <li class="cat-item cat-item-1171"><a href="https://blog.metabrainz.org/category/development/updates/">Updates</a> (360) </li> <li class="cat-item cat-item-95007"><a href="https://blog.metabrainz.org/category/development/virtual-machine/">Virtual Machine</a> (95) </li> <li class="cat-item cat-item-1359"><a href="https://blog.metabrainz.org/category/wiki/">Wiki</a> (7) </li> <li class="cat-item cat-item-143163954"><a href="https://blog.metabrainz.org/category/musicbrainz/windowstagger/">WindowsTagger</a> (33) </li> </ul> </nav></section><section id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2><nav aria-label="Archives"> <ul> <li><a href='https://blog.metabrainz.org/2025/03/'>March 2025</a> (2)</li> <li><a href='https://blog.metabrainz.org/2025/02/'>February 2025</a> (7)</li> <li><a href='https://blog.metabrainz.org/2025/01/'>January 2025</a> (4)</li> <li><a href='https://blog.metabrainz.org/2024/12/'>December 2024</a> (3)</li> <li><a href='https://blog.metabrainz.org/2024/11/'>November 2024</a> (6)</li> <li><a href='https://blog.metabrainz.org/2024/10/'>October 2024</a> (4)</li> <li><a href='https://blog.metabrainz.org/2024/09/'>September 2024</a> (7)</li> <li><a href='https://blog.metabrainz.org/2024/08/'>August 2024</a> (8)</li> <li><a href='https://blog.metabrainz.org/2024/07/'>July 2024</a> (3)</li> <li><a href='https://blog.metabrainz.org/2024/06/'>June 2024</a> (5)</li> <li><a href='https://blog.metabrainz.org/2024/05/'>May 2024</a> (6)</li> <li><a href='https://blog.metabrainz.org/2024/04/'>April 2024</a> (5)</li> <li><a href='https://blog.metabrainz.org/2024/03/'>March 2024</a> (5)</li> <li><a href='https://blog.metabrainz.org/2024/02/'>February 2024</a> (3)</li> <li><a href='https://blog.metabrainz.org/2024/01/'>January 2024</a> (5)</li> <li><a href='https://blog.metabrainz.org/2023/12/'>December 2023</a> (4)</li> <li><a href='https://blog.metabrainz.org/2023/11/'>November 2023</a> (5)</li> <li><a href='https://blog.metabrainz.org/2023/10/'>October 2023</a> (6)</li> <li><a href='https://blog.metabrainz.org/2023/09/'>September 2023</a> (8)</li> <li><a href='https://blog.metabrainz.org/2023/08/'>August 2023</a> (8)</li> <li><a href='https://blog.metabrainz.org/2023/07/'>July 2023</a> (6)</li> <li><a href='https://blog.metabrainz.org/2023/06/'>June 2023</a> (5)</li> <li><a href='https://blog.metabrainz.org/2023/05/'>May 2023</a> (9)</li> <li><a href='https://blog.metabrainz.org/2023/04/'>April 2023</a> (3)</li> <li><a href='https://blog.metabrainz.org/2023/03/'>March 2023</a> (3)</li> <li><a href='https://blog.metabrainz.org/2023/02/'>February 2023</a> (5)</li> <li><a href='https://blog.metabrainz.org/2023/01/'>January 2023</a> (4)</li> <li><a href='https://blog.metabrainz.org/2022/12/'>December 2022</a> (2)</li> <li><a href='https://blog.metabrainz.org/2022/11/'>November 2022</a> (5)</li> <li><a href='https://blog.metabrainz.org/2022/10/'>October 2022</a> (3)</li> <li><a href='https://blog.metabrainz.org/2022/09/'>September 2022</a> (6)</li> <li><a href='https://blog.metabrainz.org/2022/08/'>August 2022</a> (4)</li> <li><a href='https://blog.metabrainz.org/2022/07/'>July 2022</a> (3)</li> <li><a href='https://blog.metabrainz.org/2022/06/'>June 2022</a> (3)</li> <li><a href='https://blog.metabrainz.org/2022/05/'>May 2022</a> (6)</li> <li><a href='https://blog.metabrainz.org/2022/04/'>April 2022</a> (3)</li> <li><a href='https://blog.metabrainz.org/2022/03/'>March 2022</a> (5)</li> <li><a href='https://blog.metabrainz.org/2022/02/'>February 2022</a> (4)</li> <li><a href='https://blog.metabrainz.org/2022/01/'>January 2022</a> (3)</li> <li><a href='https://blog.metabrainz.org/2021/12/'>December 2021</a> (7)</li> <li><a href='https://blog.metabrainz.org/2021/11/'>November 2021</a> (3)</li> <li><a href='https://blog.metabrainz.org/2021/10/'>October 2021</a> (4)</li> <li><a href='https://blog.metabrainz.org/2021/09/'>September 2021</a> (3)</li> <li><a href='https://blog.metabrainz.org/2021/08/'>August 2021</a> (6)</li> <li><a href='https://blog.metabrainz.org/2021/07/'>July 2021</a> (2)</li> <li><a href='https://blog.metabrainz.org/2021/06/'>June 2021</a> (5)</li> <li><a href='https://blog.metabrainz.org/2021/05/'>May 2021</a> (5)</li> <li><a href='https://blog.metabrainz.org/2021/04/'>April 2021</a> (6)</li> <li><a href='https://blog.metabrainz.org/2021/03/'>March 2021</a> (6)</li> <li><a href='https://blog.metabrainz.org/2021/02/'>February 2021</a> (4)</li> <li><a href='https://blog.metabrainz.org/2021/01/'>January 2021</a> (2)</li> <li><a href='https://blog.metabrainz.org/2020/12/'>December 2020</a> (5)</li> <li><a href='https://blog.metabrainz.org/2020/11/'>November 2020</a> (3)</li> <li><a href='https://blog.metabrainz.org/2020/10/'>October 2020</a> (6)</li> <li><a href='https://blog.metabrainz.org/2020/09/'>September 2020</a> (4)</li> <li><a href='https://blog.metabrainz.org/2020/08/'>August 2020</a> (8)</li> <li><a href='https://blog.metabrainz.org/2020/07/'>July 2020</a> (4)</li> <li><a href='https://blog.metabrainz.org/2020/06/'>June 2020</a> (4)</li> <li><a href='https://blog.metabrainz.org/2020/05/'>May 2020</a> (5)</li> <li><a href='https://blog.metabrainz.org/2020/04/'>April 2020</a> (5)</li> <li><a href='https://blog.metabrainz.org/2020/03/'>March 2020</a> (3)</li> <li><a href='https://blog.metabrainz.org/2020/02/'>February 2020</a> (8)</li> <li><a href='https://blog.metabrainz.org/2020/01/'>January 2020</a> (3)</li> <li><a href='https://blog.metabrainz.org/2019/12/'>December 2019</a> (3)</li> <li><a href='https://blog.metabrainz.org/2019/11/'>November 2019</a> (4)</li> <li><a href='https://blog.metabrainz.org/2019/10/'>October 2019</a> (4)</li> <li><a href='https://blog.metabrainz.org/2019/09/'>September 2019</a> (4)</li> <li><a href='https://blog.metabrainz.org/2019/08/'>August 2019</a> (7)</li> <li><a href='https://blog.metabrainz.org/2019/06/'>June 2019</a> (3)</li> <li><a href='https://blog.metabrainz.org/2019/05/'>May 2019</a> (4)</li> <li><a href='https://blog.metabrainz.org/2019/04/'>April 2019</a> (3)</li> <li><a href='https://blog.metabrainz.org/2019/03/'>March 2019</a> (5)</li> <li><a href='https://blog.metabrainz.org/2019/02/'>February 2019</a> (2)</li> <li><a href='https://blog.metabrainz.org/2019/01/'>January 2019</a> (2)</li> <li><a href='https://blog.metabrainz.org/2018/12/'>December 2018</a> (3)</li> <li><a href='https://blog.metabrainz.org/2018/11/'>November 2018</a> (4)</li> <li><a href='https://blog.metabrainz.org/2018/10/'>October 2018</a> (3)</li> <li><a href='https://blog.metabrainz.org/2018/09/'>September 2018</a> (9)</li> <li><a href='https://blog.metabrainz.org/2018/08/'>August 2018</a> (7)</li> <li><a href='https://blog.metabrainz.org/2018/07/'>July 2018</a> (4)</li> <li><a href='https://blog.metabrainz.org/2018/06/'>June 2018</a> (3)</li> <li><a href='https://blog.metabrainz.org/2018/05/'>May 2018</a> (3)</li> <li><a href='https://blog.metabrainz.org/2018/04/'>April 2018</a> (2)</li> <li><a href='https://blog.metabrainz.org/2018/03/'>March 2018</a> (7)</li> <li><a href='https://blog.metabrainz.org/2018/02/'>February 2018</a> (3)</li> <li><a href='https://blog.metabrainz.org/2018/01/'>January 2018</a> (3)</li> <li><a href='https://blog.metabrainz.org/2017/12/'>December 2017</a> (2)</li> <li><a href='https://blog.metabrainz.org/2017/11/'>November 2017</a> (2)</li> <li><a href='https://blog.metabrainz.org/2017/10/'>October 2017</a> (2)</li> <li><a href='https://blog.metabrainz.org/2017/09/'>September 2017</a> (10)</li> <li><a href='https://blog.metabrainz.org/2017/08/'>August 2017</a> (7)</li> <li><a href='https://blog.metabrainz.org/2017/07/'>July 2017</a> (3)</li> <li><a href='https://blog.metabrainz.org/2017/06/'>June 2017</a> (5)</li> <li><a href='https://blog.metabrainz.org/2017/05/'>May 2017</a> (6)</li> <li><a href='https://blog.metabrainz.org/2017/04/'>April 2017</a> (3)</li> <li><a href='https://blog.metabrainz.org/2017/03/'>March 2017</a> (5)</li> <li><a href='https://blog.metabrainz.org/2017/02/'>February 2017</a> (5)</li> <li><a href='https://blog.metabrainz.org/2017/01/'>January 2017</a> (4)</li> <li><a href='https://blog.metabrainz.org/2016/12/'>December 2016</a> (5)</li> <li><a href='https://blog.metabrainz.org/2016/11/'>November 2016</a> (5)</li> <li><a href='https://blog.metabrainz.org/2016/10/'>October 2016</a> (2)</li> <li><a href='https://blog.metabrainz.org/2016/09/'>September 2016</a> (1)</li> <li><a href='https://blog.metabrainz.org/2016/08/'>August 2016</a> (7)</li> <li><a href='https://blog.metabrainz.org/2016/07/'>July 2016</a> (3)</li> <li><a href='https://blog.metabrainz.org/2016/06/'>June 2016</a> (3)</li> <li><a href='https://blog.metabrainz.org/2016/05/'>May 2016</a> (14)</li> <li><a href='https://blog.metabrainz.org/2016/04/'>April 2016</a> (4)</li> <li><a href='https://blog.metabrainz.org/2016/03/'>March 2016</a> (8)</li> <li><a href='https://blog.metabrainz.org/2016/02/'>February 2016</a> (6)</li> <li><a href='https://blog.metabrainz.org/2016/01/'>January 2016</a> (4)</li> <li><a href='https://blog.metabrainz.org/2015/12/'>December 2015</a> (4)</li> <li><a href='https://blog.metabrainz.org/2015/11/'>November 2015</a> (6)</li> <li><a href='https://blog.metabrainz.org/2015/10/'>October 2015</a> (2)</li> <li><a href='https://blog.metabrainz.org/2015/09/'>September 2015</a> (9)</li> <li><a href='https://blog.metabrainz.org/2015/08/'>August 2015</a> (5)</li> <li><a href='https://blog.metabrainz.org/2015/07/'>July 2015</a> (12)</li> <li><a href='https://blog.metabrainz.org/2015/06/'>June 2015</a> (4)</li> <li><a href='https://blog.metabrainz.org/2015/05/'>May 2015</a> (8)</li> <li><a href='https://blog.metabrainz.org/2015/04/'>April 2015</a> (5)</li> <li><a href='https://blog.metabrainz.org/2015/03/'>March 2015</a> (9)</li> <li><a href='https://blog.metabrainz.org/2015/02/'>February 2015</a> (5)</li> <li><a href='https://blog.metabrainz.org/2015/01/'>January 2015</a> (6)</li> <li><a href='https://blog.metabrainz.org/2014/12/'>December 2014</a> (6)</li> <li><a href='https://blog.metabrainz.org/2014/11/'>November 2014</a> (8)</li> <li><a href='https://blog.metabrainz.org/2014/10/'>October 2014</a> (6)</li> <li><a href='https://blog.metabrainz.org/2014/09/'>September 2014</a> (5)</li> <li><a href='https://blog.metabrainz.org/2014/08/'>August 2014</a> (2)</li> <li><a href='https://blog.metabrainz.org/2014/07/'>July 2014</a> (5)</li> <li><a href='https://blog.metabrainz.org/2014/06/'>June 2014</a> (3)</li> <li><a href='https://blog.metabrainz.org/2014/05/'>May 2014</a> (9)</li> <li><a href='https://blog.metabrainz.org/2014/04/'>April 2014</a> (5)</li> <li><a href='https://blog.metabrainz.org/2014/03/'>March 2014</a> (7)</li> <li><a href='https://blog.metabrainz.org/2014/02/'>February 2014</a> (4)</li> <li><a href='https://blog.metabrainz.org/2014/01/'>January 2014</a> (2)</li> <li><a href='https://blog.metabrainz.org/2013/12/'>December 2013</a> (10)</li> <li><a href='https://blog.metabrainz.org/2013/11/'>November 2013</a> (7)</li> <li><a href='https://blog.metabrainz.org/2013/10/'>October 2013</a> (9)</li> <li><a href='https://blog.metabrainz.org/2013/09/'>September 2013</a> (7)</li> <li><a href='https://blog.metabrainz.org/2013/08/'>August 2013</a> (7)</li> <li><a href='https://blog.metabrainz.org/2013/07/'>July 2013</a> (4)</li> <li><a href='https://blog.metabrainz.org/2013/06/' aria-current="page">June 2013</a> (11)</li> <li><a href='https://blog.metabrainz.org/2013/05/'>May 2013</a> (8)</li> <li><a href='https://blog.metabrainz.org/2013/04/'>April 2013</a> (6)</li> <li><a href='https://blog.metabrainz.org/2013/03/'>March 2013</a> (7)</li> <li><a href='https://blog.metabrainz.org/2013/02/'>February 2013</a> (8)</li> <li><a href='https://blog.metabrainz.org/2013/01/'>January 2013</a> (8)</li> <li><a href='https://blog.metabrainz.org/2012/12/'>December 2012</a> (4)</li> <li><a href='https://blog.metabrainz.org/2012/11/'>November 2012</a> (4)</li> <li><a href='https://blog.metabrainz.org/2012/10/'>October 2012</a> (11)</li> <li><a href='https://blog.metabrainz.org/2012/09/'>September 2012</a> (13)</li> <li><a href='https://blog.metabrainz.org/2012/08/'>August 2012</a> (5)</li> <li><a href='https://blog.metabrainz.org/2012/07/'>July 2012</a> (9)</li> <li><a href='https://blog.metabrainz.org/2012/06/'>June 2012</a> (7)</li> <li><a href='https://blog.metabrainz.org/2012/05/'>May 2012</a> (14)</li> <li><a href='https://blog.metabrainz.org/2012/04/'>April 2012</a> (6)</li> <li><a href='https://blog.metabrainz.org/2012/03/'>March 2012</a> (7)</li> <li><a href='https://blog.metabrainz.org/2012/02/'>February 2012</a> (5)</li> <li><a href='https://blog.metabrainz.org/2012/01/'>January 2012</a> (13)</li> <li><a href='https://blog.metabrainz.org/2011/12/'>December 2011</a> (8)</li> <li><a href='https://blog.metabrainz.org/2011/11/'>November 2011</a> (4)</li> <li><a href='https://blog.metabrainz.org/2011/10/'>October 2011</a> (9)</li> <li><a href='https://blog.metabrainz.org/2011/09/'>September 2011</a> (6)</li> <li><a href='https://blog.metabrainz.org/2011/08/'>August 2011</a> (7)</li> <li><a href='https://blog.metabrainz.org/2011/07/'>July 2011</a> (11)</li> <li><a href='https://blog.metabrainz.org/2011/06/'>June 2011</a> (9)</li> <li><a href='https://blog.metabrainz.org/2011/05/'>May 2011</a> (22)</li> <li><a href='https://blog.metabrainz.org/2011/04/'>April 2011</a> (4)</li> <li><a href='https://blog.metabrainz.org/2011/03/'>March 2011</a> (8)</li> <li><a href='https://blog.metabrainz.org/2011/02/'>February 2011</a> (6)</li> <li><a href='https://blog.metabrainz.org/2011/01/'>January 2011</a> (7)</li> <li><a href='https://blog.metabrainz.org/2010/12/'>December 2010</a> (1)</li> <li><a href='https://blog.metabrainz.org/2010/11/'>November 2010</a> (1)</li> <li><a href='https://blog.metabrainz.org/2010/10/'>October 2010</a> (4)</li> <li><a href='https://blog.metabrainz.org/2010/09/'>September 2010</a> (4)</li> <li><a href='https://blog.metabrainz.org/2010/08/'>August 2010</a> (5)</li> <li><a href='https://blog.metabrainz.org/2010/07/'>July 2010</a> (7)</li> <li><a href='https://blog.metabrainz.org/2010/06/'>June 2010</a> (9)</li> <li><a href='https://blog.metabrainz.org/2010/05/'>May 2010</a> (7)</li> <li><a href='https://blog.metabrainz.org/2010/04/'>April 2010</a> (1)</li> <li><a href='https://blog.metabrainz.org/2010/03/'>March 2010</a> (7)</li> <li><a href='https://blog.metabrainz.org/2010/02/'>February 2010</a> (4)</li> <li><a href='https://blog.metabrainz.org/2010/01/'>January 2010</a> (4)</li> <li><a href='https://blog.metabrainz.org/2009/12/'>December 2009</a> (3)</li> <li><a href='https://blog.metabrainz.org/2009/11/'>November 2009</a> (1)</li> <li><a href='https://blog.metabrainz.org/2009/10/'>October 2009</a> (5)</li> <li><a href='https://blog.metabrainz.org/2009/09/'>September 2009</a> (2)</li> <li><a href='https://blog.metabrainz.org/2009/08/'>August 2009</a> (4)</li> <li><a href='https://blog.metabrainz.org/2009/07/'>July 2009</a> (3)</li> <li><a href='https://blog.metabrainz.org/2009/06/'>June 2009</a> (3)</li> <li><a href='https://blog.metabrainz.org/2009/05/'>May 2009</a> (6)</li> <li><a href='https://blog.metabrainz.org/2009/04/'>April 2009</a> (2)</li> <li><a href='https://blog.metabrainz.org/2009/03/'>March 2009</a> (5)</li> <li><a href='https://blog.metabrainz.org/2009/02/'>February 2009</a> (7)</li> <li><a href='https://blog.metabrainz.org/2009/01/'>January 2009</a> (2)</li> <li><a href='https://blog.metabrainz.org/2008/12/'>December 2008</a> (3)</li> <li><a href='https://blog.metabrainz.org/2008/11/'>November 2008</a> (6)</li> <li><a href='https://blog.metabrainz.org/2008/10/'>October 2008</a> (8)</li> <li><a href='https://blog.metabrainz.org/2008/09/'>September 2008</a> (8)</li> <li><a href='https://blog.metabrainz.org/2008/08/'>August 2008</a> (5)</li> <li><a href='https://blog.metabrainz.org/2008/07/'>July 2008</a> (5)</li> <li><a href='https://blog.metabrainz.org/2008/06/'>June 2008</a> (7)</li> <li><a href='https://blog.metabrainz.org/2008/05/'>May 2008</a> (5)</li> <li><a href='https://blog.metabrainz.org/2008/04/'>April 2008</a> (4)</li> <li><a href='https://blog.metabrainz.org/2008/03/'>March 2008</a> (6)</li> <li><a href='https://blog.metabrainz.org/2008/02/'>February 2008</a> (8)</li> <li><a href='https://blog.metabrainz.org/2008/01/'>January 2008</a> (3)</li> <li><a href='https://blog.metabrainz.org/2007/11/'>November 2007</a> (7)</li> <li><a href='https://blog.metabrainz.org/2007/10/'>October 2007</a> (7)</li> <li><a href='https://blog.metabrainz.org/2007/09/'>September 2007</a> (2)</li> <li><a href='https://blog.metabrainz.org/2007/08/'>August 2007</a> (5)</li> <li><a href='https://blog.metabrainz.org/2007/07/'>July 2007</a> (3)</li> <li><a href='https://blog.metabrainz.org/2007/06/'>June 2007</a> (4)</li> <li><a href='https://blog.metabrainz.org/2007/05/'>May 2007</a> (8)</li> <li><a href='https://blog.metabrainz.org/2007/04/'>April 2007</a> (11)</li> <li><a href='https://blog.metabrainz.org/2007/03/'>March 2007</a> (9)</li> <li><a href='https://blog.metabrainz.org/2007/02/'>February 2007</a> (4)</li> <li><a href='https://blog.metabrainz.org/2007/01/'>January 2007</a> (8)</li> <li><a href='https://blog.metabrainz.org/2006/12/'>December 2006</a> (4)</li> <li><a href='https://blog.metabrainz.org/2006/11/'>November 2006</a> (6)</li> <li><a href='https://blog.metabrainz.org/2006/10/'>October 2006</a> (7)</li> <li><a href='https://blog.metabrainz.org/2006/09/'>September 2006</a> (10)</li> <li><a href='https://blog.metabrainz.org/2006/08/'>August 2006</a> (13)</li> <li><a href='https://blog.metabrainz.org/2006/07/'>July 2006</a> (11)</li> <li><a href='https://blog.metabrainz.org/2006/06/'>June 2006</a> (3)</li> <li><a href='https://blog.metabrainz.org/2006/05/'>May 2006</a> (9)</li> <li><a href='https://blog.metabrainz.org/2006/04/'>April 2006</a> (2)</li> <li><a href='https://blog.metabrainz.org/2006/03/'>March 2006</a> (7)</li> <li><a href='https://blog.metabrainz.org/2006/02/'>February 2006</a> (8)</li> <li><a href='https://blog.metabrainz.org/2006/01/'>January 2006</a> (13)</li> <li><a href='https://blog.metabrainz.org/2005/12/'>December 2005</a> (4)</li> <li><a href='https://blog.metabrainz.org/2005/11/'>November 2005</a> (6)</li> <li><a href='https://blog.metabrainz.org/2005/10/'>October 2005</a> (3)</li> <li><a href='https://blog.metabrainz.org/2005/09/'>September 2005</a> (4)</li> <li><a href='https://blog.metabrainz.org/2005/08/'>August 2005</a> (1)</li> <li><a href='https://blog.metabrainz.org/2005/07/'>July 2005</a> (4)</li> <li><a href='https://blog.metabrainz.org/2005/06/'>June 2005</a> (3)</li> <li><a href='https://blog.metabrainz.org/2005/05/'>May 2005</a> (9)</li> <li><a href='https://blog.metabrainz.org/2005/04/'>April 2005</a> (6)</li> <li><a href='https://blog.metabrainz.org/2005/03/'>March 2005</a> (4)</li> <li><a href='https://blog.metabrainz.org/2005/02/'>February 2005</a> (9)</li> <li><a href='https://blog.metabrainz.org/2005/01/'>January 2005</a> (6)</li> <li><a href='https://blog.metabrainz.org/2004/12/'>December 2004</a> (8)</li> <li><a href='https://blog.metabrainz.org/2004/11/'>November 2004</a> (11)</li> <li><a href='https://blog.metabrainz.org/2004/10/'>October 2004</a> (22)</li> <li><a href='https://blog.metabrainz.org/2004/08/'>August 2004</a> (1)</li> <li><a href='https://blog.metabrainz.org/2004/07/'>July 2004</a> (1)</li> <li><a href='https://blog.metabrainz.org/2004/05/'>May 2004</a> (2)</li> <li><a href='https://blog.metabrainz.org/2004/04/'>April 2004</a> (1)</li> <li><a href='https://blog.metabrainz.org/2004/03/'>March 2004</a> (4)</li> <li><a href='https://blog.metabrainz.org/2004/02/'>February 2004</a> (2)</li> <li><a href='https://blog.metabrainz.org/2004/01/'>January 2004</a> (2)</li> <li><a href='https://blog.metabrainz.org/2003/12/'>December 2003</a> (1)</li> <li><a href='https://blog.metabrainz.org/2003/11/'>November 2003</a> (2)</li> <li><a href='https://blog.metabrainz.org/2003/10/'>October 2003</a> (4)</li> <li><a href='https://blog.metabrainz.org/2003/09/'>September 2003</a> (1)</li> <li><a href='https://blog.metabrainz.org/2003/07/'>July 2003</a> (2)</li> <li><a href='https://blog.metabrainz.org/2003/06/'>June 2003</a> (6)</li> <li><a href='https://blog.metabrainz.org/2003/04/'>April 2003</a> (2)</li> <li><a href='https://blog.metabrainz.org/2003/03/'>March 2003</a> (2)</li> <li><a href='https://blog.metabrainz.org/2003/01/'>January 2003</a> (1)</li> </ul> </nav></section> </aside><!-- .sidebar .widget-area --> </div><!-- .site-content --> <footer id="colophon" class="site-footer"> <nav class="main-navigation" aria-label="Footer Primary Menu"> </nav><!-- .main-navigation --> <div class="site-info"> <span class="site-title"><a href="https://blog.metabrainz.org/" rel="home">MetaBrainz Blog</a></span> <a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a> </div><!-- .site-info --> </footer><!-- .site-footer --> </div><!-- .site-inner --> </div><!-- .site --> <script type="text/javascript"> var infiniteScroll = {"settings":{"id":"main","ajaxurl":"https:\/\/blog.metabrainz.org\/?infinity=scrolling","type":"scroll","wrapper":true,"wrapper_class":"infinite-wrap","footer":"content","click_handle":"1","text":"Older posts","totop":"Scroll back to top","currentday":"07.06.13","order":"DESC","scripts":[],"styles":[],"google_analytics":false,"offset":1,"history":{"host":"blog.metabrainz.org","path":"\/2013\/06\/page\/%d\/","use_trailing_slashes":true,"parameters":""},"query_args":{"year":2013,"monthnum":6,"error":"","m":"","p":0,"post_parent":"","subpost":"","subpost_id":"","attachment":"","attachment_id":0,"name":"","pagename":"","page_id":0,"second":"","minute":"","hour":"","day":0,"w":0,"category_name":"","tag":"","cat":"","tag_id":"","author":"","author_name":"","feed":"","tb":"","paged":0,"meta_key":"","meta_value":"","preview":"","s":"","sentence":"","title":"","fields":"","menu_order":"","embed":"","category__in":[],"category__not_in":[],"category__and":[],"post__in":[],"post__not_in":[],"post_name__in":[],"tag__in":[],"tag__not_in":[],"tag__and":[],"tag_slug__in":[],"tag_slug__and":[],"post_parent__in":[],"post_parent__not_in":[],"author__in":[],"author__not_in":[],"search_columns":[],"lazy_load_term_meta":false,"posts_per_page":10,"ignore_sticky_posts":false,"suppress_filters":false,"cache_results":true,"update_post_term_cache":true,"update_menu_item_cache":false,"update_post_meta_cache":true,"post_type":"","nopaging":false,"comments_per_page":"0","no_found_rows":false,"order":"DESC"},"query_before":"2025-03-31 17:18:53","last_post_date":"2013-06-07 14:20:29","body_class":"infinite-scroll neverending","loading_text":"Loading new page","stats":"blog=1935472&v=wpcom&tz=0&user_id=0&subd=musicbrainz&x_pagetype=infinite"}}; </script> <!-- --> <div style="display:none"> </div> <div id="infinite-footer"> <div class="container"> <div class="blog-info"> <a id="infinity-blog-title" href="https://blog.metabrainz.org/" rel="home"> MetaBrainz Blog </a> </div> <div class="blog-credits"> <a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a> </div> </div> </div><!-- #infinite-footer --> <div id="actionbar" dir="ltr" style="display: none;" class="actnbr-pub-twentysixteen actnbr-has-follow actnbr-has-actions"> <ul> <li class="actnbr-btn actnbr-hidden"> <a class="actnbr-action actnbr-actn-follow " href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg> <span>Subscribe</span> </a> <a class="actnbr-action actnbr-actn-following no-display" href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg> <span>Subscribed</span> </a> <div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble"> <div class="tip-arrow"></div> <div class="tip-inner actnbr-follow-bubble"> <ul> <li class="actnbr-sitename"> <a href="https://blog.metabrainz.org"> <img loading='lazy' alt='' src='https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=50' srcset='https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=50 1x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=75 1.5x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=100 2x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150 3x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150 4x' class='avatar avatar-50' height='50' width='50' /> MetaBrainz Blog </a> </li> <div class="actnbr-message no-display"></div> <form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;"> <div class="actnbr-follow-count">Join 359 other subscribers</div> <div> <input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" /> </div> <input type="hidden" name="action" value="subscribe" /> <input type="hidden" name="blog_id" value="1935472" /> <input type="hidden" name="source" value="https://blog.metabrainz.org/2013/06/" /> <input type="hidden" name="sub-type" value="actionbar-follow" /> <input type="hidden" id="_wpnonce" name="_wpnonce" value="783375f35f" /> <div class="actnbr-button-wrap"> <button type="submit" value="Sign me up"> Sign me up </button> </div> </form> <li class="actnbr-login-nudge"> <div> Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fblog.metabrainz.org%252F2013%252F06%252F30%252Fnet-mono-bindings-for-libdiscid%252F">Log in now.</a> </div> </li> </ul> </div> </div> </li> <li class="actnbr-ellipsis actnbr-hidden"> <svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg> <div class="actnbr-popover tip tip-top-left actnbr-more"> <div class="tip-arrow"></div> <div class="tip-inner"> <ul> <li class="actnbr-sitename"> <a href="https://blog.metabrainz.org"> <img loading='lazy' alt='' src='https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=50' srcset='https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=50 1x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=75 1.5x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=100 2x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150 3x, https://blog.metabrainz.org/wp-content/uploads/2018/11/cropped-metabrainz_logo.png?w=150 4x' class='avatar avatar-50' height='50' width='50' /> MetaBrainz Blog </a> </li> <li class="actnbr-folded-follow"> <a class="actnbr-action actnbr-actn-follow " href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg> <span>Subscribe</span> </a> <a class="actnbr-action actnbr-actn-following no-display" href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg> <span>Subscribed</span> </a> </li> <li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li> <li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fblog.metabrainz.org%252F2013%252F06%252F30%252Fnet-mono-bindings-for-libdiscid%252F">Log in</a></li> <li class="flb-report"> <a href="https://wordpress.com/abuse/?report_url=https://blog.metabrainz.org" target="_blank" rel="noopener noreferrer"> Report this content </a> </li> <li class="actnbr-reader"> <a href="https://wordpress.com/reader/feeds/90752457"> View site in Reader </a> </li> <li class="actnbr-subs"> <a href="https://subscribe.wordpress.com/">Manage subscriptions</a> </li> <li class="actnbr-fold"><a href="">Collapse this bar</a></li> </ul> </div> </div> </li> </ul> </div> <script> window.addEventListener( "load", function( event ) { var link = document.createElement( "link" ); link.href = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.css?v=20250116"; link.type = "text/css"; link.rel = "stylesheet"; document.head.appendChild( link ); var script = document.createElement( "script" ); script.src = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.js?v=20250204"; script.defer = true; document.body.appendChild( script ); } ); </script> <div id="jp-carousel-loading-overlay"> <div id="jp-carousel-loading-wrapper"> <span id="jp-carousel-library-loading"> </span> </div> </div> <div class="jp-carousel-overlay" style="display: none;"> <div class="jp-carousel-container"> <!-- The Carousel Swiper --> <div class="jp-carousel-wrap swiper-container jp-carousel-swiper-container jp-carousel-transitions" itemscope itemtype="https://schema.org/ImageGallery"> <div class="jp-carousel swiper-wrapper"></div> <div class="jp-swiper-button-prev swiper-button-prev"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12"> <path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/> </mask> <g mask="url(#maskPrev)"> <rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </div> <div class="jp-swiper-button-next swiper-button-next"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12"> <path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/> </mask> <g mask="url(#maskNext)"> <rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/> </g> </svg> </div> </div> <!-- The main close buton --> <div class="jp-carousel-close-hint"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14"> <path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/> </mask> <g mask="url(#maskClose)"> <rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </div> <!-- Image info, comments and meta --> <div class="jp-carousel-info"> <div class="jp-carousel-info-footer"> <div class="jp-carousel-pagination-container"> <div class="jp-swiper-pagination swiper-pagination"></div> <div class="jp-carousel-pagination"></div> </div> <div class="jp-carousel-photo-title-container"> <h2 class="jp-carousel-photo-caption"></h2> </div> <div class="jp-carousel-photo-icons-container"> <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility"> <span class="jp-carousel-icon"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/> </mask> <g mask="url(#maskInfo)"> <rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </span> </a> <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility"> <span class="jp-carousel-icon"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/> </mask> <g mask="url(#maskComments)"> <rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> <span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span> </span> </a> </div> </div> <div class="jp-carousel-info-extra"> <div class="jp-carousel-info-content-wrapper"> <div class="jp-carousel-photo-title-container"> <h2 class="jp-carousel-photo-title"></h2> </div> <div class="jp-carousel-comments-wrapper"> <div id="jp-carousel-comments-loading"> <span>Loading Comments...</span> </div> <div class="jp-carousel-comments"></div> <div id="jp-carousel-comment-form-container"> <span id="jp-carousel-comment-form-spinner"> </span> <div id="jp-carousel-comment-post-results"></div> <form id="jp-carousel-comment-form"> <label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label> <textarea name="comment" class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea" id="jp-carousel-comment-form-comment-field" placeholder="Write a Comment..." ></textarea> <div id="jp-carousel-comment-form-submit-and-info-wrapper"> <div id="jp-carousel-comment-form-commenting-as"> <fieldset> <label for="jp-carousel-comment-form-email-field">Email (Required)</label> <input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" /> </fieldset> <fieldset> <label for="jp-carousel-comment-form-author-field">Name (Required)</label> <input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" /> </fieldset> <fieldset> <label for="jp-carousel-comment-form-url-field">Website</label> <input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" /> </fieldset> </div> <input type="submit" name="submit" class="jp-carousel-comment-form-button" id="jp-carousel-comment-form-button-submit" value="Post Comment" /> </div> </form> </div> </div> <div class="jp-carousel-image-meta"> <div class="jp-carousel-title-and-caption"> <div class="jp-carousel-photo-info"> <h3 class="jp-carousel-caption" itemprop="caption description"></h3> </div> <div class="jp-carousel-photo-description"></div> </div> <ul class="jp-carousel-image-exif" style="display: none;"></ul> <a class="jp-carousel-image-download" href="#" target="_blank" style="display: none;"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/> </mask> <g mask="url(#mask0)"> <rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> <span class="jp-carousel-download-text"></span> </a> <div class="jp-carousel-image-map" style="display: none;"></div> </div> </div> </div> </div> </div> </div> <link crossorigin='anonymous' rel='stylesheet' id='all-css-0-2' href='https://s2.wp.com/_static/??-eJyljUsKhDAQRC80mXZGDLiQOUsmaSTa+ZBOI95eBN260E3BK4pXsGRlU6wYKwRRmWT0kWHCmo2dD4aQ0h5OCBmsKUkYCXjxGYv6S3SEb8v8gge2c3QWd4XVEzo1GiIs6xXtB78wfHT/7Zu203raAHg3ZXE=&cssminify=yes' type='text/css' media='all' /> <script src="https://s1.wp.com/wp-content/js/mobile-useragent-info.js?m=1609849039i&ver=20241018" id="mobile-useragent-info-js" defer data-wp-strategy="defer"></script> <script id="twentysixteen-script-js-extra"> var screenReaderText = {"expand":"expand child menu","collapse":"collapse child menu"}; </script> <script id="jetpack-carousel-js-extra"> var jetpackSwiperLibraryPath = {"url":"https:\/\/s2.wp.com\/wp-content\/mu-plugins\/jetpack-plugin\/moon\/_inc\/build\/carousel\/swiper-bundle.min.js"}; var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https:\/\/blog.metabrainz.org\/wp-admin\/admin-ajax.php","nonce":"8b72e5684e","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https:\/\/musicbrainz.wordpress.com\/wp-login.php?redirect_to=https%3A%2F%2Fblog.metabrainz.org%2F2013%2F06%2F07%2Fprivacy-policy-updated%2F","blog_id":"1935472","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"stats_query_args":"blog=1935472&v=wpcom&tz=0&user_id=0&subd=musicbrainz","is_public":"1"}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s1.wp.com/_static/??-eJyVj8EOgjAQRH/IslEwcjF+ioG61S3ttmG3Af5eD2CMJz2+l5lJBqZsbGJFVojF5FDuxAIeNXd2WBliSgxXYgt9oXADYkdMikbsmELYeKkiceVlBx+r+sCIArn0oNNLLEKzIjJ4ARkom0A8GJdsEeNo/qfuClulxPJd+v2J7cZUBMM7t4n1yiWe96e6bo91c2j9E0eKcZM='></script> <script crossorigin='anonymous' src="https://s0.wp.com/wp-content/mu-plugins/jetpack-plugin/moon/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js?m=1725888675i&ver=14.5-a.10" id="tiled-gallery-js" defer data-wp-strategy="defer"></script> <script crossorigin='anonymous' type='text/javascript' src='https://s0.wp.com/wp-content/mu-plugins/carousel-wpcom/carousel-wpcom.js?m=1620989527i'></script> <script type="text/javascript"> (function () { var wpcom_reblog = { source: 'toolbar', toggle_reblog_box_flair: function (obj_id, post_id) { // Go to site selector. This will redirect to their blog if they only have one. const postEndpoint = `https://wordpress.com/post`; // Ideally we would use the permalink here, but fortunately this will be replaced with the // post permalink in the editor. const originalURL = `${ document.location.href }?page_id=${ post_id }`; const url = postEndpoint + '?url=' + encodeURIComponent( originalURL ) + '&is_post_share=true' + '&v=5'; const redirect = function () { if ( ! window.open( url, '_blank' ) ) { location.href = url; } }; if ( /Firefox/.test( navigator.userAgent ) ) { setTimeout( redirect, 0 ); } else { redirect(); } }, }; window.wpcom_reblog = wpcom_reblog; })(); </script> <script type="text/javascript"> (function() { var extend = function(out) { out = out || {}; for (var i = 1; i < arguments.length; i++) { if (!arguments[i]) continue; for (var key in arguments[i]) { if (arguments[i].hasOwnProperty(key)) out[key] = arguments[i][key]; } } return out; }; extend( window.infiniteScroll.settings.scripts, ["jetpack-mu-wpcom-settings","rlt-proxy","twentysixteen-html5","wpcom-actionbar-placeholder","mobile-useragent-info","the-neverending-homepage","twentysixteen-skip-link-focus-fix","twentysixteen-script","jetpack-carousel","tiled-gallery","carousel-wpcom"] ); extend( window.infiniteScroll.settings.styles, ["twentysixteen-jetpack","the-neverending-homepage","wp-block-library","wp-block-library-theme","jetpack-layout-grid","jetpack-ratings","mediaelement","wp-mediaelement","coblocks-frontend","wpcom-core-compat-playlist-styles","wpcom-bbpress2-staff-css","twentysixteen-fonts","genericons","twentysixteen-style","twentysixteen-block-style","twentysixteen-wpcom-style","reblogging","geo-location-flair","infinity-twentysixteen","h4-global","wp-emoji-styles","videopress-video-style","jetpack-sharing-buttons-style","classic-theme-styles","global-styles","twentysixteen-ie","twentysixteen-ie8","twentysixteen-ie7","akismet-widget-style","jetpack-global-styles-frontend-style","jetpack-carousel-swiper-css","jetpack-carousel","tiled-gallery","core-block-supports-duotone"] ); })(); </script> <span id="infinite-aria" aria-live="polite"></span> <script src="//stats.wp.com/w.js?68" defer></script> <script type="text/javascript"> _tkq = window._tkq || []; _stq = window._stq || []; _tkq.push(['storeContext', {'blog_id':'1935472','blog_tz':'0','user_lang':'en','blog_lang':'en','user_id':'0'}]); _stq.push(['view', {'blog':'1935472','v':'wpcom','tz':'0','user_id':'0','subd':'musicbrainz'}]); _stq.push(['extra', {'crypt':'UE40eW5QN0p8M2Y/RE1mNzc2NTVTamdsd0xoLz9RQkM2K298TXY9bERQMXc2MjhEaVZfb2wwakRoSj0mUkp1THptM1NdbkV1WjZIcU9mVWQmPUIvMlN6Jk8wW3NYVEJ3dWZOWExuWD9VNTEucGUwVDREUEpscXB+Y21XfHZTPUZ+WV0/Nnl8WzRRL0oreG1XYVpiaUVMdGs4NnxUbS9pRTZ4N2hMeEV+SVNIMEtfLkhjSy1vZ0oyZkIzZEdzakt0bkpTXUtaY3Uycy1nRjBua114Ui9taWxVL1Z1fmFpdVZMLHZ4fG8/eWlHXSZVVVAuLHByUFtbSVdxeHdfdz9uZHlkLmwyMW9GL10yQ00rK1RHXzdSVjlHLEYmVnA9MC5wVGIrLG42dGdTNnZCVS4lai9dLV0='}]); _stq.push([ 'clickTrackerInit', '1935472', '0' ]); </script> <noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript> <script defer id="bilmur" data-customproperties="{"logged_in":"0","wptheme":"pub\/twentysixteen","wptheme_is_block":"0"}" data-provider="wordpress.com" data-service="simple" data-site-tz="Etc/GMT-0" src="/wp-content/js/bilmur-4.min.js?i=12&m=202514"></script><script> ( function() { function getMobileUserAgentInfo() { if ( typeof wpcom_mobile_user_agent_info === 'object' ) { wpcom_mobile_user_agent_info.init(); var mobileStatsQueryString = ''; if ( wpcom_mobile_user_agent_info.matchedPlatformName !== false ) { mobileStatsQueryString += '&x_' + 'mobile_platforms' + '=' + wpcom_mobile_user_agent_info.matchedPlatformName; } if ( wpcom_mobile_user_agent_info.matchedUserAgentName !== false ) { mobileStatsQueryString += '&x_' + 'mobile_devices' + '=' + wpcom_mobile_user_agent_info.matchedUserAgentName; } if ( wpcom_mobile_user_agent_info.isIPad() ) { mobileStatsQueryString += '&x_' + 'ipad_views' + '=' + 'views'; } if ( mobileStatsQueryString != '' ) { new Image().src = document.location.protocol + '//pixel.wp.com/g.gif?v=wpcom-no-pv' + mobileStatsQueryString + '&baba=' + Math.random(); } } } document.addEventListener( 'DOMContentLoaded', getMobileUserAgentInfo ); } )(); </script></body> </html>