Published on 2006-01-31 by John Collins. Please follow me on Twitter for more:
Well as you can see another month has gone by, and you are still not looking at the new version of this website :-( Just to show that I am actually working on it, I decided I would give you a low-down on some of the features that the new site will have, as well as some technical details.
Forum: the new version will feature a user forum. I hope that people will get a lot of usage out of this, especially in terms of their technical issues. Basically I would rather respond to people's technical queries via the forum rather than via e-mail, so that other people can see the questions and replies, which will hopefully benefit everyone.
Article comments: members of the site (those with forum accounts) will also be able to post additional information and comments related to articles on this website at the bottom of the actual articles in question.
A whole new publishing system: a brand new publishing system is under development for the next version of this site, based on Markdown and GeSHi. The use of these libraries, along with the underlying model-view-controller (MVC) system that I am building for the site, will make publishing of new material and editing of existing articles a breeze.
A new front-end: apart from a completely new back-end, the site will also get a new front-end, in fact four different ones based on the four seasons of the year. Yep you guessed it; they will change automatically with the passing of the seasons.
More medium-term aims for the site are as follows:
Print friendly & PDF versions: I aim to make printing and saving of articles, or indeed user-submitted pages, as easy as possible.
RSS feed: I intend to make this news feed available via XML for your favourite RSS reader, which will also encourage me to update it more often ;-)
User preferences: I aim to make the front-end of the site as configurable as possible. Settings such as default font size, CSS colour schemes (four seasons), and default target screen resolution for the scalable interface (yes, it's staying!), will be opened up to the user of the site over time.
For all of you gear-heads out there, here are some details on the technical implementation of the site. All of this new functionality is being built from scratch, by me, so as you can imagine it is taking a lot of time as it is being built on a part-time basis. I hope to write about some of areas right here on this website in the months ahead, after go-live:
Fully OO framework (MVC): the site will be built on a brand new MVC framework, which I am building for this project and others. Object persistence is handled at the model level using the data access object (DAO) pattern. Generic HTML views are provided as scaffolding, which may be extended to make custom views, e.g. an XML view.
Publishing System with Caching: the HTML for each article object is auto-generated using a combination of Markdown (for normal content) and GeSHi (for displaying colour-highlighted source code). The resulting HTML is cached in a .html file for later retrieval to improve performance.
Scalable Interface: the resolution-independent design approach present on this site since version 3 will remain, and will be improved by including image rescaling and caching using GD.
Advanced object persistence: object mapping is handled automatically, while tables for objects are generated automatically in the database, based on the PHP classes themselves, not XML configuration files! Object locking is also automatically handled via an optimistic locking mechanism that maintains a version number on each object/row in the database table.
Advanced controller transactions: a powerful transaction engine is being built into the framework, which allows complex multi-page, multi-path transactions that use PHP sessions to store objects, and carry out database transactions via the unit of work pattern.
Front-end widgets: widgets are small, front-end components that can be reused throughout an application to allow consistency of design, and save you work! V.5 will be full of widgets, for example for form fields (with built-in client-side validation) and for buttons (with built-in mouse over effects).
As you can see, the scope of the design for V.5 is broad and ambitious, which has caused the release to slip. I am adamant that I will not release it to the Net until everything is thoroughly tested, including unit testing, so I am more concerned about getting it right rather than getting it done. Will keep you posted, sorry once again for the lack of response on e-mails and thanks for reading this far.
Updated 2020 : note that the above post is out-of-date, given this post was originally published in 2006, but is left here for archival purposes.