Today Joe Gregorio pointed the Ape at his “apptestsite” and found some problems. And the Ape found some problems with his stuff too. So we both fixed ’em and the Ape’s much happier. This is fun!
There are still grumbles
about Joe dropping foreign markup (a
dc:subject) and not
accepting an input category, but his code is within its rights.
Doesn’t mean I’ll take the complaints out, they’re useful information about
the quirks of one particular implementation.
I bet there’ll pretty quickly be market pressure for APP server implementations to preserve at least some foreign markup. Those guys pushed back pretty hard in the WG about writing that requirement into the spec, which is fair enough, but shooting ad-hoc extension markup around is just going to be too useful, I bet.
Hey, Joe’s server actually has paged collections with
<link rel="next" />, the first I’ve seen; but the Ape’s not
seeing them for some reason, that’s a job for tomorrow.
My logfiles say there were a couple of dozen different computers out there exercising the Ape today, and Ben Lund sent along a couple of good patches; thanks!
Q: Are Globals Ever OK? ·
When I was learning Ruby, I found out it had global variables a
la Perl, with a
$ in front. Ewww, I thought.
But then in the Ape code there are some manifest constants, in particular the
namespace names for Atom and APP and XHTML, as well as well-known MIME types.
They need to be centralized and have symbolic names because they change,
I was thinking of having a Constants class or module so I could say
Constants::AtomNamespace or some such. But then I thought
“simpler is better” and just used
$appNamespace, and so on.
Should I feel unclean?
[Update: OK, the commenters convinced me, that was unclean. There’s now
names.rb and I can say things like
(Oh, and Ruby needs an IDE. Because I want to change the names of these
things to make them more readable and I want to change the name of the file
that defines them from
because I want to add media-types. Without an IDE, this will involve several
minutes of tedious error-prone editing. With one, it’s a fail-safe point and