From svc at mac.com Thu Feb 2 09:04:48 2006
From: svc at mac.com (Sven Van Caekenberghe)
Date: Thu, 2 Feb 2006 10:04:48 +0100
Subject: [kpax-devel] Re: s-sysdep warning
In-Reply-To: <78d2fb3b0602012140o5a673d03j345e534eb69cb265@mail.gmail.com>
References: <78d2fb3b0602012140o5a673d03j345e534eb69cb265@mail.gmail.com>
Message-ID: <689C7A89-BC82-4617-9322-FF35B586772E@mac.com>
Robert,
On 02 Feb 2006, at 06:40, Robert Brown wrote:
> I recently compiled s-sysdep with SBCL. It warned about a declare
> inside
> a progn. Here is a diff that eliminates the warning.
Thanks for the patch.
I added some more declarations so that on my SBCL (0.9.7 on Mac OS X)
there are no more warnings.
Sven
--
Sven Van Caekenberghe - http://homepage.mac.com/svc
Beta Nine - software engineering - http://www.beta9.be
My Open Source Common Lisp Software:
http://homepage.mac.com/svc/open-source-common-lisp.html
From frido at q-software-solutions.de Fri Feb 3 12:22:00 2006
From: frido at q-software-solutions.de (Friedrich Dominicus)
Date: Fri, 03 Feb 2006 13:22:00 +0100
Subject: [kpax-devel] A first round of questions
Message-ID: <87lkwsmy3b.fsf@flarge.here>
Ok here we go, how do I have to setup mod-lisp-server to get it
running properly?
At the moment and as is at the moment there are problems with paths to
the diverse example files.
My Apache setup looks like this at the moment:
LoadModule lisp_module /usr/lib/apache2/modules/mod_lisp2.so
# LispServer 127.0.0.1 3000 "ucw"
LispServer 127.0.0.1 2001 "kpax"
SetHandler lisp-handler
That's obviously not sufficient to get the examples running properly.
Regards
Friedrich
From scaekenberghe at common-lisp.net Sat Feb 4 13:55:17 2006
From: scaekenberghe at common-lisp.net (Sven Van Caekenberghe)
Date: Sat, 4 Feb 2006 14:55:17 +0100
Subject: [kpax-devel] Installing KPAX
Message-ID: <9DBC2965-0AF8-4425-B4DA-CC41E994917E@common-lisp.net>
Installing KPAX
The KPAX Common Lisp Web Application Framework is open-source
software, licensed under the LLGPL. All other packages that KPAX
depends on (cl-who, puri, s-utils, s-sysdeps, s-base64 and one or
both of s-http-server and aserver, as well as all packages that these
depends on) are also open-source. This means that you have to first
obtain their source code, compile it and finally load it.
In order to manage compilation and load order of individual files, as
well as compilation and load order of whole packages, KPAX and all
its dependencies, are using ASDF. This means that compilation and
loading are very easy, once things are set up properly.
KPAX allows you to write web applications that can be deployed in
three different contexts:
- behind apache using mod_lisp
- behind portable allegro server
- standalone using s-http-server
KPAX strictly separates static from dynamic content. In the first
context, apache handles static content directly, while dynamic
content goes through mod_lisp that passes it to your common lisp
system - this is the preferred production setup. In the second and
third context, both the static and the dynamic content are handled by
your common lisp system - might be easier during development and is
certainly easier
There is one internal ASDF system called kpax-core that contains most
of the framework's code but none of the execution contexts. Three
ASDF systems corresponding to each of the three contexts, called kpax-
mod-lisp, kpax-paserve and kpax-s-http-server, allow you to load only
the code you really need. The main ASDF system called kpax simply
loads both the kpax-mod-lisp and kpax-s-http-server systems.
If necessary, please refer to the documentation and tutorials for
ASDF, ASDF-INSTALL and ASDF-UPGRADE first.
The simplest and most end user friendly way to install KPAX is to use
ASDF-INSTALL and ASDF-UPGRADE. Provided your common lisp
implementation already knows about ASDF (or you have configured it to
load ASDF automatically) and have at least configured the systems
ASDF-INSTALL and ASDF-UPGRADE, you can do as follows:
CL-USER 1 > (asdf:operate 'asdf:load-op :asdf-install)
...
CL-USER 2 > (asdf-install:install :kpax)
...
And you're done! In subsequent runs, you no longer have to install
KPAX and can just load it:
CL-USER 1 > (asdf:operate 'asdf:load-op :asdf-install)
...
CL-USER 2 > (asdf:operate 'asdf:load-op :kpax)
...
To check for newer versions, use ASDF-UPGRADE:
CL-USER 1 > (asdf:operate 'asdf:load-op :asdf-upgrade)
...
CL-USER 2 > (asdf-upgrade:report)
...
CL-USER 2 > (asdf-upgrade:upgrade)
...
Alternatively, you could manually download each package linking your
asdf systems manually as you go. Both of the above approaches only
deal with released (or packaged) versions of each package. You could
also opt to retrieve one or more packages from their source code
repositories (CVS, Subversion or DARCS). This might give you earlier
access to patches but might be less stable (you however have manual
control over which packages you want to upgrade).
The KPAX source code is in a DARCS repository. To retrieve the source
tree, do:
$ darcs get http://www.beta9.be/darcs/kpax
Subsequently, you can keep up to date by doing:
$ darcs pull
inside the kpax directory.
Sven
PS: All feedback is welcome.
--
Sven Van Caekenberghe - http://homepage.mac.com/svc
Beta Nine - software engineering - http://www.beta9.be
"Lisp isn't a language, it's a building material." - Alan Kay
From scaekenberghe at common-lisp.net Sat Feb 4 14:59:21 2006
From: scaekenberghe at common-lisp.net (Sven Van Caekenberghe)
Date: Sat, 4 Feb 2006 15:59:21 +0100
Subject: [kpax-devel] Runnning KPAX
Message-ID:
Runnning KPAX
KPAX is a framework that allows you to write Web Applications in
Common Lisp that can be deployed in three different contexts:
- behind apache using mod_lisp
- behind portable allegro server
- standalone using s-http-server
KPAX strictly separates static from dynamic content. In the first
context, apache handles static content directly, while dynamic
content goes through mod_lisp that passes it to your common lisp
system - this is the preferred production setup. In the second and
third context, both the static and the dynamic content are handled by
your common lisp system - might be easier during development and is
certainly easier
There is one internal ASDF system called kpax-core that contains most
of the framework's code but none of the execution contexts. Three
ASDF systems corresponding to each of the three contexts, called kpax-
mod-lisp, kpax-paserve and kpax-s-http-server, allow you to load only
the code you really need. The main ASDF system called kpax simply
loads both the kpax-mod-lisp and kpax-s-http-server systems.
There is one additional ASDF system called kpax-examples that loads
KPAX together with a large number of examples (but not all of the
examples that ship with the distribution). The examples demonstrate
and test various features of KPAX.
Once you have installed KPAX as described elsewhere, the best way to
start is to load the kpax-examples ASDF system, run, try and study them.
The easiest way to run KPAX is using the standalone s-http-server
context.
CL-USER 1 > (asdf:operate 'asdf:load-op :kpax-examples)
...
CL-USER 2 > (in-package :kpax-user)
...
KPAX-USER 3 > (start-kpax :server-class 's-http-server)
;; S-HTTP-SERVER: Started a new server on port 2001
#
KPAX-USER 4 > (start-web-app :helloworld1)
;; KPAX 20060204T141819 INFO Started #
:STARTED
Starting a web application is necessary to host the static content.
There are two kinds of static content: there is server and webapp
scoped static content. Most webapps are only using server scoped
static content. It is sufficient to start one webapp to host all
server scoped static content for all other webapps. Once you are
developing interactively, both KPAX itself as well as all webapps
keep on running and don't have to be manipulated any further.
Now vist the URL http://localhost:2001/kpax/dynamic/helloworld1
The following output will appear where *standard-output* goes to
(probably your Common Lisp listener):
;; S-HTTP-SERVER: [1] Handling #
;; S-HTTP-SERVER: Running KPAX s-http-server-handler
;; KPAX 20060204T141828 INFO handling /kpax/dynamic/helloworld1
;; KPAX 20060204T141828 INFO created new session 7PD7MUCY1YBY
[1014097705201358350]
;; KPAX 20060204T141828 INFO replied 552 bytes with status OK
;; S-HTTP-SERVER: [1] Handling #
;; S-HTTP-SERVER: Serving #P"/Users/sven/.asdf-install-dir/site/kpax/
example/static/nx.css"
;; S-HTTP-SERVER: [2] Handling #
;; S-HTTP-SERVER: Serving #P"/Users/sven/.asdf-install-dir/site/kpax/
example/static/helloworld1/kpax-movie-poster.jpg"
;; S-HTTP-SERVER: [3] Handling #
;; S-HTTP-SERVER: [3] No handler found for #
As you can see, there are two kinds of logging going on: both KPAX
itself as well as S-HTTP-SERVER are logging what they are doing. Once
you have static content hosting debugged, you might want to switch of
S-HTTP-SERVER logging:
KPAX-USER 5 > (setf (s-http-server:get-log-stream (get-s-http-server
*web-app-server*)) nil)
There is one special webapp called PI that is somewhat like a debug
interface to KPAX, to access it visit the URL http://localhost:2001/
kpax/dynamic/pi
Log in using the username 'admin' and the password 'trustno1'. The PI
webapp shows a list of all available web applications.
Out of the box, KPAX runs in debug mode which means that all errors
(unhandled conditions) result in the debugger being invoked in your
running common lisp system. Clicking on one of the inspect buttons
will show an inspector in your running Lisp environment.
Running KPAX under mod_lisp is even easier, just call #'START-KPAX.
However, apache and mod_lisp have to be configured first (see
elsewhere).
Running KPAX in the context of portable allegro server is left as an
exercise (but is similar to the s-http-server context).
Sven
PS: All feedback is welcome.
--
Sven Van Caekenberghe - http://homepage.mac.com/svc
Beta Nine - software engineering - http://www.beta9.be
"Lisp isn't a language, it's a building material." - Alan Kay
From scaekenberghe at common-lisp.net Sat Feb 4 15:23:50 2006
From: scaekenberghe at common-lisp.net (Sven Van Caekenberghe)
Date: Sat, 4 Feb 2006 16:23:50 +0100
Subject: [kpax-devel] Installation and Configuration of mod_lisp
Message-ID: <02F14CBA-788A-4049-B0B0-0CBCF1A68846@common-lisp.net>
Installation and Configuration of mod_lisp
KPAX is a framework that allows you to write Web Applications in
Common Lisp that can be deployed in different contexts. The preferred
production context is to use apache with mod_lisp. KPAX strictly
separates static from dynamic content. Apache handles static content
directly, while dynamic content goes through mod_lisp that passes it
to your common lisp system.
To install and run the Lisp code for KPAX, see elsewhere. This part
is about installing and configuring apache and mod_lisp to deploy
KPAX web applications. It might be usefull to first test running your
webapps under the simpler s-http-server context to make sure the Lisp
part is OK.
mod_lisp is an apache module to forward request handling from apache
to arbitrary application servers, in casu KPAX. Please refer to
general mod_lisp documentation if necessary.
First you need to install mod_lisp from its source file:
$ apxs -i -c mod_lisp.c
this will compile and install the module where apache expects it.
Next you need to change some apache config files, first by loading
and adding the mod_lisp module
in your main apache config file (httpd.conf) in /etc/httpd/ (or where
apache expects them)
LoadModule lisp_module libexec/httpd/mod_lisp.so
AddModule mod_lisp.c
Make these additions at the end of the existing LoadModule and
AddModule directive lists.
We place the rest of the configuration in a seperate file named
kpax.conf, so we have to include that file in the
main httpd.conf:
Include /etc/httpd/kpax.conf
The contents of the kpax specific include file (the exact location
could be different on your system) might look like this:
LispServer 127.0.0.1 2001 "kpax"
SetHandler lisp-handler
Alias /kpax/static/ "/my/path/to/kpax-static/"
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
So if mod_lisp is present, we configure the lisp server by specifying
the host address, port and extra identification
string of the kpax server; then we set up two main handlers: one for
the dynamic content and one for the static content. The default
location (directory) for static content (for the examples) is the
directory 'static' in the 'example' subdirectory of the KPAX source
code distribution. In most cases, the alias directive alone will be
sufficient.
Finally restart apache using
apachectl restart
In lisp, start KPAX using
KPAX-USER 1 > (start-kpax)
...
And visit a webapp URL like http://localhost/kpax/dynamic/helloworld1
or http://localhost/kpax/dynamic/pi
Provided you have installed the KPAX examples as described elsewhere.
Both apache and apache2 (mod_lisp and mod_lisp2) are supported. Note
that KPAX is normally configured to only allow mod_lisp requests from
an apache running on the same machine (localhost) - this can be
overridden.
Note that when experimenting with configuration options it is
sometimes necessary to restart apache or KPAX or both (connections
between apache's mod_lisp and KPAX are kept alive).
Sven
PS: All feedback is welcome.
--
Sven Van Caekenberghe - http://homepage.mac.com/svc
Beta Nine - software engineering - http://www.beta9.be
"Lisp isn't a language, it's a building material." - Alan Kay
From scaekenberghe at common-lisp.net Sat Feb 4 15:28:59 2006
From: scaekenberghe at common-lisp.net (Sven Van Caekenberghe)
Date: Sat, 4 Feb 2006 16:28:59 +0100
Subject: [kpax-devel] A first round of questions
In-Reply-To: <87lkwsmy3b.fsf@flarge.here>
References: <87lkwsmy3b.fsf@flarge.here>
Message-ID: <10D9FA4C-F656-48D0-94BC-5DBA8A0F875A@common-lisp.net>
Friedrich,
On 03 Feb 2006, at 13:22, Friedrich Dominicus wrote:
> Ok here we go, how do I have to setup mod-lisp-server to get it
> running properly?
>
> At the moment and as is at the moment there are problems with paths to
> the diverse example files.
>
> My Apache setup looks like this at the moment:
>
> LoadModule lisp_module /usr/lib/apache2/modules/mod_lisp2.so
>
>
> # LispServer 127.0.0.1 3000 "ucw"
> LispServer 127.0.0.1 2001 "kpax"
>
> SetHandler lisp-handler
>
>
> That's obviously not sufficient to get the examples running properly.
Please refer to the other messages that I posted to the KPAX-DEVEL
mailing list today.
If you still have problems, don't hesitate to contact me!
Sven
From alexander.rose at weirdbyte.de Sat Feb 11 22:29:27 2006
From: alexander.rose at weirdbyte.de (Alexander Rose)
Date: Sat, 11 Feb 2006 23:29:27 +0100
Subject: [kpax-devel] Re: kpax error
In-Reply-To: <83F6BF87-CFFD-4675-95E9-0809E88CFD32@mac.com>
References: <43CFC009-021E-4ECF-AF79-5D8219416798@weirdbyte.de>
<83F6BF87-CFFD-4675-95E9-0809E88CFD32@mac.com>
Message-ID: <6EC56496-0707-43C4-A9BB-5007F60138AD@weirdbyte.de>
Hello Sven,
Am 11.02.2006 um 20:27 schrieb Sven Van Caekenberghe:
> Where did you find the version of CMUCL that you are using - maybe
> I can quickly try it myself ?
>
It's release cmucl-19b-ppc-darwin. I got it from an official mirror,
e.g. http://ftp.isr.ist.utl.pt/pub/MIRRORS/cmucl/
I just tried it with the 19c release. The error message is slightly
different. I attached it.
> Last time I checked, CMUCL on Mac OS X did not have multiprocessing/
> multithreading, which is (obviously) required for KPAX (through S-
> SYSDEPS), but maybe there is progress on that front ?
>
The manual says: "2.20 Lisp Threads: CMUCL supports Lisp threads for
the x86 platform."
So what does it mean? I could start a server with s-http-server,
which also depends on S-SYSDEPS, doesn't it?
> Personally, I am a LispWorks on Mac OS X user, for which there is
> free trial version.
>
Maybe it's worth a try, but i am so comfortable with emacs.
> There is now a new mailing list for KPAX called KPAX-DEVEL:
Ok, I will use it.
Alex
-------
(asdf:oos 'asdf:load-op :kpax)
Error in function (SETF LOGICAL-PATHNAME-TRANSLATIONS):
"home" names a CMUCL search-list
[Condition of type SIMPLE-ERROR]
Restarts:
0: [CONTINUE] Clobber search-list host with logical pathname host
1: [CONTINUE] Return NIL from load of #P"/Users/
alexanderrose/.asdf-install-dir/systems/kpax.asd".
2: [RETRY] Retry installation
3: [ABORT] Abort handling SLIME request.
4: [ABORT] Return to Top-Level.
Backtrace:
0: ((SETF LOGICAL-PATHNAME-TRANSLATIONS) (("**;*.*.*" "home:**/
*.*")) "home")
1: (LISP::SLOLOAD #)
2: (LISP::INTERNAL-LOAD #P"/Users/alexanderrose/.asdf-install-dir/
systems/kpax.asd" #P"/Users/alexanderrose/.asdf-install-dir/site/kpax/
kpax.asd" :ERROR :SOURCE)
3: (LISP::INTERNAL-LOAD #P"/Users/alexanderrose/.asdf-install-dir/
systems/kpax.asd" #P"/Users/alexanderrose/.asdf-install-dir/site/kpax/
kpax.asd" :ERROR NIL)
4: (LOAD #P"/Users/alexanderrose/.asdf-install-dir/systems/
kpax.asd" :VERBOSE NIL :PRINT ...)
5: (ASDF:FIND-SYSTEM "kpax" NIL)[:OPTIONAL]
6: ((PCL:FAST-METHOD ASDF:FIND-COMPONENT (# T)) #<#1=unused-arg>
#<#1#> #<#1#> "kpax" ...)
7: ((LABELS ASDF::DO-ONE-DEP (PCL:FAST-METHOD ASDF::TRAVERSE #))
ASDF:COMPILE-OP :KPAX NIL)
8: ((LABELS ASDF::DO-DEP (PCL:FAST-METHOD ASDF::TRAVERSE #))
ASDF:COMPILE-OP (:KPAX))
9: ((PCL:FAST-METHOD ASDF::TRAVERSE (ASDF:OPERATION
ASDF:COMPONENT)) (#(3 5 9 10) . #(# # # # #)) #
# #)
10: ((LABELS ASDF::DO-DEP (PCL:FAST-METHOD ASDF::TRAVERSE #))
ASDF:COMPILE-OP ("kpax-examples"))
11: ((PCL:FAST-METHOD ASDF::TRAVERSE (ASDF:OPERATION ASDF:COMPONENT))
(#(3 5 9 10) . #(# # # # #)) # # #)
12: (ASDF:OPERATE ASDF:LOAD-OP "kpax-examples")[:OPTIONAL]
13: ((LABELS ASDF-INSTALL::ONE-ITER ASDF-INSTALL:INSTALL) (:KPAX))
14: (ASDF-INSTALL:INSTALL :KPAX)
15: (ASDF-INSTALL:INSTALL 1)[:EXTERNAL]
16: (SWANK::EVAL-REGION "(asdf-install:install :kpax)
" T)
17: ("DEFSLIMEFUN LISTENER-EVAL")
18: (SWANK::CALL-WITH-BUFFER-SYNTAX #)
19: ("DEFUN EVAL-FOR-EMACS")
20: ((METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK NIL (T T))
#<#1=unused-arg> #<#1#> # #)
21: ("DEFUN HANDLE-REQUEST")
22: ("DEFUN CALL-WITH-CONNECTION")
23: (SWANK::CALL-WITH-REDIRECTED-IO #
#)
24: (SWANK::CALL-WITH-CONNECTION #
#)
25: (SWANK::HANDLE-REQUEST #)
26: (SWANK::PROCESS-AVAILABLE-INPUT #
#)
27: ((FLET SWANK::HANDLER SWANK::INSTALL-SIGIO-HANDLER))
28: (SWANK-BACKEND::SIGIO-HANDLER #<#1=unused-arg> #<#1#> #<#1#>)
29: ("Foreign function call land")
30: (LISP::SUB-SERVE-EVENT NIL 0)
31: (SYSTEM:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL)
32: (LISP::DO-INPUT #)
33: (LISP::INPUT-CHARACTER # NIL
(LISP::*EOF*))
34: (LISP::SYNONYM-IN # NIL
(LISP::*EOF*))
35: (LISP::TWO-WAY-IN #, Output = #> NIL
(LISP::*EOF*))
36: (LISP::SYNONYM-IN # NIL (LISP::*EOF*))
37: (READ-CHAR #
NIL (LISP::*EOF*) NIL)
38: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL # NIL (:EOF) T)
39: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL # NIL (:EOF) NIL)
40: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL 4 # NIL (:EOF) ...)[:EXTERNAL]
41: (LISP::READ-INTERNAL # NIL (:EOF) NIL)
42: (READ # NIL
(:EOF) NIL)
43: (LISP::%TOP-LEVEL)
44: ((LABELS LISP::RESTART-LISP SAVE-LISP))
From scaekenberghe at common-lisp.net Sun Feb 12 09:45:43 2006
From: scaekenberghe at common-lisp.net (Sven Van Caekenberghe)
Date: Sun, 12 Feb 2006 10:45:43 +0100
Subject: [kpax-devel] Re: kpax error
In-Reply-To: <6EC56496-0707-43C4-A9BB-5007F60138AD@weirdbyte.de>
References: <43CFC009-021E-4ECF-AF79-5D8219416798@weirdbyte.de>
<83F6BF87-CFFD-4675-95E9-0809E88CFD32@mac.com>
<6EC56496-0707-43C4-A9BB-5007F60138AD@weirdbyte.de>
Message-ID: <404D1ED6-1482-40D4-BED3-886991FCE63A@common-lisp.net>
Alex,
On 11 Feb 2006, at 23:29, Alexander Rose wrote:
> Hello Sven,
>
> Am 11.02.2006 um 20:27 schrieb Sven Van Caekenberghe:
>> Where did you find the version of CMUCL that you are using - maybe
>> I can quickly try it myself ?
> It's release cmucl-19b-ppc-darwin. I got it from an official
> mirror, e.g. http://ftp.isr.ist.utl.pt/pub/MIRRORS/cmucl/
I installed CMUCL 19b on my machine and tried loading some of my
packages and KPAX using ASDF.
In the file kpax.asd there is a logical pathname translation for HOME
being added, which fails on CMUCL.
So I conditionalized it out - this was checked in and I did a new
release.
> I just tried it with the 19c release. The error message is slightly
> different. I attached it.
>
>> Last time I checked, CMUCL on Mac OS X did not have
>> multiprocessing/multithreading, which is (obviously) required for
>> KPAX (through S-SYSDEPS), but maybe there is progress on that front ?
> The manual says: "2.20 Lisp Threads: CMUCL supports Lisp threads
> for the x86 platform."
> So what does it mean? I could start a server with s-http-server,
> which also depends on S-SYSDEPS, doesn't it?
Well, any multi threaded web server needs threads ;-) Indeed, S-HTTP-
SERVER seems to work at first sight, but that is because there are
some sensible defaults in S-SYSDEPS that result in S-HTTP-SERVER
working as a single threaded server, which is OK for very simple usage.
KPAX has slightly more complex examples for which most browsers issue
multiple concurrent requests, hence you need a multi threaded server.
As I said before: S-SYSDEPS is not completely ported to CMUCL and
above that CMUCL on Mac OS X does not have multi threading which is
required. So you are out of luck with CMUCL, and SBCL for that
matter, on Mac OS X. OpenMCL should work, but I haven't tried that in
a long time.
>> Personally, I am a LispWorks on Mac OS X user, for which there is
>> free trial version.
> Maybe it's worth a try, but i am so comfortable with emacs.
Give it a try, LispWorks' editor looks and feels enough like Emacs to
fool casual users. If you really want, you can run SWANK in LispWorks
and connect from your regular Emacs using SLIME. Another option (but
not with the free version) is to make a TTY image and use that under
Emacs+SLIME.
There are so much nice tools in LispWorks' IDE (like the debugger and
stepper, but there are many more) that once you really get to known
them, you will never want to go back - at least that is how I feel
it: I still use and like Emacs+SLIME (for example on Linux), and
SLIME does have some unique features, but I am much more productive
in LispWorks.
>> There is now a new mailing list for KPAX called KPAX-DEVEL:
> Ok, I will use it.
Welcome!
Sven
From scaekenberghe at common-lisp.net Tue Feb 28 12:00:29 2006
From: scaekenberghe at common-lisp.net (Sven Van Caekenberghe)
Date: Tue, 28 Feb 2006 13:00:29 +0100
Subject: [kpax-devel] Re: Question regarding Rebel Without A Cause.
In-Reply-To: <25009641.1141114191090.JavaMail.root@web01ps>
References: <25009641.1141114191090.JavaMail.root@web01ps>
Message-ID:
On 28 Feb 2006, at 09:09, rfilardo at bigpond.net.au wrote:
> Hi Sven,
>
> I'm a Mac programming in the process of building a web application,
> and not
> knowing Java but having heard of Lisp, decided if I had to learn a
> new language
> I'll choose Lisp. This has lead me to your fine essay "Rebel
> Without A Cause".
> (I've also read Nicky Peter's thesis "Can a 40 year old Computer
> Programming
> Language do Web Applications?".)
>
> I have a question regarding the deployment: what was the purpose
> of the second
> Xserve? From your comments in the Future section it appears that
> neither KPAX
> or Portable AllegroServe have load balancing or failover support.
>
> I'm also interested in your comments regarding reusable components
> for the
> presentation layer and the need for infrastructure to ease complex
> form processing.
> At this stage I'm still in the project definition/requirements
> gathering stage but I
> hope I can contribute to KPAX in this area as way of saying thanks!
>
> Regards,
> Raffaele Filardo
Raffaele,
Thanks for your interest in KPAX. The article 'Rebel With A Cause'
could indeed use some updating. For over more than a year,
development and deployment are now using LispWorks. The described
application was also extended.
But above all, KPAX itself was rewritten from the ground up. There
are now additions for form processing, menus, and much more, as well
as a large list of interesting examples. Please consult the recent
source code - documentation is still mostly lacking - http://
homepage.mac.com/svc/kpax
There is now a new mailing list for KPAX called KPAX-DEVEL:
http://common-lisp.net/cgi-bin/mailman/listinfo/kpax-devel
hosted at common-lisp.net.
I intend to use this mailing list for discussions related to KPAX,
but also to any of my other packages on which KPAX is dependent or
related to: S-UTILS, S-SYSDEPS, S-BASE64, S-HTTP-CLIENT and S-HTTP-
SERVER.
Regarding load balancing and failover support: KPAX was designed to
support load balancing with session affinity (but this has not yet
been proven), failover (which requires session sharing/
synchronization) was not yet implemented, but should be possible.
Apart from the application described in 'Rebel With A Cause', KPAX
has been used successfully in two more production applications here.
Regards,
Sven