durusmail: quixote-users: Quixote programming notes
Quixote programming notes
2001-06-07
2001-06-08
2001-06-08
2001-06-08
Quixote programming notes
Greg Ward
2001-06-08
On 07 June 2001, Andrew Kuchling said:
> I've just checked the following in as doc/programming.txt.
> Comments?
>
> And is there anything else that needs to be done before
> we can make a 0.3 release?

I think the biggest outstanding problems are:
  * logging doesn't work with CGI scripts (something about our
    log-opening code depends on how fastcgi.py fiddles stdout)
  * we should ditch Zope's HTTP{Request,Response} classes
    and write our own

I don't think either of these should stand in the way of releasing the
damn thing.  I think it should be said somewhere that running as plain
CGI doesn't work very well yet and will be addressed in a future
release.

Also, I would like to tweak some of the docs you've written, but I'm
going away for the weekend (in about an hour), so won't have time to do
that before Monday at the earliest.  If you want to release this
weekend, oh well -- I can always tweak the docs later.

BTW, I've already starting writing HTTPRequest, but got bogged down
because I don't really understand multipart form data, and the
interactions between Python's cgi.py and Zope's HTTPRequest are, shall
we say, intricate...

Oh yeah, comments on programming.txt:

> 1) A FastCGI script, usually called books.fcgi.  This script will
                       ^^^^^^^
"in this case" would be more apt

You might want to say a little more about the sample app up-front apart
from its name.

A sample app that deals with books is likely to deal with publishers: I
can see someone getting very confused over the Quixote "publisher"
object and the (presumed) 'publisher' attribute of Book objects.

>    FastCGI isn't an absolute requirement.  It should be trivially easy
>    to run Quixote apps using regular CGI, but this would be quite slow
>    due to the number of modules that need to be imported at startup
>    time.  We haven't tried to run Quixote under mod_python/mod_snake,
>    but it shouldn't be too difficult; if you try it, please let us
>    know how it goes.

Fiddlesticks -- vfab.fcgi is slow in RUN_ONCE mode because we have
33,000 lines of code in our system, the overhead of connecting to a ZEO
server, an object database with 70,000 objects in it, etc.  SPLAT! (with
1,000 LoC and a private Berkeley DB file) is just fine in RUN_ONCE mode,
and that's a much more realistic model of the kind of app people are
going to be throwing together.  Plain old CGI will work just fine for
small apps on fast servers... except for the fact that Quixote is buggy
for plain old CGI right now.

> 2) A configuration file, usually called books.conf.  This file sets
                           ^^^^^^^
"in this case" or similar wording again

> FastCGI script
> ==============
>
> The FastCGI script can be very simple:
>
>         books.fcgi
>       ----------
> #!/usr/bin/python

On most Linux boxen today, this is Python 1.5.2... and Quixote requires
Python 2.0.  Better state that somewhere!

Just skimmed the rest.  I would remove references to the MEMS Exchange
(apart from boasting about the size and complexity of the problem, since
Quixote has been a real boon in dealing with it) -- nobody knows what
the hell a MEMS process sequence is, and wondering about it isn't going
to help them write web apps.

        Greg
--
Greg Ward - software developer                gward@mems-exchange.org
MEMS Exchange                            http://www.mems-exchange.org


reply