HV2 for Pier

Göran Krampe goran at krampe.se
Thu Apr 12 13:03:24 UTC 2007


Hi folks!

The other night I was on IRC and chatted with Ken and Lukas etc about
Pier. I ended up more or less hinting/promising to take a look at putting
a HV2 web face on top of the Pier model and I actually took a stab at it.
The main argument in favor is to get "nice URLs" and I personally don't
care but thought the task was fun. :)

I got so far so that you can start a HV2 view on a PierKernel and it groks
the hierarchical naming etc using the lookup code in Pier and using some
double dispatching (added a few method extensions on the Pier structure
classes) it tries rendering stuff. I also made a subclass of
PRDeepRenderer (I think it was called) to render structures, and tada -
out comes... some really crap looking stuff. But it works. :)

Now, why am I doing this? I dunno. It was fun trying to grok Pier (Lukas
sure likes the Visitor pattern! I recognize the style from Mewa and must
confess I think it gets a bit too convoluted at times, but that's just me)
and reviving HV2 a bit. The end result can hopefully become an easily
hackable small implementation of a RESTful, readonly (yes, I think so) web
view on top of a Pier kernel.

There is of course quite a lot of work left - the rendering parts. I
didn't do much on that (just enought to get a feeling for how it could
work) and perhaps the new Canvas model that Giovanni Corriga is adding to
HV2 (inspired of course by the similar model in Seaside) is a better fit.
But since Pier uses visitors it should be good to hook in, not sure about
the Widgetry though but most of that is probably only needed for
manipulation.

Code: http://squeak.krampe.se/httpview

The package is called "Bayliner" (I am itching to buy a Bayliner Capri
1952) and well, Seaside... Pier... and Bayliner for day cruising. :)

regards, Göran

PS. Anyone interested, feel free to jump into the boat - I think it has
room for at least 7 people. :) Email me to get write access to repo.




More information about the Squeak-dev mailing list