<?xml version="1.0" ?>

<kc>

<title>GNUe Traffic</title>

<author contact="mailto:psu@manorcon.demon.co.uk">Peter Sullivan</author>

<issue num="29" date="18 May 2002 00:00:00 -0800" />

<headquote>
Awful pun of the week - 
&quot;<cite>.aq is antarctica - perhaps gnue can move 
its cvs there, then code freezes are much easier</cite>&quot;
</headquote>

<intro>

<p>This Cousin covers the three main 
mailing lists for the GNU Enterprise project,
<a href="http://mail.gnu.org/mailman/listinfo/gnue">gnue</a>, 
<a href="http://mail.gnu.org/mailman/listinfo/gnue-dev">gnue-dev</a> and 
<a href="http://mail.gnu.org/mailman/listinfo/gnue-announce">gnue-announce</a>.  
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 
<a href="http://www.gnuenterprise.org/irc-logs/">logs</a>.
For more information about the GNU Enterprise project, see their 
home page at <a href="http://www.gnuenterprise.org">
http://www.gnuenterprise.org</a>.</p>

</intro>

<section 
   title="Business objects in GNUe Application Server"
   subject="[Gnue-dev] Appserver Documentation" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000113.html"
   posts="12"
   startdate="06 May 2002 23:00:00 -0800" 
   enddate="08 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<mention>Jens M&#252;ller</mention>

<p>Reinhard M&#252;ller announced that <quote who="Reinhard M&#252;ller">The 
appserver documentation (the whitepaper as well as the API
documentation)</quote> had been moved into CVS. It could be 
compiled using the make command and texinfo. Neil Tiffin 
suggested <quote who="Neil Tiffin">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.</quote> Reinhard was not 
sure if there was any <quote who="Reinhard M&#252;ller">practical use 
of this</quote> when it came to writing applications.</p>

<p>Jens M&#252;ller gave an example using Amazon. Neil said 
that <quote who="Neil Tiffin">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.</quote> Therefore, 
<quote who="Neil Tiffin">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.</quote>. He 
added <quote who="Neil Tiffin">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.</quote>. He thought  
<quote who="Neil Tiffin">that implementing general 
inheritance is a bit much</quote> but that 
<quote who="Neil Tiffin">Maybe there is a better way of doing 
this.</quote></p>

</section>

<section 
   title="Danish non-free ERP software firm bought by Microsoft"
   subject="Microsoft Navision buyout?" 
   archive="http://mail.gnu.org/pipermail/gnue/2002-May/003076.html"
   posts="7"
   startdate="06 May 2002 23:00:00 -0800" 
   enddate="12 May 2002 23:00:00 -0800">

<topic>Financials (Accounting)</topic>
<topic>Why GNUe?</topic>

<p>Todd Boyle cut &amp; pasted the announcement of the take-over 
of the Danish enterprise software firm Navision by 
Microsoft, and asked gloomily <quote who="Todd Boyle">Can 
any competing midrange or enterprise software survive
on Windows, against the $Billions of Microsoft 
resources?</quote>. Reinhard M&#252;ller was more up-beat - 
<quote who="Reinhard M&#252;ller">Sure it can. If it is Free 
Software. Free Software always survives.</quote>. 
Todd felt that <quote who="Todd Boyle">On Windows? That's 
debatable.</quote> Derek Neighbors said 
<quote who="Derek Neighbors">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.</quote></p>

<p>Earlier, Christopher Brown agreed in part with Todd - 
<quote who="Christopher Brown">The APIs change often enough that 
what's Particularly Keen now isn't likely to function anymore in 
another few years</quote>, relating his experiences of 
<quote who="Christopher Brown">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.</quote> 
However, <quote who="Christopher Brown">I'll bet that a lot of 
X11R5 software is still quite usable, though...</quote> 
Derek said that deliberate changes to APIs to lock out free 
software were possible, but <quote who="Derek Neighbors">remember 
they have partners and people other than themselves that write 
applications for their platform.</quote> Making changes 
<quote who="Derek Neighbors">at a pace that actually
locked free software developers out would drive them out as 
well</quote>. He cited<quote who="Derek Neighbors">AOL 
Instant Messenger</quote>, where AOL had tried something 
similar, but had to back down after user complaints.</p>

<p>Kenneth Reiszner said the buy-out fitted the pattern of 
<quote who="Kenneth Reiszner">other acquisitions like MSNBC which 
will continue even if</quote> Windows <quote who="Kenneth Reiszner">goes 
belly up</quote>. He felt the only ways that Windows would survive 
more than another 5-10 years would be 
<quote who="Kenneth Reiszner">Legislation making free software 
illegal</quote> or <quote who="Kenneth Reiszner">Microsoft to somehow
embrace open source (maybe only the OS at first)</quote>, both of 
which were unlikely.</p> 

</section>

<section 
   title="Object Transparency in GNUe Application Server"
   subject="[Gnue-dev] [GEAS] [doc: White Paper] GOAT: Object transparency" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000118.html"
   posts="2"
   startdate="08 May 2002 23:00:00 -0800" 
   enddate="08 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jens M&#252;ller asked what the possible uses of Object Transaparency 
were. Reinhard M&#252;ller said that <quote who="Reinhard M&#252;ller">not 
every field in an object is mapped 1:1 to a column in the 
database</quote> as there could be fields in an object 
that were <quote who="Reinhard M&#252;ller">calculated fields that 
have no database column</quote>. Not all database columns 
would necessarily have object fields, either. This might 
even apply <quote who="Reinhard M&#252;ller">the same 
on object/table level: not every object will have a
directly assigned database table.</quote></p>

<p>Jens also asked <quote who="Jens M&#252;ller">Is 
there already a consensus about how abstract base classes should be
implemented?</quote> Reinhard said that the previous version of 
GNUe Application Server (GEAS) had tried to support inheritance, 
but <quote who="Reinhard M&#252;ller">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.</quote> He pointed Jens to the thread in 
<kcref subject="[Gnue-dev] Appserver Documentation" archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000113.html" />
for further details.</p>
     
</section>

<section 
   title="New Toolbar icons"
   subject="[Gnue-dev] toolbar icons" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000177.html"
   posts="1"
   startdate="08 May 2002 23:00:00 -0800" 
   enddate="14 May 2002 23:00:00 -0800">

<topic>Forms</topic>
<topic>Designer</topic>

<p>Further to 
<kcref title="Planning for next release" subject="[IRC] 06 May 2002" />, 
James Thompson (jamest) reported 
<a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.09May2002">on
IRC</a> that <quote who="James Thompson">prequery 
works again - and we have tenatively have new icons for the tbar</quote>, 
as reported in 
<kcref title="New Toolbar Icons" subject="[IRC] 08 May 2002" />.
Derek Neighbors (dneighbo) said <quote who="Derek Neighbors">i think 
gnome 2 icons are gpl</quote> but noted <quote who="Derek Neighbors">its 
good to triple check :)</quote>.</p>

<p>Later, Derek said he was not sure about the arrows in the new 
toolbar icons - <quote who="Derek Neighbors">i understand its more 
correct to point up and down</quote> for record navigation, but 
<quote who="Derek Neighbors">windows users will be confused - 
as they are used to &lt;&lt; &lt; &gt; &gt;&gt; or such</quote>. James, possibly 
with pun intended, said <quote who="James Thompson">i've got back 
and forth on that - as I've started describing forms like a 
rolodex</quote>. However, they could include other icons and let
people change them in the gnue.conf file. Derek thought that 
the icon for 'undo' was <quote who="Derek Neighbors">a bit scary 
(only becuase some people might not see the undo arrow) and think its 
save :) - but over all they are slick looking :)</quote>. James 
said he had e-mailed the author of the GNOME icons, 
<quote who="James Thompson">no responce</quote>. He thought that 
the new icons would be fine, at least <quote who="James Thompson">until 
we can snag us an artist - i think i cc'd a few people on that</quote>.</p>

