Re: A question about scaling picolisp webapp

2019-06-07 Thread C K Kashyap
Thanks Alex, I see, so if app0, app1 and app2 are on different machines and say the first request from the client hits app0, and app0 forks a process to handle the session with the client. I presume that the subsequent requests from the client would somehow be routed to app0 - correct? if so,

update httpGate docs?

2019-06-07 Thread Grant Shangreaux
Hello! I was just setting up httpGate on Debian and wanted to point out that the `openssl-dev` package is now `libssl-dev`. This page isn't part of the wiki, and I'm not sure how to make a change myself :) -grant Sent from ProtonMail mobile

Re: A question about scaling picolisp webapp

2019-06-07 Thread Alexander Burger
Hi Kashyap, > This is the definition of loadbalancing from > https://www.nginx.com/resources/glossary/load-balancing/ OK, that's what I thought of. > [image: image.png] Thanks for the nice picture :) > This is not a static system. The argument being that the database could > have different

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread JmageK
Jun 7, 2019, 7:31 PM by a...@software-lab.de: > On Fri, Jun 07, 2019 at 03:39:12PM +0200, JmageK wrote: > >> Why is the dot neccesary for the subexpression to be bound, is it a general >> rule that's documented somewhere? >> > > I would say it is a general rule, following from the (CAR . CDR)

Re: A question about scaling picolisp webapp

2019-06-07 Thread C K Kashyap
Hi Alex, This is the definition of loadbalancing from https://www.nginx.com/resources/glossary/load-balancing/ nginx is a popularly used as a loadbalancer - while this is an L7(application layer from OSI) load balancer, the term loadbalancer can be used for other layers too. A load balancer

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
On Fri, Jun 07, 2019 at 04:01:15PM +0200, Alexander Burger wrote: > In our case, the CAR is 'cond' and the CDR is (((match ...))) Oops, not fully correct! I meant: ... the CAR is 'cond' and @X is ... ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
On Fri, Jun 07, 2019 at 03:39:12PM +0200, JmageK wrote: > Hope not bugging too much, haha . No worry! I don't feel bugged, and I believe other readers here too  ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
On Fri, Jun 07, 2019 at 03:39:12PM +0200, JmageK wrote: > Why is the dot neccesary for the subexpression to be bound, is it a general > rule that's documented somewhere? I would say it is a general rule, following from the (CAR . CDR) principle of Lisp data. In our case, the CAR is 'cond' and

Re: A question about scaling picolisp webapp

2019-06-07 Thread Alexander Burger
Hi Kashyap, > If an OS instance can only run N picolisp processes. What would be the > strategy to serve more than N concurrent clients? As I said, I don't know about load balancers. But in any case it depends on the structure of the system. Is it a static system, which can be put on several

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread JmageK
> Thus, '@X' gets bound to > > (((match '("-" @X "." "h" "t" "m" "l") U) > (and *SesId (timeout *Timeout)) > ... ) ) ) ) > > Note the additional list level, as 'match' binds its parameters to lists! > > So we need the dot in > > (out *HtSock (cond . @X)) > > so that this subexpression gets

Re: A question about scaling picolisp webapp

2019-06-07 Thread C K Kashyap
Hi, If an OS instance can only run N picolisp processes. What would be the strategy to serve more than N concurrent clients? Regards, Kashyap On Fri, Jun 7, 2019 at 12:12 AM Alexander Burger wrote: > Hi Kashyap, > > > If I understand correctly, picolisp web app forks a process to handle the > >

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
On Fri, Jun 07, 2019 at 02:36:20PM +0200, Alexander Burger wrote: >(patch http '(out *HtSock (cond @X)) > (fill > '(prog > (ana) > (out *HtSock (cond . @X)) ) ) ) The 'prog' is ugly. We should better avoid it. As logging does its own 'out', we can move

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
Hi JmageK, > The patch is a nice function. I'm having a hard time understanding this entire > code. Can you explain how it works? What gets bound to @X? Thanks! Sure! (patch http '(out *HtSock (cond @X)) (fill '(prog (ana) (out *HtSock (cond . @X)) ) )

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
On Fri, Jun 07, 2019 at 02:17:46PM +0200, JmageK wrote: > (patch http '(out *HtSock (cond @X)) >   (fill > '(prog >     (ana) >     (out *HtSock (cond @X)) ) ) ) Oops, sorry! I copied the wrong version into my mail. The version I tested here had this as the last

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread JmageK
Jun 7, 2019, 3:49 PM by a...@software-lab.de: > Hi JmageK, > >> My question is how to have picolisp run the ana function whenever a request >> for a file or another html page arrives when it's running as a generic >> server. >> > > Usually I log only new sessions, by loading @lib/app.l in

Re: Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread Alexander Burger
Hi JmageK, > My question is how to have picolisp run the ana function whenever a request > for a file or another html page arrives when it's running as a generic server. Usually I log only new sessions, by loading @lib/app.l in production applications. This logs with 'msg' calls at the end of

Run a function whenever a request for a file arrives on the picolisp web server

2019-06-07 Thread JmageK
This is the minimal reproducible code example for my current picolisp webpage. (load'@lib/http.l'@lib/xhtml.l) (de ana()   (out "+log.txt" (prinl *Url " " (pack *Agent) " "*Adr " " (time (time ) (de main()  (html 0 "Analytics" "@lib.css"() (ana) ) ) (de go()   (server 8080 "!main") ) $ pil

Re: A question about scaling picolisp webapp

2019-06-07 Thread Alexander Burger
Hi Kashyap, > If I understand correctly, picolisp web app forks a process to handle the > requests from a browser session. httpGate can route the subsequent requests > from the browser to the right process. Correct. > How about hosting multiple instances > of the server behind a load balancer?

Re: Setup for Emacs org-mode?

2019-06-07 Thread Alexis
r...@tamos.net writes: My 2 cents (and I hope somebody corrects any errors or omissions on my part). Happy hacking! Nice summary - thanks Rick. :-) Lawrence, i've now replied to the issue you raised about config: