From henrik.hjelte at poboxes.com Tue Nov 1 08:52:40 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Tue, 01 Nov 2005 09:52:40 +0100 Subject: [Bese-devel] Newbie problem - installed but not working ? In-Reply-To: <87ek61bpip.fsf@artgabi.com.pl> References: <87ek61bpip.fsf@artgabi.com.pl> Message-ID: <1130835160.10085.4.camel@localhost.localdomain> Are your sure the examples are at exmples? I would guess you made a spelling error in the path, try http://127.0.0.1:8080/ucw/examples/index.ucw instead. /Henrik From Artur.Maciag at artgabi.com.pl Tue Nov 1 15:58:37 2005 From: Artur.Maciag at artgabi.com.pl (Artur =?iso-8859-2?Q?Maci=B1g?=) Date: Tue, 01 Nov 2005 16:58:37 +0100 Subject: [Bese-devel] Newbie problem - installed but not working ? In-Reply-To: <1130835160.10085.4.camel@localhost.localdomain> (Henrik Hjelte's message of "Tue, 01 Nov 2005 09:52:40 +0100") References: <87ek61bpip.fsf@artgabi.com.pl> <1130835160.10085.4.camel@localhost.localdomain> Message-ID: <87pspkjr6a.fsf@artgabi.com.pl> Henrik Hjelte writes: > Are your sure the examples are at exmples? I would guess you made a > spelling error in the path, try > http://127.0.0.1:8080/ucw/examples/index.ucw instead. No, no. I misspelled 'examples' in mail but not in browser :) /, /admin, /hello/index.ucw doesn't work, too. Artur. -- Artur Maci?g From henrik.hjelte at poboxes.com Tue Nov 1 20:01:31 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Tue, 01 Nov 2005 21:01:31 +0100 Subject: [Bese-devel] Newbie problem - installed but not working ? In-Reply-To: <87ek61bpip.fsf@artgabi.com.pl> References: <87ek61bpip.fsf@artgabi.com.pl> Message-ID: <1130875291.10085.20.camel@localhost.localdomain> On m?n, 2005-10-31 at 17:49 +0100, Artur Maci?g wrote: > ,---- > | (+INFO+ 3339762911 IT.BESE.UCW::UCW.BACKEND "Handling request for \"/ucw/exmples/index.ucw\"") > | (+INFO+ 3339762911 IT.BESE.UCW::UCW.BACKEND "Shutdown down # (Status: \"404 Not Found\").") > | (+INFO+ 3339762917 IT.BESE.UCW::UCW.BACKEND "Handling request for \"/exmples/index.ucw\"") > | (+INFO+ 3339762917 IT.BESE.UCW::UCW.BACKEND "Shutdown down # (Status: \"404 Not Found\").") > | (+INFO+ 3339762923 IT.BESE.UCW::UCW.BACKEND "Handling request for \"/ucw/exmples/index.ucw\"") > | (+INFO+ 3339762923 IT.BESE.UCW::UCW.BACKEND "Shutdown down # (Status: \"404 Not Found\").") > `---- I insist you must have misspellt the path. It is wrong in three places in the backend log you attached, I presume from a copy and paste. Or maybe it was your secretary that typed it wrong :-) Otherwise you could change the log level in the ucw_dev/bin/ucwctl file to "DRIBBLE", it makes it easier to follow what happens. Or use the httpd backend instead of mod_lisp for a while, it is probably easier to setup and debug, you can always switch back later. /Henrik From jan at rychter.com Wed Nov 2 11:37:29 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 02 Nov 2005 12:37:29 +0100 Subject: [Bese-devel] bug or no bug? Message-ID: The following code snippet: ( width="100" /></a > is it a bug, or am I doing something stupid? --J. From svg at surnet.ru Wed Nov 2 12:11:39 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Wed, 02 Nov 2005 17:11:39 +0500 (YEKT) Subject: [Bese-devel] bug or no bug? In-Reply-To: References: Message-ID: <20051102.171139.223455275.svg@surnet.ru> Good day, jan> ( (<:img :src (concatenate 'string jan> "/thumbnails/" jan> filename) jan> :width 100)) May be your yaclml version is too old? With latest one I tried: ( (Vladimir Sekissov's message of "Wed, 02 Nov 2005 17:11:39 +0500 (YEKT)") References: <20051102.171139.223455275.svg@surnet.ru> Message-ID: > Good day, > jan> ( jan> (<:img :src (concatenate 'string > jan> "/thumbnails/" > jan> filename) > jan> :width 100)) > > May be your yaclml version is too old? [...] No, it turns out it was just me being stupid. I had the above wrapped in (<:as-html ... ). > You can also try to use <:as-is or <:as-html tags - they do concatenation > of arguments: > > ( (<:img :src (<:as-is "/thumbnails/" "aaa.png") > :width 100)) Thanks for the tip! --J. From mb at bese.it Wed Nov 2 14:52:39 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 02 Nov 2005 15:52:39 +0100 Subject: [Bese-devel] bug or no bug? In-Reply-To: (Jan Rychter's message of "Wed, 02 Nov 2005 14:34:14 +0100") References: <20051102.171139.223455275.svg@surnet.ru> Message-ID: Jan Rychter writes: >> You can also try to use <:as-is or <:as-html tags - they do concatenation >> of arguments: >> >> (> (<:img :src (<:as-is "/thumbnails/" "aaa.png") >> :width 100)) > > Thanks for the tip! sweet! i didn't know that! :) -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From jan at rychter.com Wed Nov 2 16:20:39 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 02 Nov 2005 17:20:39 +0100 Subject: [Bese-devel] So, can I generate ( (Jan Rychter's message of "Wed, 02 Nov 2005 17:20:39 +0100") References: Message-ID: Jan Rychter writes: > So, can I generate ( constructs with p bound successively to various values? If so, which > looping constructs are supposed to work? any looping construct which creates a fresh binding on each iteration (since P is a closed over variable successive loops which change the value of p will change it for all the links generated). this basically means that the only constructs whcih are guaranteed to work are: 1) dolist* 2) a regural loop or doWHATEVER with the action wrapped like this: (dolist (p list) ... (let ((p p)) ( I seem to be having problems with everything except dolist. are you sure you didn't mean dolist*? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From Artur.Maciag at artgabi.com.pl Wed Nov 2 19:14:57 2005 From: Artur.Maciag at artgabi.com.pl (Artur =?iso-8859-2?Q?Maci=B1g?=) Date: Wed, 02 Nov 2005 20:14:57 +0100 Subject: [Bese-devel] Newbie problem - installed but not working ? In-Reply-To: <1130875291.10085.20.camel@localhost.localdomain> (Henrik Hjelte's message of "Tue, 01 Nov 2005 21:01:31 +0100") References: <87ek61bpip.fsf@artgabi.com.pl> <1130875291.10085.20.camel@localhost.localdomain> Message-ID: <87acgmrhe6.fsf@artgabi.com.pl> Henrik Hjelte writes: > I insist you must have misspellt the path. It is wrong in three places > in the backend log you attached, I presume from a copy and paste. Or > maybe it was your secretary that typed it wrong :-) :D Right, there's typo in path - but I've checked a few paths. I've pasted wrog part of logs :D But problem persists. I've deleted all *.fasl files from yacml, arnesi_dev and ucw_dev - and after recompilling examples partly works. http://127.0.0.1:8080/ucw/examples/index.ucw - don't work but: http://127.0.0.1:8080/ - gives me page with examples :D Good for now. 'Counter' works. 'Component Transaction' and 'Form demo': (+INFO+ 3339945696 IT.BESE.UCW::UCW-LOGGER "ACTION-PATH /EXAMPLE-WINDOW/SIMPLE-CONTAINER") (+INFO+ 3339945696 IT.BESE.UCW::UCW-LOGGER "Serving action UCW::SWITCH-COMPONENT in session \"BesghTbjdHfHxhZHWTjTITKNYGElYVRkPGxURIDP\".") and system hangs - after 2 hours sbcl takes all memory and commits suicide :D So, there's something wrong with my installation. I've also tried Marco's hello world: --- * --- (in-package :it.bese.ucw-user) (defvar *hello-world* (make-instance 'cookie-session-application :url-prefix "/hello/")) (register-application *default-server* *hello-world*) (defentry-point "index.ucw" (:application *hello-world*) () (call 'hello-world-home-page)) (defcomponent hello-world-home-page (simple-window-component) ()) (defmethod render-on ((res response) (hello hello-world-home-page)) (<:p "Hello, World!")) --- * --- And something new - browser displays: No RENDER method defined for #. Maybe just delete everything and start from scratch ? Artur. -- Artur Maci?g http://www.artgabi.com.pl ---------------------------------------------------------------------- From jan at rychter.com Wed Nov 2 20:12:36 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 02 Nov 2005 21:12:36 +0100 Subject: [Bese-devel] (Marco Baringer's message of "Wed, 02 Nov 2005 19:05:10 +0100") References: Message-ID: Marco: > Jan Rychter writes: > > So, can I generate ( > constructs with p bound successively to various values? If so, which > > looping constructs are supposed to work? > > any looping construct which creates a fresh binding on each iteration > (since P is a closed over variable successive loops which change the > value of p will change it for all the links generated). Ah, ok. That explains it. It also explains why all my actions would get the latest value in a loop. > this basically means that the only constructs whcih are guaranteed to > work are: > > 1) dolist* > > 2) a regural loop or doWHATEVER with the action wrapped like this: > > (dolist (p list) > ... > (let ((p p)) > ( now that i think about it we have a complete code-walker avalibale > which could esaily (fsvo "easily") figure out the free variables in an > action form and wrap them in the let.... That would be very, very welcome. > > I seem to be having problems with everything except dolist. > > are you sure you didn't mean dolist*? No, dolist actually seemed to work for me (why?). I had trouble with do and do*, as well as various iterate forms. --J. From bobstopper at bobturf.org Wed Nov 2 23:59:36 2005 From: bobstopper at bobturf.org (Robert Marlow) Date: Thu, 03 Nov 2005 07:59:36 +0800 Subject: [Bese-devel] Newbie problem - installed but not working ? In-Reply-To: <87acgmrhe6.fsf@artgabi.com.pl> References: <87ek61bpip.fsf@artgabi.com.pl> <1130875291.10085.20.camel@localhost.localdomain> <87acgmrhe6.fsf@artgabi.com.pl> Message-ID: <87y846k3dj.wl%bobstopper@bobturf.org> > http://127.0.0.1:8080/ucw/examples/index.ucw > - don't work > > but: > http://127.0.0.1:8080/ > - gives me page with examples :D > Good for now. This is the new location of the examples. The old link shouldn't work so you're fine. > 'Counter' works. > > 'Component Transaction' and 'Form demo': > > (+INFO+ 3339945696 IT.BESE.UCW::UCW-LOGGER "ACTION-PATH /EXAMPLE-WINDOW/SIMPLE-CONTAINER") > (+INFO+ 3339945696 IT.BESE.UCW::UCW-LOGGER "Serving action UCW::SWITCH-COMPONENT in session \"BesghTbjdHfHxhZHWTjTITKNYGElYVRkPGxURIDP\".") > > and system hangs - after 2 hours sbcl takes all memory and commits suicide :D > > So, there's something wrong with my installation. Aha! This is exactly the same problem I've been getting. Ok, if we're both getting it we now know it's not our end. I've tried reinstalling from scratch so it's not that. However for me it's "Component Transaction" and "Add Some Numbers". "Form Demo" works fine. Both seem to mess up somewhere when calling the start action. I've also written a simple task component to test the problem and I get the same effect. I can keep the start action as simple as rendering a h1 tag and it will still cause a hang (so it wasn't the loop construct like I originally thought sorry, Marco). Any suggestions on how to further debug this would be appreciated. From jan at rychter.com Thu Nov 3 09:43:38 2005 From: jan at rychter.com (Jan Rychter) Date: Thu, 03 Nov 2005 10:43:38 +0100 Subject: [Bese-devel] Temporarily storing form data Message-ID: How would I go about saving form data when clicking on action links? I have a form-element based form and I'd like to provide a link for the user to go somewhere else to choose an image, then return to the form. Form data should be preserved. --J. From drewc at tech.coop Fri Nov 4 01:11:08 2005 From: drewc at tech.coop (Drew Crampsie) Date: Thu, 03 Nov 2005 17:11:08 -0800 Subject: [Bese-devel] Temporarily storing form data In-Reply-To: References: Message-ID: <436AB52C.505@tech.coop> Jan Rychter wrote: > How would I go about saving form data when clicking on action links? I > have a form-element based form and I'd like to provide a link for the > user to go somewhere else to choose an image, then return to the > form. Form data should be preserved. You have two choices really. Fancy Javascript, or use a button instead of a link for your image chooser. Links do not submit forms, so the data is never transfered from the browser when the link is clicked, and therfore there is no way to save it serverside. I have done this sort of thing with AJAX (using the dojo toolkit). Just send off an async. request when the link is clicked (which submits the form) to save the data. To do this, you'd have to know how to create actions programmatically : (defmacro make-action-url (component action) " There has got to be something like this buried in UCW somewhere, but here's what i use." `(ucw::print-uri-to-string (compute-url ,component :action-id (ucw::make-new-action (ucw::context.current-frame *context*) (lambda () (arnesi:with-call/cc ,action)))))) and then submit the form to the created action url (this is pretty easy to do in dojo). Eventually of course you tire of doing it manually, and come up with monstrosities like this (And spend a hell of a lot of time counting backticks): (defmacro with-ajax ((component) &body args) (multiple-value-bind (actions callbacks args output) (loop for arg in args if (eql (car arg) :action) nconc (cdr arg) into actions else if (eql (car arg) :callback) collect (cdr arg) into callbacks else if (eql (car arg) :output-to) nconc (cdr arg) into output else nconc arg into args finally (return (values actions callbacks args output))) `(js:with-unique-js-names (js-callbacks) `(progn (setf ,js-callbacks (array)) ,,@(loop for c in callbacks for i upfrom 0 collect ``(setf (aref ,js-callbacks ,,i) (lambda () ,,(third c)))) (dojo.io.bind (create ,@(unless ,(getf args :url) `(:url ,(lol::make-action-url ,component (progn , at actions (call-component nil (output-component self)))))) ,@ (unless ,(getf args :post-content) `(:post-content (+ ,,@(loop for c in callbacks for n upfrom 0 nconc `((ucw::make-new-callback (ucw::context.current-frame *context*) (lambda (,(car c)) ,(second c))) "=" `(encode-u-r-i-component ((aref ,js-callbacks ,,n))) "&"))))) ,@ (unless ,(or (getf args :load) (not output) ) `(:load (lambda (evt data) (setf (slot-value (document.get-element-by-id ,, at output) inner-h-t-m-l) data)))) ,,:method "post" ,, at args)))))) Which gets called in monstrosites like this : (dojo.event.connect drop "onDrop" (lambda () (dolist (li list-items) (new (dojo.dnd.*html-drag-source li ,(input-id self)))) , (with-ajax (self) (:action nil) (:callback d (let ((list-order (mapcar #'(lambda (x) (parse-integer (subseq x (length (input-id self))))) (read-from-string d)))) (setf (mewa::instances self) (reorder-list (mewa::instances self) list-order))) `(progn (setf my-list "(") (dolist (li list-items) (setf my-list (+ my-list "\"" li.id "\"" " "))) (setf my-list (+ my-list ")")) (return my-list))) (:load `(lambda (x data) (setf (slot-value (document.get-element-by-id ,(input-id self)) inner-h-t-m-l) data) (make-sortable ,(input-id self))))))))))) I suggest using a button... it's much easier. :) drewc > > --J. > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From luca at pca.it Thu Nov 3 13:25:12 2005 From: luca at pca.it (Luca Capello) Date: Thu, 03 Nov 2005 14:25:12 +0100 Subject: [cl-debian] Re: [Bese-devel] YACLML: debianization References: <871x293hpj.fsf@gismo.pca.it> <87br199877.fsf@gismo.pca.it> <200510282220.33939.cl-debian@pvaneynd.mailworks.org> <87vezgh8hm.fsf@gismo.pca.it> Message-ID: <87fyqdsw1z.fsf@gismo.pca.it> Hello! We're finally arrived to an end :-D On Sat 29 Oct 2005 13:23 +0200, Luca Capello wrote: > Analyzing Marco's code and checking back the discussion Marco and I > had when I first packaged YACLML, I now remember the problem > (because there's a problem, sorry)... > And my idea for the debianization: > > 1) arnesi depends on clc (in Debian this implies cl-asdf) > recommends FiveAM, cl-ppcre and qbook > > 2) FiveAM depends on clc and arnesi > recommends qbook > > 3) qbook depends on clc, arnesi, iterate, cl-ppcre and yaclml > > 4) YACLML depends on clc, arnesi and iterate > recommends FiveAM and qbook > > Moreover, I can add on the package description (or in the > README.Debian) why the recommendations, to advice the user of the > other functionalities. I found another package (not a CL package, sorry) that shares the same problem (inkscape) [1] [2] and I asked for advice on the Debian-devel mailing-list [3]. As I suspected, the Recommends field is the way to go. And there's no README.Debian explaining why :-D Here the cl-arnesi package description: ===== Package: cl-arnesi Architecture: all Depends: ${misc:Depends} Recommends: cl-ppcre, cl-fiveam, cl-qbook Description: small Common Lisp utilities arnesi is a Common Lisp utility suite. It contains various "bits 'n pieces" of code which were useful while developing other code. . Features: * Flow control macros - while, whichever, if-bind, etc. * A simple logging facility - kind-of/sort-of/maybe like log4j. * HTTP/HTML utilities - URL and HTML escaping * Pattern matching - fare-matcher style pattern matcher and "regular" list matcher * Accumulation - collecting and reducing macros * Cps transformer - an ad-hoc, bug ridden implementation of half of call/cc. * Decimal arithmetic - convert floats to exact rationals and vice versa with a given precision; standard rounding functions. * MOP compatibility package - The MOPP package provides the MOP's symbols on various implementations. Currently OpenMCL, CMUCL, SBCL, Lispworks and CLISP are supported. . The recommended packages add extra features: documentation via cl-qbook, test suite with cl-fiveam and add-ons for cl-ppcre. . This is the development version. ===== If I'm not getting any negative feedback for tomorrow (Friday 3th) 00:00 UTC, I'll start submitting ITP for arnesi, FiveAM, qbook and YACLML using that backbones. Thx, bye, Gismo / Luca [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=317767 [2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=328423 [3] http://lists.debian.org/debian-devel/2005/11/msg00066.html -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From mb at bese.it Thu Nov 3 15:15:00 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 03 Nov 2005 16:15:00 +0100 Subject: [Bese-devel] (Marco Baringer's message of "Thu, 03 Nov 2005 10:56:00 +0100") References: <66b7e34b0511021318i74af5264l88be75611edc59d6@mail.gmail.com> Message-ID: Bill Atkins writes: > On 11/2/05, Marco Baringer wrote: >> Jan Rychter writes: >> >> > So, can I generate (> > constructs with p bound successively to various values? If so, which >> > looping constructs are supposed to work? >> >> any looping construct which creates a fresh binding on each iteration >> (since P is a closed over variable successive loops which change the >> value of p will change it for all the links generated). >> > > Can you explain this a little more? you first need to know a little bit more about how Hi, I'm writing a little blogging application to learn how to use clsql and UCW. I have a little problem with my action though, and I just can't see why it is happening. When I define an action, and use it by ( From tongucyumruk at member.fsf.org Thu Nov 3 20:59:19 2005 From: tongucyumruk at member.fsf.org (Tonguc Yumruk) Date: Thu, 3 Nov 2005 22:59:19 +0200 Subject: [Bese-devel] Hi, I'm writing a little blogging application to learn how to use clsql and UCW. I have a little problem with my action though, and I just can't see why it is happening. When I define an action, and use it by ( From jan at rychter.com Fri Nov 4 08:20:04 2005 From: jan at rychter.com (Jan Rychter) Date: Fri, 04 Nov 2005 09:20:04 +0100 Subject: [Bese-devel] Temporarily storing form data In-Reply-To: <436AB52C.505@tech.coop> (Drew Crampsie's message of "Thu, 03 Nov 2005 17:11:08 -0800") References: <436AB52C.505@tech.coop> Message-ID: > Jan Rychter wrote: > > How would I go about saving form data when clicking on action links? I > > have a form-element based form and I'd like to provide a link for the > > user to go somewhere else to choose an image, then return to the > > form. Form data should be preserved. > > You have two choices really. Fancy Javascript, or use a button instead > of a link for your image chooser. > > Links do not submit forms, so the data is never transfered from the > browser when the link is clicked, and therfore there is no way to save > it serverside. [...] > Eventually of course you tire of doing it manually, and come up with > monstrosities like this (And spend a hell of a lot of time counting > backticks): [...snipped to protect innocent bystanders...] > Which gets called in monstrosites like this : [...] > > I suggest using a button... it's much easier. :) Thanks for the detailed answer! Since I care about the quality of my sleep, I decided to just go ahead with buttons. It is easier indeed. Perhaps one day the scary stuff will go into UCW, and then I'll reconsider. I somehow thought one can easily switch from a button to a link. --J. From "Aycan iRiCAN" at common-lisp.net Fri Nov 4 22:45:52 2005 From: "Aycan iRiCAN" at common-lisp.net ("Aycan iRiCAN" at common-lisp.net) Date: Sat, 05 Nov 2005 00:45:52 +0200 Subject: [Bese-devel] ucwctl Message-ID: <87hdas821r.fsf@core.gen.tr> Hi, I'm using ucw_dev with sbcl and portableaserve. I just wanted to try ucwctl and got this: Error during processing of --eval option "(ucw:create-server :backend :aserve :host \"127.0.0.1\" :port 8080 :applications (list it.bese.ucw-user::*example-application* ucw::*admin-application*) :debug-on-error T :inspect-components NIL :log-root-directory #P\"/home/aycan.irican/Lisp/ucw_dev/logs/\" :log-level it.bese.arnesi:+INFO+)": unknown &KEY argument: :DEBUG-ON-ERROR Removing the key solves the problem. Thank you. -- Aycan iRiCAN C0R3 Computer Security Group http://www.core.gen.tr From hoan at ton-that.org Fri Nov 4 22:43:37 2005 From: hoan at ton-that.org (Hoan Ton-That) Date: Sat, 5 Nov 2005 09:43:37 +1100 Subject: [Bese-devel] takeover-entire-window or call-as-root Message-ID: Hey Marco, How about naming `takeover-entire-window' `call-as-root' instead, and adding it to the repo? (defmacro call-as-root (component-class &rest initargs) `(call-component (context.window-component *context*) (make-instance ,component-class , at initargs))) I find this macro useful. Hoan From mb at bese.it Sat Nov 5 13:32:05 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 05 Nov 2005 14:32:05 +0100 Subject: [Bese-devel] ucwctl In-Reply-To: <87hdas821r.fsf@core.gen.tr> (Aycan iRiCAN's message of "Sat, 05 Nov 2005 00:45:52 +0200") References: <87hdas821r.fsf@core.gen.tr> Message-ID: "Aycan iRiCAN"@common-lisp.net writes: > Hi, > > I'm using ucw_dev with sbcl and portableaserve. I just wanted to try ucwctl and got this: > > Error during processing of --eval option "(ucw:create-server :backend :aserve > :host \"127.0.0.1\" > :port 8080 > :applications (list it.bese.ucw-user::*example-application* > ucw::*admin-application*) > :debug-on-error T > :inspect-components NIL > :log-root-directory #P\"/home/aycan.irican/Lisp/ucw_dev/logs/\" > :log-level it.bese.arnesi:+INFO+)": > > unknown &KEY argument: :DEBUG-ON-ERROR > > Removing the key solves the problem. you're right. but i think the parameter is usefull (even though i was the one to remove it) and i've added it back in. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sat Nov 5 13:50:02 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 05 Nov 2005 14:50:02 +0100 Subject: [Bese-devel] takeover-entire-window or call-as-root In-Reply-To: (Hoan Ton-That's message of "Sat, 5 Nov 2005 09:43:37 +1100") References: Message-ID: Hoan Ton-That writes: > Hey Marco, > > How about naming `takeover-entire-window' `call-as-root' instead, > and adding it to the repo? > > (defmacro call-as-root (component-class &rest initargs) > `(call-component (context.window-component *context*) > (make-instance ,component-class , at initargs))) > > I find this macro useful. ask and ye shall recieve. (though i decided to call it call-as-window since in the rest of ucw we use "window" and not "root" to refer to the entire browser frame). -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From luca at pca.it Sat Nov 5 13:29:05 2005 From: luca at pca.it (Luca Capello) Date: Sat, 05 Nov 2005 14:29:05 +0100 Subject: [Bese-devel] Bug#337646: ITP: cl-arnesi -- small Common Lisp utilities Message-ID: <87zmojjk9q.fsf@gismo.pca.it> Package: wnpp Severity: wishlist * Package name : cl-arnesi Version : 1:20051105-1 Upstream Author : Edward Marco Baringer * URL or Web page : http://common-lisp.net/project/bese/arnesi.html * License : BSD Description : small Common Lisp utilities arnesi is a Common Lisp utility suite. It contains various "bits 'n pieces" of code. . Features: * Flow control macros - while, whichever, if-bind, etc. * A simple logging facility - kind-of/sort-of/maybe like log4j. * HTTP/HTML utilities - URL and HTML escaping * Pattern matching - fare-matcher style pattern matcher and "regular" list matcher * Accumulation - collecting and reducing macros * Cps transformer - an ad-hoc, bug ridden implementation of half of call/cc. * Decimal arithmetic - convert floats to exact rationals and vice versa with a given precision; standard rounding functions. * MOP compatibility package - The MOPP package provides the MOP's symbols on various implementations. Currently OpenMCL, CMUCL, SBCL, Lispworks and CLISP are supported. . The recommended packages add extra features: documentation via cl-qbook, test suite with cl-fiveam and add-ons for cl-ppcre. . This is the development version. ===== This is the first of a series of ITPs for Common Lisp software that is necessary as dependency for UCW [1]. As soon as this bug will get a number by the BTS, I'll add the package to the CL-Debian repository [2]. The package is linda and lintian free and it follows the "Common Lisp in Debian Manual" [3]. Thx, bye, Gismo / Luca [1] http://common-lisp.net/project/ucw/ [2] http://cl-debian.alioth.debian.org/cgi-bin/darcsweb.cgi [3] http://cl-debian.alioth.debian.org/clid/clid.html/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From luca at pca.it Sat Nov 5 16:11:12 2005 From: luca at pca.it (Luca Capello) Date: Sat, 05 Nov 2005 17:11:12 +0100 Subject: [Bese-devel] Bug#337657: ITP: cl-fiveam -- simple regression testing framework Message-ID: <87ll03hy73.fsf@gismo.pca.it> Package: wnpp Severity: wishlist * Package name : cl-fiveam Version : 1:20051105-1 Upstream Author : Edward Marco Baringer * URL or Web page : http://common-lisp.net/project/bese/FiveAM.html * License : BSD Description : simple regression testing framework FiveAM is a simple (as far as writing and running tests goes) regression testing framework. It has been designed with Common Lisp's interactive development model in mind. . Features: * Test and test suite hierarchies allow test to be organized into hierarchies to ease running * Functions for re-running recently run tests. * Inter-test dependencies. . The documentation is provided via the cl-qbook package. ===== Continuation of the series of CL software started with bug #337646. As soon as this bug will get a number by the BTS, I'll add the package to the CL-Debian repository [1]. The package is linda and lintian free and it follows the "Common Lisp in Debian Manual" [2]. Thx, bye, Gismo / Luca [1] http://cl-debian.alioth.debian.org/cgi-bin/darcsweb.cgi [2] http://cl-debian.alioth.debian.org/clid/clid.html/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From luca at pca.it Sat Nov 5 16:47:02 2005 From: luca at pca.it (Luca Capello) Date: Sat, 05 Nov 2005 17:47:02 +0100 Subject: [Bese-devel] Bug#337662: ITP: cl-yaclml -- Yet Another Common Lisp Markup Language Message-ID: <87ek5vhwjd.fsf@gismo.pca.it> Package: wnpp Severity: wishlist * Package name : cl-yaclml Version : 1:20051105-1 Upstream Author : Edward Marco Baringer * URL or Web page : http://common-lisp.net/project/bese/yaclml.html * License : BSD Description : Yet Another Common Lisp Markup Language YACLML is a collection of macros and utilities for generating XML/HTML like markup from lisp code. . Features: * Constant folds as much as possible. * Macros for generating HTML from within lisp code. * Templating system for generating HTML from designer templates. . The recommended packages add documentation via cl-qbook or a test suite with cl-fiveam. ===== Continuation of the series of CL software started with bug #337646. As soon as this bug will get a number by the BTS, I'll add the package to the CL-Debian repository [1]. The package is linda and lintian free and it follows the "Common Lisp in Debian Manual" [2]. Thx, bye, Gismo / Luca [1] http://cl-debian.alioth.debian.org/cgi-bin/darcsweb.cgi [2] http://cl-debian.alioth.debian.org/clid/clid.html/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From luca at pca.it Sat Nov 5 17:27:46 2005 From: luca at pca.it (Luca Capello) Date: Sat, 05 Nov 2005 18:27:46 +0100 Subject: [Bese-devel] Bug#337666: ITP: cl-qbook -- create HTML/LaTeX versions of Common Lisp source code Message-ID: <8764r7hunh.fsf@gismo.pca.it> Package: wnpp Severity: wishlist * Package name : cl-qbook Version : 1:20051105-1 Upstream Author : Edward Marco Baringer * URL or Web page : http://common-lisp.net/project/bese/qbook.html * License : BSD Description : create HTML/LaTeX versions of Common Lisp source code qbook is a Common Lisp tool to create HTML/LaTeX versions of source code. . Features: * Very simple (easy to learn and use). * It can produce HTML or LaTeX. ===== Continuation of the series of CL software started with bug #337646. As soon as this bug will get a number by the BTS, I'll add the package to the CL-Debian repository [1]. The package is linda and lintian free and it follows the "Common Lisp in Debian Manual" [2]. Thx, bye, Gismo / Luca [1] http://cl-debian.alioth.debian.org/cgi-bin/darcsweb.cgi [2] http://cl-debian.alioth.debian.org/clid/clid.html/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From Artur.Maciag at artgabi.com.pl Sat Nov 5 20:58:08 2005 From: Artur.Maciag at artgabi.com.pl (Artur =?iso-8859-2?Q?Maci=B1g?=) Date: Sat, 05 Nov 2005 21:58:08 +0100 Subject: [Bese-devel] Newbie problem - installed but not working ? In-Reply-To: <87y846k3dj.wl%bobstopper@bobturf.org> (Robert Marlow's message of "Thu, 03 Nov 2005 07:59:36 +0800") References: <87ek61bpip.fsf@artgabi.com.pl> <1130875291.10085.20.camel@localhost.localdomain> <87acgmrhe6.fsf@artgabi.com.pl> <87y846k3dj.wl%bobstopper@bobturf.org> Message-ID: <87pspe7qxr.fsf@artgabi.com.pl> Robert Marlow writes: >> 'Component Transaction' and 'Form demo': >> >> (+INFO+ 3339945696 IT.BESE.UCW::UCW-LOGGER "ACTION-PATH /EXAMPLE-WINDOW/SIMPLE-CONTAINER") >> (+INFO+ 3339945696 IT.BESE.UCW::UCW-LOGGER "Serving action UCW::SWITCH-COMPONENT in session \"BesghTbjdHfHxhZHWTjTITKNYGElYVRkPGxURIDP\".") >> >> and system hangs - after 2 hours sbcl takes all memory and commits suicide :D >> >> So, there's something wrong with my installation. > > Aha! This is exactly the same problem I've been getting. Ok, if we're > both getting it we now know it's not our end. I've tried reinstalling > from scratch so it's not that. > > However for me it's "Component Transaction" and "Add Some > Numbers". "Form Demo" works fine. > > Both seem to mess up somewhere when calling the start action. I've > also written a simple task component to test the problem and I get the > same effect. I can keep the start action as simple as rendering a h1 > tag and it will still cause a hang (so it wasn't the loop construct > like I originally thought sorry, Marco). > > Any suggestions on how to further debug this would be appreciated. After Marco's changes from yesterday and today (and recompiling ucw) everything works fine. Thanks Marco ! Artur. -- Artur Maci?g http://www.artgabi.com.pl ---------------------------------------------------------------------- From hoan at ton-that.org Sun Nov 6 03:13:06 2005 From: hoan at ton-that.org (Hoan Ton-That) Date: Sun, 6 Nov 2005 14:13:06 +1100 Subject: [Bese-devel] Presentation checkbox fix Message-ID: Hoan -------------- next part -------------- A non-text attachment was scrubbed... Name: CHANGESET Type: application/octet-stream Size: 30568 bytes Desc: not available URL: From henrik.hjelte at poboxes.com Mon Nov 7 10:29:13 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Mon, 07 Nov 2005 11:29:13 +0100 Subject: [Bese-devel] Temporarily storing form data In-Reply-To: <436AB52C.505@tech.coop> References: <436AB52C.505@tech.coop> Message-ID: <1131359353.8953.23.camel@localhost.localdomain> On tor, 2005-11-03 at 17:11 -0800, Drew Crampsie wrote: > (defmacro with-ajax ((component) &body args) > (multiple-value-bind (actions callbacks args output) > (dojo.io.bind > (create > ,@(unless Your ajax macro looks really nice! Since I have begun playing with the dojo toolkit, I wonder if you are going to release this? I tried to find it in the lisp-on-lines linked from cliki (at versions.tech.coop ), but I got the impression that it was based on the prototype toolkit rather than dojo. I currently use a modified version of cl-ajax, but is poorly integrated with ucw and parenscript, so I think it is dead-end. Thanks, Henrik Hjelte From luca at pca.it Mon Nov 7 12:36:50 2005 From: luca at pca.it (Luca Capello) Date: Mon, 07 Nov 2005 13:36:50 +0100 (CET) Subject: [Bese-devel] darcs patch: added COPYING file Message-ID: <20051107123650.BE597C272@gismo.pca.it> Mon Nov 7 13:30:47 CET 2005 Luca Capello * added COPYING file -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 5117 bytes Desc: A darcs patch for your repository! URL: From luca at pca.it Mon Nov 7 12:39:51 2005 From: luca at pca.it (Luca Capello) Date: Mon, 07 Nov 2005 13:39:51 +0100 Subject: [Bese-devel] darcs patch: added COPYING file In-Reply-To: <20051107123650.BE597C272@gismo.pca.it> References: <20051107123650.BE597C272@gismo.pca.it> Message-ID: <87br0wfx7s.fsf@gismo.pca.it> Hello! On Mon 07 Nov 2005 13:36 +0100, Luca Capello wrote: > Mon Nov 7 13:30:47 CET 2005 Luca Capello > * added COPYING file Well, these was for parenscript ;-) Thx, bye, Gismo / Luca -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From jan at rychter.com Mon Nov 7 12:43:36 2005 From: jan at rychter.com (Jan Rychter) Date: Mon, 07 Nov 2005 13:43:36 +0100 Subject: [Bese-devel] feature requests Message-ID: Quoting Marco, "Ask and ye shall receive" -- I have two feature requests. One: I'd like to have an exported function that I could call that would generate an action URL and return it as a string. Purpose: to pass it to Java applets as in: (<:param :name "appletcloseurl" :value (ucw::print-uri-to-string (ucw::compute-url ucw::*current-component* :action-id (ucw::make-new-action (ucw::context.current-frame *context*) (lambda () (ucw::with-call/cc (close component))))))) Two: could we please have an <:applet tag in yaclml? --J. From a_bakic at yahoo.com Mon Nov 7 14:44:47 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Mon, 7 Nov 2005 06:44:47 -0800 (PST) Subject: [Bese-devel] feature requests In-Reply-To: Message-ID: <20051107144447.35230.qmail@web34607.mail.mud.yahoo.com> > Quoting Marco, "Ask and ye shall receive" -- I have two feature > requests. I have one, too :) How about adding a trace facility for call/cc code? *debug-evaluate/cc* produces huge amounts of unreadable output... Alex __________________________________ Yahoo! FareChase: Search multiple travel sites in one click. http://farechase.yahoo.com From jan at rychter.com Tue Nov 8 12:37:47 2005 From: jan at rychter.com (Jan Rychter) Date: Tue, 08 Nov 2005 13:37:47 +0100 Subject: [Bese-devel] UCW and Unicode Message-ID: I tried to use UCW in an application with Unicode content. It turns out that there are some problems. First, logging with loglevel +dribble+ won't work, as the logging stream isn't able to accept utf-8. Second, <:as-html escapes non-ascii characters, which really isn't what you normally want. Third (and perhaps this is a result of the above) textarea interface element escapes non-ascii input as well, so you get escaped characters in your lisp strings. This is using SBCL under Linux. Unfortunately, I don't feel competent to fix these things... --J. From mb at bese.it Tue Nov 8 18:16:36 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 08 Nov 2005 19:16:36 +0100 Subject: [Bese-devel] feature requests In-Reply-To: (Jan Rychter's message of "Mon, 07 Nov 2005 13:43:36 +0100") References: Message-ID: Jan Rychter writes: > Quoting Marco, "Ask and ye shall receive" -- I have two feature > requests. you guys are so spoiled :) > One: I'd like to have an exported function that I could call that would > generate an action URL and return it as a string. Purpose: to pass it to > Java applets as in: (defun action-href (action-lambda &key (component (context.window-component *context*)) (frame (context.current-frame *context*))) "Given a lambda returns a URL (as a string) which will call the lambda. The COMPONENT parameter is passed directly to COMPUTE-URL, FRAME is passed to MAKE-NEW-ACTION." > Two: could we please have an <:applet tag in yaclml? added <:applet and <:param Aleksandar Bakic writes: > I have one, too :) How about adding a trace facility for call/cc code? > *debug-evaluate/cc* produces huge amounts of unreadable output... *trace-cc* is a little bit better (but not a while lot). suggestions welcome (i hate *debug-evaluate/cc* just as much as anyone) -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Tue Nov 8 18:24:04 2005 From: mb at bese.it (Marco Baringer) Date: Tue, 08 Nov 2005 19:24:04 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Jan Rychter's message of "Tue, 08 Nov 2005 13:37:47 +0100") References: Message-ID: Jan Rychter writes: > I tried to use UCW in an application with Unicode content. It turns out > that there are some problems. > > First, logging with loglevel +dribble+ won't work, as the logging stream > isn't able to accept utf-8. is adding an :external-format parameter to the stream-log-appender class enough? (this would then get passed to with-open-file) > Second, <:as-html escapes non-ascii characters, which really isn't > what you normally want. the html escaping is handled by the WRITE-AS-HTML function in arnesi, can you suggest the changes we need? we already have code which always uses write-char (as opposed to escaping) on unicode sbcl. > Third (and perhaps this is a result of the above) textarea interface > element escapes non-ascii input as well, so you get escaped > characters in your lisp strings. how does url-encoding deal with non-ascii (multi-byte) chars? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From ajones1 at gmail.com Tue Nov 8 20:56:23 2005 From: ajones1 at gmail.com (Adam Jones) Date: Tue, 8 Nov 2005 12:56:23 -0800 Subject: [Bese-devel] Introduction and questions... Message-ID: Hi all, I'm kind of new to the list, the programming language, and at least half of the concepts involved here, so if any of what follows is either dumb or simply does not make sense please go easy on the newbie. This project looks really interesting, and I was wondering aside from the documentation available from the website are there any more tutorials available? Are there any other projects going on that use UCW that mights be interesting? If I decide to take tons of notes while working on learning this and want to turn them into some reference documentation who should I burden that with? Specifically I was wondering what kind of support there is for integrated javascript type stuff. Maybe I am not really understanding what I am looking at here but extending the user interface with javascript seems like a pretty natural concept for ucw. Let me know if there is anything I can do to help out. At this point I would probably only be able to pester people into writing down/handing me documentation for stuff, but I am willing to take that up if it is needed. From jan at rychter.com Wed Nov 9 09:52:43 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 09 Nov 2005 10:52:43 +0100 Subject: [Bese-devel] feature requests In-Reply-To: (Marco Baringer's message of "Tue, 08 Nov 2005 19:16:36 +0100") References: Message-ID: Marco: > Jan Rychter writes: > > Quoting Marco, "Ask and ye shall receive" -- I have two feature > > requests. > > you guys are so spoiled :) We learn quickly. > > One: I'd like to have an exported function that I could call that would > > generate an action URL and return it as a string. Purpose: to pass it to > > Java applets as in: > > (defun action-href (action-lambda > &key (component (context.window-component *context*)) > (frame (context.current-frame *context*))) > "Given a lambda returns a URL (as a string) which will call > the lambda. > > The COMPONENT parameter is passed directly to COMPUTE-URL, FRAME > is passed to MAKE-NEW-ACTION." Very neat. Thanks. > > Two: could we please have an <:applet tag in yaclml? > > added <:applet and <:param Cool, thanks! Although it seems you're missing the archive parameter to applet: (def-html-tag <:applet code archive width height) --J. From jan at rychter.com Wed Nov 9 10:07:27 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 09 Nov 2005 11:07:27 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: (Adam Jones's message of "Tue, 8 Nov 2005 12:56:23 -0800") References: Message-ID: >>>>> "Adam" == Adam Jones writes: Adam> Hi all, I'm kind of new to the list, the programming language, Adam> and at least half of the concepts involved here, so if any of Adam> what follows is either dumb or simply does not make sense please Adam> go easy on the newbie. Adam> This project looks really interesting, and I was wondering aside Adam> from the documentation available from the website are there any Adam> more tutorials available? Are there any other projects going on Adam> that use UCW that mights be interesting? If I decide to take tons Adam> of notes while working on learning this and want to turn them Adam> into some reference documentation who should I burden that with? This is something which will be very, very useful. The biggest problem I found when learning UCW was lack of clear examples with The Suggested Way of Doing Things. The current examples are rather of the "show all the fancy possible ways of doing things" type. Adam> Specifically I was wondering what kind of support there is for Adam> integrated javascript type stuff. Maybe I am not really Adam> understanding what I am looking at here but extending the user Adam> interface with javascript seems like a pretty natural concept for Adam> ucw. Let me know if there is anything I can do to help out. At Adam> this point I would probably only be able to pester people into Adam> writing down/handing me documentation for stuff, but I am willing Adam> to take that up if it is needed. This is a fairly undeveloped area of UCW and one with great potential. Parenscript could work really well together with UCW. --J. From mb at bese.it Wed Nov 9 13:22:00 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 09 Nov 2005 14:22:00 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: (Adam Jones's message of "Tue, 8 Nov 2005 12:56:23 -0800") References: Message-ID: Adam Jones writes: > Hi all, I'm kind of new to the list, the programming language, and at > least half of the concepts involved here, so if any of what follows is > either dumb or simply does not make sense please go easy on the > newbie. i promise. > This project looks really interesting, and I was wondering aside from > the documentation available from the website are there any more > tutorials available? Alberto Santini is working on a newbie quick start guide. Other than that there is nothing going on that i know of. > Are there any other projects going on that use > UCW that mights be interesting? there's drew's lisp-on-lines which looks pretty cool, but that's about it. > If I decide to take tons of notes > while working on learning this and want to turn them into some > reference documentation who should I burden that with? me. > Specifically I was wondering what kind of support there is for > integrated javascript type stuff. Maybe I am not really understanding > what I am looking at here but extending the user interface with > javascript seems like a pretty natural concept for ucw. Let me know if > there is anything I can do to help out. At this point I would probably > only be able to pester people into writing down/handing me > documentation for stuff, but I am willing to take that up if it is > needed. The first thing you could do is point us (iow me) to a javascript library. i've tried rico+prototype+behaviour, drew seems to use dojo and i think some people are using mochikit (or whatever it's called), tying ucw to one particular library would allow us to move forward on a lot of stuff. in particular i'm toying with some ideas on building a ucw form library (seperating out vladimir's excellent form stuff from the presentation stuff) which would benifit greatly from javascript integration. however, any and all documentation work you can do wolud be greatly appreciated. Most of ucw's documentation is embedded in the source code itself (and then extracted via qbook), if you can work this way that'd be great, but if you think a seperate document (text, html, pdf whatever) is better i'll happily take that too. (basically i'll take anything and everything i can get). -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From jan at rychter.com Wed Nov 9 13:45:12 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 09 Nov 2005 14:45:12 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Marco Baringer's message of "Tue, 08 Nov 2005 19:24:04 +0100") References: Message-ID: Marco: > Jan Rychter writes: > > I tried to use UCW in an application with Unicode content. It turns out > > that there are some problems. > > > > First, logging with loglevel +dribble+ won't work, as the logging stream > > isn't able to accept utf-8. > > is adding an :external-format parameter to the stream-log-appender > class enough? (this would then get passed to with-open-file) Not really, because things like image uploads will mess up the stream format anyway, resulting in an ugly crash. Basically, logging all received content isn't such a great idea. > > Second, <:as-html escapes non-ascii characters, which really isn't > > what you normally want. > > the html escaping is handled by the WRITE-AS-HTML function in arnesi, > can you suggest the changes we need? we already have code which always > uses write-char (as opposed to escaping) on unicode sbcl. > > Third (and perhaps this is a result of the above) textarea interface > > element escapes non-ascii input as well, so you get escaped > > characters in your lisp strings. Ok, I have to admit: I was wrong -- it isn't as-html's nor other widget's fault. These things are tough to debug. It turns out that it was really the browser that was doing the escaping, confusingly -- only sometimes. After fixing HTTP headers to include information about an utf-8 encoding things look much better. (BTW -- how do I tell a template-component about what content-type to use in HTTP headers? Apart from an render :around and using internal UCW functions?) So, I've gotten most things to work, except for one: uploads. These will not work, as there is a fundamental assumption within UCW that we can assume the stream format for an incoming request. Unfortunately, after we do a: (setf (external-format-for :http) :utf-8-unix) things will break, because browsers will send binary data in multiparts, which will be non-UTF-8-conforming and will break things. Solving this isn't obvious -- we'd need to parse multipart content using a "safe" stream format (byte-oriented) and then probably create other streams which are utf-8, with request parts. Or do away with the stream metaphor alltogether and just work on in-memory request data (we store all request data anyway in mod-lisp). --J. From jan at rychter.com Wed Nov 9 13:52:54 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 09 Nov 2005 14:52:54 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Marco Baringer's message of "Tue, 08 Nov 2005 19:24:04 +0100") References: Message-ID: > how does url-encoding deal with non-ascii (multi-byte) chars? The discussion at http://www.cliki.net/araneida might be relevant here. --J. From mb at bese.it Wed Nov 9 14:14:23 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 09 Nov 2005 15:14:23 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Jan Rychter's message of "Wed, 09 Nov 2005 14:45:12 +0100") References: Message-ID: Jan Rychter writes: > Marco: >> Jan Rychter writes: >> > I tried to use UCW in an application with Unicode content. It turns out >> > that there are some problems. >> > >> > First, logging with loglevel +dribble+ won't work, as the logging stream >> > isn't able to accept utf-8. >> >> is adding an :external-format parameter to the stream-log-appender >> class enough? (this would then get passed to with-open-file) > > Not really, because things like image uploads will mess up the stream > format anyway, resulting in an ugly crash. Basically, logging all > received content isn't such a great idea. no, probably not. it does help in debugging certain issues though. if you tihnk of a decent compromise (something better than dying with stream errors) i'd love to hear it. >> > Second, <:as-html escapes non-ascii characters, which really isn't >> > what you normally want. >> >> the html escaping is handled by the WRITE-AS-HTML function in arnesi, >> can you suggest the changes we need? we already have code which always >> uses write-char (as opposed to escaping) on unicode sbcl. > >> > Third (and perhaps this is a result of the above) textarea interface >> > element escapes non-ascii input as well, so you get escaped >> > characters in your lisp strings. > > Ok, I have to admit: I was wrong -- it isn't as-html's nor other > widget's fault. These things are tough to debug. It turns out that it > was really the browser that was doing the escaping, confusingly -- only > sometimes. > > After fixing HTTP headers to include information about an utf-8 encoding > things look much better. (BTW -- how do I tell a template-component > about what content-type to use in HTTP headers? Apart from an render > :around and using internal UCW functions?) option 1 - use a option 2 - grab the latest patch from ucw_dev make your template component a subclass of window-component and add a :content-type "text/html; charset=utf-8;" to the default initargs. > So, I've gotten most things to work, except for one: uploads. These will > not work, as there is a fundamental assumption within UCW that we can > assume the stream format for an incoming request. we don't strictly need to though. we now the http headers are 7 bit ascii and so we can treat the request as a byte stream and do the encoding our selves. if the content-type is application/x-www-form-urlencoded then we again know that the data is 7 bit ascii (not that all browsers respect this) and we can convert it ourselves, for multipart/form-data we can also do the right thing. all of this (while something we really really should do) requires hacking the various backends. > Unfortunately, after we do a: > (setf (external-format-for :http) :utf-8-unix) > > things will break, because browsers will send binary data in multiparts, > which will be non-UTF-8-conforming and will break things. > > Solving this isn't obvious -- we'd need to parse multipart content using > a "safe" stream format (byte-oriented) and then probably create other > streams which are utf-8, with request parts. Or do away with the stream > metaphor alltogether and just work on in-memory request data (we store > all request data anyway in mod-lisp). so the solution to this issue requires: 1) changing the various backends to use byte-streams and not character streams. add encoding to/from strings where needed. 2) changing rfc2388 along the same lines. not a trivial job, but definetly doable. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From jan at rychter.com Wed Nov 9 15:11:30 2005 From: jan at rychter.com (Jan Rychter) Date: Wed, 09 Nov 2005 16:11:30 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Marco Baringer's message of "Wed, 09 Nov 2005 15:14:23 +0100") References: Message-ID: > Jan Rychter writes: > > Marco: > >> Jan Rychter writes: > >> > I tried to use UCW in an application with Unicode content. It turns out > >> > that there are some problems. > >> > > >> > First, logging with loglevel +dribble+ won't work, as the logging stream > >> > isn't able to accept utf-8. > >> > >> is adding an :external-format parameter to the stream-log-appender > >> class enough? (this would then get passed to with-open-file) > > > > Not really, because things like image uploads will mess up the stream > > format anyway, resulting in an ugly crash. Basically, logging all > > received content isn't such a great idea. > > no, probably not. it does help in debugging certain issues though. if > you tihnk of a decent compromise (something better than dying with > stream errors) i'd love to hear it. I can't think of anything reasonable -- myself, I'd remove the content logging and add it as required, when I actually debug something. It isn't useful to someone who doesn't know UCW internals anyway. > > After fixing HTTP headers to include information about an utf-8 encoding > > things look much better. (BTW -- how do I tell a template-component > > about what content-type to use in HTTP headers? Apart from an render > > :around and using internal UCW functions?) > > option 1 - > use a > > option 2 - > grab the latest patch from ucw_dev > > make your template component a subclass of window-component and add > a :content-type "text/html; charset=utf-8;" to the default initargs. I choose... er... option 2. > > So, I've gotten most things to work, except for one: uploads. These will > > not work, as there is a fundamental assumption within UCW that we can > > assume the stream format for an incoming request. > > we don't strictly need to though. we now the http headers are 7 bit > ascii and so we can treat the request as a byte stream and do the > encoding our selves. if the content-type is > application/x-www-form-urlencoded then we again know that the data is > 7 bit ascii (not that all browsers respect this) and we can convert it > ourselves, for multipart/form-data we can also do the right thing. > > all of this (while something we really really should do) requires > hacking the various backends. > > > Unfortunately, after we do a: > > (setf (external-format-for :http) :utf-8-unix) > > > > things will break, because browsers will send binary data in multiparts, > > which will be non-UTF-8-conforming and will break things. > > > > Solving this isn't obvious -- we'd need to parse multipart content using > > a "safe" stream format (byte-oriented) and then probably create other > > streams which are utf-8, with request parts. Or do away with the stream > > metaphor alltogether and just work on in-memory request data (we store > > all request data anyway in mod-lisp). > > so the solution to this issue requires: > > 1) changing the various backends to use byte-streams and not character > streams. add encoding to/from strings where needed. > > 2) changing rfc2388 along the same lines. > > not a trivial job, but definetly doable. Right. I'm desperate enough to actually dive into this, but I feel I'm missing something fundamental about CL -- namely, how to treat byte-data in memory (say, in a vector) as a utf-8 character stream. I can't find a way, and yet there should be one. --J. From mb at bese.it Wed Nov 9 15:46:51 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 09 Nov 2005 16:46:51 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Jan Rychter's message of "Wed, 09 Nov 2005 16:11:30 +0100") References: Message-ID: Jan Rychter writes: > I can't think of anything reasonable -- myself, I'd remove the content > logging and add it as required, when I actually debug something. It > isn't useful to someone who doesn't know UCW internals anyway. fair enough. > I'm desperate enough to actually dive into this, but I feel I'm missing > something fundamental about CL -- namely, how to treat byte-data in > memory (say, in a vector) as a utf-8 character stream. I can't find a > way, and yet there should be one. if you're on sbcl there's sb-ext:octets-to-string and sb-ext:string-to-octets, both of which take an external-format parameter. once you have a vector of bytes converting it to a string (in memory) should (not that i've tried) be as simple as calling one of these functions. if you're already writing the data out to a file it should (again, not that i've tried) be easy to close the file and reopen it with a different element-type. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From ajones1 at gmail.com Wed Nov 9 16:42:53 2005 From: ajones1 at gmail.com (Adam Jones) Date: Wed, 9 Nov 2005 08:42:53 -0800 Subject: [Bese-devel] ucw documentation effort Message-ID: Looking at the documentation provided from the source code I was thinking that a decent place to start a reference would be to restructure the current source documentation into a one page per function/macro/class/(computational object just to have a generic term for everything involved). From there the next step I see would be to add descriptions for it and provide a facility for user comments. Yes, this is almost exactly like the PHP documentation system, but that works really well and I think it would be good here. I think it would be useful to keep the "code generates base documentation" concept and just expand the features of that documentation. Then an up-to-date reference can be started automatically whenever a new version is released. I also wouldn't mind seeing a "click here to expand macros" feature in the documentation where you can see the resulting text of any macro transformations on code. Anyways, just trying to start some discussion here, so, discuss. -Adam From ajones1 at gmail.com Wed Nov 9 17:03:47 2005 From: ajones1 at gmail.com (Adam Jones) Date: Wed, 9 Nov 2005 09:03:47 -0800 Subject: [Bese-devel] Introduction and questions... In-Reply-To: References: Message-ID: > > Specifically I was wondering what kind of support there is for > > integrated javascript type stuff. Maybe I am not really understanding > > what I am looking at here but extending the user interface with > > javascript seems like a pretty natural concept for ucw. Let me know if > > there is anything I can do to help out. At this point I would probably > > only be able to pester people into writing down/handing me > > documentation for stuff, but I am willing to take that up if it is > > needed. > > The first thing you could do is point us (iow me) to a javascript > library. i've tried rico+prototype+behaviour, drew seems to use dojo > and i think some people are using mochikit (or whatever it's called), > tying ucw to one particular library would allow us to move forward on > a lot of stuff. > By this are you saying that you did not like prototype, or just that you have experience with it? To tell the truth I don't know much about these things, but do see the use for them. Maybe if I get some time I can put together summaries of the different options and someone who knows more about the project can use those for a decision. -Adam From mb at bese.it Wed Nov 9 19:03:27 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 09 Nov 2005 20:03:27 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Jan Rychter's message of "Wed, 09 Nov 2005 16:11:30 +0100") References: Message-ID: Jan Rychter writes: > I can't think of anything reasonable -- myself, I'd remove the content > logging and add it as required, when I actually debug something. It > isn't useful to someone who doesn't know UCW internals anyway. instead of removing it why can't you just keep the ucw.backend logger's level above dribble? in the hopes of making this easier i have changed the ucw.backend loger to not be a sub logger og ucw-logger, this way if you pass +dribble+ to create-server you still won't get the http server's input/output. ok? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Wed Nov 9 19:04:39 2005 From: mb at bese.it (Marco Baringer) Date: Wed, 09 Nov 2005 20:04:39 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Jan Rychter's message of "Wed, 09 Nov 2005 16:11:30 +0100") References: Message-ID: Jan Rychter writes: > I can't think of anything reasonable -- myself, I'd remove the content > logging and add it as required, when I actually debug something. It > isn't useful to someone who doesn't know UCW internals anyway. instead of removing it why can't you just keep the ucw.backend logger's level above dribble? in the hopes of making this easier i have changed the ucw.backend loger to not be a sub logger og ucw-logger, this way if you pass +dribble+ to create-server you still won't get the http server's input/output. ok? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From albertosantini at tiscali.it Wed Nov 9 19:04:14 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Wed, 9 Nov 2005 20:04:14 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: References: Message-ID: Hello Adam. You can find a quick start guide in the development branch of UCW: http://common-lisp.net/project/ucw/repos/ucw_dev/docs/QUICKSTART The guide is a quick start installation of UCW. I'm writing a quick start guide from the point of view of the developer based on the development of a simple app: login, search form, list of results, logout. I'd like to describe the concepts of UCW and how to develop examples. Regards, Alberto Santini On Nov 8, 2005, at 21:56 PM, Adam Jones wrote: > Hi all, I'm kind of new to the list, the programming language, and at > least half of the concepts involved here, so if any of what follows is > either dumb or simply does not make sense please go easy on the > newbie. [cut] From drewc at tech.coop Thu Nov 10 12:15:19 2005 From: drewc at tech.coop (Drew Crampsie) Date: Thu, 10 Nov 2005 04:15:19 -0800 Subject: [Bese-devel] Introduction and questions... In-Reply-To: References: Message-ID: <437339D7.8090807@tech.coop> Marco Baringer wrote: >>Specifically I was wondering what kind of support there is for >>integrated javascript type stuff. Maybe I am not really understanding >>what I am looking at here but extending the user interface with >>javascript seems like a pretty natural concept for ucw. Let me know if >>there is anything I can do to help out. At this point I would probably >>only be able to pester people into writing down/handing me >>documentation for stuff, but I am willing to take that up if it is >>needed. > > > The first thing you could do is point us (iow me) to a javascript > library. i've tried rico+prototype+behaviour, drew seems to use dojo > and i think some people are using mochikit (or whatever it's called), > tying ucw to one particular library would allow us to move forward on > a lot of stuff. I can't recommend dojo enough... ,they've implemented CLOS style method combination, a decent inheritance system, and a much cleaner event mechanism. IMO the best js library around (pun intended). Also, beyond the AJAX stuff, there is a widget library that can't be beat. I plan on releasing my Dojo+ucw+lol stuff, just as soon as i find our where all the memory is going (memory usage swells after a day of usage and eventually kills sbcl. bad code somewhere). drewc From albertosantini at tiscali.it Wed Nov 9 22:35:15 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Wed, 9 Nov 2005 23:35:15 +0100 Subject: [Bese-devel] Repository... Message-ID: <89C19E56-032D-4C19-9FAB-2D0ACCFC0606@tiscali.it> Hello. Is the repository only darcs based? What kind of darcs client do you use (for instance, http:// cbis.anu.edu.au/misc/darcs/)? Is there the CVS repo? Is there a nightly tarball of ucw_dev? Ok... only questions. Sorry. Thanks in advance, Alberto Santini From a_bakic at yahoo.com Thu Nov 10 03:21:34 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Wed, 9 Nov 2005 19:21:34 -0800 (PST) Subject: [Bese-devel] a trace-cc "thinko" fix (I hope) Message-ID: <20051110032135.25970.qmail@web34610.mail.mud.yahoo.com> diff -rN -u old-arnesi_dev/src/call-cc/apply.lisp new-arnesi_dev/src/call-cc/apply.lisp --- old-arnesi_dev/src/call-cc/apply.lisp 2005-11-10 04:00:44.000000000 +0100 +++ new-arnesi_dev/src/call-cc/apply.lisp 2005-11-10 04:06:39.000000000 +0100 @@ -281,7 +281,7 @@ (defmethod apply-lambda/cc ((operator function) effective-arguments dyn-env k) "Method used when we're applying a regular, non cc, function object." (declare (ignore dyn-env)) - (trace-statement "Applying function ~S to ~S" (source (code (first operator))) effective-arguments) + (trace-statement "Applying function ~S to ~S" (source (code operator)) effective-arguments) (apply #'kontinue k (multiple-value-list (apply operator effective-arguments)))) ;;;; Small helper function __________________________________ Yahoo! FareChase: Search multiple travel sites in one click. http://farechase.yahoo.com From pjb at informatimago.com Thu Nov 10 06:37:51 2005 From: pjb at informatimago.com (Pascal Bourguignon) Date: Thu, 10 Nov 2005 07:37:51 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: References: Message-ID: <17266.60095.17823.848825@thalassa.informatimago.com> Jan Rychter writes: > I'm desperate enough to actually dive into this, but I feel I'm missing > something fundamental about CL -- namely, how to treat byte-data in > memory (say, in a vector) as a utf-8 character stream. I can't find a > way, and yet there should be one. IMO, the correct way is to have a binary stream (since the HTTP is actually a binary protocol), and to use: #+clisp EXT:CONVERT-STRING-TO-BYTES and #+clisp EXT:CONVERT-STRING-FROM-BYTES There may have similar functions in other implementations. -- "Klingon function calls do not have "parameters" -- they have "arguments" and they ALWAYS WIN THEM." From mb at bese.it Thu Nov 10 09:49:31 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Nov 2005 10:49:31 +0100 Subject: [Bese-devel] a trace-cc "thinko" fix (I hope) In-Reply-To: <20051110032135.25970.qmail@web34610.mail.mud.yahoo.com> (Aleksandar Bakic's message of "Wed, 9 Nov 2005 19:21:34 -0800 (PST)") References: <20051110032135.25970.qmail@web34610.mail.mud.yahoo.com> Message-ID: Aleksandar Bakic writes: > - (trace-statement "Applying function ~S to ~S" (source (code (first > operator))) effective-arguments) > + (trace-statement "Applying function ~S to ~S" (source (code operator)) applied. thanks. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Thu Nov 10 10:28:58 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Nov 2005 11:28:58 +0100 Subject: [Bese-devel] Repository... In-Reply-To: <89C19E56-032D-4C19-9FAB-2D0ACCFC0606@tiscali.it> (Alberto Santini's message of "Wed, 9 Nov 2005 23:35:15 +0100") References: <89C19E56-032D-4C19-9FAB-2D0ACCFC0606@tiscali.it> Message-ID: Alberto Santini writes: > Hello. > > Is the repository only darcs based? yes. > What kind of darcs client do you use (for instance, http:// > cbis.anu.edu.au/misc/darcs/)? i'm using darcs 1.0.3 on one machine and 1.0.4rc1 on another machine. > Is there the CVS repo? nope. > Is there a nightly tarball of ucw_dev? nope. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From jan at rychter.com Thu Nov 10 09:30:18 2005 From: jan at rychter.com (Jan Rychter) Date: Thu, 10 Nov 2005 10:30:18 +0100 Subject: [Bese-devel] UCW and Unicode In-Reply-To: (Marco Baringer's message of "Wed, 09 Nov 2005 20:04:39 +0100") References: Message-ID: >>>>> "Marco" == Marco Baringer : Marco> Jan Rychter writes: >> I can't think of anything reasonable -- myself, I'd remove the >> content logging and add it as required, when I actually debug >> something. It isn't useful to someone who doesn't know UCW internals >> anyway. Marco> instead of removing it why can't you just keep the ucw.backend Marco> logger's level above dribble? That's exactly what I do now -- but my point was that sometimes I actually do want to use dribble log level to see what's going on, but even then I don't actually need the full contents of HTTP replies. Those are needed in exceptional circumstances, and that is when I can add them manually. Marco> in the hopes of making this easier i have changed the Marco> ucw.backend loger to not be a sub logger og ucw-logger, this way Marco> if you pass +dribble+ to create-server you still won't get the Marco> http server's input/output. ok? That's perfectly fine. Thanks! --J. From a_bakic at yahoo.com Thu Nov 10 11:42:21 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 10 Nov 2005 03:42:21 -0800 (PST) Subject: [Bese-devel] more patches and warnings Message-ID: <20051110114221.66032.qmail@web34603.mail.mud.yahoo.com> Hi, --- old-ucw_dev/src/rerl/standard-session-frame.lisp 2005-11-10 03:58:26.000000000 +0100 +++ new-ucw_dev/src/rerl/standard-session-frame.lisp 2005-11-10 12:12:50.000000000 +0100 @@ -46,7 +46,7 @@ nil)) (defun register-callback (callback) - (make-new-callback (context.current-frame *context*) callback)) + (make-new-callback callback)) --- old-arnesi_dev/src/call-cc/apply.lisp 2005-11-10 04:00:44.000000000 +0100 +++ new-arnesi_dev/src/call-cc/apply.lisp 2005-11-10 12:36:39.000000000 +0100 @@ -157,7 +157,7 @@ ;;;; environment and transfers control. (defmethod apply-lambda/cc ((operator closure/cc) effective-arguments dyn-env k) - (trace-statement "Applying cc closure ~S to ~S" (source (code (first arg-list))) (rest arg-list)) + (trace-statement "Applying cc closure ~S to ~S" (source (code closure/cc)) effective-arguments) (some file names below may be wrong; also, defaction might erroneously cause method redefinition warnings) ; compiling file "ucw/src/yaclml/ucw-tags.lisp": ; ==> ; (LOCALLY ; (DECLARE (IGNORE IT.BESE.UCW::BODY)) ; (LET ((IT.BESE.UCW::READER (OR IT.BESE.UCW::READER IT.BESE.UCW::ACCESSOR)) ; (IT.BESE.UCW::WRITER (OR IT.BESE.UCW::WRITER #))) ; `(IT.BESE.YACLML.TAGS:TEXTAREA :NAME ; (IT.BESE.UCW::MAKE-NEW-CALLBACK ; ,IT.BESE.UCW::WRITER) ; , at IT.BESE.UCW::OTHERS ; (IT.BESE.YACLML.TAGS:AS-HTML ; ,IT.BESE.UCW::READER)))) ; ; caught STYLE-WARNING: ; declaring unknown variable BODY to be ignored ; compiling file "ucw/src/components/ie.lisp": STYLE-WARNING: redefining %CONVERT-IE-DEFINITION-NAME in DEFUN STYLE-WARNING: redefining %IE-CONSTRAINT-METHOD-NAME in DEFUN ; compiling file "ucw/src/components/form.lisp": STYLE-WARNING: redefining OUTPUT-FORMAT (INTERFACE-ELEMENT) in DEFMETHOD STYLE-WARNING: redefining DEFAULT-VALUE (INTERFACE-ELEMENT) in DEFMETHOD STYLE-WARNING: redefining SUBMIT in DEFGENERIC ; compiling file "ucw/src/components/range-set.lisp": ; in: DEFGENERIC RANGE-CURSOR.DELETE-DATA-ITEM ; (<= IT.BESE.UCW::INDEX (LENGTH IT.BESE.UCW::DATA)) ; --> IF > ; ==> ; IT.BESE.UCW::INDEX ; ; caught STYLE-WARNING: ; reading an ignored variable: INDEX ; compiling file "ucw/src/components/presentations.lisp": ; compiling (DEFSLOT-CRITERA DATE-BEFORE-CRITERIA ...); ; caught STYLE-WARNING: ; Too many arguments (1) to FORMAT "Date Before:": uses at most 0. ; file: ucw/src/control.lisp ; in: DEFMETHOD IT.BESE.UCW::MAKE-BACKEND ((EQL :ARANEIDA)) => IT.BESE.UCW::DEFAULT-URL IT.BESE.UCW::ARANEIDA-SERVER ; (IT.BESE.UCW::DEFAULT-URL IT.BESE.UCW::ARANEIDA-SERVER) ; ; caught STYLE-WARNING: ; undefined function: IT.BESE.UCW::DEFAULT-URL ; file: ucw/src/rerl/standard-server.lisp ; in: ; DEFMETHOD IT.BESE.UCW::REGISTER-ENTRY-POINT (IT.BESE.UCW:STANDARD-SERVER ; IT.BESE.UCW::ENTRY-POINT) ; (IT.BESE.UCW::REGISTER-URL-HANDLER ; (IT.BESE.UCW:SERVER.BACKEND IT.BESE.UCW::SERVER) ; IT.BESE.UCW::ENTRY-POINT ; (LAMBDA (IT.BESE.UCW:REQUEST IT.BESE.UCW:RESPONSE) ; (IT.BESE.UCW::HANDLE-REQUEST IT.BESE.UCW::SERVER ; IT.BESE.UCW:REQUEST ; IT.BESE.UCW:RESPONSE))) ; ; caught STYLE-WARNING: ; undefined function: IT.BESE.UCW::REGISTER-URL-HANDLER Alex __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From henrik.hjelte at poboxes.com Thu Nov 10 14:30:47 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Thu, 10 Nov 2005 15:30:47 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: <437339D7.8090807@tech.coop> References: <437339D7.8090807@tech.coop> Message-ID: <1131633047.5970.39.camel@localhost.localdomain> On tor, 2005-11-10 at 04:15 -0800, Drew Crampsie wrote: > I can't recommend dojo enough... ,they've implemented CLOS style method > combination, a decent inheritance system, and a much cleaner event > mechanism. IMO the best js library around (pun intended). Also, beyond > the AJAX stuff, there is a widget library that can't be beat. Couldn't agree more, dojo is great! > I plan on releasing my Dojo+ucw+lol stuff, just as soon as i find our > where all the memory is going (memory usage swells after a day of usage > and eventually kills sbcl. bad code somewhere). > > drewc Why not release it to the darcs repository and have some more eyes on the bugs? I am currently building my own stuff around dojo, which seems like a waste of human energy. But I really need it now, that's why. ucw+parenscript+dojo could be a killer. Especially with a little community! /Henrik Hjelte From asbjxrn at bjxrnstad.net Thu Nov 10 16:07:36 2005 From: asbjxrn at bjxrnstad.net (=?ISO-8859-1?Q?Asbj=F8rn_Bj=F8rnstad?=) Date: Fri, 11 Nov 2005 00:07:36 +0800 Subject: [Bese-devel] Introduction and questions... In-Reply-To: <1131633047.5970.39.camel@localhost.localdomain> References: <437339D7.8090807@tech.coop> <1131633047.5970.39.camel@localhost.localdomain> Message-ID: <6FF61239-C4B3-4D72-9ABA-D3ECFC15323B@bjxrnstad.net> On 10 Nov 2005, at 10:30 PM, Henrik Hjelte wrote: > On tor, 2005-11-10 at 04:15 -0800, Drew Crampsie wrote: > >> I plan on releasing my Dojo+ucw+lol stuff, just as soon as i find our >> where all the memory is going (memory usage swells after a day of >> usage >> and eventually kills sbcl. bad code somewhere). > Why not release it to the darcs repository and have some more eyes on > the bugs? I am currently building my own stuff around dojo, which > seems > like a waste of human energy. But I really need it now, that's why. I gotta agree. (Although I can understand the reluctance of showing the world code I'd considered half-done myself.) As long as we know about memory leaks or in general know the alpha/beta state of the code, I'd consider it a non-issue. I don't think anyone would immediately put it to production use. As Marco said about ucw_public: "there is no policy as to what you should, or shouldn't, do to that repo (wild wild coding)" -- -asbjxrn From ajones1 at gmail.com Thu Nov 10 16:17:30 2005 From: ajones1 at gmail.com (Adam Jones) Date: Thu, 10 Nov 2005 08:17:30 -0800 Subject: [Bese-devel] Introduction and questions... In-Reply-To: <6FF61239-C4B3-4D72-9ABA-D3ECFC15323B@bjxrnstad.net> References: <437339D7.8090807@tech.coop> <1131633047.5970.39.camel@localhost.localdomain> <6FF61239-C4B3-4D72-9ABA-D3ECFC15323B@bjxrnstad.net> Message-ID: On 11/10/05, Asbj?rn Bj?rnstad wrote: > > On 10 Nov 2005, at 10:30 PM, Henrik Hjelte wrote: > > > On tor, 2005-11-10 at 04:15 -0800, Drew Crampsie wrote: > > > >> I plan on releasing my Dojo+ucw+lol stuff, just as soon as i find our > >> where all the memory is going (memory usage swells after a day of > >> usage > >> and eventually kills sbcl. bad code somewhere). > > > Why not release it to the darcs repository and have some more eyes on > > the bugs? I am currently building my own stuff around dojo, which > > seems > > like a waste of human energy. But I really need it now, that's why. > > I gotta agree. (Although I can understand the reluctance of showing > the world code I'd considered half-done myself.) > > As long as we know about memory leaks or in general know the alpha/beta > state of the code, I'd consider it a non-issue. I don't think anyone > would immediately put it to production use. > Actually I think drew is on the right idea here. Someone (I think it was paul graham) commented on how an initial launch of a product that is not ready for use will lead people to not try additional versions. Although it is still not at a full release (0.14.3 with other packages even lower at the time of this writing) ruby on rails is usable now. I mention this because lisp on lines fits in the same product space for lisp as ruby on rails does for ruby. When anyone sees it they will draw comparisons between the two, and if LoL does not have the same kind of functionality that RoR did at release they will make some bad assumptions. I would say make the code available by request. That allows the people who really want to play with it (i.e. enough to send out an email) to get to it, and keeps anyone who is just browsing from getting a bad idea. It allows more eyes that are willing to help fix the problem to look at it. -Adam From mb at bese.it Thu Nov 10 16:01:28 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Nov 2005 17:01:28 +0100 Subject: [Bese-devel] ucw_dev and arnesi_dev Message-ID: unless someone steps up shortly and offers to maintain a stable branch of ucw and deal wtih packaging/publishing releases i'm going to merge the _dev branches and the 'stable' branches of ucw and arnesi and always work off those. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From ajones1 at gmail.com Thu Nov 10 16:56:01 2005 From: ajones1 at gmail.com (Adam Jones) Date: Thu, 10 Nov 2005 08:56:01 -0800 Subject: [Bese-devel] ucw_dev and arnesi_dev In-Reply-To: References: Message-ID: On 11/10/05, Marco Baringer wrote: > > unless someone steps up shortly and offers to maintain a stable branch > of ucw and deal wtih packaging/publishing releases i'm going to merge > the _dev branches and the 'stable' branches of ucw and arnesi and > always work off those. > I would offer to do it except i'm still learning my way around the language, much less this specific system. I don't know how to do it, and do not have any webspace to host this on. However if it would not be too hard for me to learn how to handle something and you want me to do it I am more than willing. -Adam From mb at bese.it Thu Nov 10 17:19:18 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Nov 2005 18:19:18 +0100 Subject: [Bese-devel] ucw_dev and arnesi_dev In-Reply-To: (Adam Jones's message of "Thu, 10 Nov 2005 08:56:01 -0800") References: Message-ID: Adam Jones writes: > I would offer to do it except i'm still learning my way around the > language, much less this specific system. I don't know how to do it, > and do not have any webspace to host this on. However if it would not > be too hard for me to learn how to handle something and you want me to > do it I am more than willing. the hosting can be done on cl.net. the work consits of 1) deciding when ucw is stable (this basically amounts to testing it on various lisps with various configurations); 2) tagging the repos with the various version numbers 3) creating a tarball and updating the links on the site; 4) sending out an email to bese-announce (and maybe lispweb) describing what you've just done. it would be a good idea to also maintain a list of new-features/bug-fixes between releases. nb: you don't actually have to understand ucw or lisp to do this, you just have to be able to run ucw and make sure that, at the very least, all the examples work. you will also need acess to various lisp implementations (i can provide ssh access to: sbcl+cmucl+clisp on ppc and x86 linux, and openmcl on ppc (with all 4 backends). lispworks and allegro will be more challenging). ucw runs on 4 main lisp implementations, with 4 different backends on 3 different operating systems. there are about 34 (sbcl/cmucl/openmcl/clisp * darwin-ppc/linux-x86 * httpd/mod_lisp/araneida/aserve + clisp/araneida/windows + clisp/mod_lisp/windows) different combinations ucw can run under, do not underestimate the amount of time testing these combinations will require. personally i'd much much prefer you worked on the docs than managing releases. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From henrik.hjelte at poboxes.com Thu Nov 10 18:15:41 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Thu, 10 Nov 2005 19:15:41 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: References: <437339D7.8090807@tech.coop> <1131633047.5970.39.camel@localhost.localdomain> <6FF61239-C4B3-4D72-9ABA-D3ECFC15323B@bjxrnstad.net> Message-ID: <1131646541.5970.100.camel@localhost.localdomain> On tor, 2005-11-10 at 08:17 -0800, Adam Jones wrote: > Actually I think drew is on the right idea here. Someone (I think it > was paul graham) commented on how an initial launch of a product that > is not ready for use will lead people to not try additional versions. Eric Raymond calls it the Cathedral method in his book the Cathedral and the Bazaar. As a coincidence I started reading it yesterday. He describes how he and most hackers used to believe in what you and Paul Graham say, but that he changed his mind after observing the Linux development model. Instead of seeing the bugs as problems you have to hide from users, by only releasing stable versions, it is an attitude more like "If you have more eyes all bugs are small". He calls the Linux mode the Bazaar, and has a whole chapter with arguments why the Bazaar method is better. Paul Graham is a hero and a guru, but I don't think he has much experience from open-source projects [*] > Although it is still not at a full release (0.14.3 with other packages > even lower at the time of this writing) ruby on rails is usable now. I > mention this because lisp on lines fits in the same product space for > lisp as ruby on rails does for ruby. When anyone sees it they will > draw comparisons between the two, and if LoL does not have the same > kind of functionality that RoR did at release they will make some bad > assumptions. Is this even a problem? You can't win everyones heart. But *if* the goal is world-domination there is an even bigger problem if things take too long time. Especially if you compete with a project that is usable now. > > I would say make the code available by request. That allows the people > who really want to play with it (i.e. enough to send out an email) to > get to it, and keeps anyone who is just browsing from getting a bad > idea. It allows more eyes that are willing to help fix the problem to > look at it. It's a compromise. I can understand that if you develop something clever it can be distracting to have lots of people asking questions, commenting and asking for new features and so on. But there is also the possibility that someone may bring good stuff to the project or solve one or few bugs or add some documentation or find a corporate sponsor or whatever. /Henrik Hjelte [*] What is happening with arc anyway, the new better Lisp from Paul Graham? Still preparing for the grand opening I guess... > > -Adam > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From luca at pca.it Thu Nov 10 18:36:56 2005 From: luca at pca.it (Luca Capello) Date: Thu, 10 Nov 2005 19:36:56 +0100 Subject: [Bese-devel] ucw_dev and arnesi_dev References: Message-ID: <87k6fgs62f.fsf@gismo.pca.it> Hello! On Thu 10 Nov 2005 18:19 +0100, Marco Baringer wrote: > personally i'd much much prefer you worked on the docs than managing > releases. I agree: FWIW and IMHO, the best thing will be to have a good documentation, instead of a release management. After my 0.02CHF, everyone can do whatever he wants ;-) Thx, bye, Gismo / Luca -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From a_bakic at yahoo.com Thu Nov 10 19:06:58 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 10 Nov 2005 11:06:58 -0800 (PST) Subject: [Bese-devel] more patches and warnings In-Reply-To: <20051110114221.66032.qmail@web34603.mail.mud.yahoo.com> Message-ID: <20051110190658.1839.qmail@web34609.mail.mud.yahoo.com> > + (trace-statement "Applying cc closure ~S to ~S" (source (code closure/cc)) > effective-arguments) This should be (source (code operator)) instead. I am testing it... Alex __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From a_bakic at yahoo.com Thu Nov 10 19:18:23 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 10 Nov 2005 11:18:23 -0800 (PST) Subject: [Bese-devel] more patches and warnings In-Reply-To: <20051110114221.66032.qmail@web34603.mail.mud.yahoo.com> Message-ID: <20051110191824.61428.qmail@web34601.mail.mud.yahoo.com> One more fix (in the line with trace-statement): (defmethod apply-lambda/cc ((operator function) effective-arguments dyn-env k) "Method used when we're applying a regular, non cc, function object." (declare (ignore dyn-env)) (trace-statement "Applying function ~S to ~S" operator effective-arguments) (apply #'kontinue k (multiple-value-list (apply operator effective-arguments)))) Alex __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From mb at bese.it Thu Nov 10 19:47:17 2005 From: mb at bese.it (Marco Baringer) Date: Thu, 10 Nov 2005 20:47:17 +0100 Subject: [Bese-devel] more patches and warnings In-Reply-To: <20051110190658.1839.qmail@web34609.mail.mud.yahoo.com> (Aleksandar Bakic's message of "Thu, 10 Nov 2005 11:06:58 -0800 (PST)") References: <20051110190658.1839.qmail@web34609.mail.mud.yahoo.com> Message-ID: Aleksandar Bakic writes: >> + (trace-statement "Applying cc closure ~S to ~S" (source (code closure/cc)) >> effective-arguments) > > This should be (source (code operator)) instead. I am testing it... yeah, i assumed that was a thinko in the correction to my thinko :) the patch is applied sholud work. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From a_bakic at yahoo.com Thu Nov 10 20:54:24 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Thu, 10 Nov 2005 12:54:24 -0800 (PST) Subject: [Bese-devel] more patches and warnings In-Reply-To: Message-ID: <20051110205424.85986.qmail@web34601.mail.mud.yahoo.com> > the patch is applied sholud work. Sorry, there is no arg-list anymore: diff -rN -u old-arnesi_dev/src/call-cc/apply.lisp new-arnesi_dev/src/call-cc/apply.lisp --- old-arnesi_dev/src/call-cc/apply.lisp 2005-11-10 21:50:29.000000000 +0100 +++ new-arnesi_dev/src/call-cc/apply.lisp 2005-11-10 21:52:15.000000000 +0100 @@ -157,7 +157,7 @@ ;;;; environment and transfers control. (defmethod apply-lambda/cc ((operator closure/cc) effective-arguments dyn-env k) - (trace-statement "Applying cc closure ~S to ~S" (source (code operator)) (rest arg-list)) + (trace-statement "Applying cc closure ~S to ~S" (source (code operator)) effective-arguments) (let ((lex-env (env operator)) (remaining-arguments effective-arguments) (remaining-parameters (arguments (code operator)))) Alex __________________________________ Start your day with Yahoo! - Make it your home page! http://www.yahoo.com/r/hs From ajones1 at gmail.com Fri Nov 11 02:43:58 2005 From: ajones1 at gmail.com (Adam Jones) Date: Thu, 10 Nov 2005 18:43:58 -0800 Subject: [Bese-devel] Introduction and questions... In-Reply-To: <1131646541.5970.100.camel@localhost.localdomain> References: <437339D7.8090807@tech.coop> <1131633047.5970.39.camel@localhost.localdomain> <6FF61239-C4B3-4D72-9ABA-D3ECFC15323B@bjxrnstad.net> <1131646541.5970.100.camel@localhost.localdomain> Message-ID: > > Actually I think drew is on the right idea here. Someone (I think it > > was paul graham) commented on how an initial launch of a product that > > is not ready for use will lead people to not try additional versions. > > Eric Raymond calls it the Cathedral method in his book the Cathedral and > the Bazaar. As a coincidence I started reading it yesterday. He > describes how he and most hackers used to believe in what you and Paul > Graham say, but that he changed his mind after observing the Linux > development model. Instead of seeing the bugs as problems you have to > hide from users, by only releasing stable versions, it is an attitude > more like "If you have more eyes all bugs are small". He calls the Linux > mode the Bazaar, and has a whole chapter with arguments why the Bazaar > method is better. Paul Graham is a hero and a guru, but I don't think he > has much experience from open-source projects [*] I think my idea tries to take the best of both. The problem with the bazaar concept is that opinions have inertia. Someone who sees a half-finished initial version of a piece of software will hold onto the opinions they form of it for a long time, and will not change their assesment as quickly as if they had first evaluated a more finished product. My point is that development "in public" is a great idea, distrobution is not. Public distribution ensures that people with neither the time nor the energy to even debug their installation of your half-finished code (much less help you fix it) see and do not like your project. > > > Although it is still not at a full release (0.14.3 with other packages > > even lower at the time of this writing) ruby on rails is usable now. I > > mention this because lisp on lines fits in the same product space for > > lisp as ruby on rails does for ruby. When anyone sees it they will > > draw comparisons between the two, and if LoL does not have the same > > kind of functionality that RoR did at release they will make some bad > > assumptions. > Is this even a problem? You can't win everyones heart. But *if* the goal > is world-domination there is an even bigger problem if things take too > long time. Especially if you compete with a project that is usable now. I would say it is a problem simply because people are going to draw a comparison between the two. Anyone new to both platforms will look at LoL and see a project that is nowhere near what RoR is at the moment, and go for that. Some degree of interest is necessary to sustain any open source project, and a little forethought into the management and timing of releases now will secure that interest later. > > > > > I would say make the code available by request. That allows the people > > who really want to play with it (i.e. enough to send out an email) to > > get to it, and keeps anyone who is just browsing from getting a bad > > idea. It allows more eyes that are willing to help fix the problem to > > look at it. > It's a compromise. I can understand that if you develop something clever > it can be distracting to have lots of people asking questions, > commenting and asking for new features and so on. But there is also the > possibility that someone may bring good stuff to the project or solve > one or few bugs or add some documentation or find a corporate sponsor or > whatever. This is why I suggested keeping it open by request. It allows some of the benefits from a fully open project, but keeps project control more firmly in drew's hands with less management overhead (i'm sure he would like that) In the end it is up to drew, who is probably too busy coding to watch us plan out his project. =) > > /Henrik Hjelte > > [*] What is happening with arc anyway, the new better Lisp from Paul > Graham? Still preparing for the grand opening I guess... At times I wonder if he just trots it out whenever it seems like someone is starting to put together a new lisp. Really though designing a new language is a tough thing, trying to "beat lisp" with it is even more so, and paul graham comes across a somewhat of a perfectionist to me, which will slow down a project even as it makes things ultimately better. -Adam From waldo at trianet.net Fri Nov 11 04:50:46 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Thu, 10 Nov 2005 23:50:46 -0500 Subject: [Bese-devel] Installing latest ucw_dev Message-ID: I'm doing a fresh install of openmcl v1.0 on Mac OS. I followed the instructions on README file after installing ucw_dev and arnesi_dev. However, openmcl cannot find arnesi: venus:~/dev/lisp/ucw_dev venus$ openmcl -l bin/start.lisp > Error in process listener(1): Error component "arnesi" not found > While executing: ASDF:FIND-SYSTEM > Type :GO to continue, :POP to abort. > If continued: Skip loading "bin/start.lisp" Type :? for other options. Any ideas? Thanks, Waldo From luca at pca.it Fri Nov 11 07:22:53 2005 From: luca at pca.it (Luca Capello) Date: Fri, 11 Nov 2005 08:22:53 +0100 (CET) Subject: [Bese-devel] darcs patch: added README file Message-ID: <20051111072253.78D63CC61@gismo.pca.it> Fri Nov 11 08:21:58 CET 2005 Luca Capello * added README file -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 2122 bytes Desc: A darcs patch for your repository! URL: From jan at rychter.com Fri Nov 11 13:25:06 2005 From: jan at rychter.com (Jan Rychter) Date: Fri, 11 Nov 2005 14:25:06 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: (Marco Baringer's message of "Wed, 09 Nov 2005 14:22:00 +0100") References: Message-ID: >>>>> "Marco" == Marco Baringer writes: Marco> The first thing you could do is point us (iow me) to a Marco> javascript library. i've tried rico+prototype+behaviour, drew Marco> seems to use dojo and i think some people are using mochikit (or Marco> whatever it's called), tying ucw to one particular library would Marco> allow us to move forward on a lot of stuff. Dojo seems to be the most interesting of the pack. --J. From jan at rychter.com Fri Nov 11 13:34:44 2005 From: jan at rychter.com (Jan Rychter) Date: Fri, 11 Nov 2005 14:34:44 +0100 Subject: [Bese-devel] Introduction and questions... In-Reply-To: (Marco Baringer's message of "Wed, 09 Nov 2005 14:22:00 +0100") References: Message-ID: >>>>> "Marco" == Marco Baringer writes: Marco> in particular i'm toying with some ideas on building a ucw form Marco> library (seperating out vladimir's excellent form stuff from the Marco> presentation stuff) which would benifit greatly from javascript Marco> integration. In that case, here are some comments based on my short experience building a simple application with UCW. I found the current (ie) forms API rather cumbersome to use, even though it looks very elegant at a first glance. I'm still trying to understand just what kind of API I'd like to use -- but this isn't easy stuff. One immediate comment on what we have now: I don't think I will ever use its automated presentation facilities (things like generating form labels from the names of CLOS slots). I believe that in all practical applications (e.g. code that is used by users, not developers) one will want to have an object specifying the interface and one will want to provide names and paramerers for all form elements. In general, presentation-type approach seems neat in theory, but is usually too strict in practice. For example, viewing data and accepting data are completely different things in most web applications -- you usually view data grouped in tables and you accept it on a per-item basis in forms. I can't fit that into a presentation framework without a lot of pain. What I ended up with in my current application is that for most forms I'd use interface elements (specified via :component slot attributes) for most, but *not all* slots in my classes. This meant that the (setf (lisp-value x)...) trick wouldn't quite work for me, so I ended up with overly large shared-initialize methods that would do the following for an enumerated list of slots: (setf (slot-indirect-object s 'direct-value) (data-domain-object component)) (setf (client-value s) (lisp-value s))) ... then performing some additional initializatioh and housekeeping for slots which wouldn't directly map to editable form elements. This works, but I have a feeling it's too complex. The other problem is that you end up with too many render-slots :before and :after methods if you want to place your various form elements just right. The indirect-value thing is extremely neat, but difficult to use. I'd like a more direct way of specifying what each interface element really edits. Also, on a very practical level, my brain revolts when I see ":direct-value (indirect-value...)". The third thing is validation. I've been thinking about how to implement it -- and I've been thinking of using additional slot attributes for the validator list (or validator tree) [see AMOP page 87, section 3.5.2]. That would allow us to inherit them properly, and if we could specify that certain validators run before others (e.g. you'd want to trim whitespace before verifying bank account number correctness), then we would be able to sort that list (tree). The important thing about validation is that I'd really like to see a framework capable of generating client-side javascript validation code for some validators. This means that implementing validators as CLOS methods is out, also because one can't easily order them at will using method combination facilities. Overall, what I'm looking for is an API where I'd use a minimal number of lines of code, but where I'd still get reasonable flexibility. Quoting Einstein: "Everything should be made as simple as possible, but not simpler." --J. From mb at bese.it Fri Nov 11 13:26:45 2005 From: mb at bese.it (Marco Baringer) Date: Fri, 11 Nov 2005 14:26:45 +0100 Subject: [Bese-devel] Installing latest ucw_dev In-Reply-To: (Waldo Rubinstein's message of "Thu, 10 Nov 2005 23:50:46 -0500") References: Message-ID: Waldo Rubinstein writes: > I'm doing a fresh install of openmcl v1.0 on Mac OS. I followed the > instructions on README file after installing ucw_dev and arnesi_dev. > > However, openmcl cannot find arnesi: > venus:~/dev/lisp/ucw_dev venus$ openmcl -l bin/start.lisp > > Error in process listener(1): Error component "arnesi" not found > > While executing: ASDF:FIND-SYSTEM > > Type :GO to continue, :POP to abort. > > If continued: Skip loading "bin/start.lisp" > Type :? for other options. asdf doesn't know how to find arnesi (of of ucw's suppert libs). get arnesi from here: darcs get http://common-lisp.net/project/bese/repos/arnesi_dev then create a symlink from arnesi.asd to whatever systems directory you have on asdf:*central-registry*. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From waldo at trianet.net Fri Nov 11 14:21:20 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Fri, 11 Nov 2005 09:21:20 -0500 Subject: [Bese-devel] Installing latest ucw_dev In-Reply-To: References: Message-ID: <1E043EE4-D102-486B-8407-8325AC13C8F0@trianet.net> Thanks. I realized I had incorrect symlinks. - waldo On Nov 11, 2005, at 8:26 AM, Marco Baringer wrote: > Waldo Rubinstein writes: > >> I'm doing a fresh install of openmcl v1.0 on Mac OS. I followed the >> instructions on README file after installing ucw_dev and arnesi_dev. >> >> However, openmcl cannot find arnesi: >> venus:~/dev/lisp/ucw_dev venus$ openmcl -l bin/start.lisp >>> Error in process listener(1): Error component "arnesi" not found >>> While executing: ASDF:FIND-SYSTEM >>> Type :GO to continue, :POP to abort. >>> If continued: Skip loading "bin/start.lisp" >> Type :? for other options. > > asdf doesn't know how to find arnesi (of of ucw's suppert libs). get > arnesi from here: > > darcs get http://common-lisp.net/project/bese/repos/arnesi_dev > > then create a symlink from arnesi.asd to whatever systems directory > you have on asdf:*central-registry*. > > -- > -Marco > Ring the bells that still can ring. > Forget the perfect offering. > There is a crack in everything. > That's how the light gets in. > -Leonard Cohen From nathan at acceleration.net Fri Nov 11 16:27:07 2005 From: nathan at acceleration.net (Nathan Bird) Date: Fri, 11 Nov 2005 11:27:07 -0500 Subject: [Bese-devel] Threadpooling in multithread-httpd-backend Message-ID: <20051111162710.3E53588556@common-lisp.net> Here is a proposed patch improving the multithread-httpd-backend. The issue is before it had a circular queue of worker threads and it was always allocating the request to the next worker, even if that worker was still busy handling a previous request e.g. some dumb programmer who we won't name (allright fine, it was me) has somehow gotten an infinite loop or something in the render function. The new method keeps a stack of available workers that it pops off of when a new request comes in. When a worker finishes handling a request it sends a message back to the control-thread who then pushes the worker back onto the available-workers stack. There is a second patch as well that splits the multithreaded backend into a separate file. It seemed that there was enough code here now to warrant that and httpd.lisp was getting kind of large, but you don't need to grab that patch if you want to keep it all in httpd.lisp. By default it creates 4 workers when it starts and has a max worker count of 32. Right now when it exceeds max workers it re-queues the connection message to the control thread hoping one of the other workers finishes off in the meantime. This probably isn't the best strategy. What happens if a worker never becomes available? Can we check to see if the client is still connected before re-queuing or something? An alternative might be to just send an error message to the client saying that the server is too busy. I have the start of a function in here that should do that (send-error in httpd.lisp, I looked at some of the other error functions but those all seemed to be at a higher level, I was trying to avoid reading the full request and just send an error as the response), except as far as I can tell it never correctly sends anything to the client. We would probably want this error message to be handled by a separate thread anyways since we don't want to block the control-thread while sending to the client "We're to busy". That would probably just aggravate the situation. Some mechanism for timing out requests that go on for to long would probably be a good idea. Have that be one of the options when starting up the server maybe. Somewhere yesterday I saw a with-timeout macro (probably swank) that might be useful for this. I've tested this with SBCL 0.9.5 on linux with mod_lisp and it seems to work there, but overall this patch should probably be considered unstable. I would work on this a bit more myself but I will be out of town this weekend and wanted to get what I have out there for other people to look at. I'm still fairly new to lisp and this is my first attempt at hacking multithreaded lisp. My handling of conditions is probably not the best. Maybe some of the veterans out there can look through it a bit and give it a bit of loving? Nathan Bird -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: multithread-httpd-backend.darcs Type: application/octet-stream Size: 58153 bytes Desc: not available URL: From albertosantini at tiscali.it Fri Nov 11 21:34:57 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Fri, 11 Nov 2005 22:34:57 +0100 Subject: [Bese-devel] Hello app in ucw_dev... Message-ID: <156978C9-89C2-4FB6-A1F5-C7E71425631E@tiscali.it> Hello. I downloaded ucw_dev release of UCW with darcs. usually I use the release 0.3.9. Then I tried to apply my little knowledge to configure UCW. There is no problem to start UCW: downloaded the latest libraries, configured *central-registry*, portableaserve, etc. UCW is up and running. I tried to check the new installation playing with the example app. I figured out the url: http://localhost:8080/index.ucw. Result: not found. So I tried with admin app: http://localhost:8080/admin/index.ucw. Ok. There is the login form, validate and I see the admin app. Where is the example app? I tried several urls but UCW says not found. Then I tried to port the hello app. Ok... I commented out the registration and put the global variables in create-server in bin/start.lisp. Now UCW starts hello app. I can see in Applications section of admin app. Now the url of hello app is http://localhost:8080/hello/index.ucw. If I call that url, UCW displays an error: ? 2005-11-11T22:33.30 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW-LOGGER: CALL'ing to /# 2005-11-11T22:33.30 IT.BESE.ARNESI:+ERROR+ IT.BESE.UCW::UCW-LOGGER: Error # while serving action. 2005-11-11T22:33.30 IT.BESE.ARNESI:+ERROR+ IT.BESE.UCW::UCW-LOGGER: Recursive action error #. > Debug: No applicable method for args: > (# # NIL) > to # > While executing: "Unknown" ;;; ;;; # requires access to Shared Terminal Input ;; Thanks in advance, Alberto Santini From waldo at trianet.net Fri Nov 11 21:39:32 2005 From: waldo at trianet.net (Waldo Rubinstein) Date: Fri, 11 Nov 2005 16:39:32 -0500 Subject: [Bese-devel] Hello app in ucw_dev... In-Reply-To: <156978C9-89C2-4FB6-A1F5-C7E71425631E@tiscali.it> References: <156978C9-89C2-4FB6-A1F5-C7E71425631E@tiscali.it> Message-ID: <485A726C-0582-49F7-8D5E-8A6F4976E346@trianet.net> Alberto, I just did a fresh install of everything from darcs using all the *_dev and specified requirements and once I properly configured my asdf, I had no problems. I simply connected to http://localhost:8080/ and it worked and the admin was in http://localhost:8080/admin. - Waldo On Nov 11, 2005, at 4:34 PM, Alberto Santini wrote: > Hello. > > I downloaded ucw_dev release of UCW with darcs. > usually I use the release 0.3.9. > > Then I tried to apply my little knowledge to configure UCW. > There is no problem to start UCW: downloaded the latest libraries, > configured *central-registry*, portableaserve, etc. > > UCW is up and running. > > I tried to check the new installation playing with the example app. > I figured out the url: http://localhost:8080/index.ucw. > > Result: not found. > > So I tried with admin app: http://localhost:8080/admin/index.ucw. > Ok. There is the login form, validate and I see the admin app. > > Where is the example app? I tried several urls but UCW says not found. > > Then I tried to port the hello app. Ok... I commented out the > registration > and put the global variables in create-server in bin/start.lisp. > Now UCW > starts hello app. I can see in Applications section of admin app. > > Now the url of hello app is http://localhost:8080/hello/index.ucw. > If I call that url, UCW displays an error: > > ? 2005-11-11T22:33.30 IT.BESE.ARNESI:+INFO+ IT.BESE.UCW::UCW- > LOGGER: CALL'ing to /# > 2005-11-11T22:33.30 IT.BESE.ARNESI:+ERROR+ IT.BESE.UCW::UCW-LOGGER: > Error # while serving action. > 2005-11-11T22:33.30 IT.BESE.ARNESI:+ERROR+ IT.BESE.UCW::UCW-LOGGER: > Recursive action error #. > > Debug: No applicable method for args: > > (# > # NIL) > > to # ERROR-USING-APPLICATION #x86E6B76> > > While executing: "Unknown" > > > ;;; > ;;; # requires > access to Shared Terminal Input > ;; > > Thanks in advance, > Alberto Santini > > > > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From drewc at tech.coop Sat Nov 12 13:11:33 2005 From: drewc at tech.coop (Drew Crampsie) Date: Sat, 12 Nov 2005 05:11:33 -0800 Subject: [Bese-devel] Introduction and questions... In-Reply-To: References: Message-ID: <4375EA05.8090509@tech.coop> Jan Rychter wrote: > One immediate comment on what we have now: I don't think I will ever use > its automated presentation facilities (things like generating form > labels from the names of CLOS slots). I believe that in all practical > applications (e.g. code that is used by users, not developers) one will > want to have an object specifying the interface and one will want to > provide names and paramerers for all form elements. > > In general, presentation-type approach seems neat in theory, but is > usually too strict in practice. For example, viewing data and accepting > data are completely different things in most web applications -- you > usually view data grouped in tables and you accept it on a per-item > basis in forms. I can't fit that into a presentation framework without > a lot of pain. My Lisp-on-Lines framework 'solves' (fsvo solves) this problem by using a presentation system that is more dynamic in nature. For example : (defclass simple-content (content) ((title :accessor title :initarg :title :initform "") (show-title-p :accessor show-title-p :initarg :show-title-p :initform t) (body :accessor body :initarg :body :initform ""))) (lol:define-meta-model simple-content () ((title :type string) (body :type string) (name :type string) (show-title-p :type boolean))) (lol:set-default-attributes 'simple-content) Obviously, these three forms should be combined into a "DEFCLASS/META" macro, but i have not yet gotten around to it. With that information, you have enough to display a default viewer/editor/creator/one-line/as-string or another view of the object. There are some simple macros for handling that sort of thing, all of them share a simple syntax, so you can do something like " (lol:call-view ((make-instance 'simple-content) :editor) (name title body)) and all the details are hidden away for you. For the most part, the default attributes are not enough, so LoL makes it real easy to modify : (lol:define-attributes (simple-content faq-item) (body mewa::text) (show-title-p mewa::mewa-boolean) (:one-line t :attributes (title)) (:viewer content-viewer) (:editor content-editor :attributes (name title show-title-p (body :type dojo-editor))) (:creator content-editor :attributes (name title show-title-p (body :type dojo-editor)))) A lot of the time, the default object presentations are enough (the T in the :one-line means 'use the default', though in this case, i needed a custom presentation: (defcomponent content-presentation (lol::mewa-viewer) ()) (defmethod lol:present ((self content-presentation)) (<:div :class "content" (when (show-title-p (lol:instance self)) (<:h2 (lol:present-slot-view self 'title))) (lol:present-slot-view self 'body) (when (editablep self) ( Overall, what I'm looking for is an API where I'd use a minimal number > of lines of code, but where I'd still get reasonable > flexibility. Quoting Einstein: "Everything should be made as simple as > possible, but not simpler." LoL probably meets your needs, and is available just by mailing me and asking _really_ nice :). In the event that UCW ends up with a great forms library, it would be simple to change LoL to use it underneath, although, LoL itself could probably be used to make a great form library for UCW, but that is neither here nor there right now. An LoL release (0.1) is forthcoming, if anybody wants to help/play/insult my lack of forsight, just drop me a line. drewc > > --J. > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From albertosantini at tiscali.it Sat Nov 12 09:33:45 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Sat, 12 Nov 2005 10:33:45 +0100 Subject: [Bese-devel] Hello app in ucw_dev... In-Reply-To: <485A726C-0582-49F7-8D5E-8A6F4976E346@trianet.net> References: <156978C9-89C2-4FB6-A1F5-C7E71425631E@tiscali.it> <485A726C-0582-49F7-8D5E-8A6F4976E346@trianet.net> Message-ID: <0AABF2A0-7053-4AEF-A692-4D25BE4AED59@tiscali.it> I resolved the problem with hello app. The render-on method is substituted by render method. So the (correct) last version of hello app, running with ucw_dev, is: (in-package :it.bese.ucw-user) (defvar *hello-world* (make-instance 'cookie-session-application :url-prefix "/hello/")) ;; (register-application *default-server* *hello-world*) (defentry-point "index.ucw" (:application *hello-world*) () (loop (let ((name (call 'hello-world-home-page))) (call 'personalized-greeting :name name)))) (defcomponent hello-world-home-page (simple-window-component) () (:default-initargs :title "Hello, World!")) (defmethod render ((hello hello-world-home-page)) (<:p "Hello, World!") (let ((name "")) ( Alberto, > > I just did a fresh install of everything from darcs using all the > *_dev and specified requirements and once I properly configured my > asdf, I had no problems. I simply connected to http://localhost: > 8080/ and it worked and the admin was in http://localhost:8080/admin. > > - Waldo > > On Nov 11, 2005, at 4:34 PM, Alberto Santini wrote: > >> Hello. >> >> I downloaded ucw_dev release of UCW with darcs. >> usually I use the release 0.3.9. [cut] From albertosantini at tiscali.it Sat Nov 12 10:29:26 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Sat, 12 Nov 2005 11:29:26 +0100 Subject: [Bese-devel] Hello app in ucw_dev... In-Reply-To: <0AABF2A0-7053-4AEF-A692-4D25BE4AED59@tiscali.it> References: <156978C9-89C2-4FB6-A1F5-C7E71425631E@tiscali.it> <485A726C-0582-49F7-8D5E-8A6F4976E346@trianet.net> <0AABF2A0-7053-4AEF-A692-4D25BE4AED59@tiscali.it> Message-ID: <8D41F93A-E5D6-4A41-885F-7CC099C67E2F@tiscali.it> Of course, if I change examples.lisp in ucw_dev/examples/ examples.lisp as ... (:entry-point "index.ucw" (:application *example-application* :class regexp-entry-point))) I can play with the examples page (openmcl 1.0, ucw_dev and portableaserve). http://localhost:8080/index.ucw I think, maybe, there is something related with regular expression library, but it's a library contained in portableaserve. I noted, doing changes to the examples.lisp and recompiling by slime, the entry-points slot of the app grew (it's a list) every time I changed the entry-point. The initial values are 'error.ucw' and 'index.ucw', but if I change the entry point and recompile entry-points slot will contain three values and so on. I don't know if a behaviour expected. Sorry if this note is silly. Regards, Alberto Santini On Nov 12, 2005, at 10:33 AM, Alberto Santini wrote: > I resolved the problem with hello app. The render-on method is > substituted by render method. > So the (correct) last version of hello app, running with ucw_dev, is: > [cut] From karol.skocik at gmail.com Sat Nov 12 11:06:23 2005 From: karol.skocik at gmail.com (karol skocik) Date: Sat, 12 Nov 2005 12:06:23 +0100 Subject: [Bese-devel] bese continuations Message-ID: Hi, I want to use bese continuations in some graph matching search problems - I mean, when one mapping from pattern graph to search graph is found - the search should return the mapping + continuation, so that when I call the continuation, I searches for the next mapping. I was googling a lot, but I couldn't find that small clear example (not description of CPS framework) how to use them. I have checked Bill Clementson's blog about them as well, but they don't show me that what I am looking for, or at least I can't figure out the functionality in those examples. I hope, somebody will write me example with this functionality : (dotimes (i 10) ;; here I want to save the continuation to *variable* ;; here I want to return 'i') Thank you, Karol From mb at bese.it Sat Nov 12 12:10:33 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 12 Nov 2005 13:10:33 +0100 Subject: [Bese-devel] bese continuations In-Reply-To: (karol skocik's message of "Sat, 12 Nov 2005 12:06:23 +0100") References: Message-ID: karol skocik writes: > I hope, somebody will write me example with this functionality : > > (dotimes (i 10) > ;; here I want to save the continuation to *variable* > ;; here I want to return 'i') ; loading system definition from /Users/mb/lisp/systems/arnesi.asd into # ; registering # as ARNESI ; registering # as ARNESI.TEST ; registering # as ARNESI.CL-PPCRE-EXTRAS CL-USER> CL-USER> ARNESI> (defvar *k* nil) *K* ARNESI> (with-call/cc (dotimes (i 3) (let/cc k (setf *k* k) i))) 0 ARNESI> (kall *k*) 1 ARNESI> (kall *k*) 2 ARNESI> (kall *k*) NIL ARNESI> (kall *k*) 4 ARNESI> so that't how you'd do it, and it'd work to if openmcl's implementation of dotimes to continuations into account :) -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sat Nov 12 12:42:28 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 12 Nov 2005 13:42:28 +0100 Subject: [Bese-devel] bese continuations In-Reply-To: (Marco Baringer's message of "Sat, 12 Nov 2005 13:10:33 +0100") References: Message-ID: "Marco Baringer" writes: > so that't how you'd do it, and it'd work to if openmcl's > implementation of dotimes to continuations into account :) that should read: so that's how you'd do it, and it'd work too if openmcl's implementation of dotimes took continuations into account :) -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From karol.skocik at gmail.com Sat Nov 12 08:42:10 2005 From: karol.skocik at gmail.com (karol skocik) Date: Sat, 12 Nov 2005 09:42:10 +0100 Subject: [Bese-devel] bese continuations Message-ID: Hi, I want to use bese continuations in some graph matching search problems - I mean, when one mapping from pattern graph to search graph is found - the search should return the mapping + continuation, so that when I call the continuation, I searches for the next mapping. I was googling a lot, but I coudn't find that small clear example (not description of CPS framework) how to use them. I have checked Bill Clementson blog about them as well, but they don't show me that what I am looking for, or at least I can't figure out the functionality in those examples. I hope, somebody will write me example with this functionality : (dotimes (i 10) ;; here I want to save the continuation to *variable* ;; here I want to return 'i') Thank you, Karol From albertosantini at tiscali.it Sat Nov 12 15:12:07 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Sat, 12 Nov 2005 16:12:07 +0100 Subject: [Bese-devel] darcs patch: minor changes in docs/QUICKSTART... Message-ID: minor changes in docs/QUICKSTART. -------------- next part -------------- A non-text attachment was scrubbed... Name: CHANGESET Type: application/octet-stream Size: 34586 bytes Desc: not available URL: -------------- next part -------------- Regards, Alberto Santini From luca at pca.it Sun Nov 13 11:14:44 2005 From: luca at pca.it (Luca Capello) Date: Sun, 13 Nov 2005 12:14:44 +0100 Subject: [Bese-devel] darcs patch: minor changes in docs/QUICKSTART... In-Reply-To: (Alberto Santini's message of "Sat, 12 Nov 2005 16:12:07 +0100") References: Message-ID: <871x1kkdej.fsf@gismo.pca.it> Hello! On Sat 12 Nov 2005 16:12 +0100, Alberto Santini wrote: > minor changes in docs/QUICKSTART. A general comment unrelated to this specific patch. I noticed that you saved the patch and then sent it as a normal mail. Darcs provides an automatic command to do that: $ darcs send --to=bese-devel at common-lisp.net You are prompted for the patch you want to send ;-) `darcs send --help` or the darcs manual [1] for more info. HTH! Thx, bye, Gismo / Luca [1] http://www.darcs.net/manual/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From albertosantini at tiscali.it Sun Nov 13 11:51:17 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Sun, 13 Nov 2005 12:51:17 +0100 Subject: [Bese-devel] darcs patch: minor changes in docs/QUICKSTART... In-Reply-To: <871x1kkdej.fsf@gismo.pca.it> References: <871x1kkdej.fsf@gismo.pca.it> Message-ID: <4817E2CB-FFC3-4533-ACBE-2B193C6831D7@tiscali.it> Hello Luca. It was my first patch using darcs. Please, be patient :) and thanks for the advice. I have two problems (only two?): - I don't understand why, when I post a new topic in the mailing list, my post is a subtopic of the last post (sigh!). In this case'darcs patch' subject is a subtopic of bese continuations, but I'm sure to have done a fresh mail a not a reply. - I did as you said: executing 'darcs send' command and darcs asked the target mail address. Then darcs sent the patch and exit without error. I had no evidence of the result of the sending. So I executed 'darcs send -o CHANGESET' command and sent the patch to the mailing list by email. I'm working on Mac OS X and I don't know if I have a mail environment configured correctly (sendmail) to send an email from command line, by darcs. About the comment... have I to be more specific (and not general)? Thanks in advance, Alberto Santini On Nov 13, 2005, at 12:14 PM, Luca Capello wrote: > Hello! > > On Sat 12 Nov 2005 16:12 +0100, Alberto Santini wrote: >> minor changes in docs/QUICKSTART. > > A general comment unrelated to this specific patch. > > I noticed that you saved the patch and then sent it as a normal > mail. Darcs provides an automatic command to do that: > > $ darcs send --to=bese-devel at common-lisp.net > > You are prompted for the patch you want to send ;-) > > `darcs send --help` or the darcs manual [1] for more info. > > HTH! > > Thx, bye, > Gismo / Luca > > [1] http://www.darcs.net/manual/ > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel From luca at pca.it Sun Nov 13 15:38:04 2005 From: luca at pca.it (Luca Capello) Date: Sun, 13 Nov 2005 16:38:04 +0100 Subject: [Bese-devel] darcs patch: minor changes in docs/QUICKSTART... In-Reply-To: <4817E2CB-FFC3-4533-ACBE-2B193C6831D7@tiscali.it> References: <871x1kkdej.fsf@gismo.pca.it> <4817E2CB-FFC3-4533-ACBE-2B193C6831D7@tiscali.it> Message-ID: <87slu0pnhf.fsf@gismo.pca.it> Hello Alberto! On Sun 13 Nov 2005 12:51 +0100, Alberto Santini wrote: > It was my first patch using darcs. Please, be patient :) and thanks > for the advice. Don't worry, it was just a suggestion ;-) One disadvantage of using `darcs send` is that if you call it without any other option, the mail subject doesn't include the repository, so you don't know to which BESE software the patch should be applied :-( > - I don't understand why, when I post a new topic in the mailing > list, my post is a subtopic of the > last post (sigh!). In this case'darcs patch' subject is a subtopic of > bese continuations, but I'm > sure to have done a fresh mail a not a reply. Strange, on No Gnus 0.4 + GNU Emacs CVS your mail is correctly threaded, I mean, I don't see it as part of the "bese continuations" topic. But on the web archive [1] is like your situation. > I'm working on Mac OS X and I don't know if I have a mail environment > configured correctly > (sendmail) to send an email from command line, by darcs. I don't own a Mac, but I checked on two OS X (Panther 10.3.9 and Tiger 10.4.2): both have Postfix installed, but not running by default. So, you don't have any `darcs send` error because the mail is sent to Postfix, but as the last is not running, it's in the queue (check with the command `mailq` on a terminal). You should enable Postfix to deliver mails and then `darcs send` should work as expected. > About the comment... have I to be more specific (and not general)? This should be asked to Marco ;-) > Thanks in advance, You're welcome. BTW, please, don't top-post [2] :-) Thx, bye, Gismo / Luca [1] http://common-lisp.net/pipermail/bese-devel/2005-November/thread.html [2] http://en.wikipedia.org/wiki/Top-posting -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From asbjxrn at bjxrnstad.net Mon Nov 14 11:41:10 2005 From: asbjxrn at bjxrnstad.net (asbjxrn at bjxrnstad.net) Date: 14 Nov 2005 12:41:10 +0100 Subject: [Bese-devel] defaction/dotimes bug? Message-ID: <5oiruvfodl.fsf@kahdeksan.ifi.uio.no> Is this expected? Using dolist within an action causes an error for me. (defaction test-form ((pane message-box)) (call 'info-message :message (format nil "~A" (call 'test-form )))) (defcomponent test-form (form-element) ((top-pane :initarg :top-pane :accessor top-pane) (foo :initarg :foo :accessor foo :component (integer-element)))) (defmethod render ((pane test-form)) ( (asbjxrn@bjxrnstad.net's message of "14 Nov 2005 12:41:10 +0100") References: <5oiruvfodl.fsf@kahdeksan.ifi.uio.no> Message-ID: asbjxrn at bjxrnstad.net writes: > Is this expected? Using dolist within an action causes an error for > me. > > (defaction test-form ((pane message-box)) > (call 'info-message :message (format nil "~A" (call 'test-form )))) > > (defcomponent test-form (form-element) > ((top-pane :initarg :top-pane :accessor top-pane) > (foo :initarg :foo :accessor foo :component (integer-element)))) > > (defmethod render ((pane test-form)) > ( (render (foo pane)) > (<:input :type :submit))) > > (defun foob (x) > (dolist (hum '(1 2 3) x) > (incf x))) > > (defaction submit ((pane test-form)) > (if (validp pane) > (let ((bar (lisp-value (foo pane)))) > ; (answer (dolist (hum '(1 2 3) bar) (incf bar)))))) ; Bug? > (answer (foob bar))))) i can't reproduce this on openmcl. what lisp are you using? what's the error? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From alexander.kjeldaas at gmail.com Mon Nov 14 23:27:02 2005 From: alexander.kjeldaas at gmail.com (Alexander Kjeldaas) Date: Tue, 15 Nov 2005 00:27:02 +0100 Subject: [Bese-devel] ucw + clsql Message-ID: Starting ucw, and then doing a (require :clsql) or (asdf:oos 'asdf:load-op :clsql), the example start page will stop working and print the following error: When attempting to read the slot's value (slot-value), the slot IT.BESE.UCW-USER::TIME-FIELD is missing from the object NIL. OR the following message When attempting to read the slot's value (slot-value), the slot IT.BESE.UCW-USER::INTEGER-FIELD is missing from the object NIL. latest ucw from cvs clsql 3.4.3 sbcl 0.9.6.33 Does this make sense? astor From nathan at acceleration.net Tue Nov 15 02:00:33 2005 From: nathan at acceleration.net (Nathan Bird) Date: Mon, 14 Nov 2005 21:00:33 -0500 Subject: [Bese-devel] Form work Message-ID: <20051115020033.963C588555@common-lisp.net> I've heard that the presentations in ucw are expected to go away soon; hopefully in favor of some Lisp On Lines goodness. However I have been using what is there for the time being as I've been learning the rest of ucw. In the meantime here are a few patches to the indirect-value class stuff (would that be better off in arnesi?), the interface elements, and the presentation thereof that I've pushed to ucw_public: Tue Nov 15 01:24:22 GMT 2005 Nathan Bird * Extending slot-elements to filter on ie-type Tue Nov 15 01:28:29 GMT 2005 Nathan Bird * lisp-value on composite-element initialize Tue Nov 15 01:30:07 GMT 2005 Nathan Bird * splitting out render-slots to be a bit finer grained Tue Nov 15 01:34:59 GMT 2005 Nathan Bird * stop present on set trying to access slots that aren't there Tue Nov 15 01:42:16 GMT 2005 Nathan Bird * Intelligent error when slot not found When trying to access the slot-indirect-value of an object with a given slot name, if the object didn't have a slot named as such it was going into an infinite loop on (slot-indirect-value obj nil). I've tried to separate these patches out so that you can cherry pick from them, but there might be some stickiness in "splitting out render-slots to be a bit finer grained". Even though I changed a function definition darcs looked like it was reporting only new stuff in that location. Looking at all the other patches I couldn't find anything else modifying that section. The first patch "Extending slot-elements..." is necessary for several of the later ones. The last patch "Intelligent error..." solves an infinite loop circumstance in the indirect value class. This infinite loop serves the distinction of being the reason I wanted to improve the multithreaded httpd backend. :-) Hope this doesn't cause any trouble, if it does feel free to unrecord them. Or let me know and I'll try to help sort it out. Nathan Bird P.S. I had been doing really simple things in link actions up till now, and then I hit case where I needed to execute two consecutive forms and to find that it "just worked" was a great joy. http://paste.lisp.org/display/13379 From asbjxrn at bjxrnstad.net Tue Nov 15 03:56:24 2005 From: asbjxrn at bjxrnstad.net (asbjxrn at bjxrnstad.net) Date: 15 Nov 2005 04:56:24 +0100 Subject: [Bese-devel] Re: defaction/dotimes bug? References: <5oiruvfodl.fsf@kahdeksan.ifi.uio.no> Message-ID: <5o8xvqftsn.fsf@kolme.ifi.uio.no> "Marco Baringer" writes: > asbjxrn at bjxrnstad.net writes: [bogus error report snipped] > i can't reproduce this on openmcl. what lisp are you using? what's the > error? So I did what I should have done in the first place, I removed all the fsl-files and recompiled the whole thing and everything worked. Sorry about the noise. -- -asbjxrn From Fun at while.it.lasted.invalid Tue Nov 15 05:41:03 2005 From: Fun at while.it.lasted.invalid (=?iso-8859-1?q?Asbj=F8rn_Bj=F8rnstad?=) Date: 15 Nov 2005 06:41:03 +0100 Subject: [Bese-devel] Re: defaction/dotimes bug? References: <5oiruvfodl.fsf@kahdeksan.ifi.uio.no> <5o8xvqftsn.fsf@kolme.ifi.uio.no> Message-ID: <5o4q6efoy8.fsf@kolme.ifi.uio.no> asbjxrn at bjxrnstad.net writes: > "Marco Baringer" writes: > > > asbjxrn at bjxrnstad.net writes: > > [bogus error report snipped] > > > i can't reproduce this on openmcl. what lisp are you using? what's the > > error? > > So I did what I should have done in the first place, I removed all the > fsl-files and recompiled the whole thing and everything worked. Uh. wrong again. The error is still there. The error is with lispworks 4.4.6, and the error message is "The variable CONS is unbound" -- -asbjxrn From asbjxrn at bjxrnstad.net Tue Nov 15 05:52:05 2005 From: asbjxrn at bjxrnstad.net (=?iso-8859-1?q?Asbj=F8rn_Bj=F8rnstad?=) Date: 15 Nov 2005 06:52:05 +0100 Subject: [Bese-devel] Re: defaction/dotimes bug? References: <5oiruvfodl.fsf@kahdeksan.ifi.uio.no> <5o8xvqftsn.fsf@kolme.ifi.uio.no> Message-ID: <5ozmo6e9ve.fsf@kolme.ifi.uio.no> asbjxrn at bjxrnstad.net writes: > "Marco Baringer" writes: > > > asbjxrn at bjxrnstad.net writes: > > [bogus error report snipped] > > > i can't reproduce this on openmcl. what lisp are you using? what's the > > error? > > So I did what I should have done in the first place, I removed all the > fsl-files and recompiled the whole thing and everything worked. Uh. wrong again. The error is still there. The error is with lispworks 4.4.6, and the error message is "The variable CONS is unbound" -- -asbjxrn From rusabd at gmail.com Tue Nov 15 06:07:46 2005 From: rusabd at gmail.com (Ruslan Abdulkhalikov) Date: Tue, 15 Nov 2005 12:07:46 +0600 Subject: [Bese-devel] ucw + clsql In-Reply-To: References: Message-ID: <2f1136040511142207n6a46d255vb800a7a96117691b@mail.gmail.com> On 11/15/05, Alexander Kjeldaas wrote: > > Starting ucw, and then doing a (require :clsql) or (asdf:oos > 'asdf:load-op :clsql), the example start page will stop working and > print the following error: > > When attempting to read the slot's value (slot-value), the slot > IT.BESE.UCW-USER::TIME-FIELD is missing from the object NIL. > > OR the following message > > When attempting to read the slot's value (slot-value), the slot > IT.BESE.UCW-USER::INTEGER-FIELD is missing from the object NIL. > > latest ucw from cvs > clsql 3.4.3 > sbcl 0.9.6.33 > > Does this make sense? Name conflicts? clsql exports some functions and classes with same names as ucw does (e.g. wall-time struct) astor > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > -- Ruslan Abdulkhalikov -- Quantum Mechanics is God's version of "Trust me." -------------- next part -------------- An HTML attachment was scrubbed... URL: From gtg746q at mail.gatech.edu Tue Nov 15 04:28:05 2005 From: gtg746q at mail.gatech.edu (Matt Kurjanowicz) Date: Mon, 14 Nov 2005 23:28:05 -0500 Subject: [Bese-devel] Add @as-is:html directive. Message-ID: Hi, I needed some way to include HTML directly into the output of qbook, so I added an @as-is:html directive. If any part begins with that directive, then it will be outputted as-is to the HTML output stream. If any part begins with @as-is but not @as-is:html it is ignored (I foresee @as-is:latex coming too...). I don't think this is a very clean hack because it puts some logic at the formatter level that I believe should go at the parser level, but I'm really not sure how to go about doing that. This is my first time with a darcs patch, so if I need to do something else instead to make this useable, please let me know. Thanks, Matt Kurjanowicz (Sorry if this is a duplicate) Mon Nov 14 22:32:15 EST 2005 matt.kurjanowicz at gmail.com * Added @as-is:html directive. New patches: [Added @as-is:html directive. matt.kurjanowicz at gmail.com**20051115033215] { hunk ./src/html.lisp 141 - (<:as-html (text part)) + ;; If the part begins with @as-is, then we only use it if it is + ;; for HTML. + (if (string-equal + (subseq (text part) 0 (length "@as-is")) + "@as-is") + (when (string-equal + (subseq (text part) 0 (length "@as-is:html")) + "@as-is:html") + (<:as-is (subseq (text part) (length "@as-is:html")))) + (<:as-html (text part))) } Context: [added README file Luca Capello **20051111072158] [Escpae { and } chars in boring regexps. Marco Baringer **20051105155838] [remove debian/ folder Luca Capello **20051028104414 The CL-Debian group decided to avoid Debian native packages. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310665 ] [Setup boringfile Marco Baringer **20050725090856] [Initial import of qbook. This is equivalent to bese-2004 at common- lisp.net/qbook--dev--0.9--patch-14 Marco Baringer **20050725090756] Patch bundle hash: 0c044f29cdb8606aa6e2d454ad996d9db0f6078f From albertosantini at tiscali.it Tue Nov 15 22:34:03 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Tue, 15 Nov 2005 23:34:03 +0100 Subject: [Bese-devel] darcs patch: minor changes in docs/QUICKSTART... In-Reply-To: <4817E2CB-FFC3-4533-ACBE-2B193C6831D7@tiscali.it> References: <871x1kkdej.fsf@gismo.pca.it> <4817E2CB-FFC3-4533-ACBE-2B193C6831D7@tiscali.it> Message-ID: <0E717844-7312-4FE6-88AD-0DEB97DA674D@tiscali.it> Hello. On Nov 13, 2005, at 12:51 PM, Alberto Santini wrote: > - I did as you said: executing 'darcs send' command and darcs asked > the target mail address. > Then darcs sent the patch and exit without error. I had no evidence > of the result of the sending. > So I executed 'darcs send -o CHANGESET' command and sent the patch > to the mailing list by email. > I'm working on Mac OS X and I don't know if I have a mail > environment configured correctly > (sendmail) to send an email from command line, by darcs. Ok... I configured Postfix, sendmail clone, on Mac OS X 10.4.3, following the instructions found on the DarcsWiki: http://darcs.net/DarcsWiki/HintsAndTips The note's author is DanielB?nzli. Thanks Daniel. Regards, Alberto Santini From albertosantini at tiscali.it Thu Nov 17 22:20:17 2005 From: albertosantini at tiscali.it (albertosantini at tiscali.it) Date: Thu, 17 Nov 2005 23:20:17 +0100 (CET) Subject: [Bese-devel] darcs patch: minor changes to QUICKSTART Message-ID: <20051117222017.CC596EBDAA@taka.local> Sat Nov 12 15:48:27 CET 2005 albertosantini at tiscali.it * minor changes to QUICKSTART -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 35384 bytes Desc: A darcs patch for your repository! URL: From albertosantini at tiscali.it Thu Nov 17 22:22:17 2005 From: albertosantini at tiscali.it (albertosantini at tiscali.it) Date: Thu, 17 Nov 2005 23:22:17 +0100 (CET) Subject: [Bese-devel] darcs patch: added why Lisp in web application and some minor changes Message-ID: <20051117222217.6D063EBDBC@taka.local> Tue Nov 15 23:11:59 CET 2005 albertosantini at tiscali.it * added why Lisp in web application and some minor changes -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 37074 bytes Desc: A darcs patch for your repository! URL: From vtzankov at gmail.com Fri Nov 18 22:27:39 2005 From: vtzankov at gmail.com (vlado tzankov) Date: Sat, 19 Nov 2005 00:27:39 +0200 Subject: [Bese-devel] CLISP + UCW + SLIME + REPL Message-ID: <87189CC4-5882-11DA-930D-0005024D4623@gmail.com> Hi, I just managed to patch SLIME and Araneida CLISP support, so I am able to run the UCW with Araneida backend and in the same time to connect with SLIME to the REPL of the running CLISP. Regardless of single threaded CLISP and lack of SERVE-EVENT functionality found in CMUCL and SBCL - it is possible to emulate the serve-event stuff with SOCKET-STATUS function in CLISP. So generally CLISP+Araneida+UCW behaves like a multi-threaded system. The changes I have made are mainly in SLIME - forced it to use the Araneida serve-event emulation for CLISP (only if Araneida is present of course). However the patched SLIME currently does not work well with other lisps (at least CMUCL) - hope soon to fix this. There is small change in the host-serve-event in the Araneida clisp compatibility layer as well. If somebody is interested I can post the changes here (or somewhere else) - btw the changes are tested only on OS X and CLISP 2.35. BR Vlado PS: I needed this configuration because of the excellent Unicode support in clisp. It can be useful also for creating better win32 ucw dev environment. From mb at bese.it Sat Nov 19 10:13:20 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 19 Nov 2005 11:13:20 +0100 Subject: [Bese-devel] CLISP + UCW + SLIME + REPL In-Reply-To: <87189CC4-5882-11DA-930D-0005024D4623@gmail.com> (vlado tzankov's message of "Sat, 19 Nov 2005 00:27:39 +0200") References: <87189CC4-5882-11DA-930D-0005024D4623@gmail.com> Message-ID: vlado tzankov writes: > Hi, > > I just managed to patch SLIME and Araneida CLISP support, so I am able > to run the UCW with Araneida backend and in the same time to connect > with SLIME to the REPL of the running CLISP. Regardless of single > threaded CLISP and lack of SERVE-EVENT functionality found in CMUCL > and SBCL - it is possible to emulate the serve-event stuff with > SOCKET-STATUS function in CLISP. > > So generally CLISP+Araneida+UCW behaves like a multi-threaded system. i could really use this :) > If somebody is interested I can post the changes here (or somewhere > else) - btw the changes are tested only on OS X and CLISP 2.35. post them here. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From vtzankov at gmail.com Sat Nov 19 21:35:47 2005 From: vtzankov at gmail.com (vlado tzankov) Date: Sat, 19 Nov 2005 23:35:47 +0200 Subject: [Bese-devel] CLISP + UCW + SLIME + REPL In-Reply-To: <21E3EC84-5943-11DA-BE4D-0005024D4623@gmail.com> Message-ID: <726DAAD1-5944-11DA-BE4D-0005024D4623@gmail.com> Sorry in the previous mail i forgot that i have changed the startup-backend in the ucw araneida backend - file: src/backend/araneida.lisp I have removed the last line: ;; #+clisp (araneida:host-serve-events)) since it starts a global "REPL" in the described configuration. On Saturday, November 19, 2005, at 11:26 PM, vlado tzankov wrote: > The modifications that i have made are: > > 1. SLIME > Attached are the swank.lisp and swank-clisp.lisp. > 1.1. swank.lisp > when using the :fd-handler (and :sigio) communication style - the > lambda passed to the add-fd-handler should have a single parameter - > which is ignored in slime, but since the lambda is called now from the > araneida - it should have a parameter. This change affects all > backends that use fd-handler ot sigio (cmucl, single threaded sbcl). > so the backends should be changed as well - (defimplementation > add-fd-handler (socket fn)) should be changed in the backends to use > the passed lambda. > 1.2. swank-clisp.lisp > the following functions are added to the file (no other > modifications). > (defimplementation preferred-communication-style () > (if (find-package 'araneida) :fd-handler nil)) > > (defimplementation add-fd-handler (socket fn) > (if (find-package 'araneida) > (car (push (cons socket fn) (symbol-value (intern > "*FD-HANDLERS*" "ARANEIDA")))) > (error "trying to use araneida event handlers without having it > loaded."))) > > (defimplementation remove-fd-handlers (socket) > (if (find-package 'araneida) > (setf (symbol-value (intern "*FD-HANDLERS*" "ARANEIDA")) > (remove socket (symbol-value (intern "*FD-HANDLERS*" "ARANEIDA")) > :count 1 :test (lambda (x y) (equal x (car y))))) > (error "trying to use araneida event handlers withouit having it > loaded"))) > > 2. ARANEIDA > The only change here is replacing the function HOST-SERVE-EVENTS in > the the compat/compat-clisp.lisp with the following one: > > (defun host-serve-events () > (loop > (let ((current-handlers (copy-list *fd-handlers*)) > (just-sockets (mapcar (lambda (pair) > (if (eq (type-of (car pair)) 'stream) > (list (car pair) :input) > (list (car pair)))) > *fd-handlers*))) > (loop for j in (socket:socket-status just-sockets) do > (let ((x (find-if (lambda (pair) (eql (car j) (car pair))) > current-handlers))) > (if (or (eq (cdr j) t) (eq (cddr j) :INPUT)) > (if x (funcall (cdr x) (car x)))) > (if (and (eq (type-of (car j)) 'stream) (eq (cddr j) :EOF)) ;; > we do not care about the server-socket, it cannot get :EOF status > (host-remove-fd-handler x))))))) > > (there is consing at each request, but we have to live with it, since > the handler of the request may change the *fd-handlers*) > > 3. And finally - the sequence in starting clisp and everything else > i am using the following start script > > (in-package :common-lisp-user) > (asdf:oos 'asdf:load-op 'araneida) > (load (merge-pathnames "../slime/swank-loader.lisp" *load-truename*)) > (load (merge-pathnames "../ucw/bin/start.lisp" *load-truename*)) > (ucw:startup-server ucw:*default-server*) > (swank:create-server :dont-close t) > (araneida:host-serve-events) > > After this from emacs you can do slime-connect and go on. > > when you try all this - backup you slime files - for cmucl and single > threaded sbcl (and all other that use :fd-handler or :sigio) a small > patch to the backend should be made. for lisps that use :spawn > (openmcl, mp sbcl) there should be no problems - but have not tested > it. > > the host-serve-event in araneida is supposed to work fine - it is > compatible with the original code. > > br > vlado > > > On Saturday, November 19, 2005, at 12:13 PM, Marco Baringer wrote: > >> vlado tzankov writes: >> >>> Hi, >>> >>> I just managed to patch SLIME and Araneida CLISP support, so I am >>> able >>> to run the UCW with Araneida backend and in the same time to connect >>> with SLIME to the REPL of the running CLISP. Regardless of single >>> threaded CLISP and lack of SERVE-EVENT functionality found in CMUCL >>> and SBCL - it is possible to emulate the serve-event stuff with >>> SOCKET-STATUS function in CLISP. >>> >>> So generally CLISP+Araneida+UCW behaves like a multi-threaded system. >> >> i could really use this :) >> >>> If somebody is interested I can post the changes here (or somewhere >>> else) - btw the changes are tested only on OS X and CLISP 2.35. >> >> post them here. >> >> -- >> -Marco >> Ring the bells that still can ring. >> Forget the perfect offering. >> There is a crack in everything. >> That's how the light gets in. >> -Leonard Cohen >> From alex.mizrahi at gmail.com Sun Nov 20 01:24:33 2005 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Sun, 20 Nov 2005 03:24:33 +0200 Subject: [Bese-devel] performance Message-ID: as i remember, older version of UCW rendered examples index page in something like 40 msecs, that's not really good, but OK. although sometimes it stopped for garbage collection for a few seconds, what is not good. i've checked newer version, and performance was terrific -- about 500 msecs per page normally and 22 seconds maximum (on full GC, i guess). i'm afraid with such characteristics it's not usable for web projects.. is that really UCW's performance such bad, or it's caused by problems of my configuration? From mb at bese.it Sun Nov 20 10:51:48 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 20 Nov 2005 11:51:48 +0100 Subject: [Bese-devel] performance In-Reply-To: (Alex Mizrahi's message of "Sun, 20 Nov 2005 03:24:33 +0200") References: Message-ID: Alex Mizrahi writes: > as i remember, older version of UCW rendered examples index page in > something like 40 msecs, that's not really good, but OK. although > sometimes it stopped for garbage collection for a few seconds, what is > not good. > > i've checked newer version, and performance was terrific -- about 500 > msecs per page normally and 22 seconds maximum (on full GC, i guess). > i'm afraid with such characteristics it's not usable for web > projects.. > > is that really UCW's performance such bad, or it's caused by problems > of my configuration? (are you using cmucl?) ucw's performance has not been a problem for me so far, so i've never bothered to make it faster. you're welcome to a) make it faster or b) at least figure out where the 'hot spots' are so we can decide how to fix them. the last time i checked (on openmcl a month or two ago) 80% of the time spent in handling a request was spent in reading/writing to the server sockets. so even if ucw was optimized to server requests in 0 msec you'd only of seen a 20% speed up, not really worth the effort, you should make sure that this is not the case on your setup before attempting to optimize ucw itself. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From asbjxrn at bjxrnstad.net Fri Nov 18 19:56:52 2005 From: asbjxrn at bjxrnstad.net (=?iso-8859-1?q?Asbj=F8rn_Bj=F8rnstad?=) Date: 18 Nov 2005 20:56:52 +0100 Subject: [Bese-devel] time-elements patch in ucw_public Message-ID: <5o8xvlviez.fsf@kahdeksan.ifi.uio.no> I've used the time-elements for some forms, but whenever I chose the %b %B formats, the month were stuck initialized to January. There were also some issues with 12/24 hours. It looked like these problems might have popped up after a reordering of the sequence (setf client-value) and init-from-format were called? I must admit I haven't groked the sequence of events involved during initialization of a element, so I tried making my patch change as little as possible. patcher beware. -- -asbjxrn From nathan at acceleration.net Tue Nov 22 17:54:46 2005 From: nathan at acceleration.net (Nathan Bird) Date: Tue, 22 Nov 2005 12:54:46 -0500 Subject: [Bese-devel] Threadpooling in multithread-httpd-backend In-Reply-To: <20051111162710.3E53588556@common-lisp.net> Message-ID: <006401c5ef8d$d38baa20$d80a0a0a@acceleration.net> From: bese-devel-bounces at common-lisp.net [mailto:bese-devel-bounces at common-lisp.net] On Behalf Of Nathan Bird Sent: Friday, November 11, 2005 11:27 AM To: bese-devel at common-lisp.net Subject: [Bese-devel] Threadpooling in multithread-httpd-backend >By default it creates 4 workers when it starts and has a max worker count >of 32.? Right now when it exceeds max workers it re-queues the connection >message to the control thread hoping one of the other workers finishes off >in the meantime. This probably isn?t the best strategy. What happens if a >worker never becomes available? Can we check to see if the client is still >connected before re-queuing or something? We (Russ and I) have changed it a bit. An incoming request now gets a timestamp. When there are no workers available, if the timestamp is not to old then the request is re-queued to the control thread, if it is to old it is simply abandoned. >I?ve tested this with SBCL 0.9.5 on linux with mod_lisp and it seems to >work there, but overall this patch should probably be considered unstable. Same again. We also tried to do a bit better error-handling in the control loop since there is now more code being run there. Hooking into *debug-on-error*, invoking the debugger where appropriate and just logging and ignoring the error if *debug-on-error* is nil. Nathan Bird From luca at pca.it Tue Nov 22 19:42:28 2005 From: luca at pca.it (Luca Capello) Date: Tue, 22 Nov 2005 20:42:28 +0100 Subject: [Bese-devel] darcs patch: minor changes to QUICKSTART In-Reply-To: <20051117222017.CC596EBDAA@taka.local> (albertosantini@tiscali.it's message of "Thu, 17 Nov 2005 23:20:17 +0100 (CET)") References: <20051117222017.CC596EBDAA@taka.local> Message-ID: <87sltosc4b.fsf@gismo.pca.it> Hello Alberto! Nothing against the patch, just some more darcs hints ;-) On Thu 17 Nov 2005 23:20 +0100, you wrote: > Sat Nov 12 15:48:27 CET 2005 albertosantini at tiscali.it ^^^^^^^^^^^^^^^^^^^^^^^^^ FYI, if you want your full name with the email address, like Marco (`darcs changes` and check the oldest commit), you need to set ~/.darcs/author [1]: ===== luca at gismo:~$ cat .darcs/author Luca Capello luca at gismo:~$ ===== Thx, bye, Gismo / Luca [1] http://www.darcs.net/manual/node5.html#SECTION00510030000000000000 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From alex.mizrahi at gmail.com Wed Nov 23 01:11:42 2005 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Wed, 23 Nov 2005 03:11:42 +0200 Subject: [Bese-devel] performance In-Reply-To: References: Message-ID: > (are you using cmucl?) sbcl > the last time i checked (on openmcl a month or two ago) 80% of the > time spent in handling a request was spent in reading/writing to the > server sockets. doesn't look like that -- generated page /index.ucw (examples head page) is only twice larger than /admin/index.ucw, but it is 15 time slower. as i understand it does lengthy initialization. further using links appears to be faster. (btw, with araneida and aserve backends examples published at "/" don't work when admin application works. is that ok?) debian:~# ab -n 100 http://192.168.77.138/admin/index.ucw Document Path: /admin/index.ucw Document Length: 1317 bytes Concurrency Level: 1 Time taken for tests: 1.205167 seconds Complete requests: 100 Failed requests: 2 (Connect: 0, Length: 2, Exceptions: 0) Write errors: 0 Total transferred: 151206 bytes HTML transferred: 131706 bytes Requests per second: 82.98 [#/sec] (mean) Time per request: 12.052 [ms] (mean) Time per request: 12.052 [ms] (mean, across all concurrent requests) Transfer rate: 121.97 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 6 11 20.3 9 209 Waiting: 0 10 20.3 8 208 Total: 6 11 20.3 9 209 Percentage of the requests served within a certain time (ms) 50% 9 66% 9 75% 10 80% 10 90% 12 95% 14 98% 38 99% 209 100% 209 (longest request) debian:~# ab -n 100 http://192.168.77.138/index.ucw Document Path: /index.ucw Document Length: 2323 bytes Concurrency Level: 1 Time taken for tests: 19.921037 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 258400 bytes HTML transferred: 232300 bytes Requests per second: 5.02 [#/sec] (mean) Time per request: 199.210 [ms] (mean) Time per request: 199.210 [ms] (mean, across all concurrent requests) Transfer rate: 12.65 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 119 198 106.6 177 1127 Waiting: 118 197 106.1 177 1119 Total: 119 198 106.6 177 1127 Percentage of the requests served within a certain time (ms) 50% 177 66% 189 75% 207 80% 217 90% 249 95% 351 98% 376 99% 1127 100% 1127 (longest request) From asbjxrn at bjxrnstad.net Wed Nov 23 04:38:45 2005 From: asbjxrn at bjxrnstad.net (=?iso-8859-1?q?Asbj=F8rn_Bj=F8rnstad?=) Date: 23 Nov 2005 05:38:45 +0100 Subject: [Bese-devel] Re: performance References: Message-ID: <5ohda4ugfe.fsf@kuusi.ifi.uio.no> Alex Mizrahi writes: > (btw, with araneida and aserve backends examples published at "/" > don't work when admin application works. is that ok?) I wouldn't call it ok, but I think that's well known. Regexp-entrypoints don't work with araneida/aserve. I think Marco uses httpd/mod-lisp and noone has looked at the other backends. -- -asbjxrn From henrik.hjelte at poboxes.com Wed Nov 23 09:26:24 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Wed, 23 Nov 2005 10:26:24 +0100 Subject: [Bese-devel] performance In-Reply-To: References: Message-ID: <1132737985.10352.71.camel@localhost.localdomain> On ons, 2005-11-23 at 03:11 +0200, Alex Mizrahi wrote: > slower. as i understand it does lengthy initialization. further using > links appears to be faster. So the test is of limited value if it depends on what the page "does". A slow database for example will make any language look slow. And timings given in seconds say little if you don't know what hardware it runs on. I do think people are interested in measuring the performance, at least I am. Here are some thoughts: Ucw "overhead" is really what happens before and after the application code, so in order to measure this have a simple page that shows a "Hello world" message. This could be compared as a percentage to timings for downloading a static file from apache in order to abstract away hardware differences. This will of course make ucw seem slow, and static html is no real alternative to ucw. Maybe one could have a PHP (or Java or whatever) solution to the problem of rendering "Hello world", then we could compare ucw to the overhead of another framework which also connects to apache. The "Hello world" test with html/PHP/UCW could be used to: * Compare the performance of ucw under different Lisp implementations. * Compare hardware. * IF UCW needs optimizing there is a simple test that can be used with a profiler such as the two in sbcl. Of course it would be nice to be able to compare a more advanced application, but that is also a much more advanced problem. I think there is a big risk that it becomes misleading, and I personally don't have the need to convince myself or a boss that ucw or lisp is superior. Any objections or thoughts? I don't know PHP, but if someone makes that part I can make a script of the rest. I didn't know of the ab program, but it seems good for the simple test. /Henrik Hjelte From ignas.mikalajunas at gmail.com Wed Nov 23 12:28:22 2005 From: ignas.mikalajunas at gmail.com (Ignas Mikalajunas) Date: Wed, 23 Nov 2005 14:28:22 +0200 Subject: [Bese-devel] Would it be very difficult to make both arnesi and yaclml asdf installable In-Reply-To: <87fyqjfh3o.fsf@gismo.pca.it> References: <87fyqjfh3o.fsf@gismo.pca.it> Message-ID: > > I know that making UCW itself asdf installable would not make much > > sense - UCW can't operate witohout a backend, but having at least > > yaclml installable separately would be kind of nice for those who are > > using (or at least trying to use) it without UCW. > > Maybe you suffered of the YACLML bug I reported here [1], which is now > corrected [2]. > > As of today, both YACLML and arnesi are installable without UCW (and, > yes, both via ASDF). To be sure, I don't have UCW in my ASDF path. > > Thx, bye, > Gismo / Luca > > [1] http://common-lisp.net/pipermail/bese-devel/2005-October/001142.html > [2] http://common-lisp.net/pipermail/bese-devel/2005-October/001148.html Well this bug was a kludge, but asdf-installable is a bit different from "having an asdf definition". You can find more info here: http://www.cliki.net/asdf-install I am really sorry for not asking the permission, yet since no one was interested in packaging yaclml and arnesi, i did that myself (Thanks to Fran?ois-Ren? Rideau - Fare on irc.freenode.net for hosting packages). So now you can (asdf-install:install 'yaclml) and that will just pull everything from the net. Hope no one minds. Ignas Mikalaj?nas From ajones1 at gmail.com Wed Nov 23 16:25:38 2005 From: ajones1 at gmail.com (Adam Jones) Date: Wed, 23 Nov 2005 08:25:38 -0800 Subject: [Bese-devel] performance In-Reply-To: <1132737985.10352.71.camel@localhost.localdomain> References: <1132737985.10352.71.camel@localhost.localdomain> Message-ID: > Any objections or thoughts? Comparing ucw to php seems kind of unfair in that they are optimized for different things. PHP was not designed to handle large applications. The language lacks a lot of the abstraction tools necessary to make truly huge things happen (relatively) easily. A comparison to development frameworks (or a subset of a framework that provides features similar to ucw), like Java + something or RoR makes more sense. I think there are even such frameworks available for php. > > I don't know PHP, but if someone makes that part I can make a script of > the rest. I didn't know of the ab program, but it seems good for the > simple test. I'll find some time to look at the hello world page and rewrite it in php. > > /Henrik Hjelte > > > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > From luca at pca.it Wed Nov 23 16:09:37 2005 From: luca at pca.it (Luca Capello) Date: Wed, 23 Nov 2005 17:09:37 +0100 Subject: [Bese-devel] Would it be very difficult to make both arnesi and yaclml asdf installable In-Reply-To: References: <87fyqjfh3o.fsf@gismo.pca.it> Message-ID: <87sltngxby.fsf@gismo.pca.it> Hello! On Wed 23 Nov 2005 13:28 +0100, Ignas Mikalajunas wrote: >> > I know that making UCW itself asdf installable would not make much ^^^^^^^^^^^^^^^^ >> > sense - UCW can't operate witohout a backend, but having at least >> > yaclml installable separately would be kind of nice for those who are ^^^^^^^^^^^^^^^^^^^^^^ >> > using (or at least trying to use) it without UCW. >> >> Maybe you suffered of the YACLML bug I reported here [1], which is now >> corrected [2]. [...] > Well this bug was a kludge, but asdf-installable is a bit different > from "having an asdf definition". > You can find more info here: > > http://www.cliki.net/asdf-install I missunderstood what you meant, sorry, probably because I read "asdf installable" as "able to be loaded by ASDF". I already know what ASDF-install is, anyway thank you for the clarification ;-) > I am really sorry for not asking the permission, yet since no one [...] > Hope no one minds. /me not at all :-D THx, bye, Gismo / Luca -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 188 bytes Desc: not available URL: From alex.mizrahi at gmail.com Thu Nov 24 23:29:15 2005 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Fri, 25 Nov 2005 01:29:15 +0200 Subject: [Bese-devel] performance In-Reply-To: <1132737985.10352.71.camel@localhost.localdomain> References: <1132737985.10352.71.camel@localhost.localdomain> Message-ID: > > slower. as i understand it does lengthy initialization. further using > > links appears to be faster. > So the test is of limited value if it depends on what the page "does". this test tests initialization of page containing some dozen of UCW components, no external stuff. i think real-world application will have much more components. as we see, initialization isn't very fast.. > Ucw "overhead" is really what happens before and after the application > code, so in order to measure this have a simple page that shows a "Hello > world" message. This could be compared as a percentage to timings for > downloading a static file from apache in order to abstract away hardware > differences. UCW is quite a comples thing with it's components and continuation support. at least it holds continuation on each page access, so memory is constantly growing (and triggering GC), unless you tune something. so it's quite hard to benchmark.. there's no single point of "overhead" -- some overhead for component initialization, some overhead for continuation storing. > This will of course make ucw seem slow, and static html is no real > alternative to ucw. Maybe one could have a PHP (or Java or whatever) > solution to the problem of rendering "Hello world", as i remember php has about 0% overhead for such things, comparing to static library. but it degrades when some library is used -- it has to parse source code of libraries on each access, also interpreter is slow.. From henrik.hjelte at poboxes.com Fri Nov 25 09:02:44 2005 From: henrik.hjelte at poboxes.com (Henrik Hjelte) Date: Fri, 25 Nov 2005 10:02:44 +0100 Subject: [Bese-devel] performance In-Reply-To: References: <1132737985.10352.71.camel@localhost.localdomain> Message-ID: <1132909365.10352.112.camel@localhost.localdomain> I guess there is no urgent need for help with improved performance tests. You already know what the overhead is and seem happy with your test. The performance of my own application is more depending on the design choices I have made, so I have many things to improve before I blame ucw. My own a priori view of ucw performance is that it has a very good structure and readable code made in a Lisp style good for performance. So if there is any problems, it should be quite easy to solve them. /Henrik Hjelte From mb at bese.it Fri Nov 25 19:16:33 2005 From: mb at bese.it (Marco Baringer) Date: Fri, 25 Nov 2005 20:16:33 +0100 Subject: [Bese-devel] performance References: <1132737985.10352.71.camel@localhost.localdomain> Message-ID: Alex Mizrahi writes: > as i remember php has about 0% overhead for such things, comparing to > static library. but it degrades when some library is used -- it has to > parse source code of libraries on each access, also interpreter is > slow.. let's pretend for a second that someone managers to create an honest benchmark comparing ucw to other frameworks. i'd bet my left pinky that ucw will lose said benchmark, so if my lef pinky is worth anything we've just proven that ucw loses the benchmark and needs to be optimized, and we didn't even need to write the benchmark! :) ucw does a lot of stuff, and not everything is always needed. why not concentrate on creating ways to turn certain featuers of ucw off when you don't need them (or better: have the features turn themselves on automatically when you use them). example: the form element components don't need continuations, they certianly don't need the transaction stuff (does anybody actually use that stuff?). iff it turns out that this stuff is slowing down ucw we (fsvo "we") should change the ucw component hierarchy so that you can create components which don't have continuation or transaction slots (maybe even backtracking could be turned off). other example: we backtrack all values all the time, whether they've changed or not. it shouldn't be too much work to make the backtrack logic only copy/save values that have actually changed (even a simple #'eq test will save a lot of memory). other other example: the interpreter is called on all actions, whether they use CALL or not. we have a full fledged code walker which can esaily figure out when we need call/cc and when we don't (and we can perform this check at compile time). if an action doesn't use CALL (or any /cc methods or functions) then we can let the underlying lisp compiler (which is presumably much faster than our interpreter) deal with the code. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From svg at surnet.ru Fri Nov 25 23:15:31 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Sat, 26 Nov 2005 04:15:31 +0500 (YEKT) Subject: [Bese-devel] [PATCH] wrapping-standard method combination Message-ID: <20051126.041531.214242093.svg@surnet.ru> Good day, What about to change the order of wrapping-standard method combination to: (wrapping (around (before) (primary) (after))) With this order superclass wrapping methods can't need to care about possible subclass implementations and subclass methods don't be confused by superclass wrapping method's demonic changes of arguments and instance state. If you agree here is the patch. Best Regards, Vladimir Sekissov -------------- next part -------------- A non-text attachment was scrubbed... Name: CHANGESET.gz Type: application/octet-stream Size: 6239 bytes Desc: not available URL: From mb at bese.it Fri Nov 25 23:35:01 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 26 Nov 2005 00:35:01 +0100 Subject: [Bese-devel] [PATCH] wrapping-standard method combination In-Reply-To: <20051126.041531.214242093.svg@surnet.ru> (Vladimir Sekissov's message of "Sat, 26 Nov 2005 04:15:31 +0500 (YEKT)") References: <20051126.041531.214242093.svg@surnet.ru> Message-ID: Vladimir Sekissov writes: > Good day, good day to you too. > With this order superclass wrapping methods can't need to care about > possible subclass implementations and subclass methods don't be > confused by superclass wrapping method's demonic changes of arguments > and instance state. can you describe this problem more? i've not run into it and i'm curious what the issue is. > If you agree here is the patch. i don't agree. with that ordering there is no way for a subclass to override a super class' method (which is a fairly big limitation). -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From svg at surnet.ru Sat Nov 26 00:10:10 2005 From: svg at surnet.ru (Vladimir Sekissov) Date: Sat, 26 Nov 2005 05:10:10 +0500 (YEKT) Subject: [Bese-devel] [PATCH] wrapping-standard method combination In-Reply-To: References: <20051126.041531.214242093.svg@surnet.ru> Message-ID: <20051126.051010.191085822.svg@surnet.ru> mb> > With this order superclass wrapping methods can't need to care about mb> > possible subclass implementations and subclass methods don't be mb> > confused by superclass wrapping method's demonic changes of arguments mb> > and instance state. mb> mb> can you describe this problem more? i've not run into it and i'm mb> curious what the issue is. As for me I want to properly initialize optional and keyword arguments of methods and wrapping ones are the only right place for doing this (in the order from superclass to subclasses). Other things I can do with other methods but wrapping methods seems for me the only right place for initialization. Best Regards, Vladimir Sekissov From albertosantini at tiscali.it Sat Nov 26 11:47:12 2005 From: albertosantini at tiscali.it (Alberto Santini) Date: Sat, 26 Nov 2005 12:47:12 +0100 (CET) Subject: [Bese-devel] darcs patch: Added wwwroot/favincon.ico Message-ID: <20051126114712.19AB4FB80D@taka.local> Sat Nov 26 12:27:48 CET 2005 Alberto Santini * Added wwwroot/favincon.ico -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-darcs-patch Size: 42770 bytes Desc: A darcs patch for your repository! URL: From maciekp at japhy.fnord.org Sat Nov 26 10:10:34 2005 From: maciekp at japhy.fnord.org (Maciek Pasternacki) Date: Sat, 26 Nov 2005 11:10:34 +0100 Subject: [Bese-devel] [darcs patch] Actually use (external-format-for :slime) Message-ID: <87d5knwwh1.fsf@lizard.king> I attach a patch that makes actual use of (external-format-for :slime) when starting swank server. -------------- next part -------------- A non-text attachment was scrubbed... Name: external-format-for-slime.darcs-diff.gz Type: application/x-gzip Size: 11240 bytes Desc: not available URL: -------------- next part -------------- -- __ Maciek Pasternacki [ http://japhy.fnord.org/ ] `| _ |_\ / { The question is: what is a Mahnamahna? ,|{-}|}| }\/ The question is: who cares? } \/ |____/ ( The Muppets ) -><- From mb at bese.it Sat Nov 26 15:04:43 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 26 Nov 2005 16:04:43 +0100 Subject: [Bese-devel] [darcs patch] Actually use (external-format-for :slime) In-Reply-To: <87d5knwwh1.fsf@lizard.king> (Maciek Pasternacki's message of "Sat, 26 Nov 2005 11:10:34 +0100") References: <87d5knwwh1.fsf@lizard.king> Message-ID: Maciek Pasternacki writes: > I attach a patch that makes actual use of (external-format-for :slime) > when starting swank server. thanks. applied. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sat Nov 26 15:06:59 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 26 Nov 2005 16:06:59 +0100 Subject: [Bese-devel] [PATCH] wrapping-standard method combination In-Reply-To: <20051126.051010.191085822.svg@surnet.ru> (Vladimir Sekissov's message of "Sat, 26 Nov 2005 05:10:10 +0500 (YEKT)") References: <20051126.041531.214242093.svg@surnet.ru> <20051126.051010.191085822.svg@surnet.ru> Message-ID: Vladimir Sekissov writes: > Other things I can do with other methods but wrapping methods seems > for me the only right place for initialization. then i think we wolud do better to _add_ something to wrapping standard as opposed to changing the current evaluation order. if you can think of a name for methods which wrap around sub class methods and are not (in any way) overridable, i'll add it. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From binarin at binarin.ru Sat Nov 26 17:53:32 2005 From: binarin at binarin.ru (Alexey Lebedeff) Date: Sat, 26 Nov 2005 20:53:32 +0300 Subject: [Bese-devel] UTF-8 and mod-lisp backend Message-ID: <87oe47qorn.fsf@binarinstation.home> Hello. Recently I noticed strange behaviour when using utf8 and mod-lisp. When multibyte characters was present in output, the output was truncated because of mismatch of byte and character lengths of this output. Here is the patch. Solution with sb-ext:string-to-octets is far from perfect, but it works =) -------------- next part -------------- A non-text attachment was scrubbed... Name: ucw_content_length.patch.gz Type: application/octet-stream Size: 11574 bytes Desc: not available URL: -------------- next part -------------- -- [1180'99:11-6a] [BMSTU:AK5-111] From mb at bese.it Sat Nov 26 19:29:53 2005 From: mb at bese.it (Marco Baringer) Date: Sat, 26 Nov 2005 20:29:53 +0100 Subject: [Bese-devel] UTF-8 and mod-lisp backend In-Reply-To: <87oe47qorn.fsf@binarinstation.home> (Alexey Lebedeff's message of "Sat, 26 Nov 2005 20:53:32 +0300") References: <87oe47qorn.fsf@binarinstation.home> Message-ID: Alexey Lebedeff writes: > Hello. > > Recently I noticed strange behaviour when using utf8 and mod-lisp. When > multibyte characters was present in output, the output was truncated > because of mismatch of byte and character lengths of this output. cool! do you have any other unicode related comments/suggestions to make? what we really need is to sit down and actually _fix_ (as opposed to just bandaid'ing) the httpd/mod_lisp backends....eventually... -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From a_bakic at yahoo.com Sat Nov 26 21:07:53 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Sat, 26 Nov 2005 13:07:53 -0800 (PST) Subject: [Bese-devel] UTF-8 and mod-lisp backend In-Reply-To: <87oe47qorn.fsf@binarinstation.home> Message-ID: <20051126210753.47549.qmail@web34615.mail.mud.yahoo.com> Hi, The same for the araneida backend. I believe I have reported this a few weeks ago, but am not sure as I had already patched my araneida.lisp file to serve binary content. Basically, the (double) patch looks like this: < (let ((content (get-output-stream-string (content-stream r)))) --- > (let ((content (if (starts-with content-type "text") > #+sb-unicode > (sb-ext:string-to-octets > (get-output-stream-string (content-stream r))) > #-sb-unicode > (get-output-stream-string (content-stream r)) > (content-stream r)))) Alex --- Alexey Lebedeff wrote: > > Hello. > > Recently I noticed strange behaviour when using utf8 and mod-lisp. When > multibyte characters was present in output, the output was truncated > because of mismatch of byte and character lengths of this output. > > Here is the patch. Solution with sb-ext:string-to-octets is far from > perfect, but it works =) > > > > > -- > [1180'99:11-6a] [BMSTU:AK5-111] > > _______________________________________________ > bese-devel mailing list > bese-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/bese-devel > __________________________________________ Yahoo! DSL ? Something to write home about. Just $16.99/mo. or less. dsl.yahoo.com From alex.mizrahi at gmail.com Sat Nov 26 22:23:47 2005 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Sun, 27 Nov 2005 00:23:47 +0200 Subject: [Bese-devel] performance In-Reply-To: References: <1132737985.10352.71.camel@localhost.localdomain> Message-ID: > let's pretend for a second that someone managers to create an honest > benchmark comparing ucw to other frameworks. i'd bet my left pinky > that ucw will lose said benchmark, so if my lef pinky is worth > anything we've just proven that ucw loses the benchmark and needs to > be optimized, and we didn't even need to write the benchmark! :) actually i don't have any intent on comparing UCW to anything else as it is, but just to find UCW's limitations -- for example, how many users (page queries) will it be able to handle simultaneously, just order of magnitude of that value. can it, at least theoretically, handle at least somewhat popular web site open to wide public? as far as i understand, it's damn easy to cause DoS of UCW-based with just an ab util, if CW is not specially tuned -- for each access to index it creates session that eats some killabytes of RAM, so soon server will consume all memory available (some gigabytes) and stop handle requests.. certainly more clever rules for session invalidation can fix this, but possibly it's not that hard to circument that rules for a DoS attack.. From maciekp at japhy.fnord.org Sun Nov 27 02:51:46 2005 From: maciekp at japhy.fnord.org (Maciek Pasternacki) Date: Sun, 27 Nov 2005 03:51:46 +0100 Subject: [Bese-devel] Araneida backends and regexp-entry-point Message-ID: <87d5kmvm4d.fsf@lizard.king> With Araneida backend and current ucw_dev example application won't run; it is because backend registers regexp entry points as URLs for araneida, so they aren't handled at all (Araneida passes only requests which url literally matches regexp string, and this url isn't handled by UCW). I added handler for regexp-entry-point that registers for whole whole URL up to beginning of the regexp; it's a kludge that conflicts with other entry points of the same URL but it makes example app work -- only static files conflict. It seems that at least some apps will be able to work with this method. ,---- | 1086$ darcs whatsnew | hunk ./src/backend/araneida.lisp 78 | +(defmethod register-url-handler ((backend araneida-backend) (entry-point regexp-entry-point) | + handler) | + (ucw.backend.dribble "Registering regexp handler ~S at url ~S." handler (entry-point.url entry-point)) | + (araneida:install-handler | + (araneida:http-listener-handler (listener backend)) | + (make-instance 'ucw-handler :handler handler) | + (araneida:urlstring | + (araneida:merge-url (default-url backend) | + (application.url-prefix | + (entry-point.application entry-point)))) | + nil)) | } | 1087$ `---- The question is, how to complete this patch? a) Leave everything as it is; examples app won't work, but it's predictable. b) Add new method, don't change anything more; examples app will work but will go into debugger when asked about static pages (favicon.ico, stylesheet.css, any nonexistent file). c) Move wwwroot to /static url; favicon.ico will stop working (or we can define entry point in favicon.ico that will be example of redirect-component and/or custom content-type). d) Keep static files in root, move examples to /examples, maybe add some static index.html. e) (Optimal, but needs time) Patch araneida to allow multiple handlers for the same url prefix, each of which would have a predicate attached that would decide if this handler applies or not; first matching handler on list is used. I'd personally go (c) for now (with favicon.ico redirecting to /static) and, when time permits, (e); but before I finish patch I'd like to hear what would be considered good default behaviour. -- __ Maciek Pasternacki [ http://japhy.fnord.org/ ] `| _ |_\ / { (2a) No matter how hard you try, you can't make a baby in much ,|{-}|}| }\/less then 9 months;trying to speed this up *might* make it slower, \/ |____/ but it won't make it happen any quicker. } ( RFC 1925 ) -><- From mb at bese.it Sun Nov 27 11:09:49 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 27 Nov 2005 12:09:49 +0100 Subject: [Bese-devel] UTF-8 and mod-lisp backend In-Reply-To: <20051126210753.47549.qmail@web34615.mail.mud.yahoo.com> (Aleksandar Bakic's message of "Sat, 26 Nov 2005 13:07:53 -0800 (PST)") References: <20051126210753.47549.qmail@web34615.mail.mud.yahoo.com> Message-ID: Aleksandar Bakic writes: > Hi, > > The same for the araneida backend. I believe I have reported this a few weeks > ago, but am not sure as I had already patched my araneida.lisp file to serve > binary content. Basically, the (double) patch looks like this: applied. thanks. -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From mb at bese.it Sun Nov 27 11:27:23 2005 From: mb at bese.it (Marco Baringer) Date: Sun, 27 Nov 2005 12:27:23 +0100 Subject: [Bese-devel] Araneida backends and regexp-entry-point In-Reply-To: <87d5kmvm4d.fsf@lizard.king> (Maciek Pasternacki's message of "Sun, 27 Nov 2005 03:51:46 +0100") References: <87d5kmvm4d.fsf@lizard.king> Message-ID: Maciek Pasternacki writes: > e) (Optimal, but needs time) Patch araneida to allow multiple handlers > for the same url prefix, each of which would have a predicate > attached that would decide if this handler applies or not; first > matching handler on list is used. can't we just use our own custom handler instead of araneida' default dispatching-handler? -- -Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen From maciekp at japhy.fnord.org Mon Nov 28 12:17:01 2005 From: maciekp at japhy.fnord.org (Maciek Pasternacki) Date: Mon, 28 Nov 2005 13:17:01 +0100 Subject: [Bese-devel] Re: Araneida backends and regexp-entry-point References: <87d5kmvm4d.fsf@lizard.king> Message-ID: <87veyd2chu.fsf@lizard.king> On Sweetmorn, The Aftermath 39, 3171 YOLD, Marco Baringer wrote: >> e) (Optimal, but needs time) Patch araneida to allow multiple handlers >> for the same url prefix, each of which would have a predicate >> attached that would decide if this handler applies or not; first >> matching handler on list is used. > > can't we just use our own custom handler instead of araneida' default > dispatching-handler? We can, but it seems to me Araneida could also benefit from such code. I added now such handler to UCW backend, changeset is attached. By the way, last patch for sb-unicode and Araneida seems to break on unpatched Araneida; I'm currently looking into this. -------------- next part -------------- A non-text attachment was scrubbed... Name: ucw-regexp-dispatching-handler.gz Type: application/x-gzip Size: 12598 bytes Desc: not available URL: -------------- next part -------------- -- __ Maciek Pasternacki [ http://japhy.fnord.org/ ] `| _ |_\ / { ...elbow deep within the borderline, show me that you love me ,|{-}|}| }\/ and that we belong together; shoulder deep within the borderline, \/ |____/ relax, turn around and take my hand... } ( M. J. Keenan ) -><- From a_bakic at yahoo.com Tue Nov 29 03:42:06 2005 From: a_bakic at yahoo.com (Aleksandar Bakic) Date: Mon, 28 Nov 2005 19:42:06 -0800 (PST) Subject: [Bese-devel] Re: Araneida backends and regexp-entry-point In-Reply-To: <87veyd2chu.fsf@lizard.king> Message-ID: <20051129034206.46311.qmail@web34604.mail.mud.yahoo.com> > By the way, last patch for sb-unicode and Araneida seems to break on > unpatched Araneida; I'm currently looking into this. > Perhaps this is missing: 211c211 < (write-string content (araneida:request-stream (request r)))))) --- > (write-sequence content (araneida:request-stream (request r)))))) The previous patch-sketch was meant to help with the content length calculation only. Alex __________________________________ Yahoo! Music Unlimited Access over 1 million songs. Try it free. http://music.yahoo.com/unlimited/ From maciekp at japhy.fnord.org Tue Nov 29 14:05:33 2005 From: maciekp at japhy.fnord.org (Maciek Pasternacki) Date: Tue, 29 Nov 2005 15:05:33 +0100 Subject: [Bese-devel] Re: Araneida backends and regexp-entry-point References: <87veyd2chu.fsf@lizard.king> <20051129034206.46311.qmail@web34604.mail.mud.yahoo.com> Message-ID: <87r78z35xu.fsf@lizard.king> On Pungenday, The Aftermath 41, 3171 YOLD, Aleksandar Bakic wrote: >> By the way, last patch for sb-unicode and Araneida seems to break on >> unpatched Araneida; I'm currently looking into this. > > Perhaps this is missing: > > 211c211 > < (write-string content (araneida:request-stream (request r)))))) > --- >> (write-sequence content (araneida:request-stream (request r)))))) > > The previous patch-sketch was meant to help with the content length calculation > only. OK, I attach changeset with this patch and also recoding strings received from Araneida (Araneida handles all i/o as iso-8859-1, so strings received as iso-8859-1 and then returned as Unicode were messed-up). -------------- next part -------------- A non-text attachment was scrubbed... Name: sb-unicode.gz Type: application/x-gzip Size: 11627 bytes Desc: not available URL: -------------- next part -------------- I assume this list is the proper place to post patches to ucw -- or should I rather send them directly to Marco? -- __ Maciek Pasternacki [ http://japhy.fnord.org/ ] `| _ |_\ / { ...so I talked about conscience, and I talked about pain, ,|{-}|}| }\/ and he looked out of window, and it started to rain, and \/ |____/ I thought, maybe - I've already gone crazy... } ( Fish ) -><- From rusabd at gmail.com Wed Nov 30 14:42:41 2005 From: rusabd at gmail.com (Ruslan Abdulkhalikov) Date: Wed, 30 Nov 2005 20:42:41 +0600 Subject: [Bese-devel] UCWInputCompleter.js patch Message-ID: <2f1136040511300642h1e27a761j178ddfdea6dfa1b1@mail.gmail.com> Here is a small patch which makes work text element with completion under IE. I check it with FF, IE and Mozilla only under windows. Best Regards, Ruslan -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20051130142233-d8315-fc9d1fb626419dc08e40908dcb176b1358d5243b.gz Type: application/x-gzip Size: 356 bytes Desc: not available URL: From asbjxrn at bjxrnstad.net Wed Nov 30 11:39:00 2005 From: asbjxrn at bjxrnstad.net (=?iso-8859-1?q?Asbj=F8rn_Bj=F8rnstad?=) Date: 30 Nov 2005 12:39:00 +0100 Subject: [Bese-devel] Re: Araneida backends and regexp-entry-point References: <87veyd2chu.fsf@lizard.king> <20051129034206.46311.qmail@web34604.mail.mud.yahoo.com> <87r78z35xu.fsf@lizard.king> Message-ID: <5ok6eq5prf.fsf@nelja.ifi.uio.no> Maciek Pasternacki writes: > I assume this list is the proper place to post patches to ucw -- or > should I rather send them directly to Marco? There is a third alternative, ucw_public: http://uncommon-web.com/darcsweb/darcsweb.cgi Marco monitors the darcs activity and imports changes to ucw_dev. -- -asbjxrn From asbjxrn at bjxrnstad.net Mon Nov 28 15:59:17 2005 From: asbjxrn at bjxrnstad.net (=?ISO-8859-1?Q?Asbj=F8rn_Bj=F8rnstad?=) Date: Mon, 28 Nov 2005 23:59:17 +0800 Subject: [Bese-devel] Small form patch Message-ID: <17E10D66-2030-4E1A-BC7E-8BA5084B5A81@bjxrnstad.net> It seemed to me that the condition strings were thrown away during validation, if I'm wrong and there is a way of using them already please disregard this patch. (Any cron job coming soon, Marco? I'd add it to ucw_public, but darcs fails) -------------- next part -------------- A non-text attachment was scrubbed... Name: validpatch Type: application/octet-stream Size: 36887 bytes Desc: not available URL: -------------- next part -------------- -- -asbjxrn