[Twisted-Python] a little pattern prototype ?
Tim Stebbing
tim.stebbing at nunatak.com.au
Thu Sep 25 18:05:17 MDT 2003
Glyph Lefkowitz wrote:
> Timothy Stebbing wrote:
>
>> Facets are combined into single html pages (prisms), which will manage
>> placing facet content in divs. A single facet can appear on mny prisms.
>
>
> Tim,
>
> When I suggested "prism" as a metaphor, it was seriously the first word
> that came into my mind, and I intended it as a joke. However, the
> pattern you've described sounds both elegant and accurately described by
> this metaphor. I was laughing the whole time I read it :).
>
> I don't entirely understand what you've done, but I have two quick
> thoughts:
>
> - Have you considered using Woven? Event-broadcasting and updating
> facets in real time could be achieved with LivePage. Also, since your
> output is HTML, woven could help with encapsulating the divs separately
> while guaranteeing that generation errors on one area of the page will
> not affect another.
>
The initial prototype I posted only took a few hours because I used
resources rather than woven (which is great but is more time-consuming
when I just wanted to get html on the screen to test an idea)
If people are interested in this pattern I would definitely write it
either on top of, or extending woven.
> - What are your use cases? e.g. what kind of a site benefits from
> using Crystals, and what doesn't?
It had no use-cases when I started, I just wanted to test an idea.
However, I could see the 'crystals' pattern being of major benefit in a
site that is highly modular, such as a groupware application/portal
where individual modules are often written totally separately and turned
on/off with user prefs.
The site could have an API of broadcasters/observers, its own internal
event system or whatever (a broadcasting reactor?). A module developer
would only need to write a few facets and perhaps a prism to access the
sites events and to get their info on the screen, in whatever way the
site wants modules to be displayed.
-tjs
More information about the Twisted-Python
mailing list