*** johannesV has joined #gnuenterprise good morning morning *** reinhard has joined #gnuenterprise good morning all *** btami has joined #gnuenterprise good morning again ... :) good morning hi what package contains texi2pdf ? texinfo in debian it's tetex-bin thx *** yure has joined #gnuenterprise it's in tetex package here in my distro, grrrrr *** kilo has joined #gnuenterprise *** Shufla has joined #gnuenterprise hello :) good morning *** btami_ has joined #gnuenterprise *** kilo has quit IRC *** btami has quit IRC *** Shufla has left #gnuenterprise *** kilo has joined #gnuenterprise *** dimas_ has joined #gnuenterprise *** btami_ has quit IRC *** kilo has left #gnuenterprise *** dimas__ has joined #gnuenterprise *** yure has quit IRC *** jamest has joined #gnuenterprise *** siesel has joined #gnuenterprise i'm in and out, so i just throw in some questions and will be back later to read your answers (if any) ... how can i access the trigger-properties of GF* objects ? like a GFEntries' navigable property ? or, just with other words, how do i access a GFEntry instance at all from withing a form's trigger-code ??? you should usually be able to just reference the name of the gfd object as the GF* objects are mapped to the trigger namespace using the name="" attrib of the tag in the gfd i thought properties mapped the same way actually gnue gnue-samples/testcases/trigger/trigger.gfd reinhard: on that layout stuff for forms are you taking out the char based placement? and I think we must leave that char based placement in for compatibility *** johannesV_ has joined #gnuenterprise *** dimas__ has quit IRC *** johannesV has quit IRC sorry, back now i didn't see any type of anchoring, is that right? yes and no I think we will need some way to define which control will be resized to what extent but there will be useful defaults for most cases like all text entries can resize horizontally multi line entries can resize vertically, single line entries can't etc (is this what you were asking at all??) yes did you happen to look at that matsie flash demo in netbeans? they use a custom layout mgr that uses anchors on top, left, right, bottom I was not able to find 20 minutes time for that yet can you explain in a nutshell how this anchoring works? reinhard, i think that is the same concept as it was used in delphi i can try :) you can nest panels that contain widgets typically a widget or panel can anchor at 1 or 2 side which top and left would mean that the placement of that panel or widget would link to closest one to the top and closest to the left IIRC this is similar to basic layout mgr I used to use in motif then you can set a widget to resize I *think* this means if I'm anchored to the top and left and I'm set to fill vertically then i'll grow downward till i hit the next widget or a container so I could anchor the top and left of a widget to the panel itself anchor another on left to the panel and top to the previous widet then anchor another on left to the panel and on bottom to the panel then the middle widget would fill the space between i'm not saying it's the way to go but watching them build a UI in the flash demo's is pretty damn impressive and in real life it works pretty well as I'm converting my internal widgets to java beans and have started moving my sales app to all UI being built via matsie's designer and layout mgr *** btami has joined #gnuenterprise though doing something like that in forms would require some type of region tag that you could nest johannesV_: was that info on properties what you wanted? or were you talking to someone else? oh, my answer hasn't arrived .... so i must have been disconnected V ah, ok, so i have to use foo.__properties__.navigable johannesV but, anyway, i've added a gfentry with a name tag, but it does not appear in the namespace johannesV the GFField's are no problem, they're accessible via block johannesV and, btw., that triggersample raises an error (if tabbed out of the last entry) jamest, yes your answer regarding properties was that one i was looking for but i still have a problem with accessing a GFEntry from within trigger-code hmmmm GFEntry was added after triggers maybe it never got added in the namespace builder that is how it looks like i came accross this as i was checking the navigable-property of a gfentry, trying to change this via trigger-code i'm looking now unless you are since a GFEntry implements a triggerproperty for navigable so we would have to either remove the trigger-properties from GFEntry (as it isn't reachable in trigger-namespace at all) or we have to add the GFEntry to the trigger-namespace i would think it should be accessable also, iirc __properties__ was not meant as a long term solution as it's __name__ meaning doesn't match python usage i swore there was another way to get in there you mean the properties? yes johannesV_: can you try something for me yep well, check something in your form does the have a name="" name="foo" *** siesel has quit IRC of course it does? it is called "FOOBAR" jamest: in your sample, I would have a containing 3 widgets with the middle one being vertically resizable and both others are not vertically resizable jamest, maybe the gfentry is accessible via the GFLayout, although the layout has no name-attribute and thus is not really accessible ooo that might be it as the trigger system used to go thru the gobj tree adding vars for any GObj based items with a name i'm not sure what it did when it hit objects that were not named *** derek has quit IRC ah, ... it would skip them NamespaceCore ignores any items without a name and their children ok got it we could possibly instead do if no name if the layout-tag get's a name-attribute GFEntries are accessible via layoutname.pagename.entryname well you could hardcode the layout instance to name='layout' but I'm not sure how this would effect dialog definitions in the same gfd or in the constructTriggerObject function we could say if it's a GObj and then map the children's names under the last parent with a name i think the risk of namespace collisions would be fairly rare though it may be a bugger if anyone is using imported sections of .g*d files and of course I have no clue the impact on the namespaces in reports or appserver :) ok, will have to look at namespace stuff later ... thanks for your help bbl i think i like the name="" tag on layout with a default of layout as it would really show you were accessing part of the GUI vs part of the logic hmmm what would speak against making all GFObjects available by their name in the global trigger namespace? I see quite deeply nested structures coming up with layout management and grids and layout.myPage.myHbox.myVbox.myEntry might become somewhat non-intuitive and IIRC names have to unique within the whole form anyway, don't they? that would require all names to be unique which currently isn't the case now it's unique per parent container IIRC and what would that do to the appserver namespace? doesn't it use NamespaceCore from common? though I imagine it wouldn't be too hideous to do something like poolNames = true as part of a GParser definition so that on the layout tag you'd set it to poolNames then it'd build the namespace as normal but also flatten it out under tag so both layout.myPage.myHbox.myVbox.myEntry and layout.myEntry would work then we could say last defined would get precidence(sp?) so that if I had appserver doesn't use NamespaceCore layout.myPage.myHbox.myVbox.myEntry and layout.myOtherBox.myEntry then you'd have layout.myPage.myHbox.myVbox.myEntry layout.myOtherBox.myEntry and layout.myEntry would point to the last defined the the g*d file so layout.myOtherBox.myEntry reinhard: appserver doesn't use the trigger system then? *** klasstek has joined #gnuenterprise no appserver "triggers" are somewhat different from forms triggers *** sacha has quit IRC sigh ok, for the moment I have added layout.pageName.entryName to the trigger namespace should I commit that functionality? not sure if johannesV_ was meaning to ask you for that maybe just commit it now you've done it anyway :) layout defaults to a name="layout" but you could override in the gfd if some some reason it messes up dialogs (it should not) *** derek has joined #gnuenterprise reinhard: it was good to get back in there and wonder what kind of crack we were on at the time *** jcater has joined #gnuenterprise any of the mac users here? johannes, derek? yep kinda before I go nuts.... is there some shortcut button or keystroke I'm missing gere er here even on the standard File | Open dialog that'd let me type in a path to a file? instead of pointy-clicky? im usually in a shell me too :) and in a shell you type open filename and it opens it in the right program ah but let me have a look no that's good enough also if you ever use text mate and do mate . it opens everything from current directory down as a "project" "open" is exactly what I needed jcater, you could use Shift+Command+G (goto folder) to open a dialog asking for a path to open in another finder window sweet *** btami has quit IRC *** psu has joined #gnuenterprise hi jamest can I ask some questions re gap? (well, of course I can) (what I mean is - do you have time to answer them?) he's probably at lunch... but I'd say ask them so he can read them when he gets back I suppose I was just trying to understand the diff between what gap will be and what common is already as both seem fairly similar in that trying to abstract away "messy stuff" from the tools just gap seems to be not just abstract away widgets and dtasources but absolutely everything Does it mean that Forms, Reports, etc. become just a series of calls to gap Since, as Common has been explained to me before they are already really just a series of calls to Common? * psu is trying to get this sorted in his head before writing GNUe Traffic in my assessment, gap is providing clients a cleaner way to get at common and each other ok each of the components has to know far too much about the other components to use them now * jcater is speaking out of turn, so don't take this as the gospel truth... just stating what I've learned before he gets back so instead of being a "switchboard" for the user like Navigator, gap is more like a "switchboard" for the code/apps themselves yes for example right now, all client apps are based on GClientApp GClientApp takes care of initializing some services like a connections manager (there are others, but take it as an example) gap is providing a way for all components of a tool to get at that "service" cleanly right now, you have your GFormApp (or whatever it is called) it has a _connections object if a class that GFormApp creates needs to get at the connections manager it either needs to be passed in the GFormApp instance, creating a potential memory leak and causing the access to look something like self._app._connections.getConnection('...') (quite ugly and hard to track what is what) or it has to be passed in the connection manager itself which creates a huge initialization mess and refactoring code is nasty too, because you might not realize when you first create a component of a tool that it needs access to a certain service that is just one example of the service gap would provide ... it would allow any component of any tool to declare what components of other tools it needs without creating an __init__ nightmare it would also let us test out new types of objects without breaking the existing ones take for example the datasources ok originally we abstracted datasources pretty heavily reinhard et al went in and cleaned that up which 1) made them much easier to understand but 2) eliminated a lot of the features they originally entailed (like, type="sql" can't easily be implemented now, which I found out a month ago :) so in effect you have to go for least common denominator in terms of functionality of the underlying databases? i.e. if sql-crap doesn't support (say) booleans you either have to not support booleans for all, or else fudge support for booleans in the sql-crap driver? yeah... but that has nothing to do with gap... that is true of the datasources now gap wouldn't change what datasources are jcater is on the write track or the primary logic of them right only how they are created/accessed initially okay he's here he can correct my inaccuracies :) it also enables an application to only load the components it needs like in my case I have lots of GClientApp based programs however not all need the command line parsing, or configuration file support so in those cases I wouldn't make a request for that service and it wouldn't load (to finish what I was saying about the datasources... this would provide me a clean way to write a datasource "sql" object and register it as such without having to go through all of the old subclassing nightmares that reinhard et al got rid of (rightfully so)) *** johannesV_ has quit IRC (or at least give me a way to "develop" a prototype outside of the GNUe tree and prove it, before modifying those classes) eventually, if it proves out, all the other gnue apps could use gap as their base and with the simple high level UI common setup you could say "I love designer, I do. I want to use it to edit all my python apps" jcater: is there and easy way to find a diff in two lists? (python) example? you could take designer's startup config file (that says which components to load) and remove the gui layout parts, leaving only it's trigger editor component then you could add your own components to the mix to add say a toolbar item that says "take what's currently in the selection buffer and run it as a ruby app" or whatever if i have two lists and i want to find out what has different in ruby i can do list1 - list2 but im working in python i could swear there was a diff function/method *** ajmitch__ has joined #gnuenterprise nevermind was able to use ruby to hit the database to find out I know you can do import sets; sets.Set(list1) - sets.Set(list2) psu: fwiw, i'll be expanding the technotes in navigator for a while yet before I start making the changes and would love questions/feedback no problem i've got gnue time again and hope not to repeat the sins of the past in not properly documenting stuff as I know it's causing others no end of grief just doing a bit of "GNUe Traffic seeding" speaking of documenting stuff i.e. get you & jcater to plan out loud so I can just cut & paste into GNUe Traffic on the gnue-sample testcase stuff how much more should I expand the schema before populating with test data i'd like to get that to a state people would actually be willing to switch to it i'm also willing to scrap it if there is a better schema hidden in gnue/* somewhere :) i need to step away for a bit np *** ajmitch has quit IRC * psu thinks he has found a bug in the GNUe Traffic code it doesn't seem to be able to cope with btami's given name & surname being the other way around * psu downloaded the source to see if I could file a more intelligent bug report but my chances of understanding XSLT are fairly slim jcater: FWIW, type="sql" should still work with current datasources I'll look again later *** psu has quit IRC type="sql" does work at least from the datasource wrapper anybody here can help me test something in roundup for a minute? reinhard: what you need? *** derek has quit IRC can you please go to the roundup page and click on the "edit" button for "my queries"? do you see some predefined queries to include there? ok, just a sedc what? yo umean the (edit) link next to Your Queries? yes your queries, my queries... i got confused ;-) i see a bunch of them with a dropdown option of leave out or inlcude named after the tools plus one "deferred issues" plus one "www" ? yes *** sjc has joined #gnuenterprise excellent logged in as me you can now include them and have shortcuts for showing all open issues per tool oooo you mean if I start GNUe'n again I have to read bug reports too? no, just in case you want to enter bug reports I never read them when I coded before, why do I have to start now? :) to look up whether it's already there ;-) did you have any requests/suggestions on the test data schema thanks for testing in any case :) i think i'll work on it some tonight after i go brain dead w/ GAP not other than what we've talked anyway cool ok, um, i thought I added everything we talked about did I miss something? btw, GAP == jamest is lazy and doesn't want to type a lot, it's not really a "name" what, we're not gonna have dancing and prancing 19 yr olds marketing the model? though I could call it Certifably Reusable Application Platform truth in advertising and all that "Why doesn't this GNUe crap work!?!" "You should file a bug report" Compartmentalized Reusable Application Platform I like it or component then reinhard, et al, can say... "It's not our code ... it's that GNUe CRAP from jamest and jcater" poor reinhard it's good timing though as they just eliminated almost all of the old Common Routines And Programs we did so it was to the point they couldn't blame issues on our crap lol now the code is just Cool, Right, And Perfect ;-) seriously rofl I was feeling more like adding the last 10% to something than replacing something with something else but what? common is solid navigator never moved out of proof of concept appserver seems solid i think forms needs so much work and cleanup it'll be a whole new app reports is IMO a dead end i think a solid test setup is worth some effort and better docs I have a lot of internal stuff that I want to repurpose into a new reports as for designer, i can't begin to figure out the wx issues but that's a future discussion :) I need to find out who is using reports currently, so I know how many people will feel the breakage *** derek has joined #gnuenterprise yes builder and pdftable have replaced all my gnue-reports talking about breakage afaik, btami is likely the only other person who might be using it I use 2 reports in house ... talking about breakage: there are currently "featuers" in forms that I'm not 100% sure we will still want in 1.0 and I wonder what would be the best way to break them like maybe deprecate in 0.6 and remove in 0.7 ? which features? I could, for example, imagine that a really working could completely replace the need for rows= hmmmm I don't think those are the same thing i have forms that do Field One: _________________________ Field Two: ______________________________ Field THree: _______________________ Field One: _________________________ Field Two: ______________________________ Field THree: _______________________ with 4 or 5 lines of fields I definately see new grids doing this I don't think of grids like an excel table I rather see grids like, say, gnucash entry form I need to take your technote and rewrite it to show how forms is designed "now", to make sure you understand what you're changing before you actually do as I really diidn't see any meaningful differences in the new format and the old *** btami has joined #gnuenterprise oh, and this is somewhat unrelated but looking at your technote reminded me I didn't mean to do any diffeerences basically except for adding and / I wonder if we should move to Dublin Core for our G?D formats for the metadata information (author, dates, etc) what is Dublin Core? http://www.dublincore.org/ I've seen it in use a lot it's not just some theoretical, "hey, this would be cool..." proposal someone did i think that would be a good idea reinhard... actually, let me find another link (an example) as that link you'd need to dig to find anything useful search engines use it actually, i have a great example just a sec basically, it's just a standard way to include author information in any arbitrary XML file the zope wiki uses it http://www.zope.org/DevHome/Wikis/DevSite/Projects/ComponentArchitecture/FrontPage plone uses it for everything also in the upper right there is a link for every page the university was moving all it's web pages to include it a standardized way to tag metadata in documents that major search systems agree upon looks like it would make sense it's more or less a naming scheme for the things we already have there anyway, isn't it? exactly librarians use for bibliographic data too btami: that was one of the pushes for it at the university as well so we would have tags like , <description>, <creator> etc. <reinhard> would these be direct children of <form>? <reinhard> of would we make a <dublin> or <metadata> or something that contains all those nodes? <jamest> reinhard: http://dublincore.org/documents/2003/04/02/dc-xml-guidelines/ <jamest> is the std way of doing it in xml files <jamest> i'd imagine we'd adjust GParser to handle the metadata w/o needing to add tags to each tool <jcater> what GParser would do <jcater> is create GObjects with a ['DublinCore:author'] property <jcater> so GFForm['DublinCore:author'] = 'jcater' <jamest> why not spit out a metadata gobj tree? <jcater> (because it supports that now :) <jamest> ah, lol, perfect reason :) <jcater> though I'm fine with the other <jamest> reinhard: to answer your question, i'd be ok with rows going away if the functionality isn't lost <reinhard> jcater: so all <dc:author> etc tags would be direct children of the <form>? <jcater> doh.... wait... I was thinking in terms of attributes <jcater> not in terms of them all being tags <reinhard> jamest: I guess best is to implement the new stuff and make it work before removing other stuff :) <jcater> so nevermind <jamest> why not 2 trees? <jamest> from the parser <jamest> rather than stick it in the tree <jamest> as it exists outside the <form> tags <jcater> I think I'd rather see a rootObject.__metadata__ that is a standalone tree <jamest> yes <jcater> rather than breaking the results of GParser <reinhard> you mean <jamest> the parser hands out the std form tree <reinhard> <form> <jamest> and a second metadata tree <reinhard> </form> <reinhard> <metadata> <reinhard> <dc:author> <reinhard> </metadata> <reinhard> ? <jamest> that's how it's supposed to be done isn't it? <reinhard> I'm not sure if that is valid xml <jcater> I was pretty sure it is <reinhard> my understanding was always that an XML file may only have a single root node <jcater> <form xmlns:dc="http://...."> <jcater> <dc:author>Jason Cater</dc:author> <jcater> ... <jcater> </form> <jamest> ah crap <jamest> i was thinking in html <jamest> <form> is our root isn't it <jamest> sigh <reinhard> jamest: it is <reinhard> jcater: ok, that's what I figured kinda <jcater> I was just throwing the idea out <reinhard> but then the parser would have to sort that out somehow, right? <jcater> it won't hurt my feelings if we don't go that route <reinhard> other possibility would be <reinhard> <form <reinhard> oops <reinhard> <form> <reinhard> <metadata> <reinhard> <dc:author>Jason Cater</dc:author> <reinhard> </metadata> <reinhard> <datasource>.... <reinhard> ... <reinhard> </form> <reinhard> so we would have some kind of GMetadata object as a handle to all of that stuff <reinhard> which could be implemented in common and used everywhere <reinhard> (like the GDataSource is now) <jcater> yeah, I think that is what jamest was getting at <jamest> yes <jamest> it is <jcater> I don't know if the dc: tags have to be a child of the root tag or not <jcater> given that they're namespace qualified, I'd think parsers would just search the tree for them <jamest> other than the whole head up my arse wrt <form> being the root <jcater> but I don't know that <jamest> jcater: did you look at that link <jcater> I glanced at it <jamest> they do always show it as in the root <jamest> ;( <reinhard> but their root is always named "metadata" <reinhard> so I'm not sure if that's meant this way <jamest> later it's called record <jcater> "Note that it is anticipated that records will be encoded within one or more container XML element(s) of some kind. This document makes no recommendations for the name of any container element, nor for the namespace that the element should be taken from. Candidate container element names include <dc>, <dublinCore>, <resource>, <record> and <metadata>." <jcater> so <jcater> I'd say reinhard's example fits that perfectly <jcater> (from http://dublincore.org/documents/dc-xml-guidelines/) <reinhard> oh, that sounds good <jcater> lots of cutting and pasting for psu today <reinhard> I think we'll go with <metadata> then, agree? <jcater> it gets my vote <jamest> mine too <reinhard> so will this be another example of where we will break old XML format? <reinhard> or will we leave in old <author> etc for compatibility <reinhard> and phase out? <reinhard> (which means breaking anyway, but rather later than sooner) <jamest> why not do a few releases with designer hacks <jamest> that convert the old tags to new upon load <jamest> it's how we'd handled that breakage in the past <btami> night all *** btami has quit IRC *** kilo has joined #gnuenterprise <reinhard> good night all *** reinhard has quit IRC *** jamest has left #gnuenterprise *** kilo has left #gnuenterprise *** gaupe_ has joined #gnuenterprise *** gaupe has quit IRC *** gaupe_ is now known as gaupe *** derek has quit IRC *** sjc has quit IRC *** jamest has joined #gnuenterprise *** jcater_ has joined #gnuenterprise *** jcater has quit IRC *** jcater_ is now known as jcater *** jcater_ has joined #gnuenterprise *** jamest has quit IRC *** jamest has joined #gnuenterprise *** klasstek has quit IRC *** klasstek has joined #gnuenterprise *** klasstek has quit IRC *** jcater has left #gnuenterprise *** jamest has left #gnuenterprise *** sacha has joined #gnuenterprise *** derek has joined #gnuenterprise *** derek has quit IRC