modperl_openinteract_templating_zope_discussion

This is part of The Pile, a partial archive of some open source mailing lists and newsgroups.




To: modperl@apache.org
From: Chris Winters <chris@cwinters.com>
Subject: ANNOUNCE: OpenInteract Web Application Server
Date: Tue, 6 Feb 2001 21:57:55 -0500

I'm jazzed to announce the public release of OpenInteract, an
extensible web application framework using mod_perl and the Template
Toolkit as its core technologies.  But the README already does all the
heavy lifting:

<<<<<<<<<<

WHAT IS IT?
=========================

OpenInteract is an extensible application server using Apache and
mod_perl built for developers but also to be manageable almost
entirely via the web browser. It includes:

 - A robust system of components built on templates that can access
 your data just about any way that you can think of.

 - A very flexible separation of presentation and data access: you can
 use one template for accessing data from different sources (e.g., a
 listing of users from the system, from an LDAP server, from an NT/SMB
 authentication controller, etc.) or you can use one set of data to
 fill multiple templates.

 - A consistent security mechanism makes it a snap to control security
 for users and groups not only at the task level, but also at the
 individual data object level.

 - A simple user and group-management system that allows users to
 create their own accounts and an administrator to assign them to one
 or more groups.

 - A convenient packaging system that makes it simple for developers
 to distribute code, configuration and all other information necessary
 for an application. It also makes the installation and upgrading
 processes very straightforward.

 - An integrated, database-independent method for distributing data
 necessary for a package. You should be able to install any
 package on any database that's been tested with OpenInteract. (Some
 of this work must be done by the package authors, but OpenInteract
 tries to make this as painless as possible.)

>>>>>>>>>>

OpenInteract is available via CPAN in a bundle form
('Bundle::OpenInteract') for EZ install. SourceForge currently hosts
CVS and mailing lists at:

 http://sourceforge.net/projects/openinteract/

Other information about the project (including press releases) is
available at:

 http://www.openinteract.org/

OpenInteract is available under the same Artistic/GPL license as
Perl. Hope you find it as much fun as I do!

Chris

===
To: Chris Winters <chris@cwinters.com>
From: Perrin Harkins <perrin@primenet.com>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Tue, 06 Feb 2001 19:35:09 -0800

Chris Winters wrote:

> I'm jazzed to announce the public release of OpenInteract, an
> extensible web application framework using mod_perl and the Template
> Toolkit as its core technologies.

I've been reading the docs for the last couple of days and it looks very
interesting.  It's great to see a well-documented open source project. 
I have a couple of specific questions, which I guess are really about
SPOPS more than OpenInteract.

First, how much control do I have over what gets loaded when in objects
with dependencies?  For example, if I have an object with relationships
to other objects, some of which are expensive to fetch from the
database, can I defer certain parts from loading until I actually use
them?

Second, how hard is it to override the default load/save stuff in a
SPOPS object in order to do some fancy SQL?  I've had situations before
with O/R mappers where I want to use some more complex SQL for
efficiency reasons (optimizer hints, etc.) or to load a set of objects
at once (like a tree structure).  Is that possible with SPOPS?

Finally, if I'm using a SQL database, what support is provided for
evolving the data model?  Do I have to change my schema and write
conversion scripts every time I change an object attribute, or does
SPOPS try to use some sort of "generic" schema?

And just out of curiosity, are you familiar with any of the similar
projects that others have worked on, like Iaido (formerly Iaijutsu) or
Jellybean?

===

To: Perrin Harkins <perrin@primenet.com>
From: Chris Winters <chris@cwinters.com>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Tue, 6 Feb 2001 23:14:59 -0500

* Perrin Harkins (perrin@primenet.com) [010206 22:43]:
> Hi Chris,
> 
> I've been reading the docs for the last couple of days and it looks very
> interesting.  It's great to see a well-documented open source project. 
> I have a couple of specific questions, which I guess are really about
> SPOPS more than OpenInteract.

Hi Perrin,

Thanks for the doc comments! More work always remains....

> First, how much control do I have over what gets loaded when in objects
> with dependencies?  For example, if I have an object with relationships
> to other objects, some of which are expensive to fetch from the
> database, can I defer certain parts from loading until I actually use
> them?

Nothing gets loaded until you do a fetch() on an object or on one of
its dependent objects. For instance, in the standard user/group way of
doing things:

 # Fetch the user object
 my $user = My::User->fetch( $user_id );

 # None of the associated group objects get fetched until you ask for
 # them like this
 my $group_list = $user->group;

