iRead – a social book discovery revolution

It has been a while since I thought I should write a review of iRead.

weread logo iRead is a social book discovery application. It has been quite successful on Facebook and has a very large userbase. Currently iRead has a total install base of about 1.4 million users, mostly from Facebook.

So what do we mean by social book discovery?

iRead is not just about maintaining a bookshelf online. It tries to bring the social aspect into picture. ‘social’? iRead depends a lot on your social network. You can share your bookshelf with your friends, learn what your friends are reading and what their reading tastes are. You can discuss about books in various book clubs. You could participate in Quizzes or even add your own. You can find out how compatible your reading tastes are with other people in the network. iRead does not require a separate registration. It is available right in your social network. (As of now the application is available in Facebook, Orkut, MySpace, Hi5 and Bebo.) So when we are talking about friends, we are talking about your friends from the network where you are using iRead. So if you use iRead in Facebook, you see your Facebook friends in iRead, while in Orkut you see your Orkut friends. Many a times, all it requires is to just add the application to your profile. ‘book discovery’? For one, iRead provides recommendations based on your reading tastes. Then there are various other mechanisms by which you can discover new books to read. Let’s explore some.

Several ways to browse

* You could first start off by searching for books and adding them to your bookshelf. This helps us learn about your tastes and recommend books that you may like. * When searching, you could either enter the name of the book, or its author, or if you know the ISBN, you could enter that. * If you want to just browse through the application you could start off by looking at what other iReaders are doing. The home page shows the most recent activity in the network.

* So let’s say you find some interesting book. Just click on the book and you are taken to the book details. Here you get to know how many readers the book has, how many reviews people have written for the book and get some instant user reviews and an editorial review. You can also find out similar other books.

* If you see that the book is interesting, just click on the ‘See All’ reviews link. This will display all the reviews for the book. Read the ones you like and you will soon learn what the book is about.

* Since there are multiple ways to reach your data, your reviews are never buried. So even if you are writing a review for a book, that already has a thousand reviews, you can expect your review to be read by other iReaders. * If the book interests you, you might want to check out other books by the same author. Just click on the author’s name. This will show all books by the author. You could also click on the small icon next to the author’s name to search for the author in Author’s corner. This will give you other details like the profile of the author, what others think about the author, how many fans the author has etc.

* Author’s corner is a forum for readers to interact with their favorite authors. So if you are the author of a book and are looking for a forum to interact with your readers, this is where you should be. Author’s corner allows authors to maintain their profile, and also learn about their readers’ expectations. * While reading reviews, you might find that the review from a particular user is very interesting. You might now want to look at this reader’s bookshelf. Many a times, I have found this to be a good mechanism to discover new books. You can get an assurance of how close your tastes are by looking at the number of common books amongst you. Ok, now you might want to look at other reviews by this reader. * You could also contact the reader by leaving a wall post/scrap. * You may also want to check out who among your friends is on iRead and what they are reading. Click on the Friends link in the header. If you want to know about your friends’ reading tastes and they are not yet on iRead you could invite them to add the application.

* For selected books, you could even browse inside the book. A lot of out of copyright books are available for free online viewing. Some other selected books are available for limited preview.

Other features worthy of mention

Take your reads with you


So what if you are in all these networks and want to use iRead everywhere? iRead has a feature to import your bookshelf from Facebook to Orkut, MySpace and/or Hi5. Once imported, you will see the same bookshelf in all the networks. However the friends shown to you depends on the network you are currently in.

Import books from other sources


If you have been maintaining books in some other place, you may want to try importing books using the import books option. The link to this is found below the search box.

Add a book

Can’t find a book you want to add to your bookshelf? You can add it to our catalog. The link to add a book is found below the search box. So what’s more?! Happy iReading! Disclaimer: I work for Ugenie and am part of the iRead application development team. The views expressed here are my own and not necessarily those of Ugenie.

Downloading data using Greasemonkey – Part 2

So I finally found some time to continue my experiments with the data download from browser to the server.

This time my target was Orkut. I decided that I write a simple script to extract my Orkut profile and then display a sub-set of these fields in my own site using my own formatting.

I did not write a Greasemonkey script this time, but just used Firebug to write Javascript. Here is the browser side script:

var arrayToExtract = new Array('listdark', 'listlight');

for(var z=0;z<arrayToExtract.length;z++){
   var elements = $$('.'+arrayToExtract[z]);   // Just got lucky here. $$ is available!
   for(var i=0;i<elements.length;i++){
       var item = elements[i].getElementsByTagName('p');
       if(item[0] == undefined)
           continue;
       postData(item[0].innerHTML);
       postData(item[1].innerHTML);
   }
}

function postData(data){
   var scriptElement = document.createElement('script');

   scriptElement.setAttribute('src','http://buzypi.in/backup?data='+data+'&file=orkut&date='+Date());

   document.body.appendChild(scriptElement);

}

