Announcing LibDB

I'd like to take this time to introduce my latest project, LibDB:

An open-sourced Perl/MySQL library and asset management system based on and inspired by the Functional Requirements for Bibliographic Records, triples from the semantic web, and "the end-user doesn't, and shouldn't, need to know this stuff". In English, this means that you'll be able to smartly and easily catalog your movies, books, magazines, comics, etc. into your own computerized "personal library".

This has been a dream project for quite a while, something that I've always wanted for my own rather large collection of "stuff". I needed the "perfect" system, as it were, because I didn't want to end up cataloguing everything twice, or having to write conversion scripts from one failed undertaking to another.

And so, a few months back, I gave myself 180 days to research the "proper" way of cataloguing media, delving headfirst into librarian technologies. That six months of planned research was cut abruptly short by a sudden need for results, and thus, LibDB was quickly born. Three weeks ago, it didn't exist. Now, there's a strong set of Project Goals, a Database Schema with sample data, a planned File Structure, and I'm beginning to work on the installation code so that, from the very beginning, things are drop-dead simple to get going.

"Drop-dead simple" ("drop-dread simple", as I like to call the projects that purport ease of use, but fail miserably) will mean different things to different people, and I've focused the development on three user profiles: casual, discriminating, and expert, which you can read more about in the Project Goals.

LibDB is based around the Functional Requirements for Bibliographic Records (pdf), a relatively new (1997) whitepaper in the librarian world that many have heralded as the next big thing in cataloguing. Art Rhyno, author of Using Open Source Systems for Digital Libraries and head librarian at the University of Windsor called his initial peek at LibDB "really impressive", and that I'm "the only developer working on FRBR from a practical systems perspective right now".

LibDB, as all of my projects, is designed from the very beginning for extensibility: users will be able to add their own locations ("where is this item stored?"), their own identifiers ("my local naming scheme is MORBUS1231"), and their own annotations (name/value pairs like "Review: 3 stars", "Death By: Axe to Head", etc.). Likewise, it'll allow granularity in how much you actually want to catalog: if you want to keep track of who catered a movie or who bound a book, have a blast. If you want to show all the comic books you have that contained the character "Sherlock Holmes" and touched on the concept of "murder", you can do that too. They'll be a number of pre-built identifiers (UPC, ASIN, IMDb, ISBN, etc.), roles (Director, Writer, Special Effects, etc.), and annotations (Chapters, Review, Summary, etc.) as well.

LibDB is still very early in its development (not a bit of code has been written, only data modeling and similar preparation) so you've got the welcome ability to influence the future of the cataloguing program "you've always wanted".

And yes, it'll be free, yes, it'll allow sharing of data (in varying forms: MARC, RDF, and MODS are initially planned), and yes, they'll be permaURLs and RESTian architecture. If you have no clue what I'm talking about, that's quite all right too: you don't need to, and that's a feature.

I Barely Knew Ye...

I barely knew him, but Iain Truskett (aka "Spoon") passed away December 29th. He was a year younger than me, and contributed to my second book, Spidering Hacks, along with a very healthy dose of other Perl related efforts. We were slowly getting to know each other, and I could easily see further collaboration. Iain, you'll be missed, my friend. I'm sorry to see you go.

Parting Is Such Sweet Fodder

From Gamegrene.com:

Well, you've done it again. Another successful night of stewarding your players through trials that would make Hercules cringe is behind you. The foul beasts or cunning evildoers are dead or dealt with; the princess is safely back in her chambers amongst fine linens and Britney Spears posters. The players have divvied up the loot, jotted the new experience totals on their sheets and reveled in the acquisition of that shiny new sword, devastating spell or twenty second century thing-a-ma-widget. They hold your story-telling skills to be about a half a step shy of Tolkien's. It's Miller time, yes?. . . Nope. You've got work to do Bubba. The next few minutes can be some of the most useful time you have available to help you maintain a vibrant, stimulating and connected campaign. (Brother Grimm) Read more from this post.

Nice Spidering Hacks Review

Some nice reviews of my latest book, Spidering Hacks:

"To my delight, the authors' writing is so lucid, their support and encouragement so welcome, and their examples so closely matched to my needs - that I immediately picked up this book, and dove headlong into the vast and beautiful world that is Perl. Despite my preference for programming in Java for Internet-related tasks, I highly recommend this book, even for those unfamiliar with the Perl programming language, as this book is written so well that you can get up and running purely on the strength of the authors' talents. I am very impressed with this book." -- Mike Sipin

