venue finder. this application provide up to date information of locations where particular music...
TRANSCRIPT
VENUE FINDER
This application provide up to date information of locations where particular music events are taking place on an specific date.
The application has been designed to be extremely easy to use
VENUE FINDER
THE GOOGLE CLOUD
The project is a mashup that has been developed in Python, one of the as the development languages for Google App Engine webapp framework.
It is using RESTful web services from: Last FM that provide a JSON or and XML feed, which is later displayed on a Google Map using Django templates.
THE APP
Music
Remix was initially used as a an alternate version of a song.
Mashup brings together elements of two or more songs, creating a new musical composition combining two or more songs.
Web 2.0
Mashup is an application that combines data from disparate sources.
MASHUP
Last FM: (geo.getEvents)gets all events in a specific location by country or
city name. Does not require authentication and the only required parameter is api_key.
XML feed translated into a JSON format with the
format=json parameters
Google Mapuses URL requests to access geocoding, directions,
elevation, places information from client applications and manipulate the results in JSON or XML.
THE WEB SERVICES
main.py
def post(self): venue = self.request.get('venue') artist = self.request.get('artist') logging.info('Searching for venue ='+venue)
if venue == '' or artist == '': doRender( self, 'search.htm', {'error' : 'Please specify a city and an artist'} )
else: liGeoLoc = query_artist(venue, artist) xLoc=(liGeoLoc[0])['geo:lat'] yLoc=(liGeoLoc[0])['geo:long']
WEB SERVICES: LAST FM
main.py
def query_artist(venue, artist):ArtistList = {}url = "http://ws.audioscrobbler.com/2.0/?
format=json&method=geo.getevents&location=%s&api_key=b25b959554ed76058ac220b7b2e0a026" % venue
venueResult = parseJSON(url)LiGeoLoc = []for diEvent in venueResult['events']['event']:if diEvent['title'].lower().find(artist.lower()) != -1:liGeoLoc.append(diEvent['venue']['location']['geo:point'])return liGeoLoc
WEB SERVICES: LAST FM
_base.htm
$(document).ready(function() { $('#map').jmap('init', { mapCenter:[53.347268,-6.259205], mapShowjMapIcon: false, mapZoom: 12, mapEnableScaleControl: true, mapControlSize: 'large' });$('#map').jmap('addMarker', {
pointLatLng:[{{xLoc}}, {{yLoc}}],
});
WEB SERVICES: GOOGLE MAP
DEMO
THE DEMO
THE DEMO
THE DEMO
THE DEMO
THE DEMO
THE DEMO
THE DEMO
Clouds alternative of Google App Engine would be other plaftorms such us Amazon EC2 or Windows Azure.
App Engine provides a restricted runtime environment but it also offers a runtime environment that scales indefinitely, and will scale as big as you want it to.
Azure provides a slightly less constrained environment, which lets you write a wider array of apps, but requires you to write more code
Amazon EC2 provides the ultimate do-it-yourself solution. They provide the hardware, and the storage, and not much else.
CLOUD ALTERNATIVES
THANKS
Ricardo José Flores Galán
10205403