Rapid
 Interactive
  Programming
   Environment

Uses & History

With three children either through or at university, plus my wife who is a teacher, and my own collection of books dating back some 45+ years, we have amassed quite a few books. I recently realised that we had lost track of which books we had. So I decided to do an inventory. The books were spread over 7 rooms, and the attic. Actually another ~100 are with my eldest daughter (and I want them back!)

I first thought of a simple text list, but I wanted to do statistics on the books, for example how many books were in German, how many were Tom Clancy books...

So I considered Excel, but the thought of typing in loads of ISBN numbers, authors, titles, etc... was just to daunting.

So about 6 months ago (early 2015), on a whim, I ordered an inexpensive 2D bar code reader. I have no association with the manufacturer, the scanner is a Manhattan CCD Contact Barcode Scanner Model 401517. I can only say that it does what I want, and I am happy with it so far.

The scanner plugs into the USB port. Point the screen cursor to a field that takes input from the keyboard, point the scanner at a barcode and press the button (underneath the handgrip), and that is all. I drove the wife mad that first afternoon by scanning everything that I could find that had a barcode (the scanner made a beeb on each scan). I had to reprogram the scanner to not beep (easily done via the user help guide that came with the scanner).

Oh, you do not strictly need a bar code scanner to use this application!

I then wrote, in “Forth”, an application to check each ISBN barcode that was provided as input, and see if the code was in my (naturally initially empty) database. If not then an default entry was made and, depending on an option setting, it automatically accessed a web site that is know to accept ISBN barcode numbers and return information (and usually an image of the book cover).

I have no association with the web site or its operator, except that I use the web site.

My program uses a simple web scraping approach. I have a embedded Webbrowser control in the RIPE “Forth” like interpreter. My program passes the URL to the browser control, waits for a document download complete event, then inserts the ISBN number in to the appropriate field and then “clicks” on the search button. I wait for the document download complete event and then scan the returned web page for specific fields which are then inserted in to the local embedded SQLite database. Oh, the program also notes where the returned book cover image comes from and downloads that into the folder where the local embedded SQLite database is.

I do not store the book cover images in the library, there is an almost religous war regarding whether files should or should not be stored in databases.

Was it worth it. Well currently I have scanned 1212 books. It took less than 3 afternoons. And, I feel good!

[Home] [Uses & History] [First Steps] [Create - no ISBN] [Create - with ISBN] [Under Construction] [FAQ]