Re: ANN: FOray

2004-05-18 Thread Chris Bowditch
Victor Mote wrote:
Dear FOP Developers:
Hi Victor - welcome back. I was saddened by your decision to leave FOP.
After considering a return to FOP development, and briefly discussing the
pros and cons with those whom I consider to be the FOP development leaders,
I have decided to partially fork FOP into a sourceforge project called
FOray:
http://foray.sourceforge.net/
Ive taken a look and it all seems to make sense.
The main reason for this is that, at the moment anyway, my development goals
are quite different from those of FOP's development team. It is likely that
my return to FOP development would be a net disruption to the project, which
is not my intent. Instead, my hope is that this vehicle will allow me to
continue to get my real work done and still cooperate with the FOP
development team.
I do understand why you have decided to start FOray. Although modularisation 
is a nice feature, I dont see it as a key goal for FOP. FOP's primary 
objective is to achieve a working layout. The main things needed to achieve 
this are listed here:

http://xml.apache.org/fop/design/layout.html#status
I hope that no one will think that I am recruiting here. I simply thought it
would be rude for you to hear about this some other way. I wish you all
success.
No I dont think that, it is very polite of you to let us know. I cant speak 
for the team as a whole, but I hope that we will be able to cooperate to a 
high extent.

Chris



Re: Table processing question

2004-05-18 Thread Chris Bowditch
Andreas L. Delmelle wrote:
Hmm.. Yes, but... these properties are not specifically meant for the rows
themselves. They are meant to be propagated to/combined with those defined
on the table-cells contained by it.
Good point.
( IIC, resolving the possible conflicts WRT backgrounds/borders can be
settled, for a large part, at FOTree building time. )

I also have a hunch that this would be very convenient WRT managing
rowspans... In that case, TableCells could be added to the TableRow
directly, but only temporarily, to defer their finishing (?)
Conversely, what about column spans specific just to one row !?!

They will be stored in the table-cells, just as they are now.
Another good point.
doesnt mean dont consider optimization, I just mean working layout takes
priority over an optimized one.
And it looks like it will be harder to achieve a working layout
with your suggested changes.

Something I'm very concerned about, which is why I haven't started any work
on it yet... wanted to gather your opinions first.
Theres no harm in doing work locally and then formulating a patch for review.
Right now, I just have a very clear-cut idea on what exactly needs to be
done, and if I'm not mistaken, the required changes to Layout will be
minimal (see the upcoming follow-up message: will post that one later
tonight). For the most part, it will work exactly as it does now, only the
code for *creating* the Row and Cell LM's will need a little adjusting
(serveTableRow() and serveTableCell() in AddLMVisitor?)
Chris



Re: Table processing question - follow-up

2004-05-18 Thread Chris Bowditch
Andreas L. Delmelle wrote:
comments below:
Posting this as a follow-up to my earlier ponderings. If we don't get it
implemented, or postpone this one indefinitely, at least we'll have it
nicely summed up for possible future use... (Who knows, maybe parts of these
remarks can be used to implement the starts-row and ends-row properties for
table-cells)
snip/
If we manage to make it possible for the Layout Managers to deal with the
latter, this would allow us to support tables with or without explicitly
defined rows with greater ease (i.e. one strategy fitting both situations).
Difference: in a 700-row table, you'd only have one TableRow FObj instead of
700 that remain referenced until the page-sequence is completed...
(admitted: it does enlarge the TableCell objects a bit...)
Yes, just what I was thinking. TableCell would be quite complicated. Although 
it is hard to gauge by just talking about it.

snip/
While we're at it, add an implementation for the starts-row and ends-row
properties. Still mapped to fop.fo.properties.ToBeImplementedProperty, so
for starters, change the mapping in fop.fo.FOPropertyMapping to make an
EnumProperty for them. In fop.fo.flow.TableCell, add the necessary code to
the doSetup() method to make it possible to actually use them... (is there
another step I'm missing?)
(Come to think of it: the 'width' property for table-cells seems also
unimplemented for the moment)
This makes sense - what effect would you expect width on table cell to have? I 
maybe missing something, but the width is derived from table column and cant 
be overridden for a single cell.

Modifications in Layout: as already indicated, I think there are not that
many. It will continue to work as it does now. It's only the LM *creation*
process that will need a little tweaking... As there will always be a
TableRow child present, even if there was none specified in the source FO,
the first Row LM will be created anyway. It will just be a matter of adding
the Cell LMs as children of the current Row LM, and generating a new Row LM
when the Cell in question starts a row.
So, for those of you that have read closely (--and have been able to keep
awake ;) ):
Indeed, it seems as if I'm making things more complicated, since the rows
are removed in the FOTree, but are re-introduced in Layout... This is
because, AFAICT, the problem with big tables is mainly the creation of the
FObj's, so this goes a little step towards solving that one. On top of that,
while building the FOTree, it is hardly ever necessary to peek into
preceding/following Rows, so the work over there (IMHO) doesn't really
*need* multiple TableRow objects for one TableBody.
There may be a need to peek at surrounding rows when implementing 
border-collapse algorithms. Not sure if this peeking will need to be done in 
FO Tree or layout or both.

