Yes, `sock` is a socket, and there isn't really a reason to chop the last two letters off there, so I'll make a note to change the codebase.

`source` is the name of this handler (and as you'll see in the expansions, `/source` will consequently be its URI) and `room` is the name of a parameter that this handler will accept.

`intern` is a CL primitive; it makes a `symbol` out of a `string`. This is actually exactly the sort of thing I'll need some guidance on: Rubyists, Erlangers and Lispers of all stripes will immediately understand `intern` as a primitive, but I suspect single-minded Java/C++/Python people will need to be told what a `symbol` is, as well as what `intern` does before this begins making sense. Where do I draw the line?

As for `stream`; there are two types of handler `closing` and `stream`. The difference is that `closing` handlers kill the requesting connection after sending their response (hence `closing` the `stream`) while `stream` handlers keep that connection open (hence that connection can be `stream`ed to). 

In light of the fact that you're confused about both (`stream` in this comment and `closing` in the next), I think the best approach here would probably be to change the interface;

- Have one handler-definition primitive, `define-handler` 
- Said primitive should takes a keyword argument `:close-stream?` specifying whether to close its stream after writing or not

That should make it a bit more intuitive.