SiteRegistry renamed, SUnit tests

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

SiteRegistry renamed, SUnit tests

Janko Mivšek
Hi,

Here is a copy of my conversation with Joe. Comments please
:)

Joseph Bacanskas wrote:

Off the top of my head, I think that a class' name should
describe
what it is/does.  The name SiteRegistry, describes what the
class is/does as it interacts with the rest of Swazoo.  It
seems that naming the Class Swazoo points new users to a
possible starting place when exploring the application.

I think that the tests served several functions; one of
which was to document how the system works.  The tests show
how each function needed for the app are
performed.  Without them, it's a lot harder to understand
how all of the pieces work together, and impossible to know
when a developer is finished.

I know I'm really pounding on the idea of SUnit tests, but
they have several functions which are now no longer being
performed.  We want the application to be
more robust and more understandable every time  we change
the code.  We want the tests to document how the system is
used.  We want the tests to show people who are trying to
port Swazoo to other Smalltalks that when their port passes
the tests, they are done.

BTW - I'm getting on a plane to GemStone soon, and won't see
this
account until Friday.
Please reply to [hidden email].

Also, should we move this to the mailing list so that others
can
participate?

Thanks again for working so hard on this project; I truely
appreciate you efforts.  You are
moving things forward at a great pace!

Janko Mivsek wrote:

> Joe,
>
> What's your opinion about renaming SiteRegistry to Swazoo?
> And ease of new users of Swazoo to find a "root" object more
> easily?
>
> Joseph Bacanskas wrote:
> >
> > Hi:
> >
> > I'll add the tests back in and run them.  Renaming the
SiteRegistry to will certainly

> > break a few. :-(
> >
> > Janko Mivsek wrote:
> >
> > > Hi Joe,
> > >
> > > Joseph Bacanskas wrote:
> > > >
> > > > Hi:
> > > >
> > > > Did you forget to include the SUnit tests?  Did I somehow
miss them?  By my last

> > > > count there were 63 of them.
> > >
> > > Ups, sorry. I just didn't use SUnit tests (not enough time
> > > to study and get use of it. Next time, I promise ;))
> > >
> > > SUnit test are therefore unchangable. It'll be fine if you
> > > rerun them to see if are still valid.
> > >
> > > I propose that we put SUnit test in a separate parcel,
> > > because you need SUnit parcels to run it and you don't need
> > > test for runtime system anyway, just for a development.
> > >
> > > Bye
> > > Janko
> > >
> > > > Janko Mivsek wrote:
> > > >
> > > > > Hi all,
> > > > >
> > > > > Here is a new version of Swazoo. This is an intermediate
> > > > > version with a goal to integrate to Aida and Wiki. I
made

> > > > > quite an extensive refactoring with next goals in mind:
> > > > >
> > > > > - robustness
> > > > > - production readiness
> > > > > - easy to use
> > > > > - easy to integrate with Wiki and Aida
> > > > > - more easy to port
> > > > >
> > > > > Let me tell you a summary of changes:
> > > > >
> > > > > - SiteRegistry is renamed to Swazoo (It is easier for
> > > > >   newbies to find a root class and start the thing)
> > > > > - There is examples protocol in Swazoo. Your first start
> > > > >   is as easy as doIt Swazoo demoStart.
> > > > > - every Site can be started or stopped separately. Site
> > > > > start
> > > > >   finds or creates appropriate HTTPServers
> > > > > - Site has a started flag. You can temporary stop a
Swazoo
> > > > > and
> > > > >   restart with Swazoo stop/start. Only previously
started
> > > > > Sites
> > > > >   will start again
> > > > > - Automatic restart of Sites after snapshot or image
restart

> > > > > - Swazoo version - here is the current version number.
> > > > > - sites.cfg - for every SiteIdentifier you need
> > > > > hostname:adress:port
> > > > >   (before was ip:port:host)
> > > > > - HTTPServer - critical sections protection with a lock
> > > > > (RecursionLock)
> > > > > - HTTPConnection - timestamps of start of connection and
> > > > > last request
> > > > >   (for future priority downgrading algorithm)
> > > > > - other refactoring in HTTPServer and HTTPConnection to
be
> > > > > easier to
> > > > >   understand/self documented
> > > > >
> > > > > Please do a test drive of this version and tell me what
you
> > > > > think :) I need quick responses because I'm starting to
make
> > > > > a Wiki integration.
> > > > >
> > > > > Regards
> > > > > Janko
> > > > >

