Next week we start our first final project. Basically at MakerSquare, we are supposed to work on 2 final projects with 1 week given to us for each. Then on the third week, we can go back to one of them and polish it up for another week. For my first final project I'm thinking of making a custom generated playlist recommendation app. First I need to have seed data for the computer to use to figure out what songs to recommend. Because my app will solely depend on other people's playlists I need a bunch of playlist data. I looked into the Spotify API (<- great documentation) and it seems like I'll be able to use it. Not sure I want to use authentication because that'll take up a good chunk of time but this is great because I can have access to playlists that are public with track information in JSON format. Just what I need! Then I can convert them and feed them into a database. I also looked into the 8tracks API and the Echonest API but Spotify seems like it will be the best fit for what I want to make. If I were to use the Spotify API, I would need to learn how to use Node.js. Node is a runtime environment that has a built-in asynchronous I/O library. This is good for HTTP communication especially if I'm working with a music player because it allows for non-blocking requests (because each response doesn't have to wait to be called for the previous one to end, it makes everything faster!). CodeSchool has really great tutorials and exercises so I started doing them last night but I need to use callback functions which I don't like haha.
I also started doing some research on the algorithm I need to write for the backend. I had a simple scoring system in my mind but that may not be the best. The itunes Genius algorithm is a secret but this article How itunes Genius works gives a rough idea on how it was made. It makes use of the Term-frequency Inverse-document-frequency concept. I also started reading some of the proposed algorithms from the Netflix grand prize. This was an open source hack event that happened a while back in which Netflix proposed to give a million dollars to the team that can create a better rating prediction algorithm than what they had. Some concepts in these essays may come in handy but I don't know if I want to spend time reading through it all.
The BigChaos Solution to the Netflix Grand Prize
The BellKor Solution to the Netflix Grand Prize
The Pragmatic Theory solution to the Netflix Grand Prize
Way also showed me an awesome book called Collective Intelligence (<--- super interesting book!!!! go read it) which will definitely be super helpful. It's focused on machine learning and artificial intelligence. Chapters 2 and 3 talk about exactly what I need to do to find users with similar taste.
I also started doing some research on the algorithm I need to write for the backend. I had a simple scoring system in my mind but that may not be the best. The itunes Genius algorithm is a secret but this article How itunes Genius works gives a rough idea on how it was made. It makes use of the Term-frequency Inverse-document-frequency concept. I also started reading some of the proposed algorithms from the Netflix grand prize. This was an open source hack event that happened a while back in which Netflix proposed to give a million dollars to the team that can create a better rating prediction algorithm than what they had. Some concepts in these essays may come in handy but I don't know if I want to spend time reading through it all.
The BigChaos Solution to the Netflix Grand Prize
The BellKor Solution to the Netflix Grand Prize
The Pragmatic Theory solution to the Netflix Grand Prize
Way also showed me an awesome book called Collective Intelligence (<--- super interesting book!!!! go read it) which will definitely be super helpful. It's focused on machine learning and artificial intelligence. Chapters 2 and 3 talk about exactly what I need to do to find users with similar taste.