<p>Later, on the mailing list, Bajusz Tam&#0225;s said he liked 
<quote who="Bajusz Tam&#0225;s">nice new icons on toolbar</quote>, but felt 
<quote who="Bajusz Tam&#0225;s">The Clear Form icon is misleading i think.</quote>
He suggested an icon of a pencil eraser.</p>

</section>

<section 
   title="GNUe Documentation"
   subject="[IRC] 09 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.09May2002"
   startdate="08 May 2002 23:00:00 -0800" 
   enddate="08 May 2002 23:00:00 -0800">

<p>Further to 
<kcref title="GNUe Documentation" subject="[IRC] 05 May 2002" />, 
Reinhard M&#252;ller (reinhard) said that, although he used texinfo, 
<quote who="Reinhard M&#252;ller">currently everybody uses what fits him 
best - which is ok IMHO as long as it can generate pdf</quote>. 
He noted that <quote who="Reinhard M&#252;ller">docbook is used by many 
gnu projects actually</quote> and also by the Linux Documentation 
Project (LDP). He wasn't keen on relying solely on tools like 
<quote who="Reinhard M&#252;ller">doxygen/happydoc</quote> because 
<quote who="Reinhard M&#252;ller">for several reasons i don't think 
documentation should be embedded in the source code</quote>.</p>

<p>Derek Neighbors (dneighbo) said <quote who="Derek Neighbors">officially 
docbook is GNUe's official format - but we dont FORCE people to use 
it - we want documentation, so we arent too picky</quote>. He had 
used happydoc, but <quote who="Derek Neighbors">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'</quote>. Reinhard said <quote who="Reinhard M&#252;ller">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</quote>.</p>

<p>Later, James Thompson (jamest) noted <quote who="James Thompson">python 
also added a pydoc module recently</quote> but agreed 
<quote who="James Thompson">i wouldn't mind having code docs but don't 
want it to be <cite>only</cite> docs</quote>. Gontran Zepeda (gontran) 
suggested that happydoc-style documentation was 
<quote who="Gontran Zepeda">a good way to shoehorn new developers into 
productivity ;)</quote> as opposed to fuller documentation aimed at 
users. Derek said he preferred happydoc to pydoc as the latter 
<quote who="Derek Neighbors">has a lot less 
features</quote>. James said that using the built-in pydoc would 
reduce the number of <quote who="James Thompson">external dependencies
 :)</quote>.</p>

<p>For general documentation, James confessed that he had 
<quote who="James Thompson">secretely thought about going to openoffice 
:)</quote> Derek said he had spoken <quote who="Derek Neighbors">with 
norman walsh (author of docbook) and we have been brainstorming on what 
it might take to make abiword do docbook right</quote>. James clarified 
that he was a big advocate of docbook as a format -  
<quote who="James Thompson">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</quote>. Amaya 
html was suggested as a format which could be converted to docbook. 
Derek said <quote who="Derek Neighbors">i have suggested this - 
no one liked the idea - that and best i could tell amaya in debian 
still didnt support things properly</quote>.</p>

</section>

<section 
   title="Application Server without object support"
   subject="[IRC] 09 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.09May2002"
   startdate="08 May 2002 23:00:00 -0800" 
   enddate="08 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Derek Neighbors (dneighbo) asked <quote who="Derek Neighbors">would 
it be worth doing the first version of geas while TOTALLY ignoring objects 
altogether</quote>? They could just <quote who="Derek Neighbors">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?</quote>. 
Reinhard M&#252;ller (reinhard) said <quote who="Reinhard M&#252;ller">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</quote>. He would 
<quote who="Reinhard M&#252;ller">write up a summary for whitepaper what 
oop features i think we will see in appserver</quote>. 
Derek expanded <quote who="Derek Neighbors">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</quote>. He 
emphasised that this was just <quote who="Derek Neighbors">for 
the first pass (not long term)</quote>. He felt 
<quote who="Derek Neighbors">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</quote>.</p>

</section>

<section 
   title="Curses (text-only) Forms client using nstti"
   subject="[IRC] 09 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.09May2002"
   startdate="08 May 2002 23:00:00 -0800" 
   enddate="13 May 2002 23:00:00 -0800">

<topic>Forms</topic>
<topic>Why GNUe?</topic>

<p>Further to 
<kcref title="Curses (text-only) Forms client using nstti" subject="[IRC] 07 May 2002" />, 
Gontran Zepeda (gontran) reported his testing on nstti was going 
well, and he was <quote who="Gontran Zepeda">looking into some 
enhancements and to get more familiar with ... :) oh</quote>. 
James Thompson (jamest) said <quote who="James Thompson">that cvs 
isn't on a mail list so i have no idea what's been done</quote> - 
it was not in the main GNUe CVS for copyright reasons. Gontran 
said he had <quote who="Gontran Zepeda">added a changelog in nstti/ 
to attempt to keep track .. (heh)</quote>. Derek Neighbors 
(dneighbo) said that <quote who="Derek Neighbors">i.e. if your 
commit messages are good</quote> changelogs could be automated.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.14May2002">
Some days later</a>, 
Gontran reported <quote who="Gontran Zepeda">just right now had a breakthrough 
by using obvious test form</quote>, which had 'sort-of' worked. However, he 
needed to use <quote who="Gontran Zepeda">curses.wrapper around nstti to clean 
up the scren properly in the case of mysteriously timed exits.</quote> He 
really ought <quote who="Gontran Zepeda">to play around a bit with UIdriver 
first i think</quote> but <quote who="Gontran Zepeda">fsckd terms might get 
annoying enough to do something about</quote> that first. James 
said that the <quote who="James Thompson">stty sane</quote> was a useful 
command <quote who="James Thompson">if your term gets screwed up</quote> - 
<quote who="James Thompson">even if you can't see yourself typing it</quote>.
Derek tried <quote who="Derek Neighbors">jamest sane</quote>, but James reported 
<quote who="James Thompson">jamest: Error: not supported attribute 
"sane" :)</quote>.</p>

<p>Gontran would submit his changes once he had completed his Free Software 
Foundation copyright assignment. Derek explained <quote who="Derek Neighbors">the 
paperwork was never meant to be a draconian way to stop code production, more 
a</quote> way of protecting both the developers and the project. He noted  that 
FSF <quote who="Derek Neighbors">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 :)</quote>.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.15May2002">
The next day</a>, 
Gontran reported he had <quote who="Gontran Zepeda">got 
my papers, posting the both (gnue, and nstti) today</quote> to 
FSF. He asked about the history of nstti. Derek said 
<quote who="Derek Neighbors">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</quote>. 
Gontran noted that it only used the Lesser GNU Public License (LGPL), 
not the full GPL. Derek said <quote who="Derek Neighbors">the problem 
is that we dont put things in our tree w/o assignment - so its in our 
off tree</quote>. However, <quote who="Derek Neighbors">there has been 
talk amongst us of whether its worth getting assignment from original 
authors - at which point it would be come official gnue</quote>. 
He added <quote who="Derek Neighbors">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 
:)</quote> He added <quote who="Derek Neighbors">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</quote> as well.</p>

</section>

<section 
   title="Possible Application Server functionality TODOs"
   subject="[IRC] 09 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.09May2002"
   startdate="08 May 2002 23:00:00 -0800" 
   enddate="08 May 2002 23:00:00 -0800">

<topic>Application Server</topic>
<topic>Financials (Accounting)</topic>

<p>Jan Ischebeck (siesel) asked whether 
<quote who="Jan Ischebeck">every row in a table be represented as 
Object, or should a whole table be represent by just one 
object?</quote> Jens M&#252;ller (ICJ) thought this would be 
<quote who="Jens M&#252;ller">not difficult to implement</quote>. 
Jan was more worried about performance. Jens asked about using 
<quote who="Jens M&#252;ller">Common Lisp Object System, or something 
like that</quote>. Lisp-based reports could be useful for things like 
<quote who="Jens M&#252;ller">German tax returns and tax calculations
(tax optimization)</quote> He felt <quote who="Jens M&#252;ller">all 
this prediction stuff is AI, IMO - perfectly suited for LISP</quote>.</p>