That said, efficiency hasn't been at the top of the list yet. (Some
basic caching hooks are there but nothing attached yet.) I'm following
Andy Wardley's example with the Template Toolkit -- make it right
first and fast second :-)

> Second, how hard is it to override the default load/save stuff in a
> SPOPS object in order to do some fancy SQL?  I've had situations before
> with O/R mappers where I want to use some more complex SQL for
> efficiency reasons (optimizer hints, etc.) or to load a set of objects
> at once (like a tree structure).  Is that possible with SPOPS?

It's not too difficult. The SQL stuff for DBI SPOPS objects actually
goes through two layers -- one dealing with more abstract notions of
'save()' and 'remove()' and the other dealing with more concrete
INSERT/UPDATE/DELETE statements.

The second one (SPOPS::SQLInterface) is quite flexible but at a lower
level which should enable you to do custom statements. You can do as
much or as little as you like -- passing a fully-formed SQL statement
with a list of values to bind does the right thing.

So if you wanted to modify how objects get saved but not removed, you
should just be able to override the 'save()' interface of SPOPS::DBI
and nothing else. But I haven't tried this yet :-) 

> Finally, if I'm using a SQL database, what support is provided for
> evolving the data model?  Do I have to change my schema and write
> conversion scripts every time I change an object attribute, or does
> SPOPS try to use some sort of "generic" schema?

It's actually much simpler than that. Since SPOPS doesn't save any
schema information in the database itself, all you have to do is add
the field to your database (with an 'ALTER TABLE' statement or
whatnot) and add the field name to the SPOPS configuration definition
in the 'field' key. Removals are the same. And datatype definitions
shouldn't require any changes at all, as long as the DBD supports
datatype discovery sufficient for SPOPS to bind variables smartly.

It's a more lightweight approach than Tangram or Alzabo but deals with
most of the issues I've run across in a few years of web (etc.)
programming.

> And just out of curiosity, are you familiar with any of the similar
> projects that others have worked on, like Iaido (formerly Iaijutsu) or
> Jellybean?

I've looked into both of them at one time or another -- OpenInteract
has been under construction for about a year and SPOPS (and ancestors)
more another half-year before that. I'm jealous of Jellybean's
self-sufficiency, of the cool apps built on Iaido so far and of the
clean model of both of them. I hope to swipe (with generous
attribution) as much as possible.

Chris

===

To: Chris Winters <chris@cwinters.com>
From: Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server 
Date: Thu, 08 Feb 2001 14:16:53 +0100

On Tuesday 6 February 2001, at 21 h 57, the keyboard of Chris Winters 
<chris@cwinters.com> wrote:

> I'm jazzed to announce the public release of OpenInteract, an
> extensible web application framework using mod_perl and the Template
> Toolkit as its core technologies.  

Anyone compared it to Zope <http://www.zope.org/>? I'm hesitating.

===
To: Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
From: Perrin Harkins <perrin@primenet.com>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server 
Date: Thu, 8 Feb 2001 10:47:00 -0800 (PST)

On Thu, 8 Feb 2001, Stephane Bortzmeyer wrote:

> On Tuesday 6 February 2001, at 21 h 57, the keyboard of Chris Winters 
> <chris@cwinters.com> wrote:
> 
> > I'm jazzed to announce the public release of OpenInteract, an
> > extensible web application framework using mod_perl and the Template
> > Toolkit as its core technologies.  
> 
> Anyone compared it to Zope <http://www.zope.org/>? I'm hesitating.

