discuss: Linux documentation wiki


Previous by date: 13 Jan 2002 23:02:04 -0000 Re: cvs anonymous failed: Connection refused, --s+
Next by date: 13 Jan 2002 23:02:04 -0000 call for language check - Postfix-Cyrus-MySQL-replex-HOWTO, Luc de Louw
Previous in thread: 13 Jan 2002 23:02:04 -0000 Re: Linux documentation wiki, --s+
Next in thread: 13 Jan 2002 23:02:04 -0000 Re: Linux documentation wiki, jdd

Subject: Re: Linux documentation wiki
From: Charles Curley ####@####.####
Date: 13 Jan 2002 23:02:04 -0000
Message-Id: <20020113160106.C28685@trib.com>

On Sun, Jan 13, 2002 at 11:58:58AM -0500, David Merrill wrote:
> On Sun, Jan 13, 2002 at 08:18:30AM -0700, Charles Curley wrote:
> > Would bugzilla be a better choice here?
> > 
> > I've been watching the wiki discussion with some concerns, and haven't
> > yet been satisfied. One of them is security, another is the integrity
> > of the original document. Using bugzilla addresses both of those
> > issues because it does not allow the bug filer access to the source.
> 
> The whole point of a wiki, and the whole point of this exercise in the
> first place, is to lower the barrier to entry. Anyone who is reading
> the document and can make it better can do so easily and quickly
> without any muss or fuss. I don't think Bugzilla would do that enough.

Do we really want to lower the barrier to entry? I thought the point
of LDP was to produce professional documentation. Not to be elitist,
but I wonder if the barrier to entry isn't too low already? I refer to
some of the atrocious grammar and spelling I've seen in released
works. I can handle the occasional grammar or spelling glitch, but
some of them obscure the meaning, and that's not acceptable.

One response to that might be, "OK, Curley, you can use the wiki to
make changes in grammar and spelling that offends you." Quite so. But
I'd rather approach the maintainer first in private (so as not to
embarrasss), and offer to make the edits, do so using my tools and the
authoritative source, and send the maintainer a diff so that the
maintainer can tell in detail exactly what I've done. And I can do
that without a wiki.

At one company, I was the only person using Emacs on the C source, so
I was the only person with built-in spell-checking of strings and
comments, which I used. Other developers complained to me that I had
mangled their "correct" spelling. Given that experience, I prefer to
approach people in private on that sort of thing.

> 
> Keep in mind also that using a wiki would not have to give the poster
> access to the "real" source. I would propose some kind of approval
> mechanism, which could be by the author or an ldp volunteer, before
> the changes are posted. We have not yet solved that though, but I
> think we can.
> 
> > Also, the wiki seems to require almost instantaneous response from a
> > document's maintainer to a change. Bugzilla allows a more leisurely
> > response because the change is not added to the original document in a
> > manner that makes it appear to be part of the original document.
> 
> Why would it require almost instantaneous response? The proposal is
> that the wiki is updated immediately, but the core LDP cvs and website
> is updated *whenever*.

Because once a change is made to the wiki source, the next wiki user
will get that source, not the real source in CVS. And will edit on the
assumption that what is in the wiki is the correct and true version,
which it isn't.

Alternatively, the next user will get the original source, without the
earlier proposed change. This could also cause problems. Again, bugzilla
handles this problem: everyone posts to bugzilla working from the
present source, knowing that other bug reports are pending.

The whole point of CVS is to see to it that everyone is playing on the
same page. If you update the wiki in near-real-time, but not the
sources, then you have drift, and that's not acceptable.

As near as I can tell, to avoid drift and move to wiki, we would have
to abandon the present CVS system. I am flat out opposed to abandoning
the CVS system, and in that event, I will withdraw from LDP work.

Another question: Does adding the wiki add to maintainers' work load?
Are they now required to check the wiki from time to time for new
input, or can the wiki be set up to email the maintainer when edits
are made.

Going the other way, can we have the wiki advise users when the last
update to the authoritative source was made so they can review that if
necessary?



> It would be a good idea for everyone who is involved in this
> discussion to try using Wikipedia or another wiki for awhile, so you
> get a feel for how it works in practice. Or, see
> http://www.wikipedia.com/wiki/Wikipedia/Our_Replies_to_Our_Critics
> for their rebuttal to those kinds of criticisms. Wikis have their own
> dynamic that is not really what you would expect if you haven't
> actually spent some time on one. Wikis are nonintuitive. You really
> have to actually use one for awhile to get the "wiki nature" as it's
> called. :-)