--
Janko Mivsek
Systems Architect
EraNova d.o.o.
Pod hribom 55
SI-1000 Ljubljana
Slovenia
phone: +386 1 5816 232
fax: +386 1 5816 231
[hidden email]
www.eranova.si

Reply | Threaded
Open this post in threaded view
|

Re: SiteRegistry renamed, SUnit tests

Benny & Wendy Sadeh
Janko,
I can hardly contribute anything lately to the effort, but still, here are my 2 p...

Joseph has outlined his reservations very eloquently, and I agree with them all very strongly.

regarding renaming SiteRegistry to Swazoo.
you can still achieve your goal by using the Facade pattern. basically having the Swazoo class "fronting" for SiteRegistry and others.
since you know GemStone, look at the class System as an example of using Facade.

regards, and see you @ oopsla,
Benny

> Hi,
>
> Here is a copy of my conversation with Joe. Comments please
> :)
>
> Joseph Bacanskas wrote:
>
> Off the top of my head, I think that a class' name should
> describe
> what it is/does.  The name SiteRegistry, describes what the
> class is/does as it interacts with the rest of Swazoo.  It
> seems that naming the Class Swazoo points new users to a
> possible starting place when exploring the application.
>
> I think that the tests served several functions; one of
> which was to document how the system works.  The tests show
> how each function needed for the app are
> performed.  Without them, it's a lot harder to understand
> how all of the pieces work together, and impossible to know
> when a developer is finished.
>
> I know I'm really pounding on the idea of SUnit tests, but
> they have several functions which are now no longer being
> performed.  We want the application to be
> more robust and more understandable every time  we change
> the code.  We want the tests to document how the system is
> used.  We want the tests to show people who are trying to
> port Swazoo to other Smalltalks that when their port passes
> the tests, they are done.
>
> BTW - I'm getting on a plane to GemStone soon, and won't see
> this
> account until Friday.
> Please reply to [hidden email].
>
> Also, should we move this to the mailing list so that others
> can
> participate?
>
> Thanks again for working so hard on this project; I truely
> appreciate you efforts.  You are
> moving things forward at a great pace!


Reply | Threaded
Open this post in threaded view
|

Re: SiteRegistry renamed, SUnit tests

Janko Mivšek
Hi,

Benny & Wendy Sadeh wrote:
>
> Janko,
> I can hardly contribute anything lately to the effort, but still, here are my 2 p...
>
> Joseph has outlined his reservations very eloquently, and I agree with them all very strongly.

My motivation to do rename was bad experiences with putting
WikiWorks in action. Me and Peter van Rooijen tried to test
WikiWorks and to study it for possible integration with
Swazoo. But, how to start this thing? Ok, let we explore
Wiki class first. Nothing. Where the heck are some examples?
After looking around all classes we discovered examples in
NetworkServer. This is IMHO completely inappropriate place
for examples.

Therefore I decided to care a lot in Swazoo to be as easy as
possible to use. Just load the parcel and call one obvious
method and your server is running! I think that we must care
a lot of usability issues here if we like Swazoo to become a
standard, well known server for a whole Smalltalk community.

That's also a reason that I propose to put SUnit test in a
separate parcel. For SUnit tests you need the SUnit parcels
and it is quite difficult to find it from first place. I had
this experience when I had a Swazoo-Aida presentation at
Gemstone. I had a Swazoo parcel with me, but not SUnit.
Thanks to Joe help providing me a SUnit I was able to make a
presentation. Therefore, Its better to have only one Swazoo
parcel, which can work without any more prerequisites from
plain VW image. If you like, you can load tests parcel
anytime later. Maybe we can tweak parcel loading to test if
SUnit is presented and load test parcel automatically then.


> regarding renaming SiteRegistry to Swazoo.
> you can still achieve your goal by using the Facade pattern. basically having the Swazoo class "fronting" for SiteRegistry and others.
> since you know GemStone, look at the class System as an example of using Facade.

Ok, let we do this way:

        Swazoo
          sites <SiteRegistry>
          servers <OrderedCollection>

        SiteRegistry
          sites

SiteRegistry will be responsible for site registration,
finding by hostname, configuring from sites.cfg etc.

Swazoo responsibilities will be start/stop of sites,
autostart after image startup and finding/starting the right
HTTPServers for each Site. All site specific behavior will
be delegated through Swazoo to SiteRegistry. Is that ok?


 