Just food for thought... hope someone enjoys :)
On the whole a very well thought out idea. I dont want you to think I'm 
discouraging you. You have answered my initial concerns, so why dont you go 
ahead and make the changes locally and then create a patch for review. It will 
be easier to discuss pros/cons in more depth by looking at the patch file.

Chris



Re: ANN: FOray

2004-05-18 Thread arnd . beissner
Peter B. West [EMAIL PROTECTED] wrote on 18.05.2004 05:59:20:

 project.  The situation with FOray is more complicated.  I don't know 
 whether it is Victor's intention to fork from HEAD and continue the 
 development along the lines he has previously discussed, or to attempt 
 to integrate HEAD and the maintenance branch in some way.  In any case, 
 what Victor is doing will closely parallel the HEAD development, and 
 this, combined with the possibility of some financial support, has a 
 great potential to de-stabilise FOP.  I'm not saying this as a criticism 

 of Victor, but as a bald statement of the reality.

Some elaborations on this from my side. Please feel free to ignore it
entirely.

About 18 months ago, I was in a situation similar to Victor's.

I wanted to get a few things done in FOP and did some patches. Like
all of you here I realized that FOPs (maintenance) internal structure
wasn't all that great. However, unlike the committers here I thought
that refactoring the maintenance branch would have been the way to go.
My gut feeling was that, given the time available to the committers
and the non-existence of a strong head developer, the
re-implementation would either take extremely long or fail.

Since this was really a gut feeling based on the discussions here and
my professional experience, I didn't really speak up, because I didn't
really have anything in my hands to prove my point and I also wasn't
a stakeholder - so to speak. Maybe that was wrong, maybe not. Well,
I discussed a little with Nicola as another interested bystander at
that time. Here's an excerpt from my mail that I think still applies:

 Truth to tell, my greatest fear concerning FOP right now is not the 
license
 but that the people involved in the redesign take too long because they 
don't
 have enough time. In commercial projects, I've seen the following happen 
many times:

1. Project A starts and is moderately successful
2. Implementation learnings from A and new requirements toggle
   the decision for a complete redesign.
3. Project B is kicked off as a result, but progresses slowly (for 
whatever reasons)
4. A is still in use but needs fixes and some small enhancements, 
yielding A'
5. Time goes on, A' and B progress further.
6. Someone comes up with a carefully refactored version of A' and B is 
stopped.

I truly hope this doesn't happen with the seemingly long ongoing FOP 
redesign.

This was two years ago, but I think I can still subscribe to it.

About 18 months ago, my options were:

1. Get into the hot-headed discussions an try a turn-around to refactoring
2. Fork off an 0.20.3 branch (at that time) on SourceForge (like Victor 
did now)
3. Write my own XSL formatter.

I pretty soon discarded 1. and toyed with 2. However, since sometimes I 
still
have a let's storm that hill attitude and were also pretty familiar with 
writing
text formatters and PS and PDF emitters, I opted to do 3, but to do it as 
a
fun project with an open goal since I didn't have all that much spare time 
beside
my business. Kind of a let's just see what happens project.

So what happened was: I now have an XSL formatter that is in my estimation 
further
along than the FOP redesign and that does most things that 0.20.5 does and 
a lot of
things that 0.20.5 does not. I confess that so far, I did borrow the 
TrueType font
reader from FOP. What am I going to do with it? Well, it's not really 
decided yet.
The most likely scenario is to make it a commercial product. BTW: why was 
I fast?
I'm good (like you), I had experience in many of the areas involved, and - 
very
important - I didn't need to discuss my architectural decisions because I 
did it
alone. I had fun.

So why am I writing this?

First, I very much wish the FOP team and the project to succeed. Even I my 
pet
project is ultimately successful and even if it's a commercial success I 
firmly
believe that we need an open source XSL formatter under the Apache 
license.

Second, maybe to give you second thoughts about what you and Victor are 
doing.
My personal impression and also my recommendation is to:

