Scratching an Itch - How to Insure your Book Collection with PyAmazon.notes

Thursday, March 24, 2005

TITLE OF PAPER: Scratching an Itch - How to Insure your Book Collection with PyAmazon et al
URL OF PRESENTATION: _URL_of_powerpoint_presentation_
PRESENTED BY: _names_of_the_participants_
REPRESENTING: _name_of_the_company_they_represent_

CONFERENCE: PyCon 2005
DATE: _date_of_your_conference_here_
LOCATION: _venue_and_room_in_venue_

--------------------------------------------------------------------------
PyCon 2005 notes are collected by ted leung: http://www.sauria.com/~twl/conferences/pycon2005/

--------------------------------------------------------------------------
REAL-TIME NOTES / ANNOTATIONS OF THE PAPER:
{If you've contributed, add your name, e-mail & URL at the bottom}

Presenter: Michael Bernstein
    Zope Early Adopter ('99)
    Co-Wrote the Zope Bible (2000)
    
PROBLEM

    Many, Many books. Insurance requires an inventory before a claim
    How to inventory an existing library?

Solution
    Capture barcodes

    Convert barcodes to ISBN
    
Goals:
    Inventory books
    Use pyton
    make it easy
    possibly extend to manage library

Command line interface for tools:
    Add a book
    List books
    Total replacement value of books

Initial plan:
    Type in ISBN

    Get the data from Amazon
    Store the data
    
Why Amazon?
    Info on nearly all books
    Good API
    Conveniently exposed to Python


Query Amazon by ISBN
    Search by ASIN
    from pyamazon import amazon
    [... init amazon license ...]
    getbook = amazon.searchByASIN('0764548573') is the key call
    getbook[0].__dict__ has the good info
    returns a bag

Zope class for book

Amazon TOS and data
    Amazon says data can only be used for 24 hours
    Speaker compromises

    only using information that could be gotten from book itself

Stores books in Zope DB using ISBN as key

Demo of command line interface
    Tries to look up book with ISBN in amazon, but not connected to net
    


Typing the ISBN is a pain!

Solution: Scan Barcodes
    Bought a barcode scanner

Cheap Scanner -- cuecat
    About $6 on eBay

Converting barcode to ISBN is not as easy as it sounds
    ZARF library (See URL below)
    
Adding a GUI
    wxPython
        pros cross platform, native look and feel
        cons hard to learn

Wax
    Pythonic wrapper around wxPython

Probably should have used PythonCard, but it wasn't around yet    


Thanks

[Demo of GUI]

Conclusion
    Cataloged 1200 books so far!

Future Directions
    Other data sources
        Library of Congress Data
        xisbn (get isbns of other editions)
        More amazon data like related books
    Expand to personal LMS
    

Q&A:

Q: CueCat data input
A: It's easy to modify the HW to get the unencrypted data, speaker did this
Also usb/ps2 conversion

Q: Have you considered using Z39.50
A: Yes, that's a way to connect to the Library of Congress data


--------------------------------------------------------------------------
REFERENCES: {as documents / sites are referenced add them below}

http://sourceforge.net/projects/waxgui
http://www.eblong.com/zarf/bookscan/


--------------------------------------------------------------------------
QUOTES:



--------------------------------------------------------------------------
CONTRIBUTORS: {add your name, e-mail address and URL below}



--------------------------------------------------------------------------
E-MAIL BOUNCEBACK: {add your e-mail address separated by commas }

Bob Kuehne <rpk@blue-newt.com> <http://www.blue-newt.com>



--------------------------------------------------------------------------
NOTES ON / KEY TO THIS TEMPLATE:
A headline (like a field in a database) will be CAPITALISED
    This differentiates from the text that follows
A variable that you can change will be surrounded by _underscores_
    Spaces in variables are also replaced with under_scores
    This allows people to select the whole variable with a simple double-click
A tool-tip is lower case and surrounded by {curly brackets / parentheses}
    These supply helpful contextual information.

--------------------------------------------------------------------------
Copyright shared between all the participants unless otherwise stated...