> regards, and see you @ oopsla,
> Benny
>
> > Hi,
> >
> > Here is a copy of my conversation with Joe. Comments please
> > :)
> >
> > Joseph Bacanskas wrote:
> >
> > Off the top of my head, I think that a class' name should
> > describe
> > what it is/does.  The name SiteRegistry, describes what the
> > class is/does as it interacts with the rest of Swazoo.  It
> > seems that naming the Class Swazoo points new users to a
> > possible starting place when exploring the application.
> >
> > I think that the tests served several functions; one of
> > which was to document how the system works.  The tests show
> > how each function needed for the app are
> > performed.  Without them, it's a lot harder to understand
> > how all of the pieces work together, and impossible to know
> > when a developer is finished.
> >
> > I know I'm really pounding on the idea of SUnit tests, but
> > they have several functions which are now no longer being
> > performed.  We want the application to be
> > more robust and more understandable every time  we change
> > the code.  We want the tests to document how the system is
> > used.  We want the tests to show people who are trying to
> > port Swazoo to other Smalltalks that when their port passes
> > the tests, they are done.
> >
> > BTW - I'm getting on a plane to GemStone soon, and won't see
> > this
> > account until Friday.
> > Please reply to [hidden email].
> >
> > Also, should we move this to the mailing list so that others
> > can
> > participate?
> >
> > Thanks again for working so hard on this project; I truely
> > appreciate you efforts.  You are
> > moving things forward at a great pace!

--
Janko Mivsek
Systems Architect
EraNova d.o.o.
Pod hribom 55
SI-1000 Ljubljana
Slovenia
phone: +386 1 5816 232
fax: +386 1 5816 231
[hidden email]
www.eranova.si

Reply | Threaded
Open this post in threaded view
|

Re: SiteRegistry renamed, SUnit tests

Joseph Bacanskas
Hi:

Janko - Two quick observations, (I just got home and have over 100 emails!!!) firstly: The examples in WikiWorks are in HTTPServer, not the
abstact superclass, NetworkServer; secondly: in WikiWorks had tests the way Swazoo does, you would not have experienced any problems,
because you would have had example code.


Janko's experience points up what I was saying earlier, because Swazoo has tests, people unfamiliar with the code can get it ported and
running.  WikiWorks, without tests, gave you great difficulty.  The other problem you will have with wiki is that it will be very difficult
for you to know "when you are done" whereas, Jerry Bell knew he had a successful Dolphin port of Swazoo as soon as all of the tests ran.

I agree that the packaging of Swazoo could be improved.  I think that we packaged it the way we did because it was "the simplest thing that
could possibly work" at the time.  Clearly, that is no longer true.  I propose the following:

1. Put the tests in a separate parcel, which has SUnit as a prereq.
2. Janko, since you made the big changes, you should bring the tests up to date with your current code, so that they all run successfully
and that and new behavior is covered by new tests
3. We look at the result and decide whether we should write some short instructions.  For an example of what I mean, see the WikiWorksGS
instructions.

As to the class rename, I already made my comments and will abide by whatever the team decides.

Janko Mivsek wrote:

