LibDB 0.0.1 Released

LibDB 0.0.1 has been released. It consists of a web-based installation program that checks file permissions, verifies the required modules are installed, and connects to the user's database to import the default schema and sample data. That's all it does. You'll be installing a program that doesn't yet exist.

Why bother creating an installer for code that hasn't been written, as backwards as putting jelly on the outside of your sandwich? Two reasons. First, I knew the installer code could be used for the rest of LibDB: the same frameworks are used for template parsing, database access, settings retrieval, language determination, etc.. The installer helped stress-test and debug before the "proper" and "important" work.

The second reason concerns end-usability. Too many times, in too many projects, the documentation and packaging is always written after the code has been debugged and tested. But the biggest lie any developer can tell themselves is that they'll *ever* be done debugging and testing code. There's always going to be one more thing to fix, one more feature to add, one more piece of goldplating to layer the ox with. The documentation and packaging, continually being put off, rarely get finished. All this great code, and no clue how to get it working.

For people to use LibDB, they need to get it installed. The "casual" user profile (as described in the ProjectGoals), when faced with installing a web-based application, is assumed to have only an FTP account and "generic" web host, where tech support is a three hour (or three day) test of patience. The installer had to be as walk-through-ish as possible, and it had to be developed first.

Documentation-wise, there are 100+ database fields. They're described in the DatabaseSchema, but no one is ever going to check the "manual" for what "provenance" means. That's why every field is described in the DB itself: the help can be retrieved right along with the matching data. Contextual help, built into the database, viewable in the interface, without extra effort. The same attention will be applied to tasks: when the user wants to *do something* compared to *define something*.

So, LibDB 0.0.1 is merely the installer, and I need your help to refine this very important step of the end-user process. Grab the download, check out the README.txt, and let me know what I'm missing, what can be improved, and what doesn't work. I'm specifically looking for suggestions on the verbiage used. Is it understandable? Is there something that can be stated more clearly? Where did I lose you? Email comments to morbus@disobey.com or use the InstallationNotes.