Zope has a built-in concept of folders that allows you to use it as a sort
of lame content management thing out of the box, i.e. you can edit pages
and site structure through a web browser.  (And there are other protocols
like FTP that are supposed to work, although I haven't tried them.)  
OpenInteract doesn't seem to have an equivalent.  Zope provides its own
file-based database and indexer, while OpenInteract expects you to use an
external database of some kind.  OpenInteract has pretty solid-looking
documentation.  The Zope docs are a disaster, although a forthcoming book
may improve that situation.  Some of Zope's most interesting ideas - like
Z Classes, a way to define object types at runtime through a web interface
- seem cumbersome to work with or have odd restrictions.  OpenInteract has
no equivalent that I could see.

In short, Zope wants to be more, but currently is difficult to figure
out.  That could be just my Perl experience, but I understood more of
OpenInteract in half an hour than I did with Zope after several tries over
the last few years.

===
To: Perrin Harkins <perrin@primenet.com>
From: Matt Sergeant <matt@sergeant.org>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Thu, 8 Feb 2001 23:01:45 +0000 (GMT)

On Thu, 8 Feb 2001, Perrin Harkins wrote:

> In short, Zope wants to be more, but currently is difficult to figure
> out.  That could be just my Perl experience, but I understood more of
> OpenInteract in half an hour than I did with Zope after several tries over
> the last few years.

Of course that may have a lot to do with your background. Zope isn't a
tech tool like what we have coming out for mod_perl at the moment - its a
much higher level. This is both good and bad, of course.

Personally I think CMS' are very important, but then I
would: http://axkit.com/products/axkit-cms/ :-)

===
To: Matt Sergeant <matt@sergeant.org>
From: Robin Berjon <robin@knowscape.com>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Fri, 09 Feb 2001 01:23:10 +0100

At 23:01 08/02/2001 +0000, Matt Sergeant wrote:
>Personally I think CMS' are very important, but then I
>would: http://axkit.com/products/axkit-cms/ :-)

I've been more or less following the AxKit CVS and saw a few things about
AxKit-CMS. Nice looking new site. Would you care to expand on what your
plans are ? It seems as if you haven'y really launched yet, but it's been
looking as if you've been having something in the back of your mind for
months :)

===

To: Robin Berjon <robin@knowscape.com>
From: Matt Sergeant <matt@sergeant.org>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Fri, 9 Feb 2001 00:22:22 +0000 (GMT)

On Fri, 9 Feb 2001, Robin Berjon wrote:

> At 23:01 08/02/2001 +0000, Matt Sergeant wrote:
> >Personally I think CMS' are very important, but then I
> >would: http://axkit.com/products/axkit-cms/ :-)
> 
> I've been more or less following the AxKit CVS and saw a few things about
> AxKit-CMS. Nice looking new site. Would you care to expand on what your
> plans are ? It seems as if you haven'y really launched yet, but it's been
> looking as if you've been having something in the back of your mind for
> months :)

Its slowly coming along, so I put up the page to see if there was
interest. I guess I'll see if I get commercial enquiries or not. I'm still
unsure about the whole open source "Make money off
consultancy/support" model of business, since its a headcount game, and I
may just commercialise it, but I don't want to if I can help it.

As for the spec/plans, well most of the details are on the site, I'll
reveal more as time goes by. :-) Expect it to develop pretty rapidly from
here on out.

===

To: Matt Sergeant <matt@sergeant.org>
From: Robin Berjon <robin@knowscape.com>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Fri, 09 Feb 2001 02:16:48 +0100

At 00:22 09/02/2001 +0000, Matt Sergeant wrote:
>> I've been more or less following the AxKit CVS and saw a few things about
>> AxKit-CMS. Nice looking new site. Would you care to expand on what your
>> plans are ? It seems as if you haven'y really launched yet, but it's been
>> looking as if you've been having something in the back of your mind for
>> months :)
>
>Its slowly coming along, so I put up the page to see if there was
>interest. I guess I'll see if I get commercial enquiries or not. I'm still
>unsure about the whole open source "Make money off
>consultancy/support" model of business, since its a headcount game, and I
>may just commercialise it, but I don't want to if I can help it.

I nearly sent an enquiry then I remembered that I was on the because of
something I read on the list so I thought I'd post here. I guess you could
count that as one :)

The open source + consultancy model is tricky, and I think that the devil's
in the details. My company's been providing mostly open source solutions
(the "mostly" is because over time we've developped stuff that hasn't been
released, but will be as I progressively un-ad hoc it) for four years and
we're doing well. In those four years it happened a few times that some
customers decided that it would be a better investment for them if they
employed their own techs to build upon what we'd made for them instead of
turning to us for that but we've found that to be a marginal case, and even
then those customers still turn to us for the bits they don't think their
techs can handle as well. It's a different model (we customize and
integrate more than we actually produce) but it bears a relationship. We
certainly never felt we had to try to encrypt the code we provided to our
customers or to documentation-starve them in order to force them to stay
with us.

I think there's a line between support and consultancy that can make a
difference. If the product you supply is very end-user orientated then
you'll need to supply more support than consultancy, and that will cost you
a lot in customer service if you want to do it in a way that will satisfy
your consumers. Support can be sold only for so much, so you'll need to be
sure that your product will be used by many people for it to be profitable.
That angle only works imho for very generic and widespread tools (eg
linux). For those products, either giving up the idea of making money from
the project entirely or going shareware and assimilated is probably best.

