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
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
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
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
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
Freshmeat.net, 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.