iPhone App Listens to Music and tells you the name of Song

There is an application for the iPhone where you can humm along a song and it will identify it for you. You can then even buy it from iTunes or see related videos on YouTube. The application I’m talking about is Shazam. We were talking about it over lunch and we all agreed it was impressive technology. We were wondering not so much the part of fingerprinting the music, which is already impressive to get right, but how is it possible to search such a large database, supposedly containing every song in the world, in a timely manner? Someone then asked: “who are the people doing such great software?” I then decided it was time to do some digging and found this great video, a bit romanticized I grant you that, but pretty cool..

Some of the things that caught my eye.. they started back in 2000. Also I was reading about the technology and how it works. Fingerprinting the music is based on the spectrogram. The database is an hash table, where the key is the frequency. When it receives a fingerprint it doesn’t need to search all the songs. Still there is an immense amount of work involved in making the whole thing work. It’s fantastic what they have accomplished.

The People

Chris Barton, Philip Inghelbrecht, Dhiraj Mukherjee and Avery Wang.

Chris and Philip were still in Business School (at UC Berkeley in California) when they started Shazam. Dr. Avery Wang comes from Stanford University. Not sure about Dhiraj.

Shazam Founders on Twitter

The beauty of the Internet these days.. you can follow these guys on Twitter.

Chris Barton – @bartonsurfer

Philip Inghelbrecht – @Inghelbrecht

Dhiraj Mukherjee – @dhirajm

References:

Customer development

I was reading on Jussi Laakkonen’s blog about “Customer development or why 9/10 startups fail”. I think the bottom line the post makes is that the difference between a successful startup and a failed one is that the successful ones get out of the office and talk to the customers. I think that is a very important idea and I hope to keep it in mind.

http://jussilaakkonen.wordpress.com/2008/11/13/customer-development-or-why-910-startups-fail/

Mentorship on programming is overated

**You should just mentor yourself**. When you’re doing computer science in the university there’s a point where teachers can’t teach you anymore, no better than you can teach yourself anyway.

The thing is, in order to learn, you need basically experience and to get experience you need to **do things that are useful**. This is not math therefore theory can only work for you to a certain extent.

First: **have interest, try to learn everything you can** by reading other opinions, for example add some of this blogs to your usual reading, they won’t teach specific things but will give you useful advices that you will remember when you need them, you won’t remember the exact thing but you will think “I know I read something about this and there was a really cool method for doing this”.

Second: **Program on your spare time**. Find a project you like (an obtainable project not some unreachable objective like programming the new Quake 4) and do it until you finish it. Practice, practice and practice, a lot of problems arise when you make even the simplest programs. Experience let you recognice patterns and adapt them to new situations. If you’ve done something similar in the past then you’ll do the new thing twice faster.

Third: **Share, comment and try to explain things**. One of the best things you can do is start your own programming blog. Try to explain others how to do things, you’ll find it’s a lot harder than you think. You may think you know how to do something but when you try to explain how it’s done and why, you end up doing a lot of research and actually learning how and why is done on the process.

Finally: **You will start developing your own thoughts an opinions that diverge the usual thinking or the opinions of the rest of the people. Share them.** Create a blog or whatever and express your new opinions. You’ll get feedback and will continue learning for it. For example, I read both Joel and Jeff blogs, sometimes I agree and sometimes I don’t. When I don’t, I either post to say why not or blog about it and in the process I always learn something, maybe through comments I end up changing my mind and that too is a good thing.

from http://stackoverflow.com/questions/94579/how-to-find-a-mentor/596714