An install script and a master plan
Geof likes to remind me that all journeys begin with a single step.
This journey: I began coding on Quarto today. The pseudocode is essentially done, Gareth has been kind enough to write a conversion script, and my database schema looks about as final as it's going to get. In other words, I know what I've gotta do; now's the time to sit down and just start writing the blasted thing.Today's single step was writing the installation script. It wasn't terribly difficult, but it did take a little longer than I thought it would. At its most basic, these three pages are simple PHP scripts that issue commands to a database. They create the tables that Quarto needs, set up a default site, and set up a default user…named Tenzing.
(Call it my apology to the needy 12-pound kitty who is none too sure that he approves of the time I spend on the computer. I figure the least I can do is spread his name around a little bit.)
I'm pretty glad to finally get started on this project. I've been chomping at the bit for the past week or so, thinking I was ready to go and that I should start the next day. I sat down two days ago and took a long, hard look at my prep work.
"If it's essentially unchanged by Wednesday," I thought, "I'll start coding then."
In the meantime, I had one change yesterday, and one addition today. Minor stuff. This morning, when I began to look at the code, I knew it was time to get started.
It turned out to be not quite so difficult as I'd expected. As expected, I went back to my database-manipulation code I wrote to maintain my external pages on cat.net, and found that a good chunk of it applied in this case. I adapted it, spruced up the error-checking, and a few hours later…voilà, an installation script.
Next up will be the actual login script. Creating it is not difficult, but locking it down and making it bulletproof is another matter altogether. I will end up spending a good deal of time on user authentication, and the navigation bar that will run across the top of every admin page. Do these two correctly—and securely—and the skeleton for the entire admin section will be sound. Each page of the admin interface can then be developed mostly independently of all the others (there are exceptions, of course).
Finishing those two bits will be a serious, significant milestone. Until then…I've got an install script, and a devious little master plan, and a twelve-pound kitty who doesn't understand anything about install scripts—and who just really wants to be cuddled.