Site hosted by Build your free website today!

Site Map

Navigate Software
Main Software Page
EZ-AV Tools for Unix

This Page

Lovely Counter

free hit counter
(Reset from about 10,000 in April 2005 by a crash)


This is the page for mmss, a web content management framework I've been writing recently for use with Linux and other Unices. What, another one, you ask? There's always thousands of the damned things all over the front page of!.

Well, I needed to have one for generating web pages for serving from static web servers- in other words, those sites where you don't have the luxury of CGI, PHP, or other server-side scripting capabilities. Such packages are rather more thin on the ground.(Update: Since writing this, I found that Angelfire had CGI services available for payed accounts, and I ended up getting one. Still, I feel this is a useful system for page generation, and I'm continuing to use it, so there)

Please note that mmss is never going to be newbie-friendly or idiot-proof. It's pretty basic, and has sharp edges... but it does make life quite a lot easier if you know how to use it! This site was generated using it, for example. I'm quite happy with it (you might have more exacting standards, of course). (OK, I was happy with it about a year and a half ago. I should be happy with it again if I eventually finish the current, horribly overdue version). It is generally aimed at other geeks, and users who are comfortable with command-line interfaces (and ideally a bit of programming).

No, I have no interest in trying to make it support Windows - if it works there, great; if not, sorry, my time is precious. If it doesn't work natively with Windows, you might find it works with the Cygwin or MinGW32 packages, but don't ask me to explain those!! I have little experience of them.

The package is finally available to download from this page, but though it's functional, it's not quite ready for public consumption- various details are specific to my own site, and some configuration handling is very gnarly. Things are improving, however.

Having tested it properly with my site, I know the newer features seem to work as they should, and the small unnamed program I created to extract details from configuration files works well enough for mmss's uses- so you don't have to hand-edit the various scripts to change the page colours, or what server you're hosted on. It could certainly be worse.


Tuesday 13th September, 2005
Ok, so actually I'm spending much of the time since I said that on simply tidying up the project- cleaning away the obsoleted bits, and documenting the new bits I'd since forgotten the details of. Don't intend to spend too much time on that ATM though, so should have some tools started soon. Something to convert the old layout files etc to config files is high on the list of priorities. Also a new command to run MMSS with that would wrap "make" in such a way as to allow the Makefile to be stored in some system-wide directory away from the document tree.

Monday 12th September, 2005
Well it's hard to deny that next to nothing has been done to MMSS this year. But this may be about to change, fingers crossed.

