*** reinhard has joined #gnuenterprise *** johannesV has joined #gnuenterprise good morning all good morning so you were about one second faster than me ... :) :) wow jcater is back! hmm, interesting ... what would be the fastest way to get a sequence of "selected" (key,value) pairs from a dictionary ? once for large dicts and once for small dicts ... we could use a for-loop building a result of tuples might be something like [(key, dict [key]) for key in dict.keys () if ...] or we could do:def useMap (dic, keys): return zip (keys, map (operator.getitem, [dic] * len (keys), keys)) well, that for loop using an "if key in selection" is a bit slow on a dictionary with 10000 key/value pairst the loop runs 4 times longer than the zip/map-combination oh for dictionaries with 10.000.000 keys it's the zip/map is 20% slower than the loop you're at data.py rewrite? so it depends on the size reinhard, yes ... i'm at restructuring data.py but i can profile your loop-construction too ok, interesting well, my loop was more or less a guess given a dict, and a seq of keys running something like [(key, data [key]) for key in selection] performs equal to the zip/map for small dicts and better for large dicts so using list-comprehension looks like best-choice here hmmm python performace is full of mysteries :-) but it's clear, since we have to create a seq of pointers for the map, which grows very big for large dicts but, meanwhile i'm ok with the list-comprehension (since it's even more readable !) *** holycow has joined #gnuenterprise *** johannesV has quit IRC *** kilo has joined #gnuenterprise *** SachaS has joined #gnuenterprise good morning good morning kilo Hi SachaS where are you now on your orbit? Liechtenstein for another 2 days. probably move to us may 3rd you are like a secret agent. one can never be sure where you are exactly i would prefer to do some software programmer work :) eventhough secret agent is probably fun as well. aka james bond. vote: would you prefer programmer job or jamesbond job? jamesbond :) u? same 8-)) though i would prefer whisky, not martini haha *** jcater_ has joined #gnuenterprise *** Vee has quit IRC *** dneighbo has quit IRC *** Vee has joined #gnuenterprise *** dneighbo has joined #gnuenterprise *** dimas has joined #gnuenterprise *** johannesV has joined #gnuenterprise *** elwis has joined #gnuenterprise *** elwis has left #gnuenterprise *** jcater_ has quit IRC *** holycow has quit IRC *** holycow has joined #gnuenterprise *** tiredbones has joined #gnuenterprise *** holycow has quit IRC *** lekma has joined #gnuenterprise hi all hi lekma tinyerp 2.0 is out http://www.tinyerp.org/download.php it looks promising http://www.tinyerp.org/screenshots.php wow it's even in Python :) yep impressive isn't it bbl lekma: is tinyerp based on gnue? nope it looks very similar but looks different *** dcmwai has quit IRC Traceback (most recent call last): File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 68, in python_to_rpc return [python_to_rpc (element, exception) for element in value] File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 68, in python_to_rpc return [python_to_rpc (element, exception) for element in value] File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 68, in python_to_rpc return [python_to_rpc (element, exception) for element in value] File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 68, in python_to_rpc return [python_to_rpc (element, exception) for element in value] File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 68, in python_to_rpc return [python_to_rpc (element, exception) for element in value] File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 68, in python_to_rpc return [python_to_rpc (element, exception) for element in value] File "/usr/lib/gnue/common/rpc/drivers/xmlrpc/pw_xmlrpc/typeconv.py", line 89, in python_to_rpc raise exception, repr (value) InvalidParameter: you pass an object over RPC and, even more you pass a NULL object over RPC yep but i don't ask for a null object to be passed kilo what is the status of the packages? they are withuot status 8-))) Traceback (most recent call last): File "/usr/lib/gnue/appserver/geasSessionManager.py", line 290, in commit s.commit () File "/usr/lib/gnue/appserver/geasSession.py", line 325, in commit self.__connection.commit () File "/usr/lib/gnue/appserver/data.py", line 779, in commit for (table, row) in self.__orderInserts (): File "/usr/lib/gnue/appserver/data.py", line 838, in __orderInserts result = self.__orderByDependency (records) File "/usr/lib/gnue/appserver/data.py", line 924, in __orderByDependency raise CircularReferenceError CircularReferenceError: Data contains circular references ??? this one is funny i only try to commit one record and ther is no creation whatsoever i thin the pb is the class holds a fk to itself yeah, great ... a fish-hook class and i thought once there would be a pb with that .... lekma, i can look at this a bit later today ... thx bbl *** kilo has left #gnuenterprise johannesV: is there a quick workaround?? i'm stuck with this plz just a sec, as i've local changes in data.py atm ok, test-case created and pb reproduced ... will create a patch now .. thx lekma, are you using current svn ? yep 7271 ok, the quick fix is quite simple but does not solve the big picture (like a = new ('foo'); b = new ('foo'); a.circ = b) but it would do it for single instances as you've described it ok but if you can wait another 15 minutes and another cup of coffee i could do it complete .. (at least i think so) i can'y really wait :( i have to demonstrate the order process and i didn't test it for long and now i'm stuck with this so if ther's a quick (and dirty) workaround i'm all for it s/can'y/can't ok Index: data.py =================================================================== --- data.py (Revision 7270) +++ data.py (Arbeitskopie) @@ -896,7 +896,7 @@ for (table, deps) in tables.items (): if self.__constraints.has_key (table): for constraint in self.__constraints [table].keys (): - if tables.has_key (constraint): + if constraint != table and tables.has_key (constraint): deps.append (constraint) # Now create an ordered sequence taking care of dependencies thx that's all ... but with this patch you have to make sure to keep a proper order in the added instances so you have to do parent = new (), child = new (); child.parent = parent then everything's fine the 'good' solution will be: keep a dict of the fishhooks, don't add hooks to deps, order records in fish-hook-classes and return the properly order tuple-sequence but this would imply having not only the constraints available but also the property which implements that constraint, so data.py is able do create a dependency tree based on that property *** johannesV_ has joined #gnuenterprise *** jamest has joined #gnuenterprise *** johannesV has quit IRC reinhard: maybe you want to remove my old gnue appserver dev pdf manual from the appserver page. *** titopbs has joined #gnuenterprise SachaS: ok Traceback (most recent call last): File "", line 15, in MRP File "/var/lib/gnue/gecocer/ProdMRP.py", line 708, in prodMRP self.__session.commit () File "/usr/lib/gnue/appserver/language/Session.py", line 212, in commit self.__sm.commit (self.__session_id) File "/usr/lib/gnue/appserver/geasSessionManager.py", line 290, in commit s.commit () File "/usr/lib/gnue/appserver/geasSession.py", line 325, in commit self.__connection.commit () File "/usr/lib/gnue/appserver/data.py", line 799, in commit backend.update (table, {'gnue_id': row}, fields, recNo) File "/usr/lib/gnue/common/datasources/drivers/Base/Connection.py", line 177, in update self._update (table, oldfields, newfields, recno) File "/usr/lib/gnue/common/datasources/drivers/DBSIG2/Connection.py", line 450, in _update self.__execute (statement, parameters, recno) File "/usr/lib/gnue/common/datasources/drivers/DBSIG2/Connection.py", line 383, in __execute raise Exceptions.ConnectionError, \ File "/usr/lib/gnue/common/apps/errors.py", line 265, in getException message = unicode ("%s" % aValue, i18n.getencoding ()) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 201: ordinal not in range(128) gcdcvs --connection=gnue sample.gcd ProgrammingError: ERROR: relation "gnue_module" does not exist cannot (and should not as I have other things to do :) setup appserver anymore lekma: your db seems to return an error message with non-ascii characters SachaS: you have to run gnue-setupdb[cvs] first okies. lekma: can you check what aValue holds there? yep gsetupdbcvs does not get called in the appserver/samples setup scripts SachaS: right SachaS: this sample script depends on gnue-setupdb being executed first as described in Configuration.txt configuration.txt (with lower-case c) in doc dir :) ur right. and its working again. Chekov is new Pavel Andreievich Checkov *** tiredbones has quit IRC bbl there is a week of no real work coming up. maybe i should write a gnue app :) *** wendall911 has joined #gnuenterprise *** elwis has joined #gnuenterprise *** SachaS has quit IRC reinhard: i couldn't reproduce the previous traceback *** elwis__ has joined #gnuenterprise *** elwis has quit IRC *** elwis__ has quit IRC *** jcater has quit IRC *** jamest has joined #gnuenterprise *** elwis has joined #gnuenterprise bbl *** johannesV_ has quit IRC question: when not using the appserver, I suppose I have to write all the logic and SQL pieces myself and put into triggers, or are there gnue magic hiding anywhere? Suppose a dive down into gnue-common would help.. ;) you can write standard python apps that access gnue-datasources Yes, that's my thought. No gnue-objects (when not using appsever) simple pythoncode and SQL syntax in the triggers *** elwis has left #gnuenterprise *** lekma has quit IRC *** tiredbones has joined #gnuenterprise *** titopbs has quit IRC jamest: after next svn up please test if your SELECT * still works, had to change something reinhard: quick question if you have a sec yes reinhard: My friend just purchased a bookstore and has contracted with me to work out inventory systems. They eventually may want to do barcode scanning, etc. What is your advice on building this on gnue in its current state? reinhard: I know inventory would be simple, but just wondering if I'll hit a snag if they ask for barcode scanning. wendall911: that's what gnue-pos in contrib was written for IIRC my advice would be to talk with jcater as he is handling a bookstore with gnue :) jamest: oh, cool barcode scanning is nothing special reinhard: oh, sweet the scanner appears as a keyboard to the computer jamest: oh, that's simple then most i've seen just plug in between the scanner and the keyboard and in my case i just set it to send a return after the scan jamest: then just auto fills the proper field yip ah, sweet and by adding the it jumps to the next field in forms very cool, been looking for an excuse to gnue for some time now :) jcarter been around at all? earlier today i saw him in here ok, I'll try to catch him tomorrow My friend won't close on the puchase until Thursday anyhow, but I need to dig into writing up a plan thanks guys :) *** sjc has joined #gnuenterprise *** nickr has quit IRC *** nickr has joined #gnuenterprise *** titopbs has joined #gnuenterprise *** kilo has joined #gnuenterprise kilo: if you have time can you please check if the interbase driver still wors? works wrt displaying the number of records in the form and wrt setting boolean fields i will check it tomorrow morning, now i'm crazy coding VB and MSSQL... ok thanks * kilo thanks Reinhard for cleaning up parts of common :) reinhard: fyi the file in gnue.common.datasources GLoginHandler & Exceptions have labeled wrong inside the file. Exceptions has GDataObject.py yep I know GLoginHandler has Gconnections.py I'm not yet that far with cleaning up :) but thanks anyway reinhard: I've been working on a GrapViz diagram of Common. I should be done in a day or two, would it be possible for you to review it? wee parts of it :) some parts of common are still close to black magic to me reinhard: My first phase is to build a dia. of inheritance only. well, I will do my very best :) reinhard: where do you want me to send the dia..It's in postscript format. *** kilo has quit IRC *** kilo has joined #gnuenterprise I just finish dia. the Common package and was going to stat Forms next. Would people want me to do something different? s/stat/start/ tiredbones: please send to reinhard at gnue dot org and don't let somebody stop you ;-) (as to "Would people want me to do something different?" ) ok, I'm going to review once more tonight. I got to start dinner now - stuff salmon mmmh *** wendall911 has quit IRC good night all *** reinhard has quit IRC *** kilo has quit IRC *** kilo has joined #gnuenterprise *** kilo has quit IRC *** jcater has joined #gnuenterprise *** titopbs has quit IRC *** titopbs has joined #gnuenterprise *** jcater has quit IRC *** sjc has quit IRC *** dimas has quit IRC *** titopbs has quit IRC *** jamest has quit IRC *** jamest has joined #gnuenterprise *** holycow has joined #gnuenterprise *** jcater has joined #gnuenterprise reinhard: if you read logs... Commit r7277: Don't copy _hasFieldReferences to DataObject, referenceField is called too late. 1. DataObjects can be used standalone from DataSources 2. That was a copy-by-reference, not a copy-values err, scratch #2 I misread it fieldReferences is copy-by-reference anywho, on #1, that should probably be if hasattr(self._dataSource) and self._dataSource._hasFieldReferences *** jcater has quit IRC *** jamest has quit IRC *** dcmwai has joined #gnuenterprise *** dimas has joined #gnuenterprise *** alandd has joined #gnuenterprise I need to become a GNUe presenter by April 7th dneighbo is not available that evening. I would like to have a presentation to work from. Anyone have one current enough to be good? Presenting to PLUG Devel SIG, developers. We are starting up a project to be done by members of the group and GNUe is one of the possible platforms for the project. hi alandd The project is an InstallFest Planner application. Small to start with but hope to grow it into a full conference/bigThing event planner, if the project takes off. dimas: hello! The group, so far, has discussed development methodologies and how to do requirements. The leader is trying to form a group of core developers who will probably dictate the development platform and technology. if you intend to use appserver - reinhard did presentation for his lug and also use it for fsfe but I want them to see GNUe as a possibility. an n-tier architecture would be needed for the BIG event planner, though client/server is probably good enough for the first phase of just a simple InstallFest support. Therefore, appserver is important but not immediately. I think I am looking for an overview of the project, goals, tools and then a sample application creation session. so few working examples for 2-tier would be enough? yes, I think so. * alandd is listening to the "National Treasure" movie sound track. Good stuff? ?/! it is possible to make simple InstallFest Planner app and show how it was done and where it could grow I am very rusty with gnue, having not retained my skills from a training class dneighbo did 2 years(?) ago for the group. Maybe I can come up to speed quick enough. I'll have to spend my saturday on it, I suppose. I figured it will take some work on my part to get back into it. I just thought to spring board from a pre-built presentation for the background and basic info. does reinhard's presentation have gnue project history/overview and basic info? I could borrow those kinds of slides without using the appserver part. i do not know details about presentation but surely he himself will read your questions from the backlog i did few simple 2-tier apps for internal use and now i'm trying to use appserver as much as possible I hunted his email from the website and will email him now. I'll blame you for the tip. :) /msg reinhard i'm sorry emailed. Hope he is not too hard on you. :^) alandd: write to reinhard that i could always try to answer any your gnue related questions if it decrease my guilty :) heh! I'll probably be stopping in with questions. Gotta find a box to install on since I don't have it going right now. AND then find a box to have it installed on that I am willing and able to take to the presentation. dneighbo spends too much time with soccer! ;^) * alandd needs a notebook computer better than a 33mhz 486 :) brb *** dimas has quit IRC *** dimas has joined #gnuenterprise thanks for the help. I must be off now. *** alandd has quit IRC *** mnemoc has quit IRC