Dave Bullock / eecue

photographer, director of engineering: crowdrise, photojournalist, hacker, nerd, geek, human

Blog

Major changes / dynamony

So as you may or may not know, I have been recoding slacker from scratch. Slacker is the software that, along with phpreactor, powers all my sites including this one and junglescene. The whole thing is written in procedural php and the new rewrite which I have named dynamony, is completely object oriented. So far I have rewritten nearly every component of the backend system: the db abstraction class; the "slacker" base class which is a class that allows one to add/edit/update/delete from a database and provides the forms to do so along with limiting, sorting, searching by words or date; the blog class; the album class in which i used a much better tree algorithm that avoids the memory/processor intensive recursion i had used in the past; the ACL class; using Pear::Log for all error and debug logging; a comment class; a category class; a frontend controller system that loads requested classes after checking the ACLs; the signup class; image output class; the login/logout classes; the image class; the gallery remote class; the xml_rpc class; the dynamony class which allows me to create new classes within the web application instead of through a separate website; and today I created the forum class where I have seen my greatest decrease in load time nearly 10x faster than how the forums currently load (i tested it with several hundred thousand posts from junglescene.com)

The whole thing is really going to be leaps and bounds better than what I have now and going over my old code is really embarrassing. The amount of reused code was insane and made upkeep nearly impossible for one site let alone the dozens of sites that slacker powers. So far all the data is completely separated from the html/xml/csv that it will parsed using... I just use arrays of data and print_r() as my current output method which works great for prototyping. I have decided to completely program the backend before I even start any of the output classes. One important thing to me is to create rewrite rules and functions that will take the old links to content and forward them to the new content as not to break the thousands of links out there... It's a big project but once it is all done it will make my life so much easier.