Model A: Let one strong developer with resonable time on his hands drive 
the
development of the redesign until it has so far progressed that it's 
usable
for people currently using 0.20.5.

Model B: Refactor the maintenance branch. This keeps more users and 
therefore
more possible contributors on the bandwagon. Refactoring is tedious and 
needs
experience, but you get that experience quickly and the motivation stays 
over
time. Also, the maintenance branch source code is not *that* bad. Yes, it
badly needs refactoring in most places, but it's not beyond repair.

Since I don't see Model A for FOP currently (no strong developer WITH 
enough
time on the horizon), I believe Model B is what would work best. Your 
existing
development model for FOP 1.0 is taking too long IMO. This is not a 
criticism
of any of you, but a personal assessment of what I think can be achieved 
with
the time 

Re: ANN: FOray

2004-05-18 Thread Chris Bowditch
[EMAIL PROTECTED] wrote:
Some elaborations on this from my side. Please feel free to ignore it
entirely.
Thanks for speaking up. Just because you are not a committer, doesnt mean your 
opinion doesnt matter. This is open source way. The project is owned by everyone.

snip/
5. Time goes on, A' and B progress further.
6. Someone comes up with a carefully refactored version of A' and B is 
stopped.
This is very true, I also have the same concerns, which is why I have set out 
some simple objectives that must be met before the redesign is ready for an 
initial release. See here:

http://xml.apache.org/fop/design/layout.html#status-todo
We have in fact completed the first item. Once we have completed the other 
tasks the redesign wont be far behind 0.20.5. Once we do a release, I believe 
the project will gain some momentum.

So what happened was: I now have an XSL formatter that is in my estimation 
further
along than the FOP redesign and that does most things that 0.20.5 does and 
a lot of
things that 0.20.5 does not. I confess that so far, I did borrow the 
TrueType font
reader from FOP. What am I going to do with it? Well, it's not really 
decided yet.
The most likely scenario is to make it a commercial product. BTW: why was 
I fast?
I'm good (like you), I had experience in many of the areas involved, and - 
very
important - I didn't need to discuss my architectural decisions because I 
did it
alone. I had fun.
I'm impressed. You must have a lot of spare time, and be a very talented 
programmer. I would be grateful if you could help with any of the tasks listed 
above, so we can get a release of the redesign and overcome FOP's current dilema.

Model A: Let one strong developer with resonable time on his hands drive 
the
development of the redesign until it has so far progressed that it's 
usable
for people currently using 0.20.5.

Model B: Refactor the maintenance branch. This keeps more users and 
therefore
more possible contributors on the bandwagon. Refactoring is tedious and 
needs
experience, but you get that experience quickly and the motivation stays 
over
time. Also, the maintenance branch source code is not *that* bad. Yes, it
badly needs refactoring in most places, but it's not beyond repair.
The redesign project is further along than you might think. 2003 was really 
bad for the redesign, absolutely zilch progress was made on layout. However, 
there has been some progress since the end of last year. So if we can just 
finish the tasks listed above, FOP should be back on the road to success. I'm 
certainly not keen to drop the redesign so close to the finish line. Perhaps 
12 months ago I would have been inclined to agree, but not now.

snip/
Like two years ago, I still don't feel all that comfortable about speaking
up on this. After all, it's *your* project, and what the f*** do I have to
say about it. Ok, this time I decided to do it. Please don't be offended
- it's really meant as a personal opinion from an interested bystander.
I hope you can accept it as such.
I'm glad you have spoken up. And this goes for any other silent folks out 
there considering the same options. Please speak up - every opinion counts, 
the project belongs to the community, not just to the committers.

Chris



Borders on Blocks

2004-05-18 Thread Chris Bowditch
FOP Devs,
I would appreciate some advice. I have noticed that top/bottom borders dont 
work on regular blocks. This is because the PDF Renderer uses block.getWidth() 
to determine the length of the border lines. Here is a sinnper of Area Tree 
output:

block width=138897 ipd=0 height=274960
  block width=0 ipd=138897 height=250351
block width=0 ipd=138897 height=250351
  block width=0 ipd=138897 height=22000
lineArea height=22000
  text tsadjust=0 
props=font-size:2;font-family:F5;color:#00;Home Insurance/text
/lineArea

Notice how ipd=0 for the top level (static content) block and then width and 
ipd swap around for regular fo:blocks. Question is, is this wrong, or should 
the PDF Renderer be changed to consider either IPD or width properties of block?

Thoughts will be appreciated.
Chris



Re: Borders on Blocks