After going over the difficulties of the GUI editor I had intended for MMSS (or Clipcode in general really), the thought soon occurred to me that in fact I had no other programs yet depending on Clipcode, but the new version of MMSS depended on it so much that it was being utterly held up by the dependency, and that it would therefore make more sense for the moment to just forget about a generic editor that can edit any sort of Clipcode configuration file (that would also have to be flexible and sophisticated enough to be made to support all the possible tasks that could be needed for MMSS, which would almost certainly demand that the editor support a small programming language- beyond the fact that the thing would need to be configurable itself as I'd realised all those months ago).

Instead, the plan is now to simply produce a few small CLI tools to support the sorts of functions relevant to working on an MMSS-based site, and a couple more primitive commands similar in approach to the clipcode and liststring commands that give generic-but-very-raw access to the config files. As such, it should be possible for me to get on with what I need MMSS for, and it'd be possible to use all those parts to put together new tools to do whatever other tasks turned up. This would be in keeping with the ethos of MMSS being a system for geeks and hackers and other such types. Well it is. Ok, currently it's a system for me because it's in such bad shape, but you get the point.

And at least now, there should be very very few design questions remaining. I should be able to just decide on a few utilities, and if they turn out to be not quite what was appropriate, throw them away and make other ones instead. There is no point in trying to design a program that tries to be all things to all men if it then never gets made at all. I might go back to trying to make the generic editor for clipcode some time in future after the tools required for MMSS have been made; then there'd be less hurry and I'd at least have a better idea of what sorts of things would be useful features for it. But I need MMSS to be properly working now as my site depends on it!

Wednesday 23rd March, 2005
I got the majority of the new HTML-outputting code nailed in December, and then wound up sort of "out of steam" when it came to the matter of making the GUI interface to the config files. I kept thinking to myself, "This is stupid Tom, get the damn thing done...", but the question of how to make the GUI deal with some of the values of the config files being encoded as lists- as lists aren't an intrinsic datatype of Clipcode (which appears to have had no suggestions for alternative names so far), it can't detect what is a list very easily.

Hence the thought had been "make an MMSS-specific editor that knows which fields to represent as lists in different types of config file, and knows what the fields of the lists are supposed to be", but that was horrible and messy as I'd rather have a generic editor for Clipcode that could also be used for MMSS.

So I was pleased when today it occurred to me the simple, unmessy way to deal with this, involving a config file for the editor, that tells it about the lists and things for different types of Clipcode file, based on having a key set in each file. Great. Then I noticed it's been almost a year since I released the last version of MMSS. And that was the non-functional version. I wonder how long this bloody editor will take me? :(

Tuesday 24th August, 2004
Wow, it's been ages since I did work on MMSS. That's because after I realised I'd have to reimplement in Perl pretty much EVERYTHING I'd previously written in m4, it became clear the job would be somewhat like pulling teeth. Bah.

But I know I have to get a new version of MMSS out to be able to maintain the site properly. I've pretty much forgotten how those stupid arcane m4 macros needed to be written, I just want something that is simple to use. And it occurred to me a couple of days ago, that the issue of coding the Perl script to have all the chunks of markup that get pasted in, in such a way that they can be edited in a moderately user-friendly way, wasn't especially tough:

I could, in the same way that MMSS compiles the HTML pages of a site from individual sections and templates, create a script (probably also written in perl? Or could m4 manage something as primitive as this? It wasn't too bad before it was pressed to doing actual processing) that took the markup chunks from individual text files, and the source for the perl script, and wrap the whole thing up into the Perl script that was actually required for maintaining the site!

Apart from the fact that this allows relative newbies to change the blocks of markup without having to trudge through the whole Perl script, it rather more importantly gives me the impression I could get the job of reimplementing MMSS done a bit faster! Or at all even!!

Friday 30th April, 2004
Got the macros to the point where they could generate the contents of the nav boxes directly, using the liststring data from the config files. It struck me as being much like continental drift- what it acheived was rather impressive





Releasing version 0.06 purely as a reference type thing, without work on documentation or the necessary code cleanups to actually use the new code. I want it archived away so I can get to work on a version that mostly eschews m4 for something faster, like Perl. And it's frankly hard to claim that implementing the templates in m4 was in some way user friendly. That code was foul. Trying to work out evaluation order, appropriate levels of quoting, etc, ended up giving me headaches. Having witnessed the phenomenal slowness of the program once pressed into doing something vaguely complex, I'm now of the opinion that m4 is of rather limited use (that's not to say entirely useless, mind).

In short, you don't want to use version 0.06. Pretend you haven't seen it. Wait for 0.07 instead, I imagine using Perl will let me write it much faster anyways.

Friday 23rd April, 2004
Finally got a usable list format that can be stored in the Clipcode config files, and a little program that can process such data. Previous plan had been for lists to be expressed as specifically named keys in the config file, that could be searched for by Clipcode itself, but the new method has the lists as single string values stored under one key for the whole list. The external program ("lstring") parses this string and extracts or inserts items as appropriate. I've tested it a bit, and it works nicely :)

Now, there should be nothing standing in the way of the method of having the .layout files as configuration files- each box in a page can have a record in a list. One field of the record can be the filename/anchor name, one can be the title (top of the box), and one can be the name given in the navigation links box at the left. Woo! Unfortunately I don't think I can do more of it tonight, I'm knackered.

Tuesday 2nd March, 2004
Nothing recent! After I made the release, I did some more work on trying to separate the macros from the configuration stuff. A new framework is vaguely coming into place to allow the *.layout files to just be pure configuration data, and not ugly macro files. There's also a plan to add "Section" configuration files, one per directory, to make things a fair bit simpler. Finally, I hope to allow pages to have different page generation macros, so I can have things like news pages collated from lots of individual news items, which can get spread across several pages (hopefully have last page have most of the old news so first page can be very light).

Oh, and did I mention the little wrapper script I was making for clipcode to give a simple GUI style editor? Hmm?

Wednesday 4th February, 2004
Made a couple of tweaks to MMSS, and added a lot more functions to the Clipcode command, so that's almost complete (it already does everything MMSS needs it for). So, deemed MMSS ready to upload. Bet I've forgotten something.

Tuesday 3rd February, 2004
Finished changing this site to use mmss completely. It worked, including the upload system. I'm very very pleased. In the past day or so I managed to create a small program with the working title of "Clipcode", which is able to parse config files for use in scripts. It's plausible that such a thing didn't exist before because people were able to find other ways of doing such things... but I figured this was a much better solution. Makes for more readable scripts, and it's more maintainable, especially if you use it in lots of places. As soon as it gets a name, I intend to give it its own page and announce it on, but in the meantime it's packaged with mmss.

Sunday 1st February, 2004
Wrote some documentation for mmss, including a man page. Improved the code for managing uploads. Made plans for how to configure various site details. Created this page for project. That is all.

Note that at this point I still haven't converted my actual site to using all the mmss framework- I'm using the templates, but I need to replace the use of the old manky build system with the proper mmss one, which I only finished in the past few days. This shouldn't take long, I'm just paranoid that I'll break something in the process of retrofitting it.

Early January, 2004
Set about creating a set of m4 macros to allow me to (relatively) easily create my webpages using a fancier layout than the vague splodge they'd been before. The HTML output by the macros was based directly on that of the splash-screen from the Dillo browser (with the kind permission of the developers). After a few days, I started working out the details of other ways I could script things to make life easier.


Haha! MMSS is finally deemed just about OK to look at, as long as you don't expect too much.

That's all. New version might appear soon, which should be an order of magnitude better if it gets finished at all.

These pages created and maintained with MMSS (Make My Static Site)