If you are using Amazon Web Services or Product Advertising API, Amazon probably had been bugging you to sign your requests by August 15.

If you have not, by now all your requests should have failed. Some of you who are using amazon-ecs have contacted me last week, if there’s a patch to solve this issue; yep there is, the latest version, amazon-ecs-0.5.6 is able to sign your requests. Thanks to Dan Milne for the initial patch; I have also applied a few small patches to ensure that it works smoothly.

sudo gem update amazon-ecs

To sign the request you would need AWS secret key, which you can generate from Amazon associate account page.

# Include your secret key
Amazon::Ecs.options = {:aWS_access_key_id => [your developer token], :aWS_secret_key => [your secret access key]}

# Or you can also set it through 'configure' method
Amazon::Ecs.configure do |options|
    options[:aWS_access_key_id] = [your access key]
    options[:aWS_secret_key] = [you secret key]
end

# Search like usual
res = Amazon::Ecs.item_search('ruby', {:response_group => 'Medium', :sort => 'salesrank'})

Some weeks ago, I heard about Redis from Chu Yeow’s tweet. Redis is a key-value database, similar with memcached, but with the persistence feature. And one of the first things that popped up into my mind was, this is going to be handy to extend Singapore National Library Board (NLB) catalog search on BookJetty.

So I stopped my adventure with iPhone for a while to work on this hack. After all, BookJetty was built to be a proxy to plug-in other catalogs easily. With the plug, all vertical features found in BookJetty such as importing books to your shelves, tagging, book reviews, ratings, the social networking features, Google Books preview, author pages, cross libraries search, and other vertical features will be immediately available for the catalog. Well, with just a plug or an adapter.

BookJetty Services

I was lucky that Redis 0.900 (1.0 RC 1) was just released, though not a production release, I took my chance. It was very Ruby to work with Redis; download the codes, read the documentation, bam bam and you got it working, one of the reasons why I chose Redis over Tokyo Cabinet (What a name!). More about the differences between Redis and Tokyo Cabinet here.

There is an issue with NLB search result, it does not return ISBN and some other information BookJetty needs to perform the matching and to display the information nicely. Thus, it needs a second call, and it is expensive. A fast database is required to cache this kind of information, and Redis is the answer.

Previously on BookJetty, you can only search Amazon catalog, and BookJetty will find matches in NLB catalog based on the book ISBNs. But due to data discrepancies, some books found in Amazon are not found in NLB.

As a library user myself, I had always wanted to search the other way round. And today, I’m glad to announce to you, and I hope you are as excited as me. We can now do the other way round; search NLB catalog, and BookJetty is smart enough to find matches in Amazon and probably from other sources in the future. I dreamt about this, and today that dream is fulfilled. Click image or here for a sample search.

NLB Search

There is one limitation though, the search API does not sort by the newest books as in NLB online catalog. Hopefully there will be an upgrade to the API soon, and we would be close in our quest to find the holy grail for our local library search. Meanwhile, let’s cherish what we have.

May the books be with you.

I have finally jumped into the bandwagon of Objective-C development with XCode, out of curiousity to develop an iPhone application. And the first thing that I usually did when playing with a new IDE or editor is to learn the shorcuts.

And thanks to Colin Wheeler for the cheat-sheet:
http://cocoasamurai.blogspot.com/2008/02/complete-xcode-keyboard-shortcut-list.html

The cheat-sheet is comprehensive, and out of those, here are of ones that I find I can’t live without.

Alt+Shift+Up      -> Switch between header and implementation files
Alt+Shift+Left    -> Switch to the previous opened file
Alt+Shift+Right   -> Switch to the next opened file

Cmd+Double Click  -> Jump to the file definition for the clicked class name
Alt+Double Click  -> Jump to documentation window for the clicked word
Shift+Cmd+D       -> Open file quickly
Shift+Cmd+C       -> Open Class Browser window

Ctrl+?            -> Open documentation window
Ctrl+Alt+?        -> Open research assitant window
Ctrl+1            -> Show opened file dropdown
Ctrl+2            -> Show methods drop down

