Tuesday, February 16, 2010

Ruby script for downloading rails casts

Ryan Bates continuously provide useful Rails tips in this railscasts.com.

I had written a bash script for downloading the videos of the episodes in the past. I do not like streaming much and I'd rather keep the episodes for reference.

One downside of the script is that I had to check the rss feed or the website for new episodes, and run the script manually passing the correct paramters (start and end of episode ids to be downloaded)

Now I decided to get rid of the silly step. so I ported my script to ruby, and it runs down to download whatever episodes are missing using the rss feed and checking what is already present.

The script uses simple-rss gem, so you'll have to get that installed. It also uses wget for downloading. I didn't bother using net/http of ruby, wget is fine for me as a linux user.

The script flow is simple:
  1. Check the current files in the download directory (collecting information)
  2. Grab the rss of railscasts.com
  3. Iterate over rss items and download the ones that are not already present in the download directory
The original script can be found and downloaded from https://gist.github.com/modsaid/5330545.

Windows users will have to override the wget part for downloading. perhaps using net/http or mechanize and making the script more portable,  I'll work on a new version built over mechanize. any contributions are welcomed too :)

Thanks to Hossam Hammady, an updated platform independent version that utilizes Mechnize (Instead of relying on system call to wget)  can be found at https://gist.github.com/hammady/5330925

You can also you pro feed if you have a pro subscription to get all episodes.

One advantage of having it as a script is that now it can be added as a cron job that runs periodically keeping our downloads directory updated.

Friday, February 05, 2010

Gmail search and labels.. a wished feature

Gmail has been my main email engine for years now. I'm totally comfortable with it. The ability to process, distribute and keep up with the flood of emails i get everyday from different resources, and the ability to search and find emails (even the very old ones) easily are the keys behind my loyalty to gmail.

Gmail supports some nice techniques that can be used while searching emails. Besides what you can use in the advanced search form. the command line approach (direct control from the simple search box) proves to be even more powerful.
Anything that can be controlled in the advanced search form, can also be done from the simple one provided that you know the right parameters.

You can specify: to, from, subject, a label, ...
What's more exciting is that you can specify several labels to search in, and several labels to be excluded from search. By default you have "read", and "unread" labels.
A frequent search query of mine is "l:inbox l:unread". this simple search query brings me only the new email that i want to see. removing the noise of message that has already been read.

There is one more thing to wish for though. I wish gmail team can add the simple feature of "saving a search". to be like a view... I do use my search queries repeatedly and frequently.. and got a bit tired of having to write them every single time i check my email... why cannot we have "saved searches" right above the labels or something.

I hope one of Google brilliant team of Gmail finds this suggestion. I do want to tell them: I do admire your product. Nice work guys, keep it up... together we can do even better.