SITO: A Behind-the-Screens Look
A peek into the technology behind SITO, if someone dares to care.
The Core
Most of what gets dumped out to the browser of you, the discerning
viewer, is the results of many magical mystical processes on our
beloved server. The majority of these processes are programs
(or "scripts", when used on a résumé) written
in Perl, an ancient
language sharing common roots with Finnish. And let's not forget
the very base-stump of the server: the operating system and web
server, played this evening by the venerable
FreeBSD and
Apache, respectively.
This all used to run on a random Pentium box we found in the trash!
However, in these modern times, as of roughly Halloween 2003, we are
cranking on a new, zestier chunk of hardware donated to us from
Novia, ever-friends of SITO!
This Perl base is supported by many other wonderful
open-source
products, most notably MySQL,
the software equivalent of a magic talisman that allows you to throw
things into a big pile and find them later. Sort of. This is accented
on the rare occasion by its cousin
PostgreSQL, which is harder
to type.
As a side note, I would, at this point, like to put in a big, mushy
rant about how all of the wonderful artists, collaborators, viewers,
fans, evangelists, and workers that have been supportive of SITO over
the years are truly the core of SITO. But this is supposed
to be about technology, right? So I will save it for our [in-progress]
blubbering "No, Thank YOU" page.
The Code
Certainly, these wonderful open-source packages didn't glue themselves
together. Custom-made, state-of-the-art software has to be written
to do this gluing. Oodles of such software was (and is being) written
to make the gears that grind behind the clockface of SITO. Surprisingly,
this software development project is headed by a team of one
Lego Mindstorms RCX Robot and
Mitra, Monty and Bug, three cats at the SITO Labs.
Human assistance is provided by Ed
Stastny and Jon Van Oast.
These SITO soldiers have been genetically altered to process caffeine
87% more efficiently, and have had a three-block-long coffee umbilical
cord strung from Stumptown
Coffee,
grafted to holes trepanned in their heads.
Libraries
A collection of Perl libraries provide the basic routines for the
main chunks of SITO. One of the fundamental functions in this mix
is SUE library, which allows the
user's identity to be tracked and used between all the other libraries
and scripts.
The Cookie Crumbles
SUE makes use of "cookies" for user identity and "session tracking".
We have gone to great lengths to make SITO available under as many
different browser-scenarios as possible
(even lynx!),
with as little compromise to functionality as we can. However,
we felt that it was too much of a technical burden to attempt to
track a visit to the site without using cookies. Cookie-less
and cookie-hating visitors can still peruse the site as a so-called
"guest" user, and see very little difference. And if you are
cookie-free and still want to participate in Synergy
collaborative projects (normally requiring a SITO ID, and thus, cookies),
let us know, and we will work something out.
SITO leaves behind four cookie crumbs, shown below. Three are SUE-related,
and the fourth is a "session" ID, which mostly is used to remember
non-SUE "guests" as they move from page to page.
- sito_sue_id - Who SITO thinks you are right now.
- sito_sue_id_remember - Long-term storage of the most recent
ID who logged in from that machine. Used almost exclusively to surprise you
by filling in the ID field on the login form. How convenient.
- sito_sue_loginauth - Cryptic verification cookie, using
algorithms banned in the U.S. until three weeks ago. This is so naughty
people don't try to pretend to be you by faking their sito_sue_id cookie.
(And, yes, you will be able to "crack" this if you try, so just
leave it alone and quit picking at it!)
- sito_session_id - Goofy-looking unique identifier for this
particular "visit" by you, on that machine. Whatever a "visit" actually
means.
Power to the People!
SUE users are able to control just about any information on SITO
that has to do with them. From demographic information (like user
name and home page URL) to copyright preferences to custom notification
of site news, SUE allows users to fiddle with these things, based upon
their SITO ID.
News-trackin'
Site-wide "news" events (artist additions to projects, important notes,
discussion posts, and many more) are tracked, and thus can be reported
to users in a variety of ways. This home-made SITO News
core winds its way to the furthest corners of SITO activity. We don't
even know what it is keeping track of any more.
Talk About It
Also creeping around in the cracks of SITO is a (yet again) custom-built
Discussion system, with a variety
of topics, including a topic for each SITO ID holder!
All of these bits of bits are stored and manipulated in the good hands
of MySQL. Gee, I sure hope that doesn't crash!
Celebrity Guest Appearances
Several found-on-the-net software packages make cameos
around SITO. This list includes:
- netpbm
(pbmplus) - How ugly the electronic world would be without it!!
- GD.pm - Makes
images with Perl. Fanceeeeey!
- Gifsicle -
Not only awesome software, but excellent documentation!
The Close
If you have any questions about the workings behind SITO, please
contact us. We have nothing (much) to hide!
For those curious, we will most likely release the software we
wrote to interested parties, once we let it run its course for a while,
in order to let it settle in place. Our only real hesitation is
fear of the overhead of supporting this monster!!
And finally, all of SITO code is 100% Bug-Free. No, really!