2004-05-18 Thread Chris Bowditch
Chris Bowditch wrote:
FOP Devs,
I would appreciate some advice. I have noticed that top/bottom borders 
dont work on regular blocks. This is because the PDF Renderer uses 
block.getWidth() to determine the length of the border lines. Here is a 
sinnper of Area Tree output:

block width=138897 ipd=0 height=274960
  block width=0 ipd=138897 height=250351
block width=0 ipd=138897 height=250351
  block width=0 ipd=138897 height=22000
lineArea height=22000
  text tsadjust=0 
props=font-size:2;font-family:F5;color:#00;Home Insurance/text
/lineArea

Notice how ipd=0 for the top level (static content) block and then width 
and ipd swap around for regular fo:blocks. Question is, is this wrong, 
or should the PDF Renderer be changed to consider either IPD or width 
properties of block?
I think I have solved this mystery. The second level block shown above was a 
BC with the optional width property not specified. The assigning of width/ipd 
for a block is done in Block.getParentArea where IPD is always copied and 
width is based on either IPD or parent width. I have modified this logic a bit 
so that if the parent width is used, it will fall back to IPD if it is zero.

It fixes my problem, but I'll wait for any comments before committing this change.
Chris



Re: ANN: FOray

2004-05-18 Thread arnd . beissner
Chris Bowditch [EMAIL PROTECTED] wrote on 18.05.2004 12:03:33:

 This is very true, I also have the same concerns, which is why I have 
set out 
 some simple objectives that must be met before the redesign is ready for 
an 
 initial release. See here:
 
 http://xml.apache.org/fop/design/layout.html#status-todo

One comment on the todos:

- border-collapse is both important and difficult. I am still fiddling 
with
details of the spec. I suggest ugrading the priority. Not supporting
border-collapes yields ugly output.

 We have in fact completed the first item. Once we have completed the 
other 
 tasks the redesign wont be far behind 0.20.5. Once we do a release, I 
believe 
 the project will gain some momentum.

That I agree with. May I was too pessimistic regarding the progress.
 
 I'm impressed. You must have a lot of spare time, and be a very talented 

 programmer. I would be grateful if you could help with any of the 
 tasks listed 
 above, so we can get a release of the redesign and overcome FOP's 
 current dilema.

Well, unfortunately not so much spare time, but as I said, doing it
alone really, really helps. And I very much tried to aggregate as
much spare time as possible into full dev-only days. That helps, too.
With the same background, most of you committers could have done the
same. If you look at it, most successful projects initially had
1 or 2 people at the start who did the core work, and then others
joined to make it complete. If I had joined the redesign team, FOP
wouldn't be much farther than it is now, because most of my time
would have gone to discussions, which in turn would also have taken
up other committer's time.

What I *can* offer to contribute is discussion about the FO spec or about
implementing PS oder PDF output. This is a concern that we probably share
and that needs discussion in any case. However, for actual implementation
discussions I feel a little reluctant. If my pet project becomes a product
in the future, we will have the same issues coming up here that we had 
with
the RenderX guy speaking up here recently. This is not what I want - 
though
I think what he did was perfectly ok, well-meaning and to be applauded. If
I recall correctly, the uproar was resolved, the RenderX guy got his 
deserved
apology, but the consensus was that the FOP code should be kept clean 
from
competitor's code or even ideas. If I remember that correctly and this 
still
stands, then I would rather not discuss algorithms here.

Have a nice day out there,

Arnd
-- 
Arnd Beißner
Cappelino Informationstechnologie GmbH



Re: [Bug 29025] New: - Document/LayoutStrategy consolidation

2004-05-18 Thread Glen Mazza
Simon Pepping wrote:
Note in this respect the comment in
LayoutStrategy.java:
   /** Useful only for allowing subclasses of AddLMVisitor to be set by those
extending FOP **/
right above
   private AddLMVisitor addLMVisitor = null;
I think you should copy that comment to Document.java as well.
 

Just added the comment, thanks.  Now I'm back to (1) the 
space-before/space-after issues on both static-content and fo:flow, and 
to hopefully (2) add to Andreas' research on the table issue.  I tried 
to run a report at work on 1.0 instead of 0.20.5 and had found five 
bugs--I fixed four of them, the spacing issues are the last, and then 
(at least for my report) 1.0 is as good as 0.20.5.  Then, test my next 
report..., and the next, and the next, then finally...the Docbook fo 
stylesheet!

Glen


Re: ANN: FOray

