Bookaroo
|
|
|
Bookaroo is a supervision-booking system based around CGI
scripts written in Python. The data is stored in a human
readable (though not pretty) XML file. An auxillary script
generates reports from the data.
If you install and use Bookaroo, please
let me know.
|
|
UnityWiki
|
|
|
UnityWiki is a small, relatively simple
Wiki written in
Python, and based on
PikiPiki.
It's already useful, but I've yet to package it up or provide
any useful documentation.
|
|
Newfile
|
|
|
Newfile is my first (and, to date, only) substantial Perl
script. It's job is fairly trivial, but incredibly handy; it
creates files based on templates. It looks for a file called
.template.XXX (where .XXX is the extension of the file
you're trying to create), and then uses this as the basis of
the new file. The .template files can contain arbitrary Perl
code to execute, variables are expanded, and you can specify
a template explicitly if the correct one can't be determined
from the extension. For more details, see the comment at the
start of the script.
The following archive contains the script, plus several
example templates. There are a couple of minor bugs, but
nothing show-stopping; I've been using the script basically
as is for four years now, and it's proved more useful than
annoying.
|
|
|
|
|
|
I've written a few plugins for Blosxom, the software I use to generate this
site.
|
|
Libraries
|
|
|
CLOTH: The Command Line Option Templates
Header, a C++ library (provided in the form of a single header file)
for parsing command line arguments. The nice thing about this is that you
simply declare the options your program takes as variables, call the
parser to fill them in, and then use them as if they were constants.
|
|
SilverService
|
|
|
SilverService is a Mac OS X application that combines the power of the Unix
command line with the convenience of the Services menu. It has its
own page.
|
|
|
Licensing Rant
|
|
|
The software on this site is licensed under a variety of
OSI-approved open
source licences. UnityWiki is unambiguously a derivative work
of PikiPiki, which is covered by the
GPL, and
hence is distributed under the same licence. The two original
projects, Bookaroo and Newfile, are licensed under the
MIT
Licence (basically equivalent to the
advertising-clause-free version of the BSD licence).
Ideally, I'd like to distribute things under a slightly
more restrictive licence; one that forced derivative works to
be licensed under similar terms, but didn't impose any
restrictions on other work that is merely combined with it in
the way that the GPL attempts to (I think that the GPL is on
shaky ground there, as it seems to try and extend the
definition of "derivative work", but in any case I'd rather
have a licence that explicitly permitted distribution of
combined works under different terms).
The LGPL is sort of right, but I don't like the wording; it
seems overly complicated, and overly specific in places (for
example, it uses the words "object files" - not a useful
concept if you're trying to licence software written in
Python, or even Java). Apparently, the Mozilla
Public License 1.1 would do what I want, but according to the
Free Software Foundation it's
not compatible with the GPL, and the resulting restriction is
as bad as a restriction to only link with GPL-compatible
software. The Mozilla project themselves get round this with a
triple-licensing approach (MPL/GPL/LGPL), but that seems a bit
messy. Hence, as BSD-style licence seems to be the best bet
for now - it also has the advantage that it doesn't limit your
options in the future. Maybe this is the way to go long-term;
after all, I'm not trying to push any free-software agenda or
anything. It'd just be nice to ensure that improvements to the
software could be incorporated back in to the main tree.
If you've got any suggestions or comments about this issue,
I'd be glad to hear them.
|
|
|
|
|
|