[Tfug] Another poser
Bexley Hall
bexley401 at yahoo.com
Mon Jul 16 14:07:36 MST 2007
--- Rich <r-lists at studiosprocket.com> wrote:
> On Jul 14, 2007, at 11:00 am, Bexley Hall wrote:
>
> > imagine writing documentation that refers to
> > tar(1) and having to constantly say things like:
> >
> > "Use tar (which is the tape archiving command) to
> > package the group of files into ..."
>
> If that's a problem, then write the man page. Then
> you can refer to
> "floobydust(1)" without being disingenuous.
I don't have control over the product -- or its
documentation -- that *has* the undocumented man
pages! :>
> You *have* to be clear, otherwise you end up with an
> undocumented
> pile of garbage, like many of Microsoft's products.
>
> > I think the Principle of Least Surprise would
> > advocate a notation like "tar(-)" instead.
>
> Instead of exploring this principle to work around
> not having a
> manual, why not just learn the roff syntax, muscle
> your way into the
> floobydust development team, and get the thing
> repackaged with a
The product is a commercial one -- not open source.
I have a small interest in documenting how to *do*
things with it -- but no interest in taking on
*their* (commercial) tasks!
Had I more of a masochistic side, I could similarly
undertake documenting Microsoft's products for
*them*! :-/
> manual! Yes, I know we're in a philosophical debate,
> but it sounds
> like another technical fix (magical dangling
> references) for a social
> problem (lack of documentation).
>
> Think about this in another way: you don't have the
> "floobydust"
> program installed, so you
> touch /usr/local/bin/floobydust
> chmod a+rx /usr/local/bin/floobydust
> Great! Now my script doesn't exit:
>
> [ -x /usr/local/bin/floobydust ] && floobydust -C
> /var/
> whatchamacallit/* || exit
>
> Only it doesn't actually *do* anything. That's the
> executable
> parallel to what we're philosophizing on.
>
> > Someone used to reading *NIX documentation
> > might falter for a moment -- wondering what that
> > parenthetical suffix represented ("Gee, is that
> > a function invocation? Hmmm, an argument *or*
> > an ellipsis would make sense within the parens
> > but that hyphen dash... Ah, maybe a man page
> > reference? In which case, what *section* is
> > represented by '-'??) but would, regardless,
> > understand that "tar" is a magical word and
> > not a reference to a petroleum based substance...
>
> And what about the people who don't get the
> punchline? They're stuck
> with greater misunderstandings:
>
> - "What type of argument does function
> floobydust() expect?"
> - "I'm looking for the footnote '-'. I don't see
> it."
>
> Or even:
>
> - "Oh? I'll try 'man - floobydust'. Hm. No manual
> entry for - / No
> manual entry for floobydust."
>
> And the punchline they make up for themselves is:
> - "This documentation sucks almost as hard as it
> blows!"
Then don't *use* "my" documentation! :> Instead,
call the vendor and complain to *him* about his
piss-poor product/documentation.
> Cue package removal.
>
> Some people don't have time for tenacity, and others
> are even
> incapable of Googling... wouldn't you rather they
> *didn't* hit you
> with a million emails? So document it!
Even more selfishly: prepare "my" documentation
FOR MYSELF -- adopting whatever scheme *I* want
to refer to nonexistent man pages -- and then just
not *share* it with anyone! :> Let them flounder
with the vendor's documentation and either b*tch
to their vendor contact or stop using the product.
That way, I don't have to take on the vendor's
task *or* worry about a million emails!! :>
> >> Referring to a nonexistent man page doesn't
> really
> >> help.
> >
> > No, but indicating that a manual page *should*
> > have existed (i.e. this is a command, etc.)
> > conveys information in a concise form. And,
> > when/if such a man page becomes available,
> > you only have to replace the hyphens (instead of
> > having to edit a bunch of now superfluous text)
>
> Using a hyphen leaves your original poser
> floundering, which was to
> describe what *type* of a command it is. That number
> is indicative of
> how dangerous the command can be. The advantage of
You are assuming a particular significance to man
page sections. Solaris's idea of "section 9" is very
different from Inferno's, etc. OpusV doesn't even
*have* a section 9, etc.
> using a number
> rather than a hyphen is that, when the man page
> becomes available,
> bingo, the original referencing docs magically work!
No. You are assuming I can foresee which section
said command will reside in when/*if* it is ever
documented. And, by referencing *any* section,
it now has readers looking for the documentation
*in* that section -- a clear "error" in "my"
documentation (just like documenting how something
is *supposed* to work is an error!)
> See, without proper documentation, code is junk.
> Isn't this the sole
> motivation behind higher-level languages? Take
> machine language:
> assembly language forces the programmer to reveal
> his hand. It also
> encourages him to annotate the code. Then stepping
> up to high-level
> languages, it encourages even more use of meaningful
> variable names,
> etc. Skip a few decades, then JavaDoc comes along to
> tell you to behave!
None of these really do anything to "force"/coerce
better documumentaqtion out of the developer. If
you look at big pieces of code, you're hard pressed
to figure out which end is *up*. Comments are
written as if you already understood the code
(i.e. for the benefit of the original writer; not
as instructional for his successors).
And, there is nothing that forces/encourages a
writer to debug his/her comments. Or "maintain"
them.
I suspect most developers don't worry about long-term
maintenance issues. And, perhaps, a good deal of code
is just discarded/reinvented with each subsequent
new product/release (I had a colleague who would
routinely REbug the floating point libraries in
our products in an alleged attempt to "improve" them).
I've found that I just can't remember all of the
details of many of the algorithms I have used if I
don't leave copious notes ("for myself" -- hopefully
benefitting others, as well). That is the genesis
of this "poser" -- coming up with a scheme by which
I can refer to undocumented commands in the docs
I prepare for myself! (See? I truly *am* writing
things that are not intended for others to read...
though I make them available to select persons as
need be)
> My favorite CS lecturer wouldn't even look at code
> without comments
> -- so yeah, it was drilled into me a long time ago.
> Documenting a
> system or a software suite is no different.
Most CS instructors IME have written very little
real-world code -- rarely entire *projects*. :>
The best advice I ever got was to design languages
in which a single *page* could express a "program"
(module, etc.). At the time, it sounded like an
arbitrary criterion; in hindsight, I find it *most*
admirable!
Unfortunately, those bits of code often need a fair
bit of paper to describe their operation and theory.
:<
> As usual, I didn't have time to write a shorter
> post...
>
> I'll see if I can come up with some posers of my
> own!
"If the skins of three alligators can be harvested
to create six women's handbags, two pair of men's
cowboy boots, three wallets and a small valise,
how long does it take an elephant with a wooden
leg to kick a hole through a pickle?"
____________________________________________________________________________________
Yahoo! oneSearch: Finally, mobile search
that gives answers, not web links.
http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC
More information about the tfug
mailing list