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:
- Norman Jaffe: Works as a Systems Programmer on microcontrollers and embedded processors in "wearable" devices. Used to have a collection of LispM's and is an editor of the SIGGRAPH newsletter.
- Richard Malsed and Michael Haensel: Came up from southern California to visit Vancouver. Richard works with computers and teaches while Michael is just interested in them.
- Alfonso Urroz-Aguirre: Is in the process of learning Lisp.
- Robin Frost: Originally from the UK, now living in Vancouver, Robin works with medical software and has a bit of experience with using Lisp.
- A friend of Travis Hildebrandt: I didn't get the opportunity to have a chat with him or note down his name - hopefully, I'll catch up with him at a future meeting.

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.As promised, there is a movie available (warning: it is about 183MB in size).
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."
A good meeting for lispvan to finish up 2005 with!

