No, I don't expect to use a lot of CPU cycles on the web host. One thing I am trying to do is create an ultra-portable (between web hosts) and lightweight framework that will leverage my mostly-browser-based tool as much as possible. Another thing I am trying to do is make my websites as light on my bank balance as possible, so that only the domain name registrations (for several or many websites) are the main cost, until my websites get used a lot. Another thing I am trying to do is keep my expenses for my websites just to what I actually use. This last thing is what I like about my current web host, nearlyfreespeech.net. The web hosting service you mentioned, jvds.com, looks expensive at a minimum of $32/month. Did I miss something?
If I can have some kind of simulated web continuations, I'll be very happy. Here is a really great article, very well and clearly written, that explains web continuations, by Lisper Christian Queinnec, and why they are highly useful: http://en.scientificcommons.org/42793631. Its title is 'Inverting back the inversion of control or, Continuations versus page-centric programming'. It's rather a classic article, often referred to. I will try to upload it to the files repository in this group. I was a bit confused by the phrase 'What to do next' that the article uses, but I figured out that a way to think of this is 'everything going on in the program at a point in time that decides how the program is going to act next' -- in other words, 'the state of the program'.
Web continuations are great! I can speak from personal experience, having programmed web applications in an ad hoc way (without any real framework, though) and with web continuations. Web continuations allow an application to be programmed as if everything happened without waiting for the user -- linearly. (Since the HTTP protocol is stateless, user input can't be waited upon by issuing a call to a function like an OS wait() function.) I used server-side web continuations provided by the Lisp-based web framework UCW (the Ajaxian branch of it), but found that continuations can get out of hand due to the amount of memory they use on the backend. I hope to solve part of the problem by using client-side continuations, perhaps extensively. This will have the lovely side effect of allowing my application to scale much better than if I didn't use the client-side continuations.
(Lisp-knowledgable people unfamiliar with UCW might wonder how Lisp can support continuations. The answer: by using code walking. Only a subset of Lisp can be used in the continuations, but functions called by those continuations can still use full Lisp. Scheme, by the way, supports continuations natively.)
But still, for things like web sessions and personalised logins, I would like to have something better than hand-coded, ad hoc state management. And I want to do it without persistent processes on the backend, which are expensive. Maybe I can at least simulate this by storing the important variables in a database BLOB. (Probably the Lisp and Scheme frameworks have an elegant way to do this as part of session support.) Anyway, that's almost exactly what is done at the lowest level for any web application. Maybe this was so distateful to me when I did it before with Python because of particular problems of that language. (I'd be willing to discuss those problems with Pythonistas at a meeting of bangalore-fp group, in an informal way, during a break or before/after the meeting.) I think those problems would not be relevant in a Lisp or Scheme based web app.
Question for anyone: how does Ruby on Rails solve this problem of persistence of state across and between HTTP requests?
Tom
On Wed, Jul 15, 2009 at 5:25 PM, Gautham Ganapathy <gautham@...> wrote:
> a cause for concern to me. Here is an excerpt: 'Web > application frameworks that depend on persistent processes, including: Ruby > On Rails, Django, Zope, and others (some of these will run under CGI, but
> will run slowly and are suitable only for development purposes) [don't > work]'. Does anyone here have any ideas for a work-around for this
Do you expect a lot of CPU bandwidth usage in your app? Perhaps a VPS where you have better control over what you run could be an option. I use JVDS (www.jvds.com).
Regards Gautham
-- I must create a system, or be enslaved by another man's. -William Blake
> a cause for concern to me. Here is an excerpt: 'Web > application frameworks that depend on persistent processes, including: Ruby > On Rails, Django, Zope, and others (some of these will run under CGI, but > will run slowly and are suitable only for development purposes) [don't > work]'. Does anyone here have any ideas for a work-around for this
Do you expect a lot of CPU bandwidth usage in your app? Perhaps a VPS where you have better control over what you run could be an option. I use JVDS (www.jvds.com).
I hope no one minds that I cross-posted this. It seems relevant to both groups.
I have created the website www.tomelam.com to showcase (eventually) my Scheme-based client-centred technology I have called Dojo Zen aka Ajax Zen aka Web3D, which I am currently completely rewriting.
www.tomelam.com is hosted on www.nearlyfreespeech.net/ where the things that don't work are a cause for concern to me. Here is an excerpt: 'Web application frameworks that depend on persistent processes, including: Ruby On Rails, Django, Zope, and others (some of these will run under CGI, but will run slowly and are suitable only for development purposes) [don't work]'. Does anyone here have any ideas for a work-around for this limitation in a Lisp or Scheme (or Ruby or Python or PHP) framework?
I believe this link has the most technical information about Paul Graham's solution to the problem. It is quite interesting reading.
I think that if I use Lisp or Scheme on the backend, I might want to use a save-core-and-die (or save-lisp-and-die) strategy to make it quick to start up a Lisp (or Scheme) image quickly.
Any help, ideas or relevant questions would be much appreciated.
Regards to all,
Tom
-- I must create a system, or be enslaved by another man's. -William Blake
checkout the following links
http://www.cliki.net/ASDF-Installhttp://mudballs.com/
On Tue, Mar 24, 2009 at 12:30 PM, Goutham D L <dl.goutham@...> wrote:
> Hi,
> Iam using Common lisp.
>
> On Tue, Mar 24, 2009 at 10:50 AM, abhi <abhijithg@...> wrote:
>> Goutam,
>> First of all which lisp are you using? scheme or common lisp? If you
>> are using common lisp, you can take a look at 'asdf' or mudballs.
>> Mudballs is new and has a much easier interface for downloading and
>> looking for packages. On the other hand, asdf supports a lot of
>> libraries.
>> As far as scheme is concerned I think there are people on the group
>> who are much more qualified than me to answer the question.
>>
>> On Tue, Mar 24, 2009 at 4:09 AM, Goutham D L <dl.goutham@...> wrote:
>>> Hi,
>>> This might seem to be a trivial matter for most of you but I was
>>> wondering how do I add new libraries that I download?
>>> In python, its a simple matter of just copy pasting it to a folder.
>>>
>>> Goutham
>>>
>>>
>>
>> --
>> Queer little twists and quirks go into the making of an individual.
>> To suppress them all and follow clock and calendar and creed until the
>> individual is lost in the neutral gray of the host is to be less than
>> true to our inheritance.
>> Life, that gorgeous quality of life, is not accomplished by following
>> another man's rules.
>> It is true we have the same hungers and same thirsts, but they are for
>> different things and in different ways and in different seasons.
>> Lay down your own day, follow it to its noon, or you will sit in an
>> outer hall listening to the chimes but never reaching high enough to
>> strike your own.
>>
>
--
Queer little twists and quirks go into the making of an individual.
To suppress them all and follow clock and calendar and creed until the
individual is lost in the neutral gray of the host is to be less than
true to our inheritance.
Life, that gorgeous quality of life, is not accomplished by following
another man's rules.
It is true we have the same hungers and same thirsts, but they are for
different things and in different ways and in different seasons.
Lay down your own day, follow it to its noon, or you will sit in an
outer hall listening to the chimes but never reaching high enough to
strike your own.
Hi,
Iam using Common lisp.
On Tue, Mar 24, 2009 at 10:50 AM, abhi <abhijithg@...> wrote:
> Goutam,
> First of all which lisp are you using? scheme or common lisp? If you
> are using common lisp, you can take a look at 'asdf' or mudballs.
> Mudballs is new and has a much easier interface for downloading and
> looking for packages. On the other hand, asdf supports a lot of
> libraries.
> As far as scheme is concerned I think there are people on the group
> who are much more qualified than me to answer the question.
>
> On Tue, Mar 24, 2009 at 4:09 AM, Goutham D L <dl.goutham@...> wrote:
>> Hi,
>> This might seem to be a trivial matter for most of you but I was
>> wondering how do I add new libraries that I download?
>> In python, its a simple matter of just copy pasting it to a folder.
>>
>> Goutham
>>
>>
>
> --
> Queer little twists and quirks go into the making of an individual.
> To suppress them all and follow clock and calendar and creed until the
> individual is lost in the neutral gray of the host is to be less than
> true to our inheritance.
> Life, that gorgeous quality of life, is not accomplished by following
> another man's rules.
> It is true we have the same hungers and same thirsts, but they are for
> different things and in different ways and in different seasons.
> Lay down your own day, follow it to its noon, or you will sit in an
> outer hall listening to the chimes but never reaching high enough to
> strike your own.
>
Goutam,
First of all which lisp are you using? scheme or common lisp? If you
are using common lisp, you can take a look at 'asdf' or mudballs.
Mudballs is new and has a much easier interface for downloading and
looking for packages. On the other hand, asdf supports a lot of
libraries.
As far as scheme is concerned I think there are people on the group
who are much more qualified than me to answer the question.
On Tue, Mar 24, 2009 at 4:09 AM, Goutham D L <dl.goutham@...> wrote:
> Hi,
> This might seem to be a trivial matter for most of you but I was
> wondering how do I add new libraries that I download?
> In python, its a simple matter of just copy pasting it to a folder.
>
> Goutham
>
>
--
Queer little twists and quirks go into the making of an individual.
To suppress them all and follow clock and calendar and creed until the
individual is lost in the neutral gray of the host is to be less than
true to our inheritance.
Life, that gorgeous quality of life, is not accomplished by following
another man's rules.
It is true we have the same hungers and same thirsts, but they are for
different things and in different ways and in different seasons.
Lay down your own day, follow it to its noon, or you will sit in an
outer hall listening to the chimes but never reaching high enough to
strike your own.
Hi,
This might seem to be a trivial matter for most of you but I was
wondering how do I add new libraries that I download?
In python, its a simple matter of just copy pasting it to a folder.
Goutham
Thanks a lot. Will go through all the links
Goutham
On Tue, Feb 24, 2009 at 10:50 AM, Martin DeMello
<martindemello@...> wrote:
> On Mon, Feb 23, 2009 at 3:20 PM, Goutham D L <dl.goutham@...> wrote:
>> Hi,
>> Can anyone suggest some good tutorials for parsing in scheme?
>>
>> Goutham
>
> Another nice idea is to look up a tutorial on recursive descent
> parsers and translate the code to scheme
>
> martin
>
On Mon, Feb 23, 2009 at 3:20 PM, Goutham D L <dl.goutham@...> wrote:
> Hi,
> Can anyone suggest some good tutorials for parsing in scheme?
>
> Goutham
Another nice idea is to look up a tutorial on recursive descent
parsers and translate the code to scheme
martin
It all comes down to whether your parsing language is a "regular" language or you need a stack to parse it (like if you have to look for matching braces etc)
--chandra
On Mon, Feb 23, 2009 at 3:20 PM, Goutham D L <dl.goutham@...> wrote:
Hi,
Can anyone suggest some good tutorials for parsing in scheme?
I couldn't find it in Bangalore, tried Sapna, Gangarams. Amazon is
your best bet.
You can get HtDP from here: http://www.htdp.org/
--
Prakash Swaminathan
http://www.linkedin.com/in/PrakashS
On Thu, Nov 27, 2008 at 7:09 PM, Goutham D L <dl.goutham@...> wrote:
> Hi,
> Does anyone know where I can buy a copy of little schemer and How to
> Design Programs??
>
> Goutham
>
>
--- In bangalore-lisp@yahoogroups.com, "Roshan Mathews" <rmathews@...>
wrote:
>
> On Mon, Oct 20, 2008 at 1:38 PM, Vijay Mathew
> <vijay.the.schemer@...> wrote:
> > A Scheme/Functional programming event will be held on Saturday,
October
> > 25th.
> > The program is intended to give an introduction to functional
programing and
> > Scheme.
>
> So, what happened here?
>
> --
> Roshan Mathews
>
Roshan,
The meeting was really great and, surprisingly, had many capable
functional programmers present. The demos/talks were of a very high
educational value. Please follow up in the functional programming group:
http://groups.google.com/group/bangalore-fp?pli=1
We can look forward to some great functional programming meetings in
Bangalore now!
Regards,
Tom
On Mon, Oct 20, 2008 at 1:38 PM, Vijay Mathew
<vijay.the.schemer@...> wrote:
> A Scheme/Functional programming event will be held on Saturday, October
> 25th.
> The program is intended to give an introduction to functional programing and
> Scheme.
So, what happened here?
--
Roshan Mathews
A Scheme/Functional programming event will be held on Saturday, October 25th. The program is intended to give an introduction to functional programing and Scheme. Please find below the time, place and agenda:
Program: 2:00 PM: Introduction to Functional Programming. [Nick Allen] 2:30 PM: Short break for QA, discussions and refreshments. 2:45 PM: Building abstractions in Scheme. [Vijay Mathew]
3:15 PM: QA, parting remarks.
We are planning to meet-up on a regular basis to discuss, build and share interesting ideas in programming, with an emphasis on functional programming. There will be a discussion on creating a lively FP group in Bangalore. All who are interested are warmly invited to attend this first session.
Teleonto Technologies Private Ltd., located in Hyderabad, India,
builds and delivers an exciting and growing range of analytics for the
telecommunications industry using Artificial Intelligence techniques.
Teleonto has made a major commitment to the use of Lisp and functional
programming. Our versatile ApT platform is a service-oriented
architectural workflow framework written in Common Lisp, and makes use
of high-performance, dynamic, object caching database technology. We
are extending our range to include Semantic Web techniques.
We are always interested in candidates who have experience with
functional programming, particularly with Lisp, but also with other
functional
languages such as Scheme or Smalltalk. We are particularly interested
in candidates who have delivered products written in Lisp and have
interest in Artificial Intelligence. Experience with data mining or
with applied artificial intelligence techniques is a plus. We have
openings at all levels of experience.
To apply or inquire, please send email with information about your
experience and interests to hr at teleonto dot com.
Find more information about Teleonto Technologies Pvt. Ltd. at
http://www.teleonto.com
--
Chakravarthy P
www.chakravarthy.in
On getting connected with Rajaram, you will be able to
Readily access latest profile and contributions of Rajaram
Refer each other relevant knowledge
View contacts communities of Rajaram
If the above link does not work, copy and paste the following URL in your browser window:
http://www.toostep.com/signup.html?id=1177757093
To stop receiving messages from this sender Click here
TooStep Niche professional communities for exchanging opportunities and knowledge
Teleonto Technologies Private Ltd., located in Hyderabad, India,
builds and delivers an exciting and growing range of analytics for the
telecommunications industry using Artificial Intelligence techniques.
Teleonto has made a major commitment to the use of Lisp and functional
programming. Our versatile ApT platform is a service-oriented
architectural workflow framework written in Common Lisp, and makes use
of high-performance, dynamic, object caching database technology. We
are extending our range to include Semantic Web techniques.
We are always interested in candidates who have experience with
functional programming, particularly with Lisp, but also with other
functional
languages such as Scheme or Smalltalk. We are particularly interested
in candidates who have delivered products written in Lisp and have
interest in Artificial Intelligence. Experience with data mining or
with applied artificial intelligence techniques is a plus. We have
openings at all levels of experience.
To apply or inquire, please send email with information about your
experience and interests to hr at teleonto dot com.
Find more information about Teleonto Technologies Pvt. Ltd. at
http://www.teleonto.com
--- In bangalore-lisp@yahoogroups.com, alephnull@... wrote:
>
> On 19 Sep 2007, tomelam@... wrote:
>
> > I already felt that the string & structured-data processing that
> > Lisp can do so well
>
> Keeping in mind that elisp is more procedural than functional,
> Finseth's seminal work [1] on text editing is quite enlightening.
>
> Footnotes:
> [1] http://www.finseth.com/craft/
>
> --
> Alok
>
> We have nowhere else to go... this is all we have.
> -- Margaret Mead
>
Alok,
Thanks for the reference. I'll definitely have a look at it. Did you
read `The Emacs Problem'? I wouldn't say it's really just about
Emacs, but rather about how XML is evolving towards a hideous sort of
Turing completeness and what we really want for hierarchical-data
processing is `code is data and data is code' within the framework of
a great editor with great regex and text processing -- and the
problems getting to that nirvana. At least that's my reading of it.
I'm not sure what you mean `elisp is more procedural than functional',
by the way. Is it hard to write functional code in elisp? If so,
why? Care to elucidate?
On 19 Sep 2007, tomelam@... wrote:
> I already felt that the string & structured-data processing that
> Lisp can do so well
Keeping in mind that elisp is more procedural than functional,
Finseth's seminal work [1] on text editing is quite enlightening.
Footnotes:
[1] http://www.finseth.com/craft/
--
Alok
We have nowhere else to go... this is all we have.
-- Margaret Mead
Steve Yegge gives a simple explanation about string & structured-data
processing with Lisp:
http://steve.yegge.googlepages.com/the-emacs-problem
Is anyone here interested in this? I am very glad I ran across these
views, because I already felt that the string & structured-data
processing that Lisp can do so well (on the borders of AI) is
something that it might be possible to convince stodgy old,
last-century-oriented management farts is worth using to make profits.
I actually need to think a lot deeper about Steve's article.
This mail-chain has produced at least three ways of doing the same thing and all of them are different and elegant.
Great going guys... let us start some thing interesting like a project developed by us. I really like to join some project which has GPL but would like to that with in our group. What do you suggest?
A fair warning from my side that I am a new lisper so learning a lot from you all.
Thanks to all again,
Samik
P.S. If any one of you have some time for my blog please visit it and post your suggestion there:
----- Original Message ---- From: pramod shinde <prmdshinde@...> To: bangalore-lisp@yahoogroups.com Sent: Tuesday, 18 September, 2007 9:22:41 AM Subject: Re: [bangalore-lisp] About reverse function
----- Original Message ---- From: samik chakraborty <samik_126@yahoo. co.in> To: bangalore-lisp@ yahoogroups. com Sent: Sunday, September 16, 2007 10:14:53 PM Subject: Re: [bangalore-lisp] About reverse function
Hi Pramod,
Sorry to spell your name incorrect last time. The following code uses a recursive call to do a reverse of a list only problem is the tr variable it needs to be set to ‘() each time after a call to this reverse function. I must be missing something stupid here if you can rectify it, will be great.
CL-USER> (setf tr '())
CL-USER> (defun rev(lst)
(setf tr (list* (car lst) tr))
(if (not (eq (cdr lst) nil))
(rev (cdr lst))
(return-from rev tr)))
CL-USER> (rev (list 1 2 3 4 5))
(5 4 3 2 1)
As always, very best
Samik
----- Original Message ---- From: pramod shinde <prmdshinde@yahoo. com> To: bangalore-lisp@ yahoogroups. com Sent: Monday, 17 September, 2007 2:50:08 AM Subject: [bangalore-lisp] About reverse function
Hi all , Can anybody write the recursive function LISP function that will reverse elements of the list(please don't use built-in reverse function).? I have tried the answer with car,cdar,last, lastbut .But I am not able to come at exact answer.