Shelfari Scanner First Beta Released

Shelfari ScannerAnyone who has used one of the many online book review/inventory sites (such as Shelfari) knows how painful it can be to enter their inventory of books into these sites. Not only do you have to enter the data manually, but you’re likely to have to search through a page of results to try and find the right item/edition/version of your book. Which brings us to the purpose of this post…(subtle eh?)

Shelfari Scanner is an Adobe AIR-based application that turns any high-quality webcam into a barcode scanner you can use to quickly generate an inventory of your books suitable for use with Shelfari. The application uses my Scannerfly SDK to provide the barcode scanning capability, which provides barcode scanning that has been tested with the MacBook Pro’s internal iSight camera, but should also work with decent external webcams, or webcams with manual focus capabilities.

To install the application:

  1. Download and install Adobe AIR 1.5 or later (supported on Windows, Mac OS X, Linux)
  2. Download and run the Shelfari Scanner installer.

Once the application is installed, run the application, and grab a stack of books. To scan a book:

  • Make sure you have adequate lighting
  • Position the book so the three red lines in the Shelfari Scanner video window intersect with the book’s barcode
  • Each red scan line will show you where the application believes a barcode might exist with a blue line
  • When a barcode is detected, you’ll hear a beep, and the application will confirm the scanned barcode with a lookup on

Once you’ve scanned all your books, hit the save button to have Shelfari Scanner export an inventory file suitable for importing into Shelfari. Voila! You’re done!

This is, of course, a first pass at the application to get something out the door – if the response is positive, I’ll roll in feature requests posted in the comments as my time permits.

Will Patent Feuds Scuttle Android Developers?

Recently, the technology press has been aflutter with coverage of Google’s newly released Android mobile operating system and the first Android-enabled commercial handset from HTC being offered by T-Mobile. Much of this coverage has focused on Google’s ZXing barcode recognition SDK, a software library that turns an Android-enabled cameraphone into barcode scanner. Barcode scanning-enabled applications, such as Compare Everywhere (formerly called Android Scan) were among some of the most interesting winners of the first round of the Android Developer Challenge.

Unfortunately, many of these developers are ignoring the existence of key patents related to use of cell phones as barcode scanners that may ultimately doom their application. Several firms, including Neomedia and Scanbuy, have received patents on accessing content by taking a photo of a barcode with a cell phone, or linking physical media to information on a network using an mobile device. Are these patents defensible? Probably not, as they likely fail the requirement that an invention be non-obvious to someone versed in the state of the art.

Whether or not these patents will withstand judicial scrutiny in the long term is inconsequential. The patents have been issued and in the short term their owners will undoubtedly attempt to use them to extract funds from Android developers that build on top of ZXing to create barcode scanning-enabled mobile applications. Those that have managed to create an application that generates revenue will have to choose between paying up, folding, or taking the fight to court. I happen to know that some of these same patent holders have attempted to shake down other, non-Android, mobile application developers aggressively in the past.

What’s especially interesting is that this is an issue that Google appears to be carefully and studiously ignoring. While the EFF has been attempting to bust down some of these patents, that won’t be good enough in the short term. Until those patent hurdles are removed, developers will need to realize the risk that they may be facing by building on Android and the ZXing library.