Wednesday, December 30, 2015

I've got a lot of books here.



Over the past week or so, I've taken 5 boxes of books to Half Price Books and just now filled another box to go out the next time I'm headed in that direction.

I like books. I like reading books. I like collecting books. I have maybe too many books. I have books that have perhaps been a fire hazard, making easy escape from my house a difficulty in case of an emergency. I have more than once bought a duplicate of a book, either because I've bought it already and forgot, or I just couldn't find the original.

Years ago, I thought it'd be good to organize my books by Dewey Decimal, oh, or maybe Library of Congress. Or maybe some sort of hierarchical tag-based scheme that I never got around to fully exploring. Now, I'm just happy if I can keep track of my books. 

I have a Google Drive Sheets spreadsheet, which is super handy - I can check it while I'm at a bookstore and see if the book I see in front of me is also waiting for me at home. This has already been a benefit.

But it's kind of ponderous - it's just a big list of stuff, and there's not a good way of identifying where a book actually is. (Organization.) I might also like to have a list of all my GURPS books, or when I get a new Kakuro puzzle book (I shouldn't be buying more of those), it might be nice to put it near the other ones of its ilk.

Also, barcode lookup might be nice to support.

So, I've been writing a tool.

Starting with web.py, and using MySQL (for now?), I started manually pulling individual lines from my spreadsheet in. The database knows that authors and ISBNs exist, but the web app has no way to display or edit them. But there's enough to start pulling one line at a time over from my spreadsheet.

Some(!) of my books are in boxes, and each box has its own ID. Each room in my house has its own ID. My house has an ID. So, there's a chain of containment there - such and so book might be in such and so box, which is in such and so room which is in my house. There are container links up from each item, and the web app is smart enough to do a select if I want to know what the contents of a specific box are. I've started printing out listings for the contents of boxes as I do my inventory - easy, just click the "contents" link off the box listing, and hit "print".

The web app does allow for me to use my fancy barcode scanner, storing UPC data for whatever items I feel like tagging. So far, it does nothing with that UPC ID, but I'm planning on doing an automated fetch from isbndb.org and making that data available.

I just now put in a facility where I can search for title substrings. So, if I ask for "gurps", it lists all the GURPS books I've entered so far (only 14, I'm just getting started). And when I ask for "apple", I get 21 hits, all for early '80s stuff. 6502 only hits 5 titles so far.

One thing that this should do is reach back to the Google Drive Sheets spreadsheet and mark which items in my spreadsheet have been added to the web app. And if I add a thing to the web app, it'd be nice if the spreadsheet reflected that without having to enter it twice. And maybe, it'd be nice to import from the spreadsheet, but if that's a lot of work, I'm OK with doing a manual inventory anyway, since my spreadsheet doesn't have a lot of UPC data, which I kind of want to collect at some point.

If you look carefully at the screenshot at the top, you'll see 4 digit IDs. That's not because I've catalogged more than 1000 items (well, actually, I have, but that's not why). It's because I had some idea that I'd use the thousands place to denote the type of object - allowing me to have enumerated categories for furniture, rooms, boxes, books, games, and other things. That categorization scheme has sort of fallen apart, but I might go back and rebuild it later, now that it's easier for a bit of code to enforce that sort of thing. Or I might ignore it, now that I've got code that makes it easier to filter and search.

Once I've got it reaching out and writing back to my spreadsheet, the next logical thing to do would be to reach out and write to a BoardgameGeek list, so my games would be listed there. But just games. Again, software is smart enough to mostly get that right, probably.

Also, maybe I could go back to my LibraryThing account and update my booklist there. 

No comments:

Post a Comment