<p>Reinhard M&#252;ller (reinhard) suggested <quote who="Reinhard M&#252;ller">i 
think every single row is represented by a geasInstance instance 
(if the mapping between object and db is 1:1)</quote>. He 
referred to <quote who="Reinhard M&#252;ller">neilt's 
<a href="http://www.gnuenterprise.org/modules.php?op=modload&amp;name=NS-My_eGallery&amp;file=index&amp;do=showpic&amp;pid=31">diagram</a>
 of the geas parts?</quote> Although it was very high level, he
still found it useful in keeping concepts clear - 
<quote who="Reinhard M&#252;ller">for example the geasMetaObject belongs 
into the "object repository" and geasList belongs into "object 
server"</quote> 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 
<quote who="Reinhard M&#252;ller">good looking 
buzzwords that aren't defined in detail ;)</quote> Jens suggested 
a games of 'Buzzword Bingo' with <quote who="Jens M&#252;ller">an extra point
for not knowing the meaning of the buzzwords you are using</quote>. 
Reinhard said <quote who="Reinhard M&#252;ller">seriously these are things 
that are needed for upperscale business systems</quote> but 
<quote who="Reinhard M&#252;ller">as they are marked "future" i didn't bother 
much with trying to understand</quote> what they did as of time of 
writing.</p>

</section>

<section 
   title="Dots or colons in object names"
   subject="[Gnue-dev] geasList.py: class name -> table name" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000130.html"
   posts="5"
   startdate="09 May 2002 23:00:00 -0800"
   enddate="13 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jens M&#252;ller asked what the relationship was between 
class names in GNUE Application Server (GEAS) and table names 
in the underlying database - <quote who="Jens M&#252;ller">The 
same with underscores instead of dots?</quote> 
Reinhard M&#252;ller said that, in the old version of GEAS, 
<quote who="Reinhard M&#252;ller">modules 
were separated from the class name by
a ::</quote>, which conflicted with how it was used in C++. 
He suggested using <quote who="Reinhard M&#252;ller">a dot to 
separate the module name from the class name, or another 
special character</quote>, keeping the :: just 
<quote who="Reinhard M&#252;ller">to separate the class name
from the field/method name</quote>. Derek Neighbors
said he preferred <quote who="Derek Neighbors">class.method 
opposed to class::method.</quote>. Reinhard pointed out that 
<quote who="Reinhard M&#252;ller">As we will support namespaces, 
references and compound types, we need
(at least) two different separators.</quote> He thought that 
<quote who="Reinhard M&#252;ller">base.item::sales.price.currency</quote>
was better than 
<quote who="Reinhard M&#252;ller">base.item.sales.price.currency</quote>. 
Derek was not convinced.</p>

<p>At the database end, Reinhard earlier said that GEAS version 1 
had <quote who="Reinhard M&#252;ller">used double underscores 
(__) so that single underscores are still valid in all 
identifiers</quote>, as  previously discussed in 
<kcref  subject="[Gnue-dev] Adventures with geas: strange old parser?" archive="http://mail.gnu.org/pipermail/gnue-dev/2002-January/000012.html" />,
which he would like to keep.</p>

<p>Earlier, Jens asked if there should be <quote who="Jens M&#252;ller">a 
separate function to</quote> map object names to database tables, probably 
in GNUe Common? Reinhard explained that there would be an "object 
repository" which <quote who="Reinhard M&#252;ller">would provide a means 
for looking up a class and getting the table name</quote>, and 
looking up database column names for class field names.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002">
On IRC</a>, Jan Ischebeck (siesel) asked about <quote who="Jan Ischebeck">object-relational 
mapping stuff</quote>. He thought <quote who="Jan Ischebeck">the mapping should be 
handled by the metaObjects.</quote> Daniel Baumann (chillywilly) agreed - 
<quote who="Daniel Baumann">because the meta objects define the schema of our 
appserver (as do the odl/gcd definitions)</quote>. Jan said they also 
<quote who="Jan Ischebeck">define how much and how data has to be loaded from 
the database to build objects and vice versa</quote>.</p>

</section>

<section 
   title="Type definitions in GNUe Application Server (GEAS)"
   subject="[Gnue-dev] type (not class) in .gcd files" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000131.html"
   posts="5"
   startdate="09 May 2002 23:00:00 -0800"
   enddate="09 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jens M&#252;ller asked <quote who="Jens M&#252;ller">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?</quote> Neil Tiffin said that 
<quote who="Neil Tiffin">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.</quote> Jens 
wasn't sure he liked the sound of this - <quote who="Jens M&#252;ller">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?</quote> Neil said the other possibility 
was <quote who="Neil Tiffin">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).</quote> However, he was 
<quote who="Neil Tiffin">not sure I understand what you mean by automatic 
setup?</quote> Jens clarified he meant 
<quote who="Jens M&#252;ller">A package management system.</quote>.</p>

</section>

<section 
   title="Loading methods in GNUe Application Server"
   subject="[Gnue-dev] geasInstance.py: When are methods loaded?" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000134.html"
   posts="7"
   startdate="09 May 2002 23:00:00 -0800"
   enddate="13 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jens M&#252;ller asked <quote who="Jens M&#252;ller">When will the methods be 
loaded and the method table created?</quote> He preferred
<quote who="Jens M&#252;ller">In __init__</quote> rather than 
<quote who="Jens M&#252;ller">when a method is called</quote>. 
Reinhard M&#252;ller saw three possibilities:</p>

<ol>
<li><quote who="Reinhard M&#252;ller">at application server startup</quote>. 
However, this <quote who="Reinhard M&#252;ller">means that you have to 
restart the server every time a method is changed. This can be a big 
problem in a live system.</quote></li>
<li><quote who="Reinhard M&#252;ller">at creation of a business object 
instance</quote>, but this <quote who="Reinhard M&#252;ller">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</quote>.</li>
<li><quote who="Reinhard M&#252;ller">whenever it is called</quote>, as long 
as this was combined <quote who="Reinhard M&#252;ller">with some caching of 
already loaded mehtods</quote> to provide 
<quote who="Reinhard M&#252;ller"><cite>very fast</cite> access to the method 
code</quote>.</li>
</ol>

<p>Derek Neighbors said that <quote who="Derek Neighbors">on 
demand</quote> and <quote who="Derek Neighbors">in batch (variation 
of on demand)</quote> were also needed, as previously 
discussed in 
<kcref subject="[gnue-geas] Dynamic method loading" archive="http://lists.gnue.org/pipermail/gnue-geas/2001-November/000341.html" />. 
He added <quote who="Derek Neighbors">I think also there should be 
option [...] that checks to make sure the 
object is not in a 'transaction' state before applying.</quote>. Reinhard 
said he wasn't sure these extra two options were needed, 
<quote who="Reinhard M&#252;ller">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.</quote> Derek was not convinced.</p>