2004-05-18 Thread Chris Bowditch
[EMAIL PROTECTED] wrote:
Chris Bowditch [EMAIL PROTECTED] wrote on 18.05.2004 12:03:33:
This is very true, I also have the same concerns, which is why I have 
set out 
some simple objectives that must be met before the redesign is ready for 
an initial release. See here:

http://xml.apache.org/fop/design/layout.html#status-todo
One comment on the todos:
- border-collapse is both important and difficult. I am still fiddling 
with
details of the spec. I suggest ugrading the priority. Not supporting
border-collapes yields ugly output.
What I forgot to say is that I think we should do an initial release of FOP 
after doing just High priority TODO items.
Yes, ugly output can be caused without border collapse, but yet RenderX's XEP 
doesnt have border collapse,
so I dont see an immediate need for it. After all, output only looks ugly if 
you specify borders on every cell edge,
with careful writing of the FO, the output can still look good without border 
collapse.

Well, unfortunately not so much spare time, but as I said, doing it
alone really, really helps. And I very much tried to aggregate as
much spare time as possible into full dev-only days. That helps, too.
With the same background, most of you committers could have done the
same. If you look at it, most successful projects initially had
1 or 2 people at the start who did the core work, and then others
joined to make it complete. If I had joined the redesign team, FOP
wouldn't be much farther than it is now, because most of my time
would have gone to discussions, which in turn would also have taken
up other committer's time.
Perhaps, but perhaps not. As long as you dont make major changes, then its 
possible to proceed without seeking group consent on every little item. Thats 
what I'm trying to do. Work towards a working layout a bit at a time using the 
existing redesigned framework.

What I *can* offer to contribute is discussion about the FO spec or about
implementing PS oder PDF output. This is a concern that we probably share
and that needs discussion in any case. However, for actual implementation
discussions I feel a little reluctant. If my pet project becomes a product
in the future, we will have the same issues coming up here that we had 
with
the RenderX guy speaking up here recently. This is not what I want - 
though
I think what he did was perfectly ok, well-meaning and to be applauded. If
I recall correctly, the uproar was resolved, the RenderX guy got his 
deserved
apology, but the consensus was that the FOP code should be kept clean 
from
competitor's code or even ideas. If I remember that correctly and this 
still
stands, then I would rather not discuss algorithms here.
Fair enough. That was an unfortunate affair, and one I'm keen not to repeat.
Chris



cyrillic

2004-05-18 Thread Baron Moenghausen
Hello!
What wrong with pdf made with cyrillic KOI8-r?


border-collapse WAS: Re: ANN: FOray

2004-05-18 Thread arnd . beissner
Chris Bowditch [EMAIL PROTECTED] wrote on: 18.05.2004 14:31:39:

 What I forgot to say is that I think we should do an initial release of 
FOP 
 after doing just High priority TODO items.

Ok, that changes things, of course.

 Yes, ugly output can be caused without border collapse, but yet 
RenderX's XEP 
 doesnt have border collapse,
 so I dont see an immediate need for it. After all, output only looks 
ugly if 
 you specify borders on every cell edge,
 with careful writing of the FO, the output can still look good without 
border 
 collapse.

True. Well, partially so. If you have, for example, tables with small 
fonts
and lots of narrow columns and horizonal space is scarce, then it gets
increasingly difficult to create good-looking table borders between 
columns
without border-collapse. Maybe my focus is shifted a little too much on 
the
actual problems that I have with my customer's requirements.

Also, in my formatter, I want to implement the collapsing model early, 
because
it's default in FO and because I want to get everything out of the way 
that
I don't have an immediate solution for. Makes me nervous otherwise.

As for FOP, ok, I do agree that getting a formatter out that is at least 
as
good as 0.20.5 may take priority.

Bye,

Arnd
-- 
Arnd Beißner
Cappelino Informationstechnologie GmbH
Bahnhofstr. 3, 71063 Sindelfingen, Germany
Tel.: +49-7031-763863-11, Fax: +49-7031-763863-99
Mobile: +49-173-3016917






Chris Bowditch [EMAIL PROTECTED] schrieb am 18.05.2004 
14:31:39:

 [EMAIL PROTECTED] wrote:
 
  Chris Bowditch [EMAIL PROTECTED] wrote on 18.05.2004 
12:03:33:
  
 This is very true, I also have the same concerns, which is why I have 
 set out 
 some simple objectives that must be met before the redesign is ready 
for 
  an initial release. See here:
 
 http://xml.apache.org/fop/design/layout.html#status-todo
  
  One comment on the todos:
  
  - border-collapse is both important and difficult. I am still fiddling 

  with
  details of the spec. I suggest ugrading the priority. Not supporting
  border-collapes yields ugly output.
 
 What I forgot to say is that I think we should do an initial release of 
