Home | Gallery | Songs | Dates | Merchandise | News | Bio | Lists | Discussion | Thanks
If you're here, you're interested in some juicy technical details about how this site runs. You'll get them, but first a warning: the details here are kind of gory and you'll probably be pretty lost if you don't have at least a working knowledge of XML and Java.
OK. So the basic engine behind this site is called Cocoon. It's an Apache project, and you can read more about it at the cocoon site. It's basically a framework for transforming XML into JSP-like content with embedded java, and compiling and running that content. The output from this process can be transformed again, and etc.
The nice thing about this setup is that you can abstract away as many layers as you want, and they really are layers. What I've done here is to make the content page very simple. It has a very HTML-like syntax, but only the actual content of the page is described there.
The content page is transformed into a full page by a logic sheet I've written, which is just an XSL stylesheet that replaces certain "library" tags with relevant java to do the work of databasing, etc. This page doesn't have any funny java in it, but the dates, gallery, and discussion sections have plenty.
It's also the logic sheet that adds the header and footer to each page. Actually, this page does have java, because the header uses some to determine what section it's in and present the menu accordingly.
After the output of that first transform is compiled and run, we have a full page, but not quite in HTML. It sort of looks like HTML but is much easier to transform to WML, PDF, text, VoiceXML, RDF -- anything really. This allows, among other things, for the site to be viewable from your internet cellphone with relatively little work on my part. All I do is write a stylesheet to turn the middling HTML-ish output of the logic sheet into something besides HTML.
It's really pretty sweet, and the rest of the details are kind of boring. Cocoon is a servlet, and I prefer the Tomcat/Apache combination for servlets. We're using PostgreSQL for the database, but it could be anything in theory, since we're connecting with JDBC. I prefer IBM's JVM to Sun's. I keep good backups on my ancient Exabyte.
Oh, one more thing. All this -- Apache, Tomcat, Cocoon, and Postgres, plus smtp, ftp, ssh, slashcode, and more -- run on my 7-year-old Pentium 133. I'll let you guess whether I use Windows or not.
I'm also thinking in a couple of months, as features get added and the site gets more robust, usable and maintainable, that I'll release the source for it as a GPL sourceforge project. If you've never heard of sourceforge, check it out. It's one of the coolest things out there for dweeby losers like me.
If you have any questions or comments or suggestions, or especially if you'd like to help, mail me at webmaster@2ndset.net and let me know.
Second Set Easy to Love San Francisco, CA |
Join our mailing list! |
For booking information, contact Voice: (415) 771-1363 Email: booking@2ndset.net |
All materials copyright © 20002002 Second Set. Read or Tell us about this website.