Re: [dev] A word about (missing) Specification Documents and (late) Feature Mails

2006-10-17 Thread Michael Meeks
Hi Uwe,

On Wed, 2006-10-11 at 13:50 +0200, Uwe Fischer wrote:
 Don't get me wrong - I love this feature and I will never say anything 
 negative about Michael Meeks, who surely is a programming genius. ;-)

Haha ;-) the sarcasm detector just exploded.

 How am I supposed to deliver a timely Help for this feature when
 - there is no Spec Doc

Is it necessary to write a full spec. for porting a feature to a new
platform ? I hope not. How about porting all of OO.o to 64bit ? ;-)

 - there is a feature mail very short before the new build that
 contains the feature

Sorry it was rather late, though it's not clear really what to expect
here.

 - there is no one to send questions or issues to?

As far as I can see, I didn't get killed yet :-) on the other hand,
you're guaranteed a more prompt response [ that is if you actually want
one ], by mailing me (or at least CC'ing me) rather than some list I
can't read all of. [ 4817 unread for this list alone ].

 I have many questions, for example
 - will the feature be visible on Linux too (I see it in m187 Sols/Gnome)

Yes - anywhere with gtk+ available.

 - will the feature replace existing quickstarters on Linux or be in 
 parallel?

That is a distribution / vendor choice - but if you read the 'code' of
the existing quick-starters, you will experience the answer :-)

 - the text string on Tools/Options/OOo/General is different from the 
 existing text string on former Windows versions. I have no idea if this 
 change also changes the existing text string for Windows versions to be 
 the same as now on Solaris.

Nope it does not - easy to see from the patch.

 - what about the start parameter -quickstart? Will that work now on 
 UNIX? Must I change the Help here too?

We don't use that flag, so - no clue - no change there AFAIR.

 - why is the Help/Guide check box in the feature mail not marked? We did 
 mention the (Windows-only) Quickstarter at numerous places, as did the 
 OOo community in their printed and online documentation. The fact that a 
 real developer never scans through Help or Guide pages does not mean 
 that a feature is never Help/Guide relevant.

;-) haha - I often use the help myself. On the other hand, we shipped a
version of OO.o with this feature, and the help out of sync. to many
tens of thousands (if not millions) of users in our builds - and so far
I see no bug reports, so ... how important is this truly ?

 - on Windows, installing a patch will first close the application 
 including the Quickstarter. Will it be the same on UNIX?

On Linux (for me) you'd upgrade a native package / apply an O/S patch.
On Unix this is somewhat less problematic than win32 wrt. file locking
etc.

 For me, and may be for a lot of other community members, it is important 
 to get information about new or changed or removed features *early*.
 
 Best practice would be if every Help relevant feature has the 
 helpcontent2 module added, so I (or the developer) can change the help 
 files and have them integrated the same time as the feature.

Hokay - this is great best practise to know, and I'm happy to do it,
but it's the first time I've seen it mentioned.

Where is it documented ? perhaps it is already, but I havn't seen it:

* what module to add the CWS
* list of contact people to poke about updating help 
  what their area of responsibility is so we get the right
  people.
* means of detecting when they are done / assuring response

Then of course we need to find the right place in the wiki to do that,
and - naturally tell people the process has changed [ NB. mailing
individuals is more helpful than posting to a list people don't read ].

Anyhow - I'm sorry if this caused you some grief; hopefully we can get
it right next time, and I hope you like the feature - it substantially
improves code cleanliness, and 2nd start performance.

All the best,

Michael.

-- 
 [EMAIL PROTECTED]  , Pseudo Engineer, itinerant idiot


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



[dev] paths configuration in v2.0.4

2006-10-17 Thread Allen Pulsifer
I'm looking over the new Path's configuration and it seems to me the
implementation is awkward and does not follow the usually configuration
paradigm.

In OpenOffice.org v2.0.3 and prior, paths were configured via
org.openoffice.Office.Common/Path/Default and
org.openoffice.Office.Common/Path/Current.  This mechanism followed the
usual paradigm of key-value pairs, where the key would tell you what
information you were looking for, and the value would tell you the setting.
So for example, if you wanted to know (or set) the default value for the
template's path, you would look at org.openoffice.Office.Common/Path/Default
and retrieve (or set) the value of the key Template.

This system had several advantages:

(a) If you want to know or set the value for a particular key, you can
access it by key name.
(b) The value for a key could be overridden by a short fragment of XML, at
any configuration layer.
(c) The key-value pairs could be stored in a database, in a traditional way.

The new configuration mechanism for v2.0.4, as documented in
http://specs.openoffice.org/appwide/options_settings/OOoPaths.odt, replaces
the usually key-value pairs with the following:

The configuration settings were moved to org.openoffice.Office.Paths.
Within this tree, there is a node for each path (Template, Dictionary,
Basic, etc.).  For each path:

a. There are two key-value pairs, UserPaths and WritePaths, that work as
expected.

b. There is a third subtree, InternalPaths, that contains a set of what
could be considered keys.  These keys work completely differently.  For the
keys in the InternalPaths tree, the key is the value and the value is
completely ignored.  For example, for the Template path, InternalPaths
contains a key named $(insturl)/share/template/$(vlang).  (I've simplified
it slightly by calling this a key; its actually not even a key, it's a group
of type MultiPath that's named $(insturl)/share/template/$(vlang) and
forms another subtree that contains a single key Unused that is completely
ignored.  Thus the name of the group or subtree is what serves as the value,
and both the key within this group and its value are ignored).

This has more than a few disadvantages.  First, as far as I can see (but
please correct me if I am wrong) it is not possible to write a short
fragment of XML that overrides the value of this setting, therefore making
true layered configuration impossible.  Second, it is not possible to look
this value up or set the value by name, instead, to look the value up, or
set the value, you have to already know the value, i.e., the value is looked
up or set by value and has no independent name.

The new path configuration could have been implemented using the key-value
paradigm, and maintaining all its advantages while still accomplishing the
same goals, as follows:

InternalPaths would contain a set.  Each component that wishes to set an
InternalPath would create a key (also known as a node) within this set using
its own name.  For example, the base application would create a key called

org.openoffice.Office.Paths/Template/InternalPaths/org.openoffice.app

An add-on called SuperTemplates by acme.com might create a key called:

org.openoffice.Office.Paths/Template/InternalPaths/com.acme.supertemplates

The value of these keys would be string-lists, just as before.  The
multi-layer configuration parser would take these keys and merge them
together into one long string, just like it does now, except that it would
merge the key values, not the key names.

The advantage of this configuration method is that it maintains the
key-value paradigm.  The value of a key can be looked up without already
knowing a value.  If an administrator wanted to override the value of
Template path used by the application, he/she could do so with a short
fragment of XML that simply replaces the value of
org.openoffice.Office.Paths/Template/InternalPaths/org.openoffice.app.  This
XML fragment would look just like every other XML fragment used to configure
OOo.  Similarly, for each add-on installed, an administrator could customize
the installation by only knowing the names of the components, not the values
of its paths.

If this is a simple change to make, I would propose it be adopted for v2.1.
At minimum, I believe to the extent possible the key-value paradigm for
configuration should be maintained.  There was no reason to break it in
order to allow multiple components to set paths, and by breaking it, some
things that should be simple, both to do and to understand, become much more
difficult.

Sincerely,

Allen

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