In this installment of our mashup case study series we speak to Matt Riggott, a developer in Reykjavik, Iceland. He created his music event mashup, Ripped Records, when he lived in Scotland to help him and others discover upcoming concerts. Riggott tells us he believes that showing off this side project to his now-boss "clinched" the job offer and the move to Iceland.
Q: Can you give us a bit of background on Ripped Records?
There's a shop in the centre of Edinburgh, Ripping Records. It's an institution in the city and one of the last few physical connections to buying gig tickets. There's a big chalk board listing all the tickets they have on sale and you can chat to the staff, get recommendations, and so on. It's fantastic.
But their website's dreadful. I mean truly awful. It looks bad, it's hard to use, and it's almost impossible to discover what's new. So I took it upon myself to create something better.
My main aims were to make it easy to discover new tickets as soon as they're available, to give people visual clues as to what bands are where, and to allow people to browse by venue, band, and date — all things missing from the store's own site.
Q: What is your business model?
1. Write code
There is no business model, I merely built the site for the enjoyment found in creating something. It was a chance to delve into the then-latest version of Django, to tinker with some web APIs, and to dabble in design.
I did make one concession: links to an artist's albums on Amazon include an affiliate tag. It's made me the grand total of nothing so far. But a couple of months ago a friend sent me an email to say he'd ended up seeing a gig he would have otherwise never have known about were it not for Ripped Records. It's hackneyed, but that's rewarding enough.
Q: What APIs did you use and what were the best and the worst aspects of using them?
A year or so ago I was noticed that there was a function in Google Spreadsheets called "importHtml" that can import a whole table from an HTML page into a spreadsheet and have it update regularly. I realised if made the spreadsheet public I could download an HTML table as a CSV file with no programming or screen-scraping needed at all. That intrigued me, so I thought I'd try and use it somehow. Ripped Records is the result. It was a lot of fun seeing that work so quickly and so smoothly. The only downside was that the information in the original table was so badly organised it took a lot of work to convert into information suitable for the database.
CloudMade was fantastic fun. It's like Google Maps only you can design the maps, which means the site has a more homogeneous feel rather than some ugly bright green and blue map sitting uncomfortably above everything else. I'm amazed I don't see it used more often, it really should be ubiquitous.
As for Last.fm and MusicBrainz, I didn't use the APIs directly but rather used Python libraries to do the heavy lifting for me. That made it incredibly easy to do some quite interesting things — album art, artist biographies, and so on. That's the beauty of APIs — and open-source — the sum is greater than the parts.
Q: What programming languages and tools is this built with?
Python and Django. Python's been my favoured programming language for the last seven years or so, ever since I picked it up back at university, and Django has been making my life as a web nerd a joy rather than a hassle since late 2005. I wouldn't leave home without them.
Q: What are your future plans with the site? More APIs or expanding to other cities?
I'm not sure what, if anything, I'll do with the site yet. I'd like to allow the interface to be translated into other languages and I quite fancy using the Last.fm API to link similar artists to one another, but I have no grander aims.
I deliberately wrote the code so it wasn't tied to the Ripping Records site but I don't have any plans to add any other data sources or branch out into other cities. Having said that, the code is open-source, so I'm happy for anyone else to use it for their own site.
Q: Can you tell us about any metrics for this application: traffic, revenue or other?
I use Google Analytics, but I rarely check it. I'm not an artist — I don't have any artistic skill — but I think everyone at some point likes to create something purely for the joy of it, and that's what this site is for me: an artistic creation. It exists, I know it exists, and that's the metric I'm interested in. Sometimes you can get lost in a site's statistics and miss the simple enjoyment of it just being there.
Q: Using third-party APIs is seen by many as introducing business and technology risk. How do view this issue and how do you account for it in your strategy and implementation?
I don't see the Google, Last.fm, or MusicBrainz APIs as a worry as they're provided by big players, but I do worry about using another site's as the basis for my own: they might ask me to stop scraping their site or block my IP address for instance.
But by far the biggest problem so far is handling their misspellings! All the data is entered by hand so band names, venues, even towns get misspelled. A lot of the import code tries to handle that without needing my input. I am incredibly dependent on the site structure and information staying as it is. My strategy is really to keep the site going as long as they do theirs. If they change their site or block me in some way, that'll probably be the end of my little experiment.
Q: From an API and mashup perspective, what are the main lessons learned from this project and/or is there any advice you'd like to share on the development, design or business side of mashups?
Always use open-source third-party libraries to do the dirty work for you, it makes life much more fun.
Q: Are there any mashup-related APIs, tools or services that don't exist today that you'd like to see? (Or, what API would you kill for?)
I'd love to see APIs for open data from government and public institutions. That's the area I'm most interested in now and we're just starting to see it emerge. The Guardian is doing a lot of good work with its Datablog, but I'd like to see them offer access to the data via an API rather than just through spreadsheets and CSVs. There are a few startups working in this area — I work for one of them, DataMarket (http://datamarket.com/) — and I'm really looking forward to seeings the fruits of their (our!) labour.
Q: And finally, besides your own service, do you have a favorite mashup?
The mashup I use most often is Gmaps Pedometer to see how far I managed to run, but the most impressive mashup must surely be EveryBlock, the successor to Chicago Crime. Everything about that site has been superbly implemented. I would love to see that for Reykjavik!