Re: development status

2002-03-21 Thread Arnd Beißner

Peter B. West wrote:
> Convergence problems like your page 99 scenario occur in other contexts; 
> notably the "last page" problem.  The last page in a sequence is allowed 
> a different page-master, but the only way to discover the last page is 
> to lay it out.  Oops, last page.  Lay it out again, using the 
> last-page-master.  Oops, we now have something left over, so it's not 
> the last page any more.  These cases will have to be catalogued as 
> discovered, and circuit-breaker heuristics provided for them.

Yes, and the only way around the performance and memory issues this raises
is to write FOP in a way where any forward-reference related handling is
only executed if forward-references really occur.

Then, if someone has large documents and doesn't care about forward references,
the solution is either to:
1. manually remove the forward references in the document
2. remove the forward references using an XSLT stylesheet if the users want
   to toggle between a "fast" and a "slow" version.
3. implement a FOP option that ignores forward references and replaces them
   by a * - or whatever.

Anyhow, in my opinion this is worth doing right. From my experience (which
is from large-volume printing, between 5.000 and 50.000 docs per job),
if someone wants forward references in a doc (even if it's only page x of y
in a contract or invoice) he or she usually really wants it and doesn't care
about performance or memory. If, for example, I am printing an invoice and
absolute need to have page counts (like page 1 of 2) for legal reasons,
then - if this gives me performance problems - I can still try to help the
formatter by introducing fixed page breaks or other things that at least
avoid formatting cycles after the second.

Arnd Beissner
--
Arnd Beißner IT-Engineering
Bahnhofstr. 3, 71063 Sindelfingen, Germany
Email: [EMAIL PROTECTED]
Phone: +49-7031-463458
Mobile: +49-173-3016917


Re: development status

2002-03-20 Thread Peter B. West



Joerg,

You have highlighted one of the nastinesses of page formatting.  A Q&D 
solution often suggested is to allow a fixed width for the page numbers, 
but I don't see how this can stand as a final solution.  The gaps are 
going to be obvious in something purporting to be a high-quality 
rendering system, and what if you don't allow for enough digits?

The spec allows a lot of local adjustment, so I think that in the vast 
majority of cases local re-formatting will fix the problem, and keep the 
adjustments within the page.  However, I think also that spill effects 
will have to be accommodated.

Convergence problems like your page 99 scenario occur in other contexts; 
notably the "last page" problem.  The last page in a sequence is allowed 
a different page-master, but the only way to discover the last page is 
to lay it out.  Oops, last page.  Lay it out again, using the 
last-page-master.  Oops, we now have something left over, so it's not 
the last page any more.  These cases will have to be catalogued as 
discovered, and circuit-breaker heuristics provided for them.

Peter

Joerg Pietschmann wrote:

>"Nicola Ken Barozzi"  wrote:
>
>>Anyway, these forward references are a pain in the ass :-/
>>
>
>Very true. Imagine the worst case: Someone puts a
> "(See page )"
>into the text at page 1. The formatter has to allocate some
>space for the unknown number, lets say a "n" space. The
>referenced block happens to end up on page 99. The
>preallocated space is not sufficient, extending this space
>could cause reformatting of all pages, which is already bad.
>Furthermore, the reformatting could push the referenced
>block to page 100, thereby providing another problem.
>
>I have no idea how an interface able to deal with the problem
>above could look like.
>





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-20 Thread Joerg Pietschmann

"Nicola Ken Barozzi" <[EMAIL PROTECTED]> wrote:
> Anyway, these forward references are a pain in the ass :-/

Very true. Imagine the worst case: Someone puts a
 "(See page )"
into the text at page 1. The formatter has to allocate some
space for the unknown number, lets say a "n" space. The
referenced block happens to end up on page 99. The
preallocated space is not sufficient, extending this space
could cause reformatting of all pages, which is already bad.
Furthermore, the reformatting could push the referenced
block to page 100, thereby providing another problem.

I have no idea how an interface able to deal with the problem
above could look like.

Have fun
J.Pietschmann

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




[Fwd: Re: development status]

2002-03-19 Thread Peter B. West

  Fops,

This forwarded message is a response to Nicola which was accidentally 
sent to him only. Since I sent it the notes I refer to have been 
installed in the CVS.

Peter

  Nicola,

Most of the design docs I have prepared have been noted on this list in 
the past few months. Real Soon Now, those notes will be available as 
part of the documentation on the CVS trunk, courtesy of Arved, who will 
also apply my updates. At the same time, Keiron's overall design notes, 
htmlified by Cyril Rognon, will be merged into the documentation. Both 
will be under the "NEW DESIGN" menu, with my notes under "ALT DESIGN", 
and Keiron's notes under "Understanding."

If you mean by "framework" the scaffolding surrounding and giving access 
to the core, I have made few changes. I have changed Options because I 
found the command line and config file handling inconvenient for my own 
testing. Apart from that, all my changes are to the internal 
configuration of the core, i.e., the FO->Layout->Area transformations.

