I’m still a little too macro-happy these days. Hopefully this phase will pass.

I found a few good references on guidelines for macros:

I can’t end this without not posting my little assert macro

(define-syntax (assert stx)
(syntax-case stx ()
[(_ expr)
(quasisyntax/loc stx
(unless expr
(error 'assert (format "~a lineno ~a: ~s failed"
#,(syntax-source stx)
#,(syntax-line stx)
(quote expr)))))]))

Reading and writing

I’ve been reading Richard Gabriel’s book, “Writers’ Workshops & the Work of Making Things”. I’m really liking what I’ve read so far. It speaks a lot to what I think about collaborative learning — what we do when we read and write each other’s programs to give and share the gift of making.

In some sense, a mailing list like tries to — perhaps instinctively — follow the writers’ workshop environment. There is satisfying work in building communities that help each other; I would like to continue with it.

Besides reading, I’m continuing my study of PLT Scheme, and think that I can contribute to the documentation-for-mainstream-programmers-is-missing problem. I’ll start by attacking classes, since that’ll be the thing that Java programmers will reach first, and I’ll probably try to tackle MrEd next.

Last: sometimes I’m too eager to jump into a question and write something that I think is helpful; I should watch out not to reveal too much, lest I do damage. The lessons that John Holt learned in How Children Fail should always be at the back of my mind.