If on the other it is a less used product that will more likely be bought
by IT departments instead of simple end users, then consulting + open
source works imho. The way to see it I think is that open source has a
value which IT people will try to gauge against the value (in terms of
money) at which another closed source project in the same sector is
selling. If you try to go commercial in such areas, you'll have basically
two levels of pricing. The first one is more or less as high as the big
players in your field, in which case you'll need to have all the sales and
marketing and advertising people to go with it. Possible, but it's a bet
and it would take some serious VC. Or target the lower end pricing. In that
case you'll have to deal with the fact that people instictively think
cheaper = lesser, which is always a problem. And where people think beyond
that (which is rare) you'll face the buy this commercial software and
that's it vs use this open source software and invest the money in some
consulting conundrum, the outcome of which at that price level is often to
go for the latter (in my experience). If you're not going to go the big CMS
player route straight away, then I think Open Source + consulting is a more
viable model than pure commercial (ie it'll be more successful and make
more money).

I've talked for longer than I expected. This brings up something I've been
thinking of for some time. I've been wondering a while if some sort of
"modperl for professionals" (very bad name, I know) list would be of
interest to the community. I know that most people on the list that use
modperl are "professionals" (hence the fact that it is a bad name) but some
of us use it internally (to produce a project that is a company project)
while others sell modperl based solutions to others (creating the dynamic
backend for someone else's project). That latter group could have things to
share that are not technical and not just advocacy (or are too specific for
it). Maybe I'm not the only one wondering which is the best way to sell a
modperl solution based 100% on open source stuff to a company. On the other
hand, yet another mailing list might not be the solution.

===
To: Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
From: Chris Winters <chris@cwinters.com>
Subject: Re: ANNOUNCE: OpenInteract Web Application Server
Date: Thu, 8 Feb 2001 22:41:33 -0500

* Stephane Bortzmeyer (bortzmeyer@pasteur.fr) [010208 08:28]:
> On Tuesday 6 February 2001, at 21 h 57, the keyboard of Chris Winters 
> <chris@cwinters.com> wrote:
> 
> > I'm jazzed to announce the public release of OpenInteract, an
> > extensible web application framework using mod_perl and the Template
> > Toolkit as its core technologies.  
> 
> Anyone compared it to Zope <http://www.zope.org/>? I'm hesitating.

Hi Stephane,

Sorry I missed the conversation earlier. Rotten time for the power to
go out on my mail server...

Well, everyone who has worked on OpenInteract would certainly be
flattered by such a comparison. I think a lot of people have been
inspired (and even made a little jealous) by Zope and the attention
its drawn to Python. Competition is a healthy thing. :-)

To be honest, I don't know as much about Zope as I probably
should. However, after tooling around with it for a bit there were a
number of lessons I've drawn.

* Make it easy to develop custom modules. Like Zope, OpenInteract makes
it pretty simple to write a self-contained module that implements some
functionality, package it all up and send it to someone else to
install on their server.

* Make installation easy. Zope has an easier time of this because it's
more self-contained, but it's extremely important for people to
install the server without going through painful contortions. My
experience with many other software packages has been this -- if I can
get something running quickly, it's worth my while to look into it
further. 

* Be consistent. In Zope, everything is (or is supposed to be) an
object. We try to do the same thing. This makes certain tasks (like
object/task security or relating entirely disparate things) possible
and even pretty easy. Once you've got the mindset it also opens up
interesting possibilities :-)

* Even awkward browser-based tools can work. Using TEXTAREA boxes to
create templates and pages is clunky but amazingly handy. And for most
people it's all they need. People who know what they're doing can
import templates to the database in their sleep, but don't design
everything around them.

I'm sure there are more similiarities and differences. (Along with
strengths and weaknesses, but we can do that on the openinteract-dev
mailing list. :-) I'd be interested in what people who know more about
Zope think are its strengths and weaknesses.

===

To: "Matt Sergeant" <matt@sergeant.org>,
From: "L.M.Orchard" <deus_x@pobox.com>
Subject: Re: [Templates] Re: ANNOUNCE: OpenInteract Web
Application Server
Date: Thu, 8 Feb 2001 22:00:25 -0800

From: "Matt Sergeant" <matt@sergeant.org>
Sent: Thursday, February 08, 2001 03:01 PM


> On Thu, 8 Feb 2001, Perrin Harkins wrote:
>
> > In short, Zope wants to be more, but currently is difficult to figure
> > out.  That could be just my Perl experience, but I understood more of
> > OpenInteract in half an hour than I did with Zope after several tries
over
> > the last few years.
>
> Of course that may have a lot to do with your background. Zope isn't a
> tech tool like what we have coming out for mod_perl at the moment - its a
> much higher level. This is both good and bad, of course.
>
> Personally I think CMS' are very important, but then I
> would: http://axkit.com/products/axkit-cms/ :-)

