[suave-devel] Beginners look

Red Daly reddaly at stanford.edu
Sun Apr 29 18:25:37 UTC 2007


Hi Henrik,

Thanks for the message!  It motivates me more to see that somebody else 
has some interest in the project.

I should warn you that a lot of the project's components are 
experimental or in early stages of development.  I'll give you a rundown 
of each folder in the project directory everyone's sake:

AMAZON-ECS: a library for interfacing with Amazon's ECS service.  it 
works well for fetching details about books, CDs, etc and I use it for a 
running web site.  I anticipate adding more functionality as I need it 
in 6 months or so.

CL-SAILS: this is a port of an older, ruby-based version of sails.  
Sails are GUI components for web pages.  They are defined by some HTML 
with additional markup to indicate, for one, that certain DOM nodes are 
named fields of the sail.  I am using this in a current project so it 
will be getting some attention (including examples) in the next few weeks.

JS-ON-CL: an experimental project built on the JWACS parser for dealing 
with Javascript in Lisp.  Right now there is a Javascript to Parenscript 
converter in js-to-parenscript.lisp with an example.  I do not imagine 
doing much work in here in the future.

LLAMAS: a Semantic Web development framework.  There are a few ideas 
behind Lambdas on Llamas that make it different from other web 
frameworks.  Developers should think of a Lambdas on Llamas project as a 
web service rather than a web site.  A Lambdas on Llamas server provides 
resources and services for its intended clients rather than HTML pages 
for its human users.  Making a local web site based on these services is 
straightforward, and uncoupling presentation and application logic to 
such an extent often makes the process easier.

In terms of Lisp, a Lambdas on Llamas server consists of responders to 
URI requests.  Each responder will first generate a "semantic" (i.e. 
meaningful) reply, which is usually a CLOS object when a request is 
received.  Based on supplied parameters, it will then decide the output 
format of the response and render some appropriate textual/binary 
sequence.  For example, a Parenscript responder will have the ability to 
request a file as either Parenscript or Javascript, but the original 
abstract response (the Parenscript file) is the same in both cases.

I hope to make Semantic Web standards more integral to Lambdas on 
Llamas.  Any response should probably have some RDF/OWL representation 
so interested parties can work with the response in a machine-readable, 
standard encoding.  I would like to see Wilbur become active again (prod 
the developer!) or perhaps watch another RDF library crop up.

Lambdas on Llamas awaits some design decisions though I currently use it 
on live sites.  In a few months it will receive more attention, though 
real progress awaits a quality library for working with RDF.

PAREN-PSOS: the Parenscript Object System is currently in good shape and 
set to receive some attention in a few months.  Legitimate first-class 
slot definitions are next on the list, and then comes formalizing the 
protocol.

RED-BROWSER: pretty much empty.  this was supposed to be a simple agent 
for web crawling.

RED-UTIL-CL: utilities.

RJSON: Red's Javascript Object Notation.  This works in only a limited 
way right now, and the code is pretty ugly.  I plan to rewrite it some 
afternoon in the next few months.

ROWL: nothing to see here.. future experiments with RDF and OWL in a 
Lisp environment.

SAILS: old, Ruby implementation of CL-SAILS

SUAVESCRIPT: a fork and extension of Parenscript with a more 
sophisticated compilation/translation process. I believe it is in 
disrepair right now because of reckless hacking.  The main problem is I 
have not fleshed out the design.  If you are interested in the project, 
post to the list to get me going again and participate in planning.  I 
would like to see it take shape soon so that people can distribute 
Parenscript packages intelligently.

S-XML: a local branch of the S-XML library.  The main changes are for 
CL-SAILS so more information is passed about the XML structure of input 
streams (whitespace, element details, ...).

XML-MOP: a metaobject system for defining XML formats (right now only 
decoding); used in AMAZON-ECS.  Will probably receive incremental 
changes in the future, though there is a lot of room for improvement.

I hope this helps you become more acquainted with Suave.  More 
information can be found on the iodb.org wiki: 
http://iodb.org/wiki/index.php/Suave_Project

Your changes have also been pushed.  I will let you know when 
Suavescript is in working order again so you can play around with it.

Thanks and enjoy,
Red

Henrik Hjelte wrote:
> Hello,
> I was checking out suave a little. It would probably take a long time to
> get to know everything, so I can't make any intelligent comments yet. It
> seems related to birds, owls and suave :-). However, I have attached two
> small patches I needed to get things to load for a brief look. The
> example in js-to-parenscript was really cool!
>
> Sadly I couldn't try suavescript because there is some chunk of code
> missing from the parser.lisp file. Check around line 241: (defun
> resolve-macro (name comp-env)
>
> I think this is really interesting stuff!
>
> Thanks,
> Henrik Hjelte
>
>
>   
> ------------------------------------------------------------------------
>
>
> New patches:
>
> [small typo
> Henrik Hjelte <henrik at evahjelte.com>**20070429093646] {
> hunk ./js-on-cl/js-to-parenscript.lisp 201
> -  (js-to-paren *example script*))
> +  (js-to-paren *example-script*))
> }
>
> [asdf dependency on cl-json instead of json
> Henrik Hjelte <henrik at evahjelte.com>**20070429093913
>  Because asd file was renamed in cl-json project
> ] {
> hunk ./paren-psos/paren-psos.asd 20
> -  :depends-on ("parenscript" "closer-mop" "json"))
> +  :depends-on ("parenscript" "closer-mop" "cl-json"))
> }
>
> Context:
>
> [s-xml import
> reddaly at gmail.com**20070426204114] 
> [jwacs external
> reddaly at gmail.com**20070331093757] 
> [jwacs asd
> reddaly at gmail.com**20070331093634] 
> [js-on-cl simple translation changes
> reddaly at gmail.com**20070331020501] 
> [js-on-cl import
> reddaly at gmail.com**20070331010543] 
> [suavescript packages partial
> reddaly at gmail.com**20070328112044] 
> [suavescript packages
> reddaly at gmail.com**20070325001347
>  A mostly-working (though not entirely proper) package system for Suavescript.
>  
> ] 
> [suavescript simple packages
> reddaly at gmail.com**20070321213239] 
> [suavescript asd
> reddaly at gmail.com**20070318005514] 
> [suavescript import
> reddaly at gmail.com**20070318002027] 
> [llamas import
> reddaly at gmail.com**20070306071533] 
> [initial import
> reddaly at gmail.com**20070304032041] 
> [initial
> reddaly at gmail.com**20070304025033] 
> [remove suave directory
> reddaly at gmail.com**20070304023320] 
> [add suave directory
> reddaly at gmail.com**20070304014239] 
> Patch bundle hash:
> be72eaae664bd94125b5e0ef896cb3abb72d7539
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> suave-devel mailing list
> suave-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/suave-devel
>   




More information about the Suave-devel mailing list