The Global Jukebox 3.0 is Live!

With all the craziness going on around these days, I’m very happy to announce The Global Jukebox 3.0 is live. You can see it at:

https://theglobaljukebox.org

It’s a big release with alot of new stuff. One is that the whole map interface has changed. This we necessitated by mapbox, whose map software we use, sunsetting their old api and introducing an all-new, completely different one. Our map is very complex with lot of data, lots of layers, and different kinds of visualizations, animations and styles on top of it, so this involved a pretty deep restructuring of the code. The original goal was feature parity, but as we got into it, we realized the new api offered affordances with should take advantage of. First was the the map tile load much quicker, and panning and zooming around the map are much smoother, so a bunch of tricks we had to compensate for the shortcomings of the old map could just be thrown out. Another is the new map api supports 3-D projection, with one possible mode being a globe instead of a flat map. We redesigned the visual experience to take advantage of that. The fully zoomed back view allows you to model an atmosphere and background starfield, and even make the Earth turn, so that was fun. Zoomed in, it resembles the previous flat map, but with a great, seamless zoom-in transition. At the end we redesigned the app’s landing page to show off the globe and freshen up the design style.

The other big new feature the introduction of routes, that allow for a unique url for every app state. This in turn allows for sharing links, moving and forward back thru the app, generating a spiderable sitemap so all our songs, cultures, journeys, etc., will show up when google for those things. It turns out the app states are numerous, and sometimes deep and complicated, with lots of edge cases and corner cases. Previously this had been a single page app, so this work required us the think thru all the various states and how they can stack and compound and transition from one to the another. Additionally, the whole app is basically built out of bespoke javascript, so we couldn’t just drop in a framework and retrofit around it. We built our own, of course following best practices for good design patterns.

Martin and I have working the last six month or so on this, with Martin mainly doing the routes and me mainly doing the map. It was a big lift, and I must say he is a great partner to work with. Compared to a lot of software engineers I’ve worked with, I care alot about code quality, not just for it’s own sake, but for extensibility, readability, correct logic, names and abstractions, and very low bug rate. And Martin was right there with me, reasoning things thru, puzzling out thorny problems as the arose, and being patient and meticulous with quality control and attention to detail. I guess it helps that we learned to program computers together as kids, and have similar attitudes and sensibilities as to what make good software and what make a software project worth doing.

And of course I must acknowledge our project director Anna Lomax Wood, without whom none of this would be possible. Her deep knowledge of world folk music and cultural anthropology, her intelligence and positive attitude are all big guiding lights. It’s an honor and a privilege to work her. Kudos too to Kiki who, although has been pretty light-touch on this project recently, has contributed in numerous way including project management, organization, visual and UX design, devops, creating and formatting content, metadata, audio assets, and generally running things over at the Association of Cultural Equity.

Next up, The Global Jukebox 3.1. Stay tuned!