According to Wikipedia, “A mashup is a website or web application that seamlessly combines content from more than one source into an integrated experience.” More popularly what it means is that you take content, data or query results from various Internet web applications such as Google Maps, Yahoo Flickr, Amazon.com etc. and put them all together into a single web application that provides a service that is not available from any of the source services. It’s a synergistic approach to building applications that uses existing applications as building blocks. Some call it web application hybrid, but I personally think it’s more than that. ‘Hybrid’ gives an impression that it’s just a sum of the individual (web applications) but I think mashups have much greater potential than being a ‘glue’ for web applications. It’s not 1 + 1 + 1 = 3, it’s more like (or should be) 1 + 1 + 1 = 10.
A typical simple mashup should be something like this :-
- Take the job search results from Indeed.com APIs (say of jobs relating to ‘Ruby on Rails’)
- Using the information results, map the jobs’ locations using Google Map APIs
- At each location, show the company that is returned, and latest news on the company using Yahoo Web Search Service
At a basic level this service is not something that is provided by any of the web applications individually (though Yahoo comes close) and this is a simplistic mashup anyway. With more advanced services being added continually on the Internet every day, we could continually enhance this in a way that might not be anticipated by the original service providers.
I used to do ‘mashups’ during my days with elipva, though at that point in time we didn’t call it that. We had the dotcom names for them then — things like portal, personalization and content aggregation, using technology like screen-scraping, iframes and such. Names seem to have changed, but the ideas have evolved but strangely persisted.
Maybe good ideas stick around? Or we never learn from our ‘failures’? I would rather be more optimistic on this. In any case, I still love a good mashup, and I still love coding them, whatever they’re called.
Over the next few weeks/months (depending on how much free time I have) I’ll try to implement the simple job search mashup I just described above, and will describe how it can be done, step-by-step. The technology used? Ruby on Rails, of course. Stick this page in a bookmark somwhere if you want to see how I do it.