I may not get the chance to muck seriously with a wiki until next
weekend. I did skim the Replies page, and found it useful, but
sometimes a bit facile.

> 
> FWIW, the Wikipedia has written 20,000 articles in a single year, and
> many of them are really, really excellent. The potentential is
> astounding for the LDP if we could capture even a small percentage of
> that dynamic.
> 
> I agree with Charles that there are risks. Risks that it won't work,
> that is. There is no risk to our documents in cvs if nothing goes
> automatically into them. All we risk is our time and effort that might
> be in a futile endeavor. I for one am willing to take that chance!

I am perfectly willing to accept the risk that it won't work,
especially as I have not volunteered to do any of the work to set up
and test a trial system. :-) Seriously, I think it is worth testing,
however skeptical I remain.

My main concern is the integrity of the documents we now have, and
ensuring that we have a process which maintains that integrity.


-- 

		-- C^2

The world's most effective anti-virus software: Linux.

Looking for fine software and/or web pages?
http://w3.trib.com/~ccurley

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Sat Jun 29 13:03:29 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /opt/ezmlm-browse-0.20/<string> in ()
 /opt/ezmlm-browse-0.20/main.py in main()
  424 
  425         if path is not None:
  426                 main_path(path)
  427         else:
  428                 main_form()
global main_form = <function main_form at 0xa24ec6c>
 /opt/ezmlm-browse-0.20/main.py in main_form()
  378         except ImportError:
  379                 die(ctxt, "Invalid command")
  380         module.do(ctxt)
  381 
  382 def main():
module = <module 'commands.showmsg' from '/opt/ezmlm-browse-0.20/commands/showmsg.pyc'>, module.do = <function do at 0xa2acb8c>, global ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'})
   18         write(html('msg-pager') % ctxt)
   19         write('<hr>')
   20         sub_showmsg(ctxt, ctxt[MSGNUM])
   21         write('<hr>')
   22         write(html('msg-pager') % ctxt)
global sub_showmsg = <function sub_showmsg at 0xa24e1ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=2099)
  229         format_timestamp(ctxt, ctxt)
  230         write(html('msg-header') % ctxt)
  231         rec_showpart(ctxt, msg, 0)
  232         write(html('msg-footer') % ctxt)
  233         ctxt.pop()
global rec_showpart = <function rec_showpart at 0xa24e1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0xa2cfc6c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0xa2cfc6c>, partnum=1)
  205                 else:
  206                         for p in part.get_payload():
  207                                 partnum = rec_showpart(ctxt, p, partnum+1)
  208         else:
  209                 write(html('msg-sep') % ctxt)
partnum = 1, global rec_showpart = <function rec_showpart at 0xa24e1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0xa2cffac>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0xa2cffac>, partnum=2)
  208         else:
  209                 write(html('msg-sep') % ctxt)
  210                 sub_showpart(ctxt, part)
  211         return partnum
  212 
global sub_showpart = <function sub_showpart at 0xa24e144>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0xa2cffac>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0xa2cffac>)
  164         type = ctxt[TYPE] = part.get_content_type()
  165         ctxt[FILENAME] = part.get_filename()
  166         template = html('msg-' + type.replace('/', '-'))
  167         if not template:
  168                 template = html('msg-' + type[:type.find('/')])
global template = <function template at 0xa246e9c>, global html = <function html at 0xa246ed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0xa2d14f0>
 /opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature')
   40 
   41 def html(name):
   42         return template(name + '.html')
   43 
   44 def xml(name):
global template = <function template at 0xa246e9c>, name = 'msg-application-pgp-signature'
 /opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html')
   31         except IOError:
   32                 if not _template_zipfile:
   33                         _template_zipfile = zipfile.ZipFile(sys.argv[0])
   34                 try:
   35                         f = _template_zipfile.open(n).read()
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0xa1dfa7c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20']
 /usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0xa2c8fec>, file='-c', mode='r', compression=0, allowZip64=False)
  337             self.filename = file
  338             modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
  339             self.fp = open(file, modeDict[mode])
  340         else:
  341             self._filePassed = 1
self = <zipfile.ZipFile instance at 0xa2c8fec>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r'

<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
      args = (2, 'No such file or directory')
      errno = 2
      filename = '-c'
      message = ''
      strerror = 'No such file or directory'