Option+Escape     -> Edit completion list
Ctrl+Period       -> Move to next completion list
Ctrl+/            -> Select next placeholder in auto completion brackets
Cmd+/             -> Comment text

Strangely I couldn’t find the Delete Line and Duplicate Line shortcuts in XCode, miss the equivalent of ‘yy’ and ‘dd’ in vim or Ctrl+Shift+K and Ctrl+Shift+D in Textmate. Tried custom key bindings from TypeErrorStudios, but not working my MBP, let me know if it works on your end. Thanks.

Hacheette Book Group is back with its free books giveaway on BookJetty. Halloween is around the corner, so it’s getting spooky this time with these collection of books.

halloween_books.jpg

And all are yours for free if you are a BookJetty member (sign up as one if you are not) and put at least one book on your bookshelf by end of November. Note that this contest is only open for those who reside in the United States or Canada, and remember to update your profile country in BookJetty.

Special thanks for Hachette Book Group, the last book giveaways have brought some surprises to the winners with a big box of books arriving at your porch.

  1. THE HERETIC’S DAUGHTER By Kathleen Kent $24.99, 0316024481
    ISOLATION By Travis Thrasher $13.99, 0446505544
  2. THE 13 BEST HORROR STORIES OF ALL TIME By Leslie Pockell $21.99, 9780446679503
  3. THE MONSTERS: Mary Shelley and the Curse of Frankenstein By Dorothy Hoobler , Thomas Hoobler $14.99, 9780316066402
  4. THE MYRTLES PLANTATION: The True Story of America’s Most Haunted House By Frances Kermeen $7.99, 9780446614153
  5. GHOSTLY ENCOUNTERS: True Stories of America’s Haunted Inns and Hotels By Frances Kermeen $7.99, 9780446611459
  6. THE TERROR By Dan Simmons $14.99, 9780316017459
  7. DRACULA By Bram Stoker $10.99, 0316014818
  8. WHEN GHOSTS SPEAK: Understanding the World of Earthbound Spirits By Mary Ann Winkowski $24.99, 9780446581189
  9. THE HISTORIAN By Elizabeth Kostova $9.99, 9780316067942

I like Adium, but recently there were just too many spams from my MSN account, I tried finding the privacy settings under Preferences, only to find out later that it was not there.

The secret is it’s under Adium menu (on top left screen) > Privacy Settings (Alt + Cmd + P). Choose your MSN account, check ‘Allow only contacts on my contact list’, and it’s peaceful again.

But, I’m still wondering why can’t they just put Privacy settings under Preferences.

p.s. Trying out MarsEdit, saved me a couple of extra steps required to blog, trying to justify the reason why I only blogged like once every decade lately.

Yesterday Google Book Search officially launched a set of free tools to allow anyone to embed books from the Google Book Search Index. And it also introduces Book Search API for greater integration to its search index and readers’ ratings, reviews and book collections.

BookJetty is glad to be able to integrate with Google Book Search, by introducing a new list type that indicates if book previews are available, and the embedded book preview just makes it feel closer to having a real bookshelf.

I’m really happy for this new addition to BookJetty, find it very handy to check out if books are worth a read, and glad to have BookJetty mentioned as one of its case studies.

Google Book Search

BookJetty Books Giveway

THU, 11 SEP 2008

I’m glad to announce BookJetty first books giveway, thanks to Hachette Book Group USA, 10 best selling books offered for free to host Back to School Book Bonanza! For 5 lucky BookJetty users.

To be entitled, you just need to write one book review in the month of September, and winners will be picked up randomly. I’ll inform the winners through email on October 1.

Hachette Group Books Giveaway

There’s only one catch, according to Hachet Book Group USA, the giveaway is only for BookJetty users residing in United States and Canada, sorry guys. So do remember to update your country profile in BookJetty.

