- MySQL vs. PostgreSQL, Part 1: Table Organization
- Scalable System Design Patterns
- Map Reduce and Stream Processing
- Adopting Apache Cassandra
- Scaling Up by Scaling Down: Successful Agile Adoption in the Large by Focusing on the Individual
- NoCAP – Part III – GigaSpaces clustering explained..
- Robert Greene on “New and Old Data stores”
- “PostgreSQL 9.0 High Performance” book is out
- HandlerSocket on SSD
- MySQL Tech Talk • 11.2.10
- Reconnoiter: a whirlwind tour
- Comparing MySQL and Postgres 9.0 Replication
- Operating Systems and Systems Fall 2010 – Berkely open lecture
- Firesheep, three weeks later: Fallout
- Guerrilla Capacity Planning and the Law of Universal Scalability
- Understanding Throughput-Oriented Architectures
- NPTEL Courses :: Computer Science & Engineering :: Database Design
- Real Programmers Don’t Use Pascal
- Android Squared
- Adastra Group President on Entrepreneurship – Dr. Jan Mrazek
- Facebook’s New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month
The goal of our work was to find an easy and automated way to save, search and share social bookmarks in Facebook. The post will describe in detail all the steps that we have run through and the architecture of the final solution.
Once upon a time while cruising through the big flow of information around us (the Internet) and exchanging cool stuff with friends, we realized that there is no defined place where to store the valuable links. The problem comes when you want to revisit something after a period of time and you don’t remember who posted it and where (Skype, Twitter, Facebook, bookmarking sites). Also the ways you can search into the stored information are very important. Therefore, we looked around for the best social bookmarking service where you can store, search and share all the important links with your friends.
Our plan was: research for existing work, choose an initial criteria set, choose the services to be evaluated, modify the the criteria set while working and evaluate the services. Next we describe these steps in more detail.
We found very few web sites who compare a lot of services with some criteria. The few worth mentioning are:
- Roxomatic’s social bookmarks review – a PDF, written in February 2006, comparing 19 services by 59 criteria. Really an extensive and valuable list, but unfortunately an old one.
- The Social Bookmarking Faceoff by ReadWriteWeb – a comparison, done in September 2006, of 10 services by 11 criteria. Some of the criteria are “crypted” and not described. It was useful to read about the Pros and Cons of the services. But again an old survey.
We could not find any up to date work on the topic.
Initial Criteria Set
To find the best way to save, search and share social bookmarks we had to specify exactly what do we want from the services. Here is our initial criteria set plus the few additions which came after doing a bit of research. Each criteria has a binary value of “yes” or “no” with possible comments.
- Save – quick save, description, tags, easy tagging (e.g. suggesting tags), automatic snapshot or picture retrieval, automatic text retrieval
- Search – in title, in description, in tags, by date, auto-completion, filtering (the results by multiple criteria),
- View – easy bookmarks navigation, subtags or folders
- Share – public sharing, targeted sharing (e.g. to some group of people), Facebook, Twitter, Email, RSS, filtered RSS (only part of the bookmarks appear in a RSS, e.g. with some specific tags), comments on the bookmarks
- Export – as HTML, XML, etc.
- Pros and Cons – brief description of the pros and cons of the service.
The Service to be evaluated were selected mainly by googling on social bookmarking and choosing the appropriate sites, and by few suggestions of friends. Here we present the chosen sites and a brief evaluation:
- Pros – Simple, Easy to use, Bundle of friends, RSS
- Cons – No comments, no targeted sharing, no bookmark snapshot
- Pros – Annotations, comments
- Cons – UI not intuitive, search was not working
- Pros – Snapshot, Votes
- Cons – no groups
- Pros –
- Cons – They have a German and English versions of the website and there are problems with their synchronization. For example when logged in the German version and trying to save a bookmark, we were redirected to the English version requiring us to log-in again.
- Pros – Nice Streaming from/to Facebook and Twitter
- Cons – Not useful for bookmarking
- Pros – Visual Bookmarking, UI good, Browser synchronization
- Cons – No sharing, No groups
- Pros –
- Cons – Snapshot not working, no subfolders, weak sharing
You can find all the evaluated criteria for the above-mentioned services in this Spreadsheet:
Posidev Code Camp #1 – Evaluation Sheet
For saving and searching of bookmarks almost all of the services were good enough. The main problem is with the sharing. All services allow sharing of the bookmarks but mostly inside the service itself. Few of them were integrated with other social services. The Facebook integration allows only to post a bookmark on your wall, but only after a log-in and manual submission of the post. In all of the reviewed bookmark services it is not possible to automatically submit a post to Facebook.
We looked into ways of integrating the services with Facebook and one of the options we saw was RSS. If we can stream RSS feeds into Facebook we have really a lot of possible sources from many social bookmarking sites. So the idea was very appealing to our case.
RSS and Facebook
First we tried the Social RSS Facebook application. It had the most users. One can add up to 5 RSS feeds which can be streamed into a user or page’s wall. But the main problem is that one has to synchronize the feeds manually by clicking on the “update” button. For the luxury of automatic updating one has to pay an annual fee of 24 dollars and even then the feeds will be updated hourly.
Then we stumbled upon the RSS Graffiti Facebook application. One can add maybe unlimited number of feeds which can also be streamed into the walls of user or page. And there was free automatic update of the feeds as expected! You can even update your RSS Streams every half an hour or “as soon as possible” (usually between 5 and 15 minutes).
Having chosen the obvious Facebook application for RSS Streaming we started thinking exactly which RSS feeds we want to stream. Our specific user case was that we want to stream chosen bookmarks from a group of people into a Facebook Page. The delicious RSS feeds are diverse, there were user feeds, feeds of the user with his tags, bundle of users feeds or only feeds of tags from all users. For having such distributed bookmarks, like in our use case, we arrived at the following solution:
- let every delicious user tag a bookmark with a specific tag.
- take the public RSS for this specific tag and stream it with RSS Graffiti into Facebook.
So this solution allows for a lot of flexibility. Every user can decide whether to tag (post to the Facebook page) a link in delicious. There is no need for a user to be part of a bundle/group or fulfill some requirement. The only thing required for a bookmark to be posted on the Facebook page wall is to be tagged with the specific tag.
Our only dissatisfaction was that it was not clear in the Facebook page from whom was the link. So we decided to change the title of the RSS bookmarks and came up with the following architecture:
A PHP Cron Job takes the delicious RSS feed, reads the creator of each item and adds it to the title. The modified RSS feed is saved into a *.rss file on our host, which is then read by the RSS Graffiti Facebook application. You can download the PHP here. On our host, Hostmonster, we added the Cron Job in the CPanel with the following command:
php -q public_html/somefolder/rssupdate.php
Here is an example of an RSS Item in our Facebook group:
Let’s try to sum up the pros and cons of the given solution.
- Social bookmarks can be posted into Facebook through RSS.
- RSS allows a variety of sources, not only bookmarking sites.
- RSS feeds can be modified to meet some of your needs.
- Public RSS feeds allow everyone to post instantly in Facebook. It is not limited to some specific users and groups.
- Some RSS feeds do not have a snapshot/image of the bookmark.
- With RSS a duplication of bookmarks is possible. In some cases it may not be desirable.
- Possiblity of SPAM. There is no filtering of the RSS feed from undesired content.
To conclude with we would say that the presented solution satisfies the basic requirements of our vision of social bookmarking. However, if Facebook itself could save, tag, and search bookmarks, this workaround would have been useless.
We are open to your comments and other possible solutions for the best way to save, search and share social bookmarks.