From: Friedrich Domincus
Subject: mod_lisp User?
Date: 
Message-ID: <87k7tpqp4f.fsf@fbigm.here>
Well I was wondering who is using mod_lisp with Apache and what are
you doing with it? 

Regards
Friedrich

From: Dr. Edmund Weitz
Subject: Re: mod_lisp User?
Date: 
Message-ID: <m3aduljovp.fsf@bird.agharta.de>
Friedrich Domincus <·····@q-software-solutions.com> writes:

> Well I was wondering who is using mod_lisp with Apache and what are
> you doing with it? 
> 
> Regards
> Friedrich

I recently used it for a client who wanted to add an appointment
synchronization feature to his web calendar. I prototyped the
feature with CMUCL and mod_lisp and showed him how it would
work. But, alas, the production application had to be written in PHP
(like the rest of the calendar) although the CMUCL code was half as
long and ten to fifteen times as fast...

Edi.
From: Marc Battyani
Subject: Re: mod_lisp User?
Date: 
Message-ID: <64D61F5B5DCFA11A.54F21041DB713F7A.1FC7E749D853E86F@lp.airnews.net>
"Dr. Edmund Weitz" <···@agharta.de> wrote in
> Friedrich Domincus <·····@q-software-solutions.com> writes:
>
> > Well I was wondering who is using mod_lisp with Apache and what are
> > you doing with it?

I have used it for several commercial and not commercial web sites as well
as several web services. Mostly in intranets for big companies and always on
FreeBSD and Linux so far.

I'm also interested in what are people doing with it. Send me an email if
you don't want to post in c.l.l.
Last time I looked, there have been 1170 downloads of mod_lisp. It's much
more than I expected.

> I recently used it for a client who wanted to add an appointment
> synchronization feature to his web calendar. I prototyped the
> feature with CMUCL and mod_lisp and showed him how it would
> work. But, alas, the production application had to be written in PHP
> (like the rest of the calendar) although the CMUCL code was half as
> long and ten to fifteen times as fast...

Too bad! I hope you will have more luck next time....

Marc
From: Dr. Edmund Weitz
Subject: Re: mod_lisp User?
Date: 
Message-ID: <m3y9i4iwoq.fsf@bird.agharta.de>
"Marc Battyani" <·············@fractalconcept.com> writes:

> I have used it for several commercial and not commercial web sites
> as well as several web services. Mostly in intranets for big
> companies and always on FreeBSD and Linux so far.

Could you elaborate a bit on that (if your NDAs allow)? I'd be
interested if these were projects where you started from scratch or
where you rather hooked into an existing application. How hard was it
to convince your customers not to use Java, Perl, whatever? Did you
interface to RDMSs? Did you yourself see any particular reasons to do
it in Lisp (apart from the obvious fact that you were able to use your
favorite language)?

Thanks,
Edi.

PS: Talking about mod_lisp - I don't know how hard this would be (I
haven't looked at the source code yet and I've only written one small
Apache module in C myself), but there a some 'missing' features that
I'd like to have (if I'm allowed to utter my wishes): One think that I
particularly like about mod_perl is its ability to hook directly into
the various request handler phases of Apache. I'm currently working on
an application where PHP (yuck!) is doing the grunt work while a
mod_perl module registers to be Apache's cleanup handler and does some
work behind the scenes while the browser is already done with the
request. PHP and mod_perl communicate via Apache's notes table. It
would be rather cool if something similar were possible with mod_lisp,
i.e.

- only doing parts of Apache's request cycle
  (authorization, URI rewriting, cleanup, ...)
- reading from and writing to Apache's notes table
- writing to Apache's log file
- various other things (?)

What do you think?


-- 

Dr. Edmund Weitz
Hamburg
Germany

The Common Lisp Cookbook
<http://agharta.de/cookbook/>
From: Friedrich Domincus
Subject: Re: mod_lisp User?
Date: 
Message-ID: <87sn8c76o1.fsf@fbigm.here>
···@agharta.de (Dr. Edmund Weitz) writes:

> "Marc Battyani" <·············@fractalconcept.com> writes:
> 
> > I have used it for several commercial and not commercial web sites
> > as well as several web services. Mostly in intranets for big
> > companies and always on FreeBSD and Linux so far.
> 
> Could you elaborate a bit on that (if your NDAs allow)? I'd be
> interested if these were projects where you started from scratch or
> where you rather hooked into an existing application. How hard was it
> to convince your customers not to use Java, Perl, whatever? Did you
> interface to RDMSs? 

Well I tried to understand how to use it but I failed. So I would
appricate too if some code was posted...