<p>Jan Ischebeck suggested <quote who="Jan Ischebeck">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).</quote> He gave some sample 
code/pseudocode. Reinhard commented on some of the details, 
but said it <quote who="Reinhard M&#252;ller">looks good at first 
sight.</quote></p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002">
On IRC</a>, Jan (siesel) explained that 
<quote who="Jan Ischebeck">if you add a __call__ method to an 
object, you can handle it as an function.</quote> Jens (ICJ) said 
that he was going to <quote who="Jens M&#252;ller">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</quote> Jan thought <quote who="Jan Ischebeck">many 
geas classes shouldn't inherit too much, because that would make 
them too slow.</quote> Jens noted that the GEAS whitepaper said  
<quote who="Jens M&#252;ller">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.</quote>. Jan noted that <quote who="Jan Ischebeck">On my 
papers buissness object definitions are also objects</quote>
themselves. Jens thought <quote who="Jens M&#252;ller">that would be 
quite a nice recursion ...</quote>. Jan said that 
<quote who="Jan Ischebeck">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</quote>. He added <quote who="Jan Ischebeck">Just 
think of a framework, which can handle persistent "geasObjects",  
which can have versions, can be locked, can be elements of 
transactions...</quote>. Jens felt this was 
<quote who="Jens M&#252;ller">getting more and more complex</quote>, 
and suggested <quote who="Jens M&#252;ller">I will first implement 
something whcih directly accesses the databases - using dbdrivers, 
of couse - and then you can implement your stuff</quote>. He felt 
<quote who="Jens M&#252;ller">we need a usable implementation - otherwise 
you cannot work good on higher level stuff</quote>. He noted 
<quote who="Jens M&#252;ller">as long as we don't release, we can still 
change arch</quote>.</p>

<p>Earlier, on the mailing list, Jens asked 
<quote who="Jens M&#252;ller">How are triggers 
implemented? As methods?</quote>. He recognised that 
<quote who="Jens M&#252;ller">trigger methods could also be (tried
to be) loaded when needed, but I think this would cause performance
losses).</quote> Reinhard confirmed <quote who="Reinhard M&#252;ller">Triggers 
are methods that are called automatically.</quote></p>

</section>

<section 
   title="GNUe Application Server (GEAS) development"
   subject="[IRC] 10 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.10May2002"
   startdate="09 May 2002 23:00:00 -0800" 
   enddate="12 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Reinhard M&#252;ller (reinhard) said that Application Server development was 
going <quote who="Reinhard M&#252;ller">slowly - however it seems to have 
attracted a lot of people - sledge, siesel, ICJ...</quote>. 
Jens M&#252;ller (ICJ) started to look 
at the phaseInit code, as previously discussed in 
<kcref title="HTML client for GNUe Forms" subject="[IRC] 02 Jan 2002" />. 
He noted it <quote who="Jens M&#252;ller">uses a default of 5 itererations</quote>. 
James Thompson (jamest) explained <quote who="James Thompson">the first phaseInit
was hardcoded to 5</quote> but it was subsequently changed to use a variable 
number. Jens asked <quote who="Jens M&#252;ller">but this function can be 
used, right?</quote>. James said <quote who="James Thompson">it is absolutely 
required</quote>. Later, Jens said <quote who="Jens M&#252;ller">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 ;-(</quote>. He concluded 
<quote who="Jens M&#252;ller">well, now I have to figure out that trigger 
support</quote>.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.12May2002">
Some days later</a>, Jan Ischebeck (siesel) asked about the best way 
<quote who="Jan Ischebeck">to set attributs of an geasInstance</quote>. 
Daniel Baumann (chillywilly) explained <quote who="Daniel Baumann">the 
methods provide encapsulation</quote>. He asked 
<quote who="Daniel Baumann">is it Python style to name exceptions 
WhateverError?</quote> Jan said <quote who="Jan Ischebeck">allmost. The 
Base class is called "exception" but the rest is call "whatever"Error.</quote>
Daniel asked <quote who="Daniel Baumann">if I called something WhateverException 
would I be breakin some sort of unwritten Python rule?</quote> Jan said 
<quote who="Jan Ischebeck">Yes, the python god would send a snake to bite you 
and poison you deadly ;)</quote> Daniel didn't like the sound of this, and 
decided to <quote who="Daniel Baumann">define my little exception heirarchy 
using "Foo"Error then ;)</quote>.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002">
The next day</a>, Daniel said he was 
<quote who="Daniel Baumann">reading the relevant GEAS threads on gnue-dev 
again</quote>, saying <quote who="Daniel Baumann">I am partial to the 
API's described in the standard, but that's just me</quote> Jan 
supported this, saying  <quote who="Jan Ischebeck">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 ;)</quote>. Daniel said he <quote who="Daniel Baumann">didn't know 
that supporting inheritance was up for debate</quote>. Christian Selig 
(sledge_) asked <quote who="Christian Selig">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.</quote>. Daniel said 
it was <quote who="Daniel Baumann">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</quote>.</p>

<p>Christian asked if <quote who="Christian Selig">gcd's are converted to python 
objects;</quote> and <quote who="Christian Selig">geas2 "just" handles 
them</quote>? Daniel said <quote who="Daniel Baumann">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</quote>, as in his 
<a href="http://www.gnuenterprise.org/~baumannd/geas-schema-compiler.png">diagram</a>. 
Jan suggested <quote who="Jan Ischebeck">you call geas2 to parse a ODL file (or a 
gcd) and it creates persistent objects on the fly.</quote> Daniel agreed, but 
added <quote who="Daniel Baumann">you should be able to go either way</quote>.</p>

<p>Daniel said that the meta-objects were <quote who="Daniel Baumann">data 
(Objects) about objects (i.e., introspection)</quote>. Jan explained 
<quote who="Jan Ischebeck">you can use 
metaobjects to change class definitions, add functions</quote> which meant 
<quote who="Jan Ischebeck">so meta objects can change objects on the fly</quote>. 
Daniel said that <quote who="Daniel Baumann">modules, classes, scope, 
definfingscope, etc. are all meta objects that help describe the class 
definitions</quote>. He expected <quote who="Daniel Baumann">every object would 
have a definition, a python class for that object, and correspondgin meta objects 
for the definition</quote>, and convert from GNUe Class Definitions (gcds) to 
objects and back again. Jan noted <quote who="Jan Ischebeck">there is a test 
version with working metaObjects and method loading in 
appserver/src/_featuretest</quote>.</p>

</section>

<section 
   title="DCL as a bug-tracking system - and more"
   subject="[IRC] 10 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.10May2002"
   startdate="09 May 2002 23:00:00 -0800" 
   enddate="09 May 2002 23:00:00 -0800">

<topic>DCL</topic>

<p>Jens M&#252;ller (ICJ) asked <quote who="Jens M&#252;ller">what is so cool about 
DCL?</quote> He preferred Mozilla as a bug-tracking system (BTS). 
Peter Sullivan (psu) said DCL was being integrated into GNUe, as 
discussed in 
<kcref title="First fruits of the GNUe/DCL merger" subject="[IRC] 21 Mar 2002" /> - 
<quote who="Peter Sullivan">Derek already has some "simple" Forms 
that point at DCL tables</quote>. DCL was not 
<quote who="Peter Sullivan">just a bug tracking system</quote>. 
Derek Neighbors (dneighbo) confirmed this - 
<quote who="Derek Neighbors">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</quote>. The main weakness at 
the moment was <quote who="Derek Neighbors">how it handles contacts and 
hierarchies - much of which is painful in lack of RBAC</quote>. 
However <quote who="Derek Neighbors">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</quote>. He said <quote who="Derek Neighbors">we use it more 
than anything because it has a gracious maintainer who shares our vision - 
and it made sense to collaborate</quote>. He didn't like some of the 
DCL terminology, but <quote who="Derek Neighbors">in many cases i ahve 
altered the terms :)</quote> which was one of the practical benefits
of access to the source code with free software.</p>

</section>

<section 
   title="Grids and scrollbars in Forms"
   subject="[IRC] 10 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.10May2002"
   startdate="09 May 2002 23:00:00 -0800" 
   enddate="09 May 2002 23:00:00 -0800">

<topic>Forms</topic>

