Those of you who’ve been reading attentively will be aware that I’ve been working on a drop in replacemen for a chunk of Rails’ routing subsystem. You will also be aware that things have gone a bit quiet on that front.
On Monday I was down in Brighton for a Brighton Coding Dojo where I had a crack at doing Kata four in Smalltalk.
It took a while to find the balance, but once we got going I think it went well.
Consider a web request:
GET /articles/2007/04/17/adjectives-rule;edit
“What does it mean?”
If we pass it through the prism of Rails routing, it breaks apart as follows:
An argument for peace and love is always an argument for self-preservation.
Go Giles Bowkett, you speak truth. You also speak it way better than I managed a couple of years ago.
So, in my quest to get Rails routes to accept routes like:
articles/:comment[article]/comments/:comment[id]
I’ve been playing with parsers for the first time in my programming career. Quite how I’ve managed to get this far without them I leave as an exercise for the interested reader.
I sometimes think that one of the reasons that CPAN is such a huge advantage for Perl is the ease with which you can contribute to it. It’s all very well having a tool for installing libraries from the archive, any fool can do that, but CPAN has tools for getting started with a new library too.
If you’re reading this on the website rather than through a feedreader and you look to the left you’ll see either a bunch of links to cited books or an Amazon ‘self optimizing links’ banner (though, if it keeps ‘optimizing’ like it has being I’ll be changing it to something else). This is implemented using a mildly hacked version of the standard typo amazon_sidebar plugin.
In case anyone’s interested, I’ve written a list of some of the things I’m currently mulling doing with Typo below the fold.
Rails routing is making my head hurt. It’s starting to remind me of the guts of perl’s regular expression engine, which was said to be understood by three people, plus or minus five.
You may have noticed I’ve been tweaking. The new layout is based on Scribbish with a few CSS tweaks and some low cunning to get the three column layout working.
REST is easy, it’s just smart clients using HTTP to the full.
Except, as Dave ‘PragDave’ Thomas points out, browsers aren’t smart. They’re just dumb terminals with prettier graphics.
bq.
All cultures develop their own vocabulary. If you were in a repair shop and you heard someone say "hand me that wrench with the knurled wheel that changes the width," you wouldn't want them working on your car. You want a mechanic who knows it's a monkey wrench.
- Kent Beck, Smalltalk Best Practice Patterns
If you haven’t yet read Ovid’s post about the ‘AuthenticationFairy, you should. Go on, you can rejoin me below the fold for discussion of some scary Perl…
Some months ago, I ordered a pizza from Papa John’s using their web interface (I’m not proud, I’ll admit to the occasional need for junk food). The pizza was terrible (since then I’ve only ever used them for a satsifying late night cravings for Ben and Jerry’s when I can’t be arsed to go to the all night Tesco’s).