Regards
Friedrich
From: Dr. Edmund Weitz
Subject: Re: mod_lisp User?
Date: 
Message-ID: <m3pu3gif3a.fsf@bird.agharta.de>
Friedrich Domincus <·····@q-software-solutions.com> writes:

> Well I tried to understand how to use it but I failed. So I would
> appricate too if some code was posted...

Did you try to run one of the contributions (the one that fits your
implementation - LW, I suppose) from the mod_lisp download page?

Let me know what didn't work and maybe I can help you.

Edi.

-- 

Dr. Edmund Weitz
Hamburg
Germany

The Common Lisp Cookbook
<http://agharta.de/cookbook/>
From: Marc Battyani
Subject: Re: mod_lisp User?
Date: 
Message-ID: <CA7318BFCB03EC62.E17B73870E92A214.A15FCC69027E4C11@lp.airnews.net>
"Dr. Edmund Weitz" <···@agharta.de> wrote
> "Marc Battyani" <·············@fractalconcept.com> writes:
>
> > I have used it for several commercial and not commercial web sites
> > as well as several web services. Mostly in intranets for big
> > companies and always on FreeBSD and Linux so far.
>
> Could you elaborate a bit on that (if your NDAs allow)? I'd be
> interested if these were projects where you started from scratch or
> where you rather hooked into an existing application. How hard was it
> to convince your customers not to use Java, Perl, whatever? Did you
> interface to RDMSs? Did you yourself see any particular reasons to do
> it in Lisp (apart from the obvious fact that you were able to use your
> favorite language)?

The last one I have done is a Single Sign On service (SSO) for an intranet.
It works by providing the user an identification page and then the corporate
applications can ask the SSO service (as a web service) if the user is
identified. The SSO takes the authentication data in an LDAP database. The
applications talking to the SSO are in Java and ASP(M$). This works on 2
dual PIII 1.2GHz 1Gb RAM Linux boxes.
No DBMS except LDAP which is a rather specialized one.
They accepted Lisp because
-They were in a hurry and only Lisp could deliver a reliable and solution
with good performance in the delivery schedule
-I only write in Lisp (and VHDL) except for low level stuff like device
drivers etc.

> PS: Talking about mod_lisp - I don't know how hard this would be (I
> haven't looked at the source code yet and I've only written one small
> Apache module in C myself), but there a some 'missing' features that
> I'd like to have (if I'm allowed to utter my wishes): One think that I
> particularly like about mod_perl is its ability to hook directly into
> the various request handler phases of Apache. I'm currently working on
> an application where PHP (yuck!) is doing the grunt work while a
> mod_perl module registers to be Apache's cleanup handler and does some
> work behind the scenes while the browser is already done with the
> request. PHP and mod_perl communicate via Apache's notes table. It
> would be rather cool if something similar were possible with mod_lisp,
> i.e.

> - only doing parts of Apache's request cycle
>   (authorization, URI rewriting, cleanup, ...)

Well for me Lisp was to be used to write the application, not the URI
rewriting stuff
For authorization, you can already do this with mod_lisp. but only for your
requests.

> - reading from and writing to Apache's notes table

Again the notes table is to comunicate between the different stages of the
request processing. For now, mod_lisp doesn't want to talk to other layers
;-)

> - writing to Apache's log file

Already done. At least for the error log. if it's not already done for the
normal log it could easilly be added

> - various other things (?)

Sure. Load balancing for instance.

> What do you think?

Time is a very very hard to find resource....
If you have some time, I can work on this with you.

Marc
From: Reini Urban
Subject: Re: mod_lisp User?
Date: 
Message-ID: <3C6915DE.6749CC43@x-ray.at>
"Dr. Edmund Weitz" schrieb:
> PS: Talking about mod_lisp - I don't know how hard this would be (I
> haven't looked at the source code yet and I've only written one small
> Apache module in C myself), but there a some 'missing' features that
> I'd like to have (if I'm allowed to utter my wishes): One think that I
> particularly like about mod_perl is its ability to hook directly into
> the various request handler phases of Apache. I'm currently working on
> an application where PHP (yuck!) is doing the grunt work while a
> mod_perl module registers to be Apache's cleanup handler and does some
> work behind the scenes while the browser is already done with the
> request. PHP and mod_perl communicate via Apache's notes table. It
> would be rather cool if something similar were possible with mod_lisp,
> i.e.

what do you want to cleanup exactly?
php sessions or external objects?

I'm also fighting with php's inabilities to register some apache handlers.
not talking about debugging, which is a nightmare.
with mod_perl you can do a lot, but mostly you shoot in your foot.
mod_lisp upgraded to some (or all?) apache handlers as in mod_perl would be
cool.