> Hi,
>
> Benny & Wendy Sadeh wrote:
> >
> > Janko,
> > I can hardly contribute anything lately to the effort, but still, here are my 2 p...
> >
> > Joseph has outlined his reservations very eloquently, and I agree with them all very strongly.
>
> My motivation to do rename was bad experiences with putting
> WikiWorks in action. Me and Peter van Rooijen tried to test
> WikiWorks and to study it for possible integration with
> Swazoo. But, how to start this thing? Ok, let we explore
> Wiki class first. Nothing. Where the heck are some examples?
> After looking around all classes we discovered examples in
> NetworkServer. This is IMHO completely inappropriate place
> for examples.
>
> Therefore I decided to care a lot in Swazoo to be as easy as
> possible to use. Just load the parcel and call one obvious
> method and your server is running! I think that we must care
> a lot of usability issues here if we like Swazoo to become a
> standard, well known server for a whole Smalltalk community.
>
> That's also a reason that I propose to put SUnit test in a
> separate parcel. For SUnit tests you need the SUnit parcels
> and it is quite difficult to find it from first place. I had
> this experience when I had a Swazoo-Aida presentation at
> Gemstone. I had a Swazoo parcel with me, but not SUnit.
> Thanks to Joe help providing me a SUnit I was able to make a
> presentation. Therefore, Its better to have only one Swazoo
> parcel, which can work without any more prerequisites from
> plain VW image. If you like, you can load tests parcel
> anytime later. Maybe we can tweak parcel loading to test if
> SUnit is presented and load test parcel automatically then.
>
> > regarding renaming SiteRegistry to Swazoo.
> > you can still achieve your goal by using the Facade pattern. basically having the Swazoo class "fronting" for SiteRegistry and others.
> > since you know GemStone, look at the class System as an example of using Facade.
>
> Ok, let we do this way:
>
>         Swazoo
>           sites <SiteRegistry>
>           servers <OrderedCollection>
>
>         SiteRegistry
>           sites
>
> SiteRegistry will be responsible for site registration,
> finding by hostname, configuring from sites.cfg etc.
>
> Swazoo responsibilities will be start/stop of sites,
> autostart after image startup and finding/starting the right
> HTTPServers for each Site. All site specific behavior will
> be delegated through Swazoo to SiteRegistry. Is that ok?
>
>
> > regards, and see you @ oopsla,
> > Benny
> >
> > > Hi,
> > >
> > > Here is a copy of my conversation with Joe. Comments please
> > > :)
> > >
> > > Joseph Bacanskas wrote:
> > >
> > > Off the top of my head, I think that a class' name should
> > > describe
> > > what it is/does.  The name SiteRegistry, describes what the
> > > class is/does as it interacts with the rest of Swazoo.  It
> > > seems that naming the Class Swazoo points new users to a
> > > possible starting place when exploring the application.
> > >
> > > I think that the tests served several functions; one of
> > > which was to document how the system works.  The tests show
> > > how each function needed for the app are
> > > performed.  Without them, it's a lot harder to understand
> > > how all of the pieces work together, and impossible to know
> > > when a developer is finished.
> > >
> > > I know I'm really pounding on the idea of SUnit tests, but
> > > they have several functions which are now no longer being
> > > performed.  We want the application to be
> > > more robust and more understandable every time  we change
> > > the code.  We want the tests to document how the system is
> > > used.  We want the tests to show people who are trying to
> > > port Swazoo to other Smalltalks that when their port passes
> > > the tests, they are done.
> > >
> > > BTW - I'm getting on a plane to GemStone soon, and won't see
> > > this
> > > account until Friday.
> > > Please reply to [hidden email].
> > >
> > > Also, should we move this to the mailing list so that others
> > > can
> > > participate?
> > >
> > > Thanks again for working so hard on this project; I truely
> > > appreciate you efforts.  You are
> > > moving things forward at a great pace!
>
> --
> Janko Mivsek
> Systems Architect
> EraNova d.o.o.
> Pod hribom 55
> SI-1000 Ljubljana
> Slovenia
> phone: +386 1 5816 232
> fax: +386 1 5816 231
> [hidden email]
> www.eranova.si
> _______________________________________________
> Swazoo-devel mailing list
> [hidden email]
> http://lists.sourceforge.net/mailman/listinfo/swazoo-devel

--
Thanks!!

Joseph Bacanskas [|]

--- I use Smalltalk.  My amp goes to eleven.




Reply | Threaded
Open this post in threaded view
|

WebDAV / Docushare type server

Jerry Bell
In reply to this post by Benny & Wendy Sadeh
This is just a general discussion of an application type which I would like
to see built on top of Swazoo.   I hope that this is an appropriate topic
for the Swazoo list.

There is a product available from Xerox which I am very interested in - it's
called Docushare, and it's basically a web based document repository.  It
uses webdav to provide a web based, multi-user, versioning-capable document
repository which can hold any type of document.  It also has some very nice
windows based clients, including one that works with ODMA in programs such
as WordPerfect (so file..open goes directly to the document repository,
acting just as if the file were on a normal drive or share).  It also does
handy things like automatically creating thumbnails for image files stored
in the repository.

 I like the idea - it's a nice, web based interface, so you can access it
from anywhere over the net.  And, it holds real documents of any type so
you're not confined to HTML etc.  I'm interested in using this for both
simple shared document repositories, and also as a sort of ultimately
flexible object database (when Smalltalk objects are some of the document
types being stored).  Actually, I guess it is sort of a web interface onto
an object database which supports versioning?

 From what I can tell, the Xerox product is basically some python code and a