I agree with what I understand to be Keiron's position on this: the core 
is inherently tightly coupled, and presents a critical set of unresolved 
design issues to developers. I'm one of those working in there, and the 
work is far from complete. The only internal plumbing that I have so far 
done is to isolate the fo parsing from the fo tree building by providing 
a buffered single stream of events (currently XMLEvent objects, but 
better called SAXEvents) to the fo tree builder. That, at least, is one 
point at which the outside world might usefully intrude. However, I 
intend to use the same model for communication between the core 
components, defining FOTreeEvents for communication with Layout, and 
FOTreeRequests for feeback, and similar communication for the Area tree.

As it happens, such a definition could be used by the structure 
renderers, but that was not the primary purpose. Nor was it the primary 
purpose of isolating the fo parsing to allow for external intrusions. 
The main goals of all of my attempts to break the process into stages 
with tightly constrained communication are classical goals of 
modularisation: greater comprehensibility and damage control. This is a 
bitch of a spec (with all due respect to the authors, whose 
psychological health must have been severely tested by the ordeal), 
dealing with a notoriously difficult area. Developers and maintainers 
need all the help need all the help we can get in gaining and holding an 
understanding of the nature of particular problems and the methods of 
their solution.

At the moment, as I see it, there are still important unresolved issues 
with properties, layout is a fuzzy cloud, and there is a big question 
mark after the area tree. I do not believe that to be an exaggeration, 
and I do not intend it as any criticism of the great work that has 
already been done. It's just an indication of the degree of difficulty. 
More core! Muzzle the Bitch!

Peter


Nicola Ken Barozzi wrote:

>From: "Peter B. West" 
>
>>Nicola Ken Barozzi wrote:
>>
>>>Don't get me wrong, maybe I don't understand something, but still I'm
>>>
>very
>
>>>puzzled.
>>>
>>Nicola,
>>
>>Your criticism here distresses me somewhat.  How is anyone without
>>commit access able to branch the code?  I have been active on this list
>>for twelve months or more, so your not knowing of my effort reflects the
>>fact that you have recently joined.
>>
>
>Sorry, I didn't know.
>I still think that it's strange that the redesign effort is done outside of
>FOP CVS, but now it's clear to me that you didn't have another possibility.
>It's some month's I've been on this list, and my longer experience on other
>lists made me wonder about the current status of FOP. I thank you for taking
>your time to explain.
>
>Since I would like to give a hand if possible, could you please give me
>insight on how you've redesigned the framework, or some reference to
>available material?
>It would be great.
>






-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




RE: development status

2002-03-19 Thread Arved Sandstrom

-Original Message-
From: Nicola Ken Barozzi [mailto:[EMAIL PROTECTED]]
Sent: March 19, 2002 11:48 AM
To: [EMAIL PROTECTED]
Subject: Re: development status

From: "Keiron Liddle" <[EMAIL PROTECTED]>

> Retrieve Markers?

IMHO yes, since you can make a forward reference with it.

-Original Message-

The section on retrieve-marker is not well written, but I would assert with
a high degree of confidence that for any retrieve-marker, the only
qualifying markers have already been seen.

Supporting analysis:

Spec Statement 1 - "The term 'containing page' is used here to mean the page
that contains the first area generated or returned by the children of the
retrieved fo:marker."

Spec Statement 2 - "[ qualifying ] areas do not have a position in the
hierarchy if they are within pages that follow the containing page."

Statement 1 tells me that the page containing the fo:retrieve-marker is the
containing page. Statement 2 tells me that markers, which otherwise qualify
on the basis of class-name and retrieve-boundary, are ruled out.

This is pretty unambiguous, although other parts of the relevant discussion
are not.

I am open to counter-arguments. The reason I am open to counter-arguments is
I read stuff like this, for example:

A) If the value of the "retrieve-position" property is
"last-starting-within-page", then the last qualifying area in the containing
page whose "is-first" trait has a value of "true" is better than any other
area. If there is no such area, then the last qualifying area in the
containing page is better than any other area.

AND

B1) Every area in the hierarchy is considered preferential to, or "better"
than, any area below it in the hierarchy. When comparing two areas to
determine which one is better, the terms "first" and "last" refer to the
preorder traversal order of the area tree.

COUPLED WITH

B2) A qualifying area within a page is better than any qualifying area
within a preceding page.

and my brain starts to implode. What does this mean? That _if_ there are NO
areas on the containing page that have "is-first" = "true", and in fact,
there are no qualifying areas on the containing page at all, then Rule A
kicks in and a qualifying area on page 11 is better than a qualifying area
on page 18? In fact the entire question of what qualifying areas should be
selected of nothing is found on the containing page is up in the air -
apparently one always selects the first qualifying area (pre-order traversal
of the area tree) subject to class-name and retrieve-boundary. Better to
select nothing at all.

Anyway, that's my little rant on markers. I raised the issue last year but
never got an answer.

But in terms of forward references fortunately the spec is very clear.

Regards,
AHS


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Nicola Ken Barozzi

