Ahahah. Sigh.

I owe taxes this year; no refund for me! Lots of taxes. Looks like I get to either a) stop writing or b) spend money on lots of fucking pointless shit just to offset my income. I'm leaning toward not writing. And no, I don't have the money to pay them.

LibDB 0.0.3 Released

LibDB 0.0.3 has been released. It is the last installer-only version of the LibDB project. The next planned version, 0.1.0, will contain some, if not all of the administrative and browsing interfaces for the database. If you could, I'd appreciate some testing on this one, as it does revise a number of file locations, as well as adds a new test of a proper installation. The full list of changes are available in ReleaseNotes003.

Failing Miserably, If Not Inventively

My latest O'Reilly article, "Failing Miserably, If Not Inventively":

This is a tale of how Panther broke my automation and how, with a few days of disjointed searching, experimentation, and dreaming, I didn't fix the problem. Instead, we simply follow one man's obsession as he makes steadily more-desperate attempts to scratch a bothersome itch.

LibDB 0.0.2 Released

A day later, and a new release of the installer code. I've fixed four bugs, as well as pondered ways of improving *before the install*. First, the settings file ".htlibdb", which stores the database username and password. Obviously, it's important to make this file well-protected; we certainly don't want give free access to the user's database.

The ".ht" part gives the file special meaning to Apache, the most popular web server. When a file starts with ".ht", it is never served to the general public, protected by a filter that stops outside access. Two problems. First, I'm assuming the user is running Apache. Other webservers might not treat ".ht" in the same way, canceling all implied security.

The other downside of ".htlibdb" affects end-usability. A file that starts with a dot is "hidden" from normal viewing. Similarly, most FTP clients hide them in file listings. If the LibDB installer can't change that file's permissions, it instructs the user to. If the user *can't see* the invisible file, more support emails for me, sure, but more people *who just give up*, never asking for help. Too much effort, and you know what? It is.

I'm a few inches away from renaming ".htlibdb" to "settings.cgi", which follows the same behavior as Movable Type. In most cases, webservers are configured to treat .cgi files as executables, running them as opposed to simply showing their contents. Since the file is not code, it'd "short circuit" and display an "Internal Server Error". For configurations where .cgi is not executable, our installer can attempt to fix the permissions, prompting the user otherwise. There are more chances for .cgi scripts to break and leak data, but there are also more chances for a user to actually finish the install instead of throwing their hands-up in "where is it?" frustation.

The second big problem with the installer is location: installer/index.cgi. There's also a file called /index.cgi and, in early tests, two people mistook one file for the other, either in permission changing or in accessing through the browser. I'm thinking a better solution would be /installer.cgi: no more accidental duplicity, a single location for executable files, and a more understandable URL.

Download, test, comment, improve. Thank you!

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.

Warning: Cat Food

