GNUe Traffic #35 For 29�Jun�2002

By Peter Sullivan

"the gnue mascot is a weird creature with the wings of a kiwi, head of a goat, wings of a penguin, and tail of a grue - that is eating donuts, drinking Mt Dew, and chewing Dots - with a nerdy 40-something millionaire in its mouth"

Table Of Contents


This Cousin covers the three main mailing lists for the GNU Enterprise project, gnue ( , gnue-dev ( and 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, or you can review the logs ( . For more information about the GNU Enterprise project, see their home page at ( .

1. Application Server triggers

19�Jun�2002�Archive Link: "[IRC] 20 Jun 2002"

Topics: Application Server, Forms

People: Daniel Baumann,�Jan Ischebeck,�Derek Neighbors,�Jason Cater,�Reinhard M�ller

Daniel Baumann (chillywilly) asked "what do you think about doing an xml markup of ODL?" (Object Definition Languague). Jan Ischebeck (siesel) said he did not think it was necessary. Daniel said "so just use straight ODL?" , which was a standard. Jan said he thought "we should take the things we need to create our own XML format" . Daniel noted that Reinhard M�ller wanted support for non-XML mark-up as well. Jan said "I just think that it is easier (for the first step) to have an own XML format, which is quite similar to the internal appserver structures" for things like "the (still has to come) class definitions" and "the (still has to come) method definitions" . Daniel wondered "how do you base your own format on something that does not exist?" Jan said "thats the point which makes me get headakes ;)" .

Later, Derek Neighbors (dneighbo) said "i think it should be mandatory our" GNUe Class Definitions (.gcd) for the Application Server "is xml - as from xml we can make it ANYTHING else easily" . Daniel agreed - "XSLT is cool" . Jan also agreed, but noted that both the old .gcd format and ODL had the drawback that "the method code has to be separatly defined" . Derek said that "remote methods(triggers) and normal db wuold be HUGE to start with" - none of the existing .gcds had any methods defined in them anyway. Jan said that was "not quite right: there is ONE full coded method in there ;)" Daniel said "so the idea is to include the method code in the object description? does this rule out supporting other languages in a decent way?" Jason Cater (jcater) said "I think the idea is to just get method code out there - regardless of an object description :)" . Derek said "basically what that gives us is xplatform db triggers" . He was "not against object to relational mappers in any way shape or form" in the future "but i want best bang for buck" in the short term. He said "if we do remote triggers/ remote db - we are n-tier as advertised - and gain the benefits from that" .

Jan asked how triggers would be defined - would they be " stored in a datastructure (i.e. in the database, i.e. in a table) - and if a form wants to call a trigger it calls it" ? Daniel said this implied that "appserver would need to know something about the forms definition right? assuming you keep the trigger declarations in the gfd" . Jason said that the aim was to avoid actually defining the triggers in the .gfd (GNUe Forms Definition) - "the form would access triggers via the common "appserver" driver - which would use grpc" .

Later, Derek said that the remote application server triggers would replace the database-level triggers - "im thinking in the client you define 'trigger' spaces to import or include - then you can call triggers in those spaces" . A trigger might be something like validating a bank account number - the Form could just call something like "accounts.isValid" , which the Application Server would then execute and return the result. He added "personally i see data going remotely too - this was part of my problems with putting data functionality in blocks - as my long term goal was that you would have local datasources or remote datasources so in an n-tier application you would point your datasource to a remote datasource" . Jan said that "if you have local and remote triggers, then in case of remote triggers you should distinguish between data bound triggers and gui bound triggers" .

2. Bayonne and GNUe Workflow

21�Jun�2002�-�22�Jun�2002 (2 posts) Archive Link: "New developer"

Topics: Bayonne, Forms

People: Jason Spence,�David Sugar

Jason Spence said that Bayonne, the GNU telephony project, needed "a package to do workflow management" , He was busy at the moment with other coding, but was reading GNUe code "in preparation for the day when I can spend some sponsored time working towards using GNUe" for workflow.

He noted that Open Office used XML as its file format, and wondered about writing "a OpenOffice forms to GNUe forms translator - as I understand it, both are XML based. That would allow people to easily get a chance to migrate to GNUe if they've already used Star/OpenOffice to create database apps." .

Jason also asked "what's the status of the Bayonne Forms client?" David Sugar said he had "been doing a lot of recent work on the Bayonne XML transcoding system. If it's an XML document, it should be possible to create a transcoder for Bayonne to directly parse a gnue form :). This actually was why we choose transcoding rather than implementing a specific xml parser." .

3. Checkboxes and button triggers in Forms

20�Jun�2002�Archive Link: "[IRC] 21 Jun 2002"

Topics: Forms

People: John Lenton,�Chad Walstrom,�Reinhard M�ller

John Lenton (Chipaca) noted that there were problems with checkboxes - "basically if you're just using them for displaying data from the db they'll work, but they don't modify the data" . Chad Walstrom (^chewie) confirmed this, "using BOOLEAN type in a PostgreSQL table" . John said he was "using char(1)" , but was getting the same issue.

Using a button instead of a checkbox, John reported "the trigger to the button is called *twice* - how can I stop that happening?" Chad suggested "scold it vehemently" . John discovered that "I'm getting it once for click, and once for unclick :/ - and I can't just assume that is the case, because it the user clicks on the button and then moves the mouse off, I get the click but not the unclick" . Reinhard M�ller (reinhard) said that best practice was to tie the trigger to the unclick event - "if the user clicks the button and moves away from it nothing should happen" - "the trigger should be fired if and only if the butten receives an unclick after it has received a click and there was no other unclick in between" . John agreed, but noted "two different events are snagging the trigger: wxMouseEvent, and wxCommandEvent" . He went "to look for the wxMouseEvent thing to kill it with extreme prejudice" and reported "ROTFL, that fixed it" . He felt "there must be a way (at least in wx) to say 'I've handled this, don't propagate it any further'" .

4. Using XML to describe database schemas

23�Jun�2002�Archive Link: "[IRC] 24 Jun 2002"

Topics: Application Server, DCL

People: Derek Neighbors,�Jan Ischebeck,�Stuart Bain

Jan Ischebeck (siesel) looked at the XSLT scripts available in DCL for converting XML database definitions into database creation scripts for specific databases, as referred to in Issue�#34, Section�#1� (11�Jun�2002:�Normalisation for Contact Management in GNUe/DCL) and Issue�#34, Section�#6� (12�Jun�2002:�Converting applications to GNUe) , and felt this could be used to create the default database tables for the GNUe Application Server. He asked where these should be placed in GNUe's CVS. Derek Neighbors (dneighbo) asked Jan to "check in the .xml file as well as the processed .sql files (so we dont make xslt processing a requirement for cvs users) yet :)" . HE personally would like to restructure CVS to "move samples and things like this out as well as docs of the modules - but thats a major undertaking and we certainly dont all feel that way :)" Jan asked whether the DCL code had been assigned to the Free Software Foundation - "i.e. can I directly copy it" into GNUe's CVS.

The next day ( , Derek Neighbors (dneighbo) and Stuart Bain (stbain) were trying out some other GPL-ed finance packages to look at the database schemas. Derek did not have Oracle, so talked Stuart through extracting the schemas in the XML format. Derek noted that Jan was moving the code that used this from the DCL CVS into GNUe Common (GNU-RPC). Jan said he had not done so yet, as he was not sure where it should go. Derek said "basically we have the python script that wraps the xslt processor (though any xslt processor could be used)" .

Derek gave an example of what a standard SQL CREATE TABLE statement would look like in the XML format. As well as being a quick way of supporting multiple databases, it also produced excellent schema documentation - he pointed () to a sample. Instead of converting to XML manually, he was hoping "to use gnue common and its introspection and have it auto create XML" . Stuart posted some sample CREATE TABLE statments in MySQL and Oracle formats.

5. Testing the 0.3.0 releases on Microsoft Windows

23�Jun�2002�Archive Link: "[IRC] 24 Jun 2002"

Topics: Designer, Common

People: Jason Cater,�Stuart Bain,�Derek Neighbors,�Andrew Mitchell

Andrew Mitchell (gnukiwi) and Stuart Bain (stbain) did some testing of the *.exe versions of the 0.3.0 releases on Microsoft Windows. Jason Cater (jcater) confimed there was not a common 0.3.0 exe, as it was "included in designer.exe and forms.exe" . Stuart reported that Designer "likes to save me the trouble of closing designer whenever I" tried to select a connection. Derek Neighbors (dneighbo) suggested running Designer from the command line "and pass it --debug-level=10" to see what the error message was. Jason asked "are you sure it's a valid connections.conf entry?" Derek said that Stuart's connections.conf "seemed somewhat sane - but regardless even with a hosed connections.conf it shouldnt just crash :)" Stuart reported that the error message was "Could not load MySQLdb" - he had "tried it with both 'localhost' and the IP address" . Jason said that the Windows executables should have support for "odbc, mysql, pypgsql" compiled in.

Derek said "fwiw we have had lots o issues with mysql driver" . Stuart suggested trying the ODBC driver in the meantime. Andrew reported that "mysql odbc driver has issues on current debian" . Jason noted that the README for the ODBC driver, "written by Marc-Andr� Lemburg" advised that "1. This driver has not been fully tested. If you are successfully using this driver, please let us know. 2. This driver does not yet support schema introspection, so you will not be able to use Wizards in GNUe Designer." Stuart confirmed "you're right... no Wizards" . Andrew asked "so who's going to add introspection support to the ODBC driver then?" . However, standard ODBC did not support introspection at all, and Jason said that "the underlying odbc driver (C driver)" that was being used "doesn't support the ODBC extensions" to support introspection - "so until someone sends them a patch, not much we can do :)" This might be a good project for any fans of C who had been put off contributing to GNUe by its python-based culture.

Stuart said "I Think I may see the problem" - he had python already installed, "and it looks like it's picking up the Python in c:\Python21 and trying to use the MySQL driver from there" . Jason said that the "McMillan installer should pickup our drivers before searching the python path" . Stuart said he had "no PYTHONPATH set - but I'm betting there are some registry entries" . Andrew reported "the same 'Cannot load MySQLdb' error - and this is on a clean box, no other python stuff installed" . Stuart wondered if "py2exe embedded that path somehow" as "it's referencing libraries in c:\python21\gnue\ that I uninstalled before I downloaded the .exe installers today" .

Stuart said that the ODBC drivers were working fine, but Designer without introspection was a bit pointless. Derek said that the "other option is to install from source - please remember these are developer releases and none of the developers use windows - we put up preleases and begged people to test - you just happen to be one of the first to test mysql on windows for 0.3.0 :)"

Stuart reported that "I can't even edit the properties of any widgets" . Derek said "i believe that is a wxwindows scrollbox issue - if you move the property editor to upper left of your screen then make it large enough that all scrollbars disappear - i will bet you can edit properties" . He noted "this behavior is pretty erratic and so its hard for us to submit bugs to wx on it i.e. we are trying ot isolate to see if its us being stupid or real bugs in wx - fwiw: windows and certain themes in linux seem to make it more consistent :)" .

The next day ( , Andrew reported the same problem - "none of the text widgets seem editable, so i can't change labels, names, etc :) - (this only on winXP, on a decent OS it works fine)" . Derek siad "take your property editor - move it to upper left corner of your desktop - then make it big enough that all scrollbars disappear" . He added "even decent OS's see this problem though not as consistently as windoze" . Andrew reported "it fixed that part of it, but the entry widgets down the bottom of the main screen still don't like me" . Derek said that most items in this section could be edited graphically rather than having to type in the properties box - "its far from perfect, but once you learn the quirks it can make you pretty darn productive :)"

6. Tooltips in Forms

24�Jun�2002�Archive Link: "[IRC] 25 Jun 2002"

Topics: Forms

People: John Lenton,�Derek Neighbors

John Lenton (Chipaca) asked "how do I get a tooltip?" . Derek Neighbors (dneighbo) said it used the options tag, and gave an example: " <entry name="text2" x="1" y="5" width="10"> <options> <option name="tip" value="This is the tip for the second text box"/> </options> </entry> " .

7. GNUe Documentation

24�Jun�2002�Archive Link: "[IRC] 25 Jun 2002"

People: Calum Morrell,�Stuart Bain

Calum Morrell (drochaid) asked "are there any noddy guides for GNUe yet?" Stuart Bain (stbain) suggested "GNUe for Dummies - how about a GRIP - Guide for Reasonably Intelligent People" ? Several people volunteered to do training/consultancy at typical high ERP consultancy rates. Later, Calum volunteered to do a first draft.

8. Foreign Key drop-down boxes

24�Jun�2002�Archive Link: "[IRC] 25 Jun 2002"

Topics: Forms

People: Calum Morrell,�Derek Neighbors

Calum Morrell (drochaid) asked "what's the fast way to populate a drop-down box with entries from a table different to the one the block the box is on is attached to?" Derek Neighbors (dneighbo) said "i would say look at a sample BUT i think jcater took my suggestion and changed how dropdowns work :)" Derek explained the basic scenario, with bar having foo as a foreign key. You needed to add the foo look-up table as an additional datasource for the form. "Then go to tableBar.fooid entry and open up property inspector change its type(style) to dropdown then go up to foreign key seciont. In foreign key data source put name of datasource you just made - in lookup/key put fooid - in fk description put foodesc" . This was new functionality "as lookups used to only have two fields not three" - it had been added since the 0.3.0 releases, but CVS had it. You also needed to set prequery="true" on the new foreign key datasource to ensure that the look-up was automatically populated whenever the form was opened.

9. Multi-table Datasources

24�Jun�2002�Archive Link: "[IRC] 25 Jun 2002"

Topics: Forms

People: John Lenton,�Derek Neighbors,�Jason Cater,�Marcos Dione

John Lenton (Chipaca) said "we're needing a datasource that accesses multiple tables" and asked how to do that. This was "a 1:1" rather than a master-detail or foreign key lookup, both of which were already supported. Jason Cater (jcater) suggested two possible syntaxes, using a <datasource type="join"> tag. Marcos Dione (StyXman) said he had thought of something similar to Jason's first suggestion. John said that the type="join" was probably unecessary as "because the name ("table1,table2") is easily reckognizable" as a join. Derek Neighbors (dneighbo) suggested "why not do this in the db? why not make a 'view' or such" ? Jason said that "to do a view each time is a biotch" , and Marcos pointed out that not all databases supported them. Derek conceeded this, but said he was not keen on the proposed syntax. Jason said he was "trying to think of a better way and can't - using conditions makes sense to me, though - as sometimes the joins can be complex" . He wanted to avoid creating a <table> tag, as this might be needed as a reserved word elsewhere. John suggested keeping it simple to start with, and dealing with complications like inner and outer joins later. Jason agreed - "that's been our approach in the past :) get something working - then make it "proper" later on :)" Everybody started throwing parties (or other objects) to celebrate.

10. Head and branch in CVS

24�Jun�2002�Archive Link: "[IRC] 25 Jun 2002"

Topics: Forms, Designer, Common

People: Jason Cater

Jason Cater (jcater) confirmed that "CVS head is marked as 0.4.0-devel" - the stable branch was for 0.3.x, as announced in Issue�#34, Section�#13� (14�Jun�2002:�Branching CVS to split bug fixes and new features) . People might get spurious warning messages from CVS when switching from head to branch or vice versa.

11. Spam on GNUe's bug-tracking e-mail gateway

25�Jun�2002�Archive Link: "[IRC] 26 Jun 2002"

Topics: DCL

People: Derek Neighbors

Derek Neighbors (dneighbo) noted that the email gateway to the GNUe project's bug tracking system "is getting spammed how sad" . Various people speculated as to why spammers thought that a bug tracking system might want to buy Viagra, or get a bigger bust within 30 days, although it might conceivably be interested in "a faster, more reliable Windows..."

12. Two-column drop-down boxes for foreign keys

25�Jun�2002�Archive Link: "[IRC] 26 Jun 2002"

Topics: Forms

People: Derek Neighbors,�Jason Cater

It was asked if a drop-down box could contain two columns from the foreign key table - it could already show the foreign key description but populate the foreign key value. Derek Neighbors (dneigho) said this had been discussed, "but i dont think we ever implemented it" . Jason Cater (jcater) said this would be "not hard at all - shall I hack it up quickly?" The "only problem is, not sure if wx supports multicolumn combos - so I would have to concatenate them" . He would check the wx documentation. Derek raised this as a work order in DCL. Not very much later, Jason reported "if anyone wants to test - Work Order 73 is done" . He have an example of how it could be used to list both U.S. state code and description in a drop-down box.

13. NOLA as a free alternative to GNUe Financials

25�Jun�2002�Archive Link: "[IRC] 26 Jun 2002"

Topics: Financials (Accounting), Why GNUe?

People: Stuart Bain,�Derek Neighbors,�Peter Sullivan

Stuart Bain (stbain) said he had "just talked my customer into giving Nola ( a whirl - his accounting firm is trying to sell him on Great Pains" .

(ed. [Peter Sullivan] I think that's a typo, but have left it in just in case.)

Stuart asked if anyone was using NOLA "in a production environment right now?" Derek Neighbors (dneighbo) said he might be able to find out - "they are highly specialized vertical industry shop (speciallying in print shops) - so im certain a few of their printshop clients are using it" .

He said he had changed his opinion of NOLA - "i think they get it without getting it" . They "are not boned up on free software, lingo liguistics and the such" but had found that releasing NOLA under the GNU Public License made sound business sense for them - "accounting isnt their main 'package' - so to cover their arse they GPL'ed it, hoping others would help maintain it and keep it going for them" . In fact, "when i told them i was adding fund accounting the response was - hey a lot of people ask for that, can we send them to you" . They had also said "that NOLA was their free product so it got least of their 'developer' attention - so it would be a week or so until they could review the patches" , which he thought was still fairly speedy!

He thought that Noguska had developed NOLA because they had been asked by their print shop customers "if they had accounting" and rather than do a "deal with other vendors (quickbooks and such) interfacing to their real products" they had "figured lets whip together somethign and basically give it to customers in hopes we dont have to jerk around with someone elses software" .

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 All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.