Bill Clementson's Blog

Bits and pieces (mostly Lisp-related) that I collect from the ether.

December 2005
Sun Mon Tue Wed Thu Fri Sat
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Nov  Jan

Summmary of lispvan December 2005 meeting: Lisp on Lines

Friday, December 23, 2005

Well, it turns out that holding a Lisp user group meeting a few days before Christmas and Hanukkah is not a bad idea! We had 13 people brave a wet and stormy night (not to mention the last-minute Christmas shopping traffic jams!) to attend the meeting. And, since the UBC mid-term exams had finished a few days earlier (university students are the "usual" clientele of the Think! cafe), we had the meeting venue virtually to ourselves.

Attending the meeting were a mixture of "regulars" (me, Drew Crampsie, Kevin Griffin, Ian Clellan, Graydon Hoare, Josh Giesbrecht, Travis Hildebrandt) as well as some new attendees:

The topic for the meeting was Lisp on Lines (LoL), a UCW-based web application framework. Drew Crampsie gave the presentation and, although he normally uses Linux, he agreed to use my Apple Powerbook for the presentation (using SSH to connect to his Linux development box) so that we could more easily record the meeting.

Lisp on Lines

For the purposes of the demo, he walked through the development steps in creating YARC (Yet Another Reddit Clone). Although there were a few technical "glitches" (Note to presenters: it is not normally a good idea to re-write your framework's presentation layer the day before a demo! ;-) ), it was a good opportunity to see what LoL provides for web application development. Today, Drew sent me an email saying that
"One thing I didn't mention was the validation system, but it was talked about after the presentation.

Validation is handled in it's own layer, and it uses the condition system.

Using it looks something like
(define-attributes (account)
 (email-address string :validate-as 'email-address)
 ;;; or if you define a custom attribute type of 'email-address'
 (email-address email-address :validate t)
 ;;; or do it only in certain layers
 (:editor t :attributes (first-name last-name (email-address
:validate-as email-address :label "Enter valid email address:" ))
                :validate t))
LoL simply signals various conditions when an object is invalid. There are some higher level operators to deal with them, like VALIDATE-INSTANCE or WITH-VALID-INSTANCES that catch the conditions and perform various actions like display an error message.

For the most part, the default just does the right thing, which is to filter the value and just use it."
As promised, there is a movie available (warning: it is about 183MB in size).

A good meeting for lispvan to finish up 2005 with!

emacs Copyright © 2005 by Bill Clementson