Site Engine 2 was a content management and discussion system for news and feature web sites. Site Engine 2 is a rewrite of Site Engine to be more XMLish. Site Engine was a rewrite of our Perl discussion software SF7 in Scheme. SF7 was a rewrite of SF6. SF6 was a rewrite of... OK, do you get the idea? SE2 is a piece of software with lots of experience (and lots of mistakes made in the past, hence all the rewrites). This one's for keeps, so we're taking the time to Do The Right Thing.
SE2 was built on top of open standards and normal internet protocols. Some of the standards we're harnessing at the moment include:
- XML: The data moves around inside the programs in a form similar to XML DOM trees and transformations are used to turn that into xhtml (or whatever other output formats we need). For now, the xhtml output then uses templates with processing instructions in them to do the final layout, to make it easier for the GUI designer types who write the templates, but that can be changed easily if you're not one of those silly D*wers.
- RSS: This is a popular file format for headline syndication and SE2 reads and writes it. So, you can include headlines from other sites in your pages and make your headlines available for others to link to.
- SQL: We hold article and user data in a freely available SQL database. It should be easy enough to use a different database or flat files instead, but we've not written it yet.
- NNTP: The discussions are held in newsgroups with the X-URL header, which makes it easier for admins and other heavy users to follow the discussions. Again, it should be easy enough to use another storage method (and provide an NNTP interface to it), but we've not written it yet.
- CGI: SE2 runs in any web server which supports the PATH_INFO CGI variable. That's nearly all of them.
- Scheme: The programming language is an IEEE standard too, although we use a slightly extended implementation. A portable SE2 is a long-term goal, so you can compile it, etc, but it's not done yet. Our programmers are active in standardising Scheme's database interfaces and packaging the Scheme we use for Debian.
There's no neatly packaged downloads any more.