unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Nala Ginrut <nalaginrut@gmail.com>
To: Noah Lavine <noah.b.lavine@gmail.com>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: [Code for fun] Announce my generic server Ragnarok
Date: Wed, 4 Apr 2012 11:09:45 +0800	[thread overview]
Message-ID: <CAPjoZocqVBwJmbyvuKwdq4T21pgRwJXyxiDs_a_WW9Gp3d+wbg@mail.gmail.com> (raw)
In-Reply-To: <CA+U71=MJ1TqVK4HjjKMFtVkSUczDPqC_D-ZxWh8OCJk51tbzWw@mail.gmail.com>

Thanks for reply! The answer is definitely yes!
And I'll find a proper web hosting and build a simple site for it soon
if someone is looking for more details or documents. I saw Geiser is
put onto www.nongnu.org. Is it a proper place to build Ragnarok's
site? I'm not sure about what the word "non-gnu" means.

On Wed, Apr 4, 2012 at 10:42 AM, Noah Lavine <noah.b.lavine@gmail.com> wrote:
> Oh, a quick followup - could we post a link to this on the Guile web
> page? I don't know who is maintaining that now, but it claims to have
> a list of projects using Guile, and I think a multi-protocol server is
> certainly interesting enough to go there.
>
> Noah
>
> On Tue, Apr 3, 2012 at 10:41 PM, Noah Lavine <noah.b.lavine@gmail.com> wrote:
>> That looks excellent! Thanks for posting it.
>>
>> On Mon, Apr 2, 2012 at 12:23 PM, Nala Ginrut <nalaginrut@gmail.com> wrote:
>>> hi falks!
>>> Many guys believe Guile-2.0 is powerful, me too. But we need more and more
>>> guile projects to prove that.
>>> Here's a toy of my coding game. A generic server named "Ragnarok". The
>>> keyword "generic" implied it's not only a http-server, but easy
>>> to add new protocols without considering the common features for a server
>>> such as config/logger/concurrent...
>>> If you checkout its code, you may find that it may didn't use web API you
>>> thought in Guile lib, and it's bother to implement epoll though Andy is
>>> making effort to writing nio/ethread now. Well, the reason is simple,
>>> because that API/epoll did exist or not stable at the time I wrote Ragnarok.
>>> I think it's easy to port it to our future nio/ethread for a higher
>>> concurrency.
>>> It's here: git://gitorious.org/glow/ragnarok.git
>>> I'll make a main page for it if I find a proper web hosting.
>>>
>>> Features:
>>> * GPLv3 (of course)
>>> * Object oriented
>>>  (yes, I'm the minority in Guile community who try to program with GOOPS,
>>> though FP features may cancel out most of OO features)
>>> *  HTTP/1.1
>>> *  Multi-protocols
>>> *  Multi-languages
>>>  (Guile is actually a dynamic compiler collection against the GCC who's the
>>> static one according to Andy's free speech. So multi-language
>>> must be the most fascinating feature.)
>>> *  Guile/Scheme Template
>>> *  Configurable
>>> *  MIME
>>> *  Unified epoll/select/kqueue interface
>>> *  Logger
>>> *  Standard CGI
>>> *  Static page and binary downloading service (of course)
>>>
>>> These days I'm on my vacation and gave a free speech to Chengdu Linux User
>>> Group for a topic about Guile. Many guys are interested in
>>> using Scheme for web framework. But they thought it's very clumsy to write
>>> Scheme in web development, they love PHP more.
>>> For such a misunderstanding, I showed them one of the features in Ragnarok,
>>> the Guile template:
>>> ---------------------------------cut----------------------------------
>>> <html>
>>> <% (if (= 1 1) (begin %>
>>> <p>asdf: <%= (+ 1 1) %></p>
>>> <% )) %>
>>>
>>> <% (let ((test-me (expt 3 8))) %>
>>> <p><%= test-me %></p>
>>> <% ) %>
>>> </html>
>>> ----------------------------------end-------------------------------
>>>
>>> If you get this dynamic page from Ragnarok server, the result will be:
>>> =================
>>> <html>
>>> <p>asdf: 2</p>
>>> <p>6561</p>
>>> </html>
>>> =================
>>> Or open it from any web-browser you like.
>>>
>>> Well, it's an interesting feature and easy to implement for most guys in
>>> Lisp world.
>>> The point is, I'm telling them the template is not a big deal for Guile. We
>>> have it.
>>>
>>> After the free talking, an audience ask me: why not release it?
>>> I must confess it's just a toy of my coding game. I didn't know if people
>>> will be interested in it.
>>> And many guys here know much than me, so I'm hesitating.
>>> But the sentence on Geiser[1] site struck me: "No hacker is an island". Then
>>> I believe I must share it to the world and get more help.
>>> Anyway, it's buggy but it really works!
>>> If you're in trouble with running it directly, you may try to use it's
>>> <server> class for debugging or working with it:
>>> --------------------------------------------cut-----------------------------------
>>> (use-modules (ragnarok server))
>>> (server:run (make <server> #:name "first-http"))
>>> --------------------------------------------end----------------------------------
>>> Then you get a http server listen in 8080 in default.
>>> Happy hacking!
>>>
>>>
>>> [1] http://www.nongnu.org/geiser/
>>>



  reply	other threads:[~2012-04-04  3:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-02 16:23 [Code for fun] Announce my generic server Ragnarok Nala Ginrut
2012-04-04  2:41 ` Noah Lavine
2012-04-04  2:42   ` Noah Lavine
2012-04-04  3:09     ` Nala Ginrut [this message]
2012-04-04 21:42     ` Ludovic Courtès
2012-04-06  1:05       ` Noah Lavine
2012-04-06  9:12         ` Ludovic Courtès
2012-04-06 11:47           ` Noah Lavine
2012-04-07 12:41             ` Nala Ginrut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPjoZocqVBwJmbyvuKwdq4T21pgRwJXyxiDs_a_WW9Gp3d+wbg@mail.gmail.com \
    --to=nalaginrut@gmail.com \
    --cc=guile-devel@gnu.org \
    --cc=noah.b.lavine@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).