FOP 
 after doing just High priority TODO items.
 Yes, ugly output can be caused without border collapse, but yet 
RenderX's XEP 
 doesnt have border collapse,
 so I dont see an immediate need for it. After all, output only looks 
ugly if 
 you specify borders on every cell edge,
 with careful writing of the FO, the output can still look good without 
border 
 collapse.
 
  Well, unfortunately not so much spare time, but as I said, doing it
  alone really, really helps. And I very much tried to aggregate as
  much spare time as possible into full dev-only days. That helps, too.
  With the same background, most of you committers could have done the
  same. If you look at it, most successful projects initially had
  1 or 2 people at the start who did the core work, and then others
  joined to make it complete. If I had joined the redesign team, FOP
  wouldn't be much farther than it is now, because most of my time
  would have gone to discussions, which in turn would also have taken
  up other committer's time.
 
 Perhaps, but perhaps not. As long as you dont make major changes, then 
its 
 possible to proceed without seeking group consent on every little item. 
Thats 
 what I'm trying to do. Work towards a working layout a bit at a 
timeusing the 
 existing redesigned framework.
 
  What I *can* offer to contribute is discussion about the FO spec or 
about
  implementing PS oder PDF output. This is a concern that we probably 
share
  and that needs discussion in any case. However, for actual 
implementation
  discussions I feel a little reluctant. If my pet project becomes a 
product
  in the future, we will have the same issues coming up here that we had 

  with
  the RenderX guy speaking up here recently. This is not what I want - 
  though
  I think what he did was perfectly ok, well-meaning and to be 
applauded. If
  I recall correctly, the uproar was resolved, the RenderX guy got his 
  deserved
  apology, but the consensus was that the FOP code should be kept 
clean 
  from
  competitor's code or even ideas. If I remember that correctly and this 

  still
  stands, then I would rather not discuss algorithms here.
 
 Fair enough. That was an unfortunate affair, and one I'm keen not to 
repeat.
 
 Chris
 
 



Re: cyrillic

2004-05-18 Thread Chris Bowditch
Baron Moenghausen wrote:
Hello!
What wrong with pdf made with cyrillic KOI8-r?
Hello,
sorry but I dont understand your question. Could you rephrase it and maybe 
elaborate.

Thanks,
Chris



RE: Table processing question - follow-up

2004-05-18 Thread Andreas L. Delmelle
 -Original Message-
 From: Chris Bowditch [mailto:[EMAIL PROTECTED]


Hi Chris,

snip /
 This makes sense - what effect would you expect width on table
 cell to have? I maybe missing something, but the width is
 derived from table column and cant be overridden for a single cell.


Indeed, but the columns can be absent in the source FO. In which case
they're actually to be considered present, and their widths are determined
by the cells in the first row (--or, but I didn't dare consider that
possibility just yet, in case of auto-layout, by the cell 'in' that column
that has the content with the largest width).

snip /

 On the whole a very well thought out idea. I dont want you to think I'm
 discouraging you. You have answered my initial concerns, so why
 dont you go ahead and make the changes locally and then create a patch for
 review. It will be easier to discuss pros/cons in more depth by looking at
the patch file.


That was what I meant by 'Now, back to work' :)
IOW: expect a patch-proposal for this one of the coming days...


Cheers,

Andreas



RE: Table processing question - follow-up

2004-05-18 Thread arnd . beissner
Andreas L. Delmelle [EMAIL PROTECTED] wrote on 18.05.2004 
18:09:15:

 Indeed, but the columns can be absent in the source FO. In which case
 they're actually to be considered present, and their widths are 
determined
 by the cells in the first row (--or, but I didn't dare consider that
 possibility just yet, in case of auto-layout, by the cell 'in' that 
column
 that has the content with the largest width).

As far as I understand the spec, table-column elements with a column-width
property are mandatory for tables with fixed table layout.

From the spec: 7.26.9.:
The column-width property must be specified for every column, unless
the automatic table layout is used.

To me, this means not only that column-width is mandatory in fixed-layout 
*if*
table-column elements exist, but also that a table-column needs to exist 
for
each column. Since they don't talk about a derived trait, but
of a column-width property that also isn't inherited, I can only conclude 
that
must be specified for every column means:

1. In fixed-layout, there MUST be a table-column element for each column.

AND 

2. In fixed-layout, the column-width property must be set in all 
table-column elements.

