And Dream I Don't
But I do think, at least, in the middle of the night. Here's a sign that you've been planning things too much lately: you wake up in the middle of the night with a bright programming idea and start mentally planning how the code will go together. During normal waking hours, I've been thinking a lot more than actually coding SAFARI. But this was a new one. Sure I might wake up occasionally with a brainstorm, but rarely to the point where I'd then spend the next half hour laying in bed developing the idea.
It did, in fact, get better and better and several problems I'd been trying to figure out were resolved during this time. “Hmm… but how would I arrange the database for multiple categories without creating too much overhead? Well, if I created a separate table named categories, then created a table that showed which categories each article went in…” So many ideas inside my brain just kept popping out like that. It went on like this until I finally hoped I'd quit getting bright ideas so I could get back to sleep.
Finally I did, but not before my next few days worth of work was fully and properly hashed out. Today, however, I am tired. This project it taking over my time of rest! You go to sleep to get away from working, you know what I mean?
By the way, an extremely perceptive reader would look back on asisaid Challenge and be able to extrapolate an song title from this post. 25 points to the one who does, but it will be tough — I gotta break y'all back in. Oh, and while I'm at it, another 10 points to the person who can figure out what about this post has to do with my second IBM compatible computer. If you didn't guess, the Challenge is coming back from its forced hiatus.
The Key(board) to Reorganization
You've probably noticed a few tweaks to the look of asisaid for the last few days. Expect some more in the coming hours and days. Right now, I'm mostly still working on the backend, but I'm finally getting around to enabling some stuff that is noticeable on the public side of the interface. Hopefully in a few more days, asisaid will be nicer than it was before the (cue dramatic music) GREAT BLOGGING CRASH OF OH-FOUR.
On the backend side, I must set things up so that I do not have to manually ping Weblogs.com any longer. I'm sick of doing that!
I did get somewhat distracted over the last two days. I replaced my 6.5 year old Dell/Philips monitor with a flat panel, which required cleaning up my desk. While I was doing that, I decided to reorganize the cables under my desk and remove some of the extra stuff before I overload the circuit. I then neatly bundled the cables together and put everything back in place. Just in time to have my keyboard die. sigh At first I wasn't sure it was the keyboard, because it was intermittent and was causing problems with other USB devices as well. But I've been using another keyboard all day today and things seem much better. So now I just need to figure out what keyboard to replace my trusty old one with.
Right now, I'm using a basic Apple keyboard that I had laying around. It was that or and old Microsoft one. Neither one of them is an ergonomic one like my Dell Comfort Key was. Although I think Apple's mechanisms have a better tactile feel, like an old IBM keyboard. But I think I'll need something with a better angle, and perhaps ergonomic shape, again.
Revolution
Apple today launched the Mac mini and iPod Shuffle, at the low-end price points of $499 and $99, respectively. Read my article, linked, for the scoop and mark my words: Apple will reverse the trend of being a marginalized computing platform, starting today.
The Mac mini is sleek and everything the PowerMac G4 Cube should have been, only for way less than other Macs rather than more. This is Apple targeting the iPod generation with a system that will be considered every bit as “cool” as the iPod and priced at the higher low end of the computer spectrum. It would make an excellent extra computer, connected via AirPort to the computer in the home office or den, an excellent Media center PC (with included DVD combo drive, etc.), and so much more. This is the beginning of a revolution in computers, me thinks.
Moving Along
Topics are (almost) working. I've fixed some more bugs and continued to streamline things. Expect more updates tomorrow. Then, maybe I can get back to blogging rather than programming for a blog.
More Progress
Cookies now work (or should), subjects are automatically filled out in comments again, “Read More” links only show up when they should, etc. Am I done? Not even close, but I am closer. Let me know if you see any new bugs (or any old ones I've seemed to have overlooked — other than stuff like padding around text (the layout is on my list to fix).
Oh, and here is the RSS feed, if you are interested.
The Genealogy of SAFARI (Or How Blogging Revived Old Code)
SAFARI (Standardized Automated Format and Retrieval Interface) began its life in 1999. I had a simple goal and wanted a simple solution: I was redesigning my church's web site and I wanted an easy way to post the entire church newsletter online. At the time, I had been tinkering with Perl for about two and a half years and thought I was a much better Perl wrangler than I really was. So I decided what every overambitious Perl programmer would decide: I'll write a content management system.
At the time, there were far less CMS's out there, I wasn't aware of more than a handful, and none of them did what I wanted — provide a way to sort articles by issue, a must for a monthly publication. I started working on SAFARI, and quickly started to realize the enormity of what I had taken on. I had no idea where to begin. But I trudged ahead, creating a relatively modular CMS that uses a flat-file database (that's a fancy term for a text file that stores your data), provided multiple levels of user access and eventually even a rudimentary search engine. In 2001, I released the code here, although honestly the code has some serious flaws which I knew, even at that time, needed to be corrected.
In fact, SAFARI was so focused on issue-based content, that I had to go with PHP-Nuke when I launched OfB, simply because SAFARI didn't work in the proper fashion for a normal internet publication. It was rather depressing, but laziness has a way of winning over pride, and so that was that. OfB was launched two months before I even released the SAFARI code, which made the release of SAFARI ever more depressing. However, SAFARI did serve its niche well, so I did release it with hopes that maybe someone would find it useful.
Blogging Days
My blog launched in February of 2002, at the time before blogging had really become all that well known. In fact, while I had heard the term, I had ignored the trend, and when my friend and fellow DMOZ-editor Ciaran Hamilton told me he had started a blog and offered his then-unreleased Journal script to use, I decided to give blogging a spin. This did compound the fact that within four months I had passed over using my own SAFARI script not once, but twice, but by that time I had given up any grand plans for SAFARI.
Hiya! My friend Ciaran Hamilton gave me this nice script, waddya think?How I wish I had the foresight that I'd still be blogging today. Eduardo started by invoking the muse from Homer's Illiad, I start with broken English that makes me cringe. But, I digress…
Ciaran's Journal code is probably one of the tightest blog codebases you will find. It is a compact, two file package that gets the job done well. I know that much, since it served me well from February 21, 2002 through December 23 of this past year, when it finally died for a reason I still do not know. During that time, I synchronized with his official code based once in November of 2002, after which I forked the code, adding commenting capabilities, a much more standard issue look (attempting to mimic MovableType somewhat) and a few other features.
This is the point at which my interest in blogging would become galvanized. Blogging was only so interesting when you didn't know if people were actually reading the posts. I know Ciaran and Kevin were at least occasional readers, but only because I knew them from elsewhere. It was my first post with commenting support that Christopher left a short comment and I realized I had a reader originating from the blogosphere — maybe I could get into this thing after all!
The Christian Directory Project (OpenMoz/FreeMoz)
Another important thread in this genealogy is the ill-fated FreeMoz project. FreeMoz is key for two reasons — first it is the project that brought me into contact with Ciaran and also some of the lessons in database design that I learned working on it figure into SAFARI later on. Long before my DMOZ-editorship lapsed, I made a post on the editors forums asking if anyone knew of a way to get the DMOZ codebase to create another specialized directory. Ciaran answered and after exploring the options, we decided to write our own replacement. I hacked the basics together in December of 2001, Ciaran added some much needed functionality and we would continue to work on it on-and-off for about a year. The project died, as Antony Flew would say, a death of a thousand qualifications, as we sought to garner support to develop the software needed to create a Christian variant of DMOZ. The impetus for the project was an issue, or I should say, issues with DMOZ, such as DMOZ's listing of X-rated material as well as the simple fact that “FaithMoz” could hopefully leverage the same concept to bring together a directory of Christian sites perhaps even better than DMOZ's, since there would not be as much “noise.”
Like SAFARI, building a whole directory project was a big deal. Hoping to attract developers to create the code-base, which would be useful for many directories, I began talks with Richard M. Stallman (RMS) of the Free Software Foundation about making the software, re-badged FreeMoz by RMS's request, an official GNU Project. We ended up getting bogged down in legal (i.e. avoiding infringement of AOL/Netscape's DMOZ) and editorial freedom issues, and the months we spent on that ended up killing off the momentum of the project. It was my fault for worrying to much about amassing major support, rather than the FSF's fault for worrying about legalities.
Back to SAFARI
In March of 2003, OfB was hacked, thanks to PHP-Nuke's poor security model. Having taken a week of vacation that very week, I resolved to spend the time figuring out a replacement for PHP-Nuke. I became convinced that all of the Nuke-spinoffs had issues, and blogging software simply wasn't quite right for a news site. What was I going to do? I decided it was time to revive SAFARI. However, SAFARI needed to be improved vastly for it to work on OfB. I would need to lose the issue based mentality of the CMS (or, more correctly, relegate it to one of several modes of viewing the content), add commenting, and most importantly, port the whole thing over to a SQL backend instead of the inefficient flat-file database.
I was able to do the last item within about three days, but after my work-vacation ended, I did not have time to finish the project. I also invested some time in fixing parts of PHP-Nuke, so I gave up the idea of bringing back SAFARI, once again. The promise of a really useful version of SAFARI, that I could use somewhere other than just my church's web site, was starting to seem like vaporware.
Over the next year, OfB would be compromised again and, at the same time, I started noticing things that were lacking in my forked version of Ciaran's Journal code. For example, I could not delete or edit posts or comments without editing the database manually (editing was especially tedious because the db was encoded). I also noticed that asisaid was becoming extremely slow and a huge resource hog, since each view of any post required the entire one megabyte database to be processed thoroughly. At some point, I resolved that I would make asisaid a test site for SAFARI, since it was a low traffic site and needed a needed a CMS — once I got SAFARI into a state where it worked satisfactorily here, I could move OfB to it as well.
Over the past year or so, every few weeks I'd take some time (usually a few hours) and start rewriting functions of SAFARI. I integrated the comment code I had written from my old Journal code, finished SQL-support and started implementing a more sensible theme system, similar to the one used by PHP-Nuke. The comment code is essentially SAFARI's only link to Ciaran's code, although it also incorporates some of the ideas from Journal codebase.
Back to Genealogy
If you've been following this byte-wasting toy of mine all the way to this point, you've probably noticed that SAFARI doesn't have a clear genealogy. SAFARI is an older codebase than Journal is, but it is also, in some senses, the decedent of Journal. Likewise, while porting SAFARI to SQL, I incorporated many of the ideas I had first tried out for FreeMoz, which had, conversely, borrowed some ideas from the original SAFARI. Once I complete the project, SAFARI 2 will probably have enough new code that it might be fair to say that it is the grandchild of SAFARI 0.9, Journal and FreeMoz, but it is not a simple linage at all.
Lastly, to believe themselves, when they tell you they will make you immortal by their verses. Thus doing, your name shall flourish in the printers` shops. Thus doing, you shall be of kin to many a poetical preface. Thus doing, you shall be most fair, most rich, most wise, most all; you shall dwell upon superlatives. Thus doing, though you be libertino patre natus, you shall suddenly grow Herculea proles — Sir Philip Sidney
OK, So It'll Be Tomorrow
Well, I had good intentions, but they don't always work out, right? Expect a real post tomorrow… hopefully. Also, I really hope to do the SAFARI upgrade tomorrow. It will include a real, verified RSS feed, properly working cookies, elimination of some display bugs and various other fixes. Hopefully I can get topics working again soon, as well. Plus the blogroll!
Say tuned….
Back Tomorrow
Sorry, but I guess Friday's post will have to become Saturday's post. I spent my “blogging time” working on getting some fixes and improvements to SAFARI ready. Hopefully I'll do an upgrade tomorrow of the site.
Hitting the High Points
Coming Home Again: Dad was discharged this afternoon from Barnes-Jewish St. Peters Hospital with a fairly clean bill of health. He'll need to go back in a few weeks to get his gullbladder removed, probably at BJC sister hospital Missouri Baptist, and they may also do something about his heart condition. An apparently amazing doc at Mo-Bap is looking into the case. The cardiologist that scared my dad at the beginning of the week by saying it was urgent that something be done for the heart, and not the gullbladder, changed his mind yesterday and said they probably didn't have to do anything in that department after all. Continued prayers for him are still needed, he isn't out of this stretch yet, but is progressing!
Music to My Ears: I finished my music reorganization project — a good nighttime project over the past week — which included the replacement of about 200 Ogg Vorbis files with AAC files (for iPod compatibility), the replacement of several dozen 96 kbps MP3 files from 1999 also with AAC files, and the elimination of almost all 128 kbps MP3 files in favor of AAC's as well. That was about 300 tracks to re-rip.
Plus, I ripped some CD's that I had bought for between $2-$7 at a big sale at Family Christian Stores this summer. I picked up Twila Paris' True North, Chris Rice's Smell the Color Nine and Past the Edges, Phillips Craig & Dean's Let My Words Be Few and Streams (a collection featuring, among other things, an excellent song from Sixpence None the Richer). The prices were much better than normal, needless to say. Even now, I barely put a dent into the iPod's hard disk, but at least all of my music will actually be playable and decent sounding now.
Coming topics on asisaid Music will include something on Evanescence. Kevin noted that for some reason he was connecting me with them, but I've never mentioned them on asisaid prior to the Challenge. I want to fix this, so I'll take a look at this interesting band. I'll also be doing one or more posts on Sixpence None the Richer — sort of a delinquent eulogy on this exceptional duo of Leigh Nash and Matt Slocum (and the others that joined and left the band over its history) that dissolved last March. If you aren't familiar with this C.S. Lewis-inspired band, I'll provide a few pointers on how to get a good taste of Sixpence without much effort. I may also do mini-reviews of Michael W. Smith's new Healing Rain and Steven Curtis Chapman's All Things New — both excellent, don't wait for me to recommend them, get them now if you are looking for a new CD or CD's.
Colorless Green Ideas Sleep Furiously: Or maybe they don't. But more quotes and other questions will return to the asisaid Challenge in the coming days. I need to go back and see if anyone answered any of the pending questions and re-tally the score. Then expect to be frazzled, even more so than those sleeping ideas.
Rain
It was a rainy day. Actually, it has been a rainy week. The Missouri River looks like it is nearing its banks, and the Mississippi River is swelling downtown. I wonder if this is a foreboding sign for the spring to come?




