Well, its been a good month and a half, so I should probably update, as if anyone actually reads this.. heh
Anyway, I've shifted gears a little bit as far as my previous post. I will be using the new FileHandler and User modules, however, I am going to take a slighly more simplistic approach than what I had originally planned.
Basically, what I want to do is create a perl-based slash clone that doesn't require a SQL server. They can be a real pain in the arse, and I'm having a terrible time setting it up in Win2K (which, unfortunately, is the OS my computer runs the most).
Therefore, instead of using a database server, all of the DB info will just be contained in flat text files, per usual DP shite. The only difference is that I am trying to keep things as neat as possible, so that it _IS_ possible to convert everything over to a SQL server, pending a stable release of the DP Weblog (codename Chaos) that supports optional SQL. Thats a ways off yet, since Komodo just died and fucked me over out of an hour of coding. Agh.
So, thats my project for the next few months (year?). Slash is a perfectly good weblog, and there is no real reason for me to try and reinvent the wheel, however, I'm doing it anyway.
The simple fact is that Slash is a BITCH to configure and install, and it shouldn't be that way. It should be as simple as unpacking the DPW module in the appropriate directory, and unpacking the chaos directory into /home.
Then it would be just a matter of surfing to yoursite.com/~chaos/cgi-bin/admin.pl and configure stuff, or just plain start making posts.
Anyway, I'll probably never get this all done, and I expect it will take me a long time. Maybe in the meantime I'll find some decent GPL'd code I can reuse in Chaos. We'll see.
Thats all.
-DP
|
Almost a year ago from today, I started working on a set of website administration scripts to make it easier for me to update my website. These scripts performed simple file-management, layout, theming, and user administation scripts. This bundle of tools was collectively dubbed "The DP Suite". The crowning glory of the DP Suite was a fake SSI Parser that could execute directives embedded in raw content. The Parser processes the input, looks for the directives, and when it finds one, it executes the respective subroutine, feeding it arguments as dictated by the directive.
At first, the directives were in a very cryptic format, and were mostly used for archiving and retrevial of news posts. After a couple _very_ minor revisions, directives could easily be embedded directly in HTML.
The DP Suite did a fine job for my website, however, I could tell that eventually I would need to update the DP Suite. With the Parser's ability to behave as a SSI gateway, this opened a lot of doors. It was possible (and still is) to write a subroutine for say, a counter, and be able to embed the counter in any page in one line of text: the fake SSI directive, and any required parameters.
Due to the sheer number of things that would be handy to embed this way, dpw (dp widgets) was born. This was just an add-on library full of SSI directive subs,
which were deeply intertwined with the Parser itself. The DP Suite Parser dpw rocked ass.
Unforunately, dpw itself was pretty much a cheap hack, and the Parser was far from bulletproof. It did one thing, and did it nicely enough. Try to get it to do much else, and it dies. The code was admittedly pretty bloated. I decided it was time for a cleanup. The resulting code offered no additional features, just fixed some of the hackiness and code bloat. This release was known as dpw-lib proper.
But, as often times happens, the development cycle is never over when you think it is. The main gripe I have with dpw-lib, is that, well, its not very organized, and its probably not a good idea to use it on a production site, sheerly for security's concern. Since dpw-lib's release, I've actually taken the time to understand OOP and perl module programming, and dpw-lib is one of those projects that just screams to be modularized.
Basically that brings us to the present. At the moment, the DPW:: package consists of three separate and distinct modules:
-FileHandler.pm
Contains all things filish. Offers methods for loading, saving, appending, file creation and deleting, ownership and group editing, permission control, parsing, etc. This is the only module (currently) that is dependant on the Operating system. After I am finished with the current revision of FileHandler, I will go back and create submodules, such as FileHandler::Win32,
FileHandler::Unix, etc, to deal with OS specifics, and then just have FileHandler load the appropriate one by detecting the OS.
-NewsHandler.pm
Contains all methods needed to submit, edit, sort, view, archive, whatever, news items and comments (ala-slashcode). This module will probably by far take me the longest.
-User.pm
Fairly small module. Contains methods for loading user prefs, parsing those prefs, and shoving it all in a User object. (very hand for theming and other stuff... i.e.- $theme = $user->config("theme");
I also plan on adding a UI module that can load templates, themes, etc.
Once the DPW module is complete (or at least in beta, I should say), I am planning on releasing a much needed upgrade to the DP Suite's site administration scripts, which of course, is what the DPW module is for in the first place. The aim of the upgrade is to eliminate the need to telnet to your webserver for well, pretty much anything.
The user authentication will use the Averist authentication module, which will be the only foriegn code.
Whats nice about the new DPW module and admin tools is that they should be as cross-platform as it gets. Want to use mySQL instead of flat files? No problem, tweak the config, bam, FileHandler::new creates a DB object instead of a file object, and cues up FileHandler::mySQL for the ohject methods, instead of using the default file object methods in FileHandler. Easy. Perl modules really add a lot of flexibility to your code, and I am pretty damned glad I learned how to take advantage of it. I will offer the DPW module for download as soon as I feel that I have a semi-working module that is nicely written. (Well, I think this is the case at present, but there are too many things I want to add before a initial release).
Stay Tuned.
|
Just testing out the new CSS driven layout.
As you can see, it is pretty cool, and even better because some of the CSS
Commands are driven by HTML comment statements.
These are interpreted and executed by Perl. Now I should make myself a nice JavaSkript powered HTML editor to make use of the HTML comment commands I use to generate some of the more repetitive HTML... that would be nice... But, probably more trouble than its worth
And to the right you'll notice the Navbar.. just a "window" with links for X-Town.. it really doesn't fit on this page, because this page isn't specifically geared toward X-Town, nor does it match this page's color scheme... but I figured what the heck, its kinda cool. If you hit the minimize button on it, it will do just that. If you hit the X button on it, it'll close.. pretty neat eh? Though this could probably be implemented in DHTML, its not. Its just good old fashioned perl ;-)
|
stuff
|