From: "Keiron Liddle" <[EMAIL PROTECTED]>

> On 2002.03.19 16:47 Nicola Ken Barozzi wrote:
> > So we absolutely need to stop output and cache events if there is a
> > forward
> > reference.
> > If we find it at the end, all the pages must remain in memory, and now I
> > see
> > that this can make FOP behave no better than it does now.
>
> Thats not true. We can do better and the current development is developing
> towards a way that will do better.
> The key is that there is a definite API between the Area Tree and the
> Renderers. This means that we can prepare a page and later render its
> contents. All following pages can be rendered if they are finished. The
> forward reference resolution can be done in the area tree with the help of
> the layout managers and then the completed page can be rendered (depends
> if the renderer supports out of order which pdf does). If the memory gets
> low then a page can be stored to disk and retrieved when forward
> references are resolved.

Ah, so it's done with pages.
But with some renderers pages could not be defined (as the spec allows),
like in HTML rendering.

Anyway, I didn't come up with this possibility, since I don't usually deal
with them, but it's a really neat solution to the problem, but still useless
if every page has forward references.

> Without needing to handle this on two sides of
> the fence it is more straight forward and flexible.

Two sides of the fence?
Never thought so.

Ok, so I see that there is agreement on the fact that using SAX events as
intermediate steps of the FOP processing pipeline is not the best solution
ATM.

I will focus now on implementing Avalon stuff in FOP, starting from
Configuration (non static) and URI resolving (for images).

Thank you all for the wonderful feedback on my Random Thoughts :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Keiron Liddle

On 2002.03.19 16:47 Nicola Ken Barozzi wrote:
> So we absolutely need to stop output and cache events if there is a
> forward
> reference.
> If we find it at the end, all the pages must remain in memory, and now I
> see
> that this can make FOP behave no better than it does now.

Thats not true. We can do better and the current development is developing 
towards a way that will do better.
The key is that there is a definite API between the Area Tree and the 
Renderers. This means that we can prepare a page and later render its 
contents. All following pages can be rendered if they are finished. The 
forward reference resolution can be done in the area tree with the help of 
the layout managers and then the completed page can be rendered (depends 
if the renderer supports out of order which pdf does). If the memory gets 
low then a page can be stored to disk and retrieved when forward 
references are resolved. Without needing to handle this on two sides of 
the fence it is more straight forward and flexible.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Nicola Ken Barozzi

From: "Keiron Liddle" <[EMAIL PROTECTED]>

> On 2002.03.19 14:45 Nicola Ken Barozzi wrote:
> > I would consider the possibility (configurable) of having FOP make just
> > sensible assumptions to continue processing and sacrifice some things it
> > should do later.
>
> That sounds very vague.
> So what will you do if someone has a table of contents as the second page.
> Will you pass across a whole lot of  for the page
> numbers to the renderer, so the renderer needs to do the resolving from
> some further information. Will the renderer go until it reaches a  resolved thing> then need to do some awkward processing of all the
> following pages.

I would output a "?" instead of the real pages.
While this is not generally acceptable, in reports, for example, these
references are usually not needed.
High memory consumption is *the*killer*, and it's a burden that
is not needed in these cases.

> It all sounds like an extra level of complexity that we really don't need.
> Rather than helping us it will simply make things more difficult.

Good point. I will keep this in mind.

> > > - embedded xml will need to be parsed twice and saxified
> >
> > Why twice?
>
> May need to read it to get the width and height and do some pre-processing
> with a DOM.