<p>Marcos Dione (StyXman) asked about adding <quote who="Marcos Dione">widgets 
to a form in *runtime*.</quote> 
James Thompson (jamest) suggested <quote who="James Thompson">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</quote>. Marcos said he wanted to be able to 
add <quote who="Marcos Dione">wigets as necesary. 
if I need 10, I add 10. if I nedd a thousand, so be it.</quote> 
He gave an example of <quote who="Marcos Dione">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).</quote> Christian Selig (sledge_) agreed -
<quote who="Christian Selig">that's what i've always missed: a grid (or 
something comparable)</quote>. Derek Neighbors (dneighbo) said 
<quote who="Derek Neighbors">there is a grid</quote>, 
as previously discussed in 
<kcref title="GNUe vs E/AS" subject="[IRC] 28 Jan 2002" /> - 
<quote who="Derek Neighbors">say you have five columns (read five 
entries) - simply add rows="" to the tag - where "" is number of rows to 
display</quote>.</p>

<p>Christian asked <quote who="Christian Selig">how to add new items to such a 
list?</quote> Derek said <quote who="Derek Neighbors">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</quote>. He
emphasised <quote who="Derek Neighbors">everything is editable, savable 
etc</quote>. James Thompson (jamest) suggested 
<quote who="James Thompson">look at forms/samples/zipcode/zipcode.gfd
for example</quote>. Derek admitted that there was 
<quote who="Derek Neighbors">no scrollbar :(</quote> as of time of 
writing. James said <quote who="James Thompson">the scrollbar exists - 
just no events tied to it yet to move the focus :(</quote>.
However, the up and down arrows worked on grids - 
<quote who="James Thompson">it's just like navigating records - 
as that's what each row is</quote>. Derek said 
<quote who="Derek Neighbors">it is rather usable - its just not 
'pretty' as native grid</quote>.</p>

</section>

<section 
   title="Hook system for interacting classes in GNUe Application Server"
   subject="[Gnue-dev] Hook system" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000143.html"
   posts="2"
   startdate="10 May 2002 23:00:00 -0800"
   enddate="13 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jens M&#252;ller posted a <quote who="Jens M&#252;ller">paper for a hook system 
for the interaction of classes.</quote> This would allow one class 
<quote who="Jens M&#252;ller">to be informed about changes of objects</quote> 
of another class, using a <quote who="Jens M&#252;ller">Trigger/hook system 
for classes</quote>. 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 <quote who="Jens M&#252;ller">to track which hooks a class provides 
and which functions are connected with a hook.</quote> 
Reinhard M&#252;ller said <quote who="Reinhard M&#252;ller">I think I agree with
most points. I will include the text into the whitepaper</quote> when he 
next revised it.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002">
On IRC</a>, Jens (ICJ) asked if there had been any work done yet on 
GEOR. Reinhard (reinhard) said <quote who="Reinhard M&#252;ller">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</quote>. 
Jens said he would make some notes on his next trip 
<quote who="Jens M&#252;ller">and then I will start to do some coding 
on GEOR - next week or so</quote>.</p>

<p>Jan Ischebeck (siesel) said that 'hook' was a good description of Jens' 
proposal, <quote who="Jan Ischebeck">but you could call it trigger 
also.</quote> as <quote who="Jan Ischebeck">it looks like the 
TRIGGERS you have in databases, which are defined after tables are 
defined.</quote> He preferred <quote who="Jan Ischebeck">the EVENT 
modell.</quote>. Jens said he had <quote who="Jens M&#252;ller">once 
read a bit in the Java tutorial</quote> abou events - 
<quote who="Jens M&#252;ller">there you had to register listeners for events
just like my hook proposal</quote>. Jan gave an example using 
<quote who="Jan Ischebeck">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?")</quote>. Also, <quote who="Jan Ischebeck">you also can define 
a trigger like. ON customer.boughtcomputer + 20 day DO 
sendmessage("Do you still not need software for you computer?)</quote>. 
Jens thought this might be part of the role of the 
<quote who="Jens M&#252;ller">Workflow Server?</quote> Jens said he 
also <quote who="Jens M&#252;ller">wanted to use the hook model for dynamic 
updates</quote>. Jan suggested <quote who="Jan Ischebeck">you think 
of something like employee.takeAdayOff triggering holiday 
statistic</quote>?</p>

</section>

<section 
   title="Writing Financials in GNUe Application Server (GEAS)"
   subject="[IRC] 11 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002"
   startdate="10 May 2002 23:00:00 -0800" 
   enddate="10 May 2002 23:00:00 -0800">

<topic>Financials (Accounting)</topic>
<topic>Application Server</topic>
<topic>Forms</topic>

<p>Peter Sullivan (psu) pointed to the General Ledger (GL) 
<quote who="Peter Sullivan">proposal on the website</quote>. He emphasised 
<quote who="Peter Sullivan">it's just a proposal - we have held off implementing 
uintil we have an appserver</quote>. Daniel Baumann (chillywilly) said 
<quote who="Daniel Baumann">our middle</quote> tier would 
<quote who="Daniel Baumann">do object-relational layer, 
support various remote protocols, support various langauges for object methods, 
etc.</quote>. Peter said <quote who="Peter Sullivan">the key thing is that the 
middle tier enables you to seperate the biz logic from the Forms</quote>. 
He gave an example - <quote who="Peter Sullivan">a basic rule of accountancy 
is that journals must balance</quote>. In two-tier, 
<quote who="Peter Sullivan">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 &amp; would sned the error msg back 
to the forms client</quote>. Daniel explained that the Application Server was 
<quote who="Daniel Baumann">"in the works" - well we scrapped the old one</quote>, 
as agreed in 
<kcref title="GNUe Application Server (GEAS) version 2 Discussion" subject="[IRC] 28 Feb 2002" />.</p>
    
<p>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 <quote who="Peter Sullivan">redundancy, scalability etc - 
Also ability to use OO</quote>. Daniel pointed out that, even with 2-tier,
<quote who="Daniel Baumann">GNUe allows you to store your forms on HTTP doesn't 
it?</quote> Perry Lorier (Isomer) said that way <quote who="Perry Lorier">you 
could update the HTTP server and suddenly they're all updated :)</quote>. 
Later, Daniel cut &amp; pasted the code which allowed you to 
<quote who="Daniel Baumann">have http://my.webserver/form.gfd</quote> as your 
location for a form, noting <quote who="Daniel Baumann">this 
is used throughout</quote> whenever a Forms definition was referenced. Peter 
said that <quote who="Peter Sullivan">The other claimed benefit of 3-tier is 
that you can have "thin clients" - but this is fairly notional</quote> 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.</p>

<p>Peter said that if anyone had any comments on the 
GL proposal, they should <quote who="Peter Sullivan">post them to 
gnue@gnu.org</quote>, as the current work on Application Server meant 
that the Financials proposal might start being programmed soon. 
<a href="http://subversions.gnu.org/cgi-bin/cvsweb/gnue/docbook/articles/accounting_package.lyx">The 
source</a> was in lyx, but could be converted to straight text by 
using egrep to remove all lines starting with a backslash.</p>

<p>He felt <quote who="Peter Sullivan">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</quote>. 
However, <quote who="Peter Sullivan">SQL is about the only thing that 
can break their addiction to spreadsheets (which, 99% of the time, means 
Excel</quote>.</p>

</section>

<section 
   title="Timesheet application for GNUe"
   subject="[IRC] 11 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002"
   startdate="10 May 2002 23:00:00 -0800" 
   enddate="10 May 2002 23:00:00 -0800">

<topic>DCL</topic>
<topic>Forms</topic>
<topic>Reports</topic>

<p>Jeff Bailey (jbailey) asked <quote who="Jeff Bailey">Are 
there any timesheet apps for Gnue yet?</quote>. Peter Sullivan (psu)
said that <quote who="Peter Sullivan">DCL has some time recording in it</quote>
but that was not its main focus. However, <quote who="Peter Sullivan">You could 
knock up a fairly quick timesheet mini-app using Forms in two-tier</quote>. 
Daniel Baumann (chillywilly) noted <quote who="Daniel Baumann">you can use a 
url for the form</quote> to avoid problems distributing the GNUe Forms 
Definition (.gfd) files. Peter added <quote who="Peter Sullivan">reports is 
now getting beyond proof of concept stage - so you can even get data back out 
again ;-)</quote>.</p>

</section>

<section 
   title="Object Life Circle for GNUe Application Server"
   subject="[Gnue-dev] GEAS Object Life Circle Proposal"
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000147.html"
   posts="4"
   startdate="10 May 2002 23:00:00 -0800"
   enddate="13 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<mention>Derek Neighbors</mention>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.11May2002">
On IRC</a>, Jan Ischebeck (siesel) asked for comments on his 
<a href="http://www.gnuenterprise.org/~jan/appserver/object_life_cicle.gif">object 
life cycle</a> diagram. He explained <quote who="Jan Ischebeck">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.</quote>.</p>

  
<p>Jens M&#252;ller (ICJ) said that, linking this to his 
<kcref subject="[Gnue-dev] Hook system" archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000143.html">hooks 
proposal</kcref>, <quote who="Jens M&#252;ller">the hook causes another class (AdLetter) 
to create a new instance of itself - this new class then tells</quote> the GNUe Event #
and Workflow Server (GEWS) <quote who="Jens M&#252;ller">to call a method of itself 20 days 
later</quote>. Jan agreed - <quote who="Jan Ischebeck">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"...)</quote>.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002">
Two days later</a>, Jan said there would be 
<quote who="Jan Ischebeck">ONE cache in memory and the database = TWO</quote>. 
Daniel suggested <quote who="Daniel Baumann">mayeb you could break things up 
into dirty/old cache, new/clean cache</quote> and so on. Other systems he 
had seen did lazy loading - <quote who="Daniel Baumann">you use the proxy 
object and finally whrn it really needs to it will pull from the 
database</quote>. Jan said that <quote who="Jan Ischebeck">if we make the 
database and cache manager an object, we can inherit it and add new caching 
principles... :)</quote>. Daniel said he needed to document some of this.</p>

<p>Later, Daniel cut &amp; 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 <quote who="Daniel Baumann">Python really 
has no 'interface' concept</quote>, with various ways of working around
this. He felt <quote who="Daniel Baumann">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</quote>. Jan suggested 
writing <quote who="Jan Ischebeck">classes for it.</quote> Daniel 
said this would need <quote who="Daniel Baumann">classes that just define 
the methods and thrown NotImplemented exceptions or something</quote>. 
Jan thought <quote who="Jan Ischebeck">this would be better. If someone 
don't like this implementation he still can overwrite it</quote>.</p>

<p>Later, Jason Cater (jcater) noted that the proposed object locking 
system might prove very limiting in practice, except as a
<quote who="Jason Cater">first-draft short-term implementation</quote>.
Daniel agreed that it was <quote who="Daniel Baumann">a pessimistic 
locking policy</quote> but <quote who="Daniel Baumann">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</quote>. He said <quote who="Daniel Baumann">we are 
in no way bound to it</quote> - <quote who="Daniel Baumann">it's 
like the least common denominator</quote>. Jason said that 
<quote who="Jason Cater">sounds reasonable - just didn't want that to be 
our "preferred", long-term method</quote>. Daniel agreed.</p>

<p>Earlier, Jan posted an announcement about the diagram to the mailing 
lists, explaining some of the details. Derek Neighbors reckoned 
<quote who="Derek Neighors">Without reviewing this might be what is 
needed to safely load methods real time.</quote>. Reinhard M&#252;ller said he 
was <quote who="Reinhard M&#252;ller">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.</quote> 
Jan said <quote who="Jan Ischebeck">In my test implementation the 
transaction directly access the global object for reading.</quote>
Local objects were only created when writing. Reinhard also 
asked about <quote who="Reinhard M&#252;ller">the difference between 
"active" and "inactive" state</quote>. Jan explained 
<quote who="Jan Ischebeck">inactive: the object is just data in the 
database - active: the object is an python instance, which can react 
on function calls etc.</quote>. He noted that 
<quote who="Jan Ischebeck">Daniel Baumann told me that odmg.txt 
defines three types of locks: readlock, writelock and 
upgradelock</quote>, which he would add to the diagram.</p>

</section>

<section 
   title="Parameters for method definitions in the Object Repository"
   subject="[Gnue-dev] GEOR: method parameters"
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000149.html"
   posts="2"
   startdate="11 May 2002 23:00:00 -0800"
   enddate="11 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jens M&#252;ller felt that method definitions in the 
Object Repository of GNUe Application Server (GEAS) should 
<quote who="Jens M&#252;ller">have named and typed parameters</quote>, 
as should <quote who="Jens M&#252;ller">hook definitions</quote>, as
discussed in 
<kcref subject="[Gnue-dev] Hook system" archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000143.html" />
Reinhard M&#252;ller agreed on both points, noting that 
<quote who="Reinhard M&#252;ller">"Hook definitions" are 
methods.</quote></p>
 
<p>Jens also asked <quote who="Jens M&#252;ller">What should be allowed 
parameters? Every field type that an object may consist of?</quote> 
Reinhard agreed - <quote who="Reinhard M&#252;ller">Actually I would think 
even "Object" and "List" should be valid parameter types.</quote>. 
Jens felt this was implied.</p>

</section>

<section 
   title="Class and Object Methods for GNUe Application Server"
   subject="[Gnue-dev] GEOR: class/object methods"
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000150.html"
   posts="4"
   startdate="11 May 2002 23:00:00 -0800"
   enddate="13 May 2002 23:00:00 -0800">

<topic>Application Server</topic>
<topic>Financials (Accounting)</topic>

<p>Jens M&#252;ller asked about class and object methods being 
stored in the Object Repository of GNUe Application Server 
- <quote who="Jens M&#252;ller">Is there a need to make a distinction</quote>? 
He felt storing both would be useful. Reinhard said he was 
<quote who="Reinhard M&#252;ller">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.</quote> Jens said that letting users make changes 
to <quote who="Jens M&#252;ller">a biz software system</quote> might 
cause problems with certification, which was a legal requirement in 
Germany, as previously discussed in 
<kcref title="Overview of GNUe" subject="[IRC] 30 Apr 2002" />.
Reinhard said that <quote who="Reinhard M&#252;ller">The user's right to 
alter the software to adapt it to his need is one of the basic principles 
of Free Software.</quote> Jens said that he <quote who="Jens M&#252;ller">only 
meant that a system modified in this way has to be re-certified
if it shall be used for accounting purposes.</quote>.</p>

</section>

<section 
   title="GNUe Application Server (GEAS) as a generic application server"
   subject="[IRC] 12 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.12May2002"
   startdate="11 May 2002 23:00:00 -0800" 
   enddate="11 May 2002 23:00:00 -0800">

<topic>Application Server</topic>

<p>Jan Ischebeck (siesel) asked <quote who="Jan Ischebeck">do you think that geasV2 
should be able to store and retrieve JUST business objects?</quote> 
Daniel Baumann (chillywilly) thought not - <quote who="Daniel Baumann">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</quote>. He asked 
<quote who="Daniel Baumann">what make an 'object' different than a 'business 
object' anyway?</quote>. Jan agreed - <quote who="Jan Ischebeck">for me object 
can be anything, while business objects are objects to store and calculates data 
directly needed by the application.</quote>. Daniel felt 
<quote who="Daniel Baumann">but either way you have to define them right?</quote> 
He said GEAS needed <quote who="Daniel Baumann">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)</quote>. Jan said he had thought 
<quote who="Jan Ischebeck">to make as much as possible of the building blocks of the 
application server objects in the application server</quote> as 
<quote who="Jan Ischebeck">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.</quote> Daniel agreed - 
<quote who="Daniel Baumann">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</quote> 
GNUe Class Definitions (gcds) <quote who="Daniel Baumann">or go from the current 
repository and generate gcds from what the system currently contains</quote>, as 
in his 
<a href="http://www.gnuenterprise.org/~baumannd/geas-schema-compiler.png">diagram</a>.</p>

</section>

<section 
   title="GNUe at trade exhibitions"
   subject="[IRC] 13 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.13May2002"
   startdate="12 May 2002 23:00:00 -0800" 
   enddate="12 May 2002 23:00:00 -0800">

<mention>Jason Cater</mention>
<mention>James Thompson</mention>

<p>Derek Neighbors (dneighbo) asked if anyone was going to be able to 
attend Linux World Expo in San Fransisco in August. He had 
<quote who="Derek Neighbors">submitted paperwork earlier this month 
and plan on following up - but hoping to have some help</quote>. 
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&#252;ller (reinhard) if he was 
<quote who="Derek Neighbors">interested in representing us in 
bordeaux</quote>. Reinhard wasn't keen about having to 
<quote who="Reinhard M&#252;ller">speak 
to a crowd - especially in a language that isn't my native 
one</quote>, asking <quote who="Reinhard M&#252;ller">you ever heard an 
austrian speaking english? - think of schwarzenegger :)</quote>. 
Derek said <quote who="Derek Neighbors">everyone loves arnold</quote>. 
Andrew Mitchell (ajmitch) suggested <quote who="Andrew Mitchell">get 
onto that weightlifting :)</quote> The discussion quickly went 
off-topic, as everyone wondered what sort of things Arnold 
Schwarzenegger would say if he was a GNUe spokesman.</p>

