emacs-wiki-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[emacs-wiki-discuss] work-flow: using planner in a multi-user environmen


From: Brad Collins
Subject: [emacs-wiki-discuss] work-flow: using planner in a multi-user environment
Date: Tue, 07 Dec 2004 11:23:58 +0700
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (windows-nt)

I am now using planner to manage task pages for a large project which
will have tens of thousands of task pages.  Each task page may be
edited by a number of people. If this was completely open I would go
with a Wiki type solution, but I expect that each page will be
managed by no more than a project editor/maintainer and perhaps one
or two trusted people with write privileges.

So how to deal with what is at base a version control problem?

Well the obvious thing would be to put the whole thing in version
control.  If this was a software project that would work, but our
content project (The Librarium, a free library catalog) is using BMF
(The Burr Metadata Framework) to encode catalog records which has a
version control system built in, so it didn't make sense to nest a
version control system within a version control system.

What I finally came up with was to create a very simple version
control system for plan pages.  Since plan pages are used for
collecting research material and keep track of what has been done for
each record it didn't make sense to require comments or change log.
But it did make sense to make a new copy and version of the plan page
every time something was changed.  In this anyone going to the page
can easily see what other people have done, or revert to an older
version if there is a problem.

The result can be seen here:

http://192.168.0.102/cgi-bin/pyblosxom.cgi/aut/H/P/P/7/0/4/0/0/HPP7-0400-notes.html

I have hacked emacs-wiki-blosxom to include formating for task lists
from planner, and then wrote a script for saving a plan page as a
different version and put a new version number and date stamp in a
header which uses BMF syntax (basically YAML).  I then wrote a simple
script for converting the header into a emacs-wiki table.  I then
could simply publish the page with C-c C-p with emacs-wiki-blosxom
and then sitecopy publishes the page (by hand or via cron).

A copy of the original plan page is kept in the main directory tree
for the project so that eventually we can create a means of
automatically synching project plan pages off the server.

I mention all of this because it might be of interest to someone else
trying to use planner in a multi-user environment and I would be
interested in any ideas of how to do this better.

---

Oh, I should also mention that I use planner to create new projects
as well.  I have a planner url type for BMF id's which are called
BXID's. The BXID determines the directory the record will be placed
in.

So  the id HPP7-0400 would be expanded to: 

    BRAMBLE-ROOT/aut/H/P/P/7/0/4/0/0/HPP7-0400.pln

Creating such long strings of directories by hand was a nightmare, I
now just create a link in a planner task like bxid://aut:HPP7-0400.pln.

A typical planner task for creating new records looks like this.

#B1  o  Dickens, Charles (aut:UJA7-6676 [[bxid://aut:UJA7-6676.pln][notes]], 
[[bxid://aut:UJA7-6676.yml][burr]]) [Eng. Author, 1812-1870]

Clicking on the notes link opens a new plan, and `make-directory RET RET'
creates the directory structure.  Planner will then create the new
directory structure for me when I publish the page locally and
sitecopy will faithfully mirror all anywhere it's published pubically.

Clicking on the burr link opens a blank page in the correct directory
which I can then insert a template and begin creating the record.
I also have written a script which generates an new id at random and
creates the links automatically at point.

I am beginning to work out how to migrate from emacs-wiki to muse,
but muse doesn't like emacs-wiki tables and is awkward at publishing
individual pages as smoothly as emacs-wiki-blosxom.  I posted a copy
of the first installment of this (muse-blosxom) to the list some
weeks back but haven't heard back from anyone.

I'd be happy to tar up the hacked elisp I use for all of this and
send it along to anyone who is interested.

It will eventually be packaged as a whole BMF editing a publishing
environment but it's still too much of a work in progress to release
it yet.

The next step will be to begin work on a catalog browser which will be
along the lines of gnus.  This is a huge project.  I will have some
funds soon and will be able to hire a couple of elisp hackers for at
least a couple of months to help get the initial application blocked
out along with a corresponding GUI reader done as a mozilla
application.  If anyone is interested in actually getting paid to hack
elisp, let me know.  I'm in the final stages of getting our initial
funding so I can't commit yet but we're getting very close.

I spent a couple of years literally living in the jungle near the
Mekong with little electricity and no proper telephone, developing BMF
and now nearly two years in Bangkok getting this shaped into a proper
project and cultivating funding for a for-profit company to develop
the technology and a non-profit for developing the library.

I couldn't have done any of this without Emacs, and using emacs-wiki
and planner as a foundation for developing a content management and
development system is turning out to be a very powerful combination.

Cheers,

b/

-- 
Brad Collins <address@hidden>, Bangkok, Thailand





reply via email to

[Prev in Thread] Current Thread [Next in Thread]