Gagnasjón með 1 milljarði Shazam tónlistar viðurkenningu

Shazam's í San Francisco

Meðan ég var í háskóla fór ég til liðs við Shazam sem vefframkvæmdastjóri. Ég gisti hjá Shazam í 5 ánægjuleg ár. Þessi færsla er um eitt hackday verkefni sem ég vann í. Verkefnið felur í sér að setja einn milljarð Shazam viðurkenningar á autt striga og fylgjast síðan með niðurstöðunni.

Þessi færsla snertir einnig ferlið sem ég notaði til að búa til myndefni.

Hvað er 'Shazam viðurkenning'

Hugsaðu um Shazam viðurkenningu eins og þessa. Þú opnar Shazam, farsímaforritið og lætur það „hlusta“ á tónlist sem er að spila í bakgrunni. Viðurkenning er vel auðkenning lagsins.

Staðsetningargögn

Notandi getur valið að deila staðsetningu gögnum sínum með Shazam. Shazam gerir síðan eitthvað af ónafngreindum staðsetningargögnum (breiddargráðu og lengdargráðu) tiltækt fyrir starfsmenn, allt eftir notkunartilfelli þeirra.

Það var svakaleg upplifun að vera nafnlaus staðsetningargögn til að gera sjón. Það kenndi mér mikið um að vinna úr stórum gagnapökkum, sjón sem segja sögu og sjón sem líta fallega út en gera ekki neitt annað.

Sjónræn

Eitt sem þú þarft að vita, allar sjónmyndir fylgja þessari hugmynd: Einn punktur táknar eina vel heppnaða viðurkenningu. Punktar eru samsærðir í landfræðilegt hnitakerfi. Þetta er ekki það sama og að taka Google kort og setja síðan staðsetningarmerki yfir það.

Chicago, London, New York, FullAðdráttur í New York

Ég hef notað lit til að greina á milli Android og iOS. Geturðu giskað á hver er hver? Ábending: Horfðu á helstu borgir. Hvaða tækjategund heldurðu að sé ríkjandi þar?

  • Android: rautt
  • iOS: Blátt

Ef þú lítur vel á punktakortin geturðu tekið eftir skýrum skilgreiningum á vegunum. Þetta er hægt að skýra með farþegum sem eru að spila tónlist frá Shazam frá hátalara bílsins.

Ég bjó líka til kort með öðrum litavalum.

Chicago, Los Angeles, New York, Bretlandi

Gagnvirk kort

Ég hélt að það væri gaman að sjá kortið gagnvirkt. Á sama hátt og þú myndir draga / þysja að Google korti, hvað ef þú gætir líka dregið / aðdráttað Shazam kort? Þessi þáttur í gagnvirkni er það sem hvetur fólk til að nota, kanna og læra af kortunum. Frekar en að vera bara eitthvað kyrrstætt sem þú endurskoðar aldrei.

Til að gera þetta þurfti ég að búa til milljónir kortflísar. Hér eru til dæmis nokkrar flísar frá London, teknar úr Google kortum.

Hver flísar er sérstök mynd. Taktu eftir mismunandi aðdráttarstigum. Eins og þú gætir giskað á, þegar þú dregur og aðdráttar á Google kort, birtir það mörgum mismunandi myndum fyrir þig, myndirnar eru nefndar kortflísar.

Hér eru flísar Shazam Map.

Alls bjó ég til yfir 40GB virði af flísagögnum. Þetta er vegna aðdráttarstigsins sem ég hafði tilgreint. Hátt aðdráttarstig þýðir að þeir sem skoða kortið geta stækkað meira.

Þegar við fórum yfir sjónrænt samstarfsmenn veltum við því fyrir okkur: Hvaða „staður“ var á staðsetningu stóru klasa. Var það til dæmis tónlistarstaður þar sem fólk myndi oft nota Shazam?

Til að hjálpa við að svara þessari spurningu hafði ég hugmynd: Hvað ef ég notaði staðsetningarþjónustu til að ákvarða hvaða staðir eru til staðar. Til að gera þetta notaði ég forritaskil Google Maps Staða. Í hvert skipti sem þú flettir að nýjum stað fyrirspurn ég Google API API til að spyrja spurningarinnar: Hvaða staðir eru á þessum stað?

Þegar við notuðum þennan möguleika fórum við að átta okkur á því að þyrping punkta væri oftast afleiðing af: kaffihúsum, næturklúbbum, verslunarmiðstöðvum, sjoppa og fleirum.

Ég samstillti líka Mapbox kort (svipað og Google Maps) þannig að þegar þú dregur og zoomar inn á Shazam kortið, þá myndi hitt 'venjulega' kort líka færa sig um set. Þetta gerir þér kleift að greina fljótt hvaða landfræðilega staðsetningu þú ert að skoða núna

Kóðinn

