Re: [Fwd: Re: cvs commit: xml-fop/src/java/org/apache/fop/apps CommandLineOptions.java Fop.java]

2004-04-12 Thread Peter B. West
Glen,

I put in a vote for Simon.  The language thing is confusing, I know. 
There have been occasions on which the Austrian flag has been flown, or 
the Austrian National Anthem been played, somewhat inappropriately.  But 
it's en_AU over here; AU because we got in first.

Peter

Glen Mazza wrote:
Also while you've been gone:
-- Joerg and Chris are on vacation. -- Simon is currently running for 
committer [2]--bitte wählen!!!  (hmmm...or is it the *Austrians* that 
speak German?  I keeping getting the two mixed up... ;)
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: Fontconfig

2004-04-12 Thread Peter B. West
Jeremias Maerki wrote:

If that is the case (a big if) might we not be better to move to a more
generic form, with translation into each particular form of font
specification?


I can't tell. I don't see much benefit because the current system
already provides most of what FOP needs. A total rewrite may provide
more flexibility on the long run but will mean a lot of work which is
problematic in FOPs current state.
It should be fairly simple to add the two most important missing features
to FOP font handling: on-the-fly font discovery and font aliases.
I was looking for the correspondence to the Rec (and CSS2) handling of 
fonts.  The generic family set from the Rec includes serif, sans-serif, 
cursive, fantasy, and monospace.  These are the fall-backs.  The 
individual family-names are invoked by the user, possibly in blissful 
ignorance of what fonts are actually available to a particular renderer. 
 According to the Rec, it is the User Agent's job to build a font 
database with a full set of information about the fonts it has 
available, including their family-name and the generic family to which 
they belong.

The parameters for font selection are
font-family (in both the broad and specific senses given above),
font-style (normal, italic, oblique, backslant),
font-variant (normal or small-caps),
font-weight (normal, bold, bolder, lighter, 100, 200, 300, 400, 500, 
600, 700, 800, 900),
font-stretch (normal, wider, narrower, ultra-condensed, extra-condensed, 
condensed, semi-condensed, semi-expanded, expanded, extra-expanded, 
ultra-expanded) and
font-size (including xx-small, x-small, small, medium, large, x-large, 
xx-large).

It seems to me that, at some point, we have to map from this set of 
properties to the font characteristics of the renderer in question.

Is this what you mean by on-the-fly font discovery and font aliases?

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


Re: [Fwd: Re: cvs commit: xml-fop/src/java/org/apache/fop/apps CommandLineOptions.java Fop.java]

2004-04-12 Thread Peter B. West
John Austin wrote:
On Mon, 2004-04-12 at 04:33, Peter B. West wrote:

Glen,

I put in a vote for Simon.  The language thing is confusing, I know. 
There have been occasions on which the Austrian flag has been flown, or 
the Austrian National Anthem been played, somewhat inappropriately.  But 
it's en_AU over here; AU because we got in first.


And the Austrians don'd call it Austria ... Isn't it Osterreich 
Hmmm... Yes, of course.  In that case, we had better claim OZ as well, 
and the Osterreichers can have OS.

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


Re: Messages to fop-dev black-holed?

2004-04-11 Thread Peter B. West
Noel,

Where do we find out what's involved?

Peter

Noel J. Bergman wrote:
Only Dw.  Looking at http://xml.apache.org/fop/team.html, I'd guess that he
is doing it only because no one else is.  Personally, I'd like to see at
least two active members of the team handling moderation for the list.
From: Peter B. West [mailto:[EMAIL PROTECTED]

Thanks Noel.  Mailbox full of garbage, no doubt.  Thank you Bill.  I
shall re-subscribe.  Do we have a moderator?
Noel J. Bergman wrote:

Is it possible that my messages to fop-dev are being black-holed?


They are pending a moderator.  You are not currently subscribed to
fop-dev.
your e-mail address was removed due to bouncing.
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: The new logging framework and Java 1.4 logging

2004-04-11 Thread Peter B. West
Glen,

As I read the docs, I can have a Log4J, a JDK1.4, or a SimpleLog, 
depending on 1) my property file or service discovery setup, if any, or 
the default factory discovery method.  The default method 
(LogFactoryImpl) will
1) give me a Log4J logger, if available
2) give me a 1.4 Logger, if available
3) give me a SimpleLog.

If I get the default SimpleLog, which implements Log, I can have 
SetLevel, but if I use the 1.4 logger, I do not have access to the 
corresponding 1.4 facility.  This looks like an oversight in the 
definition of the 1.4 logger.  I'll subscribe to the Commons lists and 
check this.

Peter

Glen Mazza wrote:
I think it's just setLevel() that you're looking for:
http://jakarta.apache.org/commons/logging/api/org/apache/commons/logging/impl/SimpleLog.html 