> - only doing parts of Apache's request cycle
>   (authorization, URI rewriting, cleanup, ...)
> - reading from and writing to Apache's notes table
> - writing to Apache's log file
> - various other things (?)
-- 
Reini Urban
  http://xarch.tu-graz.ac.at/home/rurban/
  http://tv.mur.at/ (kulturelles)
From: Dr. Edmund Weitz
Subject: Re: mod_lisp User?
Date: 
Message-ID: <m3ofiumzni.fsf@dyn138.dbdmedia.de>
Reini Urban <······@x-ray.at> writes:

> what do you want to cleanup exactly?
> php sessions or external objects?

This was an application I had written for a customer where the users
could upload files to the web server and the files were converted to
various other formats upon arrival. I put the conversion phase (which
mostly consisted of system calls to helper apps like ImageMagick) in a
cleanup handler, so the browser didn't have to wait for the conversion
to finish (and thus the user wasn't able to interrupt the conversion
by pressing the "Stop" button in his browser).

The original app was written in mod_perl and made use of mod_perl's
ability to dynamically register cleanup handlers on demand. The app is
now being re-written in PHP (sigh) and we'll have to find a way to
emulate mod_perl's cleanup handler. (We don't want each Apache child
to load a Perl interpreter just for some system calls in the cleanup
phase.) So I'm just writing a small cleanup handler in C which'll get
its instructions from PHP writing into Apache's notes table.

I think Apache's model of handler phases is quite nice and I would
love to have abitilies comparable to mod_perl's in Lisp.

> I'm also fighting with php's inabilities to register some apache
> handlers.  not talking about debugging, which is a nightmare.  with
> mod_perl you can do a lot, but mostly you shoot in your foot.

Yeah, you can shoot yourself in the foot, but I still like it better
than PHP. PHP is about the worst programming environment I ever had to
work with... :(

Cheers,
Edi.

-- 

Dr. Edmund Weitz
Hamburg
Germany

The Common Lisp Cookbook
<http://agharta.de/cookbook/>
From: Frederic Brunel
Subject: Re: mod_lisp User?
Date: 
Message-ID: <laeljvlx7c.fsf@buzz.in-fusio.com>
···@agharta.de (Dr. Edmund Weitz) writes:

> Friedrich Domincus <·····@q-software-solutions.com> writes:
> 
> > Well I was wondering who is using mod_lisp with Apache and what are
> > you doing with it? 
> > 
> > Regards
> > Friedrich
> 
> I recently used it for a client who wanted to add an appointment
> synchronization feature to his web calendar. I prototyped the
> feature with CMUCL and mod_lisp and showed him how it would
> work. But, alas, the production application had to be written in PHP
> (like the rest of the calendar) although the CMUCL code was half as
> long and ten to fifteen times as fast...
> 
> Edi.

Tell me if I am wrong but mod_lisp act as a client and send apache
HTTP request to a unique Lisp process, right? So what can happens if
the Lisp process take too much time to respond? Apache will not be
able to respond to another request as long as the Lisp process is
still working? In other words, if your Lisp implementation does not
have any multiprocessing capabilities it will be very difficult to
handle a huge number of request.

-- 
Frederic Brunel
Software Engineer
In-Fusio, The Mobile Fun Connection
From: Marc Battyani
Subject: Re: mod_lisp User?
Date: 
Message-ID: <89EAD062B7F40A48.2404253D280D3373.E08444105E80DE93@lp.airnews.net>
"Frederic Brunel" <··········@in-fusio.com> wrote
> ···@agharta.de (Dr. Edmund Weitz) writes:
>
> > I recently used it for a client who wanted to add an appointment
> > synchronization feature to his web calendar. I prototyped the
> > feature with CMUCL and mod_lisp and showed him how it would
> > work. But, alas, the production application had to be written in PHP
> > (like the rest of the calendar) although the CMUCL code was half as
> > long and ten to fifteen times as fast...
> >
> > Edi.
>
> Tell me if I am wrong but mod_lisp act as a client and send apache
> HTTP request to a unique Lisp process, right? So what can happens if
> the Lisp process take too much time to respond? Apache will not be
> able to respond to another request as long as the Lisp process is
> still working? In other words, if your Lisp implementation does not
> have any multiprocessing capabilities it will be very difficult to
> handle a huge number of request.

You are right. mod_lisp is only a connector between Apache and the Lisp
process. If your Lisp process has no multiprocessing capabilities, you will
probably have troubles...
The current generational GCs have also some problems to handle many threads.
On the other hand, being a single process has many advantages from an
application point of view.
I plan to add load balancing features in mod_lisp in an indeterminate future
(for now I work on CL-PDF)

If you have some ideas on the subject, I would be interested.

Marc