It can be equally done by a sub-pipeline with SAX. But I understand that
Batik is still DOM based :-(

> > ATM, I don't have a clear list of all the things that need to be held
> > back
> > before resolution.
> > Is there a list somewhere?
> > It would be of great help for me.

Since propertiy resolution is basically inherited AFAIK, it seems that what
you specify is in fact what really breaks the nice SAX stuff.

> Page references.

Yes.

> Internal links.

May be. In HTML it's not needed since I can write an internal link (#myref)
before specifying it.

> Retrieve Markers?

IMHO yes, since you can make a forward reference with it.

> Extensions.

Let's bypass extensions for now.


So we absolutely need to stop output and cache events if there is a forward
reference.
If we find it at the end, all the pages must remain in memory, and now I see
that this can make FOP behave no better than it does now.

There are three possibilities I see:

1. Start storing the SAX events as soon as a forward reference is caught,
and flush them after the resolved reference.

2. Ignore the forward references (speed property); if someone doesn't use
any of the above features, there is no difference in output anyway.

3. Do the FOP processing in 2 steps.
   1- Process all the stuff without the references writing to disk
   2- resolve them by rereading the file
   This resolves memory issues but not speed.

I would go for 1 and 2.
If we store the SAX events before firing them, they are smaller than DOM and
can be saved to a Store that can also be a disk in case of low memory.
This is how Cocoon caches pages, and this is how we could cache SAX
fragments that are there just to wait for a forward reference.

We can also give a clear indication to users to how to optimize pages: no
forward references = much less memory = higher speed.

Anyway, these forward references are a pain in the ass :-/

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Keiron Liddle

Hi Peter,

The font information is obtained from the renderer at the start before 
building any of the area tree.
There should be no further need for communication except of course in the 
case when handling dynamic effects (but lets not get into that right now).

On 2002.03.19 13:37 Peter B. West wrote:
> Keiron Liddle wrote:
> ...
> 
>> To serialize between the Area Tree and the Renderers there are some 
>> serious problems that would get in the way:
>> - in many cases the area tree will need to be complete before sending 
>> anything across, this defeats the whole purpose and will use a lot of 
>> memory
>> - embedded xml will need to be parsed twice and saxified
>> - how do we handle area tree extensions
>> - forward references for some renderers will mean that the renderer may 
>> also need to store the whole area tree (or part thereof) on the other 
>> side of the sax events
>> - the layout depends on the output target, for font information
>> 
> Keiron,
> 
> Could you sketch out the way font information is communicated to layout? 
> I had the vague notion that the renderers were obliged to provide font 
> information at the configuration stage.  I hoped this would obviate any 
> further communication between the layout process and the renderer.
> 
> Peter

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Keiron Liddle

On 2002.03.19 14:45 Nicola Ken Barozzi wrote:
> I would consider the possibility (configurable) of having FOP make just
> sensible assumptions to continue processing and sacrifice some things it
> should do later.

That sounds very vague.
So what will you do if someone has a table of contents as the second page. 
Will you pass across a whole lot of  for the page 
numbers to the renderer, so the renderer needs to do the resolving from 
some further information. Will the renderer go until it reaches a  then need to do some awkward processing of all the 
following pages.
It all sounds like an extra level of complexity that we really don't need. 
Rather than helping us it will simply make things more difficult.

> > - embedded xml will need to be parsed twice and saxified
> 
> Why twice?

May need to read it to get the width and height and do some pre-processing 
with a DOM.

> ATM, I don't have a clear list of all the things that need to be held
> back
> before resolution.
> Is there a list somewhere?
> It would be of great help for me.

Page references.
Internal links.
Retrieve Markers?
Extensions.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Peter B. West

Keiron Liddle wrote:
...

> To serialize between the Area Tree and the Renderers there are some 
> serious problems that would get in the way:
> - in many cases the area tree will need to be complete before sending 
> anything across, this defeats the whole purpose and will use a lot of 
> memory
> - embedded xml will need to be parsed twice and saxified
> - how do we handle area tree extensions
> - forward references for some renderers will mean that the renderer 
> may also need to store the whole area tree (or part thereof) on the 
> other side of the sax events
> - the layout depends on the output target, for font information
>
Keiron,

Could you sketch out the way font information is communicated to layout? 
 I had the vague notion that the renderers were obliged to provide font 
information at the configuration stage.  I hoped this would obviate any 
further communication between the layout process and the renderer.

Peter


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Keiron Liddle


I agree with the configuration in general but not with the cocoon concept.
The parts like configuration, logging, etc. could help us with the 
functionality and the architecture.

To serialize between the Area Tree and the Renderers there are some 
serious problems that would get in the way:
- in many cases the area tree will need to be complete before sending 
anything across, this defeats the whole purpose and will use a lot of 
memory
- embedded xml will need to be parsed twice and saxified
- how do we handle area tree extensions
- forward references for some renderers will mean that the renderer may 
also need to store the whole area tree (or part thereof) on the other side 
of the sax events
- the layout depends on the output target, for font information

On 2002.03.15 16:32 Nicola Ken Barozzi wrote:
> What "bugs" me in FOP currently (the famous itch to scratch ;-) , is what
> drives the whole process itself. Configuration, URI resolving, logging,
> and
> so on. The infrastructure.



> When this is in place, all the infrastructure is there, and we can
> concentrate on the real FOP code.

The problem is that the *real* FOP code significantly effects the way that 
the processing and caching works.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Nicola Ken Barozzi

From: "Keiron Liddle" <[EMAIL PROTECTED]>

> At this stage of the design very few core problems can be solved in
> isolation. So if someone wants to implement for example keeps or a colour
> property, it has an impact on almost everything else in the layout.
>
> So what is needed and what will make all the difference right now is more
> involvement on things like the website, FAQ, configuration, external
> interfaces, image handling etc.

Ok, I think I get the picture :-)
Thanks Keiron, you are clear as always.

For the website, as I already outlined, there is an effort going on called
Forrest ([EMAIL PROTECTED]) that will make the xml.apache.org site
easier to maintain and full of new features.
I'm keeping a build system that uses Ant and Cocoon on
http://www.krysalis.org, that is currently used by Forrest itself, Jakarta
POI and others. Maybe it could help a bit with the build and the
documentation generation process, but it's just a hint. If you have a spare
minute, take a look at it and see if it can help. Its force comes from tha
fact that all the projects that use it enhance their build and tools one
another.