Peter B. West wrote:
I see that you have the move to commons-logging.  I was encouraged by
this because of the support for 1.4 logging, which I have started to use
in alt-design.  When I looked at modifying the existing alt-design code
to use common-logging, however, I could find no way to set the logging
level on an existing logger, as there is, e.g., in SimpleLog.  I can
specify a default level in commons-logging.properties (I assume - I
haven't tried it), but if I want to dynamically change the level in
response to the options with the existing implementation, I'm stumped.
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: The new logging framework and Java 1.4 logging

2004-04-11 Thread Peter B. West
Glen,

I noticed that, but it seems to rather defeat the purpose of having a 
common wrapper in the first place.  It means that at various points in 
my code, I have to drop out and start looking at the particular 
implementation.  I suppose it is still an advantage, in that *most* of 
the code will still be able to log using common calls, but it is not tidy.

Peter

Glen Mazza wrote:
There appears a getLogger() that will take you to the native 
java.util.logging instance:
http://jakarta.apache.org/commons/logging/api/org/apache/commons/logging/impl/Jdk14Logger.html 

 From there, you should be able to call the native setLevel() of the 1.4 
logger:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html#setLevel(java.util.logging.Level) 
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: The new logging framework and Java 1.4 logging

2004-04-11 Thread Peter B. West
There is a release candidate for commons-logging v1.4, which includes 
support for Lumberjack logging, i.e., Java1.4 style logging for 1.3 
environments.

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


Re: [VOTE] Simon Pepping for Committer

2004-04-11 Thread Peter B. West
+1
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: The new logging framework and Java 1.4 logging

2004-04-11 Thread Peter B. West
One of the virtues of 1.4 logging is that (subject to security policies, 
I think) the level can be set dynamically.  If I run a *n*x shell 
script, I can arrange to catch signals and, among other things, reset 
the logging level on the fly.  Java logging should offer the same 
capability, especially in embedded situations.  If you are getting some 
strange results from production facility, it would be useful to be able 
to start increasing the logging level in order to get more information, 
and to turn it back down when you have what you want.

1.4 loggers are typically application specific, and will generally be 
named accordingly, e.g., org.apache.fop.Fop. This also allows you to 
have loggers for separate components - org.apache.fop.render.awt, and 
you can fine-tune your logging by package, class or even method.  That's 
my reading, anyway.

Peter

Glen Mazza wrote:
For some reason interface Log (common to all the logging types) does not 
have a setLevel()--somehow I think that was intentional, however.  
After all, should FOP actually be setting the logging level?  For 
*embedded use*, that is done by the user--they choose the logger and the 
level they desire, and feed it to FOP via Driver.setLogger().  I'm not 
sure FOP should be altering that level, because that logger could be 
used for many other things in the user's application.  If there's 
messages they don't receive that they actually want, they should adjust 
the logger on their end accordingly.  (OTOH, for command-line usage, 
this may be another story.)
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


[Fwd: Re: cvs commit: xml-fop/src/java/org/apache/fop/apps CommandLineOptions.java Fop.java]

2004-04-10 Thread Peter B. West
Resending, as I had been un-subscribed due to mail bounces.

Glen et al,

I have been severely distracted over the past couple of weeks, and I
seem to have lost a good deal of mail in the process.  Can you give me a
reference to the patch.  Sorry I didn't get around to replying to a
question of yours about the effects on alt-design integration of a patch
you wanted to apply.
Peter

[EMAIL PROTECTED] wrote:
gmazza  2004/04/08 20:05:40

  Modified:src/java/org/apache/fop/apps CommandLineOptions.java
Fop.java
  Log:
  3/4ths of Simon's patch committed at the moment, with minor changes
  made.
  
  Revision  ChangesPath
  1.17  +19 -37xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java
  
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Fontconfig

2004-04-10 Thread Peter B. West
Jeremias et al,

In connection with our recent discussions concerning font handling, I
looked at the contentious fontconfig system driven by Keith Packard.
The user documentation at
http://pdx.freedesktop.org/~fontconfig/fontconfig-user.html includes:
quote
Font Properties
While font patterns may contain essentially any properties, there are
some well known properties with associated types. Fontconfig uses some
of these properties for font matching and font completion. Others are
provided as a convenience for the applications rendering mechanism.
  PropertyTypeDescription
  --
  family  String  Font family name
  style   String  Font style. Overrides weight and slant
  slant   Int Italic, oblique or roman
  weight  Int Light, medium, demibold, bold or black
  sizeDouble  Point size
  aspect  Double  Stretches glyphs horizontally before hinting
  pixelsize   Double  Pixel size
  spacing Int Proportional, monospace or charcell
  foundry String  Font foundry name
  antialias   BoolWhether glyphs can be antialiased
  hinting BoolWhether the rasterizer should use hinting
  verticallayout  BoolUse vertical layout
  autohintBoolUse autohinter instead of normal hinter
  globaladvance   BoolUse font global advance data
  fileString  The filename holding the font
  index   Int The index of the font within the file
  ftface  FT_Face Use the specified FreeType face object
  rasterizer  String  Which rasterizer is in use
  outline BoolWhether the glyphs are outlines
  scalableBoolWhether glyphs can be scaled
  scale   Double  Scale factor for point-pixel conversions
  dpi Double  Target dots per inch
  rgbaInt unknown, rgb, bgr, vrgb, vbgr,
  none - subpixel geometry
  minspaceBoolEliminate leading from line spacing
  charset CharSet Unicode chars encoded by the font
  langString  List of RFC-3066-style languages this
  font supports
/quote
I have also, as I noted previously, looked briefly at the way fonts are
defined in Java.  Would I be correct in surmising that the current
manner of defining fonts is derived from Adobe's methods for PDF and PS?
If that is the case (a big if) might we not be better to move to a more
generic form, with translation into each particular form of font
specification?
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


The new logging framework and Java 1.4 logging

2004-04-10 Thread Peter B. West
Glen,

I see that you have the move to commons-logging.  I was encouraged by
this because of the support for 1.4 logging, which I have started to use
in alt-design.  When I looked at modifying the existing alt-design code
to use common-logging, however, I could find no way to set the logging
level on an existing logger, as there is, e.g., in SimpleLog.  I can
specify a default level in commons-logging.properties (I assume - I
haven't tried it), but if I want to dynamically change the level in
response to the options with the existing implementation, I'm stumped.
Does anyone know how to do this?

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


Web Start

2004-03-18 Thread Peter B. West
Fops,

Does anyone have any detailed knowledge of Web Start?  It occurred to me 
that it may be a way to resolve some of the licensing issues we (and 
other projects) are running into.  Any educated thoughts on the matter?

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


Another licensing issue

2004-03-18 Thread Peter B. West
Jeremias et al,

I would like ti use the Unicode Character Database as a source for names 
of characters.  At the moment, ...fonts.Glyphs contains a static table 
of String pairs containing the Unicode character and its name, 
respectively.  The names are not the Unicode Character Database names, 
and I thought it might be a good idea if they were.  However, there 
seems to be no way to get the canonical UCD name from Java, although 
java.lang.Character and java.lang.Character.UnicodeBlock have extensive 
support for various characteristics of the UCD.

The problem with deriving the names from the UCD is another one of 
licensing.  Any ideas about how we might approach this?

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


Re: Web Start

2004-03-18 Thread Peter B. West
Glen,

I was thinking that with Web Start, we would not need to hold 
contentious files in the FOP repository.  All we need is a reliable 
location for them, with appropriate verification.  Then the process of 
installing FOP can transparently (or with loud warnings) include files 
from non-Apache sources.

Peter

Glen Mazza wrote:
I didn't know about Web Start--looks very interesting [1], but I don't 
see where this would help FOP w.r.t. licensing--we would still be 
redistributing L/GPL and other license-incompatible software, even if 
automated by Web Start, correct?

Glen

[1] http://www.javaworld.com/javaworld/jw-07-2001/jw-0706-webstart.html
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: Antwort: Web Start

2004-03-18 Thread Peter B. West
Arnd,

Keeping in mind that I am utterly ignorant of a lot of these issues, and 
am tossing straws in the wind, see comments below...

[EMAIL PROTECTED] wrote:
Hi Peter,

we use Web Start in a customer project. It's a good solution to deploy 
Java applications as a JAR file, even with native code and such.

Some caveats:
-The security manager can get in your way if you want things like 
filesystem access. You have to sign your jar and each user has to accept 
your signature once per application.
If the once per application meant once per Fop installation, that 
would be OK.  Can the user allow us file system access once the 
signature is accepted?

- You cannot catch uncaught exceptions in JNLP applications. This is 
useful for GUI applications, so you can catch and for example log these 
exceptions. With JNLP, AWT/Swing creates its own thread group so you're 
out of luck there. Maybe not an issue for fop.
I'd have to think about the implications of this.  Drawing a blank at 
the moment.

- Only comes with JRE 1.4 by default, and older WebStart version are 
quite buggy in my experience.
This is a show stopper while we are supporting 1.3.

So far I cannot see how exactly WebStart would be useful for FOP 
regarding licensing stuff, because your sources for parts like 
hyphenation libs still need to be JNLP jars, so you still need someone 
to actually provide these jars and thus take responsibility regarding 
legal issues. As for as I see it, you don't gain anything.
Let's say, for example, that we approach a TeX distribution with a 
request that we be allowed to download the TeX hyphenation files, as 
modified for use with Fop.  If they are OK with that, we generate a jar 
file with the hyphenation files, including the original copyright (and 
possibly notes about the conversion being done under the auspices of 
Apache) and drop it on the CTAN servers.  Alternatively, we simply jar 
up the original TeX files, and include a conversion process in the 
installation.

The files are not coming from an Apache server, and they do not carry 
the Apache license (except for perhaps a Parts copyright... notice). 
It is a convenience to our users that we download such files 
transparently from another source on installation.

But if you have something more concrete in mind, please feel free ask 
more concrete WebStart questions.
Thanks Arnd.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: Another licensing issue

2004-03-18 Thread Peter B. West
Jeremias,

The penny just dropped about the names of the Unicode characters; they 
are the Adobe Glyph List and the Zapf Dingbats Glyph List names of a 
subset of Unicode characters.

Won't we at some stage need to generalise support for a wider set of 
glyphs?  Or is that entirely a matter for user-defined fonts?  Looks as 
though I'll have to look at user fonts.

Peter

Peter B. West wrote:
Jeremias et al,

I would like ti use the Unicode Character Database as a source for names 
of characters.  At the moment, ...fonts.Glyphs contains a static table 
of String pairs containing the Unicode character and its name, 
respectively.
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


InputHandler - re baseURL commits

2004-03-16 Thread Peter B. West
Glen at al.

One of the things I noticed when I was looking for ways to bring the 
apps classes of alt-design and HEAD closer together was that the 
createParser method seemed to belong in InputHandler, because it is 
required by both subclasses.  Any reason why it isn't there?

Peter

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


Re: InputHandler - re baseURL commits

2004-03-16 Thread Peter B. West
Glen Mazza wrote:
(Hmmm...I'm supposed to be learning Cocoon right now,
but am already suffering FOP-withdrawal.  Apache's got
me good...  ;)
[just removed the namespace-prefixes issue you were
mentioning earlier, btw.]
I noticed that.

FOFileHandler.createParser() is just a simple static
function that generates a parser.  It can be placed in
any class, and is not something that needs to be 
inherited. (Actually, the hyphenation class'
PatternParser also creates a parser, although it could
use the one in FOFileHandler as well.)

InputHandler has a abstract getParser() method which
is used by Driver et. al.  This method *does* need to
be overridden in each of the base classes, and of
course it is.  

It just so happens, but is not necessarily required,
that the current implementation of XSLTInputHandler
uses the createParser() of FOFileHandler for its
implementation of getParser().  This is just an
implementation detail. 

XSLTInputHandler's getXMLFilter() (called by its
getParser()):

// Create an XMLReader.
XMLReader parser = FOFileHandler.createParser();

I preferred the direct reference to the FOFileHandler
method (as opposed to simple inheritance) for reasons
of documentation:  this way, we're clearly stating
that XSLTInputHandler is using FOFileHandler's parser
as part of its XMLFilter.
(Also, at the time I was doing this, I was planning on
having a DOMInputHandler--but was running into
difficulty doing so--that I believe would have caused
a createParser() to not have been relevant in the base
class.)
Glen,

Thanks for the explanation, and thanks for surfacing.

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


Re: Fonts and Document

2004-03-16 Thread Peter B. West
Jeremias,

See below...

Jeremias Maerki wrote:
The font subsystem is still far from finished. It's still quite complex
to understand, unnecessarily so IMO. My font source idea still need to
be implemented... Let's see if I can pull together some connectors.
I agree that it is complex to understand.

As you've seen the Document class is a central class in font handling.
It currently (not in my ideas) provides direct access to font metric
information and to the list of fonts actually used in a rendering run 
(we don't always want to embedd them all). The setup of all fonts is
done in the FontSetup class where the base 14 fonts are defined.
Additionally, custom fonts are added there. But the custom fonts are
mostly renderer-dependant, so at the moment, some font setup also takes
place in PDFRenderer for example. See PDFRenderer.configure (which
can build custom font information using an Avalon Configuration object
using a helper method from FontSetup) and PrintRenderer.setupFontInfo
which actually triggers the font setup. The fonts get registered with
the Document object and subsequently is available to the layout engine.
One of the complications is that Document wears so many hats.  I see a 
Document object referred to by the variable fontInfo in one place, and 
by the variable foTreeControl in another.  Document implements 
FOTreeControl, FOTreeListener and AreaTreeControl, so the foTreeControl 
variable looks deliberate, but the fontInfo may be a hangover.  In any 
case, wouldn't it be clearer to have such functions realized in separate 
objects which are created and managed by Document?

Most font classes in the fonts package deal with the different font
formats (single byte und unicode, base und custom...). There's also a
difference in audience: The layout needs different information (metrics
in particular) than the renderers (primarily information for using and
embedding the font in the target format.
This is my first close look at fonts, and I have browsed the 
java.awt.Font and java.awt.FontMetrics classes and the java.awt.font 
package.  In itself, this bundle of interfaces and classes is complex, 
but the nub of it seems to be the 2D font classes.  At first glance, 
there is a close connection between fonts, glyphs, strings, text 
attributes and line layout, all covered in these classes.

I am wondering if we cannot use the Java model as a basis for FOP's line 
 area layout API.  The discussion in 
http://java.sun.com/j2se/1.4.2/docs/guide/2d/spec/j2d-fonts.html#wp66677 
contains a discussion of implementing a custom text layout mechanism to 
enable features like kerning and ligatures.

My intention is to develop the initial alt-design layout using AWT 
rendering.  I assumed that I could get usable testing output more 
quickly that way, without having to delve into PDF.  My comments may 
simply be conditioned by that perception.  I'm not talking about 
adopting 1.4 (and 1.5 when it is stable), but using the API model where 
it provides appropriate methods for laying out text.  One implication of 
that would be a fairly intricate interaction between all the phases of 
FOP, involving the font details provided by the renderer.

However, I recall that Hansuli Anderegg has been working along these 
lines for some time now.

Btw, what search keys should I use to recover details of your font model 
from the archive, assuming there are differences between your model and 
the wiki?

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


Re: temporarily inactive

2004-03-14 Thread Peter B. West
Thanks for the support Ali.  Are you a Fop user or a potential developer?

Peter

Ali farahani wrote:
Oh guys! This is some sort of Matrix right? I mean, is there any other
world rather than this(Virtual)!?
I hope Glen lead us to that world!
Best Regards
One of your fans
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: temporarily inactive

2004-03-13 Thread Peter B. West
Glen,

Jenni is pleased to hear that you have a life in the non-virtual (read 
real) world.  Wishes the same for me.  Enjoy yourself.  Come back soon.

Peter

Glen Mazza wrote:
Team,

I'll be taking a few weeks off the project, there's some things I want 
to study and get out of the way right now.  I'll be back to coding soon!
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: namespace-prefixes

2004-03-04 Thread Peter B. West
Glen Mazza wrote:
--- Peter B. West [EMAIL PROTECTED] wrote:

...

That is, I would turn allow the namespace-prefixes
feature to remain in 
its default 'false' state, but make sure the parser
is namespace aware. 
 I don't know that there is any reason for us to
collect prefixes, 


This is somewhat outside my knowledge, but one
difference, I believe, between HEAD and Alt-Design is
the former's ability to have user-configured, run-time
add-in element mappings.  (I think we have one for
MathML and another one for something else in our
examples.)  Given that, could that be HEAD's reason
for needing to collect prefixes?
I don't think so.  Prefixes are a shorthand convenience - they must be 
supported by underlying full namespaces.  Prefixes are unstable, in that 
the same3 prefix can signify completely different namespaces at 
different points in the file, IIUC.

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


Re: Wiki Migration and other issues

2004-03-04 Thread Peter B. West
Christian Geisert wrote:
Christian Geisert wrote:

J.Pietschmann wrote:


[..]

Should we wait for the Apache XML reorganization to
complete or should we rush ahead and create out own
Wiki already?


+1 for the new wiki
It has a nicer look, supports XML export and we can have 'commit 
messages' to fop-cvs


Others opinions?

Considering this a strong recommendation from infrastructure
I'd say we migrate to the new wiki (of course if there are no -1s)
There's a tool for automatic converting content from the old wiki
and if this doesn't work I'll volunteer to do it manually.
Ok by me.  From what I've seen on infrastructure@, there may be some 
post-conversion tidying to do.
+1

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


Re: namespace-prefixes

2004-03-04 Thread Peter B. West
Elliotte Rusty Harold wrote:
At 12:56 PM +1000 3/4/04, Peter B. West wrote:

...
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
return factory.newSAXParser().getXMLReader();
...
What I ask on reading this code is why you're using SAXParserFactory at 
all? SAXParserFactory is a Sun class they invented to fill a hole in SAX 
1.0. It's unnecessary in SAX 2.0. SAX2 apps should use XMLReaderFactory 
instead, which has the correct defaults you want in the first place. It 
would look something like this:

   protected static XMLReader createParser() throws FOPException {
try {
XMLReader parser = XMLReaderFactory.createXMLReader();
return parser;
} catch (SAXException se) {
throw new FOPException(Could not find a parser. Make sure the
+  system property is set);
}
  }
That's off the top of my head so it may not compile, and there are ways 
to look for alternative parsers if you don't find one immediately (See 
http://www.cafeconleche.org/books/xmljava/chapters/ch07.html#d0e9994 ) 
but you get the idea.

Elliotte,

I think this might be because the HEAD developers were moving to a JAXP 
implementation, and SAXParserFactory is still in the 1.4 
javax.xml.parsers package, which, AIUI, is what one is supposed to use 
for JAXP-compatible applications.  I don't know much about JAXP, so this 
could be wrong.

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


fop.xconf

2004-03-03 Thread Peter B. West
Fops,

What's the intention for fop.xconf?  Is it to be processed by the user 
agent?  What about user configuration?  Have these things been decided yet?

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


namespace-prefixes

2004-03-03 Thread Peter B. West
Fops,

In HEAD, ///apps/FOFileHAndler.java contains the following:

protected static XMLReader createParser() throws FOPException {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setFeature(
http://xml.org/sax/features/namespace-prefixes;, true);
return factory.newSAXParser().getXMLReader();
} catch (SAXNotSupportedException se) {
throw new FOPException(Error: You need a parser which 
allows the
   +  http://xml.org/sax/features/namespace-prefixes;
   +  feature to be set to true to support 
namespaces, se);

I would be inclined to modify that to:

protected static XMLReader createParser() throws FOPException {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
return factory.newSAXParser().getXMLReader();
} catch (SAXNotSupportedException se) {
throw new FOPException(Error: You need a parser which 
allows the
   +  http://xml.org/sax/features/namespaces;
   +  feature to be set to true to support 
namespaces, se);

That is, I would turn allow the namespace-prefixes feature to remain in 
its default 'false' state, but make sure the parser is namespace aware. 
 I don't know that there is any reason for us to collect prefixes, 
rather than simply allowing the parser to keep track of the namespaces 
in effect and return namespace and local names.  That's what I have done 
in alt-design without any regrets so far.

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


Thanks Jeremias

2004-03-02 Thread Peter B. West
Thanks again, Jeremias, for all of the licensing housekeeping.  I'm 
sorry I didn't get around to giving you a hand with this.  Does anything 
(apart from the hyphenation mess) remain to be done?

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


Re: Newbie Commiter Questions

2004-03-01 Thread Peter B. West
Chris,

I suspect that the problems with SSH2 might be to do with the way Putty 
represents SSH2 keys.  The format of the Putty file is different from 
the openssh format, even though they contain compatible data.  I think 
Putty has an option to import openssh format keys, and I seem to 
remember using this option to set up SSH2 keys that worked between Linux 
and Windows.

Peter

Chris Bowditch wrote:
Jeremias Maerki wrote:

I've had my problems with using SSH2. I finally tried SSH1 and it worked.
I suggest you create a SSH1 key pair and retry with this.


Thanks for the fast response Jeremias. I have managed to get SSH1 working.

There are two ways you can work with putty. Either you create a tunnel
for CVS which has the benefit that the connection is always there as
soon as you have connected to the server.


Yes I'm creating a tunnel with Putty and pointing WinCVS to localhost.

The other way is to use plink which has to build a connection everytime
you access CVS. Select SSH authentication in WinCVS and specify the full
path to plink.exe as SSH client. You need to have Putty Password agent
running for that.
Tell me if you need more info. Good luck!


I have managed to update the team page now. Thanks
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: Preferences

2004-03-01 Thread Peter B. West
Peter B. West wrote:
...
We could address the JVM version issue by wrapping the java.util.prefs 
stuff in org.apache.fop.prefs or ...configuration classes which mimic 
.util.prefs by a thin wrapper around the latter classes, and providing 
for 1.3 compatible versions to be written.  The availability of 1.4 
could easily be tested at run-time, and the appropriate switch set for 
use in org.apache.fop.prefs, reducing the build complexity.
Don't mind me... The build complexity will be same as at present, 
requiring 1.3 and 1.4 components to be shifted in at build time.  The 
passing fantasy about a run-time switch afflicts me every now and then.

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


Re: [VOTE] Clay Leeds for Committer

2004-02-29 Thread Peter B. West
Andreas L. Delmelle wrote:
-Original Message-
From: Glen Mazza [mailto:[EMAIL PROTECTED]
So let me start off the voting: +1.

No need to think this over: +1.
+1
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Preferences

2004-02-29 Thread Peter B. West
Looking at merging in the HEAD options processing into alt-design, I 
took a look at XML-Commons CLI, which seems to tidy up options 
processing quite nicely.

However, I also took another look at both the Properties and Preferences 
APIs.

It seems to me that the current CLI options processing could be replaced 
by a set of command-line property definitions.  This would be more in 
keeping with the assumptions of Java.  One immediate problem is that any 
line-length restrictions would be sooner violated if we were using 
property definitions.  Not being familiar with the requirements of 
application servers and embedded FOP, I can't comment on the 
implications in that environment.

If we do go that way, however, it brings up the issue of java.util.prefs 
again.  It seems to me that a naive implementation of the API could use 
the existing config and userconfig files to provide the system and user 
persistent stores, at least for reading.  java.util.prefs requires that 
the backing store be writable, however, and I don't know how this would 
fit in a server environment.  (This requirement can probably be 
circumvented at run-time by assuming that the backing store becomes 
unavailable after the initial read: prefs is designed to be robust in 
the face of backing-store unavailability.)

We could address the JVM version issue by wrapping the java.util.prefs 
stuff in org.apache.fop.prefs or ...configuration classes which mimic 
.util.prefs by a thin wrapper around the latter classes, and providing 
for 1.3 compatible versions to be written.  The availability of 1.4 
could easily be tested at run-time, and the appropriate switch set for 
use in org.apache.fop.prefs, reducing the build complexity.

For now, I will just drop org.apache.commons.cli in and use it for 
options processing.  What do folks think about these issues?

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


Re: Fwd: ASF Board Summary for February 18, 2004

2004-02-23 Thread Peter B. West
Don't speak too soon, Glen.  I'll  have words to the Board about this. 
If the Board were concerned about the legal ramifications, they would be 
obliged to mandate the removal of author tags.  Why don't they?  Until 
they demonstrate otherwise, I'll assume that the *real* agenda is 
...social issues dealing with collaborative development, and ignore 
the Board's discouragement.

Peter

Glen Mazza wrote:
Score (another) one for Jeremias...  ;)

--- Greg Stein [EMAIL PROTECTED] wrote:

 - author tags are officially discouraged. these
create difficulties in
   establishing the proper ownership and the
protection of our
   committers. there are other social issues
dealing with collaborative
   development, but the Board is concerned about
the legal ramifications
   around the use of author tags
 - it is quite acceptable and encouraged to
recognize developers' efforts
   in a CHANGES file, or some other descriptive
file which is associated
   with the overall PMC or release rather than
individual files.




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


Re: [PATCH] Support for percentages and table-units

2004-02-22 Thread Peter B. West
Andreas L. Delmelle wrote:
-Original Message-
From: Peter B. West [mailto:[EMAIL PROTECTED]
snip /

The borderline cases may be very much in the minority (and must be,
judging by the degree of usage that FOP gets now) but they must be taken
into account in the design of the solution.  If we go for the
low-hanging fruit and then discover that the ladder is too short we end
up back in the workshop.


I understand, but what I'm referring to is (taking your analogy a bit
further):
You want an 'extensible' ladder which you can keep short for the low-hanging
fruit, and extend to reach the higher ones. If you get to a tiny tree with a
huge ladder, you're going to be cursing yourself anyway as your big ladder
will make the job more difficult, IYKWIM (--you might not even need that
ladder, but still you carried it all the way down there...).
The point that would concern me is an API that forces the most trivial and
common cases into a processing-model that is actually meant to accommodate
rather complicated structures. So you'd end up having an overhead in 95% of
the cases, overhead which strictly speaking is meant to occur in only 5% of
the possible situations.
If it results in (virtually) no overhead at all, this point of course
dissolves totally... the ladder is then extensible in just the right way.
There's a lot of subjective judgement in making such calls, which is why 
it's useful to have a number of different opinions kicking ideas around.


I wasn't thinking of the buffers.  The re-usability of the buffers is
only relevant to static-content and markers, so I don't see that as a
major issue, and would expect to keep the static-content buffers for a
page in memory for the life of the page-sequence.  Markers are a bit
more problematical, and may well benefit from some transparent
serialization.


Sorry, I'm still a bit misguided, it seems. This part, I already got, but...


I was thinking more of the historical parts of the FO and Area trees.


... putting quotes around there is to beg the question, so, would that be
the parts that have already been processed in some way?
Yes.  Candidates would be FOs and areas associated with pages containing 
forward references, and, in general such objects associated with the 
current page sequence, from the point of view of possible layout 
optimisation.


 At one stage I considered linking all nodes in the FO tree with
reference objects, but I was concerned about the extra layer of
reference objects and their impact on memory and performance.  However,
when we get parallel FO tree, Area tree and rendering working it may pay
dividends.
I find the language of the java.lang.ref package confusing, but I think
that phantom references open the possibility of performing serialization
 on demand, when the object is queued for GC.


Can you elaborate a bit on this? AFAICT, the actual referent of a phantom
reference is itself unreachable through the reference object (the ref's
get() method always returns null), so you could indeed test via isEnqueued()
whether or not the referent of a phantom reference is queued for GC, and
then...? A soft reference at least would allow to get() the object and do
something with it or make it do something with itself before actually
clearing the ref.
As I say, I find the language confusing, but it seemed to me that, as 
long as the object being GC'd contained enough information to determine 
its origins, when it found its way onto the reference queue for disposal 
the thread responsible could serialize it just before it was destroyed, 
and store the information required for its recovery in the appropriate 
place.  The same may be achievable using the other reference types.

Whether the imprecations against finalizers apply also to phantom 
reference finalizers I don't know.

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


Re: [PATCH] Support for percentages and table-units

2004-02-21 Thread Peter B. West


Andreas L. Delmelle wrote:
-Original Message-
From: Peter B. West [mailto:[EMAIL PROTECTED]


Thanks Andreas.  Yes, I disagree, but then, so does the spec.  What
information *should* do is not terribly relevant.  We need to work out
and express what information *must* do to get this thing working.


Voila! Without worrying too much about textbook 'should'-stuff... It is
after all *XSL*-FO, so I guess the basic compliance rule is also for FO
processors: 'the order of the processing events doesn't matter at all, as
long as the produced output is correct.'

[Me:]
... Would it really be worth a shot to change the design
there, and flip a switch? Throw the FOTree away and just fill up
the AT and re-use that?
Or process the minimal relevant parts of the FO and Area trees in
parallel.  That is what I am working towards.  I believe that
page-at-a-time layout with just in time processing of the FOs is
possible.  Given that, both FOs and Areas can be kept alive while
required.  (I haven't given any thought to rendering.)


Indeed. When I began thinking about 'borderline-cases', it became clearer
that situations where you need to wait for more than one page to complete
the layout are rather exceptional anyway, so it's most likely the better
option to treat them as what they are: 'an exception to the general
processing flow' (--IOW, not *all* theoretical possibilities implied by the
definitions in the spec should be covered by the *basic* processing
framework).
The borderline cases may be very much in the minority (and must be, 
judging by the degree of usage that FOP gets now) but they must be taken 
into account in the design of the solution.  If we go for the 
low-hanging fruit and then discover that the ladder is too short we end 
up back in the workshop.


Note that forward references are always going to be a problem, but that a
combination of weak/soft/phantom references and serialization should
keep memory requirements manageable.


That's where your producer-consumer buffers step in, right?

So.. by 'minimal relevant parts' you actually mean something as 'reduced
skeletons of subtrees' that in themselves provide a way to pull the events
generated by their descendants from the buffer, without themselves actually
holding a reference to the descendants, so while the ancestor is being kept
alive, the descendants can be happily collected by our friend GC if no
longer used by another process, while the ancestor remains at our disposal
to re-pull the same events from the buffer if/when they are needed.
Is this close?

I wasn't thinking of the buffers.  The re-usability of the buffers is 
only relevant to static-content and markers, so I don't see that as a 
major issue, and would expect to keep the static-content buffers for a 
page in memory for the life of the page-sequence.  Markers are a bit 
more problematical, and may well benefit from some transparent 
serialization.

I was thinking more of the historical parts of the FO and Area trees. 
 At one stage I considered linking all nodes in the FO tree with 
reference objects, but I was concerned about the extra layer of 
reference objects and their impact on memory and performance.  However, 
when we get parallel FO tree, Area tree and rendering working it may pay 
dividends.

I find the language of the java.lang.ref package confusing, but I think 
that phantom references open the possibility of performing serialization 
 on demand, when the object is queued for GC.

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


Re: [PATCH] Support for percentages and table-units

2004-02-21 Thread Peter B. West
Finn Bock wrote:
[Peter B. West]

Finn,

When I apply your most recent patch (10366) against a cvs updated HEAD
tree and attempt to compile, I get the following:
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/LinearCombinationLength.java:60: 


After applying the patch (10366), the following files should be removed:

src/java/org/apache/fop/fo/properties/LinearCombinationLength.java
src/java/org/apache/fop/fo/properties/MixedLength.java
Does anyone know how to include a file-remove in a patch?
From 'man patch' on linux:

You can create a file by sending out a diff that compares /dev/null  or
an empty file dated the Epoch (1970-01-01 00:00:00 UTC) to the file you
want to create.  This only works if the file you want to create doesn't
exist  already  in  the target directory.  Conversely, you can remove a
file by sending out a context diff that compares the file to be deleted
with  an  empty  file dated the Epoch.  The file will be removed unless
patch is conforming to POSIX and the -E or --remove-empty-files  option
is  not  given.  An easy way to generate patches that create and remove
files is to use GNU diff's -N or --new-file option.
From 'man diff' on linux:

-N
--new-file
 In directory comparison, if a file is found in only  one  direc-
 tory, treat it as present but empty in the other directory.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: DO NOT REPLY [Bug 26778] - [PATCH] Support for percentages and table-units

2004-02-21 Thread Peter B. West
Finn,

Nice.  The parser, of course, looks after all of the expression-ordering 
questions for you, and you have only to collect the unresolved items. 
I'll adopt this for alt-design.

Peter

Finn Bock wrote:
[Peter B. West]

Can you describe your expression tree in more detail?


The line above is most likely the toString() on the expression that is 
the result of a start-indent calculation from [5.3.2].

Each set of parens represent an algebra operation node in a (mostly) 
binary tree. The expression above is actually stored like this.

v
|
+-ADD
  |
  +--0mpt
  |
  +--ADD
 |
 +--0mpt
 |
 +--ADD
|
+--ADD
|  |
|  +-- 4000mpt
|  |
|  +-- %20 of REFERENCE_IPD
|
+-- 0mpt
The tree is created lazily during the evaluation of expression in the 
property parser. If both the operands to an operation are absolute, the 
operation is performed at parse time, but if either one of the operands 
are relative values, an operation-node is created. The operation node is 
also considered to be a relative value, so the next operation that 
involves an operation node will always create a new operation node.

(Note to self: Perhaps it is worthwhile to detect if one of the operands 
in a ADD and SUB operation is 0? It would perhaps reduce memory for the 
majority of start-indent expressions).

A node on the operation tree is represented by an instance of 
fo.expr.RelativeNumericProperty. The code that creates the tree is 
located in NumericOp and it is called from the PropertyParser.

When a property is retrieved by the LMs, it is the final call to 
Length.getValue() or Numeric.getNumericValue() that triggers the 
evaluation of the operation tree. At that time the REFERENCE_IPD value 
should have been assigned by the LMs to one of the parent fo:elements.

regards,
finn


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


Test - please ignore

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


Re: [PATCH] Support for percentages and table-units

2004-02-20 Thread Peter B. West
Re-sending due to mailer problems.

Peter

 Original Message 
Subject: Re: [PATCH] Support for percentages and table-units
Date: Thu, 19 Feb 2004 12:48:59 +1000


Andreas L. Delmelle wrote:
-Original Message-
From: Simon Pepping [mailto:[EMAIL PROTECTED]
In my view FOP consists of a number of subsystems that are ordered
from upstream to downstream. The FO tree is the most upstream system,
the area tree (or objects that are constructed by a renderer) is the
most downstream system.


Indeed, but...


Information should flow downstream, not
upstream.


(Hmm. Isn't there an Aussie in this house who disagrees? Callbacks, Peter?
;) Nah, bad example...)
Thanks Andreas.  Yes, I disagree, but then, so does the spec.  What
information *should* do is not terribly relevant.  We need to work out
and express what information *must* do to get this thing working.
...
Basic point: the preferred direction of the information flow depends (almost
entirely) upon the relationship between the up- and downstream events that
is being
Yep.  (Even without the end of the sentence.)

You are IMO very correct by stating that 'if the Layout info can be reused,
so can the AT and the renderer', however, if I interpret correctly, the
latter two are designed to dispose of their created objects ASAP.
The downstream objects hold a reference to the upstream ones, not the other
way around --unless you have a way out of there, as long as a certain
page-sequence is referenced, the entire Layout/AT/Renderer structure would
exist in memory, which can get .. quite large even for moderately sized
documents. Would it really be worth a shot to change the design there, and
flip a switch? Throw the FOTree away and just fill up the AT and re-use
that?
Or process the minimal relevant parts of the FO and Area trees in
parallel.  That is what I am working towards.  I believe that
page-at-a-time layout with just in time processing of the FOs is
possible.  Given that, both FOs and Areas can be kept alive while
required.  (I haven't given any thought to rendering.)  Note that
forward references are always going to be a problem, but that a
combination of weak/soft/phantom references and serialization should
keep memory requirements manageable.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: DO NOT REPLY [Bug 26778] - [PATCH] Support for percentages and table-units

2004-02-20 Thread Peter B. West
Re-resending...

 Original Message 
Subject: Re: DO NOT REPLY [Bug 26778]  - [PATCH] Support for percentages
and table-units
Date: Fri, 20 Feb 2004 08:05:20 +1000
Simon Pepping wrote:
I like the patch and the way RelativeNumericProperty holds and
evaluates an expression tree (except my different preference for
storing layout information, as discussed). This is really nice and
works well:
	  v = (((0mpt +(4000mpt +20.0%)) +0mpt) +0mpt)
Finn,

Can you describe your expression tree in more detail?

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


Re: [PATCH] Support for percentages and table-units

2004-02-20 Thread Peter B. West
Re-resending...

 Original Message 
Subject: Re: [PATCH] Support for percentages and table-units
Date: Fri, 20 Feb 2004 19:07:06 +1000
Finn Bock wrote:
[me]

If an expression reference another expression in a parent fo, the 
parent fo expression must be evaluated against the LayoutContext that 
was in effect for the parent fo and *not* against the child fo 
LayoutContext.

fo:block id=a border-start-width=10%
   fo:block id=b border-start-width=inherit
   /fo:block
/fo:block
It must be the LayoutContex for 'a' that is used when we evaluate the 
10% even when we call:
propertyList.get(PR_BORDER_START_WIDTH).getValue(lc)
with the layout context for 'b'.


[J.Pietschmann]

Well, I used to believe the 10% has been evaluated already, and the
inherited property can grab the absolute value immediately.


If it is evaluated already where would the evaluated value be stored? In 
the propertyList (aka the FO tree)? And then the value should be 
reverted to the expression when the base value changes due to breaks.

Storing the resolved value would IMO remove all the benefits from 
passing in a context parameter to getValue().

Perhaps it can be done that way too, but it is very different from my 
proposal.
In principle, no area-based percentage can benefit from a one-off
resolution until all of its children have been fully laid out.  The
children inherit the computed value, but that value may change during
the layout life of the parent in question.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: [PATCH] Support for percentages and table-units

2004-02-20 Thread Peter B. West
Re-resending...

 Original Message 
Subject: Re: [PATCH] Support for percentages and table-units
Date: Fri, 20 Feb 2004 21:20:52 +1000
Finn,

When I apply your most recent patch (10366) against a cvs updated HEAD
tree and attempt to compile, I get the following:
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/LinearCombinationLength.java:60: 

org.apache.fop.fo.properties.LinearCombinationLength is not abstract and
does not override abstract method getValue() in
org.apache.fop.datatypes.Length
[javac] public class LinearCombinationLength extends LengthProperty {
[javac]^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/LinearCombinationLength.java:96: 

cannot resolve symbol
[javac] symbol  : method setComputedValue (int)
[javac] location: class
org.apache.fop.fo.properties.LinearCombinationLength
[javac] setComputedValue(result);
[javac] ^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/MixedLength.java:64: 

org.apache.fop.fo.properties.MixedLength is not abstract and does not
override abstract method getValue() in org.apache.fop.datatypes.Length
[javac] public class MixedLength extends LengthProperty {
[javac]^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/MixedLength.java:89: 

cannot resolve symbol
[javac] symbol  : method isComputed ()
[javac] location: class org.apache.fop.fo.properties.LengthProperty
[javac] if (!l.isComputed()) {
[javac]   ^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/MixedLength.java:93: 

cannot resolve symbol
[javac] symbol  : method setComputedValue (int,boolean)
[javac] location: class org.apache.fop.fo.properties.MixedLength
[javac] setComputedValue(computedValue, bAllComputed);
[javac] ^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/MixedLength.java:109: 

cannot resolve symbol
[javac] symbol  : method resolveTableUnit (double)
[javac] location: class org.apache.fop.fo.properties.LengthProperty
[javac] ((LengthProperty)
e.nextElement()).resolveTableUnit(dTableUnit);
[javac] ^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/MixedLength.java:136: 

cannot resolve symbol
[javac] symbol  : method asNumeric ()
[javac] location: class org.apache.fop.fo.properties.LengthProperty
[javac] numeric = l.asNumeric();
[javac]^
[javac]
/usr/local/src/fop-HEAD-finn/src/java/org/apache/fop/fo/properties/MixedLength.java:139: 

cannot resolve symbol
[javac] symbol  : method asNumeric ()
[javac] location: class org.apache.fop.fo.properties.LengthProperty
[javac] NumericProperty sum =
numeric.add(l.asNumeric());
[javac]^
[javac] 8 errors
Is there a patch I have missed.  I tried applying the earlier patch
first, but then the second patch is reported as already/applied/reversed.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: FOP report

2004-02-11 Thread Peter B. West
Jeremias, Berin, et al.,

Comments below.

Jeremias Maerki wrote:
Hmmm. I don't think the PMC needs to get involved. Looking at it from a
distance this was primarily a disagreement between two people on
technical/design issues that somehow couldn't be resolved. One of the
two, Victor Mote, decided to give up because he would rather go away
than to be the guy that everyone wishes would go away (his words, not
my impression). He probably overreacted a bit.


I agree that the PMC does not need to get involved.  By extension, then, 
neither does the Board.  The issues were resolved within FOP, and 
resulted in what I consider a regrettable decision by one committer to 
leave.  There was no peer pressure for this outcome.


Some background: Fact is that the whole FOP team was exchanged during
the last two years.
Almost.  I've been involved since the beginning of 2001, and a committer 
for a little over two years now, I think.  Joerg, Jeremias and I became 
committers at the same time, so we had varying degrees of prior involvement.

None of the old committers is still active though
one or two are still injecting a comment from time to time. We have a
heavy decision to carry on taken over two years ago (freezing the old
maintenance branch and doing a redesign of FOP). I guess the committers
are only now really getting used to all the code in FOP and getting into
a position to really bring on the design.
Amen.

Then we've got the problem
that there are some strong personalities among the comitters which
doesn't make things easier. Take the mailing list as suboptimal
communication platform into the equation and you got the problems
together. I myself was pretty close to quitting recently but decided to
calm down and to concentrate on investing my very little time still
available to FOP in a productive way because I've already invested so
much of my free time into FOP that I simply can't let go.
I'd like to hear more about your thinking on this and your later comment 
about the unhealthiness of the team, probably on the fop-dev list, Jeremias.

I'm not very good in this sort of thing especially since English ist not
my primary language and I know that my intentions sometimes don't make
it 100% to the other side. I hope I haven't put any more oil into the
fire by writing this. If Peter disagrees with my view of the things I'd
like him to chime in. For any details I'd like to point to the fop-dev
mailing list archive (the whole thing happened around 2003-12-17).
So. Peter and the other PMC members, do you think we should change
anything about my report about FOP? I thought, this was important to
mention but I don't think this needs any intervention right now as I
know that some (or at least one) high-ranking Apache people are
listening into the conversions over in FOP-land which I'm grateful for.
Maybe infighting wasn't the best word but I took it as such a few
times during the last months. I don't consider the FOP developer
community a healthy one, especially compared to others here at the ASF,
but I also haven't given up hope. We're all struggling for free time, no
big companies backing us up anymore.
Perhaps infighting over technical/design issues would be more precise. 
 If you saw it as infighting, it's fair enough to describe it that way.

I'm interested also in the comment about the lack of backing.  What 
backing were we receiving previously?

As to free time, I'm now working outside the industry, on a 
part-time/casual basis, and I like the situation.  Working full-time in 
IT makes too heavy demands on my concentration to be able to devote the 
necessary time to FOP, which, as you point out, is extremely demanding. 
 The situation I am in now gives me more time the freedom to do my 
design and coding the way I want to.  That comment has wider application 
than FOP.

On the positive side, the recent increase in activity includes a lot of 
cross-fertilization from alt-design to HEAD, which seems to have been 
received very well by everyone concerned.  Perhaps this should be 
mentioned to balance concerns about Victor's departure.

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


Re: PMC representation

2004-02-11 Thread Peter B. West
Jeremias Maerki wrote:
While we're at it: I think it's about one year since I got voted into
the XML PMC. According to the following section of the XML project's
mission statement:

5.4 Every 12 months, (or as required by the Board or PMC) each subproject 
of xml.apache.org will nominate 1-2 individuals to represent them on the 
PMC. To become a sub-project's representative on the PMC, an individual 
must be nominated by a contributor, unanimously approved by all PMC 
members, and approved by a two-thirds majority of the sub-project's 
active committers. In most cases, developers will have actively 
contributed to development for at least six months before being 
considered for membership on the PMC.


...it may be time to replace me as well. I have nothing against
staying in this role for now (on the contrary) but I'd like to make the
post available to Glen, if he desires it. I guess he's the only
candidate matching the above criteria right now.
Jeremias,

I have no problem with your continuing.  If we need a formal vote,

Jeremias to remain as one of our PMC representatives:

+1

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


Re: Interaction between force-page-count and initial-page-number

2004-02-09 Thread Peter B. West
Chris,

Comments below.

Chris Bowditch wrote:
Peter B. West wrote:

snip/

The Rec says of force-page-number:auto, 'If there is no next 
page-sequence or if the value of its initial-page-number is auto do 
not force any page.'  Should that read, '...the value of its 
initial-page-number is auto, auto-even or auto-odd...'?  If not, 
some questions of behaviour arise.


Hi Peter - I dont think the spec needs to say auto-even or auto-odd 
here. Unless I'm missing something it seems clear to me that if 
initial-page-number=auto-odd and the force-page-number=auto on the 
previous page-sequence then a page must be forced when the first page 
sequence ends on an odd page.
My point is that the spec is *not* clear on this.

1st p-s: What's your 1st number (my last is 11)?

The 2nd calculates that it's first number must be 13, based on 
initial-page-number:auto-odd.

2nd p-s: 13

The 1st p-s now forces a blank page, numbered 12.  If it were to query 
again, based on the new last page number, the dialogue would go


I dont see why it needs to re-query just because the last page number 
changed. After all the last page number changed as a result of 
communication between ps1 and ps2, so why go round again?

My purpose in setting this scenario out is to demonstrate that, in these 
circumstances, a requery is not necessary.  In general, though, if you 
have a mutual dependency, and the conditions on one side of the 
dependency change, you're up for another round.  In the circumstances 
outlined, the analysis indicates that no recursion is necessary.

However, there is nothing in the spec to indicate that a page sequence 
with force-page-number:auto should include its current last generated 
number in a query.  It simply indicates that such a page-sequence should 
find out from the following page sequence whether its first number is 
odd, even or auto, in order to determine its own last page number. 
Unfortunately, the following page sequence may not be able to answer 
that question without first finding out what the last page number of the 
preceding page-sequence is.

The scenario I outlined goes beyond what the spec states in order to 
resolve the deadlock.  If this process is intended by the editors, they 
need to spell it out.

1st p-s: 1st number (12)?
2nd p-s: 13
and the extra dialogue would be unnecessary.  Is this the intention? 


I agree this extra dialog is unnecessary but I couldnt tell from the 
quotes you made why you think the spec implies that it is necessary.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: PMC representation change, still ot ack'ed

2004-02-09 Thread Peter B. West
Jeremias Maerki wrote:
I've just noticed that Joerg still hasn't been formally voted in in the
XML PMC as a replacement for Peter. Since this was more than 2 months
ago I wanted to check if this is still ok. I'll start the vote in the
XML PMC on Wednesday if there are no objections until then.
Joerg,

In the meantime, as a vote is pending on the in principle acceptance 
of the federation proposal, if you let me know your vote on this I will 
forward it by proxy to the PMC.

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


Interaction between force-page-count and initial-page-number

2004-02-08 Thread Peter B. West
The editors,

I am seeking clarification of the relationship between the 
force-page-number and initial-page-number properties in certain 
circumstances: specifically, when the value of force-page-number is 
auto and the value of initial-page-number on a following page-sequence 
is either auto-even or auto-odd.  Apart from the descriptions of the 
properties, I found no other discussion about the interaction of these 
properties.

The Rec says of force-page-number:auto, 'If there is no next 
page-sequence or if the value of its initial-page-number is auto do 
not force any page.'  Should that read, '...the value of its 
initial-page-number is auto, auto-even or auto-odd...'?  If not, 
some questions of behaviour arise.

Say, for example, the last generated page of a force-page-number:auto 
page-sequence has an odd number, and the following page-sequence has an 
initial-page-number value of auto-odd.  The page-sequence queries the 
following page-sequence for first first page number.  The second 
page-sequence, in turn, queries the first page sequence for its last 
page number.  Who goes first?

Because the 1st page sequence is the only source of information on 
actual generated page numbers, the following scenario seems reasonable. 
 The 1st sequence queries the 2nd, passing its current generated last 
page number.  The 2nd then uses this number to generate a response. 
Let's say the generated last number is 11.

1st p-s: What's your 1st number (my last is 11)?

The 2nd calculates that it's first number must be 13, based on 
initial-page-number:auto-odd.

2nd p-s: 13

The 1st p-s now forces a blank page, numbered 12.  If it were to query 
again, based on the new last page number, the dialogue would go

1st p-s: 1st number (12)?
2nd p-s: 13
and the extra dialogue would be unnecessary.  Is this the intention? 
This approach avoids holes in the page numbering, but I note that the 
combination of force-page-count:odd and a following 
initial-page-number:auto-odd will force a such a hole.

Whatever the case, it would be worthwhile adding a clarification to the Rec.

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


Re: FOP components

2004-02-07 Thread Peter B. West
J.Pietschmann wrote:
...
- avalon and logging for the base library.

...
BTW
1. I'd like to get rid of the servlet.jar in our CVS.
2. If we standardize on JDK 1.4 as base (as it currently
 is), we could drop the Xerces, Xalan and xml-api jars as
 well. Our Jars seem to be somewhat outdated anyway.
If we go to 1.4, should we also use 1.4 logging (java.util.logging) and 
possibly also the preferences API (java.util.prefs) for 
configuration/user agent/user prefs?

I don't know Avalon, so I don't know what other facilities from there we 
are using or considering using.

If we are involved in such considerations, we need to decide how we 
propose to support our 1.3 user base.  The most recent discussions 
showed that a number of users face steep costs to upgrade to 1.4.

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


Re: FOP components

2004-02-07 Thread Peter B. West
Peter B. West wrote:
J.Pietschmann wrote:
...
- avalon and logging for the base library.

...

BTW
1. I'd like to get rid of the servlet.jar in our CVS.
2. If we standardize on JDK 1.4 as base (as it currently
 is), we could drop the Xerces, Xalan and xml-api jars as
 well. Our Jars seem to be somewhat outdated anyway.


If we go to 1.4, should we also use 1.4 logging (java.util.logging) and 
possibly also the preferences API (java.util.prefs) for 
configuration/user agent/user prefs?

I don't know Avalon, so I don't know what other facilities from there we 
are using or considering using.

framework.ValuedEnum for one.  That will have to wait until Java 1.5.

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


Re: Just a small question...

2004-02-06 Thread Peter B. West
Glen Mazza wrote:
[Pardon me, Peter, for more shooting from the hip...]
Don't mention it, Glen (whose contributions we all value highly.)

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


Re: Just a small question...

2004-02-06 Thread Peter B. West
Andreas L. Delmelle wrote:
Peter / Nikolai,

I think I should be the one to apologize here, as Nikolai seems to have been
offended by one of *my* unreflected shoots from the hip --hey, sometimes I'm
in the mood for joking. If the joke comes across bad, I appreciate it when
people tell me that it has, offering me an opportunity to clear things out.
In this case, the only part saddening me is Nikolai deciding to unsubscribe
as a consequence of one simple remark, that wasn't even serious (let alone
'reflected' criticism)...
Andreas,

Thanks for these comments.  Glen has pointed out to me, off-list, the 
same thing.  As I was the one who mentioned Glen by name (as neither 
Bertrand nor Jeremias did) I must acknowledge that leaving the 2nd-level 
quotes from you in my reply to Nikolai gave completely the wrong 
impression.  I owe Glen an apology for shooting from the hip.

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


Re: (Peter) Re: Just a small question...

2004-02-06 Thread Peter B. West
Glen Mazza wrote:
Peter, 

Both of the remarks that Nikolai quoted [1] in leaving
the list came from Andreas [2], not from me [3].  I
was only stating the obvious in my warnings not to use
their code.
I don't appreciate you trying--for those who haven't
been following the thread--to attribute Andreas'
quotes to me.
Glen
Glen,

That was a very misleading oversight on my part.  I was aware that the 
quotes did not come from you, and should have removed them, but I forgot 
before I posted.  I.e., I shot from the hip.  My apologies.

Nonetheless, and please don't take this amiss, I stand by the tenor of 
my comments.  I think you need to consider the human effects of the way 
you express yourself.  It's a chronic problem of email exchanges that 
they are read very differently from the way they are written.  A 
forcefulness that can be quite inoffensive in face-to-face situations 
can easily generate very defensive responses in email.  I suspect that 
was part of the problem in Andreas' response to you.  I'm sure you know 
all this, and it applies to me as well.

In retrospect, I should probably have expressed my opinions on this to 
you personally, while assuring Nikolai in public of my regret that he 
was most welcome on the list.  Again, I shot from the hip, and I 
apologise for that.  That said, I hope there may be some beneficial 
effects from stating those opinions in public, if someone else who reads 
them becomes less likely in future to take a comment of yours the wrong 
way.  In that sense, my comments may take some pressure *off* you.  I 
hope, at least, that some such beneficial outcome may arise from this.

If there is anything else you would like me to say about this in public, 
please let me know.

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


Re: Just a small question...

2004-02-05 Thread Peter B. West
Nikolai Grigoriev wrote:
I realize I was wrong when I answered to this forum - I could not 
expect my words to be interpreted this way. Please disregard my 
previous message; I also unsubscribe from the list, to make you feel 
sure I don't induce anyone into wrongdoing. 


RenderX (--still wondering which of the two is more true: either his
employers have no idea what he's doing, or he doesn't care whether 
they know... or he is his own employer trying to lure me into doing
something illegal --in which case he'll fail 


I _am_ in the position to decide myself how much technical information 
about RenderX XEP can be safely disclosed. But if you prefer to see 
any word that comes from RenderX as a fraud attempt, you're welcome.


- hey, come to think of it, does RX need money or what? =D )


And they have the money - earned by writing software, not by cheating.

Yours truly,
Nikolai Grigoriev
XEP Project Leader
RenderX
Nikolai,

Please re-consider your decision.  I, for one, am extremely pleased that 
developers on other XSL-FO projects, especially ones so successful as 
RenderX, are interested enough in FOP to monitor this list, and, even 
more, to respond here.

If you have watched us for a while, you will realise that Glen tends to 
shoot from the hip, and expresses himself forcefully.  (I have done the 
same on occasion.)  More than one of the regulars here has been stung by 
Glen's comments, but we understand that that is Glen's manner.  We value 
his contributions greatly, and shrug off the more over-the-top 
expressions of opinion because we are used to the way he says things.

I hope you can bring yourself to do the same.

Glen raised issues which we in FOP must consider carefully.  However, I 
enjoy the community of interest between us and commercial developers, 
and if you or, say, Tony Graham from Sun's xmlroff, wants to chime in to 
the discussions I welcome the input greatly.

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


Re: Synchronization questions

2004-01-31 Thread Peter B. West
Andreas L. Delmelle wrote:
-Original Message-
From: Peter B. West [mailto:[EMAIL PROTECTED]
I've been hacking the tree methods in Node recently
...
Are you talking 'maintenance vs. HEAD' here?

No.  I realise the message was ambiguous.  I was talking about versions 
of my general tree-handling classes - Node (primarily) and Tree.

My first change was to synchronize the methods which had previously been
synchronized on the Tree, but I realized that such synchronization of
methods in inner classes probably only synchronized on the actual inner
class instance, not on the containing class instance.  Does anyone have
any knowledge of this?


Hmm... Difficult to tell from the docs I read, so far... I'd say: indeed,
unless the code-block through which the inner class (synchronized) method is
accessed is synchronized on the containing class instance, no? Then again,
synchronizing only on the inner classes could turn out to offer more
flexibility, as other operations on the containing class can still be
carried out while the inner class is locked (provided, of course, that the
'other' operations do not need access to the inner class instance...)
In this case they do need such access.  The inner classes are iterators.


It also occurred to me that optional synchronization might be a good
idea, allowing a common synchronization object to be passed to the Node
constructor.  An alternative was to allow optional synchronization, but
to synchronize on the affected Node object.  On the construction of any
particular Node, a boolean can be passed indicating the need for
synchronization.


The other solution for the above stated issue: remove the synchronization
from the inner class methods, and synchronize their bodies on the containing
class instance. (Again: IIC you'd only need this if you really *need* to
synchronize on the outer class... if you don't, I guess the approach you're
taking now is more flexible and less likely to lead to deadlocks.)
I was worried about increasing the probability of deadlock by having 
many more locks held concurrently.  Without having thought about it a 
great deal, it seems to me that it is easier to appreciate and avoid 
potential deadlocks when synchronization is more global, as with the 
synchronization on the containing Tree object.

snip /

Does anyone have experience with such issues?



No real experience, but thinking about 'optional synchronization' brings up
all sorts of ideas, like:
- a Lockable interface for Nodes
- a SyncedNode extending Node implementing the Lockable interface
- when you really only need a non- or partly synchronized Node use the main
type; if you need a fully synchronized one, use the subtype
(ratio of execution speeds from non-synced vs. synced is roughly 100 vs.
150, so it would definitely be worth it to avoid synchronization altogether
where it is not strictly necessary)
This would be the clean way to express the current version of the code. 
 However, I am still toying with the idea of allowing (sub)trees to 
synchronize on an object passed in as a parameter to the Node 
constructor.  If the object reference is null, synchronization is turned 
off.  In this scheme, I would allow subclasses (like Area) to switch 
synchronization on by setting the 'sync' object non-null, as, for 
example, when a locally constructed subtree was grafted onto the 
AreaTree.  It also returns to the situation of a common synchronization 
object for each node in the (sub)tree.

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


Re: Synchronization questions

2004-01-31 Thread Peter B. West
Peter B. West wrote:
This would be the clean way to express the current version of the code. 
 However, I am still toying with the idea of allowing (sub)trees to 
synchronize on an object passed in as a parameter to the Node 
constructor.  If the object reference is null, synchronization is turned 
off.  In this scheme, I would allow subclasses (like Area) to switch 
synchronization on by setting the 'sync' object non-null, as, for 
example, when a locally constructed subtree was grafted onto the 
AreaTree.  It also returns to the situation of a common synchronization 
object for each node in the (sub)tree.
The notion of switching synchronization on and off is, unfortunately, 
brain-dead.  If synchronization is to be changed, then the code which 
changes and reads the synchronization state must itself be synchronized.

The conditional synchronization that I have now is only workable because 
the setting for any particular node is immutable.

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


Re: [PATCH] unnesting Property.Maker and rollling datatypes into thier properties.

2004-01-31 Thread Peter B. West
Simon Pepping wrote:
I have the following considerations:

1. The old situation has pure datatypes, which in theory may be reused
   in other situations. In practice, these datatypes are very much
   bound to properties, so that reuse is not realistic, and does not
   happen in FOP code. Combining the notions of datatype and property
   is more tuned to FOP's situation.
Alt-design has completely separate properties and data-types.  Instances 
of datatypes contain int references to the property on which they were 
defined.
2. Even in the old situation the separation between datatypes and
   properties is not complete. Compound datatypes contain properties.
Alt-design has no compound properties.

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


Re: Updating licenses

2004-01-31 Thread Peter B. West
Jeremias Maerki wrote:
Very cool! I did the whole thing manually back when I exchanged the
illegal short licence with the long one.
But I noticed the following:
http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-fop/src/java/org/apache/fop/area/inline/InlineArea.java?rev=1.2.2.1
It looks like the {YEARS} marker seems not to have worked on some files
you checked in yesterday.
Ahem...

That's because I cut-and-pasted the 2.0 license file into the pattern 
Eclipse uses when constructing a new class.  I forgot to fix {YEARS}. 
Those new files haven't been run through the perl filter.  Thanks for 
picking this up, Jeremias.

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


Re: Synchronization questions

2004-01-31 Thread Peter B. West
Andreas L. Delmelle wrote:
-Original Message-
From: Peter B. West [mailto:[EMAIL PROTECTED]
...

I was worried about increasing the probability of deadlock by having
many more locks held concurrently.  Without having thought about it a
great deal, it seems to me that it is easier to appreciate and avoid
potential deadlocks when synchronization is more global, as with the
synchronization on the containing Tree object.


Yes, I see what you mean... Well, as I indicated, there's absolutely no
reason to trust me on this. Your view is probably more to the point here.
The only thing I do know for sure is that many authors claim that most
possible cases of deadlock can --and should preferrably be - identified in
advance (i.e. before any code is ever written).
The two most common cases of deadlock are AFAIK:
1. A thread that doesn't exit (cleanly), so never releases the lock (threads
going into an infinite loop belong to this category)
This is always going to be tricky.

2. Two threads 'waiting for each other': one holding the lock and waiting
for a return value from the second, the other needing access to the locked
object in order to return the desired value.
See comments below.
So it would come down to predicting in some way the risk of either of these
two taking place.
I guess that, when synchronization is more global, the first type would be
easier to avoid. Mostly, it's also advised not to synchronize *every*
method, actually leaving a backdoor opened to be able to cleanly open the
lock from the inside (--but I'm guessing this is well-known fact to you).
This would be an argument against all-too-eagerly-global synchronization
IMHO.
It's only necessary to synchronize the methods that read or modify the 
data that is in contention.  I suspect that a lot of synchronized code 
is written by those who don't quite understand why, and who take the 
first approach that seems to work.  I get the feeling that quick and 
easy approaches are frequently encouraged.

(On top of that, but this may be a consequence of the limitation of my
understanding of the FO process in its entirety, it seemed easier to me to
avoid the first cases manually and the second by design, than doing it the
other way around. I'm still not completely familiar with the 'borderline'
cases, where an event downstream would influence upstream events in such a
way that they might need access to a Node on which a lock is being held by
another process...)
Deadlock problems have to be considered carefully at the design stage.

In my original considerations for the pipelined model of alt-design, I 
was happy to have blocking writes/reads on the buffers of the primary 
pipeline (parser-fo tree builder-area tree builder), but I thought 
there would be deadlock problems if the return message queues were 
blocking.  (See figure 3 - incorrectly captioned Figure 2 - of 
http://xml.apache.org/fop/design/alt.design/xml-parsing.html).  I 
believe that the less complicated the synchronization structure, the 
easier it will be to analyse the possibilities for deadlock, hence my 
interest in getting back to more global synchronization objects.

snip /
 However, I am still toying with the idea of allowing (sub)trees to
synchronize on an object passed in as a parameter to the Node
constructor.  If the object reference is null, synchronization is turned
off.  In this scheme, I would allow subclasses (like Area) to switch
synchronization on by setting the 'sync' object non-null, as, for
example, when a locally constructed subtree was grafted onto the
AreaTree.  It also returns to the situation of a common synchronization
object for each node in the (sub)tree.
[Your follow-up: ]
The notion of switching synchronization on and off is, unfortunately,
brain-dead.  If synchronization is to be changed, then the code which
changes and reads the synchronization state must itself be synchronized.
The conditional synchronization that I have now is only workable because
the setting for any particular node is immutable.


And so if you need a non-synched version of the same Node, you would need to
create a non-synched clone/copy (--preferrably disposable)?
It seems to be the only way to do it.

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


Updating licenses

2004-01-29 Thread Peter B. West
Fops,

I have committed the perl script bin/lic_to_2 in FOP_0-20-0_Alt-Design. 
 It's function is to substitute license 2.0 for 1.1.

It is called as

$ lic_to_2 --lic2 {file containing license 2.0 text} {file to modify}

The intended usage is something like:

$ find . -name '*java'|while read file;\
mv $file $file.orig;\
do lic_to_2 --lic2 {lic2 file} $file.orig  $file;\
done
I have already committed java and plain text versions of 2.0 to the root 
directory of FOP_0-20-0_Alt-Design.  Note that these license files 
contain a {YEARS} marker which is replaced from the actual years in the 
source file copyright notice when the script is run.

When we get the OK, I'll use this to update the licenses in alt-design, 
and, if that works, I can also do the maint and HEAD sources.

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


Re: Updating licenses

2004-01-29 Thread Peter B. West
Glen Mazza wrote:
--- Peter B. West [EMAIL PROTECTED] wrote:

When we get the OK, I'll use this to update the
licenses in alt-design, 
and, if that works, I can also do the maint and HEAD
sources.



Sounds quite good.  You've made *many* friends
today...  ;)
But Glen, I have *so* many already.

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


Constants in Area

2004-01-29 Thread Peter B. West
Fops,

Is org.apache.fop.layout.AreaClass going to be integrated with then 
constants defined in ...area.Area?   Note that Area also has its own 
writing mode constants, in addition to those in Constants.  The spec 
allows 'lr', 'rl' and 'tb' as short forms of 'lr_tb', 'rl_tb'  and 
'tb_rl' respectively.  Although other writing modes are discussed, only 
those above are yet sanctioned in the Recommendation.

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


Re: cvs commit: xml-fop/src/java/org/apache/fop/datastructs Tree.java

2004-01-27 Thread Peter B. West
Jeremias Maerki wrote:
Peter,

I think it's a bit premature to apply the 2.0 licence already. The board
has announced additional information on how the licence should be
applied. This is not a veto, I just want to avoid you having to do the
whole thing twice.
Another thing: Please pay attention to the copyright years. You have to
take them over from the old licence.
Oops.  Thanks Jeremias.  There is information on the web site about how 
to use the license, but I daresay it will need to be refined.  I 
happened to be in the middle of a number of changes, so I went with the 
new license.

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


Synchronization questions

2004-01-27 Thread Peter B. West
I've been hacking the tree methods in Node recently, triggered by the 
need to construct multiple subtrees during area tree construction, 
cobbling them together as necessary.  In the original version, I was 
able to synchronize on the Node's containing Tree instance, but that is 
no longer feasible, as Nodes may be free-floating.

My first change was to synchronize the methods which had previously been 
synchronized on the Tree, but I realized that such synchronization of 
methods in inner classes probably only synchronized on the actual inner 
class instance, not on the containing class instance.  Does anyone have 
any knowledge of this?

It also occurred to me that optional synchronization might be a good 
idea, allowing a common synchronization object to be passed to the Node 
constructor.  An alternative was to allow optional synchronization, but 
to synchronize on the affected Node object.  On the construction of any 
particular Node, a boolean can be passed indicating the need for 
synchronization.

To implement this, I use the Node or the containing Node (in the case of 
inner classes) as the synchronization object.  So iteration operations 
on the Tree (like those of PreOrder or PrecedingSibling) and bulk 
operations (like copySubTree) end up synchronizing on each Node during 
the traversal.  This has the advantage that operations which occur 
relative to any given Node (like those of PrecedingSibling) can occur in 
parallel with activities in other parts of the tree.  The disadvantages 
include the large number of possible synchronizations, and an unknown 
incremental risk of deadlock.

Does anyone have experience with such issues?

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


Re: Unnesting properties and makers.

2004-01-26 Thread Peter B. West
J.Pietschmann wrote:
Glen Mazza wrote:

Well, instanceof is slower I believe, but better
self-commenting.


Instanceof is exactly as fast as a simple function call
after warm-up.
That's very useful to know.  instanceof has had a very bad press.

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


Re: Unnesting properties and makers.

2004-01-26 Thread Peter B. West
Finn Bock wrote:
[/d/fop] /c/java/jdk1.2.2/jre/bin/java.exe  -cp . x
false method call 581
true method call 581
false instanceof 160
true instanceof 170
[/d/fop] /c/java/jdk1.3.1_03/jre/bin/java.exe  -cp . x
false method call 1272
true method call 2304
false instanceof 17945
true instanceof 912
[/d/fop] /c/java/j2sdk1.4.2_02/bin/java.exe -cp . x
false method call 2154
true method call 2754
false instanceof 590
true instanceof 651
These appear to be running on the same system.  It's good news for 
instanceof, but what startles me is the performance of 1.2.2 relative to 
1.4.2_02 (and, of course, 1.3.1_03.

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


Re: Unnesting properties and makers.

2004-01-25 Thread Peter B. West
J.Pietschmann wrote:
Peter B. West wrote:
  With my naive understanding of parsing as a two-stage process (lexemes
  - higher level constructs) I have been curious about earlier comments
  of yours about multi-stage parsing.  Can ANTLR do this sort of thing?
I'm not quite sure whether you mean by parsing as a two-stage
process the same as I do. In language specs, the formal description
is usually divided into a grammar level representing a Chomsky
level 2 context free grammar and a lexical level, described by simple
regular expressions (Chomsy level 0 IIRC). This is done both for
keeping the spec readable and for efficient implementation
...

This is basically what I meant - I see (and have experienced in FOP) the
difficulty of trying to parse multiple grammars out of a single stream
of lexical objects.
  Given the amount of hacking I had to do to parse everything that could
  legally be thrown at me, I am very surprised that these are the only
  issues in HEAD parsing.
Well, one of the problems with the FO spec is that section 5.9
defines a grammar for property expressions, but this doesn't
give the whole picture for all XML attribute values in FO files.
There are also (mostly) whitespace separated lists for shorthands,
and the comma separated font family name list, where
a) whitespace is allowed around the commas and
b) quotes around the names may be omitted basically as long
 as there are no commas or whitespace in the name.
The latter means there may be unquoted sequences of characters
which has to be interpreted as a single token but are not NCNames.
It also means the in the font shorthand there may be whitespace
which is not a list element delimiter. I think this is valid:
 font=bold 12pt 'Times Roman' , serif
and it should be parsed as
 font-weight=bold
 font-size=12pt
 font-family='Times Roman' , serif
then the font family can be split. This is easy for humans but can
be quite tricky to get right for computers, given that the shorthand
list has a bunch of optional elements. Specifically
 font=bold small-caps italic 12pt/14pt 'Times Roman' , A+B,serif
should be valid too. At least, the font family is the last entry.
Note that suddenly a slash appears as delimiter between font size
and line height...
This usage, AFAICT, is the reason that division is specified by the
token 'div'.  All a matter of CSS compatibility.
Another set of problems is token typing, the implicit type conversion
and the very implicit type specification for the properties. While
often harmless, it shows itself for the format property: the
spec says the expected type is a string, which means it should be
written as format='01'. Of course, people tend to write
format=01. While the parsed number could be cast back into a
string, unfortunately the leading zero is lost. The errata
amended 5.9 specifically for this use case that in case of an
error the original string representation of the property value
expression should be used to recover. Which temps me to use
initial-page-number=auto+1.
This is one of the disgraces of the spec - this time for compatibility
with XSLT usage.  XSL-FO just cops it sweet whenever someone else's
problem (SEP) extrudes into the XSL namespace.
Another famous case is hyphenation-char=-, which is by no
means a valid property expression. Additionally the restriction
to a string of length 1 (a char) isn't spelled out explicitly
anywhere.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html



Re: Changing policy on minimum JDK requirements for HEAD

2004-01-25 Thread Peter B. West
Glen Mazza wrote:
Here's the team's comments so far on this topic:

Chris:
http://marc.theaimsgroup.com/?l=fop-devm=107330434824865w=2
Peter West:
http://marc.theaimsgroup.com/?l=fop-devm=107334589414161w=2
Glen:
http://marc.theaimsgroup.com/?l=fop-devm=107334968118783w=2
Web Maestro Clay and John Austin:
http://marc.theaimsgroup.com/?l=fop-devm=107336350330714w=2
Chris 2:
http://marc.theaimsgroup.com/?l=fop-devm=107338058309642w=2
Web Maestro Clay 2:
http://marc.theaimsgroup.com/?l=fop-devm=107339978229070w=2
Joerg:
http://marc.theaimsgroup.com/?l=fop-devm=107341756423664w=2
Peter West 2:
http://marc.theaimsgroup.com/?l=fop-devm=107353819024636w=2
Glen

--- Jeremias Maerki [EMAIL PROTECTED] wrote:

There was a thread recently which brought up that
FOP HEAD currently
doesn't compile under JDK 1.3. IMO this is an
important point and a
change of policy needs a community decision (vote)
and a susequent
documentation update. Since we should respect our
customers a new
opinion poll before the vote would be appropriate.
Does anyone know of a good and up-to-date list of
platforms and the JDK
versions they support? I haven't found one. Sun's
isn't ready, yet:
http://java.sun.com/j2se/1.4.2/ports.html
Another point of interest is that 1.5 is available in beta releases. 
1.5 contains changes to the language, the only ones since 1.1, IIUC.  I 
suspect that any vendor who takes Java seriously will port 1.5 as a 
matter of urgency.  IBM e.g., has 1.3 and 1.4 for AIX and z/OS (what 
level of 1.4 I am not sure.)  Linux/390 also has 1.4.

We're talking about a product (1.0) without a definite release date, but 
unlikely before late 2004.  I hope to have a very limited functionality 
available in alt-design by mid-year.  In any case, I expect that by the 
time anyone is using alt-design in anger, 1.4 will not be a problem.

The 0.20 series is supported on 1.3, so an important question is: what 
is the expected timeframe for availability of 1.4 for those users who 
are currently restricted to 1.3?  Vendors should be able to provide 
their users with some indication of this.  We should at least ask the 
question in any survey of users.  An ancillary question is: what is the 
user's expected timeframe for migration?

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


Re: Unnesting properties and makers.

2004-01-25 Thread Peter B. West
J.Pietschmann wrote:
...
Well, one of the problems with the FO spec is that section 5.9
defines a grammar for property expressions, but this doesn't
give the whole picture for all XML attribute values in FO files.
There are also (mostly) whitespace separated lists for shorthands,
and the comma separated font family name list, where
a) whitespace is allowed around the commas and
b) quotes around the names may be omitted basically as long
 as there are no commas or whitespace in the name.
The latter means there may be unquoted sequences of characters
which has to be interpreted as a single token but are not NCNames.
It also means the in the font shorthand there may be whitespace
which is not a list element delimiter. I think this is valid:
 font=bold 12pt 'Times Roman' , serif
and it should be parsed as
 font-weight=bold
 font-size=12pt
 font-family='Times Roman' , serif
then the font family can be split. This is easy for humans but can
be quite tricky to get right for computers, given that the shorthand
list has a bunch of optional elements. Specifically
 font=bold small-caps italic 12pt/14pt 'Times Roman' , A+B,serif
should be valid too. At least, the font family is the last entry.
Note that suddenly a slash appears as delimiter between font size
and line height...
...

Alt-design takes a two-stage approach to parsing.  In the first stage 
the basic datatypes are detected.  Where there are nasty constructs hung 
over from CSS, as in 'font', the elements are collected into 
PropertyValueLists, in a manner dependent on whether the components were 
space or comma separated.  From the javadoc comment to the 'parse' 
method in ...fo.expr.PropertyParser

* Parse the property expression described in the instance variables.
*
* pThe ttPropertyValue/tt returned by this function has the
* following characteristics:
* If the expression resolves to a single element that object is returned
* directly in an object which implements PropertyValue/tt.
*
* pIf the expression cannot be resolved into a single object, the set
* to which it resolves is returned in a ttPropertyValueList/tt object
* (which itself implements ttPropertyValue/tt).
*
* pThe ttPropertyValueList/tt contains objects whose corresponding
* elements in the original expression were separated by emcommas/em.
*
* pObjects whose corresponding elements in the original expression
* were separated by spaces are composed into a sublist contained in
* another ttPropertyValueList/tt.  If all of the elements in the
* expression were separated by spaces, the returned
* ttPropertyValueList/tt will contain one element, a
* ttPropertyValueList/tt containing objects representing each of
* the space-separated elements in the original expression.
*
* pE.g., if a bfont-family/b property is assigned the string
* emPalatino, New Century Schoolbook, serif/em, the returned value
* will look like this:
* pre
* PropertyValueList(NCName('Palatino')
*   PropertyValueList(NCName('New')
* NCName('Century')
* NCName('Schoolbook') )
*   NCName('serif') )
* /pre
* pIf the property had been assigned the string
* emPalatino, New Century Schoolbook, serif/em, the returned value
* would look like this:
* pre
* PropertyValueList(NCName('Palatino')
*   NCName('New Century Schoolbook')
*   NCName('serif') )
* /pre
* pIf a bbackground-position/b property is assigned the string
* emtop center/em, the returned value will look like this:
* pre
* PropertyValueList(PropertyValueList(NCName('top')
* NCName('center') ) )
* /pre
In the second stage (refineParsing) the lists are analysed in their 
context (e.g. 'font') and the appropriate final values are developed.

The maintenance branch tried to unify all cases into a single
framework, which quite predictably resulted in a complex and
somewhat messy code. It's also less efficient than it could be:
format=01 is (or would be) indeed parsed as expression, while
an optimized parser can take advantage of the lack of any string
operations and look for quoted strings and function calls only,
returning the trimmed XML attribute value otherwise.
This sounds promising.

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


Compiling HEAD

2004-01-23 Thread Peter B. West
Is HEAD supposed to be compiling?  I'm getting errors starting at 
datatypes/ColorType.java.

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


Alt-design: framework for marker handling

2004-01-23 Thread Peter B. West
Recent commits to alt-design have laid the groundwork for handling of 
fo:marker within fo:static-content.

...xml.SyncedXmlEventsBuffer now extends 
...datastructs.SyncedCircularBuffer and implements 
...xml.XmlEventSource.  A new class, ...xml.XmlEventsArrayBuffer, also 
implements XmlEventSource.

...xml.XmlEventReader, which has been extracted from 
...xml.SyncedXmlEventsBuffer, requires an XmlEventSource argument to its 
constructor, and provides a general pull-parsing mechanism based (for 
now) on an XmlEventSource, and later, probably, an XmlEventSourceStack.

...fo.flow.FoMarker and ...fo.flow.FoStaticContent both use a new method 
in XmlEventReader to flush their contents into an XmlEventArrayBuffer, 
for later reading during the construction of static regions.

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


Re: Unnesting properties and makers.

2004-01-23 Thread Peter B. West
Finn Bock wrote:

I have not yet removed the properties.xsl file from CVS. I guess it 
should be removed since it isn't used anymore.


[J.Pietschmann]

I think you could leave the file there for now. 


Ok.

It should be
sufficient to  inactivate the related task in the buildfile
(for example putting it in an XML comment).


Too late for that, but I'll reactive the lines as comments tomorrow.

Does anyone know why we wrap the datatypes instances in a property 
instance?


No.

Actually we should strive to use a proper parse tree for
property expressions:
1. Create a few classes for the symbols in the property
  expression grammar (section 5.9 of the spec). I think we need
 as terminals
 - AbsoluteNumeric
 - RelativeNumeric
 - Color (the #N thingy)
 - String (aka Literal)
 - NCName (everything else, basically, including enum tokens and
  inherit)
 and for the nonterminals
 - PropertyFunction
 - Some classes for the operators
2. Write a proper parser (maybe using ANTLR, at least for bootstrap)
 which produces a proper parse tree.
With my naive understanding of parsing as a two-stage process (lexemes 
- higher level constructs) I have been curious about earlier comments 
of yours about multi-stage parsing.  Can ANTLR do this sort of thing?

3. Add methods to the objects for resolving relative numeric values
 (percentages, em) and for evaluation.
4. Perhaps add constant folding to the parser.


Interesting. What issues do we have in property parsing that is solved 
by this? I'm only aware of arithmetic on relative numerics which doesn't 
work.
Given the amount of hacking I had to do to parse everything that could 
legally be thrown at me, I am very surprised that these are the only 
issues in HEAD parsing.

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


Iframes

2004-01-21 Thread Peter B. West
Andreas L. Delmelle wrote:
-Original Message-
From: Peter B. West [mailto:[EMAIL PROTECTED]

I assume this problem is with the iframes?



Well, not my eye-frames... but if that's what these charming windows on the
sources are called, then, yes.
Anyway, this could well be added as a feature to the other fop-dev pages, if
you ask me.
Andreas,

Thanks for the vote of confidence.  I agree with you entirely, which may 
not come as a surprise to you.  I used XEmacs to generate the html, but 
there is a better way.  When I was working on it, Nicola Ken Barozzi was 
trying to integrate the SourceForge Javasrc project into Alexandria, but 
it was stalled due to licensing issues.

I think that has since been resolved, and Javasrc is available.  There 
was some talk about providing it for the automatic generation of the 
codebase in html.  The nice thing about Javasrc is that it provides 
targets for just about everything in the source files.  Combining such a 
html codebase with documentation, such as is done in alt-design is a 
powerful way to document code.  As long as the references into the code 
remain valid, the documentation is automatically updates with the latest 
version of the source.  If the source changes too much, the links break, 
and Forrest output could be used to flag such breakages.

Not having been there for a while, I'm not sure if there are new 
facilities in Forrest that mean I can re-organize the documentation.

The other issues I had were, as you have noted, browser-related.  I went 
for DOM support, but even so, I found that IE and Mozilla/Netscape 
differed in significant ways.  I even found that the behaviour of 
Mozilla differed between linux and windows.  Such issues should 
gradually clear up.

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


Re: @author tags in source files (Was re:cvs commit....)

2004-01-20 Thread Peter B. West
Glen Mazza wrote:
Indeed, last vote about 6-8 months ago was to
deprecate the @author tags, and that rule is still on
our web site.  We'll need a revote to allow them.  As
a committer, I personally have never bothered with
@author tags, but I do like how they show outside
developer and corporate contributions to our project. 

The Batik team has some 1800 attributions of various
developers, Xalan checks in with about 650.  Cocoon
seems to use them as well.  (Those are the only
projects I've checked, I don't know how Jakarta is.)
After layout and properties are done--I would be
thrilled if some companies, liking our product, decide
to donate us specific renderers--maybe HP would have a
team do a PCL renderer for us, IBM another.  Or maybe
a bright small company wants to advertise its skills. 
If they want to have their names on an @author tag, 
that's a very cheap price for us to pay. 

Before we put on a lawyer hat and declare that @author
tags threaten to take precedence over the Apache
license--let's take this issue to the ASF for
guidance.  (After all, they might have legal aspects,
and they have drawbacks in that they can get messy if
overused.)  As far as I can tell from the other
projects though, @author tags are still kosher.
Dirk-Willem, does Apache have any position on @author
tags or other author attributions in source files? 
See below for examples.

Thanks,
Glen
[1]
http://cvs.apache.org/viewcvs.cgi/xml-fop/src/org/apache/fop/render/awt/Attic/AWTRenderer.java?rev=1.45view=auto
[2]
http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java?rev=1.13view=auto
[3]
http://cvs.apache.org/viewcvs.cgi/xml-batik/sources/org/apache/batik/parser/AWTPolylineProducer.java?rev=1.3view=auto
[4]
http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/java/org/apache/cocoon/reading/ImageReader.java?rev=1.4view=auto
--- J.Pietschmann [EMAIL PROTECTED] wrote:

[EMAIL PROTECTED] wrote:

 removed former contributor
 section in favor of going back to giving credit
within source files.

Uh, oh. That's not supposed to be a change anybody
can make
on a whim.
J.Pietschmann
Again, I'm sorry I didn't contribute to this debate earlier.

There is no conflict between the ownership of the copyright and the 
authorship.  Last I heard, most of the copyright in the Beatles 
catalogue was owned by Michael Jackson.  He gets the money, while Lennon 
and McCartney (and Harrison and Starr) get the credit.

It seems to me that a major motivation for writing OSS is precisely the 
recognition.  When alt-design is completed, I will probably have written 
the bulk of it, as well as designing it, and I have no intention of 
removing my @author tags.   Why should they be removed in favour of a 
mailing-list address?

In respect of multiple @author tags, Sun says only that they should be 
added in chronological order, with (it follows) the author of the class 
first.  They add: 'In these days of the community process when 
development of new APIs is an open, joint effort, the JSR can be 
consider the author for new packages at the package level. For example, 
the new package java.nio has @author JSR-51 Expert Group at the 
package level. Then individual programmers can be assigned to @author at 
the class level.'

I would expect that any significant addition (from a new, or completely 
rewritten method) or significant accumulation of minor fixes, rates a 
mention in the source, and on the web page.  Apart from the warm inner 
glow, what other reward is there?

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


Re: cvs commit: xml-fop/src/documentation/content/xdocs team.xml

2004-01-19 Thread Peter B. West
[EMAIL PROTECTED] wrote:
gmazza  2004/01/19 15:56:50

  Modified:src/documentation/content/xdocs team.xml
  Log:
  Updated team page--moved Finn, Andreas, Chris and Peter to active status;
  set Victor and Keiron to inactive status, removed former contributor
  section in favor of going back to giving credit within source files.
I'm sorry that I didn't contribute to the discussion on this, but I 
think that Mark Lillywhite deserves an honourable mention on the web 
site.  He saved Fop for many users by introducing page-sequence formatting.

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


Re: Comments on new property maker implementation

2004-01-18 Thread Peter B. West
Finn Bock wrote:
I probably need an example of what you thinking are here. Right now in 
HEAD all the color keywords are stored in a HashMap created in 
GenericColor so the keywords initialization is already done. Putting the 
keywords in static array would require us to somehow search the array 
and I don't see how that will be much faster.

You should perhaps also be aware that the values in a static array gets 
assigned to the array one element at a time. So

static int[] a = { 101,102,103,104,105,106,107,108 };

becomes in bytecodes:

Method static {}
   0 bipush 8
   2 newarray int
   4 dup
   5 iconst_0
   6 bipush 101
   8 iastore
   9 dup
  10 iconst_1
  11 bipush 102
  13 iastore
  14 dup
  15 iconst_2
  16 bipush 103
  18 iastore
  ...
and so on for each index. (In case you don't know bytecode by heart, 
iconst and bipush both push a constant on the stack and iastore pops 3 
items from the stack; an index, a value and an array and assign the 
value to the index in the array).
Finn,

I can't imagine there is anyone here who doesn't know bytecode by heart. 
 (Except maybe me.)

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


Re: HashMap

2004-01-16 Thread Peter B. West
Andreas L. Delmelle wrote:
Hiya Peter,

...
Seriously? Not at all! (BTW: Shouts for your alt-design pages. Very
comfortable --although IE seems to have a little trouble with the JavaScript
adding a horizontal scrollbar instead of a vertical one; with other browsers
no prob whatsoever.)
Andreas,

I assume this problem is with the iframes?

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



XSL 1.1 WD fo:retrieve-table-marker

2004-01-16 Thread Peter B. West
Paul,

Excuse me for firing off a comment from the hip, but I have just looked 
at the putative fo:retrieve-table-marker FO.  Prima facie, it looks to 
behave like fo:retrieve-marker, except with respect to table headers and 
footers.

The difference that immediately occurs to me is that fo:retrieve-marker 
can logically occurs after the layout of region-body, and, because the 
dimensions of those regions which are the targets of static-content are 
size-constrained by the applied master-page.  This simplifies the 
resolution of the marker.

With fo:retrieve-table-marker, the possibility seems to exist that the 
formatting of a table-marker may change the region-body layout, and the 
page boundaries, to the extent that the source fo:marker may change.  We 
have then another one of those awkward catch-22s of page layout.

I may have missed something in my brief scan of the text, and I would 
appreciate any light on the subject.  If my knee-jerk response is 
correct, fo:retrieve-table-marker can just be added to the list of 
layout nasties.  It is hardly a show-stopper, given the similar 
unavoidable problems that already exist.

Another thing that occurs to me as a result of these considerations is 
that the editors might comment (even non-normatively) on such issues, 
and possible strategies for resolving them.  Your own non-normative 
feedback would be much appreciated.

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


Re: XSL 1.1 WD fo:retrieve-table-marker

2004-01-16 Thread Peter B. West
Peter B. West wrote:
Paul,
...
The difference that immediately occurs to me is that fo:retrieve-marker 
can logically occurs after the layout of region-body, and, because the 
dimensions of those regions which are the targets of static-content are 
size-constrained by the applied master-page.  This simplifies the 
resolution of the marker.
I'll say that again.

The difference that immediately occurs to me is that fo:retrieve-marker 
can logically occur after the layout of region-body, and, because the 
dimensions of the target regions of static-content are size-constrained 
by the applied page-master, the layout of those markers can have no 
impact on the layout of region-body.  This simplifies the resolution of 
the fo:retrieve-markers.

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


Re: HashMap

2004-01-15 Thread Peter B. West
Andreas L. Delmelle wrote:
Depends on what portions you're used to, not? ;)  I'd never trust public
media though, when it comes to providing us with an accurate estimate of
this figure... many would have us believe that the DRD is 0.0 --sigh. When
is anyone going to realize the trouble is (practically) never the
*buyers/consumers*, even less so the *makers/producers*. Problem is always,
as with most goods, the *sellers/distributors* :) An _honest_ salesman?
Honestly...
Andreas,

I hope you're not casting aspersions on my producer/consumer buffers?

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


Re: [Bug 25480] - Experimental performance improvements.

2004-01-14 Thread Peter B. West
Finn Bock wrote:
[Peter B. West]

Alt-design (trying the hyphen for a while) takes different approaches 
at different times.  While building the subtree of any node, all of 
the properties are maintained in a HashMap, along with a BitSet of 
specified properties.

When the subtree construction is complete, the HashMap and BitSet are 
used to build the sparse array of only the relevant *resolved* 
property values 


If I understand the Alt-design code correctly, the function calls, like 
from-parent(), are resolved but percentage are not resolved at this 
point, but still saved as an IndirectValue, right? The percentage will 
be resolved at a later stage?
Basically, yes.  There are complications with from-parent() and 
from-nearest-specified-value() when used with shorthands.  These have 
lead to the creation of the FromParent and FromNearestSpecified 
pseudo-types.

(not properties - one of the differences with HEAD) 


I think you have mentioned this before, but is it such a big difference? 
HEAD wraps its datavalues in a very thin Property wrapper, but otherwise 
there is a one-to-one binding between a HEAD Property and its value.
I freely admit that when I started working with properties, I had only 
the fuzziest notion of the way they were processed in the original code. 
 I'm not a lot better informed now.  However, the idea of expressing 
properties in terms of data values still seems to me to be strange. 
Even though individual properties may *eventually* resolve to a 
particular basic type, the road there can be very complicated.  It 
seemed to me that I should be able to process property values into a 
range of possible data types (e.g. enumerations and lengths), postponing 
the resolution into a particular, say, length, as long as possible.

The other issue was that some types (enumerations, strings) resolve 
eventually into very different types depending on the property on which 
they are expressed.  The Rec. (and consequently the parser) allow a 
multiplicity of different data types in the expressions on many 
properties.  It just seemed cleaner to me to separate properties (which 
have certain static characteristics) out from data types.  That way, I 
have the option of resolving different datatypes into their final 
datatype downstream of the parsing and FO tree building.

I am open to enlightenment on this.

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


HashMap

2004-01-14 Thread Peter B. West
A friend was watching over my shoulder as I was responding to an earlier 
message on fop-dev.  HashMaps... I won't say what image that conjures 
up for me.  Well?  A map of where you have the stash.

I never thought of it that way.

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


Re: [Bug 25480] - Experimental performance improvements.

2004-01-13 Thread Peter B. West
Andreas L. Delmelle wrote:
Sorry for the long post... Just trying to put a few ideas together.


Alt-design (trying the hyphen for a while) takes different approaches at
different times.  While building the subtree of any node, all of the
properties are maintained in a HashMap, along with a BitSet of specified
properties.
When the subtree construction is complete, the HashMap and BitSet are
used to build the sparse array of only the relevant *resolved* property
values (not properties - one of the differences with HEAD) and then
thrown away.


Yum... so a Collection of Objects is traded for a handful of --what? (Would
this be the propertyValue singletons you mention?)
If I mentioned PropertyValue singletons, it was a slip of the fingers. 
I maintain Property singletons, which are exist solely to provide access 
to certain static information about individual properties.

What happens with
'unresolvable' Props at that point (for the cases you mention below)?
See the package org.apache.fop.datatypes.indirect, especially 
IndirectValue, which the others extend.  IndirectValue itself extends 
AbstractPropertyValue.  Unresolved values take their place alongside the 
resolved properties.

Do
they get thrown away, or placed in a sort of Property stack for later
accessing? If so, how exactly do you indicate in the FObj (or FONode) that
the property in question still has to be resolved? So that, when Layout asks
for this property, it is signaled that some computations still need to be
made? (Pardon me if these questions mean I haven't read your docs thoroughly
enough; I did read some of them, but it seems I still miss a bit of
technical background to fully understand it.)
The docs are far from adequate.


This approach has to be modified in two environments - fo:static-content
and fo:marker.  In the case of fo:marker, the inherited environment is
not known at parse time, and in the case of static-content, the
appropriate fo:retrieve-marker subtrees are not know until the
region-body area tree is constructed.


Yes... cases I was overlooking --not so plain inheritance as the FObj's for
static-content appear only once or twice every page-sequence, but their
inherited properties and values vary, depending on the further processing of
the tree. Still, I'm wondering whether you really need to re-parse them (as
you indicated)... Couldn't you just, say, keep the Property alive and alter
its value when needed? (If this would save you any re-initializing, I mean)
The re-parsing idea seems very interesting to be able to say after a
threesome of pages have been processed: collapse the branches of the FOTree
that have already been layed out to the level below the current fo:flow (or
fo:block; in any case some logical point of reference). If downstream, it
turns out that their layout needs to be modified again (what are the odds?
any way of predicting this?), one could trigger a re-parse from the subtree
in question onwards. (This would, I think, save us some memory)
The re-parse may not be strictly necessary, but it is a workable first 
cut.  Generally, static-content and markers will not be large subtrees, 
so re-parsing them ought not to have a major impact.  This can be 
experimented with once the layout is working.  The beauty of the 
approach is that it simplifies the logic, without (I hope) costing too 
much in performance.

In terms of the re-layout, re-parsing is not required (Re, re, re your 
boat...)  IndirectValues will need to be re-evaluated in the new 
context, but the process of re-layout is not markedly different from the 
normal layout process.  Any particular lineage descendant from an 
fo:flow must be able to adapt to a new environment.

Because the page is a logical unit different from the flow, some line of 
descent from the fo:flow will be unresolved when any particular page, 
which is being laid out from that flow, fills up.  The incomplete 
lineage must somehow be associated with the new page, whose region-body 
dimensions may be different.  The layout must then proceed from the 
point at which the previous page filled.

There are similarities here with backtracking.  Backtracking layout 
involves backtracking to a particular lineage in a particular state 
(even it that is the beginning of an fo:flow.)

  Perhaps the
same approach can be taken WRT tables: collapse all finished rows, so their
cells are released. When their layed-out state turns out to be insufficient,
start processing again from the row in question onwards, *with* the
knowledge of what lies ahead this time...
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: [Bug 25480] - Experimental performance improvements.

2004-01-12 Thread Peter B. West
Finn Bock wrote:
[Glen]

One thing I'm missing here, for Finn's design below:

values[0] = null // always null.
values[1] = reference to a 'foo' Property instance
values[2] = reference to a 'baz' Property instance
Can't we just have, say, values[1] refer to the
parent's Property instance in cases where inheritance
is applicable?
I.e., for all those references to the 'foo' property
instance for the children of an FO where that value
would be inherited, we don't have to create a new
Property instance, just a reference to the inherited
instance.


Right, that is also the way I see it.

But if the problem is the *recursion* necessary to
determine the property instance to inherit--here, not
the memory problem, but processing speed--I'm thinking
of a PropertyWindow instance as follows:
A PropertyWindow would be used temporarily during FObj
property initialization to hold references to all the
property instances that would be relevant for that
FObj should a property not be explicitly defined. 
So, to populate the property instances for a
particular FObj, i.e., the values array:


Pardon me for repeating what might be obvious, but I'll like to take
a look at what information we want to store at each FObj. I can come
up with 3 different strategies:
1) Only store the specified properties. That is what HEAD does now.
2) Put the relevant properties in a fast Property[] array and the
   remaining specified properties in a HashMap. For fo:root the result
   would be an array of size 1 for the 'media-usage' property.
3) Expect to store every valid property. For fo:root that would mean
   allocating an array large enough to store every defined property.
   This is what my patch does, and the values array works as the
   PropertyWindow.
As I understand your PropertyWindow proposal, it would allow us to
implement no. 2) above. I'll try to come up with some numbers to see
how much memory that would use/save compared to 1) and 3).
Alt-design (trying the hyphen for a while) takes different approaches at 
different times.  While building the subtree of any node, all of the 
properties are maintained in a HashMap, along with a BitSet of specified 
properties.

When the subtree construction is complete, the HashMap and BitSet are 
used to build the sparse array of only the relevant *resolved* property 
values (not properties - one of the differences with HEAD) and then 
thrown away.

This approach has to be modified in two environments - fo:static-content 
and fo:marker.  In the case of fo:marker, the inherited environment is 
not known at parse time, and in the case of static-content, the 
appropriate fo:retrieve-marker subtrees are not know until the 
region-body area tree is constructed.

In general, the impact on storage of maintaining full details for 
fo:static-content and fo:marker will not be huge, even if these are 
parsed as encountered.  However, the plan for alt-design is 1) not the 
parse an fo:marker subtree unless and until it is required, and 2) to 
re-parse fo:static-content for each page after the region-body area tree 
has been constructed. (I'm working on these modifications now.)

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


Re: Remember to update the copyright year

2004-01-09 Thread Peter B. West
Jeremias Maerki wrote:
Fellow committers

We've got a new year. Please remember to update the copyright year on
every file you change.
Thanks for the reminder, Jeremias.

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


Re: Fix for handling column-spanning ( and a few column props )

2004-01-09 Thread Peter B. West
--- Additional Comments From [EMAIL PROTECTED]  2004-01-10 00:25 ---
OK, I think I found the solution to the first case (as already mentioned to 
Finn off-list):
Re: off-list discussions.  My own view is that off-list discussion 
should be restricted to personal or inter-personal matters.  I have only 
posted off-list on a few occasions, and I think three times before doing 
so.  If the question is at all technical, post to the list.  This is how 
all of the developers keep abreast of the development of ideas in design 
and implementation.  If we don't follow this policy, we risk fostering 
cliques, and anyone who tries to follow the development of an idea in 
the archive will be at a loss.

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


Re: Fix for handling column-spanning ( and a few column props )

2004-01-09 Thread Peter B. West
Peter B. West wrote:
--- Additional Comments From [EMAIL PROTECTED]  2004-01-10 
00:25 ---
OK, I think I found the solution to the first case (as already 
mentioned to Finn off-list):


Re: off-list discussions.  My own view is that off-list discussion 
should be restricted to personal or inter-personal matters.  I have only 
posted off-list on a few occasions, and I think three times before doing 
so.  If the question is at all technical, post to the list.  This is how 
all of the developers keep abreast of the development of ideas in design 
and implementation.  If we don't follow this policy, we risk fostering 
cliques, and anyone who tries to follow the development of an idea in 
the archive will be at a loss.
P.S.  Lest anyone think this is directed at him, I confess to being a 
recent culprit in my discussions with John about patches to alt.design.

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


Re: Remember to update the copyright year

2004-01-09 Thread Peter B. West
Andreas L. Delmelle wrote:
If nobody objects, this seems like an ideal pesky task for a freshman...

I mean: would it help if I (or Chris, or Clay ;P ) just checked out all of
HEAD (to begin with), run a S  R script on all the java and generator
sources to update the year and enter it as a patch in Bugzilla or something?
Unless the intention is to only update files that are actually changed. In
that case I haven't posted anything.
I'm not sure about this, but I would have thought we only change the 
notice in files that are modified.

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


Re: Fix for handling column-spanning ( and a few column props )

2004-01-09 Thread Peter B. West
Andreas L. Delmelle wrote:
Morning Peter! ('t is morning over there not? :) )

Completely agree with you on this. Was a mere exception, not being
subscribed to fop-dev at work. Just having a bit of spare time over there,
decided to have a look at Finn's test cases and in all my excitement I just
wanted to post it to _someone_.
Just so you know...

Enjoy your w.e.!

Afternoon.  Working this w.e.

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


Re: Dropping support for 1.3 (was Re: PropertySets)

2004-01-07 Thread Peter B. West
J.Pietschmann wrote:
Chris Bowditch wrote:

The main thing to bear in mind is that a few platforms dont support 
the later versions of Java. This will mean excluding those users from 
deploying FOP on their production servers and mainframes.


Well. Java 1.4 has some added goodies, in particular nestable exceptions
which will make problem tracking much easier, the BIDI support, other AWT
fixes and extensions and JCE by default (people will still have to get a
RC4 provider though :-/).
And 1.4 has java.util.logging and java.util.prefs.

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


Re: Attribute processing order

2004-01-07 Thread Peter B. West
Simon Pepping wrote:
On Thu, Jan 01, 2004 at 12:20:09AM -, [EMAIL PROTECTED] wrote:

--- Additional Comments From [EMAIL PROTECTED]  2004-01-01 00:20 ---
Alt-Design addresses this problem by the simple expedient of processing
properties in integer property number order.


In main that is not possible. When a compound attribute is
encountered, a compound property is made in which the components are
set to default values. Then the specified component is set to the
specified value. After this it cannot be told which components were
specified by the user and which were defaulted by the
program. Therefore, before dealing with the compound attribute, the
base attribute should be processed if that is specified as well.
This would be different if the compound property would not be filled
with default components, but with null components.
That's why a flat property space is not only feasible, but desirable. 
Compound properties are an unnecessary complication.

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


Re: PropertySets

2004-01-05 Thread Peter B. West
Chris Bowditch wrote:
Glen,

Ive just noticed that the PropertySets class uses methods on 
java.util.bitset that only exist since JDK 1.4. Namely:

cardinality
nextBitSet
So you can no longer build with 1.3

Chris
Chris,

Thanks for pointing this out.  I had not noticed when I was using the 
functionality (and very useful functionality it is.)

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


Immediate plans for alt.design

2004-01-03 Thread Peter B. West
Fopsters,

Having woken from my torpor, I am planning to re-activate alt-design
development.
My immediate plans include:

Standardizing the name of alt.design.

Marker processing
. Generalise SyncedFoXmlEventsBuffer to handle events from any supported
   namespace
. Generalise buffer definitions to support circular and fixed-length
   XML event buffers
. Generalise SyncedFoXmlEventsBuffer to read from any buffer type
   supporting the buffer Interface
. Modify SyncedFoXmlEventsBuffer to read from a stack of buffer
   Interfaces, popping exhausted event buffers as required
. Modify initial marker processing to read fo:marker subtree events into
   individual marker event buffers
. Modify fo:static-content handling to (initially) read static-content
   XML events into per-page static-content buffers
The marker handling will be more or less in accordance with the notes 
posted here:
http://marc.theaimsgroup.com/?l=fop-devm=105455437221298w=4

Percentage expressions
. Add RPN expressions as a PropertyValue type, along the lines proposed 
here:
http://marc.theaimsgroup.com/?l=fop-devm=105391772500443w=4

Area construction
. Make the first attempts at area resolution on a per-page basis,
   providing immediate area context for FOs for resolution of
   percentage based expressions in most cases.
Corresponding properties
. Add corresponding property handling.
That should keep me (and anyone else who wants to become involved) busy 
for a while.

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


Changes to Property sub-classes

2004-01-03 Thread Peter B. West
I have just made a series of changes to property processing in
alt.design, intended to 1) make the process look more familiar to Java
familiars, and 2) speed things up a bit.
property = (Property)(pclass.newInstance());
properties[propindex] = property;
// Set inheritance value
if ((inherited[propindex]
= pclass.getField(inherited).getInt(null))
!= Property.NO)
inheritedprops.set(propindex);
// Set datatypes
datatypes[propindex] = pclass.getField(dataTypes).getInt(null);
// Set initialValueTypes
initialValueTypes[propindex] =
pclass.getField(initialValueType).getInt(null);
traitMappings[propindex] =
pclass.getField(traitMapping).getInt(null);
Basically, the foregoing code, which used reflection to obtain
 public static fixed int
vales from the Property sub-classes, has been replaced by
// Instantiate the class
property = (Property)(pclass.newInstance());
properties[propindex] = property;
// Set inheritance value
if ((inherited[propindex]
= property.getInherited())
!= Property.NO)
inheritedprops.set(propindex);
// Set datatypes
datatypes[propindex] = property.getDataTypes();
// Set initialValueTypes
initialValueTypes[propindex] = property.getInitialValueType();
traitMappings[propindex] = property.getTraitMapping();
relying on the newly added getters in Property and its subclasses.
Because of all the bad press for reflection, I expected to see an
improvement of the speed of processing.  I was disappointed in this.
Unfortunately, I have only a poorly endowed laptop at the moment, so it
is difficult to get sound measurements while Eclipse and Mozilla are
running, but the results were inconclusive, sometimes recording faster
times for the original code, sometimes for the new version.  In any
case, the approach I originally took incurs no performance penalty under
1.4, and may even be slightly faster.
However, given the disturbance which seems to overcome Java programmers
when face by code which is not strictly OO, I have checked in the new
version.  It may make cross-fertilization with Finn's work easier.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html



Unnecessary import of Constants

2004-01-03 Thread Peter B. West
Eclipse is still complaining to me 271 times of the unnecessary import 
of fo.Constants in the files of 
build/gensrc/org/apache/fop/fo/properties.  It also whinges about an 
unnecessary semi-colon in TextAlignLastMaker.java from the same 
directory.  It's actually an empty else condition.  Is anyone inclined 
to fix the generator, or is all of this going into CVS or is it all 
being superseded by Finn's new approach?

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


Re: cvs commit: xml-fop/src/java/org/apache/fop/svg AbstractFOPTranscoder.java

2004-01-03 Thread Peter B. West
This one had a suspiciously large number of unused imports.  I couldn't 
see where they might be required, but someone else may have a more 
accurate idea of why they must be reinstated.

Peter

[EMAIL PROTECTED] wrote:
pbwest  2004/01/02 19:23:51

  Modified:src/java/org/apache/fop/svg AbstractFOPTranscoder.java
  Log:
  Remove unused imports to quieten Eclipse.
  
  Revision  ChangesPath
  1.4   +0 -6  xml-fop/src/java/org/apache/fop/svg/AbstractFOPTranscoder.java
  
  Index: AbstractFOPTranscoder.java
  ===
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/svg/AbstractFOPTranscoder.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractFOPTranscoder.java	7 Nov 2003 21:54:32 -	1.3
  +++ AbstractFOPTranscoder.java	3 Jan 2004 03:23:51 -	1.4
  @@ -50,17 +50,12 @@
*/ 
   package org.apache.fop.svg;
   
  -import java.awt.Dimension;
  -import java.awt.geom.AffineTransform;
  -import java.awt.geom.Dimension2D;
  -
   import org.xml.sax.EntityResolver;
   
   import org.apache.avalon.framework.logger.ConsoleLogger;
   import org.apache.avalon.framework.logger.LogEnabled;
   import org.apache.avalon.framework.logger.Logger;
   import org.apache.batik.bridge.UserAgent;
  -import org.apache.batik.bridge.UserAgentAdapter;
   import org.apache.batik.dom.svg.SVGDOMImplementation;
   import org.apache.batik.dom.util.DocumentFactory;
   import org.apache.batik.transcoder.ErrorHandler;
  @@ -70,7 +65,6 @@
   import org.apache.batik.transcoder.image.ImageTranscoder;
   import org.apache.batik.transcoder.keys.BooleanKey;
   import org.apache.batik.util.SVGConstants;
  -import org.apache.batik.util.XMLResourceDescriptor;
   import org.w3c.dom.DOMImplementation;
   
   /**


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


Recent tidying of alt.design

2004-01-03 Thread Peter B. West
Recent minor changes to alt.design triggered by comments from John 
Austin.  In particular, John drew my attention to HashMap 
initialization.  I naively assumed that providing an initial size to a 
HashMap would take account of the default load factor.  Re-reading the 
documentation, I came to the conclusion (with John) that this was not 
the case.  That is, creating a hash with
  hm = new HashMap(20);
then adding 20 items to it, will force a rehash after 75% of the items 
have been added.  Silly as it seems, that appears to be the way of it. 
Does anyone else have any experience of this?

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


Re: AW: help with upload the ssh key

2004-01-03 Thread Peter B. West
Glen Mazza wrote:
Thanks, Peter, that helped a lot--I downloaded
puttygen and am working with it now.  Three more
questions if anyone can help:
1) I guess we're to use SSH2 and not SSH1, but does it
matter whether we use DSA or RSA?  Is one much slower
than the other?  I'll use DSA--it apparently works for
you and Joerg.
I don't know whether DSA or RSA is preferable, but SSH2 is definitely 
preferable to SSH1.

2) Also, you placed your public key in
authorized_keys, not authorized_keys2 like Joerg
has.  (Both of you are using DSA apparently.) Also,
PuttyGen seems to indicate that authorized_keys is
only for SSH1/RSA and authorized_keys2 is for SSH2
(RSA or DSA version).  Does this matter--shouldn't you
have yours in authorized_keys2?
When I set mine up (at the same time as Joerg) I recall having to use 
authorized_keys2 (and biting off chunks of my keyboard discovering 
that.)  Since then, I think the situation has changed and the use of 
authorized_keys2 is deprecated (or so I was told recently on a RH9 list.)

3) To use Putty on my work computer (besides my one at
home--where I've just created the key), should I
create another private/public key pair, and append the
public key to my authorized_keys/keys2 file, or just
transfer my private key to the second computer (via
floppy disk, etc.)--what is the more usual/accepted
practice?
When I was working with Putty to a Linux server, I found that it was 
easiest to generate the keys on the linux machine, move the private key 
 to Windows, and use the import facility in Putty.

Work environments tend to be a bit insecure, especially it you are using 
pageant (or ssh-agent on linux) to save having to key in the passphrase. 
  If you are accessing the repository from both your work and home 
machines though, it doesn't seem to make much sense to have different keys.

I used the key i have already used for accessing
jfor's cvs repository at
sourceforge. I created the key about 6 month ago
with puttygen. I ran it on
my local computer (win2000 prof.).
But you cannot use the files which puttygen creates
when you click on one of
the save buttons. Instead i copy-and-pasted the
content of the Public key
for pasting into OpenSSH authorized_keys2
file-textbox.
Peter
--
Peter B. West http://www.powerup.com.au/~pbwest/resume.html


Re: [VOTE] Finn Bock for Committer

2003-12-25 Thread Peter B. West
Oleg Tkachenko wrote:
J.Pietschmann wrote:
Glen Mazza wrote:
Therefore, I'm
happy to nominate Finn Bock for committer
+1
+1
+1

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


Re: Merry Christmas/Frohe Weihnachten!

2003-12-25 Thread Peter B. West
Glen Mazza wrote:
Yes, thankfully Bertrand came to the rescue for us
here!
+1
Merry Christmas and Happy New Year everyone!
+1
--- Andreas L. Delmelle [EMAIL PROTECTED]
wrote:
Happy Holidays ( to everyone who cares ) !
Peter

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


usage-context-of-suppress-at-line-break

2003-12-25 Thread Peter B. West
Regarding the recent discussion of space and line break characteristics, 
I recall that Karen was engaged in a very protracted discussion with the 
editors on aspects of these questions.  At one stage they specified a 
new property usage-context-of-suppress-at-line-break to resolve issues 
Karen had raised.  To the best of my recollection, this decision was 
later rescinded, and a clarification added to the pre-existing 
properties.  I have looked for information about this at the W3C, but so 
far have only recovered the note in
http://www.w3.org/2001/10/REC-XSL-20011015-errata

What would be more useful is to trace the complete thread of the 
discussion, including the putative rescinding of this property.  If 
Karen is listening, she may be able to offer some guidance.  I 
remembered this because I added usage-context-of-suppress-at-line-break 
to PropNames.java, and noted that I would have to remove it after I read 
the update from the editors.

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


<    1   2   3   4   5   6   7   8   >