About This Site
This site uses a software package called Plone. Plone is a Content Management System a Zope product (i.e. a software package) which runs on top of another Zope product called CMF. Most of this and the other Zope products are written in Python. However, some portions are Python extensions which are coded in C for performance or security reasons.
The site is behind a Apache2 frontend which handles URL rewriting for things such as virtual hosts and redirects to other applications (such as MRTG) embedded in the various URL spaces served by this server.
Why Plone, Zope and CMF?
Well, if you read on, you will see that I have looked at using a number of different packages for the site. When I started looking at revising a gaming clan web site from the old site which consisted of a bunch of HTML files stored on disk (with a few PHP scripts thrown in for good measure), I created a list of goals which I hoped to address. Briefly, what I came up with was the following:
- Anything software used for the web site should not cost me anything,
and the source should be provided so that I can fix any bugs I find
or make any changes to customize the site.
I am very much against the way Micro$oft works, charging $100 or more for software with more bugs and crap than a dairy or egg farm! As a result, I am very much in favor of Open Source, though as a professional programmer, I also realize that there is are several major flaws in the model:
To see more about this, see Observations about Open Source.
- There should be provisions for members who have to register, and who
can be given incrementally greater access depending on certain
criteria. Anonymous users should be able to see much of the site,
but not all of it. Registered users gain more and more access, and
some registered users have administrative access.
- Required goal: Membership should be independent of operating system accounts on the machine.
- Ideal goal: The users should require either administrative approval to register, or the access gained through registration should not be that much greater than being an anonymous user.
- There should be forums in which members can take part in discussions. Some of these discussions should require incrementally greater access, permitting the discussion of matters by just normal members, or by just the a small selected group of members.
- There should be provisions for downloads.
Where can I find out more about Plone, Zope and CMF?
There are a number of places you can find out more about this software. First, you can check out the web sites for Zope, and the CMF and Plone products which help create this site. There, you can find documentation such as:
I would recommend anyone considering creating content for a site such as this start by reading "The Plone Book", which will tell you about things such as structured text. Then, you may want to progress on to "The Zope Book" to fill in some of the gaps which you may have, especially if you are considering the possibility of writing modules. However, much of that same information, be it simple info on structured text or how to write a complex Zope product is also on the web. So if you are looking at putting together simple pages like this, you can get most of what you want that way. (And yes, you can still create pages in HTML).
Secondly, you can interact with others to get assistance via mailing lists and see how folks have done things at recipe websites. There is even an Online chat where you can get advice and help.
Finally, you can look at other sites which are running this software. There is a list of plone sites which has sites which show just what this software can really do!
Why Python?
Well, I wish it had been written in some other language, since I have always found Python to be rather strange for a number of reasons, including using whitespace instead of keywords (e.g. "BEGIN" and "END") or special characters (e.g. "{" and "}") for nesting of coding blocks. Then there is the fact that even though Python can be byte compiled, it will always suffer the performance problems of any intrepreted language. But, for some strange reason, people always consider things written in interpreted languages to be more customizable, and since that is what was chozen for Zope, that is what this site uses.
Why not phpNuke?
Well, I tried phpNuke, and was not impressed with it at all! I started working with phpNuke 7.0, while awaiting the delayed release of phpNuke 7.1. Looking at a number of sites using phpNuke, it seems like a nice system on the surface. Out of the box, it had membership management with profiles, the ability to have articles and news items, provided for what was supposedly integrated chat forums, and even had the means to provide for downloads and web links which could be sorted into categories. It also provided for private messages and surveys/polls. However, that was on the surface.
Beneath the surface, I found a package which required manual bug fixes to get the 7.0 release to work. Without these code changes, PHP would not even run the scripts, as there were numerous undefined variables, including the attempt to access PHP global variables by names which had been removed since PHP4 first came out. Then, there is the fact that I could select skins where I got unreadable pages because of things like "black text on a black background" in some of the "integrated" products, such as phpBB. And then there is the fact that for each and every page displayed, there are around 300 to 500 warnings output into the log, because of all the stupid coding errors. And this makes an already slow package even slower!
Now, after over twenty years of professional programming, I know that a software package with a version such as 7.0 should be fairly mature. But I also know that for a major release delta (e.g. from 6.x to 7.0), there are enough changes that you can end up with quite a few bug . So, I figured 7.0 had been perfect place for them to have started with support for PHP4 and perhaps change things so that phpBB was not as well integrated, and I waited for the 7.1 release. But, here is something which probably rubs me the wrong way the most. The way phpNuke is released, they go through beta testing, and then make the "release" available to what they term "club subscribers". At the time, after alpha and beta testing, a release was made available for a period of about a month to the subscribers who paid the $10/month fee, and then released to the public. However, the 7.1 release was so buggy that it had to be re-released to subscribers. From what I saw when it finally became publically available, this has to be the biggest scam this side of the Ponzi scheme. When I finally was able to download the new release, I found that I had to make the same exact changes, and the other bugs still remained. So, seeing that the 7.1 release was the same peice of bullshit that 7.0 was, I decided to go looking for other solutions.
BTW... things have changed for the subscription policy and releases. The subscription now costs $100/yr, no doubt because folks joined just long enough to download one cow dropping called a release, and then did not renew. Then, on top of this, the public releases are now one release behindthe subscription release. So, when they release 7.5 to the subscribers, the public will get access to download 7.4. NO WAY!!!
In parting, while phpNuke has a couple of nice features, such as the ability to require administrator approval of subscriptions, the use of "modules", and several integrated products like forums, it still remains a stinky, steaming peace of cow-patty software! As such, I have written it off as something written by folks who think they are computer programmers, but who have absolutely no real concept of programming.
How about PostNuke and other packages?
Well, PostNuke is an offshoot of phpNuke. However, many features which are a part of the base phpNuke install are modules which are separately downloaded for PostNuke. But good luck finding the module. Sure, they have a modules section on the web site, but I spent several days trying to find just a small number of modules. Then, there is the lack of what I would call true documentation. It has gotten better, but...
Server hardware?
You ask about server hardware? Well, this system is running on a system which has the following hardware:
- Motherboard: Gigabyte GA7DXE
- CPU: AMD Athlon 1700 (1333MHz)
- RAM: 1GB of PC2100 RAM
- System Disk: Maxtor 91303D6
- Application/Data Disk: Western Digital WD800JB
Customizations to Zope/Plone?
Outside of the content, the customizations to this site are currently very few, but will soon be growing. They include:
- Replacing /portal_skins/plone_forms/join_form with my customized version, which includes my AUP.
- Replacing /portal_skins/plone_images/logo.jpg with my own custom logo.
- Placing the above customizations, along with my customized base properties, CSS and other skin features into a filesystem directory.