<feed xmlns="http://www.w3.org/2005/Atom" xmlns:foaf="http://xmlns.com/foaf/0.1/"><title>norman.walsh.name: Comments on /2007/05/13/implXProcIII</title><link rel="alternate" type="text/html" href="http://norman.walsh.name/2007/05/13/implXProcIII"/><id>http://norman.walsh.name/2007/05/13/implXProcIII/comments.atom</id><updated>2012-02-13T09:06:54.502612Z</updated><entry><title>Comment 1 on /2007/05/13/implXProcIII</title><link rel="alternate" type="text/html" href="http://norman.walsh.name/2007/05/13/implXProcIII#comment0001"/><id>http://norman.walsh.name/2010/09/25/oauth#comment0001</id><published>2007-05-14T20:46:18Z</published><updated>2007-05-14T20:46:18Z</updated><author><name>Chris Scott</name><foaf:mbox_sha1sum>da39a3ee5e6b4b0d3255bfef95601890afd80709</foaf:mbox_sha1sum></author><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
    <p>It's a little hard to understand the limitations without access to the underlying  ( hint hint ;), but why not implement some sort of lazy-evaluation for the pipeline elements.
</p>
    <p>
You could construct a graph of the entire pipeline before evaluating any step.  In this case, after the graph is constructed, you'd know to construct the view-ports, of the input document, before you loaded the stylesheet.  Then, since you know the view-ports, you can register a "listener" for each of them to be fed the results of the pipe when it evaluates the stylesheet.
</p>
    <p>
Thus you'd be able to only read from the pipe only once, and still be able to publish the stylesheet to all of the view-ports to transformation engine.
</p>
    <p>
Then again, this might require the entire n-elemenets of the view-port list to be in memory, as opposed to resetting the pipe n times.  It seems like it might be an either/or implementation decision or addition to standard.  
</p>
    <p>
There might be a way to hook up everything so that the events just "flow" once, but I can't think of a concrete example.
</p>
    <p>
Thoughts?
</p>
    <p>
Oh, and keep the implementation articles coming!</p>
  </div></content></entry><entry><title>Comment 2 on /2007/05/13/implXProcIII</title><link rel="alternate" type="text/html" href="http://norman.walsh.name/2007/05/13/implXProcIII#comment0002"/><id>http://norman.walsh.name/2010/09/25/oauth#comment0002</id><published>2007-05-14T20:56:52Z</published><updated>2007-05-14T20:56:52Z</updated><author><name>Norman Walsh</name><foaf:mbox_sha1sum>da39a3ee5e6b4b0d3255bfef95601890afd80709</foaf:mbox_sha1sum></author><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
    <p>Thanks for the interest, Scott. I do have the whole graph before I begin. I think there's lots of room for interesting optimizations at that stage, but (1) I know I'll need to think hard about that when I get to trying to implement threads, so I'm not spending a lot of time thinking about it now, and (2) I'm trying to get something complete before worry too much about getting something that's necessarily fast, so I'm picking the easiest solution that will get the job done in every case.</p>
  </div></content></entry></feed>

