Re: Google Summer of Code (GSoC) 2012

2012-03-03 Thread Thorsten
Alexander Burger a...@software-lab.de writes:

Hi List,

 On Mon, Feb 27, 2012 at 01:40:16PM +0100, Thorsten wrote:
 We prepared a GSoC 2012 page in the PicoLisp wiki
 (http://picolisp.com/5000/!wiki?gsoc), where you can find more
 information. 
 ...
 For now (till 2012-03-09) the most important task is to collect ideas
 and find out who would like to be a mentor for his (or other peoples)
 project ideas. Then, if PicoLisp is accepted by Google, we need to
 spread the word and make students apply for a project.
 
 Any thoughts or ideas how to make the PicoLisp application for the GSoC
 2012 a success are welcome.

I would suggest to add at least 2 or 3 more project ideas to the ideas
page (http://picolisp.com/5000/!wiki?ideasPage) to raise the odds of
PicoLisp being accepted as mentoring organisation. 

The best case would be if anybody is interested to participate as a
student and has a project idea (and a possible mentor in mind). However,
if you would like to see some new feature in PicoLisp and to mentor the
related project, it would be very helpfull too. 

A third (viable) option is to think about a project idea that is
beneficial for the PicoLisp community and doesn't require special
background (domain) knowledge from a (potential) mentor, but might be
interesting for students in general. That way, you can propose an idea
without being the student or mentor for that proposal. 

As an example, I would propose the project Build a web-shop for
PicoLisp. Would that make sense? Any other ideas?

If somebody has an idea but doesn't want to get involved with the wiki,
he can just post it here on the list, I put it on the wiki then. 

Thanks
-- 
cheers,
Thorsten

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Google Summer of Code (GSoC) 2012

2012-03-03 Thread José Romero
On Sat, 03 Mar 2012 21:10:25 +0100
Thorsten quintf...@googlemail.com wrote:

 Alexander Burger a...@software-lab.de writes:
 
 Hi List,
 
  On Mon, Feb 27, 2012 at 01:40:16PM +0100, Thorsten wrote:
  We prepared a GSoC 2012 page in the PicoLisp wiki
  (http://picolisp.com/5000/!wiki?gsoc), where you can find more
  information. 
  ...
  For now (till 2012-03-09) the most important task is to collect
  ideas and find out who would like to be a mentor for his (or other
  peoples) project ideas. Then, if PicoLisp is accepted by Google,
  we need to spread the word and make students apply for a project.
  
  Any thoughts or ideas how to make the PicoLisp application for the
  GSoC 2012 a success are welcome.
 
 I would suggest to add at least 2 or 3 more project ideas to the ideas
 page (http://picolisp.com/5000/!wiki?ideasPage) to raise the odds of
 PicoLisp being accepted as mentoring organisation. 
 
 The best case would be if anybody is interested to participate as a
 student and has a project idea (and a possible mentor in mind).
 However, if you would like to see some new feature in PicoLisp and to
 mentor the related project, it would be very helpfull too. 
 
 A third (viable) option is to think about a project idea that is
 beneficial for the PicoLisp community and doesn't require special
 background (domain) knowledge from a (potential) mentor, but might be
 interesting for students in general. That way, you can propose an idea
 without being the student or mentor for that proposal. 
 
 As an example, I would propose the project Build a web-shop for
 PicoLisp. Would that make sense? Any other ideas?
 
 If somebody has an idea but doesn't want to get involved with the
 wiki, he can just post it here on the list, I put it on the wiki
 then. 
 
 Thanks

If I can make it to participate as a student I'd like to make a more
generic and portable web framework (in the sense of being able to deploy
it in more kinds of servers than a dedicated/VPS with permission to run
a server on a public port) Right now I have some work done in that
direction with my scgi.l simple framework that is capable of running
as a SCGI service, a CGI script and writing an HTTP backend it can also
run as a standalone server (or actually, any protocol that has a
CGI/HTTP-like interface can be adapted writing a backend) sharing most
of the code (I have some code for that but i haven't published it yet
because it's not complete/useful for anyone else than me at the
moment). 

I have a formed idea for the low level design of the framework, as
the internal protocol all backends dump into the app using a
consistent interface (a set of global variables and functions). 

If you are allowed to run persistent processes in your server you
would have at least these options for connecting the web application
to the web (or a caching reverse proxy).

 +---+++   +--+--++
 |   | -|   Web  |-| SCGI |
 | I || Server |   +--+ |
 | n |++  | |
 | t | ^  +-+   +-+  CommonWeb  |
 | e | '-| CGI |-| PGI |
 | r |+-+   +-+  Module Application |
 | n || |
 | e | +--+ |
 | t |---| HTTP |
 |   | +-++
 +---+

The PGI (Picolisp Gateway Interface) backend is just thin glue to
allow a very simple CGI script to be able to tunnel a request to the
running picolisp server, to do it properly picolisp should be
provided with unix domain socket support so that it's not necessary
for the server to take a random high port and to ensure the same
privilege separation provided by the filesystem in the standard web
server setup (owners, users, chroots). The other backends are pretty
self explanatory, the functions defined in the common module should be
made in a way that the application can use special features in the
backend (for example X-Sendfile headers) falling back to emulating
them with picolisp for backends that do not support it.

If you are not allowed to run persistent processes you can still use
the framework (say, a very low traffic site, or you are just doing
tests on a shared host before investing on a bigger server) by
wrapping the whole thing around a CGI script, without changing any
more code downstream.

The things left to design is which would be the desirable feature set
the common module should have and how they should be implemented to
get the best efficiency and compatibility. So far I have implemented a
minimal feature set for some simple services I needed (right now
running with the GCI+PGI):

 - A simple url pattern based dispatcher: the default implementation
   of 'req-handler tries 

Re: Google Summer of Code (GSoC) 2012

2012-03-03 Thread Joe Bogner
Hi José -

I've been thoroughly impressed with everything I've seen from you and
even more so if you're a student. Wow!

Related to your proposal below, if I can replay back what I am
understanding, it sounds like there are three aspects to it:

1.) A more robust interface between a web server and a picolisp app.
Something that can work in a variety of situations (e.g.VPS or
dedicated hosting).  This should enable more adoption of picolisp as a
language for building web applicationss.

[Sidenote: I've used your SCGI.l with nginx with and it would benefit
others to document how that could work]

2.) A routing framework (does this follow the REST framework
discussions we've had on IRC?) to simplify web app development - again
it seems like you are close here based on what I've seen in scgi.l

3.) Provide some of the same functionality as XHTML without tying it
to the session IDs. In other words, enable the general purpose GUI
framework to be agnostic of the 'server' it's running in

I think these are all wonderful ideas. If I was sitting on the
committee evaluating proposals for the GSoC I would be evaluating
projects based on their ability to have a broad impact or solves an
unsolved problem. Since picoLisp is fairly niche, I like that what
you're suggesting could open it up to more developers. I am no expert
in this area though. I am not sure how this would stand out against
framework XYZ aiming for broader appeal.

I spent a minute looking for some more context on GSoC related to
languages. I found a retrospective on haskell:
http://www.gwern.net/Haskell%20Summer%20of%20Code

I guess for someone with no knowledge of picoLisp, as it relates to
your proposal, why is picoLisp a good choice for web development? What
would the successful completion of the proposal enable? I have some
perspective but would be interested in hearing what you think.

Thanks for sharing it!
Joe






2012/3/3 José Romero jose.cyb...@gmail.com:
 On Sat, 03 Mar 2012 21:10:25 +0100
 Thorsten quintf...@googlemail.com wrote:

 Alexander Burger a...@software-lab.de writes:

 Hi List,

  On Mon, Feb 27, 2012 at 01:40:16PM +0100, Thorsten wrote:
  We prepared a GSoC 2012 page in the PicoLisp wiki
  (http://picolisp.com/5000/!wiki?gsoc), where you can find more
  information.
  ...
  For now (till 2012-03-09) the most important task is to collect
  ideas and find out who would like to be a mentor for his (or other
  peoples) project ideas. Then, if PicoLisp is accepted by Google,
  we need to spread the word and make students apply for a project.
 
  Any thoughts or ideas how to make the PicoLisp application for the
  GSoC 2012 a success are welcome.

 I would suggest to add at least 2 or 3 more project ideas to the ideas
 page (http://picolisp.com/5000/!wiki?ideasPage) to raise the odds of
 PicoLisp being accepted as mentoring organisation.

 The best case would be if anybody is interested to participate as a
 student and has a project idea (and a possible mentor in mind).
 However, if you would like to see some new feature in PicoLisp and to
 mentor the related project, it would be very helpfull too.

 A third (viable) option is to think about a project idea that is
 beneficial for the PicoLisp community and doesn't require special
 background (domain) knowledge from a (potential) mentor, but might be
 interesting for students in general. That way, you can propose an idea
 without being the student or mentor for that proposal.

 As an example, I would propose the project Build a web-shop for
 PicoLisp. Would that make sense? Any other ideas?

 If somebody has an idea but doesn't want to get involved with the
 wiki, he can just post it here on the list, I put it on the wiki
 then.

 Thanks

 If I can make it to participate as a student I'd like to make a more
 generic and portable web framework (in the sense of being able to deploy
 it in more kinds of servers than a dedicated/VPS with permission to run
 a server on a public port) Right now I have some work done in that
 direction with my scgi.l simple framework that is capable of running
 as a SCGI service, a CGI script and writing an HTTP backend it can also
 run as a standalone server (or actually, any protocol that has a
 CGI/HTTP-like interface can be adapted writing a backend) sharing most
 of the code (I have some code for that but i haven't published it yet
 because it's not complete/useful for anyone else than me at the
 moment).

 I have a formed idea for the low level design of the framework, as
 the internal protocol all backends dump into the app using a
 consistent interface (a set of global variables and functions).

 If you are allowed to run persistent processes in your server you
 would have at least these options for connecting the web application
 to the web (or a caching reverse proxy).

  +---+    ++   +--+--++
  |   | -|   Web  |-| SCGI                                 |
  | I |    | Server |   +--+                      

Re: Google Summer of Code (GSoC) 2012

2012-03-03 Thread José Romero
On Sat, 3 Mar 2012 17:56:06 -0500
Joe Bogner joebog...@gmail.com wrote:

 Hi José -
 
 I've been thoroughly impressed with everything I've seen from you and
 even more so if you're a student. Wow!
 
 Related to your proposal below, if I can replay back what I am
 understanding, it sounds like there are three aspects to it:
 
 1.) A more robust interface between a web server and a picolisp app.
 Something that can work in a variety of situations (e.g.VPS or
 dedicated hosting).  This should enable more adoption of picolisp as a
 language for building web applicationss.
 
 [Sidenote: I've used your SCGI.l with nginx with and it would benefit
 others to document how that could work]
 
Yes exactly, a simple and hackable way to connect to most common web
server interfaces used nowadays.

 2.) A routing framework (does this follow the REST framework
 discussions we've had on IRC?) to simplify web app development - again
 it seems like you are close here based on what I've seen in scgi.l
 
Yes, by default I'd like to implement a simple RESTful resource
dispatcher, but it would be just the default, you can override the
handler earlier in the request and still benefit from the work done in
the backends while implementing some oddball URL schema in the most
comfortable way. That could be a quick and simple way to gradually
port the existing GUI framework to all those servers without rewriting
the whole app system to be restful.

 3.) Provide some of the same functionality as XHTML without tying it
 to the session IDs. In other words, enable the general purpose GUI
 framework to be agnostic of the 'server' it's running in
 
That too, I'd like to eliminate deep dependencies between modules, I'd
rather make a simple module that then can be easily monkey patched by
a more complex app than having it the other way around. I know that
hurts startup time, but unless you are using the app as cgi script
model it doesn't matter, and even then, it shouldn't be hard to
preprocess the sources to generate a more optimized compiled script,
the same way javascript files are being minified nowadays.

 I think these are all wonderful ideas. If I was sitting on the
 committee evaluating proposals for the GSoC I would be evaluating
 projects based on their ability to have a broad impact or solves an
 unsolved problem. Since picoLisp is fairly niche, I like that what
 you're suggesting could open it up to more developers. I am no expert
 in this area though. I am not sure how this would stand out against
 framework XYZ aiming for broader appeal.
 
 I spent a minute looking for some more context on GSoC related to
 languages. I found a retrospective on haskell:
 http://www.gwern.net/Haskell%20Summer%20of%20Code
 
 I guess for someone with no knowledge of picoLisp, as it relates to
 your proposal, why is picoLisp a good choice for web development? What
 would the successful completion of the proposal enable? I have some
 perspective but would be interested in hearing what you think.
 
One thing I love about picolisp is it's interactivity, I can interact
with a running app using the repl (and the wonderful 'edit function).
The equivalence of code and data and dynamic binding help a lot to
alter the system as it's running to try out new things with a very
quick turnaround time. And still, despite the great flexibility it also
offers very competitive speed if you compare it to other common
languages used for the web. The whole system is also simple enough to
be able to learn deep stuff about it's internals and code minding them
instead of treating it like a black box behind a truckload of specs.

Other very positive point for picolisp is it's code compactness, the
built in functions are simple building blocks that can achieve really
powerful and diverse behaviors combining them in clever ways, much like
the UNIX core utils. 

Another relevant good point for picolisp used in this scenario is it's
database system. Sadly it's not as well documented as it deserves, but
every day I find out new things about it. (Documenting it would be a
great project, but GSoC favors code over documentation, sadly.)

 Thanks for sharing it!
 Joe
 
 [snipped bottom post]

-José
--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe