Codebase Version 2.0.0
posted on october 1, 2004, tag: site
Update: All feeds should work again now. I've temporarily removed the smart HTTP status checking for feeds, so they will be downloaded no matter what each time. This is so people get new versions of feeds that have changed but of which the content has not. I will turn on status checking again in a few days.
It's been a long time since I've updated this site, but for good reason. The past three weeks I've spent the time I would be updating working on the major rewrite of this site's codebase. This evening I made the new code live, and this site is now being served by version 2.0.0 of my codebase.
What's changed? Everything. At least behind the scenes. I rewrote the code completely. I started from scratch, and now I've got a much smarter, much faster, much smaller codebase. I cut the amount of code at least in half, and this new version is about 6-10 times faster than the last. It's also written to take advantage of PHP5's smarter class functionality and is all OOP.
From your perspective, a few important things have changed. The most noticeable is that you must now be registered with TypeKey to post a comment to this site. Recent problems with people commenting rude or obnoxious things finally pushed me to require registration. There are several reasons I chose TypeKey:
- It's free.
- It's popular—because Moveable Type now includes support for TypeKey, you'll most likely already have an account and if you don't, you'll probably want one in the future anyway.
- It was a challenge to hook into the TK API, and I like a challenge.
Starting today, you'll only be able to post a comment with a TypeKey registration. I honestly don't think this is too much to ask for. Sign-up takes a few seconds, and it's simple as pie. The first time you want to comment you'll be asked to log in, which will take you to the TypeKey site, then you'll be sent back here to comment and you'll be remembered in the future until you log out. Hopefully this will make the recent issues with jerky comments go away.
A bonus to requiring registration is that I can add new comment features. The first one is the ability to delete your comments. Since now I know who you are, I can give you the option to delete your comments if you wish. I still retain a copy of them for archival purposes, but they will disappear from the site (you'll see a note that the author deleted the comment). I shameless took this idea from Blogger because I liked it.
Another new feature I've added is a Recent Comments section. This area shows the last ten comments posted to the site and you can subscribe to its feed in your newsreader to be updated whenever a new comment is posted. This feature is primarily for people like Ellie who apparently can't get live without seeing recent comments. I'll admit it, though—I like it.
There have been some changes to RSS and Atom feeds, mostly in an effort to make them smarter and slimmer. You may notice all of my feeds appearing as new in your newsreader because of it. Sorry about that. It should only happen once, if at all.
I plan on releasing the source of my site in the near future. I haven't set specifics yet, but it is going to happen. After I make sure all the bugs are worked out and finish commenting all the classes and such, I plan to release the whole source for a small fee (still undecided). There seem to be enough people interested in this, so I'm going to do it.
Many people deserve thanks in helping me finish this new version. First and foremost is Courtney Tompos, who literally taught me PHP years ago, and who wrote nearly all the regex functions in action on the site. He also helped a lot with class structure and generally gave me smart ideas. Andre Torrez was essential in helping me get TypeKey implementation working. I begged him for help and, like a true gentlemen, he gave it to me. Also helpful: Anil Dash, for taking my bug reports and being excited that I was using TypeKey and Mathew Hoy for being a nice guy and giving me feedback.
Comments
There are 17 comments, comments are closed
valdok on 10/02/2004:
Sounds, acts, and looks spiffy. Mmmmmm... new code.
Kevin Marsh on 10/02/2004:
Looking good! What was that I remember about open source? :)
iamascientist on 10/02/2004:
cool
Lashlar on 10/02/2004:
Looks beautiful. Well, actually, the appearance doesn't seem to have changed, but we'll take you at your word for the beautiful, clean and revamped code base. :-)
And integrated with TypeKey? Amazing.
Brian Fox on 10/03/2004:
Pretty Cool indeed... I've wanted to enable 'typekey' but I wondered if my readers would go through the steps to sign up for it... I obviously did...and it gives you alot more control... Good times.
Walt Dickinson on 10/03/2004:
Nice work Garrett. =-) Very cool.
Garrett on 10/03/2004:
Thanks for all the feedback, everyone. Now I just need to get around to writing the next part in the "How This Site Works" series.
Elliott Pogue on 10/04/2004:
Very nice job, Garrett! =D
arthaus on 10/04/2004:
As always, GREAT work!!
As a .php junkie, I look forward your upcoming insights. Great success to you...
Ellie on 10/04/2004:
Nice... I can go on living happily.
Jesper on 10/05/2004:
Lovely.
Greg on 10/09/2004:
Garrett, I'm very curious if requiring Typekey is really going to cut down on the number of asshat comments. Have you seen anything to suggest taking that step is going to work?
Shelby LeeAnne Murray on 10/09/2004:
Please email me off-site. garrett at maniacalrage dot net. This is not really the appropriate place to have this conversation. Thanks! —Ed
Garrett on 10/09/2004:
Greg—I'm not certain it will be fool-proof, but here's my reasoning on why it will help:
- People must register their TypeKey account with a valid email address.
- If I block their TypeKey account from posting, they must then use ANOTHER valid email address to sign up for a new account to post again.
- 2 is a pain in the ass and, I would assume, not worth the trouble just to post asshat comments.
This is really more of an experiment, I guess. At least for now. We'll see after a few months.
ak on 10/09/2004:
i'd really love to see your code. i've programmed my own system, which by the sound of it is similar to your own. it's always nice to see how others have gone about doing it though. do you ever plan to release it, or would you give out copies? or would that be bad?
Naikrovek on 10/13/2004:
I'd also like to see the code, because i'm assuming there's an advantage to using your code over other, more common publishing systems.
is there any specific reason you don't use something like moveable type or wordpress or textpattern? i'd like to see a publishing system that used XML & XSLT instead of HTML & CSS for once, and i seem to remember reading somewhere here that your site using nothing but XML & XSLT.
Garrett on 10/15/2004:
Well, the advantage for me is clear—it allows me to be in full control of my website. I add custom sections, create new features, etc, etc. The advantage for you is possibly the same, assuming you continued to add on to what I've done for yourself.
I used MT for almost 2 years. I like MT, it works well. But I go stir-crazy every now and then and I want to add something different or completely change things and MT made that difficult. I don't enjoy Perl, so making massive system-level changes was a real pain. I recently tried MT 3.1's PHP support and was excited—it's a nice addition. It's a bit slow but it's easy to customize (it uses Smarty, which I am already familiar with).
My system uses MySQL for data storage, PHP to build XML and XSL to transform said XML into whatever is necessary (in this case, XHTML, RSS or ATOM).