Re: Google Summer of Code (GSoC) 2012
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
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
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
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