Notes on Sean Deely Woods Tcl2008 presentation:

What is Festnet?

  • Online volunteer registration
  • Contact database
  • Field scheduler
  • Attendance and evaluation

Started as a Clipper database ~1990. Around 2001 morphed into a website.

"It's not how complicated it looks on the outside, it's whether or not someone can use it."

Festival takes place in a wheat field. Power not always available. Last year did a lot of the administration on the


  • Written in TclHTTPd
  • Originally targeting MySQL
  • Ported to sqlite in 2008

Underneath using Taohttpd. Extends Tclhttpd to export object methods as URLs. Bundles records as "containers". Auto-Generates UI elements based on database schema.

Lessons learned:

  1. Women over 30 can't seem to remember their own birth year
  2. The folks who print badges will mint 4 duplicates at random for "John Smith", while at the same time think "William Jones", "William Jones Jr." and "William Jones III" are all the same person
  3. Always leave the Gender field nullable
  4. And editable for that matter...
  5. Leave a system running long enough and people will find "new features" all the time

Taohttpd URLs:

  • Objects register a URL with the Object_Url command
  • The object resolves what to do with a URL using an exposed method, httpdMarshallArguments


  • Mimics Tclhttpd's Direct_Url
  • Arguments: virtual object {inThread 0}
  • Virtual: The URL (eg /home)
  • ...


  • Arguments: suffix cgilist
  • suffix: Portion of the domain after the object's url
  • cgilist: Any data given in a form
  • ...

Code available at http://www.etoyoc.com/tao