Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] RFC: sorcery usabilty study results

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: sqweek <sqweek AT gmail.com>
  • To: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] RFC: sorcery usabilty study results
  • Date: Tue, 1 Apr 2008 21:58:28 +0800

On Tue, Apr 1, 2008 at 7:34 AM, flux <flux AT sourcemage.org> wrote:
> In my opinion
> it's better to keep the sorcery/cleanse/etc., but clean up the name
> space for consistency. As an example, dispel -d doesn't dispel (well,
> OK, it does, but it also casts, which is the important part). This
> should be moved to cast -d in my opinion.

I vote for a new command - resurrect/recall/exhume/reanimate.

> Also, having all the different
> cast/gaze/cleanse/scribe commands accessible via sorcery (like sorcery
> cast $SPELL) would help, because then users really only need to remember
> one command: sorcery. If they forget what to do with it, RTFM :)

No, no, god no. One of my favourite things about smgl is that it
avoids[1] the gigantic "do-everything-under-the-sun" interface
(complete with man page that if printed out could just about wrap
around the circumference of the sun), in favour of smaller, simpler
tools.

[1] Well, aside from gaze which I'm not too fond of.

Probably part of it is just that I'm familiar with smgl's toolset,
but the commands feel right. It's not the magic theme - that was a fun
attraction initially, but ultimately just serves to define a clever
namespace for package management commands.
No, the nice part about smgl is not having to read through gobs of
man pages everytime you want to do something. Not having to remember
18 different flags and strange command line semantics because there's
one tool to do each task so each just needs a small set of options.

I wouldn't say sorcery is perfect - I think the scripts could use
some more encouragement to work together... eg, cast --queue doesn't
need to exist if sorcery queue just listed the out-of-date spells on
stdout.
For me, the nicest toolsets come out of having a rich set of
primitives. I don't have any problem with sorcery queue behaving as it
does, as I wouldn't consider sorcery a primitive - it does fancy menus
and stuff for the user's benefit. But, sorcery queue should be
implemented on top of a more primitive command that simply does output
out-of-date spells.
And then there's gaze, which sort of doubles as a dumping ground for
many different queries. Which I can understand - but once you get past
a certain number of subcommands the approach becomes unwieldy. Too
many options, too easy to miss the one you're interested in. Coupled
with its report-type functionality (pretty printing and the like) and
overlapping commands (gaze installed vs gaze export), it's a fairly
complex beast. Almost worth a DSL. Something awk-like would work
pretty well (called oracle?) you could implement the out-of-date query
for sorcery queue with just oracle 'installed-version != version
{print spell}'.

Anyway, I think this has been done before but it's fun so I'm going
to suggest some alternate names for functionality which I don't feel
belongs where it currently is :)

sorcery hold/exile
These two are pretty similar - in both cases you don't want the spell
changed, just exile has the further implication of dispelling. They
also implement fairly primitive functionality, whereas sorcery
generally consists of high level commands, which is my motivation for
moving them. Maybe freeze/unfreeze, or timestop/timestart, which would
hold or exile depending on whether the spell is currently installed.

sorcery default
I don't feel like I have a good argument for moving this, I just
can't resist suggesting "contingency" as a replacement script name :D

gaze activity/install/install-full/install-spell/compile/sum/md5sum/size
All log related. I suggest moving them to a new script "journal", and
normalise the interface so that the default is all spells, and each
line of output is prefixed with spell-version (maybe only if multiple
spells were selected).

gaze from
No longer needed - journal install |grep <file>

gaze show-held/show-exiled
freeze -l (for list)

Finally, move all the single queries to a new script, "divine" (as in
the verb).
gaze provides/what/short/where/website/sources
divine provider/what/short/(section/path)/website/source

Which leaves gaze with a bunch of random stuff, and probably breaks
as near every script as I'm going to get without being silly.
-sqweek




Archive powered by MHonArc 2.6.24.

Top of Page