thoughts on rendering multiple presentations from same content?

Colin Clark colinbdclark at gmail.com
Wed Aug 19 23:20:49 UTC 2009


Clayton,

This document is awesome. I'm still chewing on your ideas, but some  
preliminary thoughts in the meantime.

Cutpoints in the Renderer:

Yes, a better name is definitely needed. Antranig and I are working on  
some major improvements to the Renderer's interface, including the  
removal of colons to denote multiplicity and the unification of  
cutpoints with the DOM Binder. This naming issue is something we can  
address as part of that effort.

(Background reading for those who don't know the Renderer or Infusion  
well yet:
http://wiki.fluidproject.org/display/fluid/Renderer+Component+Trees#RendererComponentTrees-IDs
http://wiki.fluidproject.org/display/fluid/DOM+Binder)

Component trees and data:

It's pretty common for a component tree to consist of bindings into  
the model rather than the actual data. Bindings--EL paths-- are just  
path-based references pointing within a separate data model. So you  
can think of the architecture of a component as having three separate  
elements, each mediated by some kind of string-based indirection.  
Here's a dorky ASCII diagram that hopefully illustrates what I mean:

(Data Model)  <--EL paths--  (Component Tree)  --selector names-->  
(HTML template)

Roles and workflow:

In many cases, I expect that the boundary between the roles you've  
outlined will be very blurry, and in fact a single "swiss army knife"- 
type person will play several or all of these roles. Jason Eppink and  
Hugues Boily are great examples of these types of interdisciplinary  
Web designer/developer/content people at our partner museums. They  
create interactive content, manage the CMS, do some programming, and  
more.

Given this, I think the workflow often has a natural back-and-forth,  
either performed by a single person or a small team. In practice, this  
is how I've seen most Web development work, including the evolution of  
our own components. You talk to a designer, create a bit of markup,  
write a bit of code, bind them together, and iterate.

Antranig often likes to think about this separation of roles when he  
talks about use of the Renderer, but I think these roles are more of  
metaphorical value when thinking about architectural dependencies,  
rather than illustrative of an actual division of labour.

On 18-Aug-09, at 10:45 PM, Clayton H Lewis wrote:
> comments needed, for example, any point in developing the mashup  
> component idea that is described there?


Yes, I'm pretty intrigued by both of your Shared Template scenarios.

The idea of having a single, plain HTML version with some lightweight  
way of tagging regions of importance strikes me as appealingly direct  
and simple. I'm not convinced it would scale well to complex  
variations between desired behaviour on mobile vs. desktop, though.  
I'm thinking, say, of sprinkling on some extra semantic class names;  
simple and straightforward for some use cases.

The mashup component idea is really interesting. If I understand it  
correctly, you're thinking of a component that can branch and slice to  
produce the page. In other words, a component that,will assemble a  
different output document by slicing off some subcomponents, branching  
to different sub-templates, etc, based on the target device (or  
preference). It certainly seems doable within our existing  
infrastructure, if in a fuzzy way to me at this point.

I'll need to think a little bit about how this also relates to our  
ideas for framework-wide progressive enhancement, including the  
ability to control the process via user preferences.

I'd certainly be willing to pursue this idea further with you. The  
more I talk with museums, the clearer it becomes that one of the  
highest costs to working with something like Engage will be in the  
actual content creation. I think we're going to want to pursue  
possibilities that will make it easier for museums to rework and  
repurpose content for different medium while still delivering great,  
designed experiences.

Exciting stuff,

Colin

---
Colin Clark
Technical Lead, Fluid Project
http://fluidproject.org




More information about the fluid-work mailing list