What "bugs" me in FOP currently (the famous itch to scratch ;-) , is what
drives the whole process itself. Configuration, URI resolving, logging, and
so on. The infrastructure.
I'm not so much into FOP mechanics to help the DOM2SAX transition right now,
but as for the contour, I have a couple of ideas.

As I've hinted in past mails, I think that the fastest, I repeat *fastest*,
not necessarily the best, way of doing this transition is to use Cocoon.
Cocoon2 is bigger than is needed by FOP, but with some minor changes, IMO
it's just the right container for FOP.


 FOP + Cocoon = FOPoon


Why Cocoon?

Well, I start all the reasoning by acknowledging that the FOP community
wants to reuse stuff done by other projects, and that Avalon is generally
regarded as a good solution.

Avalon is like an _onion_:

 the framework
 the simple implementation (Excalibur)
 the full fledged server (Phoenix with Cornerstone blocks)

If we want to reuse as much as possible, and advance automatically in speed
and features with the advancements of Avalon, we need to use more than the
mere framework, which is basically a collection of interfaces and hints for
good programming practices. Since Phoenix is plainly overkill, what remains
is Excalibur.

This places Avalon between Excalibur and Phoenix, and it makes it clear that
in the future FOP could be packaged as a Block.

Now, what features of Avalon framework+Excalibur does FOP need?
- URI resolving
- xml processing
- pipelining
- component managers
- pools
- lifecycle handling
- configuration
- generic storage
- other things I don't think of ATM

There is a project on Apache that uses these Excalibur parts to make a
pipeline, and that project is Cocoon.

There are some drawbacks though:
- overkill?
- difficult to use?

As for Cocoon being overkill, it may stand if we use Cocoon as-is.
It has parts that FOP doesn't need, but they can be removed.
A cleaned Cocoon can give FOP only what it needs, and basically all that it
needs as infrastructure.
One thing that should be changed is the sitemap; Fop needs a very simple
sitemap, and pligging in a simple new version is easy, once the system is
working. For those who don't know, a sitemap is an xml file that specifies
how to handle the XML steps of the pipeline.

If you don't know Cocoon yet, please take a look at the Cocoon site at
http://xml.apache.org/cocoon/ , and I'll be glad to answer your questions.

FOP can be made as a Cocoon pipeline:
 Generation
 Transformation
 Serialization

The Generation is already present in Cocoon: it parses the xml and spits out
SAX events. Total reuse here.
The Serialization is the Rendering phase: it accepts the SAX events and
spits out the resulting stream: this is easy to do: we just need to make a
DOM out of it and use one of the FOP renderers or even iText.
The middle part is what happens in between. There are transformations of the
XML that are the meat of FOP, and for now we can use the DOM code there is.

Here are the interfaces for a Transformer and a Serializer:

public interface Transformer extends XMLPipe, SitemapModelComponent {
}


public interface Serializer extends XMLConsumer, SitemapOutputComponent {

String ROLE = "org.apache.cocoon.serialization.Serializer";
}

where:

public interface SitemapModelComponent extends Component {
/**
 * Set the SourceResolver, objectModel Map,
 * the source and sitemap Parameters used to process the
request.
 */
void setup(SourceResolver resolver, Map objectModel, String src,
Parameters par) throws ProcessingException,
SAXException, IOException;
}


public interface SitemapOutputComponent extends Component {
/**
 * Set the OutputStream where the requested resource should
 * be serialized.
 */
void setOutputStream(Out

Re: development status

2002-03-15 Thread Keiron Liddle


I'm not exactly sure what you want to know or why but I will attempt to 
clear a few things up.

First a bit of history. About 1.5 years ago FOP reached a stage where the 
original design could not support adding functionality. It started 
approaching a "big ball of mud". More effort was put into making a mess 
rather than achieving a useful output. This continued for some time, 
gradually getting worse. At the same time over last year the amount of 
people involved decreased, especially in diversity. The number of users 
kept increasing.
The only significant reason for the problems is the complexity of the 
layout process.

The solution to this was a "redesign" which we undertook last year. 
Personally I prefer not to call it the redesign, that makes people think 
some magic must happen before they can get involved. The fact is there are 
still a number of things anyone can do without concerning themselves with 
the layout process. From here on we have a base (in cvs HEAD) that will 
continue to be positively built on until it is ready for a release.

So the information for the new design (which of course you have read :)
http://xml.apache.org/fop/design/index.html

So now we still have a very complex problem to solve which is what Peter 
and Arved are looking at outside of FOP cvs. The number of people involved 
has been increasing which is a very good sign, also the number of users 
appears to still be increasing.

The approach is to communicate information as best as possible so users 
have fewer questions/problems by improving the wesite and the FAQ, this is 
still an uphill battle.
The information for developers is being improved so that more may get 
involved.

At this stage of the design very few core problems can be solved in 
isolation. So if someone wants to implement for example keeps or a colour 
property, it has an impact on almost everything else in the layout.

So what is needed and what will make all the difference right now is more 
involvement on things like the website, FAQ, configuration, external 
interfaces, image handling etc.


Regards,
Keiron.

On 2002.03.15 12:24 Nicola Ken Barozzi wrote:
> Sorry, I didn't know.
> I still think that it's strange that the redesign effort is done outside
> of
> FOP CVS, but now it's clear to me that you didn't have another
> possibility.
> It's some month's I've been on this list, and my longer experience on
> other
> lists made me wonder about the current status of FOP. I thank you for
> taking
> your time to explain.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Keiron Liddle

On 2002.03.15 08:27 Nicola Ken Barozzi wrote:
> I think that the FOP community needs an explanation of my intrusion.
> I am a committer on the POI, Cocoon and Forrest projects, and a happy
> user
> of FOP for work.
> I wrote an XML semantic WYSIWYG editor in java that uses Avalon and
> specifies style with formatting objects, so I read the FO spec fully at
> least 3 times ;-)
> I've been following the FOP evolution with great interest, and now I
> would
> like to actively partecipate to this new FOP redesign.
> 
> Expect a RT from me very soon on a the FOP-NG architecture based on
> Avalon I
> have in mind :-)