The script above posts the profile information one by one to the server and the server captures it and appends it in a file. The server side code is as follows:

<?php
global $_REQUEST;

$file_name = $_REQUEST['file'];
$data = $_REQUEST['data'];
$more = $_REQUEST['more'];

$DIRECTORY = 'data';

$file_with_location = dirname(__FILE__).'/'.$DIRECTORY.'/'.$file_name;

$file_handle = fopen($file_with_location,'a');

fwrite($file_handle,$data);

if($more == "true")
   ;
else
   fwrite($file_handle,"n");

$success_value = fclose($file_handle);

echo "/*";
if($success_value === TRUE){
   echo "Successfully appended: ".$data."<br/>";
   if($more == "true"){
      echo "Expect you to send more data";
   }
} else {
   echo "Failed to write data";
}

echo "*/";

?>

Guess what happened when I executed the script?

The data was appended to the file alright, but the ordering of the items was messed up in some places.

Here is a sample:

job description:
work phone:
I am a social networking application developer. I work on the Books iRead application in Ugenie. Our app is currently available in Facebook, Bebo, Orkut and Myspace.
career interests:
...

while the expected output was:

job description:
I am a social networking application developer. I work on the Books iRead application in Ugenie. Our app is currently available in Facebook, Bebo, Orkut and Myspace.
work phone:
career interests:
...

The job description content should have been received before ‘work phone’, but this was not the case.

So what is the solution?

There are 2 things I can think of:
1. Ensure that data posted is atomic.
2. Come up with a simple sliding window protocol arrangement between the browser and the server.

Solution 1 is not always feasible, because of the limits on GET URL size. In fact, we might need to split the body just so that it can be posted using GET’s. So the only solution that can take care of this is (2).

I will post more entries as I progress. Meanwhile, if you have any better solution to the problem, comment here.

Google and innovation – take 2

About a couple of years back, I wrote about how Google had a tight integration between its various services, and how Yahoo lacked it.

However when I made that entry, Google had very few services and Yahoo had lots of them. In fact, Google was primarily a search company and Gmail and Calendar were just new arrivals in the scene.

However now that Google has already been Yahoo 2.0, it's time to look at Google's offerings again and see how they have fared.

The first impression is that Google has done tremendously well. Although they have acquired several companies in the last couple of years, they have been very quick in integrating these applications with their portfolio. Orkut, Gmail/Gtalk integration, Gmail/Google docs integration, Google Mashup Editor are some examples.

However on second thoughts, it looks like there is a lot that is still to be done.

What kind of integration can we expect?

  • You bookmark resources in various services
    • Starring entries in Google Reader
    • Starring posts in Google Groups
    • Starring Google search results
    • Noting down items or clipping entries in Google Notebook
    • Indicating your favorite books in Google Books.
Why is there no single 'Google bookmarks' service?
  • Social network everywhere
Mail and IM are inherently social applications. However with the new Facebook revolution, a social network revolves around everything we do over the web. Google already has its own social network. How well is this integrated with its various services? More on Google Reader social network integration.
  • Presence awareness everywhere
A related expectation is presence awareness in various Google services. GMail has a tight integration with GTalk. Why is a similar presence awareness not available in Google Reader, Google Docs etc?
  • Uniform look and feel
Google has been doing very well here. However, some bit of work is required on sites like Orkut and Youtube.
  • Attention profiling
Google has a log of your search history. However, I guess it would be interesting to integrate this data with your mail interactions, your Google reader trends, your group activities, interactions on Orkut, sites you browse etc.

It is a complex problem to solve. You don't know what the various interaction points between the various services are or what the various dimensions are for these applications. However, we learn some of these over time. For example, it looks like social networks and attention profiling are here to stay. So if you are building an application, ensure that it is integrated well with some social network and also takes into account the attention information of a user.

Orkut microsummaries

I wrote some simple micro-summary generators for Orkut. Here is what each one does:

Last visitor: If profile visit is enabled, this micro-summary will tell you who visited your profile last.
Karma: This indicates your 3 karma values.
Next birthday: This indicates whose birthday is next.
Fans: This indicates the number of fans you have.

Here are the micro-summary generators.

In order to learn more about microsummaries click here. I will describe the steps below for using my orkut microsummary generators.

1. Install all the generators from the link given above.
2. Go to Orkut home.
3. Click on Bookmarks -> Bookmark this page.
4. In the Name option, click on the drop down menu. You should see the microsummaries in action. Select one and click OK.
5. Repeat steps 3 and 4 for each of the microsummaries.
6. For the karma microsummary, go to your profile page and repeat steps 3 and 4.

(Please note: Some values have been deliberately removed.)

The fun is it is live, which means any changes are almost instantaneously reflected.