licensed search engine.  It's expensive as well- $5000 buys you a 50 user
repository.  Not 50 concurrent users, 50 users, period.  I've played with
the evaluation version, but we don't have the real thing- none of our
internal needs are great enough to justify the $5k at this point, and
besides it just doesn't seem to be complicated enough to be worth that much.

I envision something like this: Swazoo with extensions handles web server
stuff plus other webdav-type chores.  A pluggable object database on the
back end handles storing the actual stuff.  All collections and resources
are actually Smalltalk objects - they are either real Smalltalk objects
which conform to a specific protocol to support storage in the repository
directly, or they are wrapper objects around external documents, which
handle things like storing properties, versioning, etc.  The real Smalltalk
objects can be really interesting, instead of merely storing metadata
property strings and returning them when asked, a Smalltalk object stored in
this system might instead perform a method and return the result, so they
can be active instead of static.  Since I don't particularly want to write a
search engine, I would probably use an existing search engine to search the
server (true Smalltalk objects would be able to spit out a representation of
themselves, perhaps in XML, which the indexer could use).

I have downloaded some of the webdav documentation, and have begun reading
it.  I can already tell that it is more complicated than I expected, I will
probably try to aim for a subset at first with no support for things such as
concurrent check-out, merging, or multiple version paths.   Perhaps one day,
the native Smalltalk objects would be smart enough to handle these things by
themselves.   But, to be truly accepted, it would probably need to conform
to the webdav specs eventually.

I already have many questions for the group: is anyone else interested in
this?   How is this like/unlike the Wiki and other projects which are in
progress?  A useful system would require security via ACLs, and this seems
to be a requirement for many other kinds of  apps as well- is there some
sort of generic security system we can add to Swazoo?  What other parts of
the system would be useful for other types of applications, and therefore
should perhaps be broken out as separate projects?  Or perhaps this
functionality should become part of the base Swazoo system?

Thanks for your time,

Jerry Bell
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: WebDAV / Docushare type server

Ken Treis-2
Jerry Bell wrote:

> This is just a general discussion of an application type which I would like
> to see built on top of Swazoo.   I hope that this is an appropriate topic
> for the Swazoo list.

It's a great topic for the list.  This is the place to discuss this kind of
thing.  I'm just sorry I haven't had time to respond until now.

> There is a product available from Xerox which I am very interested in - it's
> called Docushare, and it's basically a web based document repository.  It
> uses webdav to provide a web based, multi-user, versioning-capable document
> repository which can hold any type of document.  It also has some very nice
> windows based clients, including one that works with ODMA in programs such
> as WordPerfect (so file..open goes directly to the document repository,
> acting just as if the file were on a normal drive or share).  It also does
> handy things like automatically creating thumbnails for image files stored
> in the repository.
>
>  I like the idea - it's a nice, web based interface, so you can access it
> from anywhere over the net.  And, it holds real documents of any type so
> you're not confined to HTML etc.  I'm interested in using this for both
> simple shared document repositories, and also as a sort of ultimately
> flexible object database (when Smalltalk objects are some of the document
> types being stored).  Actually, I guess it is sort of a web interface onto
> an object database which supports versioning?

Sounds pretty cool.  I presume there is also some form of authentication -- so
that only certain people have access to certain documents, certain people can
make modifications, etc.

>  From what I can tell, the Xerox product is basically some python code and a
> licensed search engine.  It's expensive as well- $5000 buys you a 50 user
> repository.  Not 50 concurrent users, 50 users, period.  I've played with
> the evaluation version, but we don't have the real thing- none of our
> internal needs are great enough to justify the $5k at this point, and
> besides it just doesn't seem to be complicated enough to be worth that much.

Ouch.  Maybe I've been playing with Linux for too long, because I'm always a
little shocked at software licensing costs.

> I envision something like this: Swazoo with extensions handles web server
> stuff plus other webdav-type chores.  A pluggable object database on the
> back end handles storing the actual stuff.  All collections and resources
> are actually Smalltalk objects - they are either real Smalltalk objects
> which conform to a specific protocol to support storage in the repository
> directly, or they are wrapper objects around external documents, which
> handle things like storing properties, versioning, etc.  The real Smalltalk
> objects can be really interesting, instead of merely storing metadata
> property strings and returning them when asked, a Smalltalk object stored in
> this system might instead perform a method and return the result, so they
> can be active instead of static.  Since I don't particularly want to write a
> search engine, I would probably use an existing search engine to search the
> server (true Smalltalk objects would be able to spit out a representation of
> themselves, perhaps in XML, which the indexer could use).