I welcome your help (and I am sure others do too).

The are certainly a number areas that need improvement such as the 
configuration.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Nicola Ken Barozzi

From: "Peter B. West" <[EMAIL PROTECTED]>

> Nicola Ken Barozzi wrote:
> >Don't get me wrong, maybe I don't understand something, but still I'm
very
> >puzzled.
> >
> Nicola,
>
> Your criticism here distresses me somewhat.  How is anyone without
> commit access able to branch the code?  I have been active on this list
> for twelve months or more, so your not knowing of my effort reflects the
> fact that you have recently joined.

Sorry, I didn't know.
I still think that it's strange that the redesign effort is done outside of
FOP CVS, but now it's clear to me that you didn't have another possibility.
It's some month's I've been on this list, and my longer experience on other
lists made me wonder about the current status of FOP. I thank you for taking
your time to explain.

Since I would like to give a hand if possible, could you please give me
insight on how you've redesigned the framework, or some reference to
available material?
It would be great.

Thank you :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Peter B. West

Nicola Ken Barozzi wrote:

>From: "Arved Sandstrom" <[EMAIL PROTECTED]>
>
...

> I read the FO spec fully at
>least 3 times ;-)
>
Impossible!

Peter



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Peter B. West

Nicola Ken Barozzi wrote:

>From: "Peter B. West" <[EMAIL PROTECTED]>
>
>>There is very active development on FO Tree building, property
>>resolution and layout models.  A lot of that development is desisn
>>speculation, such as the design notes I have been posting, and there is
>>also a fair bit of code, all of which resides with my ISP, references to
>>which I post every now and then.
>>
>
>I don't like what I think is happening.
>The FOP community is here, what does your ISP have to do with it?
>
>You have the *right* to branch and continue parallel development here. This
>is how it should be done. If not, it's not a FOP effort, it's your personal
>game.
>
...

>
>IMHO it's not necessary, but you have more experience than me on this.
>
>The fact that I didn't even know of your effort, and still don't know where
>the code is disturbes me somewhat.
>We are talking about having to depend on iText, but it seems to me that your
>effort is not different in this regard.
>
>Don't get me wrong, maybe I don't understand something, but still I'm very
>puzzled.
>
Nicola,

Your criticism here distresses me somewhat.  How is anyone without 
commit access able to branch the code?  I have been active on this list 
for twelve months or more, so your not knowing of my effort reflects the 
fact that you have recently joined.

Peter


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Nicola Ken Barozzi

From: "Arved Sandstrom" <[EMAIL PROTECTED]>

> You're 100% right - Apache XML is not just about Java. But programming
> language is not the reason xslfo-proc is not a sideproject to FOP. It is
all
> about community. If this codebase was side-by-side with FOP right now it
> would be a distraction at best. It would (possibly) divert resources from
> FOP rather than independently develop its own. That's not just my opinion;
> there have been discussions about alternate implementations before and I
> think there is a consensus that we don't diffuse the FOP effort at this
> time. But there is also no rule that any of us XSL enthusiasts cannot
pursue
> parallel experiments, and that is what xslfo-proc is for me.

I understand your point of view and I respect it.
Since I didn't follow the discussions you refer to, I remain with what you
refer that the FOP community has decided; it makes sense and it is based on
the good life of the community.

Now FOP AFAIK wants to be based on SAX, iText offered to collaborate
closely, and there are indipendedt efforts of defining a new FOP codebase.
Keiron is doing an *awesome* job in explaining what FOP is all about, and
many developers are willing to take part.
Everything is ready for a project boost ;-)

I think that the FOP community needs an explanation of my intrusion.
I am a committer on the POI, Cocoon and Forrest projects, and a happy user
of FOP for work.
I wrote an XML semantic WYSIWYG editor in java that uses Avalon and
specifies style with formatting objects, so I read the FO spec fully at
least 3 times ;-)
I've been following the FOP evolution with great interest, and now I would
like to actively partecipate to this new FOP redesign.

