GNUe Traffic #56 For 23 Nov 2002 By Peter Sullivan "Speicherzugriffsfehler = segmentation fault" - "I love the german word for segfault. Pronounced in English, it really *sounds* like something bad has happened." Table Of Contents * Standard Format * Text Format * XML Source * Introduction * Threads Covered 1. 7 Nov 2002 - 20 Nov 2002 (7 Designing a Security Framework for posts) GNUe 2. 14 Nov 2002 - 16 Nov 2002 (2 GNUe Community and Applications posts) 3. 13 Nov 2002 - 17 Nov 2002 GNUe Small Business 4. 13 Nov 2002 GNUe Schema Definition (.gsd) format 5. 13 Nov 2002 Transaction processing in Application Server 6. 13 Nov 2002 Converting Reports XML output to Postscript 7. 13 Nov 2002 - 14 Nov 2002 Alternatives to wxPython toolkit with GNUe on Microsoft Windows 8. 13 Nov 2002 GNUe Tools compared to Great Plains toolkit 9. 13 Nov 2002 CSV (Comma Separated Values) 'database' driver for GNUe 10. 13 Nov 2002 - 15 Nov 2002 i18n in GNUe 11. 13 Nov 2002 - 18 Nov 2002 New (0.4.1 etc.) releases for GNUe Tools 12. 14 Nov 2002 Feature plans for 0.5.0 and later 13. 14 Nov 2002 - 19 Nov 2002 Merging GNUe and Papo CVS code 14. 14 Nov 2002 Getting involved with GNUe 15. 15 Nov 2002 Structure of Debian packages for GNUe 16. 15 Nov 2002 Format Masks for GNUe 17. 15 Nov 2002 - 16 Nov 2002 Transaction stamping and getSequence 18. 16 Nov 2002 Auto sequences for primary keys in GNUe with mySQL 19. 17 Nov 2002 Branching CVS for stable and unstable branches 20. 17 Nov 2002 GNUe Tools as a Microsoft Access replacement 21. 17 Nov 2002 Encoding option for PostgreSQL to move from gnue.conf to connections.conf 22. 17 Nov 2002 Options for tabbed forms 23. 17 Nov 2002 Scrollbars in Forms 24. 17 Nov 2002 Multi-column unique constraints in SQL 25. 18 Nov 2002 Twisted as an alternative to GNUe Application Server 26. 18 Nov 2002 GNUe Small Business and project papo - overlap? 27. 19 Nov 2002 Status of Curses (text-only) version of Forms Introduction This Cousin covers the three main mailing lists for the GNU Enterprise (http:// www.gnuenterprise.org) project, plus the the #gnuenterprise IRC channel. Note that we are currently looking for volunteers to help us take this Kernel Cousin group authored (http://mail.gnu.org/pipermail/gnue/2002-November/003400.html) - please contact us (mailto:psu@burdonvale.co.uk) for more details. 1. Designing a Security Framework for GNUe 7 Nov 2002 - 20 Nov 2002 (7 posts) Archive Link: "Security Framework Issues" Topics: Application Server People: Stan Klein, Jorge Lehner, Reinhard M?ller, Paul Juckniess Stan Klein said he had "been working on updating the security framework proposal I drafted in May 2001" , to give examples of real-world security requirements and how they could be implemented in GNUe - at the same time "trying to infer what additional GNUe features, if any, would facilitate implementation of the requirements." However, there did not seem to be many "examples -- even sanitized -- of real security requirements related to the business processes and data of real enterprises." He asked if anyone could suggest some, rather than him have to "I can construct some business process security requirements scenarios from scratch" . Jorge Lehner pointed out that "at UNI/Managua we just realized an implementacion of Role Based Access Control for the PostgreSQL server" , which was downloadable (http://sam.uni.edu.ni/) . Stan felt this was important, as "In my view, the underlying security has to come mainly from the operating system and database management system. If there is a method of providing RBAC using PostgreSQL, this could probably become a major capability for GNUe to use." Reinhard M?ller (reinhard) said that security for n-tier (i.e. when using AppServer) consisted of several distinct issues: 1. How appserver connects to the database 2. How secure the connection between appserver and database (for example, encrypted, or Virtual Private Network) 3. How the user authentificates to the application server . 4. How secure the connection between the client and the appserver . 5. Once the user has logged into appserver, what access he/she has. He said this last point "could be a system which defines class/condition/ property/user/access tuples" - who can do what to which properties of which objects, on either an inclusive or exception basis - giving some examples. Stan said that Application Server seemed to mean different things to different projects - from GNUe's point of view, it was a mechanism to shield client applications (such as Forms and Reports) "from the details and complexity of the data locations and databases or other formats in which the data is stored." As such, "Security needs to be built-in from the start." "The trend is toward security certification under standards" , and "Tony Stanco at George Washington University has a project to security certify Security Enhanced Linux, which will be a loadable module of the Linux 2.6 kernel. This will be a pilot project for certifying the security evaluation of a free/open-source software project" , which might set significant precedents for GNUe. It was also important to consider security not just in the context of normal operations, but also against specific attacks. "If it is feasible to use the operating system or database security for protecting the appserver, we should do so" as this would be more secure than "bolted-on" security in the GNUe code itself. However, "There may well be some access controls that can only be handled within appserver. If these arise, we should recognize ourselves and make it clear to our users that these functions are insecure against a sophisticated attacker." Paul Juckniess disagreed - "Since you may have databases scattered around the net and different operating systems you would really want the security handled within the application in one place otherwise administration could become very complex very fast." Stan appreciated the practicalities, but said "Anything you do in the application that isn't protected by the operating system can be bypassed or defeated. The database (which is itself really an application) can provide protection, but the protection it provides has to be grounded in the operating system also." Also, "Protecting software written in a scripting language, such as Python, is also a challenge. You need to prevent a malicious user from obtaining a copy of the script, tampering with it by simple editing, and redirecting the system to use the tampered copy." . 2. GNUe Community and Applications 14 Nov 2002 - 16 Nov 2002 (2 posts) Archive Link: "short questions" Topics: Why GNUe?, Application Server People: Dirk Riehle, Peter Sullivan Dirk Riehle asked "Why is GNUe a "meta-project". Is it more than a bundle of the three mentioned projects" on the front page of the website. Peter Sullivan said "The "meta-" part relates really to the Community aspect, IMHO. As well as the "official" GNUe Applications, anything else written using the GNUe Tools can, in effect, tap into the resources of the wider GNUe Community. This is why GNUe has a much wider scope than most other similar projects (both free and proprietary) - they either focus on providing a toolkit, or "shrink-wrapped" applications. GNUe aims to do both, and more!" . Dirk also commented that he "was surprised to see that no implementation work has been done on the actual packages. Am I mistaken or did you focus (almost exclusively) on the tooling/runtime so far?" Peter agreed - "Although several people are now using Forms "in production" with private applications they have written themselves, the main GNUe Applications have always been intended to use the Application Server (n-tier), and hence there has been little impetus in this area so far." 3. GNUe Small Business 13 Nov 2002 - 17 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Small Business People: Bajusz Tam?s, Dmitry Sorokin, Andrew Mitchell, Derek Neighbors, Jeff Bailey, Jason Cater, Christian Selig, ra3vat It was asked what progress had been made on the Small Business edition of GNUe. Bajusz Tam?s (btami) said that there was a project page for it on savannah ( http://savannah.gnu.org/projects/gnue-sb) , the Free Software Foundation's free fork of Sourceforge. On the tools, "0.4.1 coming soon" and Dmitry Sorokin (ra3vat) noted that "the tools is very useful already - forms, reports are tools to build your own application" . The amount of "programming" needed to build an application "depends on application you need but mostly you do not need programming knowledge" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.15Nov2002) , Andrew Mitchell (ajmitch) asked "how's gnue-sb going?" . Derek Neighbors (derek) said "good but slow - jcater pounded out schema fixes YEAH - so for now we have the gsd's fixed and working ! i will be fixing the forms to match" . Andrew said he had "to look at gnue-sb, the description looks like interesting stuff - SB is what i mainly care about - since we don't really have much bigger than small businesses :)" in New Zealand. Two days later (http://www.gnuenterprise.org/irc-logs/gnue-public.log.17Nov2002 ) , Derek Neighbors (dneighbo) said "ok new gnue-sb committed - item management and contact management forms should 'function'. They could be improved a bit and could have more features - but the basic schema's and forms are there and do work! Basically the two custom pieces i had hodgepodged at one time are now functioning." Having pushed for feature maps for the GNUe Tools (as discussed in Issue #55, Section #10 (7 Nov 2002: Feature plans for GNUe) , "i will look at 'feature maps' now for gnuesb" . Later, Derek said he was still holding off a public launch for GNUe Small Business until the issues with the CVS were resolved - it had been given a Savannah CVS web-page at www.nongnu.org in error instead of on www.gnu.org. Jeff Bailey (jbailey) asked "Why don't you just have gnue-sb under gnuenterprise.org ?" Derek replied "because we dont want people to think we have abandoned appserver and more robust SAP R/3 type implementation" . However, "we needed something QUICK" for some specific clients "that was two tier and ready to ship within a quarter or two - i.e. read not something perfect with ultimate planning and documentation - but something worked and could be extended" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.18Nov2002) , Derek confirmed that "currently gnue-sb only supports postgres - until the gsd tool is fixed to support the other databases - as soon as the tool renders gsd's for a db that db should be supported by gnue-sb" . He personally would not recommend MySQL for use against gnue-sb - "mysql is not a kwality kode database for this type of application" , nor was sqlite. He noted "my personal goal for gnuesb is not to be quickbooks - if someone wants that i will point them to gnucash small business project. If someone is willing to do local filesystem for a db then gnue-sb is bigger than them (imho) - /me isnt opposed to getting sqllite working, but states strongly that is not the target market for gnue-sb" . Jason agreed, but said "I bet we still see the single business owner strolling in - wanting something for his PC" . Christian Selig (lupo) asked "does/will gnue-sb handle european tax stuff - ie tax on sales" ? Derek said "right now this is my big pain - im torn whether to make gnue-sb US only - or support foreign stuff. The problem i have with making it 'anywhere' is you lose a TON of validation rules US business love and speed features. Like if US only i can make it so you enter a zipcode and it auto populates city and state - i can validate phone numbers against states i.e. is that a valid area code for a state etc etc. As soon as i make it i18n i end up with very sloppy validation and very general data entry. /me realizes there is a huge foreign market and doesnt want to discount that" . "if lots of non us people are willing to help and use likely i will make it i18n - if not then i will likely make US centric as thats my target market" . Christian said "i think having a market at all is better than fulfilling thousand problematic and inconsistent wishes - if the resources aren't sufficient, we can still fork. Currently i just don't have an enterprise customer who wants to make a switch : ( - so i don't have big ERP reality touch :-((" 4. GNUe Schema Definition (.gsd) format 13 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Common People: Bajusz Tam?s, Bill Gribble, Nick Rusnov, Jeff Bailey, Jan Ischebeck, Derek Neighbors, Jason Cater, Peter Sullivan, Dmitry Sorokin It was asked what a GNUe Schema defintion (.gsd) format was for. Bajusz Tam?s (btami) explained "its an XML markup for database definition" . It was not necessary for building an application, but "it is useful for transferring data from one database to another - or filling a database with tables/data" . Bill Gribble (grib) explained "if you define the database structure with XML, you can translate it into idiomatic SQL for a specific database variety." Bajusz said "you can find a good example in zipcode sample - in samples/tutorials/ forms/zipcode.gsd - and there is an ooO doc around, but i can't recall where :) " . Later, Nick Rusnov (nickr) asked "is there like a standard XML database dump format? Like if Iwere to export all the contents of a database into an XML file ..." Jeff Bailey (jbailey) said "I would just imagine that you'd give each field name to an element and dump. XML is really bad for representing databases, though. You'd have to dump a Schema at the same time to give you characteristics of each field. And XML implies that order is important." Nick felt this was "a normal overly-complicated xml solution." Jeff disagreed - "It's exactly the right level of complexity. The problem with tab or CSV is that it's lossy. You lose the details that you've asked for about structural requirements in the cell. If you didn't care about that, then tab delimited is probably a better choice anyway. It's easier to parse. The other two cases where using XML is worthwhile is: 1) Occasional Binary data, or data that uses the intended separators. 2) Where you want to remove the relationships and build up complete records" using XSLT. Later still, Jan Ischebeck (siesel) asked a "short question about GSD" . Derek Neighbors (dneighbo) asked "can i ask what you are doing in gsd? we are EXTREMELY overhauling it" , which might render anything Jan was doing as moot. He explained "we are moving away from xslt to a large degree - certainly it will be supported if someone wants to maintain it" . Jan "thought that xslt was just the option for all the guys who want to have GSD but don't want to use python" . Jason explained "GSD is still a standard markup" in XML - "no more no less - and we didn't want gnue-common as a requirement, not necessarily python - even though, to get it working quickly, I am using gnue-common - but that can be removed later on" , allowing people to use sablotron or any other XML processor to parse .gsd files. Jan, referring back to Issue #55, Section #25 (11 Nov 2002: GNUe Schema Definition (.gsd) file formats) , said his main concern was "why did you decided to make GSD using less datatypes." Jason said "it was never intended to support" as many as it had - "somewhere along the line it got goat-raped and all those things added" . Derek Neighbors (derek) said that the original schema abstraction from DCL which had inspired .gsd "had one or two more than we have now - but what wsa in cvs got trashed - i.e. lots of datatypes added and support in designer broke - i was in a pinch so discussed with jcater and we documented and revamped back to original vision. I went to make new style sheets for XSLT and decided they were more cumbersome to maintain than a program - so we are making a program. Certainly any XSLT stud could come and modify the XSL to make it a viable alternative - not only do we encourage it, we hope it happens - GNUe is about choice after all. As for tying to common, im not wholly against that as with XSLT one can break that dependency" . Jason said "our first priority has to be our tools - I want to design stuff that other projects can use - e.g., formats, etc - but that doesn't mean I can put that objective ahead of it being usable for GNUe" . Jan agreed. Peter Sullivan (psu) felt "it's like the appserver for dotGNU issue" - "we won;t discourage it but we won;t compromise making AppServer the best possible business application server for our purposes" . Jan said "I just have two concerns: 1. how abstract will GSD be? I.e. will it still be usable for appserver? 2. what about gsd->sql generation in dbdriver and gsd->sql driver in scripter." Jason said "we wanted GSD to be abstract - not to be an XML version of postgres sql with some translators for other dbs" . On the second point, he noted that the "scripter is in common - so the dbdrivers can certainly use it" - "eventually, a dbdriver can take a schema def and actually create the underlying tables - schema scripter (the scripts in debate here) create SQL statements - so the dbdrivers could just call scripter to get the SQL statements to run. Once again, though, in the scheme of things, is not a huge priority" . Jan asked if this meant that the scripter would replace "the schema writing code which is allready in dbdriver" . Jason said that all there was at the moment was a dictionary to give the correct syntax/ equivalent to CREATE table for each supported database. Jan asked about the code "in common/src/dbdriver/_dbsig/DBdriver.py: _buildTableDefinition etc." Jason said "imho this is putting a lot of stuff in dataobjects - I was hoping they wouldn;t get too much more complex" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.16Nov2002) , Dmitry Sorokin (ra3vcat) asked "what gcvs is for?" Derek Neighbors (dneighbo) explained "it wraps common - so say you write a script myfoo.py that usues common - instead of having to set python paths you can just do gcvs myfoo.py." This was especially useful as of time of writing "since the gsd converter uses common but isnt a real script as of yet - gcvs Scripter.py mycool.gsd postgresql > newpsql.sql." Later, Derek Neighbors (dneighbo) reported a possible bug in the GNUe Schema Definition import code - you had to include a tag to identify which table to create, but if the table specified did match that of the table to import, then the script failed silently. "ie the import 'name' must match the table 'name' or the .sql doesnt get created, but no errors are generated. I'm not sure if you meant it to force a name match or not - if not its a bug - if so, we need an error message saying the .sql isnt created" . Jason said that was definantly a bug - the parser should "bomb off with an error" . He fixed this and committed it to CVS. 5. Transaction processing in Application Server 13 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Application Server People: Bill Gribble, Ariel Cal? Bill Gribble (grib) asked "are there any plans to provide a gnue transaction processing server, or queueing system? or are most gnue apps tied to synchronous database semantics (i.e. client actions block until complete)" Ariel Cal? (ariel__) said "there are plans for this in the appserver" , as discussed in Issue #55, Section #3 (2 Nov 2002: Halloween e-mails on AppServer functionality) . 6. Converting Reports XML output to Postscript 13 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Reports People: James Thompson It was noted that Reports produced HTML output, and asked how this could used in situations that needed accurate positioning, such as printing an invoice on a pre-printed form. James Thompson (jamest) said "gnues reporting tool outputs an XML markup that can be converted to text, html, ps, pdf, whatever - I've had people write letters in word processor of their choice - save as PS file via windows apple laserwriter - then reports can merge data in. Sent out about 600 faxes this way a few months back" . 7. Alternatives to wxPython toolkit with GNUe on Microsoft Windows 13 Nov 2002 - 14 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Forms, Designer, Common People: James Thompson, Bill Gribble, Derek Neighbors, Keith Jagrs, Jason Cater , Keith James Thompson (jamest) warned that "our win32 support in GNUe Forms via wxPython has issues, we're writting a win32 API ui driver during the next release cycle because we can't get what we need from wx - it works, but it's a bit odd" . Bill Gribble (grib) asked "so is wx not quite the x-platform miracle it was thought to be?" James said "i think it's the underlying widget set for the platform - on X we can get ahold of certain events, in windows those events never make it to the wx level" . Bill asked "is gtk on win32 too far from usability?" James said he had not had time to investigate this properly yet - "but my understanding is that the gtk2 client is missing some features but is moving along nicely" - "we're getting lots of win32 patches it seems and gtk2 patches so it may work better than I think" . Later, Derek Neighbors (derek) said "i think wx is pretty good xplatform if you have limited resources (i.e. better than anything else) - however its not perfect. I think it has done us well... i.e. quick xplatform to get people interested and get us supported with little effort - now that we have a bigger base i think it will be nice to see naitve, win32, gtk, qt" . James said he had added a native win32api Forms UI to the feature plan. Derek said "yeah i noticed :) - i think its a good change" - "i think you are sick for being eager to write one, but its a good thing(tm) ;)" . James said he "wanted to rework the gfd format to seperate layout from logic - btami asked for a feature that would be easy once seperated - so i spoke w/ jcater about it. We decided that the forms documentation wouldn't be that good if we changed the file format right after we release the docs :)" He was also "writting a GNUe Common usage guide that shows you how to write non-gnue apps with common - should make it into 0.4.1" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.15Nov2002) , Keith Jagrs (KeithJagrs) asked what the plans were to circumvent the problems with wx under Mircrosoft Windows. James said "i know works being done on gtk2 driver which works under windows.....however what I believe you will see in the next major upgrade is a UIdriver based upon win32all - my understanding it that is exposes the win32 api directly which will make for a painfull coding experience but should result in us getting exactly what we require. I have not looked into this really closely yet though (my last copy of the win api book covers the "new" api in win 3.1) :)" There were no plans to drop wx in favour of GTK2. He explained that the UI (user interface) drivers were abstracted from the main Forms code - there were already uidrivers for curses, gtk2 and wx - a win32 UIdriver.py could be slotted in the same way. "the idea is we don't want coders to have to learn the internals of forms to add a driver - well, not all the internals - they just have to provide code to deal with the events that are passed into a driver" . Much of GNUe was designed to be pluggable in this way - "our database drivers work the same way" and "designer also has plug-in system to extend it's capabilities" . Keith asked "can curses work on DOS ?" Jason said he had "looked at curses + DOS - went into "python" on a win32 machine - and did "import curses" - and it didn't work" . James was not "too worried about text on windows though - personally, i saw the curses thing as usefull for someone running text terminals" . Keith noted that "there are some companies working with accounting software that runs on DOS" . James agreed - "i know text apps are used alot in the real world - i myself don't think gui == good by default - however i think a dos text client would be a huge investment in time. Now if a person could find a python module for manipulating text then it would be possible - but doing from scratch would be painful" . Jason understood "you can get curses libraries for win32/dos machines - so you'd probabl;y be able to custom compile a python binary - I don't have the time to invest in that route but I imagine it's doable" . James noted "ooooo, if we can get a python binary that does that then our existing packaging will just work" . James acknowledged "that win32 support is a big issue - that combined with the desire to work on layout caused us to adjust our feature plans (http:// www.gnuenterprise.org/feature-plans/forms.html) " . Jason agreed "I think a win32 client will come along very quickly once its started" . In the meantime, James suggested "setup a cheap arse "server" running the curses client" accessing this via telnet "w/ putty on the win boxes. It may sound sick but when I go places I spend time looking at their computer interfaces (at stores, companies, etc) - i always ask myself "can forms do that?"" - he saw similar set-ups to this a lot - "which always strikes me as funny - to spend XX dollars on a windows license to run as a glorified vt320" . Later, James tracked down a web reference (http://newcenturycomputers.net/ projects/wconio.html) to a text-based client - "it's not curses but at quick glance it looks like it would provide enough features to make such a driver possible" . Derek Neighbors (revDeke) "shudders at wincurses - i think your idea of vt100 putty connections to GNUe Server would be more effective :)" Jason noted "that looks so close to the underlying curses driver that I bet it could be grafted in - so the "widget set" we have created to go over curses could also be used over wcon" . He was not sure how it worked however - was it really a DOS screen, or a Win32 console? James felt "anyone running pure dos solution would probably be more open to other setups - unless legacy app forced them into it" . Jason agreed - "if they are in a dos setup we talk them into putting in an ltsp server - and make the dos machines LTSP "telnet" clients :)" . 8. GNUe Tools compared to Great Plains toolkit 13 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Forms, Designer, Why GNUe? People: J Mozeleski, James Thompson J Mozeleski J Mozeleski (imoz) asked what ERP backgrounds the GNUe core developers had - whether it was mainly J-BOPS ( "JD Edwards/Baan/Oracle/Peoplesoft/SAP high end ERP background" ). James Thompson (jamest) said they had "a little of everything, my experiece is with a home grown erp at a mfg plant using oracle and their old sql*tools. GNUe Forms is somewhat based upon the way Oracle SQL*Forms worked - as both myself and jcater like that tool, however we've altered things we hated about it" . J Mozeleski said his background was more middle-market, including working "for a Great Plains VAR writing custom enhancements for clients" . He had been thinking about "an open source mid-market solution" but "after finding Gnue I'm thinking instead of creating something from scratch I could use your toolset to do this? Except I would have to learn Python :-)" . James said "sorta - our trigger system currently only supports python - but quite a bit can be done via designer w/o writting any triggers. Even learning python you'd only have to learn a small part of it - we have a doc in cvs that give a little tutorial on it too - should be in the next release due out any day now" . J Mozeleski noted that "Great Plains works virtually identical to this. They have a custom scripting language called Dexterity and a similar forms designer, etc. Same concept of triggers, etc. Of course then they got bought by M$ and are now porting to .NET..." Also, as proprietary software, "you have to buy a very expensive site license to use the modified code and only dealers get access to the Dexterity tools." . 9. CSV (Comma Separated Values) 'database' driver for GNUe 13 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Common People: Andrew Mitchell, Derek Neighbors, Jason Cater, Matt Rice, Jan Ischebeck Further to Issue #55, Section #7 (6 Nov 2002: CSV driver for GNUe) , Andrew Mitchell (ajmitch) "wrote a simple csv parser last night that handles quoted strings & newlines - /mecouldn't sleep :)" This included writing a special __GetFieldSchema handler "to make up field names, or read them from the first row :)" Derek Neighbors (dneighbo) said "i suppose there should be 3 ways (at least to do schema introspection on csv) - one is the header row(s) define the 'table' - two is a separate flat file defines the 'table' - three is an separate xml flat file defines teh 'table'" . Jason Cater (jcater) added "four is it could be part of the datasource definition" . Andrew siad "i thought you didn't want this to be complex :)" Derek said "im cool with simple and growing it" . Later, Matt Rice (ratmice) asked why a sample form definition contained both a tag and a tag - "it would be much easier if they were seperated so that a single form could work with multiple static sets" Jason explained "a staticset is just that, static - it isn't updated by a form" . Matt said he really needed a dynamic set, but wanted something he could use offline. Jan Ischebeck (siesel) suggested "you can use sqllite for that." Jason suggested "if you really wanted something even simpler than sqlite - you could use csv files - /me shudders at the thought of doing that with forms - but you could" . Andrew confirmed that his code defined a class for a CSV_DataObject that was a STATIC_DataObject. Jason said that was probably correct for the moment - "when I was thinking about it that was my plans too :)" 10. i18n in GNUe 13 Nov 2002 - 15 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Forms, Reports, Common People: Bajusz Tam?s, James Thompson, Jason Cater, Dmitry Sorokin, Arturas Kriukovas Further to Issue #55, Section #27 (12 Nov 2002: i18n issues with Reports) , Bajusz Tam?s said "i have a dilemma - 1. use sitecuspomize.py for setdefaultencoding() - 2. use encoding in every place where it needed - i myself used 1. before ,and i was happy - but today i remowed my sitecustomize.py to test for release and got errors from several places" . James Thompson (jamest) asked "are you saying we need a way to modify sitecustomize.py during setup?" Bajusz was not sure, as Arturas Kriukovas (Arturas) has raised concerns about how this would affect other python applications on the same machine. Jason Cater (jcater) said "in production environments, we will probably have a "custom" python install in which it wouldn't make a difference. I don't know what else to do though - without changing all file open() commands to a codec.open(file, encoding='unicode') - which will suck" . James did not "think a small alteration to the file (prompted for of course) is that big an issue" . Bajusz said "if we can use our sitecustomize.py with setdefaultencoding() - then no need for many *.encode (encoding) - and python do the rest. The remaining problem, how an install process gets the correct encoding - maybe a popup like in a debian install" ? James said "i think it'd have to be - as this is different from the locale setting isn't it?" Bajusz said yes - his own locale was hu_HU (for Hungarian/ Hungary) but his "encoding in python is iso8859-2 or cp1250" - "python can grab encoding from XP/2000 and from LC_ALL in *nix" . Jason asked if this was the default behaviour. Bajusz said that this was his custom install - "no sitecustomize.py exist per default" . Jason felt "I really hate that you can't change encoding in your app - that is a really bizarre design decision for python to make :(" . Two days later (http://www.gnuenterprise.org/irc-logs/gnue-public.log.16Nov2002 ) , James Thompson (jamest) asked how well GNUe was working in Microsoft Windows for Bajusz. Bajusz said that he had not "put site.py/sitecustomize.py into" the McMillan packages (used to create stand-alone *.exe files for python applications in Microsoft Windows - "so i tend to use encodings thing :(" . Forms and Designer themselves were reasonably stable, but there were a significant number of "event issues" which he had raised as "collected win32 bugs in DCL :)" . He had also "failed with making forms/reports with simple wizard if i used non ascii title - when i want to save them" . James said he needed to move the formFontEncoding code from Forms into Common. Jason Cater (jcater) asked "what outside of forms will use it?" James asked "wasn't designer going to support all languages in its menus/dialgos?" . Bajusz reported "huh, finally i reproduced my error :)" in Reports. It appeared to be treating the %s paramter literally as an invalid XML tag, rather than replacing it with the value of the paramter - this was "without sitecustomize.py" . James was surprised "it's really putting the %s in there?" Jason suggested putting a print statement in to print some relevant variable values. Bajusz said that the debugging print statement itself then errored out - "UnicodeError: ASCII encoding error: ordinal not in range(128) - python always wants to convert unicode strings into ascii" . This was not normally a problem "cose python is clever - but it allways uses unicode in XML" . Bajusz realised that Arturas' patch to Reports was not ideal, as it used FontEncoding code originally meant for Forms - "but as jamest said, a simple fontEncoding in [common] is a solution" . Jason felt that "fileEncoding? or textEncoding" would be a better name, as fonts per se were not the issue. James asked "did we ever get a global section working in config file?" to be able to set options like this for all the tools - "/me_thinks_he_worked_on_a_[default]_section/index.html" . Bajusz wondered what "if someone wants to use different lang for forms and for reports" . Dmitry said he had "a mail from python gettext author" . He had recommended using ugettext, which would always return a Unicode object, or several other complicated-looking alternatives. Dmitry would forward this to the mailing list. 11. New (0.4.1 etc.) releases for GNUe Tools 13 Nov 2002 - 18 Nov 2002 Archive Link: "[IRC] 14 Nov 2002" Topics: Forms, Reports, Designer, Common, Navigator People: Derek Neighbors, Jason Cater, James Thompson, Peter Sullivan, Jeff Bailey, Andrew Mitchell, Bajusz Tam?s Further to Issue #55, Section #23 (11 Nov 2002: Planning for next release) , Derek Neighbors (derek) noted that people had commented "that 0.4.0 windows version on win2000 is very broked (i experienced same) - so if we can get some prelease of 0.4.1 for windows it would be great - /me realizes we are doing native win32 for 0.5.0 - but still we need an interim" . Jason Cater (jcater) said "bug btami when you see him - he's completely set up to do it fairly quickly. It'd take me a while to get back set up" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.15Nov2002) , Jason announced "New prereleases (-pre3)" , which included several fixes and "Demo-able curses support in forms" . Later, James Thompson (jamest) said "i know jcater and I are ready to release - so 0.4.1 may be today" if people were happy with the pre-releases. Jason confirmed "each of the tools has a ChangeLog - and a NEWS file with an executive summary of changes" . Derek Neighbors (revDeke) said that if James wanted any more testing from him on GNU/Linux, that would have to wait until later on. Also, "we need windows prereleases - /me is waiting to pounce on btami" . James said that he did not feel the need for any more GNU/Linux testing, as "i've ran all my work forms thru it - and I'm implementing something today pretty big using just designer and forms. I think we'll be ok - plus I think we've time today - my weekend is iffy at best" . Derek empathised, and said "certainly release if you feel ready - /me gets to maintain the 0.4.2 release - so if i find stuff and it gets fixed i can always release 0.4.2 :)" . Later, Peter Sullivan (psu_) said he had updated the website to urge people to test the pre-releases, suggesting the tag line "Pre-releases - when *everyone* gets to act like derek, and we're grateful" . Jason suggested "Pre-releases - for the derek in you!" . Later, Derek asked "you releasing tonight or doing another pre-release - and will there be a windows release for 0.4.1 - or will we be saying windows support is gone until 0.5.0" ? Jason said he and James were both busy, "so it looks like it's later this weekend - though I might stop in and do -pre4's" . Derek said his "fear is no one has pre-release tested any windows" . Jason said "I think some were testing under windows" . Two days later (http://www.gnuenterprise.org/irc-logs/gnue-public.log.17Nov2002 ) , Jason Cater (jcater) and James Thompson (jamest) went on a final bug-squishing frenzy, before Jason announced "cvs is being tagged" for a release. Derek Neighbors (dneighbo) said "jcater/jamest MAJOR kudos to this release - it is by far the best gnue we have seen to date" - incrementing the version number just from 0.4.0 to 0.4.1 "hardly seems fair" . Jason said "actually, it was mostly cleanup" . James asked Jeff Bailey "we released/are releasing today - any chance we can get new debs marked same version # but 0.4.1b instead of a" . Derek asked "why cant we use 0.4.1 ?" Jeff said that the existing Debian packages, based on CVS, had been designated 0.4.1a and "0.4.1 is lexically a lower version that 0.4.1a" , which would cause problems for the Debian packaging system, as discussed in Issue #54, Section #24 (4 Nov 2002: GNUe Project organisation - version numbers, roadmaps, testing and branches) . Later, Jason warned "make sure you are somewhat happy with this release - as cvs will break for a little while (not too long, but it will break)" . He then did "a happy dance" as he announced the new releases - Forms 0.4.1, Reports 0.1.0, Designer 0.4.1, Common 0.4.1 and Navigator 0.0.2. Derek said he would do the annnouncements to Freshmeat - Jason confirmed that he had e-mailed the gnue-announce mailing list. After midnight (http://www.gnuenterprise.org/irc-logs/gnue-public.log.18Nov2002 ) , Derek Neighbors (dneighbo) noted "ok freshmeat updated with all releases - i had to add navigator i guess i never released it at 0.0.1" . The freshmeat administrators approved the postings straight away - Derek had been hoping they would have done it in the morning. Freshmeat's "biggest audience is US" and "with a little luck they would stick on the front page till about 12 my time i.e. most of the US audience would see them during morning or lunch break" . He noted "on days we run releases at freshmeat our web traffic jumps WAY up" . Andrew Mitchell (ajmitch) suggested "that's when jamest turns the" air cooling "on for the webserver :)" . Later, Bajusz Tam?s (btami) and Peter Sullivan (psu) discussed the arrangements for getting the Microsoft Windows setup.exe versions of the 0.4.1 releases onto the website - Bajusz said he would do two versions again, one with the python console window visible (for debugging purposes) and one without. Two days later (http://www.gnuenterprise.org/irc-logs/gnue-public.log.19Nov2002 ) , Peter Sullivan (psu) announced "btami's setup.exes now on the website ( http://www.gnuenterprise.org/news/news117.php) . " Jason Cater (jcater) was surprised at the size - almost 10MB each. Peter suspected "that the extra drivers (sapdb, firebird, etc) are the main causes of the bloat" . Bajusz confirmed that the setup.exes included GNUe Reports as well, now that this had reached version 0.1.0. The main reason that the files were so big was the inclusion of wxPython, which was 6MB all by itself, rather than the database drivers. 12. Feature plans for 0.5.0 and later 14 Nov 2002 Archive Link: "[IRC] 15 Nov 2002" Topics: Forms, Designer, Navigator People: James Thompson, Derek Neighbors, Keith Jagrs, Jason Cater, Nick Rusnov , Andrew Mitchell, Keith Derek Neighbors (revDeke) said he might need to do a few point releases of 0.4.x, depending on how long James and Jason took to do 0.5.0. James Thompson (jamest) said "most of 0.5.0 shouldn't be major, we've been looking into it - it'll be major on the user visible side of things, but internals shouldn't kill us" . Derek was "thinking the win32 driver and curses drivers will be the biggies - not necessarily in 'dev' time but in testing time - assuming basic curses support didnt make it into 0.4.1" . James said "i'm pretty sure it will be _almost_ feature complete for 0.4.1 - but I haven't tested in a few days" . Derek was impressed - "i dont think it needs to be 'complete' for 0.4.1 just like i dont think win32 would need to be complete for 0.5.0 - but more 'reasonably' complete 'first preview' give us lots of feedback :)" James said "i imagine 0.5.0 will have the new gfd format and maybe the start of win32 - the new gfd format will be a HUGE gain for forms - as you'll be able to do l33t things in it" due to the "complete seperation of layout from logic" - "you'll be able to mirror fields on multiple pages, mix things about any way you like. I think 0.5.0 is this year - it's become an itch we've got to scratch - you should get a layout manager system as well" . Keith Jagrs (KeithJagrs) noted "there's only one month and a half left to new year's eve" . Jason Cater (jcater) said "our history is to release either right before or on a major holiday" . Derek agreed - "well 0.5.0 before end of Q4 02 would be great - while there are lots of holidays generally that means time off work - which means to a degree gnue time :)" He was "worried about this gfd switch - will we have conversion tools? or open in design and save - /me is only worried as im getting ready to do a boat load of forms" . James said yes - "I think we're pretty good about changing things and hiding it" - "it's worth it in any case - this is something I wanted from day 1" - "it's how sql*forms from oracle did it" . Jason said "jamest and I were discussing and decided we really couldn't wait any longer - as the closer to 1.0 we get, the more stable the gfd format must be - so if we are going to do a "correction" in our format - we better get it on!" . Also, James pointed out that they were planning much more documentation with the 0.5.0 releases, so would rather change the format before documenting it rather than after! He had always wanted to "seperate the logic from the layout in gfd - when I started I wanted something out the door fast - so I blended them which was a bad, bad thing - but it was quick, i was just learning python while coding, i was young and needed the money" . Nick Rusnov (nick) sympathised - "we've all been domn that route - but you end up just spending all your money on gold chains and skintight pants." Jason noted "you realize with this separation I will quite literally be able to do a converter" to get existing Oracle SQL*Forms working as GNUe Forms instead - the only other issue was Oracle's specialist PL/SQL trigger logic. Derek said "well i think ultimately we will be better than sql*forms for many reasons" James said "we are better now in many respects" . "layout they have us - stability of the painter they had us - abilities of the painter we kill them - painter = deisigner" But "forms is more powerfull than their client IMHO" . Later, looking at the feature plans, as discussed in Issue #55, Section #10 ( 7 Nov 2002: Feature plans for GNUe) , Derek Neighbors (derek) asked "for forms what happened to 0.4.1 release? we should leave them on there as complete, no?" - "i think it makes for a nice history as well" . James said that the feature plans "start w/ 0.5.0" . Derek said "there are features that are missing (i assume these are possibly not comprehensive) - in which case i will throw out the feature and you all can determine where it best fits" . He emphasised that it was up to James and Jason, as the main coders, to decide which version a feature belonged to - "i.e. you could say we will never support that, we will support it after 1.0 sometime or yeah we need that lets decide where it goes" . James noted that he and Jason were looking to tidy these up as part of the 0.4.1 release anyway - they knew there were some duplicates and inconsistancies. Derek asked "what is grid view mode?" James explained it "converts a std form to look like pgaccess - it's a 'shut up users that keep asking for pgaccess on my systems even though pgaccess is slow and buggy' feature" Derek asked about a "a native grid widget" to replace the current rows="10" functionality, as discussed previously in many threads, as far back as Issue #14, Section #19 ( 28 Jan 2002: GNUe vs E/AS) . He realised this was mostly cosmetic, but "again this is high priority it could be post 1.0 - but thats what im asking ... should it be pre 1.0 and if so, how pre 1.0 - im thinking the blocks/fields things might make it easier to implement" . He also questioned "the need for a qt driver pre 1.0" - ideally he would like to find a volunteer from outside the core developers to write this "like happened with gtk2 one - i.e. i would like to see a qt driver - just hate to see critical resources on it, again i understand the scratch an itch so its comment not a complaint" . He added "most of my other stuff was questions for designer, but looks like its plan isnt produced yet. The three things i have there 1. good mask editor 2. starting of schema editor 3. trigger editor capabilities 4. cvs integration 5. project capabilities 6. gpd editor - schema and gpd" (GNUe Process Definition - the file format for Navigator) "editor are becoming a big weakness i see as i am starting to write applications" . "project capabilities and trigger editor would be nice but i can hobble ok w/o - mask editor and cvs integration would be gravy :)" - also a "reports design capability" . Andrew Mitchell (ajmitch) said "a good mask editor could have a set of preset masks to use" . Jason said there was already some functionality for this, but it needed some more polish. The way it worked at the moment was that you defined a format in the gnue.conf file, and could then reference it from GNUe Forms Definitions (.gfd). Derek also asked for a "calendar picker" for date format fields - "i think about every platform can support as well - i see it as nothing mroe than attribute of entry of some kind" . James was not sure of the need. Derek gave a practical example - "im planning airline travel - i want to travel week of christmas - i want ot leave monday before christmas and return friday after christmas - do you know those dates w/o looking at a calendar? unfortunately i dont - its much easier for the application to show me a calendar than to hunt one down :(" Andrew asked "hmm, when was wxCalendarCtrl added to wxpython? is it in 2.2.x ? :)" Derek agreed it was not a "high priority thing - it was one of those ithink we need, could be post 1.0 pre 1.0 thats your call" . James wondered if this would be better done as a plug-in. Derek felt this was pretty core, but "im not opposed to abstracting it so that other things can be done as well - i.e. i realize there will be lots of similar requests some we agree with some we dont" . Andrew, after carefully donning a "flameproof suit" asked "what sort of timeframe are we estimating for these releases? :)" Derek said "there was talk about trying to have 0.5.0 by end of december early january if real life (tm) treats everyone well - i think predicating anything beyond that for other releases makes little sense" . 13. Merging GNUe and Papo CVS code 14 Nov 2002 - 19 Nov 2002 Archive Link: "[IRC] 15 Nov 2002" Topics: Common, Forms People: Marcos Dione, James Thompson, Derek Neighbors, Jason Cater, John Lenton Marcos Dione (StyXman) was "finishing the merge" to include all the changes to GNUe's CVS in Papo's CVS. "but I want to be sure we didn't break anything. should I use the samples to test, and that would be enough, or are better test somewhere else?" James Thompson (jamest) said "i think the samples are fine - once you've merged can you get us a list of differences between your code and ours" . Later, Marcos noted that "almost all the DBdirver.py's have the same $driver_DataObject_Object._buildQuery method - they're all the same (ok, just the first few ones)" . Derek Neighbors (derek) commented "good eyesight you have young jedi" . Marcos suggested "why not move it to DBSIG_DataObject_Object or above?" Jason Cater (jcater) said "if you look closer, they can't be moved up - this is forcing the DO to not run the parent's DO, but a second parent's one" - "/me remembers hating to do that, but it was necessary" . Marcos noted he had to change this in each of the 16 database drivers. Some days later (http://www.gnuenterprise.org/irc-logs/ gnue-public.log.18Nov2002) , Marcos asked "what would be that 'kstructural changes'that you tal about in (one of) your last commit?" Derek Neighbors (dneighbo) speculated "evil doings :)" , mainly the "seperation of logic and layout" , as discussed in Issue #56, Section #12 (14 Nov 2002: Feature plans for 0.5.0 and later) . This made it even urgent to "merge our trees (i had hoped you would have merged for 0.4.1 release) - but if you guys dont hop on it in next day or two it will likely be really BAD - i.e. the guts will change significantly and merging will be near impossible" . Marcos said "I can send the big patch *now*" . James asked "does it have to be one huge patch?" Marcos said he could "(try to) separate it in functional patches" but that would take some time. James said to send it anyway. Marcos disclaimed "some features added are maybe deprecated. those you think are ugly, pleasse feel fre to discuss them either in your mailing list or in ours." Marcos sent the main large patch as a single 143k diff file to James for review. The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.19Nov3003) , Marcos noted that "the simplest of our patches" had now been applied to the main GNUe code tree. James said he had some queries on the other parts of the patch. Marcos explained that "genericBox is for asking questions with more options than 'yrs' and 'no'" , whilst "atomic* is to make sure only one person can modify a what-would-be-called database register at a time" . James asked "could the same result be accomplished by adding an atomic="" to the datasource tag" ? Marcos said it was more subtle that that - by applying it to an individual entry, "only that entry must be atromic. the others may not be midified atomically" . This was called from a trigger - he pasted an example. James explained "the reason I ask this is that we want datasources to support record locking which this appears to be - if we were to add a atomic or locking ="" attribute to a datasource that locked records after they were modified - would that serve the same purpose? and I think it may require less work on the trigger writters part :)" . Earlier, James noted that "function calls in python are a hideous performance hit - we switched from a getFoo() to self._foo with the _ meaning private" . They had not realised this at first either! Later, John Lenton (Chipaca) said "how is less than 10% a major performance hit? or, how is less than 10% reason enough to through the whole OO thing out the window?" James said "that 10% isn't much on occasional calls but our UI system had lots of such things going on" . Jason felt that "self._form is as much OO as self.getForm() - just maybe not by the java definition" . John said "I have no problem wiht self.form, in fact, I kind of like it. It's the /^_/ that bothers us, as that is always an indication of "this is private" - and in fact you agree - but then you expect people to call that, so it's no longer private" . Jason said that the underscore prefix in code was used to indicated that something "is considered to be a settable attribute - ala XML files" . It was only in the context of the connections.conf config file that it meant "private." James said "i don't think we have a hardfast rule on private" . Earlier, James asked whether they had got scrollbars "working with gridlayouts now?" . Marcos explained "scrollbars associate to its surrounding block. - they 'register' to them - so, when the data source is updated, and the block is notified, the scrollbar gets updated too. what I can't make work is 'free scrolling'. wx is very ugly reporting these ind of events" . James also noted "you exposed some gnue internals via some of those trigger functions - i was wondering why? i know we did hacks like this at one time - but started to try to move away from them as internals can change and will alot :) So if we can figure out what is making you have to drop to internal levels we can adust the code - every time I've done this the workaround makes the triggers easier to maintain :)" He was aiming to "get a fair bit of this in for 0.4.2 but not all of it - as I'm pressed for time and have other bugzzz to address ;)" Marcos said "I guess you're also puzzled by that history tables thing..." Derek Neighbors (revDeke) said "i think your history tables need to be implemented as tables and triggers and not embedded in forms (read hardcoded) - i had same need for gnue-sb - was going to do all in triggers though there has been talk of making some 'convience functions' for such things so triggers would be nice and clean" . To save recoding the trigger for every field, "you should be able to make it a shared trigger and just reuse it" . Jason said that they had not wanted to use papo's solution as the general GNUe solution for transaction/ history tables because "we can't have harcoded schemas in common" . Derek agreed - "not everyone wants it - and HARDCODING it is not a solution" . Marcos said "we done it that way because appserver (what would like to use) was not available when we started coding things" in a stable version. But he felt papo "we can live with an external patch 'till we recode, I gues..." . Derek said that "after this merge there will need to be some ground rules" . He wanted to avoid papo having to maintain a seperate CVS, and would prefer patches function-by-function, rather than mega-patches like the current one. Marcos agreed - "remember that the patch was sent 'as is', as I had no time to filter out what I thought it won't get anyways." Derek said "we are willing to do what it takes to merge the repositories best we can - but we dont want 'resyncing' to be a regular thing... we want one repository and patches :)" Marcos, as the person responsible for re-syncing, was fully in agreement! Later, John said "We really, really need some way to tell when it's ok to go in and use the stuff and when we must write an accessor for it" . Jason said "if there's not an accessor now, then we didn't intend for it to have one" . James said "if it requires any type of logic at all to get what you require then you need an accessor" . Earlier, Derek emphasised that quibbles like this on papo's patch was not a rejection of the functionality - just some concerns over how it had been implemented. James agreed - "dude, there's some cool stuff in that patch" - "I'm happy to see a working scrollbar setup" for example, and "you're menubar patches inspired jcater to add trigger to flip them off and on (I think)" . Also, "the whole atomic* stuff has me seriously looking at replacing the TODO lock record here crap in datasources" . Earlier, Derek wondered if some of the issues with the patch were just a matter of personal coding style - like where to put braces or how much indentation to use. John asked about indentation. Jason said "we are actually *very* standardized on indentation... any variancies are oddities that someone likely committed - we do two space indents, with no tabs" - "I don't think we want patches that do nothing but fix indentation levels - but that is what we try to code at" . John said he would make this the standard for future papo patches. Later, Jason asked what the new "" was for - it seemed to be just the sames a label. John explained "textlookup _is_ a label, except that it goes and fetches the labelee in a dictionary table - rather like a cross between label and dropdown - the name might be less than perfect... but we couldn't find anything better :)" . James asked "how large are the dictionaries this thing is pulling from ?" John said it was typically used where doing a normal query would involve bringing back many rows of un-needed data. James agreed - "if we did this via a normal datasource with prequery="" and the result set it huge we kill memory (a shortcomming on our end)" - but "if we're scrolling thru a partlist and it's having to pull the values each time from the backend the UI would get choppy (a shortcomming of the way you've set it up, i think)" . However, "our datasources already have a very stupid cache system built in" which could help. Alternatively, "this could easily be accomplished as a post-change trigger via the simpleQuery function (i think)" or "could we merge the concepts and use the datasources for now and concentrate on improving the cache system in datasources" long term. Jason said that, "for *this* particular case" , the first way of doing it was the best "although I do want to see cache system improvements" . Jason also suggested using the "foreign key refresh" functionality recently added for dropdowns, triggered by the on-change trigger. John asked how this would work. James suggested "it'd be a style=label with the same attribs as a dropdown?" John asked "wouldn't that amount to overloading of label?" - not that overloading was necessarily bad. James said this "allows a uidriver that doesn't know how to deal w/ style=dropdown to still display a normal entry" - such as "the old, forgotten curses driver - it didn't do dropdowns but it did handle entries - our sample form had a dropdown where I could select Kansas in the dropdown - the text client let me type ks" , degrading gracefully. John said that "another reason for not fetching everything is that these things might change between the first fetch and the time one wants to display them, so in effect you have to fetch it every time anyway" . James agreed - "/me understands that you want the field to update if the backend data changes" . John said "this is taking one more step down the road of "dropdowns need their own datasource"" . Jason said this was the case anyway - "all references to a database are done via a datasource - when you consider what all else datasources can do this opens up a lot of possibilities - e.g., with our static datasources - we can have combo boxes that pull from a static set of values defined within the form, not pulled from a table - that's just one example - remember we are abstracted from a relational database" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.20Nov2002) , James apologised for not getting more patches applied yet. Marcos was not worried - he said he had printed off James' comment about "some cool stuff in that patch" "in big black letters" - "we're gonna get that sheet of paper framed :)" . 14. Getting involved with GNUe 14 Nov 2002 Archive Link: "[IRC] 15 Nov 2002" Topics: Why GNUe? People: Peter Sullivan, Jason Cater, Derek Neighbors, Andrew Mitchell Peter Sullivan (psu) said "I have added a "Get Involved (http:// www.gnuenterprise.org/community/involve.php) " page to the website - mainly for a link to a good external article" Jason Cater (jcater) wondered "does it involve "Send donuts"?" Derek said "we need a HOW DO I HELP PAGE - as that is number one question we get at info@gnue.org - hmmm this page might do the trick :)" . He asked for the contact address for documentation bugs/patches to be changed to docs-support@gnuenterprise.org rather than info@gnue.org, so they would feed directly into DCL via the e-mail gateway. The "other thing we need if it doesnt exist is either a 'license page' or better yet right on the home page - add somethign that says gnue tools/packages are GPL - as i know my pet peeve in getting new software is hunting down what license its under before downloading. We make lots of reference to freesoftware and even fsf, but i dont see clarification where we state we are GPL" Peter agreed - "most people should hopefully be able to guess that GNU* == GPL, but why not tell 'em outright?" He would add it to the front page. Andrew Mitchell (ajmitch) suggested "you may want to reassure people that using GNUe doesn't make their stuff GPL - as i've heard people worry about that before (interesting problem there)" . Derek said "true... maybe point to gpl faq as well" . Andrew asked "applications that hook into GNUe common, what license would they fall under?" Derek said "if you used common via 'import type statements and such' i think your resulting application would need to be GPL - if you used it via RPC it could be anything you like" as you were simply using rather than linking to the code. 15. Structure of Debian packages for GNUe 15 Nov 2002 Archive Link: "[IRC] 16 Nov 2002" Topics: Forms, Common People: Derek Neighbors, Jeff Bailey Derek Neighbors (dneighbo) suggested that the Debian packages should eventually be structured with a "gnue-forms-base" , with a seperate gnue-forms package for each user interface - "gnue-forms-gtk2, gnue-forms-curses, gnue-forms-wx, gnue-forms-html etc" , each with their own dependencies. Likewise, there could be a "gnue-common-base" and then seperate packages for each database driver - "to give people finer grain control of the install" . Jeff Bailey (jbailey) agreed - "I think that's the plan. certainly for forms anyway. The hard part with doing it too much is that people will never figure out what to install." Derek suggested "couldnt we do something like task-gnue - for the people that dont want control" . 16. Format Masks for GNUe 15 Nov 2002 Archive Link: "[IRC] 16 Nov 2002" Topics: Forms, Common People: Derek Neighbors, Jason Cater Derek Neighbors (dneighbo) continued to make progress on the item maintenance screen for GNUE-SB. He needed format masks, but according to the Developers' Documentation, it "looks like masks arent quite there yet" . He "just committed the item_maint.gfd that actually manages the items - so item management is now officially in gnue-sb cvs - its basic but its a start" . Later, he said he had worked around not having format masks for the moment, but wondered where this fitted in the Feature Plans - "we need to add number/ currency format/input masks - and documentation of masks :)" . Jason Cater (jcater) said "input masks are a BIG todo - we are very close - but no cigar quite yet (that should be in 0.5.0 plans, if not, I'll add)" , "although most of the backend is in there" . 17. Transaction stamping and getSequence 15 Nov 2002 - 16 Nov 2002 Archive Link: "[IRC] 16 Nov 2002" Topics: Forms, Common People: Derek Neighbors, Jason Cater, James Thompson Derek Neighbors (dneighbors) said "we need an easy way to do transaction stamping i.e. createdon/by, modifiedon/by" . Jason Cater (jcater) said there was "a REAL easy way to do transaction stamping - they're called Pre-Update and Pre-Insert triggers" - "same principle as setting the sequence value on an insert" . James Thompson (jamest) said "no, we need a real, real way :)" - just like the getSequence function, "you also have getTimestamp" . Coincidentally, Derek then came up against a case where he needed to use getSequence - "the classic 'the parent needs to create its id in order to store in the child' problem - do you have a sample form that this works in currently? " Jason asked "are they set up as master/detail? as it does all that behind the scenes if so" . Otherwise, "check the recipe's chapter in the dev guide" . The next day (http://www.gnuenterprise.org/irc-logs/gnue-public.log.17Nov2002) , Jason said "we have a createdon recipe - but createdby - who is "by" ?" James said "i think he wants the username of the logged in user" . Derek agreed - he "wasnt sure how to get that info via trigger" . Jason said "I know we can do that via triggers - but we probably need to add a convenience method" . Derek asked "what if you are using a custom 'authenicator'" ? He had "had to make all my 'transactional' stuff like that nullable for now in gnue-sb - until i get good trigger way to do it (or a convenience method) - then i will add it back in. /me thinks the date part is taken care of - if the db is setup properly" then the "created on" field "should use function that posts timestamp if null else nothing if there - and the modified should use function that posts timestamp no matter what - though it would be better to amke it in application i think" . 18. Auto sequences for primary keys in GNUe with mySQL 16 Nov 2002 Archive Link: "[IRC] 17 Nov 2002" Topics: Common People: Andrew Mitchell, James Thompson, Jason Cater, Daniel Baumann Andrew Mitchell (ajmitch) said he was trying to get a form to work - "like automagically inserting sequence numbers for master/detail" . James Thompson (jamest) said "that should be in the docs as a recipe IIRC" . Andrew noted "mysql's auto_increment doesn't work for master/detail, nor is it friendly :)" . James suggested "i think if you implenet sequenceNumber in the mysql driver then you'd have them - i _think_" . Andrew said "all i want is for the primary key (id) to be set for each record :) - and the value being set to be visible to the detail portion" . James said "that's automatic on a commit in common - however getting the initial value from the db isn't IIRC - if you do the assignment on the database side then you have issues IIRC" . He suggested "a db side trigger or a default value set to a function" . Andrew pointed out "triggers? what's that? this is mysql i'm using :)" James asked how the primary keys were being generated. Andrew said "at the moment, i have the primary key field set to auto_increment in the db - which sucks" . James said "hey! auto_increement == db side trigger! see, it's more advance than i give it credit" . Jason Cater (jcater) asked "do you know the name of the sequence it created?" Andrew did not think that sequences had names that could be referenced in mySQL. Jason went "googling for the answer" . Daniel Baumann (chillywilly) said "the lesson here kiddies - mysql sucks ass" . Andrew said he did not have much choice as he was "developing something for systems already with mysql" . Daniel suggested using the GNUe Schema Definition (.gsd) format to migrate to another database. Andrew suggested that it "would probably be easier for me to get the current id value, increment it, and save it back" - this would work with even simpler databases like sqlite and gadfly. James said the only sensible solution might be to get the GNUe triggers to handle assigning the primary keys - "create a table gnue_seed" . Jason suggested "that, or select max(id)+1 from table;" James added "then make the getSequence in the db driver read the seed via a select for update, update it, then have it print to the debug log "compensating for the lack of a sane database"" . Andrew commented that he "would have thought this would be a 2-minute thing with mysql, at most" . 19. Branching CVS for stable and unstable branches 17 Nov 2002 Archive Link: "[IRC] 18 Nov 2002" People: James Thompson, Derek Neighbors, Jeff Bailey James Thompson (jamest) warned "stay away from cvs head - it should still work but jcater has commited the start of changes for 0.5.0. I will be branching 0.4.1 tomorrow to apply some patches and will be releasing 0.4.2 of at least forms later in the week" . Later, Derek Neighbors (derek) asked "is new gnue in sid?" Jeff said "No - Maybe tommorow or the day after" , or maybe a bit longer for technical reasons to do with marking it as suitable for all/any of the Debian architectures - as a python application, it did not have to be recompiled from the i386 version of Debian to other versions. James Thompson (jamest) said "i hope to have a 0.4.2 out later in the week or early next - to address some issues and include some of the Papo stuff" . Jeff noted "That will solve the versioning problem nicely, then." He asked "Are the versions in CVS now going to be lexically sane" from then on? 20. GNUe Tools as a Microsoft Access replacement 17 Nov 2002 Archive Link: "[IRC] 18 Nov 2002" Topics: Forms, Reports People: Jason Cater, Derek Neighbors It was asked whether GNUe would be a suitable replacement for Access for someone desperately trying to break their M$ habit. Jason Cater (jcater) said "we are not an access replacement, per se - but could definitely be a substitute - we are comparable to the Forms and Reports parts of access (only with a lot more power, imho) - we don't have a database, so you'd use PostgreSQL, for example, as the database backend (or SAP-DB, ....)" . On the programming side, he said "we use Python for any triggers/events... it's a VERY newbie-friendly language - it would be a small step from" Visual Basic for Applications (VBA) to Python. Later, Derek Neighbors (dneighbo) added "always someone coming from msaccess - suggest that pgadmin has a MIGRATION tool - that will migrate all tables + data for them" from Microsoft Access to PostgreSQL - "which is a huge part of the work if they have not done anything too 'fancy' code wise (standard vb forms) - designer will putty in their hands especially with wizards. /me has half considered writing a vb forms (and delphi forms) conversion tool." He added "the biggest thing we are missing (and so is pgadmin) is a 'query designer' - i think eventually it would be nice to have that in designer(schema tools). If you all add the quick table view stuff (what someone was calling grid view) - the 'query designer' would be about only thing we are missing to be close to access replacement (imho) - and unfortunately i have seen a LOT of access ;)" 21. Encoding option for PostgreSQL to move from gnue.conf to connections.conf 17 Nov 2002 Archive Link: "[IRC] 18 Nov 2002" Topics: Common People: Dmitry Sorokin, Jason Cater, Arturas Kriukovas, ra3vat Dmitry Sorokin (ra3vat) noted that "encoding param in gnue.conf is only relevant for postgresql - so it understand specific pgsql names - encoding is the client encoding" and could have various values for normal ASCII or other specific character sets. Jason Cater (jcater) thought "that belongs in connections.conf if its specific to postgres - actually I thought it was already there?" Dmitry said this dated back to before there was a separate connections.conf file, and agreed it should be moved. So did Arturas Kriukovas, who said "i would like to believe there was some reason why i did put it here, but i don't remember :\" - he would fix "it in a few days" . 22. Options for tabbed forms 17 Nov 2002 Archive Link: "[IRC] 18 Nov 2002" Topics: Forms People: Dmitry Sorokin, Jason Cater, ra3vat Dmitry Sorokin (ra3vat) asked "what is caption attribute for page?" Jason Cater (jcater) said "for notebook pages, that can be the notebook tab caption/label - if missing, and you have a notebook page, caption defaults to the name value" . Dmitry asked "what does transparentBlock attribute mean?" Jason explained this controlled the behaviour of the tab key - "If you are on the last field of a block and there is another block in the form then if transparentBlock is true a tab will take you to the next block - if false it will take you to the first field of the same block" . Dmitry asked how you could get to the other notebook tab in this case. Jason said the Page Down key always took you to the next tab - for triggers, "I think you can do a form.setFocus(otherBlock)" . 23. Scrollbars in Forms 17 Nov 2002 Archive Link: "[IRC] 18 Nov 2002" Topics: Forms People: Dmitry Sorokin, James Thompson, ra3vat Dmitry Sorokin (ra3vat) asked "how to set scrollbar over myltirow entry?" James Thompson (jamest) said "our code doesn't support scrollbar's yet - papo guys seem to have it as part of their patch - if time permits I'll be going into the 0.4.1 branch - and then into head" . Dmitry asked "it seemed to me you did some work on scrollbar already?" James admitted "i added the code it display it but never tied it into the event system" so it would respond to mouse clicks or key presses like a "proper" scrollbar. 24. Multi-column unique constraints in SQL 17 Nov 2002 Archive Link: "[IRC] 18 Nov 2002" Topics: Common People: Nick Rusnov, Jason Cater, James Thompson Nick Rusnov (nickr) asked "theres no way to express in SQL the kind of uniqueness that says 'the combination of these two columns must be unique' is there?" - "like a constraint" but "instead, this row is uniquified by two columns instead of just one" . Jason Cater (jcater) asked "isn't it just "unique (field1, field2)"" James Thompson (jamest) agreed - "you can create a unique index on 2 fields or setup the primary key constraint at the end of the table def instead of behind one field" . Jason noted that there was a distinction between unique and primary key - "unique does not enforce nullness like primary key does - so if you want "unique and not null" you need to specify not null for those columns" . He used multi-column unique constraints quite often - "example, we sell magazines - so we have a table that holds our offers. it contains the magazine id and the number of issues - so only one combination of (magazine, issues) can exist in that table" . "there can be plenty of 12 issue magazines - and plenty of offers for People magazine - but only one offer for People at 12 issues" . 25. Twisted as an alternative to GNUe Application Server 18 Nov 2002 Archive Link: "[IRC] 19 Nov 2002" Topics: Application Server People: Bill Gribble, Derek Neighbors Bill Gribble (grib) asked "have you guys thought about working with twisted? seems like there could be a lot of redundancy between gnue and wtisted." Derek Neighbors (revDeke) said "i think we existed long before twisted so one should ask why isnt twisted working with us :) - specifically they iirc are much more web oriented. Likely the appserver team would be the best to address 'twisted' stuff" . Bill said "seems like there's mission overlap but not enough to point a finger and say somebody's wasting time. they don't handle any of the forms/ reports/etc, just the wiring and app-service." Derek agreed - "i think they are more similar to our appserver than gnue as a whole - i think jan or jcater mentioned offering an appserver provider for them or something" . Bill said "anyway their stuff looks pretty interesting. it is sort of kitchen-sinky and the code/doc ration is a little high but I think there's useful stuff." 26. GNUe Small Business and project papo - overlap? 18 Nov 2002 Archive Link: "[IRC] 19 Nov 2002" Topics: Why GNUe?, Small Business People: John Lenton, Derek Neighbors, Peter Sullivan John Lenton (Chipaca) asked why Derek Neighbors (revDeke) had started gnue-sb as a seperate project, rather than working with project papo. Derek said he had understood that papo was aimed specifically at the Argentinan market and was in Spanish. John explained "the PAPO team's medium-term objective is to replace an Argentine-specific ERP. There is, as far as we know, nothing in the design of PAPO that's Argentina-specific - the screens are in spanish because that is _our_ target audience, but" internationalisation was planned for after November. Derek said that "when i looked at papo it wasnt what i was after - specifically you appeared to be making what we want final GNUe to be" - "with gnue-sb we plan to be much simpler than what official end game gnue would be - specifically there is no intention to use appserver with it - if you think we can work together great" . John said that papo had been started as a seperate project, as the GNUe tools were mostly there, but the packages were "a *long* way away of what we need" . Derek agreed - that was why he had started gnue-sb. John said that papo was "pointed more towards small-to-medium organizations, while gnue (as it name implies) is aimed at fully fledged enterprise-level stuff, that is, IOHO, over papo's head - which is why gnue-sb called our attention... it seems to be more or less what papo is getting to be" . Peter Sullivan (psu) said that some of the discussions about adding functionality to the Tools had indicated "that papo has compatible but different way of approaching things" - this wmight have been even worse on the Packages, and lead to a fork. He asked whether papo's long-term goals included AppServer. John said "long term appserver is by far the cleaner approach, but there is nothing wrong with 2-tier if the needed functionality is hidden away in dbsig, for example" . Peter felt that the overlap, if there was one, was between the GNUe Packages and papo rather than between gnue-sb and papo - but this had always been recognised. John felt "there are some rough edges between what papo aims to do and what gnue seems to aim to do, mostly related to who the intended users are, but those are all confined to the UI AFAIR" . Derek said that papo appeared "much more geared to 'manufacturing' - my needs are more on wherehouse management than assembly line" , which was the focus of gnue-sb. But he had "no problem working together" . John said that papo's entity relationship diagram (ERD) "tries to contamplate SB product mangling, but that's about it" - he was going to set "up a friendly web thingie to browse our ERD, as it is rather huge" . He used Zot for ERD documentation, and was even considering writing a zot2gsd to enable GNUe Schema Defintion Files (.gsd) to be automatically converted from Zot. Derek said that the point of gnue-sb was to ramp something up quickly - "/me doesnt have time to debate argue and make things feature complete for the world - but rather something that is usable and shippable and easily extensible - so while i have no problems working papo or other projects, very much gnue-sb is a [no] nonsense 'get it done' application" . The alternative approach - "long toying with trying to incorporate a ton of varying opinions - that is what GNUe official packages will tackle :)" 27. Status of Curses (text-only) version of Forms 19 Nov 2002 Archive Link: "[IRC] 20 Nov 2002" Topics: Forms People: Jason Cater It was asked what the current state of the console version of GNUe Forms was. Jason Cater (jcater) said "very close, but still a few issues - I am looking to design gnue forms and have a curses based forms client." There were "some ( http://www.gnuenterprise.org/~jcater/curses-intro.png) screenshots (http:// www.gnuenterprise.org/~jcater/curses-login.png) some screenshots from a couple of weeks ago. Current issues with curses: button support hasn't been finished, no notebook page support - um - and a few other small things - but it's VERY close. I can actually use it to edit and save data. oh, yeah, the menubar doesn't work - that and the buttons are the biggies right now." 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.