bigbrother joined #gnuenterprise. psu_: I'm not sure ... what did he look like? ;) jbailey (jbailey@CPE014260028338.cpe.net.cable.rogers.com) joined #gnuenterprise. psu_ (~psu@manorcon.demon.co.uk) left irc: Read error: 113 (No route to host) reinhard (~rm@M693P012.adsl.highway.telekom.at) joined #gnuenterprise. jbailey (jbailey@CPE014260028338.cpe.net.cable.rogers.com) left #gnuenterprise ("Client Exiting"). reinhard (~rm@M693P012.adsl.highway.telekom.at) left irc: Remote closed the connection reinhard (~rm@M693P012.adsl.highway.telekom.at) joined #gnuenterprise. dres (~dres@mail.lewismoss.org) left irc: Read error: 104 (Connection reset by peer) reinhard (~rm@M693P012.adsl.highway.telekom.at) left irc: "There are two types of people: those who divide people into two types, and those who don't" reinhard (~reinhard@62.47.246.140) joined #gnuenterprise. ello wassup dudes reinhard: you ever get an answer for your destructor problem? for a builtin-in method in python to destroy resources (close db connection) I think you can use __del__ that method is called before the object is garbage collected, afaik Action: chillywilly checks reinhard's pulse ;) Action: Isomer calls an ambulance also, for private attributes starting with "__" is sorta private in that they get mangled like self.__attribute is mangled to self._Class__attribute attributes like _attribute are just a convention that means hey don't use this directly....I sort of think of them as "protected" attributes Action: chillywilly has no idea if reinhard is listening, but perhaps he will read the log of course there's no real protection in python objects siesel (jan@dial-195-14-226-56.netcologne.de) joined #gnuenterprise. hi all hey chillywilly: thanks i am back now hey siesel Action: reinhard was reading the python tutorial :) ;) hi reinhard, hi chillywilly. Action: chillywilly has the python ref manual that neilt mailed him Action: chillywilly has also been reading dive into python siesel: you tried test.py lately? it traceback's on ORDER BY clause because the "setSort" is documented to take a list as argument so it gets passed ["zip"] then geasList assigns this to _datasource._order_by which seems to expect a string hey has xml been deemed the thing that is going to be used for object descriptions? oh, thats right. I forgot to check test.py imho this is nyd btw, could someone explian what liek 0.0.1 description in ROADMAP means by "pass through" siesel: i would like to keep it the way that setSort accepts a list why do we need special fields? ok, I will patch it. no one wants to do odl or odlml chillywilly: pass through means that we have no object description I just wasn't shure if it makes sense to convert a string into an array and back into a string again. siesel: why string->array? (i understand array->string) chillywilly: please add you're feature requests to ROADMAP. okey dokey well I am going to run because: Nick change: chillywilly -> cw-away ah gotcha in the appserver driver in common however it makes sense IMHO because there will be the translation from field name to column name in between not to mention that someday appserver will support order by calculated fields or by indirect fields :) siesel: if you agree i would like to not use the term "geasv2" and rather use "appserver" i don't like to be reminded of our failed experiment so often :) hehe but what is the abbrivation of appserver ? GEAPS? GAS? AS? APS? geas ah a "geas" driver already exists can't that one be deactivated and the new one called "geas" ? btw i am talking about common/src/dbdriver in case you didn't figure :) this could be done. no pressure was just a thought :) Possibly we should change dbdriver/geas to dbdriver/oldgeas and dbdriver/appserver to dbdriver/geas. agree did the forms example work? did not test yet :( i tried to run the geas server and the geas client on two different machines and ? where i found out that i can't do this because i don't have 2 machines w/ python 2.x :( ok. we could do a test. I start an appserver. give your host access through the firewall and you can test the example. ok a sample connections.conf for use with dbdriver/appserver: [geasv2] comment = geas v2 provider = appserver rpctype = xmlrpc host = localhost port = 8765 transport = http which implementation of xmlrpc is "xmlrpc" is it the one that comes with woody? yes. if you want the variant which will support "https" then you should enter "rpctype = pw_xmlrpc" (pw = Python works) DB000: File "/home/rm/prj/gnue/.cvsdevelbase/gnue/common/GComm.py", line 50, in attach DB000: adapter = driver.ClientAdapter(params) DB000: File "/home/rm/prj/gnue/.cvsdevelbase/gnue/common/commdrivers/xmlrpc/ClientAdapter.py", line 139, in __init__ DB000: raise GComm.AdapterInitializationError, \ DB000: gnue.common.GComm.AdapterInitializationError: Unable to initialize the XML-RPC interface at http://195.14.226.56:8765/ DB000: Exception exceptions.AttributeError: "ClientAdapter instance has no attribute '_client'" in ignored sorry. I thought I commit the ClientAdapter if its a bit more complete. one second.. beam(cvs) me up.... please tell me when commit is done (i don't have mail on this machine) ok. now 8765 will passed as integer instead of type=string. commit done thanks test 1 localhost... works great test 2... after loading all records adding records, changing records etc. should be done in cache. the commit will write it back to appserver siesel: you should have my address in your database now yes. got it. Action: reinhard can't believe it not sure if jamest believes this if we tell him iirc geasv1 took over a year until it worked with forms this way :) :) :) maybe he could set up a demo server on ash yes, I thought so too. But its a 'little' security risk. just a question if i start gacvs then 3 processes show up in "ps -ef" why is this? just want to understand because gacvs forks two time -> 4 processes. the first process is still bound to the shell, so it will be killed to move gacvs into background. why does it do that? It would work with two processes too, but then the real gacvs process would be a direct child of the shell too, so it has to be forked again to be more stable... something like that... you should ask jcater ok Action: reinhard was just curious # For an overview of what we're doing here, # check out the Unix Programmer's FAQ at: # http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16 can be found in GServerApp.daemonize thanks do you have any ideas how to send conditions to the appserver? i think i have to look at GConditions first if I understand it right the actual conditions which will passed to GDataObject are some kind of object tree. yes which would be a bit complicated to transfer over RPC. which is the only usable idea i saw until now to put conditions into a data structure other than a string that has to be parsed oh i see Action: siesel has to look at GConditions too Action: siesel has an idea GConditions are single statements which are connected with "AND"s and "OR"s esands (~nic@mdr1-port5.jetstart.win.co.nz) joined #gnuenterprise. why not transform this conditions in a standart form (a^b^c)v(d^e^f) going this way we would just transfer a table instead of an object tree (a AND (b AND (c OR d))) oops you think this transformation is doable automatically? and what will we pass to the database then? principaly no problem. and in our case also no problem, because forms is using this (a AND (b AND (c OR d))) form. we take this table and transform it back into a GConditions object tree. ((a OR b) AND c) can be different in performance than ((a AND b) OR (a AND c)) however in business applications i found most of the queries being only (a AND b AND c AND d) yes. but to my knowledge forms is just building ANDs, lol yes what you said :) i have another question btw. the other way would be a separate geasQuery or geasConditions object which.... Action: siesel is listening if we have a list that is generated with a condition say "zip = 1000" and then we can do a "insertNewInstance" into that list and let zip = 2000 for that instance is that correct? will that instance then still be in this list? this depends on our implementation. I would prefer to allow this as a default. And have an optional constrain for a list, where I can say. zip has to be "1000" my thinking was to make the method to create a new instance of a class not be a method of geasList but of geasSession but now i see that it makes sense to put it into geasList when i think about how forms works mumpf (seb@modem-166.bicolor-angel.dialup.pol.co.uk) joined #gnuenterprise. to be honest, I don't like to have it in geasList too. i think it makes sense but geasSession isn't good either. because geasList is the list of instances that can be scrolled through in the form maybe the correct thing would be the new instance is a member of the list as long as it is not committed I would like to have a geasClass in between, which also holds the class definition and can create new instances and as soon as it is committed it disappears if it doesn't match the condition yes ToyMan (~stuq@c5300-4-ip68.albany.thebiz.net) joined #gnuenterprise. it doesn't have to be a member of geasList, because every new record in forms stores an pointer to the new created geasInstance, but I still would seperate the functions which are in geasList now into two classes. i really want to keep the interface clean and simple If I create a new list, just by executing a query. then it really should be a new List and not the same list populated with new values. hi, i'm trying to get to grips with gnue forms-designer. the "properties inspector" for an "Entry" does not let me edit things like i can for other objects. bug or feature? mumpf: this is a bug. You have to make the windows so big, that there is no scrollbar anymore. then you can edit things. siesel: sorry i didn't understand what you mean with your last sentence siesel: thanks, that's fine now! keep the good work up! mumpf (seb@modem-166.bicolor-angel.dialup.pol.co.uk) left #gnuenterprise (""bye ""). dbdriver doesn't delete an geasList object after a new query is builded and executed. It just populates the list with new values. ah it only re-calls populate? yes. setQuery and then populate. ok i don't think this is wrong though um let me rephrase why do you think this is wrong? it is ok, if you have just one client which access only one table at one time. I would prefer a geasClass which could generate Iterators, or something like that. But geasClass vs. geasList("className") is a Streitfrage. hehe something like docbook vs texinfo ? /Streitfrage/something everybody has differnt opinions on/ ;) something like odmg.txt and just datasource+RPC ;) lol btw we need to change INSTALL for the release as current INSTALL file explains how to run samples from cvs yes. and there should be a setup.py. however running samples in installed version will be different you ever played with distutils? never ever the next thing on my todo list is a debian subdir (which makes me frighten) you got any clue what the stuff in __init__.py is for? making binary packages (for debian, for redhat, for win[ouch]) is something that can be delegated easily IMHO once we have a source release yes. 1. __init__.py is a marker that the directory is a module. 2. the code in __init__.py is a kind of main part of the module. yeah found out that already however the appserver/src/__init__.py contains a lot of variables that are set there you know where they are used? its a copy form forms/src/__init__.py ah its mainly setting version numbers /mainly/only/ rm@roo:~/prj/gnue/appserver$ find . -name GEAS.grpc ./src/GEAS.grpc ./grpc/GEAS.grpc is that correct? or is src/GEAS.grpc obsolete? yes src/GEAS.grpc is obsolete Action: siesel slaps himself ok done :) you've been faster. ;) in c the construct "if x" is identical to "if x != 0" is this the same for python or not? hmmm should be. dsmith (dsmith@oh-strongsville5b-143.clvhoh.adelphia.net) joined #gnuenterprise. ok todo before 0.0.1: * test, try to make appserver so stable that it doesn't traceback at all * find out what the variables in __init__.py are for * write a "setup.py" * write an "INSTALL" * release gnue-common --- i will continue with the first point tomorrow ah yes and ok, I'm modifieing forms/setup.py at the moment. * extend test.py to show more features the variables in __init.py__ are used to setup the version which is shown at appserver startuo startup bed.call(reinhard) ah ok. night all siesel: thanks for your great work :) reinhard (~reinhard@62.47.246.140) left irc: "Client Exiting" dsmith (dsmith@oh-strongsville5b-143.clvhoh.adelphia.net) left irc: Remote closed the connection rdean (rdean@chcgil2-ar2-4-64-030-076.chcgil2.dsl-verizon.net) joined #gnuenterprise. rdean (rdean@chcgil2-ar2-4-64-030-076.chcgil2.dsl-verizon.net) left irc: Read error: 104 (Connection reset by peer) siesel (jan@dial-195-14-226-56.netcologne.de) left irc: "Eject! Eject! Eject!" esands (~nic@mdr1-port5.jetstart.win.co.nz) left irc: "[BX] Time wasted: -11 days 12 hours 2 minutes -37 seconds -70 milliseconds" ToyMan (~stuq@c5300-4-ip68.albany.thebiz.net) left irc: "Client Exiting" dneighbo (~dneighbo@cpe-24-221-112-50.az.sprintbbd.net) joined #gnuenterprise. Maniac (~User@h24-82-132-209.wp.shawcable.net) joined #gnuenterprise. riandouglas (~Rian@205.252.49.10) joined #gnuenterprise. alexey_ (~Alexey@techkran.vladimir.ru) joined #gnuenterprise. jcater_ (~jason@HubA-mcr-24-165-193-24.midsouth.rr.com) left irc: "Client Exiting" dtm ([QE7R9+LmT@ip55.promontory.sfo.interquest.net) left irc: Remote closed the connection dtm ([sdWcP6766@ip55.promontory.sfo.interquest.net) joined #gnuenterprise. --- Mon May 27 2002