Expect a RT from me very soon on a the FOP-NG architecture based on Avalon I
have in mind :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




RE: development status

2002-03-14 Thread Arved Sandstrom

Comments below.

-Original Message-
From: Nicola Ken Barozzi [mailto:[EMAIL PROTECTED]]
Sent: March 14, 2002 11:07 AM
To: [EMAIL PROTECTED]
Subject: Re: development status

From: "Peter B. West" <[EMAIL PROTECTED]>

[ SNIP ]
> Arved is, as you know, engaged in a
> C/C++ project for a fast, small footprint FO Processor over at
> SourceForge, and I copy all of my design discussions to him.  He has
> just committed another set of perl modules to his prototype.

Why not put it here, in FOP.
Hey, xml.apache is not only Java. Has this been tried?

-End of Original Message-

I've had the urge to try a SAX-based approach that uses C/C++ for quite a
while. The main motivation behind C/C++ is so that SWIG can be used and
therefore open the door at one fell swoop for Perl, Python, Tcl, Ruby etc
etc. The main motivation behind SAX is to radically reduce memory
consumption.

I've only really gotten started on a prototype after the New Year. Prior to
that I had too much other stuff going on - job switching (one employer going
bust, working on a contract, and now fulltime again with a new employer),
personal affairs (nothing bad, just that real life intrudes from time to
time :-)), and quite frankly, a certain amount of FOP burnout - I was fed up
with the codebase and needed to take a break.

In the interim Keiron and Karen have really stepped up to the plate. They
are doing great stuff. As it stands you can only have so many people doing
what they are doing - 2 is about the limit - so I, like others, am waiting
for the right moment to get involved in the redesign coding again. You may
have noted that I volunteered to look at image support for the redesign and
I am devoting time to that this weekend, so I haven't forsaken FOP in the
least.

Why is xslfo-proc (the Sourceforge project) not in Apache XML? Because the
tide has turned for people wishing to make donations of unsupported
codebases. A SAX-based, non-Java XSL formatter is basically an entirely
different project - the rule of thumb these days is that you incubate the
project somewhere else, like Sourceforge, develop a user and developer
community, and then and only then do you look at bringing it into the Apache
fold. And I completely agree with this.

You're 100% right - Apache XML is not just about Java. But programming
language is not the reason xslfo-proc is not a sideproject to FOP. It is all
about community. If this codebase was side-by-side with FOP right now it
would be a distraction at best. It would (possibly) divert resources from
FOP rather than independently develop its own. That's not just my opinion;
there have been discussions about alternate implementations before and I
think there is a consensus that we don't diffuse the FOP effort at this
time. But there is also no rule that any of us XSL enthusiasts cannot pursue
parallel experiments, and that is what xslfo-proc is for me.

I hope that answers a few questions.

Regards,
Arved Sandstrom


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Nicola Ken Barozzi

From: "Peter B. West" <[EMAIL PROTECTED]>

> There is very active development on FO Tree building, property
> resolution and layout models.  A lot of that development is desisn
> speculation, such as the design notes I have been posting, and there is
> also a fair bit of code, all of which resides with my ISP, references to
> which I post every now and then.

I don't like what I think is happening.
The FOP community is here, what does your ISP have to do with it?

You have the *right* to branch and continue parallel development here. This
is how it should be done. If not, it's not a FOP effort, it's your personal
game.

> Arved is, as you know, engaged in a
> C/C++ project for a fast, small footprint FO Processor over at
> SourceForge, and I copy all of my design discussions to him.  He has
> just committed another set of perl modules to his prototype.

Why not put it here, in FOP.
Hey, xml.apache is not only Java. Has this been tried?

> The
> approach of both Arved and me is revolutionary rather than evolutionary,
> primarily, I think, because both of us feel that the requirements are so
> complex and interrelated that the design of all of the phases must
> proceed in parallel, which also means that everything is up for grabs.

IMHO it's not necessary, but you have more experience than me on this.

The fact that I didn't even know of your effort, and still don't know where
the code is disturbes me somewhat.
We are talking about having to depend on iText, but it seems to me that your
effort is not different in this regard.

Don't get me wrong, maybe I don't understand something, but still I'm very
puzzled.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Peter B. West

Keiron,

You have pre-empted my last post on this topic.

Keiron Liddle wrote:

> On 2002.03.14 10:55 Nicola Ken Barozzi wrote:
>
>> Ok, nice. This seems more like evolution than revolution, am I right?
>
>
> You could say that.
> The code is forming a revolution, not the people. We needed to go back 
> a bit and approach things from a different angle.
>
>> Are there any projects underway to change the processing model?
>
>
> I'm not sure exactly what you mean but there are probably no projects 
> as such. Peter is looking at alternatives.
>
>> How about the new property resolving proposal.
>
>
> No active development that I am aware of. Maybe Peter can elaborate.