Arnd
-- 
Arnd Beißner
Cappelino Informationstechnologie GmbH
Bahnhofstr. 3, 71063 Sindelfingen, Germany
Tel.: +49-7031-763863-11, Fax: +49-7031-763863-99
Mobile: +49-173-3016917



RE: Table processing question - follow-up

2004-05-18 Thread Andreas L. Delmelle
 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]

Hi Arnd,

snip /
 As far as I understand the spec, table-column elements with a column-width
 property are mandatory for tables with fixed table layout.


*Vry* good point!

Yup, got me there... I was mixing the two layout modes (a bit too focused on
CSS2).

Would this mean that it's actually (a bit) easier than it looks? I'll have
to reconsider...


Thanks for this effort-saving remark!

Cheers,

Andreas



Re: ANN: FOray

2004-05-18 Thread Simon Pepping
On Tue, May 18, 2004 at 09:16:23AM +0100, Chris Bowditch wrote:
 Victor Mote wrote:
 
 Dear FOP Developers:
 
 Hi Victor - welcome back. I was saddened by your decision to leave FOP.
 
 After considering a return to FOP development, and briefly discussing the
 pros and cons with those whom I consider to be the FOP development leaders,
 I have decided to partially fork FOP into a sourceforge project called
 FOray:
 http://foray.sourceforge.net/
 
 Ive taken a look and it all seems to make sense.

I agree.

Goal 1. provide a place where enhancements can continue to be made to
the working branch of FOP.

I sympathize with this goal. The position of the FOP team over the
past years w.r.t. the maintenance code is rather strict. It sort of
disallows commits to the maintenance branch, even if non-team members
come up with a patch. In view of the long time it takes to release a
usable version of the development code, it may be wiser to relax this
policy, and cooperate on improvements to the maintenance code.
 
2. modularize FOP's design

 I do understand why you have decided to start FOray. Although 
 modularisation is a nice feature, I dont see it as a key goal for FOP. 
 FOP's primary objective is to achieve a working layout. The main things 
 needed to achieve this are listed here:
 
 http://xml.apache.org/fop/design/layout.html#status

I sympathize with this goal as well. I realize that that is not quite
in line with my reaction to Glen's recent patch. I agree with Chris
and Glen that it is not currently a key goal for FOP. And since we do
not have a strong proponent and architect of a modular design, there
is little point in leaving bits and pieces in the code. But in the
longer run, I consider putting the FOP code in a modular structure as
a desirable thing.

Meanwhile I will keep adding my small contribution to the layout
system of the development code.

Regards, Simon

-- 
Simon Pepping
home page: http://www.leverkruid.nl



RE: ANN: FOray

2004-05-18 Thread Victor Mote
Simon Pepping wrote:

 2. modularize FOP's design
 
  I do understand why you have decided to start FOray. Although 
  modularisation is a nice feature, I dont see it as a key 
 goal for FOP.
  FOP's primary objective is to achieve a working layout. The main 
  things needed to achieve this are listed here:
  
  http://xml.apache.org/fop/design/layout.html#status
 
 I sympathize with this goal as well. I realize that that is 
 not quite in line with my reaction to Glen's recent patch. I 
 agree with Chris and Glen that it is not currently a key goal 
 for FOP. And since we do not have a strong proponent and 
 architect of a modular design, there is little point in 
 leaving bits and pieces in the code. But in the longer run, I 
 consider putting the FOP code in a modular structure as a 
 desirable thing.

If you guys are as close to having LayoutManager working as has been stated
in this thread (and I hope you are), then I agree that modularization would
not be the top priority. It is not an end in itself, but a means to an end.
When FOP was internally forked 2 1/2 years ago, the only thing that needed
to be rewritten from scratch was layout, but the whole project was forked
instead. Modularization would have prevented that, and allowed releases to
continue even though a chasm was being created and filled simultaneously.
The whole nature of refactoring anything is that you do it before you do the
real work. That is where FOray starts.

The real question on modularity was never whether it should be a priority,
but whether it hurt the project. On open-source projects, priorities are
really set by each individual. You fix the thing that hurts the most at the
moment, and that might be different for each developer. If I am working on
A, and you are working on B, as long as your work on B isn't bad for the
project as a whole, I have no right to complain. Nobody has yet put forth a
good argument against modularization, but it was opposed anyway. So now
we'll have a chance to test it in the real world.

Consider this -- what if the XSL spec hadn't been split into two pieces?
Would the part that we call Xalan today have its development stalled because
layout is stalled? If XSL-T and XSL-FO were all in one spec, would we be
smart enough to break the implementation into the two projects that it is in
today? All we are really talking about here is the principle of
encapsulation writ large.