Eins og með allt sem ég geri, þá hef ég aðeins hag af mikilli vinnu sem aðrir í samfélaginu okkar vinna. Eric Fischer fær öll lánstraust fyrir frábæra vinnu sína við datamaps. Ef þú fylgir leiðbeiningunum á því Github geymslugeymslu muntu geta gert þínar eigin sjónmyndir. Þú þarft gagnapakk sem samanstendur af lengdar- og breiddarpunktum, þú gætir fundið eitthvað á Github, til dæmis, ógnvekjandi almennings-gagnapakkar.

Ef þú endar að prófa þetta: hérna eru nokkrar athugasemdir sem ég gerði sjálfur sem þér gæti fundist gagnlegar.

Í fyrsta lagi þarftu stóran langan lista yfir breiddargráður og lengdargráðu. En jafnvel til að ná í þessi gögn gætirðu þurft að vinna aukalega. Í mínu tilfelli fékk ég það frá innri Shazam API. Ég notaði Node mát sem kallast fast-csv til að flokka gögn. Að nota læki á þennan hátt gerir það auðvelt að greina stór gögn (gígabæta virði).

csv.fromStream (straumur, {haus: satt}). á ('gögn', handleRecord);

Aðgerðin handleRecord gerir þetta:

virka handleRecord (skrá) {const location = tag.location.latitude + ',' + tag.location.longitude; console.log (staðsetning); }

Útgangurinn lítur út eins og:

lat, lon
-22.1028,166.1833
29.8075, -95.4113
51.2168, -0.8045
27.3007, -82.5221
20.5743, -100.3793
-36.0451.146.9267
26.7554, -81.4237

Á þessum tímapunkti getur þú byrjað að tengja það við gagnakort (það eru nákvæmar leiðbeiningar í skjölum verkefnisins).

Eftir að fylgja skjölunum nógu lengi, kom ég á stað þar sem ég gat búið til lokaímyndina. Til að búa til datamap yfir London, tilgreindu reitinn sem staðsetningarhnit sem þú vilt fanga:

./render -A - framleiðsla 14 51,641353 -0.447693 51.333508 0.260925> london.png

Vegna þess að ég bjó til sömu truflanir kort svo oft (þegar ég gerði tilraunir með lit til dæmis) ákvað ég að skrifa allt ferlið. Tilvera vefur verktaki, gerði ég þetta allt í Node.js, þó einfalt Bash handrit hefði verið fínt. Í fyrsta lagi bjó ég til hlut sem innihélt öll kortin sem ég vildi láta af hendi.

Gagnaskipan til að gera öll kort fram

Svo var um að ræða að smíða skipunina sem þú sást áðan, en fyrir hverja staðsetningu færslu í þeim JSON reit sem þú sérð á myndinni hér að ofan.

Kynnir

Hjá Shazam voru margir hakkadagar. Síðan eftir nokkra mánuði, var kynningardagur. Þú kynntir hakk dagsverkið á kynningardeginum. Að sýna fólki þetta tiltekna verkefni var vel tekið.

Fyrir þá forritara sem búa til skipanalínuforrit eða fara á endurgerð ævintýra kóða á hakkdögum, íhugaðu að áhorfendur á kynningardegi kjósi frekar sjónræn kynningar, frekar en tæknilega (þetta hefur verið mín reynsla). Ein leið í kringum þetta er: bloggaðu um það sem þú hefur gert og deildu úrræðunum eftir, slepptu algjörlega lifandi kynningu. Eða jafnvel betra, reiknaðu út hvernig þú getur eimt tæknileg hugtök til markhóps sem ekki eru tæknilegir, kynnt meira myndefni og haldið áfram að gefa kynningu þína fyrir lifandi markhóp. Það er erfiðara, en meira gefandi.

Myndir í mikilli upplausn af gagnakortunum

Athugið: Þú getur aðdráttað í þessar myndir með Google Myndir viðmótinu

  • Heimur - Taktu eftir því hvaða lönd / borgir hafa mikla notkun IOS
  • Bretland - Takið eftir borgunum
  • Toronto
  • San Fransiskó
  • París

Niðurstaða

Ég er þakklátur Shazam fyrir að hvetja okkur til að læra nýja færni og tækni. Einnig þakkir til Eric Fischer fyrir að þróa datamaps verkefnið í fyrsta lagi! Ef þú hefur aðgang að staðsetningargögnum skaltu íhuga margar áhugaverðar leiðir til að sjá þau til. Þú gætir líka prófað að nota kvak úr Twitter API, vertu bara viss um að staðsetningargögn séu fest við þá.

Viltu sjá meira svona?

Fylgdu mér á Twitter: @umaar og láttu mig vita! Ég reyni að „tweeta“ fullt af vefsíðugrunni.

Vinsamlegast hrifið og deilið ef þið hafið haft gaman af því að lesa greinina mína og skildu eftir athugasemdir við reynslu ykkar af sjónlýsingu gagna.