There is very active development on FO Tree building, property 
resolution and layout models.  A lot of that development is desisn 
speculation, such as the design notes I have been posting, and there is 
also a fair bit of code, all of which resides with my ISP, references to 
which I post every now and then.  Arved is, as you know, engaged in a 
C/C++ project for a fast, small footprint FO Processor over at 
SourceForge, and I copy all of my design discussions to him.  He has 
just committed another set of perl modules to his prototype.  The 
approach of both Arved and me is revolutionary rather than evolutionary, 
primarily, I think, because both of us feel that the requirements are so 
complex and interrelated that the design of all of the phases must 
proceed in parallel, which also means that everything is up for grabs.

Peter


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Peter B. West

Nicola,

Comments interspersed.


Nicola Ken Barozzi wrote:

>From: "Keiron Liddle" <[EMAIL PROTECTED]>
>
>>There was a notice of this a number of months ago. Admittedly we have it
>>the other way around. Maintenance releases are made from a branch. So the
>>main branch is where the active development is happening.
>>
>
>Ok. Makes sense since the community has common views.
>

I suppose that depends on how you define "community".

>>So where are we:
>>I am going to great lengths to describe how it all works so others will
>>have the knowledge to help out.
>>
>
>I've seen it and it's very very well done.
>My sincere compliments :-)
>

Yes, that was a good idea.

>>Many others are helping with ideas and requirements.
>>Not much code is getting done because people are busy and the issues are
>>complex (many of the side issues are being dealt with)
>>The maintenance branch is being updated for bugs etc.
>>
>>I am hoping people will get to a point where they feel ready to jump in.
>>
>>So what needs to be done:
>>Finish the implementation of the line layout
>>do the page layout
>>then do all fo's
>>handle other issues
>>then hopefully we will be ready for a developers release (version number
>>yet to be decided)
>>
>
>Ok, nice. This seems more like evolution than revolution, am I right?
>Are there any projects underway to change the processing model?
>How about the new property resolving proposal.
>
>Sorry if I keep asking, but I got a bit confused reading some mails on the
>list.
>
I made an attempt to explain this recently.  Maybe Keiron can try.  Keiron?


Peter


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Keiron Liddle

On 2002.03.14 10:55 Nicola Ken Barozzi wrote:
> Ok, nice. This seems more like evolution than revolution, am I right?

You could say that.
The code is forming a revolution, not the people. We needed to go back a 
bit and approach things from a different angle.

> Are there any projects underway to change the processing model?

I'm not sure exactly what you mean but there are probably no projects as 
such. Peter is looking at alternatives.

> How about the new property resolving proposal.

No active development that I am aware of. Maybe Peter can elaborate.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Nicola Ken Barozzi

From: "Keiron Liddle" <[EMAIL PROTECTED]>

> (as a guess I would say you haven't beed subscribed long enough :)

;-)

> There was a notice of this a number of months ago. Admittedly we have it
> the other way around. Maintenance releases are made from a branch. So the
> main branch is where the active development is happening.

Ok. Makes sense since the community has common views.

> So where are we:
> I am going to great lengths to describe how it all works so others will
> have the knowledge to help out.

I've seen it and it's very very well done.
My sincere compliments :-)

> Many others are helping with ideas and requirements.
> Not much code is getting done because people are busy and the issues are
> complex (many of the side issues are being dealt with)
> The maintenance branch is being updated for bugs etc.

Ok.

> I am hoping people will get to a point where they feel ready to jump in.
>
> So what needs to be done:
> Finish the implementation of the line layout
> do the page layout
> then do all fo's
> handle other issues
> then hopefully we will be ready for a developers release (version number
> yet to be decided)

Ok, nice. This seems more like evolution than revolution, am I right?
Are there any projects underway to change the processing model?
How about the new property resolving proposal.

Sorry if I keep asking, but I got a bit confused reading some mails on the
list.

Thank you :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




development status

2002-03-14 Thread Keiron Liddle

(as a guess I would say you haven't beed subscribed long enough :)

There was a notice of this a number of months ago. Admittedly we have it 
the other way around. Maintenance releases are made from a branch. So the 
main branch is where the active development is happening.

So where are we:
I am going to great lengths to describe how it all works so others will 
have the knowledge to help out.
Many others are helping with ideas and requirements.
Not much code is getting done because people are busy and the issues are 
complex (many of the side issues are being dealt with)
The maintenance branch is being updated for bugs etc.

I am hoping people will get to a point where they feel ready to jump in.

So what needs to be done:
Finish the implementation of the line layout
do the page layout
then do all fo's
handle other issues
then hopefully we will be ready for a developers release (version number 
yet to be decided)


On 2002.03.14 08:49 Nicola Ken Barozzi wrote:
> Although I'm subscribed to this mailing list for quite some time now, I
> didn't really understand the status of the works that are going on to get
> to
> FOP2 or whatever you are going to call it.
> AFAIK, changing codebase requires a notice of this, a branch in CVS (no
> vote
> is necessary), and a final VOTE if the codebase is to switch.
> This is how Tomcat, Xalan, Xerces and many other projects did it, and how
> the priject guidelines advise. (http://xml.apache.org/source.html)
> 
> What's the current status?

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]