Upcoming SlideShare
Loading in...5




My presentation at lrug on 10th Feb

My presentation at lrug on 10th Feb



Total Views
Views on SlideShare
Embed Views



3 Embeds 154 127 20 7



Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Hi All, my name is Anup. <br /> I am here to present you birdpie, an experimental project developed using Rails 3 with resque backend. <br /> This application was released in January.
  • So thats me. <br /> I am working fulltime on rails since 2007. <br /> Right now I work for Dynamic50 which is a cool startup based in Croydon. <br /> You can follow me on twitter & my id is railsbob.
  • You must have seen a &#x2018;tweet this&#x2019; link on popular blogs and websites. <br /> We tweet the links, share it among our network and then forget about it.
  • Won;t it be nice if I was able to look back through my links, tag them with keywords, search them, or see who else have tweeted it? <br /> <br /> There are few websites which aggregate bookmarks, but none of them are offered as personal tools.
  • But there are many limitations while dealing with twitter. <br /> The search cannot go beyond last 1500 tweets <br /> We might come accoss different tiny urls pointing to same web page <br /> Also, the twitter API cannot go beyond 3000 tweets for a user.
  • So we offer you Birdpie, a twitter application which aggregates all your tweeted links. <br /> It also stores contextual information like tags and allows you to assign a category.
  • It also resolved the tiny urls, and keeps a track of tweeted count unique to a user. <br /> All dead and non existing links are discarded and the link is labeled with the title of the target page.
  • The sign up is simple, you can log in using your twitter id. <br /> Private users can sign up too, but their bookmarks are not available for public viewing on the profile pages or search results.
  • Intelligent Tags <br /> Once the url is saved, birdpie fetches the target page and passes its content to a service to extract tags. <br /> You can see an example above. <br /> <br /> You can also list all bookmarks by a particular tag.
  • A category is a personal folder to manage your boomark. <br /> The dashboard allows you to assign a category for a bookmark and define new ones as you want.
  • There is another way to assign a category for a bookmark, and that is using a matching hashtag. <br /> So, if I tweet a link with hashtag #ruby, it is automatically assigned under ruby cateogy.
  • We developed this application on Rails 3.0 <br /> The idea was to start early and know it better <br /> This being a minimal app, we did not face any major issue. <br /> The site is up and running smoothly on production since a month.
  • Birdpie is mostly a background application. <br /> There are three main tasks <br /> Crawl for new tweets, check for links <br /> Resolve target urls <br /> Tag and save
  • We use Redis to manage bookmark counts and tag counts. <br /> The in-built increment method eliminates the need of a counter cache. <br /> It is pretty fast and improves the overall performance of the application. <br /> <br /> The Resque queue manager also relies on Redis for operation.
  • There are few options available for background processing. <br /> We chose Resque as we wanted to break the background tasks into multiple queues with different priorities. <br /> Also, the admin app bundled with Resque is a handy tool for monitoring.
  • Basically the process is spread across two queues. <br /> User queue deals with fetching content from twitter for a particular user. <br /> Bookmarks queue resolves the raw link, tags it and updates the redis index
  • This is a snapshot of the Resque admin application. <br /> You can easily see if you require more workers on a particular queue and act accordingly. <br /> It also gives information about failed jobs if any.
  • We selected redis and resque over delayed job as we wanted to manage the processes using multiple queues. <br /> I have covered a brief introduction here, but you can follow these links if you want to dig in more details.
  • We have few more features in the pipeline, some are listed here. <br /> The mozilla plugin will provide you easy access to all your bookmarks right in the browser. <br /> Retweet within the birdpie application to save someone else&#x2019;s bookmarks <br /> And finally a more extensive bookmark search.
  • Thank you for listening to my talk. <br /> You can keep a watch on dynamic50 blog for new announcements about birdpie features.

Birdpie Birdpie Presentation Transcript

  • Anup Narkhede
  • About Me • Anup Narkhede • On Rails since 2007 • Employee at •
  • Do you tweet links?
  • What if you want to look back through your old links?
  • Limitations • Search only returns last 1500 tweets • Different TinyUrls for same target links • Twitter API goes back for 3000 tweets
  • • Twitter web application • Aggregates all your tweeted links • Auto link tagging • Categories for link management • Shows popularity of the bookmark
  • • Resolves the Tiny URLs • Stores the count • 404 Errors and Deadlinks • Gets the page title
  • Sign Up • Twitter OAuth (Read-Only) • Private Users?
  • Intelligent Tags • Auto Tags • Listing by tags
  • Categories • Manage bookmarks by assigning a category • A Category acts like a Folder
  • Hashtags • Auto Assign a category by adding a hashtag RT @dynamic50: New blog post: Birdpie Launched #ruby Puts the bookmark under Ruby Category
  • Rails 3.0
  • Architecture • 75% Background processes Crawl Resolve Tag
  • Redis • Key value store • Eliminates need for counter cache • Lists, Sets, Ordered Sets • Used to manage bookmark counts
  • Resque • Queue Manager • Admin Sinatra Application • Inspect Failed Jobs • Add and remove workers
  • Process User URLs Bookmarks Worker 1 Worker 2 Worker 3 •Crawl •Resolve •Store •Tag •Update count
  • Resque Admin (Sinatra App)
  • Redis Resque
  • Coming soon • Mozilla Plugin to manage your bookmarks • Retweets • Bookmark Search
  • About Us