GNUe Traffic #57 For 30 Nov 2002 By Peter Sullivan "It is easy to back off and provide less security. All a user has to do is select Windows as the operating system, and most security goes away. :-)" Table Of Contents * Standard Format * Text Format * XML Source * Introduction * Threads Covered 1. 6 Nov 2002 - 21 Nov 2002 (10 Scope of GNUe Integrator posts) 2. 7 Nov 2002 - 23 Nov 2002 (23 Security and Role-Based Access Control posts) 3. 20 Nov 2002 Prequery and record caching in Forms 4. 21 Nov 2002 Non-web based DCL 5. 23 Nov 2002 Nola/acclite original author spotted in #gnuenterprise 6. 24 Nov 2002 New 0.4.2 release for stable branch? 7. 26 Nov 2002 - 27 Nov 2002 (4 Old format .gfds do not work with CVS posts) head 8. 25 Nov 2002 Dropdown list boxes for foreign key values Introduction This Cousin covers the three main mailing lists for the GNU Enterprise (http:// www.gnuenterprise.org) project, plus the #gnuenterprise IRC channel. 1. Scope of GNUe Integrator 6 Nov 2002 - 21 Nov 2002 (10 posts) Archive Link: "[Gnue-dev] GNUe-Integrator" Topics: Integrator, Common People: Jan Ischebeck, Jason Cater, Derek Neighbors, Stan Klein, Jan Ichebeck Jan Ischebeck wanted "to discuss GNUe integrator, because I probably will need it soon." He felt it should be able to: " 1. import data from databases 2. export data to databases 3. modify data in a rule engine 4. keep two tables in different databases in sync 5. export data to different formats (flat file, csv file, ...,) 6. load data from different formats (flat file, csv, XML ....) 7. load data from a logfile (always just load the new added part) " Jason Cater said this matched his ideas - his personal priority was import and export of CSV (Comma Seperated Value) files. He had "already started on a gmd" (GNUe Mapping Definition) file "format for Integrator." . Derek Neighbors agreed "gnue integrator has always been slated to do what you say here." He did not "see it being a database replicator, but with combo of import/export/ triggers you could make it do this." Stan Klein said he would like "to be able to store data in XML files and to connect forms and reports to those files just as though as the data were in a database, i.e., changing the data would have the effect of editing the XML files." Jan said this would not be done by Integrator as such, but by adding "an XML-file "database driver"" to GNUe Common. Stan said he would also like to be able to use Integrator to do "versioning" on a database, to load completely different sets of data, for example for mathematical "what-if" modelling. In the past, he had had to import and export as ASCII files to do this. As the schema had over 15 tables, this had been quite messy. Running the model involved "creating about 35 additional views and tables that did certain joins of the design and workload data and calculated statistical parameters for queuing formulas." He also reported that he had found some python code that "converts from Dbase format to an SQL equivalent" , and wondered if this might be useful for Integrator. Jan agreed - "We would modify it to become another dbdriver." Elsewhere (http://mail.gnu.org/pipermail/gnue-dev/2002-November/000322.html) , Jan posted "a sample mapping definition. It just the first idea. There is still some stuff missing (definitions about merging/spliting rows,...) and some stuff is defined twice (datasources). Nevertheless the file format should allow some standard datasource->datasource mappings without needing triggers." Jason asked why there were seperate and tags. Jan explained it "was to differentiate between between datasources used for loading and storing data: But it seems to be better to just define datasources in a header and then just use them in the mapping." Jason also asked "Why a separate tag? Why not keep it part of ." Jan said that different mappings should not interact with each other, "but processes in a mapping could be related." Jason asked how flexible the and tags would be - "Perhaps merges and splits should be handled only by triggers?" Jan did not think "we should require people to write trigger even for so simple actions. The very basic mapping stuff should be possible without any triggers." On IRC (http://www.gnuenterprise.org/irc-logs/gnue-public.log.18Nov2002) , Derek Neighbors (derek) agreed "that splits and such should be easy - but im not sure they shoudl be implemented as you speak or as triggers" - "nothing would prevent the integrator UI from doing all the work. To me the tag set you propose seems confusing (and i do lots of integration) - i have seen the corresponding 'trigger' way to do things it might be even more confusing. But as i learned from my xslt ventures doing complex things in xml SUCKS - so a simple split is probably much cleaner in XML as would be a simple mapping. However when things get complex the spec would probably be a nightmare" . He could give some practical examples of how complicated integrations could get. Later, he commented "the thing that struck me was the mapping comment vs process - i can tell you from my experience RARELY can you just 'map'. Usually there is some form of conversion process in the middle" . Jan Ischebeck (siesel) said "I just meant that a "user" would like to define mappings instead of a process" . Derek replied "again i state im torn between implmentation and UI - hopefully a user never sees the 'definition' file - they see a UI to build mappings - and those mappings need to be powerful" - not just one-for-one mappings, but concatanations, text slicing and splicing and so on. He felt that trying to do this in XML was sadistic, and that "the answer is a combination of the two - some things will make well as xml elements to map - otehrs will not" . Real-life situations tended to be fairly complex. Jason Cater (jcater) agreed - "an xml mapping approach quickly degenerates into a lot of clutter outside of 1:1 or other *very* simple combines" . Jan saw "the biggest problem in making trigger a MUST, that we have to parse python scripts to edit mappings with designer" , giving an example. Derek "would be ok with some of this in xml if the designer is writing it all out - my only demand is i can go to triggers and get dirty if i have to" . Jan felt that "IMHO integerator should support that mergemask, splitmask stuff and nothing more" in XML. Jason liked this idea - "anything more complex would be handled by a trigger. Should we make the splitmask capable of handling regular expressions? That could be powerful, but might not be intuitive for regular users" . Jan gave a possible example - he "couldn't remember how trigger definitions looked in forms ;)" Jason said "triggers contain or point to python code - not to another xml structure" . Jan felt that Integrator triggers should work in the same way. 2. Security and Role-Based Access Control 7 Nov 2002 - 23 Nov 2002 (23 posts) Archive Link: "[Gnue-dev] Appserver/Common Issues" Topics: Application Server, Navigator, Common, Forms, Reports People: Jan Ischebeck, Stan Klein, Reinhard M?ller, Derek Neighbors, Jason Cater, Robert Jenkins, Neil Tiffin Jan Ischebeck had "some points about appserver and forms and 3- and 2- tier setups." On security, GNUe needed to have "different forms/reports/processes (GPD) for different users" , probably by adding " = to the form or field level" or a similar approach but using "User-group type Bitmasks - each user has (e.g.) a 32 bit security mask which enables viewing or editing for forms / fields with matching bits." He agreed with Reinhard that "Having multiple forms for different levels is just not practical for a serious application." He also said "Presumably the usernames & passwords will be stored in the main database, so the program must have a built-in or configured 'fixed' password to be able to verify user logins" . Neil Tiffin felt "This sounds good for phase I, but having user passwords in the database will be suboptimal in any situation that has more than a few users. From a maintenance standpoint we should be able to use LDAP or Active Directory to validate passwords and not store them in the database." Reinhard said "We were talking about using PAM for authentication, which would mean (from my understanding) that we can use at least LDAP as well as simple shadowpasswords and more. IMHO there are a _lot_ of thing that make sense to generally store in the database, but not the passwords." Neil found some (http://www.pangalactic.org/PyPAM/) references ( http://www.tummy.com/Software/PyPam/index.html) to using PAM with python on the web, but nothing more recent than 1999. 3. Prequery and record caching in Forms 20 Nov 2002 Archive Link: "[IRC] 21 Nov 2002" Topics: Forms, Common People: John Lenton, James Thompson, Jason Cater John Lenton (Chipaca) asked "is there any way to do a limited select? i.e. select foo from bar where baz limit 5" . Jason Cater (jcater) said not. John was "wanting to do a lazy load of some stuff, but to bring _something_ on startup" . James Thompson (jamest) said "you do that anyway in our system - the default is 10 records - set the datasource to prequery" . Jason expanded "our system only loads records as it needs them" . James said that, to change the default, you just set the cache="" attribute of the datasource tag. This interacted with the rows displayed on a form, so that "if you have a entry on screen that has rows set to 15" , it would load two lots of 13 records and display the first 15. 4. Non-web based DCL 21 Nov 2002 Archive Link: "[IRC] 22 Nov 2002" Topics: DCL, Forms, Designer People: Derek Neighbors Derek Neighbors (revDeke) noted that he had developed some GNUe Forms for use with DCL for people who did not want to use the normal web-based front-end - "note they are pretty ugly as they are created with a wizard" in Designer, but they had required "almost no effort" to create. He noted that the same GNUe Form Definition (.gfd) files could soon be used on "a curses interface - short of that i think we plan on making some 'email' clients - so that you can update things back and forth better via email - /me isnt really all that sold on it, but its do able - and the fsf would like such a thing" . He did not see the justification for "an emacs mode for somethign that is not emacs like at ALL - an editor shouldnt be a project management application :)" With current functionality, you could set up DCL to accept tickets via an e-mail gateway from any mail client, including emacs. He felt "you might like request tracker better" - "i think its seriously lacking in features compared to dcl - but to some people emacs mode is more important than actually doing productive work : (" He was not "bagging on emacs... you can ask jcater its the first thing i install on a new machine - but emacs really is crappy for many things - the things its good at, its REALLY good at" . Discussion drifted to a general text editor debate (emacs or vi, with kate mentioned as a possible third way). 5. Nola/acclite original author spotted in #gnuenterprise 23 Nov 2002 Archive Link: "[IRC] 24 Nov 2002" Topics: Financials (Accounting), Small Business, Forms, Why GNUe? People: Ryan Fox, Jason Cater, Derek Neighbors, Peter Sullivan Ryan Fox (larsu) was "the original developer of Nola. i saw some mailing list posts about what you're trying to do with acclite, and wanted to offer my assistance with code, or just giving you insight as to what I was thinking :)" Peter Sullivan (psu) said that GNUe's involvement with Nola had started as just patching it, but they had ended up forking it as acclite, and were now looking at using it as the financials part of GNUe Small Business. Ryan was "no longer with Noguska" , but though it was unlikely they would have accepted the patches anyway - "the latest i heard was they were doing a complete rewrite of nola anyhow. my guess is so they aren't bound by the gpl/ other people's copyrights on the new version" . Peter said it was generally accepted that submitting patches implied transferring the copyright to the owner of the patched code, but that there were some legal concerns about this. This was part of the reason GNUe asked all people submitting code to do a formal copyright assignment to the Free Software Foundation (FSF) to avoid problems later. Jason Cater (jcater) clarified that "the Copyright Assignment, iirc, does not take any copyright rights away from the person writing the code - but it extends the rights to the FSF as well - so in essence, you are granting them the right to defend your code" . Later, Derek Neighbors (derek) said he had "talked for sometime to a lady at noguska about the gpl and submitting patches to them - probably about the time you stopped working on nola" . He explained "long term we felt that we were better doing a fork - as it seemed as though it would be hard to get changes to happen going that route - and since we were not tied to php frontend much likely it would be cumbersome to maintain that" . He was now "doing gnue-sb (gnue small business) which will be a gnue framework approach to the similar domain" . He noted "the other issue i had with nola was some dependencies/ leaning towards print shop" . Ryan said he did not "know anything about GNUe forms, but intend to learn." Derek asked whether Ryan was "looking to take nola and mold it from where it sits etc - is web frontend high priority to you etc" ? Ryan said "i don't have any vision for it at the moment, except i'd like to see it integrated to the GNUe way of doing things" . Jason wondered why Nola had been written in "php + mysql" in the first place. Ryan said MySQL had been chosen "because a requirement was to run server cross platform, and be $$ free" . Derek asked "did anyone (clients) ever use nola? we tried to call noguska and ask for references that were using it at got nowhere - it seemed they considered it doa - and were using non free non web for most clients" . Ryan said it had never been a priority product for Noguska - "originally, they developed accounting (and print shop mgmt) in qbasic, dos based" and Nola was intended to provide an upgrade path for this. He was "not aware of it being heavily tested in production anywhere" . Derek said he had "installed and configured" Nola "and messed with it" , but had now "started to go more from scratch witth gnue-sb - as it was easier than dissecting what was there (and i had no intentions to maintain the php web part) - so as soon as we decided we were not going to try to be nola compatiable upstream i started view it as a 'reference' instead of a bsae - though for accounts receivable and payable and general ledger i might change my mind" . Ryan asked "what are your thoughts on the schema? do you think that'll stay mostly intact, or vastly different?" Jason, "as the person doing the initial research" , said "nola had one of the better schemas - we looked at sql-ledger as people raved about it" but thought that Nola's looked more mature. It was asked about looking at commercial applications' schemas, but Jason said "no way we can do that - no way at all" as schemas were copyright, and strongly protected by most commercial application vendors. For example, his own organisation used Great Plains, but he "will not even glimpse at it - as that's a conflict of interest big time" . In any case, he "thinks it's dangerous to just try to emulate a commercial package's schema and fields - even if you avoid any legal trouble" - free software should aim to provide better functionality than similar proprietary systems. For example, he recognised that Oracle SQL*Forms had influenced the initial design of GNUe Forms, but "we are not, however, trying to do a duplicate" - "we do things differently than they do - some things very differently" . "it's like one's cooking style - if you grow up in a Southern kitchen and you start up your own restaurant with your own home-made original recipes - odds are anyone eating at your restaurant can tell you were influenced by southern styles :) - that's my analogy for the day" . 6. New 0.4.2 release for stable branch? 24 Nov 2002 Archive Link: "[IRC] 25 Nov 2002" Topics: Forms People: James Thompson, Andrew Mitchell, Jason Cater James Thompson (jamest) said he had "heard very little" about bugs with the 0.4.1 release, "but i guess we could wrap up a 0.4.2 release" . Andrew Mitchell (ajmitch) asked "why roll 0.4.2 when there's no changes?" James said "there are changes, just not alot of them" . Jason Cater (jcater) said "curses didn't install - someone complained about that" . James said that he and Jason had done sundry bug-fixes, and he had "merged in some papo stuff too" as discussed in Issue #56, Section #13 (14 Nov 2002: Merging GNUe and Papo CVS code) . Jason said "curses mostly works now in 0.4.2 - I would like to finish it up - but I honestly don't see me having time to do that anytime soon" . What was broken was "just really odd things - buttons don't fire, menus don't exit once they've fired an event. Right now the curses thing is good for demoing - but not for using" . James asked "are these issues in cursing or issues in uidriver or unknown?" 7. Old format .gfds do not work with CVS head 26 Nov 2002 - 27 Nov 2002 (4 posts) Archive Link: "XML Changes for Forms 0.5.x" People: Jason Cater, James Thompson Jason Cater announced that "the forms GFD" (GNUe Forms Definition) "specification is undergoing some changes. The main goal of James and I is to separate layout from logic." This would mean that all old forms would stop working. "We do not take changing the GFD format very lightly. However, these are changes we have wanted to make for quite some time now" and sooner was better than later "the closer we get to Forms 1.0" . To ease the transistion, "There is a utility in gnue/forms/utils called gfd04to05.py" . He listed the changes to the format, and gave an example of a simple form in both the old and new formats. He also noted that the new format had "hooks for layout management. Don't expect other layout managers any time soon. However, we wanted to break our format only once and be done. Also, for the foreseeable future, Designer will only support the existing character-based format, even after a few layout manager plugins are written." He also noted that the convertor script would try to convert trigger code as well, "but it can only do so much" , giving examples of the sorts of cases it could not handle. "All of these changes have been made in cvs head for the Forms product. However, Designer is still broken and will not read the new format. We are currently working to correct this." Some days later, on IRC (http://www.gnuenterprise.org/irc-logs/ gnue-public.log.27Nov2002) , a bug was reported running a GNUe Form Definition (.gfd) with the CVS head version of GNUe Forms. James Thompson (jamest) pointed out "cvs head is way different gfd format" which had been introduced for what would become version 0.5.0 of Forms - "so i imagine that's the issue. There is a converter in forms/utils - or we have branches of the 0.4.x stuff that has most the curses updates" . The documentation had not yet been changed to reflect the new format. 8. Dropdown list boxes for foreign key values 25 Nov 2002 Archive Link: "[IRC] 25 Nov 2002" Topics: Forms People: Jeff Bailey, Derek Neighbors Jeff Bailey (jbailey) asked "Anyone around who knows about making listboxes in designed that pull their values from other tables? The designer wizard just confused me. =)" He wanted "a drop box list of my provinces" , as defined in a tblProvinces table, to populate a foreign key field in a tblFoo. Derek Neighbors (derek) said "you need to make a datasource for both tblFoo and tblProvinces - i.e. 2 separate datasources" . Jeff said "It looks like the wizard did that for me." Derek said "then put an entry on your form that belongs to tblFoo and is for field province_id - then go to property inspector for that entry" - there would be three properties that needed to be filled in: 1. fk_datasource - the name of field in tblFoo that needed populating 2. fk_key - the name of the field in tblProvince that was the primary key of that table 3. fk_description - the name of the description field in the tblProvince table He added "you need not have a new form" - "i believe you can from schema editor drag the table to the form and it will autocreate the datasource for tblProvinces - then you just need to go to the province_id entry you originally had and put in those fk_* property values" . Sharon And Joy Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.