Tuesday, September 4, 2012

Why Evernote is Awesome and Search Its Killer Feature

You know this? Let's assume you are working on whatever new (research) project and are doing some initial information search on the web: relevant papers, journals, conferences, people, and so on. Your learning curve will be steep - you will be retrieving information that seems relevant to you every other minute. How do you keep track of this vast amount of information?

  1. Old style: use a notebook. This is great for sketching initial ideas and noting down basic knowledge. However, it apparently lacks all the online possibilities (videos, talks, slides, ...) plus you would have to print every interesting paper ... hence you will separate these resources somehow, which is suboptimal.
  2. You could use bookmarking. Sure, this will let you save the links to the information you found but does this help you in organizing your new project? In my opinion, it does not. Will tell later why.
  3. Use evernote! If you don't know it or haven't tried it: it's totally awesome! And it's free (in the basic version)!

Evernote easily let's you save articles and links, using it's webclipper, a very useful tool. Additionally to that you can store typed notes, handwritten notes from you tablet, pictures taken with your phone, and so on, in one big virtual notebook. This alone is great, since it allows you to later easily "reconstruct" the line of thought you were following. 

So far, so good. I think you got it: having one place to store all kinds of information is enormously useful. However, personally I think that the search functionality in evernote is the Killer Feature! Not because of the mere fact that you can perform search on your notes (if you were using emacs and storing notes in .txt files on your hd you could do this 20 years ago) - but because of how they implement it. 
There are basically two ways of searching your evernote: a) open evernote (the client or online) and type something in the search field. Fine, these are the basics you would expect. Problem here: you have to have a clue, that a certain piece of information is already in your collection, otherwise you wouldn't do a search in evernote but in google, right? And this is where awesome possibility b) comes in: when you install the webclipper in your browser, it will ask you whether you want your evernotes searched, whenever you do a google search. How awesome is this?! Think about it for a moment: with enabling this features (and I highly recommend to do so) you will basically enable searching through your "virtual memory" - on the fly - whenever you look for whatever information on google. Meaning: with evernote you are not only able to store any relevant information, but you will also be able to find this information again! Even when you are unaware that you have it! Without evernote you would most likely spend a lot of time to look for it again, using google. 
Summa summarum: the crucial part here really is the integration of evernote search and google search. And the latter, most of you will agree, is exactly what we do all the day: searching information on google, and not actually thinking about the stuff resting in our bookmark folders, delicious accounts or note-files somewhere on our hd. In this sense, one could also say that evernote is not only a tool for storing information, but for optimizing your personal information retrieval, in that it remembers what you already found. And this is truly ... awesome!

PS: Putting in my five cents - if you lost a lot of money because you were too *...* buying stocks of a social network company without a good business plan - if evernote goes IPO: invest!

Side remark:
I was waiting for such a service for quite some time. Actually, with some friends I built our own little cloud-based system to do similar things. However, it never really matured (science keeps us busy ;-) and we were merely using it on a private basis.

Sunday, September 2, 2012

Raspberry Pi & Spotify

Like other people we have a radio in the kitchen. However, ours is so old that you don't want to touch the volume control, because the random noise produced by doing so gives you a headache. Now, since I am a proud Raspberry Pi owner as well, I had this idea to use it as a spotify-kitchen-radio, meaning: have the RPi in our kitchen, connected to the LAN, some speakers plugged in and spotify running. However, there is no ARM-build spotify client, so it's not that easy. However, there is an ARM version of libspotify, that provides an API to spotify's service (you will need a premium account, which I recommend to everyone anyways - spotify is really awesome and its only 10 bucks per month). So here are some comments, preliminary results and some advice on how to make the spotify API work on your RPi (and at least being able to play your playlists) 

1.) If you use Raspbian - that won't work, since it is build using the hard float ABI capability of the ARM. If you try to install libspotify and make the examples work, eveything seems find at the beginning, but then you get an error like cannot open shared object file: No such file or directory
This is due to the fact that libspotify seems to have been build using soft-float ABI. As long as spotify doesn't release a hard float build, you will have to go to step 2. This insight is the crucial part of the game here (and a "cannot open shared object file" error is not an obvious hint in this direction) 

2.) If you want libspotify to work, you will have your RPi running the soft-float build of Raspbian, also available here: 

3.) Once you have that, things are straight foward. Download libspotify from the spotify developer page and follow the instructions in the readme. This is also where you will need a spotify premium membership in order to get an appkey. 

4.) In order to test it, you can use the jukebox example. Simply, after building it, run jukebox/jukebox. It will ask you for your login credentials and a playlist to run. If you don't hear anything, try another playlist. This "terminal version" of spotify seems to not tell you when a title is not available anymore, but instead simply keeps silent. 

Advice: The jukebox example requires you to have alsa installed and *configured*. So, before testing the spotify api and complaining that it does not play any sound, you should configure the sound card. See e.g. here or simply google for raspberry pi and alsa Have fun! 

PS: As a kitchen-radio this is still a bit uncomfortable. What I would ultimately like to have is a LAN-internal web-interface to the pi and libspotify, so that from every computer/tablet/smartphone in the LAN, I can access the local web-interface and search for/play titles, artists, albums ...