</section>

<section 
   title="CVS freeze for new release"
   subject="[Gnue-dev] CVS Freeze [Common, Forms, Reports, Designer]" 
   archive="http://mail.gnu.org/pipermail/gnue-dev/2002-May/000173.html"
   posts="3"
   startdate="13 May 2002 23:00:00 -0800" 
   enddate="13 May 2002 23:00:00 -0800">

<topic>Forms</topic>
<topic>Designer</topic>
<topic>Reports</topic>
<topic>Common</topic>

<p>Jason Cater announced <quote who="Jason Cater">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.</quote>. Jens M&#252;ller asked 
<quote who="Jens M&#252;ller">Why don't you create a new CVS branch?</quote> 
Jason said <quote who="Jason Cater">Currently, this is more trouble than it's 
worth. As we grow, we will probably resort to branching HEAD for a 
release.</quote></p>

</section>

<section 
   title="Zip code look-up with GNUe Forms"
   subject="[IRC] 14 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.14May2002"
   startdate="13 May 2002 23:00:00 -0800" 
   enddate="13 May 2002 23:00:00 -0800">

<topic>Forms</topic>

<p>Mat Rice (ratmice) reported some problems he was having with 
the sample GNUe Forms, and commented <quote who="Mat Rice">it'd 
be a little useful if state and city weren't readonly</quote>. Derek 
Neighbors (dneighbo) explained <quote who="Derek Neighbors">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</quote>.</p>