Just as a tip, make sure that you start with the simplest thing that could
possibly work.  Swazoo can already pass data back and forth reliably using GETs
and POSTs.  Then, on the back end, you keep some sort of collection of objects
that contain the documents.  You can even just take the MimeObjects that you
receive in a multipart/form-data POST and wrap them.  Then, when it comes time
to serve the object back, you already have its MIME type (contentType) and its
data.  That makes it a snap to serve them back.

On Signal Ground (which has gotten a bunch of hits lately, thanks to Janko's
presentation and John McIntosh's report -- thanks guys!), I do exactly this.
Images can be uploaded via a POST (where the form's enctype is
multipart/form-data), and then they're stored as-is in an Article, which gets
persisted to disk.  That means that I don't have to care if the image is a
PNG (our preference), GIF, or JPEG.  As long as the browser knows (and
sends) the correct mime type, Signal Ground will spit it right back.

If you're versioning something like word documents, searching could be a real
problem.  It's tough to rip apart that format.  I'd hold off on the searching
until the store/retrieve versions works well.

> I have downloaded some of the webdav documentation, and have begun reading
> it.  I can already tell that it is more complicated than I expected, I will
> probably try to aim for a subset at first with no support for things such as
> concurrent check-out, merging, or multiple version paths.   Perhaps one day,
> the native Smalltalk objects would be smart enough to handle these things by
> themselves.   But, to be truly accepted, it would probably need to conform
> to the webdav specs eventually.

I don't know a thing about webdav, but I'd say that this is probably a
second-phase, as well.  Would it be that hard to spec out a protocol for this?
Something like

GET /resource/folder/document+name : gets the current version
GET /resource/folder/document+name?version=5 : gets version 5
GET /resource/folder/document+name?view=showVersions : shows available
versions, with summaries and links to fetch individual versions
POST /resource/folder/document+name : done from a form with input fields for
the file itself and a summary string.  This puts a new version into the
repository

> I already have many questions for the group: is anyone else interested in
> this?

Sounds interesting to me.  :)  Don't know how much time I'll have for it --
same old excuses -- but it sounds like a neat little application.

>   How is this like/unlike the Wiki and other projects which are in
> progress?

Wikis (esp. WikiWorks) are similar in that they keep versions of the pages, but
the content (currently) is text only.  There's no file versioning.

> A useful system would require security via ACLs, and this seems
> to be a requirement for many other kinds of  apps as well- is there some
> sort of generic security system we can add to Swazoo?

This was part of our initial vision, but it hasn't been talked about much
lately.  In effect, our tree of resources (the fundamental way that things are
organized on a Swazoo site) should have mechanisms for dealing with this.  It'd
look like this:

<Site>
 <SiteIdentifier ip: '127.0.0.1' port: 8080 host: 'localhost'>
 <CompositeResource stringUriPattern: '/'>
  <ReadOnlyDocumentResource stringUriPattern: 'documents'>
  <ACLResource stringUriPattern: 'edit' aclFile: 'docs.acl'>
   <FullControlDocumentResource stringUriPattern: 'documents'>
  </CompositeResource>
 </CompositeResource>
</Site>

The ACLResource makes sure that anybody who doesn't have permission to access
/edit/documents gets a "permission denied".  It filters access to the resources
below it.

This isn't very fine-grained, but a more complex version of the ACLResource
should be able to handle it on a per-document basis.  Then, you wouldn't need
the ReadOnly guy .. the ACLResource lets people read some, not read others,
etc.  This would be more complete, but the above is nice and simple.

> What other parts of
> the system would be useful for other types of applications, and therefore
> should perhaps be broken out as separate projects?  Or perhaps this
> functionality should become part of the base Swazoo system?

You'll probably see these as you go along.  I have a similar vision -- I've
seen that various aspects of the Wiki could be very useful when building other
Swazoo resources.  So I sat down and tried to write a Wiki toolkit, and I soon
got bogged down in details.  "What if I'll want to do this later?  What about
this possible situation?"  I broke the "You aren't gonna need it" principle all
over the place.  What I should have done is worked on porting the core of
WikiWorks instead, and then refactored as I needed it.  I want to return to
this project as soon as I can, and that's the approach I'll probably take.

Long-winded answer, but I'd basically suggest the same for you.  Build it, then
chop it up.

> Thanks for your time,

Thanks for yours.  :)


Ken Treis
[hidden email]