* Lisp Meet - Java Dissambly - 11 people - SISC used for webapps - weblocks for CL - http://common-lisp.net/project/cl-weblocks/ - used tomcat to run SISC scripts - composure in clojure (web framework) - Doug Explains antiweb - explains pre-forking - antiweb pools processes - processes can have more than 1 connection - goal: reliability - process oriented - hub - route msgs - logger - priveledged port listening and transfering - etc. - transfer connections to other processes - send filehandle over a socket - domain sockets - scmwrites - sendmsg manpage - doesn't proxy like ngix - serves static content - runs lisp for dynamic content - claims it is easy to setup - db layer to be done - bdb - transactions - for admins - awp files - like php - caches - lisp forms - (page ...) - compiled - post handler and get handler do dynamic content.. - build http response - give it headers etc. - cared about # of syscalls that responsed - vish asked how to scale up to multiple installations - not quite there yet - ngix to dispatch to antiweb if you want it - supervisor processes - - weblocks build script broken - let over lambda discussion - closures & OO - macros - free vars - var capture - duality of syntax - read macros - hooks into the textual processor - how to read strings in differently - not in scheme - double quote is a read macro - paren is a read macro - clojure against read macros - perl vs lisp - like sourcefilter but more reliable - plt blog - camlp4 in ocaml http://www.ocaml-tutorial.org/camlp4_3.10/foreach_tutorial - closures & macros - pandora's macros - like tcl's uplevel - lexical scope, open it up - alambda binds self - effeciency - get close to metal - smart array making - sorting network - selection networks - forth - threads as cons - forth review - there's compiler macros in chap7 - precompute format strings - precomputation - keyword macro
- scheme - small scheme - big scheme - r6rs - new scheme plans - continuations - gambit has serializable continuations - business processes are boring - paul grahm and continuations (on lisp) w/ closures - dangers of crypto & sending the user their state - web programming - ruby/python - large community - community support - base64 as an example of why you want libs - iron scheme & common larceny - r6rs compatible? - common larceny does - libraries - antiweb - CFFI - http://common-lisp.net/project/cffi/ - gambit scheme - iphone app - embed C inside - apple hates freedom - abram trolls the entire group about software freedoms - sorry XD - vish talks about C# and tools - F# ! - some stuff I forget - william gibson and CL - greg wilson talk at DEV days - toronto news - accordian guy - uot events - our list - tpm - trug - lugs - python users group - toronto perl mongers -
Abram: Thanks for the really detailed notes. These are great.
Everyone else: Great meeting and thanks for showing up.
A couple remarks on the meeting minutes:
On Tue, Nov 03, 2009 at 10:56:41PM -0500 or thereabouts, Abram Hindle wrote:
- Lisp Meet
- Java Dissambly
- 11 people
- SISC used for webapps
- weblocks for CL
- used tomcat to run SISC scripts
- composure in clojure (web framework)
- Doug Explains antiweb
- explains pre-forking
- antiweb pools processes
It's not pooling in the sense of thread pools. Typically there are a fixed number of worker processes each of which can handle numerous connections with very little memory/CPU. The incoming connections are fail-overed or round-robined to these workers. We still need to write better docs on how to do all this but for now start here:
http://hoytech.com/antiweb/manual.awp/faq.html#INSTALL-HUB-REWRITE-HOST
- processes can have more than 1 connection - goal: reliability - process oriented - hub - route msgs - logger - priveledged port listening and transfering - etc. - transfer connections to other processes - send filehandle over a socket - domain sockets - scmwrites - sendmsg manpage
Sorry, that's SCM_RIGHTS. Also see the unix(7) and cmsg(3) manpages. This is a very underappreciated feature of unix.
- doesn't proxy like ngix - serves static content - runs lisp for dynamic content - claims it is easy to setup
You can judge for yourself:
http://hoytech.com/antiweb/manual.awp/install.html
Step 2 on that page can be replaced with:
git clone git://github.com/hoytech/antiweb.git cd antiweb
That will download the bleeding edge. If you like you can checkout the latest release (although we try to always keep master pretty stable):
git checkout antiweb-4.0BETA15
Let us know how we can make the installation procedure easier.
- db layer to be done - bdb - transactions
The DB layer works great as is. BerkeleyDB for in-process transactions and CGIs for communicating with relational DBs. We would like to also support asynchronous communication with relational DBs without needing to spawn off CGI processes but we haven't needed to do this yet.
- for admins - awp files - like php - caches
http://hoytech.com/antiweb/manual.awp/faq.html#CACHE
- lisp forms - (page ...) - compiled - post handler and get handler do dynamic content.. - build http response - give it headers etc.
Unfortunately the dynamic content features aren't documented well yet because we expect it to evolve quite a bit more soon. The start of documentation is here:
http://hoytech.com/antiweb/manual.awp/awp.html
- cared about # of syscalls that responsed - vish asked how to scale up to multiple installations - not quite there yet - ngix to dispatch to antiweb if you want it
This depends on what you want to do. It is "not there yet" because any sort of scaling to multiple installations will require additional thought and communication scripts. We already use multiple antiweb installations but this is for fail-over reliability, not taking advantage of dispersed resources. Nginx reverse-proxying to multiple antiweb installations works fine but you will still need to consider and code for many scenarios no matter what webserver you use or your particular requirements.
- supervisor processes
There is still some stuff I need to do to make supervisors more flexible. I plan to do active worker monitoring in the next couple releases (though as I described at the meeting running a cron every minute is working fine for me now).
---snip---
13 people today! It's hard to believe the club has grown so much. If it continues to grow, we may have to change our venue, as it's a little cramped already.
Thanks for the notes, Abram. If anyone else has taken notes (Ian?), please send them to me. I will merge them all together (along with my mental notes) and put them on the website.
Quote of the day..
"He who is unable to live in society, or who has no need because he is sufficient for himself, must be either a beast or a god." - Aristotle
I'll definitely give F# a try soon.
Vish
On Tue, Nov 3, 2009 at 10:56 PM, Abram Hindle abram.hindle@softwareprocess.es wrote:
- Lisp Meet
- Java Dissambly - 11 people - SISC used for webapps - weblocks for CL - http://common-lisp.net/project/cl-weblocks/ - used tomcat to run SISC scripts - composure in clojure (web framework) - Doug Explains antiweb - explains pre-forking - antiweb pools processes - processes can have more than 1 connection - goal: reliability - process oriented - hub - route msgs - logger - priveledged port listening and transfering - etc. - transfer connections to other processes - send filehandle over a socket - domain sockets - scmwrites - sendmsg manpage - doesn't proxy like ngix - serves static content - runs lisp for dynamic content - claims it is easy to setup - db layer to be done - bdb - transactions - for admins - awp files - like php - caches - lisp forms - (page ...) - compiled - post handler and get handler do dynamic content.. - build http response - give it headers etc. - cared about # of syscalls that responsed - vish asked how to scale up to multiple installations - not quite there yet - ngix to dispatch to antiweb if you want it - supervisor processes - - weblocks build script broken - let over lambda discussion - closures & OO - macros - free vars - var capture - duality of syntax - read macros - hooks into the textual processor - how to read strings in differently - not in scheme - double quote is a read macro - paren is a read macro - clojure against read macros - perl vs lisp - like sourcefilter but more reliable - plt blog - camlp4 in ocaml http://www.ocaml-tutorial.org/camlp4_3.10/foreach_tutorial - closures & macros - pandora's macros - like tcl's uplevel - lexical scope, open it up - alambda binds self - effeciency - get close to metal - smart array making - sorting network - selection networks - forth - threads as cons - forth review - there's compiler macros in chap7 - precompute format strings - precomputation - keyword macro
- scheme - small scheme - big scheme - r6rs - new scheme plans - continuations - gambit has serializable continuations - business processes are boring - paul grahm and continuations (on lisp) w/ closures - dangers of crypto & sending the user their state - web programming - ruby/python - large community - community support - base64 as an example of why you want libs - iron scheme & common larceny - r6rs compatible? - common larceny does - libraries - antiweb - CFFI - http://common-lisp.net/project/cffi/ - gambit scheme - iphone app - embed C inside - apple hates freedom - abram trolls the entire group about software freedoms - sorry XD - vish talks about C# and tools - F# ! - some stuff I forget - william gibson and CL - greg wilson talk at DEV days - toronto news - accordian guy - uot events - our list - tpm - trug - lugs - python users group - toronto perl mongers -
toronto-lisp mailing list toronto-lisp@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/toronto-lisp
Great meeting; I learned a whole bunch. I'm sorry I had to leave a bit early, thus missing out on abram trolling the group.
I was pleased to be alerted to CASCON last night. I have lived a very isolated existence lately. I'll be wandering out to the CASCON session on Practical Ontology Infrastructure tomorrow afternoon, and so perhaps to end my divine solitude. Or my beastly solitude, whichever.
I would favour a more commodious setting for meetings, unless last night's attendance was a one-time spike.
- Dave -
On 2009-11-03, at 10:56 PM, Abram Hindle wrote:
- Lisp Meet
...etc.