</section>

<section 
   title="Using GNUe for distributed databases instead of Microsoft Access"
   subject="[IRC] 14 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.14May2002"
   startdate="13 May 2002 23:00:00 -0800" 
   enddate="13 May 2002 23:00:00 -0800">

<topic>Forms</topic>

<mention>ra3vat</mention>
<mention>Dmitry Sorokin</mention>

<p>It was asked about using GNUe as an alternative to PHP/Postgres
for database applications. Michael Maluck (madlocke) 
explained that GNUe was written in <quote who="Michael Maluck">python</quote>, 
so didn't need compiling. Bajusz Tam&#0225;s (btami) suggested looking at the 
<quote who="Bajusz Tam&#0225;s">designer wizards</quote> 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.</p>

<p>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&#252;ller (reinhard) said GNUe could easily handle multiple 
sites connected via the internet - 
<quote who="Reinhard M&#252;ller">you just have to set the correct parameters 
in connections.conf</quote>.</p>

<p>As far as needing python skills to use GNUe, Reinhard 
said this <quote who="Reinhard M&#252;ller">depends on what you want to do - 
if you need to code triggers then yes</quote>.</p>

</section>

<section 
   title="Non-free/'Open source' ERP alternatives to GNUe"
   subject="[IRC] 14 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.14May2002"
   startdate="13 May 2002 23:00:00 -0800" 
   enddate="13 May 2002 23:00:00 -0800">

<topic>Why GNUe?</topic>

<p>Reinhard M&#252;ller (reinhard) noted <quote who="Reinhard M&#252;ller">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</quote>. This project was 
now dead as far as he knew. Jens M&#252;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 <quote who="Derek Neighbors">not saying 
'are you interested in collaboration' but rather 'hey come join opensource erp
and help us make an open source erp'</quote>. Jens noted that the website 
that was hosting the project said <quote who="Jens M&#252;ller">OpenSourceERP 
This project appears to be defunct; the domain is no longer registered.</quote>
Derek said that he had said at the time that <quote who="Derek Neighbors">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. :)</quote>. There were already several "open 
source" (as opposed to free software) ERP packages such as 
<quote who="Derek Neighbors">POSSL (panther) and NOLA and Compiere - all 
of whom i stated seemed to be on a similar path only already having 
capital</quote>.</p>

</section>

<section 
   title="Mail-merge with GNUe Reports"
   subject="[IRC] 14 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.14May2002"
   startdate="13 May 2002 23:00:00 -0800" 
   enddate="14 May 2002 23:00:00 -0800">

<topic>Reports</topic>
<topic>DCL</topic>
<topic>Integrator</topic>

<p>Derek Neighbors (dneighbo) asked <quote who="Derek Neighbors">can 
i today create records.xml for mail merge with current reports</quote>?
Jason Cater (jcater) said <quote who="Jason Cater">oh, absolutely - that's 
a piece of cake</quote>. He explained <quote who="Jason Cater">create a 
GNUe:Reports:MailMerge namespace</quote> in 
<quote who="Jason Cater">gnue/reports/filters/MailMerge - add an XSLT script 
in there - then modify report-filters.conf - under mappings, add
mailmerge = GNUe:Reports:MailMerge</quote>. He added 
<quote who="Jason Cater">I *think* you can arbitrarily create namespaces - 
the mapping will only come into place if we create filters</quote>.</p>

<p>Derek said that his first try came out as 
<quote who="Derek Neighbors">&lt;field name="Date" 
value="December 25, 2001"/&gt;</quote> rather than 
<quote who="Derek Neighbors">&lt;value&gt;myvalue&lt;/value&gt;</quote>, 
which would be easier to work with. He cut &amp; pasted 
his <quote who="Derek Neighbors">very basic .grd file</quote>, 
but this was generating an error. Jason pointed out that 
<quote who="Jason Cater">you have no section tag</quote>. 
On fixing this, Derek did a <quote who="Derek Neighbors">happy 
dance its making the file - now if mail merge works im in 
bidness</quote>. Jason said <quote who="Jason Cater">well, it 
won't initially - because you changed the field tag - but 
should be a quick fix :)</quote>.</p>

<p>Derek noted that <quote who="Derek Neighbors">merge-rtf 
merge-latex and mailmerge.py are not executable out of cvs</quote> 
as of time of writing, and asked for this to be fixed. Jason 
said he was <quote who="Jason Cater">setting it up so you can do
grcvs -d myfile.rtf --filter mytemplate.rtf  myreport.grd</quote>
to execute the whole process.</p> 

<p>Jason wondered <quote who="Jason Cater">should this actually be called 
mailmerge? that's what I'm so used to calling it but is that appropriate 
here?</quote> Derek said <quote who="Derek Neighbors">honestly its for 
more than 'mailing' - but i think mail/merge is the industry term</quote>. 
Jason said <quote who="Jason Cater">it's more of a templated document 
merge - but that is long :)</quote> James Thompson (jamest) suggested 
<quote who="James Thompson">docMusher(tm)</quote>.</p>