Victor Mote



RE: ANN: FOray

2004-05-18 Thread arnd . beissner
Victor Mote [EMAIL PROTECTED] wrote on 18.05.2004 22:12:45:

 The real question on modularity was never whether it should be a 
priority,
 but whether it hurt the project. On open-source projects, priorities are
 really set by each individual. You fix the thing that hurts the most at 
the
 moment, and that might be different for each developer. If I am working 
on
 A, and you are working on B, as long as your work on B isn't bad for the
 project as a whole, I have no right to complain. Nobody has yet put 
forth a
 good argument against modularization, but it was opposed anyway. So now
 we'll have a chance to test it in the real world.

In my formatter, I have implemented modularized layout. From the start, I
was sceptical, and I was indeed tempted several times to throw the concept
out of the window because it got in the way, but in the end it was always
possible to maintain the separation of concerns between different kinds
of layouters (BlockArea, Table, Page, and List for example) even though
the interaction is admittedly complex. And, yes, it's sometimes hard to
follow the logic by staring just at the code - which I prefer to using
debuggers.

To summarize my impressions from this:
1. I would do it again this way.

2. Maintaining clean separation of concerns *forced* me to redesign my
layouter interfaces several times when I added new functionality, but
I gained an implementation that I still understand clearly in its entirety
even I cannot work on it for a week.

3. The only place where I have difficulties after some time off is my
BlockAreaLayouter which is one very large chunk of code. Maybe it's even
worth factoring out a LineAreaLayouter, though I'm not sure of it - the
interaction is really tight.

4. It's too early to estimate how much modularized layout will hurt
performance in the end. My gut feeling is: not much, and it's probably
wort it.

So, from my own experience I can only encourage you to go forward with
your plan. For me, it worked so far. Let's see if the XSL rec turns
up more nasty surprises...

Bye,

Arnd
-- 
Arnd Beißner
Cappelino Informationstechnologie GmbH


Re: ANN: FOray

2004-05-18 Thread Peter B. West

[EMAIL PROTECTED] wrote:
In my formatter, I have implemented modularized layout. From the start, I
was sceptical, and I was indeed tempted several times to throw the concept
out of the window because it got in the way, but in the end it was always
possible to maintain the separation of concerns between different kinds
of layouters (BlockArea, Table, Page, and List for example) even though
the interaction is admittedly complex. And, yes, it's sometimes hard to
follow the logic by staring just at the code - which I prefer to using
debuggers.
To summarize my impressions from this:
1. I would do it again this way.
2. Maintaining clean separation of concerns *forced* me to redesign my
layouter interfaces several times when I added new functionality, but
I gained an implementation that I still understand clearly in its entirety
even I cannot work on it for a week.
3. The only place where I have difficulties after some time off is my
BlockAreaLayouter which is one very large chunk of code. Maybe it's even
worth factoring out a LineAreaLayouter, though I'm not sure of it - the
interaction is really tight.
4. It's too early to estimate how much modularized layout will hurt
performance in the end. My gut feeling is: not much, and it's probably
wort it.
So, from my own experience I can only encourage you to go forward with
your plan. For me, it worked so far. Let's see if the XSL rec turns
up more nasty surprises...
Arnd,
I think you are talking about different modularisation contexts here. 
You might want to clarify this part of the discussion with Victor.

Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Incremental vs rewrite

2004-05-18 Thread Peter B. West
The thing that immediately strikes me about Arnd's development is that 
it seems to blow away the theory that incremental modification of an 
existing code base is always the better way to go.  IIUC, Arnd wrote a 
formatter from scratch (except for some fo the font handling) in two years.

Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: Incremental vs rewrite

2004-05-18 Thread Clay Leeds
Peter B. West wrote:
The thing that immediately strikes me about Arnd's development is that 
it seems to blow away the theory that incremental modification of an 
existing code base is always the better way to go.  IIUC, Arnd wrote a 
formatter from scratch (except for some fo the font handling) in two years.

Peter
It would be interesting to compare some RenderX example output between 
the two^H^H^H three (ArndFO, fop-0.20.5, fop-1.0Dev)... I suspect there 
may be other significant differences as well, with performance, heap, etc.

Then again, the more I think about it, the more it seems like Peter's 
train-of-thought RE: FOP development destabilization. 'We' could be 
working on FOP development, but instead we're talking about Arnd's (and 
Victor's) development efforts (I have every reason to believe it is 
everything he says it is), and discussing how the grass may be greener 
on the other side of the fence.

Web Maestro Clay