---- start old blog posting ----
09/07/2001 "Welcome to my Weblog"
Okay, I have Greymatter running on my Hypermart account. I've been testing it on my Win32 laptop and I simply copied to my Hypermart account the gm-templates.cgi file that contain the template changes I made on my laptop.
I will use my Daze blog to test blogging, Greymatter, and to practice my writing. Nothing to deep or personal will be written here. Just simple everyday descriptions of what I've been up to as well as the occasional essay on a topic of interest.
In 2001, I've become big fan of weblogs or blogs. I discovered Greymatter several weeks ago and I'm just now playing around with it. It's a really cool piece of software. It has a very nice web interface to submit blog entries such as this one and to control the layout of every aspect of the site.
I still have more template changes to make for the other pages, but I have this main page setup okay for now. I will probably add items to the right column as I continue working with this.
As you can tell, it's not going to be too fancy. I'm not a graphics or designer guy. I prefer doing server-side programming against database or ldap servers and munging through ascii files.
Perl has definitely become my favorite language and I've worked with several over the years including C, TCL and Java.
CPAN is one of the huge plusses for Perl. There hundreds of modules already written for Perl to handle just about any task.
Anyway, Greymatter is the issue here. It's written in Perl and runs fine on Win32 or on Nix boxes. It does not use a database. It maintains its data in pipe-delimited ascii files and then it rebuilds or recreates the html files when new entries are added or when you tell it to rebuild the files. Making a design change to one of templates would require a rebuild so that the blog site reflects the change.
This site is mainly for testing and getting ideas for my own blog app. Yeah, I know there are several Slashdot-like software apps freely available and I plan to look at least a couple of them.
Drupal which powers Drop.org is a blog app written in PHP.
Scoop which powers kuro5hin.org is Slash-like blog app written in Perl.
I'm not planning on installing Slashcode. I've read to many horror stories about the Slashcode being big and hairy and hard to get running and it is slow too.
I'm sure there are those that have installed it without too much hassle and are probably having excellent results with it and that's great. I want to look at the two above first.
Still, I plan to create my own blog because I only want certain features, it will not be hard to write, it will be fun and I feel more comfortable working with my own Perl code than someone else's.
I plan to use a templating system to control the site and so far I've looked at HTML::Template and I really like it. It has a definite divide between application logic and presentation or display. It does not allow Perl code to be executed in the same page that contains HTML the way HTML::Mason, Apache::ASP and EmbPerl do.
PHP, Java Server Pages, Active Server Pages, Cold Fusion Markup are all excellent web programming languages that allow one to code programming logic within HTML. Cold Fusion is a little different, but still, I think it would be safe to say that none of these options provide a clean divide between design and logic.
I programmed with an open-sourced Java application server called Enhydra for a while last year and it provided a little different programming model for creating web-based applications due to the way it separated the design from the programming logic and I liked that aspect of it.
I plan to look at the other Perl templating systems mentioned above along with the Perl module called CGI::FastTemplate which does simple variable substitution on its templates.
I've not read good things about Mason's performance so I may not even consider it. I'm interested in testing Apache::ASP because it uses the PerlScript syntax that is used with ActiveState's Perl to do Active Server Pages programming on Windows. I've done a good bit of ASP programming in PerlScript with IIS 5.0 already so the learning curve for Apache::ASP would be very short.
EmbPerl seems popular and it's performance is good so I will test it out as well. Apache::ASP's peformance also seems to rate well.
Anyway, I like the idea of keeping as much logic or programming code out of the HTML files which is why for ASP programming, I only have function calls in the HTML files and put all the grunt work in separate files or modules. Still, I create to much HTML syntax in my library of subroutines and that's why I'm favoring HTML::Template right now.
HTML::Template is simple to learn and use and it has some basic looping and if-then logic in it's tags that can be used in the HTML files, but I don't do as much HTML coding within the Perl logic.
I need more time with the various templating systems. Here's recent article at Perl.com that does a good job discussing most of the templating systems available for Perl.
I will hopefully begin development of my blog app within the next week and have the features I want completed within a month and have one of my sites up using the software in October.
I will get some ideas from Greymatter, Scoop and Drupal. My feature list or requirements are basic. Mainly article submission and discussion on entries is the primary feature of a blog. I want a system that's very easy to maintain via the templates and a web-based admin interface. Greymatters web-admin is really nice.
I want the blog to have polls or small survey capabilities. It should allow users to create their own account. And there are probably a couple of other features, but that's it. When I go to Slashdot, I read the articles and the comments. I'm not sure what makes the source code for these blog apps be so big. I must be only using 5% of Slashdot's features.
The one I create will use a database, but I will keep the SQL simple enough so it works with other databases and not just MySQL. Obviously for peformance gains, putting as much of the SQL processing in the database via stored functions and procedures is preferred, but that's not what I will be doing initially. I don't think the site or sites I create using my software will get that much traffic, however, I do plan to test programming stored procedures with PostgreSQL.
MySQL does not support an internal programming language for stored procedures, nor row-level locking, nor references which is odd. NuSphere has added row-level locking with their new Gemini table type, but you have to pay for that.
A MySQL vs PostgreSQL debate is best left for another time. All I know is that some popular sites such as Slashdot and MP3.com have been created with MySQL as their backend database. PostgreSQL, however, is a lot close to Oracle or Microsoft SQL Server than MySQL is.
If I was developing a project that was transaction oriented then PostgreSQL would be my choice. For a blog app that is mostly database reads, then MySQL is fine. I hope it is since most ISPs only offer MySQL.
Enough for now.
---- end old blog posting ----