GNUe Traffic #29 For 18 May 2002
By Peter Sullivan
Awful pun of the week - ".aq is antarctica - perhaps gnue can move its cvs
there, then code freezes are much easier"
Table Of Contents
* Standard Format
* Text Format
* XML Source
* Introduction
* Threads Covered
1. 6 May 2002 - 8 May 2002 (12 Business objects in GNUe Application
posts) Server
2. 6 May 2002 - 12 May 2002 (7 Danish non-free ERP software firm
posts) bought by Microsoft
3. 8 May 2002 (2 Object Transparency in GNUe
posts) Application Server
4. 8 May 2002 - 14 May 2002 (1 New Toolbar icons
post)
5. 8 May 2002 GNUe Documentation
6. 8 May 2002 Application Server without object
support
7. 8 May 2002 - 13 May 2002 Curses (text-only) Forms client using
nstti
8. 8 May 2002 Possible Application Server
functionality TODOs
9. 9 May 2002 - 13 May 2002 (5 Dots or colons in object names
posts)
10. 9 May 2002 (5 Type definitions in GNUe Application
posts) Server (GEAS)
11. 9 May 2002 - 13 May 2002 (7 Loading methods in GNUe Application
posts) Server
12. 9 May 2002 - 12 May 2002 GNUe Application Server (GEAS)
development
13. 9 May 2002 DCL as a bug-tracking system - and
more
14. 9 May 2002 Grids and scrollbars in Forms
15. 10 May 2002 - 13 May 2002 (2 Hook system for interacting classes in
posts) GNUe Application Server
16. 10 May 2002 Writing Financials in GNUe Application
Server (GEAS)
17. 10 May 2002 Timesheet application for GNUe
18. 10 May 2002 - 13 May 2002 (4 Object Life Circle for GNUe
posts) Application Server
19. 11 May 2002 (2 Parameters for method definitions in
posts) the Object Repository
20. 11 May 2002 - 13 May 2002 (4 Class and Object Methods for GNUe
posts) Application Server
21. 11 May 2002 GNUe Application Server (GEAS) as a
generic application server
22. 12 May 2002 GNUe at trade exhibitions
23. 13 May 2002 (3 CVS freeze for new release
posts)
24. 13 May 2002 Zip code look-up with GNUe Forms
25. 13 May 2002 Using GNUe for distributed databases
instead of Microsoft Access
26. 13 May 2002 Non-free/'Open source' ERP
alternatives to GNUe
27. 13 May 2002 - 14 May 2002 Mail-merge with GNUe Reports
28. 14 May 2002 Data type validation in Forms and
Application Server
Introduction
This Cousin covers the three main mailing lists for the GNU Enterprise project,
gnue (http://mail.gnu.org/mailman/listinfo/gnue) , gnue-dev (http://
mail.gnu.org/mailman/listinfo/gnue-dev) and gnue-announce (http://mail.gnu.org/
mailman/listinfo/gnue-announce) . It also covers the #gnuenterprise IRC
channel. A great deal of development discussion for this project goes on in
IRC. You can find #gnuenterprise on irc.openprojects.net:6667, or you can
review the logs (http://www.gnuenterprise.org/irc-logs/) . For more information
about the GNU Enterprise project, see their home page at http://
www.gnuenterprise.org (http://www.gnuenterprise.org) .
1. Business objects in GNUe Application Server
6 May 2002 - 8 May 2002 (12 posts) Archive Link: "[Gnue-dev] Appserver
Documentation"
Topics: Application Server
People: Reinhard M?ller, Neil Tiffin, Jens M?ller
Reinhard M?ller announced that "The appserver documentation (the whitepaper as
well as the API documentation)" had been moved into CVS. It could be compiled
using the make command and texinfo. Neil Tiffin suggested "I think there is a
need to define collections of business objects. We went to far with GEAS having
inheritance, but I think flat business objects are not quite enough." Reinhard
was not sure if there was any "practical use of this" when it came to writing
applications.
Jens M?ller gave an example using Amazon. Neil said that "We have said that
business objects will mask the relationship with tables so that there may exist
a 1 to many relationship between business objects and tables." Therefore, "I
would like to be able to define a master business object that consists of
regular business objects that ultimately relate to various tables. The
relationship between master business objects and regular business objects would
be many to many." . He added "This allows us to define smaller scale business
objects that are related to master business objects but remove the various join
details from the GUI." . He thought "that implementing general inheritance is a
bit much" but that "Maybe there is a better way of doing this."
2. Danish non-free ERP software firm bought by Microsoft
6 May 2002 - 12 May 2002 (7 posts) Archive Link: "Microsoft Navision buyout?"
Topics: Financials (Accounting), Why GNUe?
People: Todd Boyle, Reinhard M?ller, Derek Neighbors, Christopher Brown,
Kenneth Reiszner, Christopher Brown
Todd Boyle cut & pasted the announcement of the take-over of the Danish
enterprise software firm Navision by Microsoft, and asked gloomily "Can any
competing midrange or enterprise software survive on Windows, against the
$Billions of Microsoft resources?" . Reinhard M?ller was more up-beat - "Sure
it can. If it is Free Software. Free Software always survives." . Todd felt
that "On Windows? That's debatable." Derek Neighbors said "If microsoft uses
the same greedy licensing schemes it does for operating systems, surely people
will survive. Free Software who is not concerned at a primary level with fiscal
profit certainly will survive."
Earlier, Christopher Brown agreed in part with Todd - "The APIs change often
enough that what's Particularly Keen now isn't likely to function anymore in
another few years" , relating his experiences of "trying to run Corel WPOffice
on Linux; it uses WINE as part of its execution substrate, essentially "running
on Windows" even when running on Linux." However, "I'll bet that a lot of X11R5
software is still quite usable, though..." Derek said that deliberate changes
to APIs to lock out free software were possible, but "remember they have
partners and people other than themselves that write applications for their
platform." Making changes "at a pace that actually locked free software
developers out would drive them out as well" . He cited "AOL Instant Messenger"
, where AOL had tried something similar, but had to back down after user
complaints.
Kenneth Reiszner said the buy-out fitted the pattern of "other acquisitions
like MSNBC which will continue even if" Windows "goes belly up" . He felt the
only ways that Windows would survive more than another 5-10 years would be
"Legislation making free software illegal" or "Microsoft to somehow embrace
open source (maybe only the OS at first)" , both of which were unlikely.
3. Object Transparency in GNUe Application Server
8 May 2002 (2 posts) Archive Link: "[Gnue-dev] [GEAS] [doc: White Paper] GOAT:
Object transparency"
Topics: Application Server
People: Reinhard M?ller, Jens M?ller
Jens M?ller asked what the possible uses of Object Transaparency were. Reinhard
M?ller said that "not every field in an object is mapped 1:1 to a column in the
database" as there could be fields in an object that were "calculated fields
that have no database column" . Not all database columns would necessarily have
object fields, either. This might even apply "the same on object/table level:
not every object will have a directly assigned database table."
Jens also asked "Is there already a consensus about how abstract base classes
should be implemented?" Reinhard said that the previous version of GNUe
Application Server (GEAS) had tried to support inheritance, but "This is one of
the features that never really worked perfectly but made a lot of troubles.
Apart from that, in the real application business objects we designed so far,
we didn't find /much/ use for inheritance. So we are still undecided if the new
Appserver will support inheritance at all." He pointed Jens to the thread in
Issue #29, Section #1 (6 May 2002: Business objects in GNUe Application
Server) for further details.
4. New Toolbar icons
8 May 2002 - 14 May 2002 (1 post) Archive Link: "[Gnue-dev] toolbar icons"
Topics: Forms, Designer
People: James Thompson, Derek Neighbors, Bajusz Tam?s
Further to Issue #28, Section #15 (5 May 2002: Planning for next release) ,
James Thompson (jamest) reported on IRC (http://www.gnuenterprise.org/irc-logs/
gnue-public.log.09May2002) that "prequery works again - and we have tenatively
have new icons for the tbar" , as reported in Issue #28, Section #28 (
7 May 2002: New Toolbar Icons) . Derek Neighbors (dneighbo) said "i think gnome
2 icons are gpl" but noted "its good to triple check :)" .
Later, Derek said he was not sure about the arrows in the new toolbar icons -
"i understand its more correct to point up and down" for record navigation, but
"windows users will be confused - as they are used to << < > >> or such" .
James, possibly with pun intended, said "i've got back and forth on that - as
I've started describing forms like a rolodex" . However, they could include
other icons and let people change them in the gnue.conf file. Derek thought
that the icon for 'undo' was "a bit scary (only becuase some people might not
see the undo arrow) and think its save :) - but over all they are slick looking
:)" . James said he had e-mailed the author of the GNOME icons, "no responce" .
He thought that the new icons would be fine, at least "until we can snag us an
artist - i think i cc'd a few people on that" .
Later, on the mailing list, Bajusz Tam?s said he liked "nice new icons on
toolbar" , but felt "The Clear Form icon is misleading i think." He suggested
an icon of a pencil eraser.
5. GNUe Documentation
8 May 2002 Archive Link: "[IRC] 09 May 2002"
People: Reinhard M?ller, Derek Neighbors, James Thompson, Gontran Zepeda
Further to Issue #28, Section #13 (4 May 2002: GNUe Documentation) , Reinhard
M?ller (reinhard) said that, although he used texinfo, "currently everybody
uses what fits him best - which is ok IMHO as long as it can generate pdf" . He
noted that "docbook is used by many gnu projects actually" and also by the
Linux Documentation Project (LDP). He wasn't keen on relying solely on tools
like "doxygen/happydoc" because "for several reasons i don't think
documentation should be embedded in the source code" .
Derek Neighbors (dneighbo) said "officially docbook is GNUe's official format -
but we dont FORCE people to use it - we want documentation, so we arent too
picky" . He had used happydoc, but "i agree with reinhard i dont want our docs
all in the source code - i would like to see methods and such have one line
descriptions - that would be pulled by happy doc - so the 'skeleton' of the API
can be autodocumented - and then someone can add 'filler'" . Reinhard said "i
would consider this "dangerous" - because it tempts you to document the api
from the code side view - instead of the user side view - however if the
documentation is good i wouldn't mind how it was started" .
Later, James Thompson (jamest) noted "python also added a pydoc module
recently" but agreed "i wouldn't mind having code docs but don't want it to be
only docs" . Gontran Zepeda (gontran) suggested that happydoc-style
documentation was "a good way to shoehorn new developers into productivity ;)"
as opposed to fuller documentation aimed at users. Derek said he preferred
happydoc to pydoc as the latter "has a lot less features" . James said that
using the built-in pydoc would reduce the number of "external dependencies :)"
.
For general documentation, James confessed that he had "secretely thought about
going to openoffice :)" Derek said he had spoken "with norman walsh (author of
docbook) and we have been brainstorming on what it might take to make abiword
do docbook right" . James clarified that he was a big advocate of docbook as a
format - "so a docbook friendly abiword would go a long way toward wooing me
back to docbook - the only thing I don't want to see in docs is me having to
program them - to spend tons of time looking for a missing / in a closing tag
is not cool" . Amaya html was suggested as a format which could be converted to
docbook. Derek said "i have suggested this - no one liked the idea - that and
best i could tell amaya in debian still didnt support things properly" .
6. Application Server without object support
8 May 2002 Archive Link: "[IRC] 09 May 2002"
Topics: Application Server
People: Derek Neighbors, Reinhard M?ller
Derek Neighbors (dneighbo) asked "would it be worth doing the first version of
geas while TOTALLY ignoring objects altogether" ? They could just "get the rpc
and remote methods working? i.e. bringing us n-tier with minimal fuss then
building on that? or is that the wrong approach?" . Reinhard M?ller (reinhard)
said "i think we could as a first step implement appserver with 1:1
object-table mapping - and then add more and more oop features as development
goes on" . He would "write up a summary for whitepaper what oop features i
think we will see in appserver" . Derek expanded "im thinking geas for first
pass uses datamodel of forms(common) entirely and doesnt try to make it into
objects - maybe to teh point where the concepts of 'gcds' dont exist or are
limited - rather instead its just triggers" . He emphasised that this was just
"for the first pass (not long term)" . He felt "someday i would love object to
relational mapper with an onslaught of features - but realistically there is
huge value in remote triggers via rpc today and thats a much more obtainable
task - however, if it means doing one way we can never get to the other i dont
think that is necessarily good - and why i asked for opinion on it" .
7. Curses (text-only) Forms client using nstti
8 May 2002 - 13 May 2002 Archive Link: "[IRC] 09 May 2002"
Topics: Forms, Why GNUe?
People: Gontran Zepeda, James Thompson, Derek Neighbors
Further to Issue #28, Section #22 (6 May 2002: Curses (text-only) Forms client
using nstti) , Gontran Zepeda (gontran) reported his testing on nstti was going
well, and he was "looking into some enhancements and to get more familiar with
... :) oh" . James Thompson (jamest) said "that cvs isn't on a mail list so i
have no idea what's been done" - it was not in the main GNUe CVS for copyright
reasons. Gontran said he had "added a changelog in nstti/ to attempt to keep
track .. (heh)" . Derek Neighbors (dneighbo) said that "i.e. if your commit
messages are good" changelogs could be automated.
Some days later (http://www.gnuenterprise.org/irc-logs/
gnue-public.log.14May2002) , Gontran reported "just right now had a
breakthrough by using obvious test form" , which had 'sort-of' worked. However,
he needed to use "curses.wrapper around nstti to clean up the scren properly in
the case of mysteriously timed exits." He really ought "to play around a bit
with UIdriver first i think" but "fsckd terms might get annoying enough to do
something about" that first. James said that the "stty sane" was a useful
command "if your term gets screwed up" - "even if you can't see yourself typing
it" . Derek tried "jamest sane" , but James reported "jamest: Error: not
supported attribute "sane" :)" .
Gontran would submit his changes once he had completed his Free Software
Foundation copyright assignment. Derek explained "the paperwork was never meant
to be a draconian way to stop code production, more a" way of protecting both
the developers and the project. He noted that FSF "dont 'require' copyright
they merely request it, we as a project have decided to be a little more
'hardass' (and protect our users) and do require it :)" .
The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.15May2002)
, Gontran reported he had "got my papers, posting the both (gnue, and nstti)
today" to FSF. He asked about the history of nstti. Derek said "i think jamest
found it and liked it - he contacted the maintainer who basically said he wasnt
really using it anymore so wasnt maintaining - jamest felt it was better than
what existed - so him and the maintainer agreed it would be ok for us to put in
our cvs tree and alter it - i think the idea is that if we start to alter it
that we will just 'adopt' it - and it will be pretty much GNUe Curses (under
the nstti name) or such" . Gontran noted that it only used the Lesser GNU
Public License (LGPL), not the full GPL. Derek said "the problem is that we
dont put things in our tree w/o assignment - so its in our off tree" . However,
"there has been talk amongst us of whether its worth getting assignment from
original authors - at which point it would be come official gnue" . He added
"the issue there was current maintainer isnt current author - so its kind of
been handed from person to person without good record - which is why i preach
that REGARDLESS of what license a project is under if you contribute code to it
make sure it has its copyright in order or you could learn lessons the hardway
:)" He added "with gnue i think we approach nicely because we ask for the
copyright so we dont have the hodgepodge, but we dont want to restrict the
contributor from his own work so we leave full copyright with them" as well.
8. Possible Application Server functionality TODOs
8 May 2002 Archive Link: "[IRC] 09 May 2002"
Topics: Application Server, Financials (Accounting)
People: Jan Ischebeck, Jens M?ller, Reinhard M?ller
Jan Ischebeck (siesel) asked whether "every row in a table be represented as
Object, or should a whole table be represent by just one object?" Jens M?ller
(ICJ) thought this would be "not difficult to implement" . Jan was more worried
about performance. Jens asked about using "Common Lisp Object System, or
something like that" . Lisp-based reports could be useful for things like
"German tax returns and tax calculations (tax optimization)" He felt "all this
prediction stuff is AI, IMO - perfectly suited for LISP" .
Reinhard M?ller (reinhard) suggested "i think every single row is represented
by a geasInstance instance (if the mapping between object and db is 1:1)" . He
referred to "neilt's diagram (http://www.gnuenterprise.org/modules.php?op=
modload&name=NS-My_eGallery&file=index&do=showpic&pid=31) of the geas parts?"
Although it was very high level, he still found it useful in keeping concepts
clear - "for example the geasMetaObject belongs into the "object repository"
and geasList belongs into "object server"" which suggested they should not be
combined into one object. Jens asked what the transaction processor and
workflow server on the diagram were. Reinhard said they were "good looking
buzzwords that aren't defined in detail ;)" Jens suggested a games of 'Buzzword
Bingo' with "an extra point for not knowing the meaning of the buzzwords you
are using" . Reinhard said "seriously these are things that are needed for
upperscale business systems" but "as they are marked "future" i didn't bother
much with trying to understand" what they did as of time of writing.
9. Dots or colons in object names
9 May 2002 - 13 May 2002 (5 posts) Archive Link: "[Gnue-dev] geasList.py: class
name -> table name"
Topics: Application Server
People: Jens M?ller, Reinhard M?ller, Derek Neighbors, Jan Ischebeck, Daniel
Baumann
Jens M?ller asked what the relationship was between class names in GNUE
Application Server (GEAS) and table names in the underlying database - "The
same with underscores instead of dots?" Reinhard M?ller said that, in the old
version of GEAS, "modules were separated from the class name by a ::" , which
conflicted with how it was used in C++. He suggested using "a dot to separate
the module name from the class name, or another special character" , keeping
the :: just "to separate the class name from the field/method name" . Derek
Neighbors said he preferred "class.method opposed to class::method." . Reinhard
pointed out that "As we will support namespaces, references and compound types,
we need (at least) two different separators." He thought that
"base.item::sales.price.currency" was better than
"base.item.sales.price.currency" . Derek was not convinced.
At the database end, Reinhard earlier said that GEAS version 1 had "used double
underscores (__) so that single underscores are still valid in all identifiers"
, as previously discussed in Issue #11, Section #3 (6 Jan 2002: Old and new
parser for GNUe Class Definitions) , which he would like to keep.
Earlier, Jens asked if there should be "a separate function to" map object
names to database tables, probably in GNUe Common? Reinhard explained that
there would be an "object repository" which "would provide a means for looking
up a class and getting the table name" , and looking up database column names
for class field names.
On IRC (http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002) , Jan
Ischebeck (siesel) asked about "object-relational mapping stuff" . He thought
"the mapping should be handled by the metaObjects." Daniel Baumann
(chillywilly) agreed - "because the meta objects define the schema of our
appserver (as do the odl/gcd definitions)" . Jan said they also "define how
much and how data has to be loaded from the database to build objects and vice
versa" .
10. Type definitions in GNUe Application Server (GEAS)
9 May 2002 (5 posts) Archive Link: "[Gnue-dev] type (not class) in .gcd files"
Topics: Application Server
People: Jens M?ller, Neil Tiffin
Jens M?ller asked "What is special about types? As they have no methods and are
just replaced instead of a type definition mentioning them, how are they
stored? In data columns in the table for the class of which they are a a
member?" Neil Tiffin said that "types are expanded in a way that the type
definition disappears and the data definitions are inserted directly into the
object. They were a shorthand for assuring consistent usage of groups of data
definitions such that they would be consistent throughout the design (by only
being defined once.) Therefore if the base design (type) was changed it would
automatically be changed throughout." Jens wasn't sure he liked the sound of
this - "When used in an automatic setup, this can be quite difficult to handle,
because we have to find all classes/types which use this type. Will be
necessary to track where a type definition has been replaced by the type's
fields. Well, I suppose it will be common policy that fields are not removed
from types also?" Neil said the other possibility was "when the definition of a
type changes the new type is not used until the main object is loaded or
accessed (main object = the one containing the type)." However, he was "not
sure I understand what you mean by automatic setup?" Jens clarified he meant "A
package management system." .
11. Loading methods in GNUe Application Server
9 May 2002 - 13 May 2002 (7 posts) Archive Link: "[Gnue-dev] geasInstance.py:
When are methods loaded?"
Topics: Application Server
People: Jens M?ller, Reinhard M?ller, Derek Neighbors, Jan Ischebeck
Jens M?ller asked "When will the methods be loaded and the method table
created?" He preferred "In __init__" rather than "when a method is called" .
Reinhard M?ller saw three possibilities:
1. at application server startup
. However, this
means that you have to restart the server every time a method is changed.
This can be a big problem in a live system.
2. at creation of a business object instance
, but this
probably means a high performance impact, especially because all available
methods of an object are loaded even though most of them will not be used
at all
.
3. whenever it is called
, as long as this was combined
with some caching of already loaded mehtods
to provide
very fast access to the method code
.
Derek Neighbors said that "on demand" and "in batch (variation of on demand)"
were also needed, as previously discussed in Issue #4, Section #11 (
17 Nov 2001: Configuring GNUe Application Server for multiple methods) . He
added "I think also there should be option [...] that checks to make sure the
object is not in a 'transaction' state before applying." . Reinhard said he
wasn't sure these extra two options were needed, "as when we have 3 we can do
"on demand" by just copying the new method code over the old code at a specific
time." Derek was not convinced.
Jan Ischebeck suggested "What do you think about an object "geasMethod", which
handles method creation/loading, building/compiling, caching and releasing.
These "geasMethod" would be the first building blocks of the GEMA (GNUe Method
Adapter)." He gave some sample code/pseudocode. Reinhard commented on some of
the details, but said it "looks good at first sight."
On IRC (http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002) , Jan
(siesel) explained that "if you add a __call__ method to an object, you can
handle it as an function." Jens (ICJ) said that he was going to "write someting
for GEOR - without inheriting other classes - and asking when I want to use
functionality which I know is in common but which I do not understand" Jan
thought "many geas classes shouldn't inherit too much, because that would make
them too slow." Jens noted that the GEAS whitepaper said "GEOR will hold all
the business object definitions: what fields the object consists of, what
methods exist, which triggers should be called on what event, and so on." . Jan
noted that "On my papers buissness object definitions are also objects"
themselves. Jens thought "that would be quite a nice recursion ..." . Jan said
that "buissnes object, methods and buissness object definitions can all be
geasObjects. and if we have an easy way to store and retrieve geasObjects from
a database, it makes everything easier" . He added "Just think of a framework,
which can handle persistent "geasObjects", which can have versions, can be
locked, can be elements of transactions..." . Jens felt this was "getting more
and more complex" , and suggested "I will first implement something whcih
directly accesses the databases - using dbdrivers, of couse - and then you can
implement your stuff" . He felt "we need a usable implementation - otherwise
you cannot work good on higher level stuff" . He noted "as long as we don't
release, we can still change arch" .
Earlier, on the mailing list, Jens asked "How are triggers implemented? As
methods?" . He recognised that "trigger methods could also be (tried to be)
loaded when needed, but I think this would cause performance losses)." Reinhard
confirmed "Triggers are methods that are called automatically."
12. GNUe Application Server (GEAS) development
9 May 2002 - 12 May 2002 Archive Link: "[IRC] 10 May 2002"
Topics: Application Server
People: Reinhard M?ller, Jens M?ller, James Thompson, Jan Ischebeck, Daniel
Baumann, Christian Selig
Reinhard M?ller (reinhard) said that Application Server development was going
"slowly - however it seems to have attracted a lot of people - sledge, siesel,
ICJ..." . Jens M?ller (ICJ) started to look at the phaseInit code, as
previously discussed in Issue #10, Section #8 (2 Jan 2002: HTML client for
GNUe Forms) . He noted it "uses a default of 5 itererations" . James Thompson
(jamest) explained "the first phaseInit was hardcoded to 5" but it was
subsequently changed to use a variable number. Jens asked "but this function
can be used, right?" . James said "it is absolutely required" . Later, Jens
said "I need to dig into both what has been done and what has to be done. But I
think I have realized that GObj is primarily for XML input and output, for
initializing and for traversing through tree structures - but a reference doc
would be nice anyway ;-(" . He concluded "well, now I have to figure out that
trigger support" .
Some days later (http://www.gnuenterprise.org/irc-logs/
gnue-public.log.12May2002) , Jan Ischebeck (siesel) asked about the best way
"to set attributs of an geasInstance" . Daniel Baumann (chillywilly) explained
"the methods provide encapsulation" . He asked "is it Python style to name
exceptions WhateverError?" Jan said "allmost. The Base class is called
"exception" but the rest is call "whatever"Error." Daniel asked "if I called
something WhateverException would I be breakin some sort of unwritten Python
rule?" Jan said "Yes, the python god would send a snake to bite you and poison
you deadly ;)" Daniel didn't like the sound of this, and decided to "define my
little exception heirarchy using "Foo"Error then ;)" .
The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002)
, Daniel said he was "reading the relevant GEAS threads on gnue-dev again" ,
saying "I am partial to the API's described in the standard, but that's just
me" Jan supported this, saying "Although I like the GEAS API proposal, because
its quite direct and simple, its just missing some important features...
especially the ones discribed in odmg.txt ;)" . Daniel said he "didn't know
that supporting inheritance was up for debate" . Christian Selig (sledge_)
asked "is it really important from the beginning? i think it's nice from the CS
standpoint and it may simplify things, but it adds a bit of complexity." .
Daniel said it was "relatively easy with python - you just process rthe ODL
file and if there's inheritance of a type you just generate the stub with the
inheritance line, imho" .
Christian asked if "gcd's are converted to python objects;" and "geas2 "just"
handles them" ? Daniel said "the way I see it ODL defines the objects and we
write a parser/compiler to generate stubs for the Python class and the Meta
Object classes in the object repository" , as in his diagram (http://
www.gnuenterprise.org/~baumannd/geas-schema-compiler.png) . Jan suggested "you
call geas2 to parse a ODL file (or a gcd) and it creates persistent objects on
the fly." Daniel agreed, but added "you should be able to go either way" .
Daniel said that the meta-objects were "data (Objects) about objects (i.e.,
introspection)" . Jan explained "you can use metaobjects to change class
definitions, add functions" which meant "so meta objects can change objects on
the fly" . Daniel said that "modules, classes, scope, definfingscope, etc. are
all meta objects that help describe the class definitions" . He expected "every
object would have a definition, a python class for that object, and
correspondgin meta objects for the definition" , and convert from GNUe Class
Definitions (gcds) to objects and back again. Jan noted "there is a test
version with working metaObjects and method loading in appserver/src/
_featuretest" .
13. DCL as a bug-tracking system - and more
9 May 2002 Archive Link: "[IRC] 10 May 2002"
Topics: DCL
People: Jens M?ller, Peter Sullivan, Derek Neighbors
Jens M?ller (ICJ) asked "what is so cool about DCL?" He preferred Mozilla as a
bug-tracking system (BTS). Peter Sullivan (psu) said DCL was being integrated
into GNUe, as discussed in Issue #22, Section #3 (21 Mar 2002: First fruits of
the GNUe/DCL merger) - "Derek already has some "simple" Forms that point at DCL
tables" . DCL was not "just a bug tracking system" . Derek Neighbors (dneighbo)
confirmed this - "DCL is coming form the other perspective - it is more a
project management/help desk tool - than a bug tracker. I'm trying to add some
more 'bugtracking' features to it - as i think free software projects need both
management/helpdesk/bug tracking" . The main weakness at the moment was "how it
handles contacts and hierarchies - much of which is painful in lack of RBAC" .
However "we have started to make the contact portion more robust - tackling
some organizaitonal hierarchy issues in the process - i think once those are in
place that RBAC can be implemented fairly quickly" . He said "we use it more
than anything because it has a gracious maintainer who shares our vision - and
it made sense to collaborate" . He didn't like some of the DCL terminology, but
"in many cases i ahve altered the terms :)" which was one of the practical
benefits of access to the source code with free software.
14. Grids and scrollbars in Forms
9 May 2002 Archive Link: "[IRC] 10 May 2002"
Topics: Forms
People: Marcos Dione, James Thompson, Christian Selig, Derek Neighbors
Marcos Dione (StyXman) asked about adding "widgets to a form in *runtime*."
James Thompson (jamest) suggested "what I would typically do would be to just
put the widget on there hidden then make visible via a trigger BUT while the
start of this is in there it's not complete" . Marcos said he wanted to be able
to add "wigets as necesary. if I need 10, I add 10. if I nedd a thousand, so be
it." He gave an example of "we need to do an invoice form. in the header,
there'll be the client and below all the items selled to that client. as
there's no grid or such thing, we thought of adding new widgets as they were
needed (i.e., as the already there ones where full)." Christian Selig (sledge_)
agreed - "that's what i've always missed: a grid (or something comparable)" .
Derek Neighbors (dneighbo) said "there is a grid" , as previously discussed in
Issue #14, Section #19 (28 Jan 2002: GNUe vs E/AS) - "say you have five
columns (read five entries) - simply add rows="" to the tag - where "" is
number of rows to display" .
Christian asked "how to add new items to such a list?" Derek said "it will show
5 in the widgets - but if you navigate through the rows - it will show all 100
(5 at a time) just a like a normal grid would" . He emphasised "everything is
editable, savable etc" . James Thompson (jamest) suggested "look at forms/
samples/zipcode/zipcode.gfd for example" . Derek admitted that there was "no
scrollbar :(" as of time of writing. James said "the scrollbar exists - just no
events tied to it yet to move the focus :(" . However, the up and down arrows
worked on grids - "it's just like navigating records - as that's what each row
is" . Derek said "it is rather usable - its just not 'pretty' as native grid" .
15. Hook system for interacting classes in GNUe Application Server
10 May 2002 - 13 May 2002 (2 posts) Archive Link: "[Gnue-dev] Hook system"
Topics: Application Server
People: Jens M?ller, Reinhard M?ller, Jan Ischebeck
Jens M?ller posted a "paper for a hook system for the interaction of classes."
This would allow one class "to be informed about changes of objects" of another
class, using a "Trigger/hook system for classes" . He gave some examples of how
this might work. There were several maintainability issues, such as persistance
and keeping deterministic behaviour. The GEAS Object Repository (GEOR) would
need "to track which hooks a class provides and which functions are connected
with a hook." Reinhard M?ller said "I think I agree with most points. I will
include the text into the whitepaper" when he next revised it.
On IRC (http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002) , Jens
(ICJ) asked if there had been any work done yet on GEOR. Reinhard (reinhard)
said "no not yet - i'm not quite sure if we should keep all those acronyms - or
maybe just call it obj-repos or something to that effect - which would be much
more understandable" . Jens said he would make some notes on his next trip "and
then I will start to do some coding on GEOR - next week or so" .
Jan Ischebeck (siesel) said that 'hook' was a good description of Jens'
proposal, "but you could call it trigger also." as "it looks like the TRIGGERS
you have in databases, which are defined after tables are defined." He
preferred "the EVENT modell." . Jens said he had "once read a bit in the Java
tutorial" abou events - "there you had to register listeners for events just
like my hook proposal" . Jan gave an example using "object "customer" which
raises event "bought new computer" - now you have defined a trigger. "ON
customer.boughtcomputer DO send message("Do you need new software too?")" .
Also, "you also can define a trigger like. ON customer.boughtcomputer + 20 day
DO sendmessage("Do you still not need software for you computer?)" . Jens
thought this might be part of the role of the "Workflow Server?" Jens said he
also "wanted to use the hook model for dynamic updates" . Jan suggested "you
think of something like employee.takeAdayOff triggering holiday statistic" ?
16. Writing Financials in GNUe Application Server (GEAS)
10 May 2002 Archive Link: "[IRC] 11 May 2002"
Topics: Financials (Accounting), Application Server, Forms
People: Peter Sullivan, Daniel Baumann, Perry Lorier
Peter Sullivan (psu) pointed to the General Ledger (GL) "proposal on the
website" . He emphasised "it's just a proposal - we have held off implementing
uintil we have an appserver" . Daniel Baumann (chillywilly) said "our middle"
tier would "do object-relational layer, support various remote protocols,
support various langauges for object methods, etc." . Peter said "the key thing
is that the middle tier enables you to seperate the biz logic from the Forms" .
He gave an example - "a basic rule of accountancy is that journals must
balance" . In two-tier, "you would have a trigger on the journal form submit
button to validate and print a "add it up, bozo" error msg - In three-tier, the
validation would be done by the middle tier & would sned the error msg back to
the forms client" . Daniel explained that the Application Server was ""in the
works" - well we scrapped the old one" , as agreed in Issue #19, Section #1 (
28 Feb 2002: GNUe Application Server (GEAS) version 2 Discussion) .
Peter said that one of the advantedges of n-tier over 2-tier was that there was
only one place to change form definitions if bugs were discovered. N-tier also
gave you "redundancy, scalability etc - Also ability to use OO" . Daniel
pointed out that, even with 2-tier, "GNUe allows you to store your forms on
HTTP doesn't it?" Perry Lorier (Isomer) said that way "you could update the
HTTP server and suddenly they're all updated :)" . Later, Daniel cut & pasted
the code which allowed you to "have http://my.webserver/form.gfd" as your
location for a form, noting "this is used throughout" whenever a Forms
definition was referenced. Peter said that "The other claimed benefit of 3-tier
is that you can have "thin clients" - but this is fairly notional" as even thin
clients required high-specification PCs or long downloads. He felt Linux
Terminal Server Project (LTSP) was a better thin-client solution than a
browser.
Peter said that if anyone had any comments on the GL proposal, they should
"post them to gnue@gnu.org" , as the current work on Application Server meant
that the Financials proposal might start being programmed soon. The source (
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/docbook/articles/
accounting_package.lyx) was in lyx, but could be converted to straight text by
using egrep to remove all lines starting with a backslash.
He felt "Accountants who know SQL are like cops with guns - they can be far
more effective in some situations that there unarmed conterparts could never
handle - but there's always the risk that they'll shoot their partner in the
foot" . However, "SQL is about the only thing that can break their addiction to
spreadsheets (which, 99% of the time, means Excel" .
17. Timesheet application for GNUe
10 May 2002 Archive Link: "[IRC] 11 May 2002"
Topics: DCL, Forms, Reports
People: Jeff Bailey, Peter Sullivan, Daniel Baumann
Jeff Bailey (jbailey) asked "Are there any timesheet apps for Gnue yet?" .
Peter Sullivan (psu) said that "DCL has some time recording in it" but that was
not its main focus. However, "You could knock up a fairly quick timesheet
mini-app using Forms in two-tier" . Daniel Baumann (chillywilly) noted "you can
use a url for the form" to avoid problems distributing the GNUe Forms
Definition (.gfd) files. Peter added "reports is now getting beyond proof of
concept stage - so you can even get data back out again ;-)" .
18. Object Life Circle for GNUe Application Server
10 May 2002 - 13 May 2002 (4 posts) Archive Link: "[Gnue-dev] GEAS Object Life
Circle Proposal"
Topics: Application Server
People: Jan Ischebeck, Jens M?ller, Daniel Baumann, Jason Cater, Derek Neighors
, Reinhard M?ller, Derek Neighbors
On IRC (http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002) , Jan
Ischebeck (siesel) asked for comments on his object life cycle (http://
www.gnuenterprise.org/~jan/appserver/object_life_cicle.gif) diagram. He
explained "The picture shows the state diagrams of two objects. The diagram on
the left hand side shows the life cicle of a business object in general and the
one on the right side shows the states of the local copy of this business
object. A local copy will be created, when the object gets locked by an user
who wants access this object during an transaction." .
Jens M?ller (ICJ) said that, linking this to his hooks proposal, "the hook
causes another class (AdLetter) to create a new instance of itself - this new
class then tells" the GNUe Event # and Workflow Server (GEWS) "to call a method
of itself 20 days later" . Jan agreed - "GEWS knows about the 20 days rule and
save the "boughtComputerEvent" in a list. 20 days later during the daily "check
for daily events" loop it will execute that action. I thought of a design like
this, because the event modell I've read had event rules like "A in (B,C)"
which would trigger only if event A occured after event B and previous to event
C. But this is extra stuff which should be implemented in the overnext version.
The cool thing about the event modell is, that you can take care of things like
sessions, or transactions which should be closed (=timeouts), daily
calculations, special tasks (if event "bank safe door opens" occures between
7pm and 7 am then do "call the police"...)" .
Two days later (http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002
) , Jan said there would be "ONE cache in memory and the database = TWO" .
Daniel suggested "mayeb you could break things up into dirty/old cache, new/
clean cache" and so on. Other systems he had seen did lazy loading - "you use
the proxy object and finally whrn it really needs to it will pull from the
database" . Jan said that "if we make the database and cache manager an object,
we can inherit it and add new caching principles... :)" . Daniel said he needed
to document some of this.
Later, Daniel cut & pasted the code for object locking - at first he wasn't
sure how the deadlock scenario it was trying to avoid could ever arise, but
then he grokked it. He suggested that this needed further documentation. He
asked how the ODMG interfaces could be implemented in python, as "Python really
has no 'interface' concept" , with various ways of working around this. He felt
"this is key because I think we should write the code similarly to how the ODL
compiler would output other GCD/ODL stubs to get a feel for that" . Jan
suggested writing "classes for it." Daniel said this would need "classes that
just define the methods and thrown NotImplemented exceptions or something" .
Jan thought "this would be better. If someone don't like this implementation he
still can overwrite it" .
Later, Jason Cater (jcater) noted that the proposed object locking system might
prove very limiting in practice, except as a "first-draft short-term
implementation" . Daniel agreed that it was "a pessimistic locking policy" but
"there's nothgin that says you can't use other locking policies - in fact ODMG
standard says that locking policy is the "minimum" and you can do it different
ways - better ways" . He said "we are in no way bound to it" - "it's like the
least common denominator" . Jason said that "sounds reasonable - just didn't
want that to be our "preferred", long-term method" . Daniel agreed.
Earlier, Jan posted an announcement about the diagram to the mailing lists,
explaining some of the details. Derek Neighbors reckoned "Without reviewing
this might be what is needed to safely load methods real time." . Reinhard
M?ller said he was "Not sure if we should generally lock an object when a
"local copy" is created. I think we should support something like that we can
read locked an non-locked." Jan said "In my test implementation the transaction
directly access the global object for reading." Local objects were only created
when writing. Reinhard also asked about "the difference between "active" and
"inactive" state" . Jan explained "inactive: the object is just data in the
database - active: the object is an python instance, which can react on
function calls etc." . He noted that "Daniel Baumann told me that odmg.txt
defines three types of locks: readlock, writelock and upgradelock" , which he
would add to the diagram.
19. Parameters for method definitions in the Object Repository
11 May 2002 (2 posts) Archive Link: "[Gnue-dev] GEOR: method parameters"
Topics: Application Server
People: Jens M?ller, Reinhard M?ller
Jens M?ller felt that method definitions in the Object Repository of GNUe
Application Server (GEAS) should "have named and typed parameters" , as should
"hook definitions" , as discussed in Issue #29, Section #15 (10 May 2002: Hook
system for interacting classes in GNUe Application Server) Reinhard M?ller
agreed on both points, noting that ""Hook definitions" are methods."
Jens also asked "What should be allowed parameters? Every field type that an
object may consist of?" Reinhard agreed - "Actually I would think even "Object"
and "List" should be valid parameter types." . Jens felt this was implied.
20. Class and Object Methods for GNUe Application Server
11 May 2002 - 13 May 2002 (4 posts) Archive Link: "[Gnue-dev] GEOR: class/
object methods"
Topics: Application Server, Financials (Accounting)
People: Jens M?ller, Reinhard M?ller
Jens M?ller asked about class and object methods being stored in the Object
Repository of GNUe Application Server - "Is there a need to make a distinction"
? He felt storing both would be useful. Reinhard said he was "not sure about
class methods. We always have to keep in mind that the typical non-programmer
accountant should be able to write business objects (and hook functions) by
himself. Probably the concept of class functions is not easy to understand for
a non-programmer." Jens said that letting users make changes to "a biz software
system" might cause problems with certification, which was a legal requirement
in Germany, as previously discussed in Issue #27, Section #20 (29 Apr 2002:
Overview of GNUe) . Reinhard said that "The user's right to alter the software
to adapt it to his need is one of the basic principles of Free Software." Jens
said that he "only meant that a system modified in this way has to be
re-certified if it shall be used for accounting purposes." .
21. GNUe Application Server (GEAS) as a generic application server
11 May 2002 Archive Link: "[IRC] 12 May 2002"
Topics: Application Server
People: Jan Ischebeck, Daniel Baumann
Jan Ischebeck (siesel) asked "do you think that geasV2 should be able to store
and retrieve JUST business objects?" Daniel Baumann (chillywilly) thought not -
"it should store any python object decribed, imho - in ODL or whatever - this
is what I mean when I talk about a "generic" app server" . He asked "what make
an 'object' different than a 'business object' anyway?" . Jan agreed - "for me
object can be anything, while business objects are objects to store and
calculates data directly needed by the application." . Daniel felt "but either
way you have to define them right?" He said GEAS needed "langauge to describe
the schema of our objects (GCD, ODL, etc.)...those do not constitute the object
itself...in fact we can get picky and say that an object is an "instance" of a
python class (which is generated from the description)" . Jan said he had
thought "to make as much as possible of the building blocks of the application
server objects in the application server" as "I think there is no way to create
a python class in a programm (without dirty tricks), so I though of an
geasMetaObject which holds the class definition and can build instances."
Daniel agreed - "there's going to be a whole meta object api for adding types
on the fly the way I see it - but one could also just parse" GNUe Class
Definitions (gcds) "or go from the current repository and generate gcds from
what the system currently contains" , as in his diagram (http://
www.gnuenterprise.org/~baumannd/geas-schema-compiler.png) .
22. GNUe at trade exhibitions
12 May 2002 Archive Link: "[IRC] 13 May 2002"
People: Derek Neighbors, Reinhard M?ller, Andrew Mitchell, Jason Cater, James
Thompson
Derek Neighbors (dneighbo) asked if anyone was going to be able to attend Linux
World Expo in San Fransisco in August. He had "submitted paperwork earlier this
month and plan on following up - but hoping to have some help" . Jason Cater
(jcater) and James Thompson (jamest) both said they would like to, but were
unlikely to be able to make it. Derek asked Reinhard M?ller (reinhard) if he
was "interested in representing us in bordeaux" . Reinhard wasn't keen about
having to "speak to a crowd - especially in a language that isn't my native
one" , asking "you ever heard an austrian speaking english? - think of
schwarzenegger :)" . Derek said "everyone loves arnold" . Andrew Mitchell
(ajmitch) suggested "get onto that weightlifting :)" The discussion quickly
went off-topic, as everyone wondered what sort of things Arnold Schwarzenegger
would say if he was a GNUe spokesman.
23. CVS freeze for new release
13 May 2002 (3 posts) Archive Link: "[Gnue-dev] CVS Freeze [Common, Forms,
Reports, Designer]"
Topics: Forms, Designer, Reports, Common
People: Jason Cater, Jens M?ller
Jason Cater announced "We are preparing for a release of Forms, Common,
Reports, and Designer. Please temporarily suspend any non-bugfix commits to any
of these tools. We need to avoid introducing any big changes. This freeze
should only be in place for a few days. Also, it does NOT affect App Server or
Navigator." . Jens M?ller asked "Why don't you create a new CVS branch?" Jason
said "Currently, this is more trouble than it's worth. As we grow, we will
probably resort to branching HEAD for a release."
24. Zip code look-up with GNUe Forms
13 May 2002 Archive Link: "[IRC] 14 May 2002"
Topics: Forms
People: Mat Rice, Derek Neighbors
Mat Rice (ratmice) reported some problems he was having with the sample GNUe
Forms, and commented "it'd be a little useful if state and city weren't
readonly" . Derek Neighbors (dneighbo) explained "that form is old but it was
killer in its time - it expects you to have a populated zipcode database - you
then enter the zipcode - and the city and state are automatically populated for
you - thus why they are readonly" .
25. Using GNUe for distributed databases instead of Microsoft Access
13 May 2002 Archive Link: "[IRC] 14 May 2002"
Topics: Forms
People: Michael Maluck, Bajusz Tam?s, Reinhard M?ller, ra3vat, Dmitry Sorokin
It was asked about using GNUe as an alternative to PHP/Postgres for database
applications. Michael Maluck (madlocke) explained that GNUe was written in
"python" , so didn't need compiling. Bajusz Tam?s (btami) suggested looking at
the "designer wizards" to get started after installing GNUe. They both
confirmed that GNUe needed python 2.x rather than 1.5.2, and Bajusz added that
there were some issues with 2.2.0, although Dmitry Sorokin (ra3vat) confirmed
that 2.2.1 was OK.
It was noted that Microsoft Access was not ideal for non-trivial distributed
systems, and that GNUe used XML for its form definitions. Reinhard M?ller
(reinhard) said GNUe could easily handle multiple sites connected via the
internet - "you just have to set the correct parameters in connections.conf" .
As far as needing python skills to use GNUe, Reinhard said this "depends on
what you want to do - if you need to code triggers then yes" .
26. Non-free/'Open source' ERP alternatives to GNUe
13 May 2002 Archive Link: "[IRC] 14 May 2002"
Topics: Why GNUe?
People: Reinhard M?ller, Derek Neighbors, Jens M?ller
Reinhard M?ller (reinhard) noted "it's so funny how many germans join the
project lately - because at the time when linux-kontor was alive we had zero
germans here" . This project was now dead as far as he knew. Jens M?ller (ICJ)
said he had looked at both Kontor and OpenSource ERP, and had not been
impressed with either. Derek Neighbors (dneighbo) said that OpenSource ERP had
e-mailed the main GNUe mailing list last year "not saying 'are you interested
in collaboration' but rather 'hey come join opensource erp and help us make an
open source erp'" . Jens noted that the website that was hosting the project
said "OpenSourceERP This project appears to be defunct; the domain is no longer
registered." Derek said that he had said at the time that "This
opensourceerp.org seems a little to corporate for me. That is one thing you can
count on GNUe. :) We are not out to make a quick buck. Simply to free users. :)
" . There were already several "open source" (as opposed to free software) ERP
packages such as "POSSL (panther) and NOLA and Compiere - all of whom i stated
seemed to be on a similar path only already having capital" .
27. Mail-merge with GNUe Reports
13 May 2002 - 14 May 2002 Archive Link: "[IRC] 14 May 2002"
Topics: Reports, DCL, Integrator
People: Derek Neighbors, Jason Cater, James Thompson
Derek Neighbors (dneighbo) asked "can i today create records.xml for mail merge
with current reports" ? Jason Cater (jcater) said "oh, absolutely - that's a
piece of cake" . He explained "create a GNUe:Reports:MailMerge namespace" in
"gnue/reports/filters/MailMerge - add an XSLT script in there - then modify
report-filters.conf - under mappings, add mailmerge = GNUe:Reports:MailMerge" .
He added "I *think* you can arbitrarily create namespaces - the mapping will
only come into place if we create filters" .
Derek said that his first try came out as "" rather than "myvalue" , which would be easier to
work with. He cut & pasted his "very basic .grd file" , but this was generating
an error. Jason pointed out that "you have no section tag" . On fixing this,
Derek did a "happy dance its making the file - now if mail merge works im in
bidness" . Jason said "well, it won't initially - because you changed the field
tag - but should be a quick fix :)" .
Derek noted that "merge-rtf merge-latex and mailmerge.py are not executable out
of cvs" as of time of writing, and asked for this to be fixed. Jason said he
was "setting it up so you can do grcvs -d myfile.rtf --filter mytemplate.rtf
myreport.grd" to execute the whole process.
Jason wondered "should this actually be called mailmerge? that's what I'm so
used to calling it but is that appropriate here?" Derek said "honestly its for
more than 'mailing' - but i think mail/merge is the industry term" . Jason said
"it's more of a templated document merge - but that is long :)" James Thompson
(jamest) suggested "docMusher(tm)" .
Derek was still having problems with "the way mailmerge.py parses things" and
asked for a patch. Jason was jealous - "I'm not sure - as if you get this
working - you will be the first w/reports in production - and that just isn't
fair :)" . Derek said "well techincally its for a demo - but i can bet if the
demo goes well it wont be long till production and feature creep" . Jason had a
look at the code, as did Derek, who asked "how are you normally keeping track
of the parent" ? Jason said he had no test report to test with at the moment.
Derek asked "is master/detail in reports working?" Jason said it "should be -
but haven't tested much - last time I tested, they did :)" . James asked
"dneighbo: you making notes for a users guide/tutorial?" Derek said "more than
likely i will make this a real example - since it IS going off of dcl" . He
noted "btw: the grd with custom name space is pretty powerful db to xml tool" .
Jason agreed - "yes - it's the start of GNUe Integrator :)" Derek said "yeah it
just needs its better half - xml to db :)" .
Later, Jason confirmed "I committed my changes... grcvs supports mailmerging as
it sits now" . After some hassle, Derek got the changes and noted "he didnt
address how i had hoped - he did it the proper way - not the quick way - will
have to tackle tomorrow :(" . Later, Jason said that, to run the new version,
you needed to "add an entry in report-filters.conf - (there is an example
there) - then run as grcvs -D file -d myoutput.rtf --filter myfilter.rtf
myreport.grd" . Derek said "i like it all cept having to make the entry for the
file but this is in the right direction" . Jason said "the alternate is to
either put the file in your shared/filters/MailMerge directory (or a symlink) -
it's not ideal, certainly - but I am sans-a-pretty-solution" .
Later, Derek cut & pasted his error message. Jason asked "lemme see your grd
file" . Derek put it on the web (http://gnuenterprise.org/~dneighbo/
service_requests.grd) . Jason realised that, as it was "standard dcl tables"
then "I can test this puppy too :)" . Derek said "you just need the rtf file -
or create your own" . Derek found the problem - the XML output had an ampersand
in some text that wasn't being replaced by &. Jason said "I thought I was
using encode() for those - lemme look" . He found the problem, and fixed it,
saying "btw, I consider this my 0.0.1 RC1 :)" .
Derek ran the report sucessfully, but both Abiword and Microsoft Word were
fairly slow opening the output rtf file - "open office didnt bitch though" .
James said "ooooo man - if this plays w/ openoffice - and if we get the label
sizes - i can use this....um, yesterday" . Jason said "well, I have no idea if
I'm creating valid RTF - if we have any RTF experts in the house, please look"
. He pointed to a utility (http://www.nllgg.nl/Ted/) that would "let you print
RTF from command line, iirc" . He added "these merge examples support embedded
images too :) - I tested that out with my marketing campaign" . Derek finally
got the ouput to open in OpenOffice, but reported "it appears to be same record
over and over - 327 pages" . He would look at this further tomorrow.
The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.15May2002)
, Derek (laurie) said "i think the rtf page break is not working correctly -
when i created that output.rtf - on windows the first page is almost correct
and every subsequent page is paged incorrectly but every page has correct data
starting at SR 1 and going through - on openoffice in linux the paging is also
out of sync" . Jason said "it's gonna take some tweaking w/the rtf" but
"there's some changes in CVS" , although he wasn't sure whether they would be
in the automatic nightly CVS tarball posted to the website (http://
www.gnuenterprise.org/downloads/snapshots/) . Derek said "well i have heard
before that mfs does wild rtf (not quite standard) so this could be part of
issue to perhaps?" He felt "by the time we get this working - it will be like
0.5 state :)" . Jason asked if that meant "it'll be half useful" ?
Later, Derek (dneighbo) said he was "going to play with master/detail in the
grd i think - and then will play with parameters - so i only print one of these
things at a time :) - nulling the need for paging :) - at least temporarily" .
Jason said "I find the rtf format thoroughly confusing - so I'm still trying to
figure out just which tag is the table tag :)" . Derek reported "we have case
sensitive issues in datasources again i think" - but Reports was using the same
code in GNUe Common as Forms, which wasn't having a problem. Jason said "I'm
sure it's an initialization problem" . Derek confirmed "ok its definitely a
reports issue" , as he copied the datasources from a working GNUe Forms
Definition file into a GNUe Reports Definition file "and get the same error" .
After a while, he asked "how can you use params as query options?" Jason cut &
pasted an example, using an tag for 'equals'. He explained "you HAVE to
pass parameters on the command line at the moment" . Derek asked if there was a
tag for 'like' (pattern matching) as well as 'equals.' Jason said "lemme look"
, warning "btw, you are getting into untested waters, right now - just be
forewarned - the code is there - but isn't heavily tested" . He confirmed
"yeah, I think there;s a " , adding "for an idea of what's supported,
look at common/src/GConditions.py - at the bottom of that file is a dictionary
of supported tags" .
Jason did a one-character patch(!) to the code, and Derek reported "kick ass
params work - i think this will over come my paging issues for now - since i
will only be generating one sr at a time" . He said "only thing outstanding i
think to make this work" with DCL "is a. getting master/detail working - b.
making php call the reports via 'exec'" . Jason said "I'm doing b. right now :)
- well, indirectly - if you want my script, I can send it to you - it's a
little specialized to my setup though" . James suggested "have your php exec an
ssh which commands reports to dump to stdout - then you can put reports on a
debian box - wonder if that'd hurt responce time much :)" Jason said his set up
was, if anything even more complicated - "you should see what I'm doing w/my
Zope setup :)" . He had "my zope server talking to Oracle on my solaris machine
w/no problem - however, I want to let out sales reps download the actual
reports we print for them - so I've hacked Oracle Reports to spit out PDF to a
file (thank you ghostscript!) - so I have apache+php running on the reports
server - which exec's oracle's runrep - zope calls this php server - to
retrieve the pdf reports - and sends them on their merry way" . Derek said "im
hoping php has an exec that waits until completion - as in my case i will have
dcl call a page that passes the sr_number - execute the report and create the
rtf. When exec is done - php checks file exists - if it does it merely opens
the rtf otherwise it errors - or something SIMPLE - as i want a different
solution long term this is the 8 hour fix" .
Later, Jason said "if you can whip me up a master/detail test report - I can
debug it tonight" . He would also see if he could hack datemasks "if you want
to be beta tester for them" . Derek said this was "not huge item, master detail
much more important" .
28. Data type validation in Forms and Application Server
14 May 2002 Archive Link: "[IRC] 15 May 2002"
Topics: Forms, Application Server
People: Derek Neighbors
Derek Neighbors (laurie) noted that "forms isnt particularly bitchy about data
typev - you can set datatypes in the entry tags so that it will validate
against that type in entry - and 'masks' exist to format things as date/money
etc (though i havent confirmed usage)" . However, "geas i suspect will be much
more bitchy about data typing - as it should be" .
Sharon And Joy
Kernel Traffic is grateful to be developed on a computer donated by Professor
Greg Benson and Professor Allan Cruse in the Department of Computer Science at
the University of San Francisco. This is the same department that invented
FlashMob Computing. Kernel Traffic is hosted by the generous folks at
kernel.org. All pages on this site are copyright their original authors, and
distributed under the terms of the GNU General Public License version 2.0.