Every night when I come home from work (which takes me seven minutes), I undress down to my skivvies (I'm not a clothes person, much to the delight of the audience of my private webcam) and go to the bathroom (a total of six minutes). After coming out of the bathroom, I check the fridge for leftovers. I love leftovers and cleaning out old food from the fridge; throwing packaging material gives me so much pleasure (not because I'm polluting, but because I'm reducing).

Now, you have to realize I'm pretty oblivious to real world things. I don't watch TV, I certainly don't read the news, and I don't pay attention to what's going on around me. On the rare occasions that I'm outside, I don't check both ways before crossing the street (there's a reason behind this, which can be traced back to a long-since-forgotten Isaac Asimov story). The only thought running through my mind is "get more work done" (tonight, it's finishing up my MacTech article). Launching into a distracted masticulation with a three-week old piece of meat is pretty common-place around here, and my girlfriend regularly regales me with stories of my internal populus of worms.

Tonight, I opened up the fridge and saw a note sitting on a small circular plate covered in brown meat, which kinda look like taco beef. I love meat as much as people praise Krispy Kremes (I've never had one; who'll FedEx me a box?). I moved the note aside without reading it ("why the hell would someone put a note in the fridge?", never thinking that the very juxtaposition signals something important) and gazed admiringly at the taco beef and sketch of disgruntled cat.

Wait, what?

Oh. Huh. The note says "cat food". Yup, my girlfriend has me pegged.

LibDB Syndication

I've added a new page to LibDB called LatestNews for, funnily enough, the latest news. This is a more filtered/collated approach to staying up to date about LibDB, and could encompass dozens of development and wiki-page changes. I've also added an RSS feed as I should have done long ago (uh, I did write AmphetaDesk after all).

10 Mistakes Writers Don't See

Ten Mistakes Writers Don't See:

So the following is a list I'll be referring to people *before* they submit anything in writing to anybody (me, agent, publisher, your mom, your boss). From email messages and front-page news in the New York Times to published books and magazine articles, the 10 ouchies listed here crop up everywhere. They're so pernicious that even respected Internet columnists are not immune.

The list also could be called, "10 COMMON PROBLEMS THAT DISMISS YOU AS AN AMATEUR," because these mistakes are obvious to literary agents and editors, who may start wording their decline letter by page 5. What a tragedy that would be.

It's a good read, even if the writer needs a "Ten Mistakes When Using The HTML TITLE Tag" (his current title is: "Holt Uncensored :: A Candid Look at Books and the Book Industry : Publishing News : Booksellers : Bookstores : Reviews Interviews").

Wikimania

Two new pieces of wiki code have emerged from the mists. Firstly, the well received wypy Python wiki, implemented in 23 lines of code as previously reported here, is now down to just 18 lines, making Python look ever more like Perl.

Secondly, from the same author comes pwyky: a more comprehensive wiki in a single-file easy-to-install Python CGI that weighs in at a more stately ~1000 lines.

The author would like to thank Aaron for helping to reduce the size of wypy, and Morbus for the use of his weblog. Do not adjust your set! This weblog is now under my contr[not any more. --Morbus]

Orkut Is Failing

There's a good chance you've heard of Orkut in the past few days; there's a better chance you've been invited to it. While I'm certainly giddy at how quickly it has grown from the original 12,000 invitations, it is already showing signs of what I consider crucial social problems. Granted, it's still in beta, but one with no apparent or welcome differences from any other friend - of - a - friend site (save that it is affiliated with Google).

The first thing that bugs me is the community feature, as "dumb" here as anywhere else. There are too many communities being created, with too similar names and topics ("Social Software", "Social Network Analysis", "Social Networking Entrepreneur", "Antisocial Networks", etc.), and no indication of why they're worthwhile. Moreover, there's no way you can get an email when someone posts a message to the community forum... the assumption is that every day I'm going to run around looking for new posts. Since the communities have similar names and similar members, the same messages will begin showing up on the same forums, meaning a heckuva lot of running around for little payback. I'm currently part of 34 communities, but I don't really know what that means, except that 70% of them will be dead and even more useless a month from now.

The second, and probably biggest, thing that perplexes me is how your friends are ordered on the page, and likewise, how you're ordered on theirs. It's a perfect example of self-imposed and -controlled egotism: "What the?! Chris Pirillo has 12 more friends than I do?! I'm way cooler than Chris. Oh, look, someone added me as a frie... Dave Winer? Dave Winer uses social software? Dave Winer thinks I'm his friend? He'd certainly push my number up if I adde... Oh, the moral quandaries! ... .. ... . Hahah! 11 more friends Pirillo and yer MIIINEE!". I've already found myself adding "friends" that I barely know (whom I'd consider "acquaitances", at best), just because I liked seeing myself as a member of someone's Unholy Nine.

This can't be good. I may walk by the same guy every day on my way to work, or see the same email address post to a mailing list I'm on, but I certainly wouldn't call them a friend. By having Orkut "award" me with a higher number and better placement, I'm cheapening my own social network, destroying the very benefit that sites like this are supposed to provide. I'm sure other people have noticed this as well; any links with similar thoughts would be welcome.

Pages

Subscribe to disobey.com RSS