Thursday, October 21, 2004

mod_speedyfeed 0.05 - now with unit tests and etag support

I just finished up version 0.05 of mod_speedyfeed.

New in this release is an Apache::Test based test suite and support for ETags and If-None-Match.

I manufacture an ETag header based on the crc32 checksums of the entries, and drop from the body of the response any that match checksums seen in the client's If-None-Match header. This is similar to the RFC3229 feed support implemented in Sam Ruby's weblog, but I do it dynamically as part of an Apache filter.

For the curious, here's the relevent entries in the CHANGES file.

* Add support for ETags and If-None-Match. Our ETags are crc32 checksums of the entries, concatenated together. If we see a fragment that matches an entry's crc32 in the client's If-None-Match we drop it.
* Account for the fact that Content-Type headers can have arguments.
* Genericified some stuff so it will be easier to add support for other feed formats in the future.
* Added an Apache::Test based test suite.

Get it while it's hot:

As usual, I welcome any comments.

Friday, October 15, 2004

It's done.

Yesterday I sent the examples from Practical Subversion off to my publisher, which was the last remaining task I had before I could call the book officially done. Sometime yesterday (or perhaps today, I'm not entirely sure) the final PDFs were sent to the printer, and I'm told that in about a month we should have actual dead tree versions of the book. It's taken far longer than I'd originally thought it would, and a lot more work than I had anticipated, but I'm glad I did it. I've learned a lot, improved as a writer, and at some point soon I'll be able to walk into a brick and mortar book store and see something with my name on it sitting up on the shelf. That's so much cooler than seeing things I wrote up on a website, and I'm glad I have been given the chance to do it.

Before you ask, no, I'm not planning on writing another book anytime soon. Instead I think I'm going to stick to actually writing code, which I've missed over the past year or so, and while I will continue to write it'll probably be limited to much smaller pieces. This whole process has truly made me appreciate the value of a quick return on investment. Taking an entire year worth of hard work before you actually see the result in a bookstore is not nearly as much fun as a few hours over the course of a week or two before you can see an article up on a website somewhere ;-)

In any event, for everyone out there who is tired of hearing me pull out the "I've got to work on the book" excuse way too often, I'm no longer going to be able to use that one, so I'll have to work on an all new set of excuses for not being all that much fun...