<p>Derek was still having problems with <quote who="Derek Neighbors">the 
way mailmerge.py parses things</quote> and asked for a patch. Jason 
was jealous - <quote who="Jason Cater">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 :)</quote>. Derek said <quote who="Derek Neighbors">well 
techincally its for a demo - but i can bet if the demo goes well it wont 
be long till production and feature creep</quote>. Jason had a look 
at the code, as did Derek, who asked <quote who="Derek Neighbors">how 
are you normally keeping track of the parent</quote>? Jason said 
he had no test report to test with at the moment. Derek asked 
<quote who="Derek Neighbors">is master/detail in reports 
working?</quote> Jason said it <quote who="Jason Cater">should be - 
but haven't tested much - last time I tested, they did :)</quote>.
James asked <quote who="James Thompson">dneighbo: you making notes for 
a users guide/tutorial?</quote> Derek said <quote who="Derek Neighbors">more 
than likely i will make this a real example - since it IS going off of 
dcl</quote>. He noted <quote who="Derek Neighbors">btw: the grd with custom 
name space is pretty powerful db to xml tool</quote>. Jason agreed - 
<quote who="Jason Cater">yes - it's the start of GNUe Integrator :)</quote>
Derek said <quote who="Derek Neighbors">yeah it just needs its better half - 
xml to db :)</quote>.</p>

<p>Later, Jason confirmed <quote who="Jason Cater">I committed my changes... 
grcvs supports mailmerging as it sits now</quote>. After some hassle, 
Derek got the changes and noted <quote who="Derek Neighbors">he didnt address 
how i had hoped - he did it the proper way - not the quick way - will have 
to tackle tomorrow :(</quote>. Later, Jason said that, to run the new 
version, you needed to <quote who="Jason Cater">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</quote>. 
Derek said <quote who="Derek Neighbors">i like it all cept having to make 
the entry for the file but this is in the right direction</quote>. Jason 
said <quote who="Jason Cater">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</quote>.</p>

<p>Later, Derek cut &amp; pasted his error message. Jason asked 
<quote who="Jason Cater">lemme see your grd file</quote>. Derek 
put it 
<a href="http://gnuenterprise.org/~dneighbo/service_requests.grd">on 
the web</a>. Jason realised that, as it was 
<quote who="Jason Cater">standard dcl tables</quote> then
<quote who="Jason Cater">I can test this puppy too :)</quote>. 
Derek said <quote who="Derek Neighbors">you just need the rtf file - 
or create your own</quote>. Derek found the problem - 
the XML output had an ampersand in some text that wasn't being 
replaced by &amp;amp;. Jason said <quote who="Jason Cater">I 
thought I was using encode() for those - lemme look</quote>. 
He found the problem, and fixed it, saying 
<quote who="Jason Cater">btw, I consider this my 0.0.1 RC1 
:)</quote>.</p>

<p>Derek ran the report sucessfully, but both Abiword and 
Microsoft Word were fairly slow opening the output rtf file - 
<quote who="Derek Neighbors">open office didnt bitch though</quote>. 
James said <quote who="James Thompson">ooooo man - if this plays w/ 
openoffice - and if we get the label sizes - i can use this....um, 
yesterday</quote>. Jason said <quote who="Jason Cater">well, I have no 
idea if I'm creating valid RTF - if we have any RTF experts in the house, 
please look</quote>. He pointed to <a href="http://www.nllgg.nl/Ted/">a 
utility</a> that would <quote who="Jason Cater">let you print RTF from 
command line, iirc</quote>. He added <quote who="Jason Cater">these merge 
examples support embedded images too :) - I tested that out with my 
marketing campaign</quote>. Derek finally got the ouput to open 
in OpenOffice, but reported <quote who="Derek Neighbors">it appears to 
be same record over and over - 327 pages</quote>. He would look at this 
further tomorrow.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.15May2002">
The next day</a>, Derek (laurie) said <quote who="Derek Neighbors">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</quote>. Jason said <quote who="Jason Cater">it's 
gonna take some tweaking w/the rtf</quote> but 
<quote who="Jason Cater">there's some changes in CVS</quote>, although 
he wasn't sure whether they would be in the automatic nightly CVS tarball 
posted <a href="http://www.gnuenterprise.org/downloads/snapshots/">to 
the website</a>. Derek said <quote who="Derek Neighbors">well i have 
heard before that mfs does wild rtf (not quite standard) so this could be 
part of issue to perhaps?</quote> He felt <quote who="Derek Neighbors">by 
the time we get this working - it will be like 0.5 state :)</quote>. 
Jason asked if that meant <quote who="Jason Cater">it'll be half 
useful</quote>?</p>

<p>Later, Derek (dneighbo) said he was <quote who="Derek Neighbors">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</quote>. Jason said 
<quote who="Jason Cater">I find the rtf format thoroughly confusing - so 
I'm still trying to figure out just which tag is the table tag :)</quote>. 
Derek reported <quote who="Derek Neighbors">we have case sensitive issues 
in datasources again i think</quote> - but Reports was using the same 
code in GNUe Common as Forms, which wasn't having a problem. Jason 
said <quote who="Jason Cater">I'm sure it's an initialization problem</quote>. 
Derek confirmed <quote who="Derek Neighbors">ok its definitely a reports 
issue</quote>, as he copied the datasources from a working GNUe Forms 
Definition file into a GNUe Reports Definition file 
<quote who="Derek Neighbors">and get the same error</quote>.</p>

<p>After a while, he asked <quote who="Derek Neighbors">how 
can you use params as query options?</quote> Jason cut &amp; pasted 
an example, using an &lt;eq&gt; tag for 'equals'. He explained 
<quote who="Jason Cater">you HAVE to pass parameters on the command 
line at the moment</quote>. Derek asked if there was a tag for 
'like' (pattern matching) as well as 'equals.' Jason said 
<quote who="Jason Cater">lemme look</quote>, warning 
<quote who="Jason Cater">btw, you are getting into untested waters, 
right now - just be forewarned - the code is there - but isn't heavily 
tested</quote>. He confirmed <quote who="Jason Cater">yeah, I think 
there;s a &lt;like&gt;</quote>, adding <quote who="Jason Cater">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</quote>.</p>

<p>Jason did a one-character patch(!) to the code, and Derek 
reported <quote who="Derek Neighbors">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</quote>. He 
said <quote who="Derek Neighbors">only thing outstanding i think 
to make this work</quote> with DCL 
<quote who="Derek Neighbors">is a. getting master/detail working 
- b. making php call the reports via 'exec'</quote>. Jason said
<quote who="Jason Cater">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</quote>. James suggested 
<quote who="James Thompson">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 :)</quote> Jason said
his set up was, if anything even more complicated - 
<quote who="Jason Cater">you should see what I'm doing w/my Zope 
setup :)</quote>. He had <quote who="Jason Cater">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</quote>. Derek said 
<quote who="Derek Neighbors">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</quote>.</p>

<p>Later, Jason said <quote who="Jason Cater">if you can whip me up 
a master/detail test report - I can debug it tonight</quote>. He would 
also see if he could hack datemasks <quote who="Jason Cater">if you 
want to be beta tester for them</quote>. Derek said this was 
<quote who="Derek Neighbors">not huge item, master detail much more 
important</quote>.</p>

</section>

<section 
   title="Data type validation in Forms and Application Server"
   subject="[IRC] 15 May 2002" 
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.15May2002"
   startdate="14 May 2002 23:00:00 -0800" 
   enddate="14 May 2002 23:00:00 -0800">

<topic>Forms</topic>
<topic>Application Server</topic>

<p>Derek Neighbors (laurie) noted that <quote who="Derek Neighbors">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)</quote>. However, <quote who="Derek Neighbors">geas 
i suspect will be much more bitchy about data typing - as it should 
be</quote>.</p>

</section>

</kc>