I couldn't sleep just now, and a realisation came to me.
When you see a thing enough times, it tends to fade into the mental
background, until you forget why it was there in the first place. This has
happened to us, and I'll tell you where: categories and locales. Allow me to
explain.
Way back when we were using UseModWiki to run "grubstreet", we came up with
the idea of categories and locales. Certain nodes had a magic quality - at
least, we agreed they did, although the software didn't know any better - of
"containing" other nodes. At the time, no functionality was available to us
to record metadata, so things were done by naming nodes "Category This" or
"Locale There".
However, the creation of the OpenGuides software changed the situation. Now
we can to designate what categories nodes are in properly, and mark some
nodes as being nodes themselves by being in "Category Category". The
analogous situation exists for locales. So why are we still naming pages
"Category Whatever" and "Locale Something"?
Prepending these definitions to node names is ugly, in a Pompidou Centre
pipes-on-the-outside kind of way, confusing for new users ("Locale Wherever"
was always an awkward construction), redundant in light of proper metadata
(incidentally, "Category Category" should just be "Categories") and,
most
tellingly, causes a variety of ontological problems such as nodes called
"Fred" that have to be redirected to "Category Fred", separate nodes
for a
place and the _locale_ of a place, and so on, examples of which crop up on
RecentChanges all the time. This is clearly what the XP people call a "code
smell"[0].
How to remedy this situation, as far as I can see:
1) Warn the users.
2) Change the code so that nodes no longer have "Category" or
"Locale"
prepended to their names.
3) Find all the pages that fit the pattern of "Fred" and "Category
Fred"
and merge the latter into the former - automatically for cases where the
former contains only a redirect, and manually for everything else (not
many cases, hopefully).
4) Munge all links pointing to "Category X"/"Locale Y".
5) Erm, that's it? Did I miss anything?
Comments, please. I'd like to mark this as priority for OpenGuides 0.32;
Kake, if you haven't got time at the moment I can look into it. Would it
require any changes to CGI::Wiki?
Ta,
Earle.
[0]
http://c2.com/cgi/wiki?CodeSmell
--
Earle Martin
hex on
irc.perl.org
http://purl.oclc.org/net/earlemartin/