This (here) is the place where I will stand...

So here we go, eh?

I've been saying for quite some time that I planned on writing my own CMS.  I think at the time, everyone was kind enough to say that yeah, I could probably do it—with the unspoken caveat that I had a lot yet to learn before I'd be able to complete such a thing.

Let's just say that in the meantime, I've been studying.Many months ago, I confessed to a friend that in my dawdling moments, I'd sketched out the basic idea for a database that would work well as a content management system for a site like cat.net.  He said, so why not follow up on it and write it yourself?

I didn't have a good answer.  Mostly because I had a pretty good idea of how arduous it would be (hi, Noah!) and that I wasn't entirely certain of my capability to finish such a thing.

So, in my typical practical Amy-ness, I made a list of everything that I'd need to know to build such a thing, and set about coming up with little projects I could do for cat.net that would teach me the concepts and allow me to build up a code base.  I built a hodgepodge commenting system for one site.  I began to do more advanced cookie handling.  I wrote little extensions to Greymatter that taught me what I needed to plan for in my next CMS.  I learned how to integrate PHP, mySQL, and forms.

About a week ago, I realized I was ready.  I had begun to migrate a good chunk of 'cat.net to a database system, and it was time to get down to business and start writing the real thing.  No more slinking around and working on 'little' projects.

I spent a good while on the phone with Will last night, going over my schema and making sure that everything was bulletproof.

I started on the pseudocode today.  Jeff suggested something when I wrote the portal code for wondergeeks.net: write very detailed pseudocode and then go back through, a function at a time.  Then, as you write the functions and the logic, turn the pseudocode into your comments.

It didn't feel like I got very far today, but when I look back, I realize that I have the pseudocode for the main page, the system-wide navigation, the IP-banning page and the error page basically done—in addition to writing up that tasty little international-character string converter that I've been looking forward to having for some time.  I've got plenty of pages to tackle tomorrow; at the rate I'm going, I'll be surprised if I'm writing real code before the end of the week.

I've had to beg for help on the import scripts.  I'm pretty weak with regexes even on the best of days, so I'm thinking that some bribery spread equally amongst Gareth, Will, and Brad should hopefully do the trick.

The rest:  the php, the db setup, the interface…it's all up to me.  It's both frightening and inspiring.  I know what I'm writing will never, ever be simple enough to go mainstream (c'mon, php and databases?  people are gonna run—as well they should!).  But the satisfaction of logging in to a system that I wrote and designed, and having my site do exactly what I want?

It's going to be worth every moment.  Every headache.  Every line.

I caught myself singing along with REM today.  I tossed in Automatic For The People and the line from 'Sidewinder' caught me. 

This is as good a place to stand as any.

Comments

Bonne chance.

"You can't lay a patch by computer design / It's just a lot of stupid, stupid signs." You go, girl. =)

It's all your fault, Noah dearie. :)

I swear Jeff is completely right. If you write well detailed pseudocode, you will make up hours extra time saved later when writing the code. It's the only thing that's saving me currently with some of my projects at work.