Zope has a very cool concept behind it, an object oriented web, where every
resource behind every URL is an instantiation of a class.  Every URL
resource is both content and active component.  The idea is that there is
intelligence behind each piece of content, particular to that piece of
content.   A PDF object is not just a PDF file, it's also an interface to
index the PDF, provide a summary of itself to an RSS file producer for
example.  Folders in the path to a piece of content can affect that content,
so a particular piece of content can take on a different character depending
upon where it is placed.  It's more than just a CMS system, it's object
orientation as applied to web resources.

Whereas in OpenInteract, every piece of content is managed by a central
component and one of its methods.  Like /BasicPage/edit?id=2345.  This is
more like a procedural model than Zope's OO model.  I'm still digging into
OpenInteract, having just installed it a few nights ago.  Still don't have
much else to say about OI, though it looks pretty neato keen.

Anyway, as for the complexity of Zope: If I understand the architecture
correctly, is that Zope is the combination of what used to be three separate
systems.  I know one was persistence, the other was an ORB exposing object
methods to web calls, not sure of the third.  Maybe the templating system?
But to me, it seems that they've been joined together in a Frankenstein
kinda way.  I mean you see things like "bobobase_modification_time" as the
standard object property, and a jumble of other non-intuitively named
properties, API calls.  Not to mention that the DTML language doesn't
resemble any other templating language I've seen, nor does it seem to have
an easily graspable rhyme or reason for things.  And, one of my pet peeves,
they're trying to make it "XML compliant".  Which to me means that it's
looking more and more like the HTML I'm templating, and that's bad.  I would
like my template language to look distinct enough from what I'm templating,
like Template Toolkit's [% %] default construct.

So add on top of that a sparse patch of docs, and it's hard to wrap one's
brain around.

Now, if only I could get back to un-mothballing Iaijutsu/Iaido and do Zope
the right way under perl... :)

===

To: "L.M.Orchard" <deus_x@pobox.com>
From: Perrin Harkins <perrin@primenet.com>
Subject: Re: [Templates] Re: ANNOUNCE: OpenInteract Web
Application Server
Date: Fri, 9 Feb 2001 11:03:23 -0800 (PST)

On Thu, 8 Feb 2001, L.M.Orchard wrote:
> Now, if only I could get back to un-mothballing Iaijutsu/Iaido and do Zope
> the right way under perl... :)

When I first looked at OI, I was thinking that it has a lot of the
plumbing (O/R mapping, security model, application model) covered and you
could probably write something like Iaido as an object publisher for
it.  I know Iaido has quite a few whizbang features that aren't currently
in OI, but I think they could be fit into it, to the benefit of all.

===

To: "L.M.Orchard" <deus_x@pobox.com>
From: Chris Winters <chris@cwinters.com>
Subject: Re: [Templates] Re: ANNOUNCE: OpenInteract Web
Application Server
Date: Wed, 7 Feb 2001 00:46:49 -0500

* L.M.Orchard (deus_x@pobox.com) [010207 00:07]:

> So, I'm trying to install OpenInteract now since from 50,000 ft it sounds a
> lot like what I was trying to do with Iaido.  Using Template Toolkit for the
> presentation...  abstracted data management...  Need to look around more.
> I'd be more than glad to help you and maybe even have Iaido get eaten up by
> your project since I seem to have lost the momentum to sustain it by myself.
> There are a lot of neat things going in in Iaido, and still on my TODO list
> for it to get completely tossed, though.  (Like, I really want to get that
> FTPd interface to the data store up and running again :) )
> 
> Anyway, having major problems getting past the oi_manage install_sql step so
> far, maybe I'll post to the -dev list or the bugs on sourceforge.

It's probably early to talk about one project swallowing another :-)
I'm certainly not shy about looking for great ideas wherever they
are. And now that OpenInteract is out I hope to take a step back and
look at other environments for inspiration. (Building some services on
top of POE would be extremely cool, for starters.)

One of the things OpenInteract has going for it is that a company
(intes.net) uses it constantly and pays people to develop applications
for it. I'm finding how difficult it is to do more programming after
hours, even fun stuff like this.

This is getting rapidly OT. Moving this onto the -dev list is a good
idea.

Thanks,

Chris


===

the rest of The Pile (a partial mailing list archive)

doom@kzsu.stanford.edu