"Excellent job in explaining the realworld solutions to data spidering, scraping and manipulation of the data. I have educated the Internet community about the positive benefits of bots for years and this book does an extraordinary job of giving industrial strength tips, tools and hacks highighted in a easy to understand format with concrete step by step instructions on the code, running the hack and hacking the hack. Great job Kevin and Tara!" --Marcus P. Zillman, M.S., A.M.H.A.

iTunes2HTML 2.1 Released

I never did tell anyone that iTunes2HTML 2.0 was released, so I'll rectify (RecTTIIifffYYFy!) the situation with iTunes2HTML 2.1, which generates this final output (which is my current output - nearing 10,000 tracks, whoo!). Updates include:

  • we now attempt to detect which albums have VBR tracks
  • we automatically skip over Griffin Technology peripherals
  • if an album name is not found, we use "Unknown Album" instead
  • if an artist name is not found, we use "Unknown Artist" instead
  • confirmed it works on Win32 (though you'll need ActiveState Perl)
  • fixed bug with next'ing too quick for people with crappy id3 tags.
  • fixed bug with assuming a "Disc Count" would exist. more crappy tags
  • a new --addedwithin option allows you to choose how many days ago an added album should be considered "new" and thus colored in the HTML

Fun, fun.

Oh. My. God.

I have nearly 10,000 songs in my iTunes Library. Today, that file got corrupted. All my playlists, gone. All my ratings (over 3000), gone. All my play counts, gone. I still have the original 13mb iTunes Library file that is now considered corrupted (but not the XML file... that was seemingly rebuilt the first time the error message was received). If you have any idea how to repair it, don't hesitate to let me know. I'm slowly rebuilding, but two years of meta-data has just disappeared. This fucking sucks.

Glorius!

I haven't read blogs for a month. It's like not watching television for the same amount of time. Absolutely glorious, care-free and relaxing, I tell ya. Try it!

Dumbest. Feature. Ever.

I have a dialup connection. I have "Connect automatically" checked. Under Apple's new Panther, it doesn't work. Wanna know why? When I disconnect manually, "Connect Automatically" is disabled. Guess I have to write a script to toggle the network location back and forth every hour.

Dumbest. Feature. Ever.

Update: Why is this important to me? In Jaguar, every morning, I cron'd Eudora to open up (and initiate a connection) at 7:03. At 7:09, when I woke up, my email was waiting for me. When I leave for work at 8:43, I disconnect. I get home from work at 6:07. At 6:02, Eudora was cron'd to open up and initiate a connection, again, solely to have my email waiting for me. Since I disconnected at 8:43, this no longer works.

Likewise, during the weekend, I'm not connected all day long, but I would do "fly-by connections". To get to the bathroom, you have to pass through the room where the computer is. I had key-command'd Eudora to F3. If I hadn't checked my email in awhile, I'd F3 on my way to the bathroom, and by the time I was done, my email was downloaded, I'd read it, then disconnect.

All borked. And that's just my daily email tirade - that doesn't consider all the regular scripts I have that do different things (like automatically publish pages to my site, aggregate RSS feeds, send out email updates). All broken, just because I disconnect before going to work.

Political Compass

Airport and ICS

Following up with my original plea for Airport experts, thanks to Aaron Swartz:

  • G5 has an Airport Extreme card built in.
  • G4 has a normal Airport card I bought for this purpose.
  • G5 is the server, G4 is the client.
  • G5 > Network > Airport > "Allow this computer to create networks". G5 > Network > Airport > TCP/IP: "Using DHCP with manual address" (10.0.2.1). I also have the DNS servers of my primary connection (a dialup) entered in here. It seems Airport had some problems with automatically sending the DNS servers (normally assigned by my ISP) to the client machine - specifying them manually helped (before assignation: client could ping IPs but not hosts). AppleTalk has also been turned on, and configures automatically. Finally, "Internet Connection Sharing" is turned on, with a secured 40k WEP network. Turning on ICS creates a software base station, with a DHCP server.
  • The G4 client has been set up with "Using DHCP" (and is auto-assigned an IP of 10.0.2.2). I filled in the DNS information here as well, though I have no clue if that's necessary. The router was auto-assigned to the server's address (10.0.2.1). AppleTalk has been turned on, and is configured automatically. The client is set up NOT to create networks.

I rebooted both boxes after this, connected to the network created by the server's ICS (named "Abhoreal", because I can't stand networking, much less ethereal ones), and things seem to be working fine. The Internet is shared, file sharing is about 500k a second, and I've got what I wanted secondarily: an rsync'd server client for backups. The only minor hassle relates to naming - I can't connect to the machines using their network names (Splooge, MouthWash, and MoistTowelette), but only by their IPs.

Pages

Subscribe to disobey.com RSS