You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by Damon Courtney <da...@your.unreality.com> on 2003/01/15 22:57:49 UTC

Just a database

Ok,

    Here's the thing.  One of the best (and most-used features) of
NeoWebScript was the fact that it had an underlying database in
every installation (it used Berkeley's DB).  This gave way to a whole
slew of useful commands not only for the user to have a solid database
but also for easy commands for a programming newbie.

    I want Rivet to have this same kind of ease.  I want Rivet to ship
with a database.  A small one, but a database.  Like all the other
commands, it would not be loaded until it was needed, but I think having
it there really makes for a better program.  People who went on later to
install NeoWebScript on their own machines were lost if the database
commands didn't work.  They were the most used part of the program (from
the user perspective).

    So, my proposal is to use GDBM (a very small 40k library when compiled)
as the database.  I have already written a very easy Tcl interface to
GDBM, and I plan to add a DIO class for it as well.  Any opinions on this?
I know David doesn't like to ship too much stuff, but I'm not advocating
this be loaded into every Rivet instance.  Just there when you need it.

    It's kind of the new Tcl philosophy.

    Small core        == Good.  Static executables   == Bad.
    Core only distros == Bad.   Fully-loaded distros == Good.

D


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


Re: Just a database

Posted by "David N. Welton" <da...@dedasys.com>.
Damon Courtney <da...@your.unreality.com> writes:

> > >     So, my proposal is to use GDBM (a very small 40k library when
> > > compiled) as the database.

> > The problem is that it is GPL'ed software, and that means
> > licensing problems...

>     Doesn't that just mean that we have to distribute the source
> code for GDBM (which we'll do anyway)?  I guess I don't understand
> everything about the GPL.

Well, the ASF doesn't want anyone to 'pollute' their sources with GPL
code, as that means the whole thing has to be GPL.  We want everything
to be distributable under the ASF license.  Does that make sense?  If
not, I can find a clearer explanation somewhere.

We could of course ship an interface to gdbm, but that's not quite
what you had in mind:-/

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


Re: Just a database

Posted by Damon Courtney <da...@your.unreality.com>.
> Damon Courtney <da...@your.unreality.com> writes:
> 
> >     I want Rivet to have this same kind of ease.  I want Rivet to
> > ship with a database.  A small one, but a database.
> 
> That sounds like a good idea.  It's not too much extra, and it could
> be quite useful.
> 
> >     So, my proposal is to use GDBM (a very small 40k library when
> > compiled) as the database.
> 
> The problem is that it is GPL'ed software, and that means licensing
> problems...

    Doesn't that just mean that we have to distribute the source code
for GDBM (which we'll do anyway)?  I guess I don't understand everything
about the GPL.

D


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


Re: Just a database

Posted by "David N. Welton" <da...@dedasys.com>.
Damon Courtney <da...@your.unreality.com> writes:

>     I want Rivet to have this same kind of ease.  I want Rivet to
> ship with a database.  A small one, but a database.

That sounds like a good idea.  It's not too much extra, and it could
be quite useful.

>     So, my proposal is to use GDBM (a very small 40k library when
> compiled) as the database.

The problem is that it is GPL'ed software, and that means licensing
problems...

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


RE: Just a database

Posted by Damon Courtney <da...@your.unreality.com>.
> Any built-in database capability would be great, especially if it doesn't
> require 'outside' configuration, database connections, ODBC, and the like.
> Just something simple for smaller databases to handle session, temporary
> user data, etc.
> 
> I'm not familiar with GDBM, but do have some experience with Metakit. Is
> that an option, or is it too large?

    MetaKit is definitely an option, and one which I would greatly
consider.  GDBM is just a hash table database.  Very simple.  The interface
is very easy to use and doesn't include much.  Just storing keys and values
in hash tables for later retrieval.  The Tcl interface provides key searching
and the like.

    MetaKit is a great candidate too.  Many more features, though it can
probably get a little heavy.  But, we're definitely talking a file-based
database storage system.  No external servers.  NWS was beautiful at
doing this.

    By the by, whatever database we choose, DIO will probably always be
the recommended method for database calls in Rivet.  It wouldn't take much
to add a MetaKit DIO class (or GDBM for that matter).  Of course, the mk::
commands will still available, should you choose to use them, but DIO will
make for far greater portability in the future (which was its intended
design).

    GDBM even has an interface called SQLite that translates SQL calls and
uses directory structure and GDBM files to simulate a SQL database.  This
is great for using simple SQL code without a real server process to worry
about.

D


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


RE: Just a database

Posted by Jeff Rankin <jr...@oneil.com>.
Any built-in database capability would be great, especially if it doesn't
require 'outside' configuration, database connections, ODBC, and the like.
Just something simple for smaller databases to handle session, temporary
user data, etc.

I'm not familiar with GDBM, but do have some experience with Metakit. Is
that an option, or is it too large?

- Jeff

> -----Original Message-----
> From: Damon Courtney [mailto:damon@your.unreality.com]
> Sent: Wednesday, January 15, 2003 4:58 PM
> To: Rivet Development List
> Subject: Just a database
>
>
> Ok,
>
>     Here's the thing.  One of the best (and most-used features) of
> NeoWebScript was the fact that it had an underlying database in
> every installation (it used Berkeley's DB).  This gave way to a whole
> slew of useful commands not only for the user to have a solid database
> but also for easy commands for a programming newbie.
>
>     I want Rivet to have this same kind of ease.  I want Rivet to ship
> with a database.  A small one, but a database.  Like all the other
> commands, it would not be loaded until it was needed, but I think having
> it there really makes for a better program.  People who went on later to
> install NeoWebScript on their own machines were lost if the database
> commands didn't work.  They were the most used part of the program (from
> the user perspective).
>
>     So, my proposal is to use GDBM (a very small 40k library when
> compiled)
> as the database.  I have already written a very easy Tcl interface to
> GDBM, and I plan to add a DIO class for it as well.  Any opinions on this?
> I know David doesn't like to ship too much stuff, but I'm not advocating
> this be loaded into every Rivet instance.  Just there when you need it.
>
>     It's kind of the new Tcl philosophy.
>
>     Small core        == Good.  Static executables   == Bad.
>     Core only distros == Bad.   Fully-loaded distros == Good.
>
> D
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
> For additional commands, e-mail: rivet-dev-help@tcl.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org