Here is the list of 10 best-selling books for the giveaway:

  1. Dewey: The Small-Town Library Cat Who Touched the World
    By Vicky Myron, Bret Witter
  2. The Book of Calamities: Five Questions About Suffering and Its Meaning
    By Peter Trachtenberg
  3. Say You’re One of Them
    By Uwem Akpan
  4. Bo’s Lasting Lessons: The Legendary Coach Teaches the Timeless Fundamentals of Leadership
    By Bo Schembechler , John Bacon
  5. Knowing Right from Wrong: A Christian Guide to Conscience
    By Fr. Thomas D. Williams
  6. Titanic’s Last Secrets: The Further Adventures of Shadow Divers John Chatterton and Richie Kohler
    By Brad Matsen
  7. A Whack on the Side of the Head: How You Can Be More Creative
    By Roger von Oech (25th Anniversary)
  8. Ethics 101: What Every Leader Needs To Know
    By John Maxwell
  9. The Self-Esteem Trap: Raising Confident and Compassionate Kids in an Age of Self-Importance
    By Polly Young-Eisendrath
  10. Roads to Quoz: An American Mosey
    By William Least Heat-Moon

permalink_fu has been great to create a Search Engine Optimized (SEO) friendly URL, but I was a bit irritated when the-permalink-is-getting-too-long-with-too-many-unecessary-keywords.

From some of the SEO tips I read, it is advisable not too put too many keywords in the URL. Unecessary stop words such as ‘the, a, in, on, and the list goes on’ can be removed, and the search engine robots will not be irritated too.

I wrote permalink_fu_hack plugin some time ago to solve this problem, thought some of you may find it useful in your application. To think about all the possible stop words, I took the shortcut, and got the inspiration from SEO Slugs Wordpress plugin by Andrei Mikrukov.

It is a monkey patch for permalink_fu, you need to first install the permalink_fu plugin. It also has an additonal :unique option to turn off the feature to automatically create unique permalink, which on some cases where the permalink already includes a unique primary key id, I find that the extra check is not necessary. With the :unique option, you can set it to false for such occasion.

Installation

  script/plugin install git://github.com/technoweenie/permalink_fu.git
  script/plugin install git://github.com/jugend/permalink_fu_hack.git

Example

  class Article < ActiveRecord::Base
    has_permalink :title, :filter_stop_words => true,
        :unique => false
  end

  article = Article.new
  article.title = 'The Permalink Is Getting Too Long With Too Many Unecessary Keywords'
  article.save
  puts article.permalink     # => 'permalink-getting-long-unecessary-keywords'

Additional has_permalink Options

  :unique               
     # Create unique permalink (default: true).
  :filter_stop_words 
     # Flag to filter to stop words (default: false)
  :stop_words         
     # Array of stop words to filter (default: auto assigned to stop words similar to SEO Slugs Wordpress Plugin).
  :max_words         
     # Maximum number of words to show on permalink (default: 6)

BookJetty in Digital Life

WED, 13 AUG 2008

BookJetty in Digital Life

BookJetty finally makes it to Digital Life, I’m humbled to read BookJetty mentioned as one of the high flying-tech from Singapore, considering it was started from a bare simple application started out of curiosity.

Hopefully with this article BookJetty will be able to reach out to more book lovers and library users in Singapore. Special thanks to Irene for the writeup.

Click here for the full article on Straits Times.

Remember how we used to browse books in the bookstores, and check out the innerside of the back-cover, which usually contain a short biography of an author. I find that knowing the author’s biography helps me to appreciate his/her book more, and helps me to decide if I should read or buy the book at the very first place.

There are hundreds of thousands of authors in BookJetty database at the moment, and it is definitely not possible to update all at once. If you are BookJetty users, when you are free, do help out to update the author pages, and gracias for that. Below is the screenshot of how it looks like.

Author Page

You can choose to become fan of an author; author’s average rating and other statistics are also shown on the page. This will help you to find out how popular is an author.

Better Book Covers and Scrolling Effects

Book covers in the scroller now have some dimension to it, it now looks more like a real books instead of just cover sheets, and I’ve also sped up the scrolling effect. With chunky covers, slower scrolling effect is quite distracting for the eyes, and believe it or not, you may feel dizzy after awhile.

Bookshelf Scroller

Polaroid Style Pictures

Other notable enhancement, is the palaroid-like user pictures with username shown below. I find that picture by itself without the username is less interactive and harder to associate with.

That’s all for now, stay tuned for other interesting additions to BookJetty, and happy reading!