<?xml version="1.0" ?>

<kc>

<title>GNUe Traffic</title>

<editor contact="mailto:psu@burdonvale.co.uk">Peter Sullivan</editor>

<issue num="110" date="03 Apr 2006 00:00:00 -0800" />

<headquote>
&quot;<i>we're 4 people discussion so we probably have 5 different visions ;-)</i>&quot;
</headquote>


<intro>
  This covers the three main mailing lists for the 
  <a href="http://www.gnuenterprise.org">GNU Enterprise</a> 
  project, plus the #gnuenterprise IRC channel.
</intro>

<section 
   title="Ideas about layout management in Forms"
   subject="[IRC] 28 Mar 2006"
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.2006-03-28"
   author="Peter Sullivan" 
   contact="mailto:psu@burdonvale.co.uk" 
   startdate="28 Mar 2006 12:00:00 -0800"
   enddate="29 Mar 2006 12:00:00 -0800">

<topic>Forms</topic>

<p>James Thompson (jamest) asked if Reinhard M&#252;ller's (reinhard) proposals 
for layout management in Forms - to allow forms to move controls on a form 
to reflect the amount of space available when a form was resized - would 
mean <quote who="James Thompson">taking out the char based placement</quote>. 
Reinhard said that he thought <quote who="Reinhard M&#252;ller">must leave that 
char based placement in for compatibility</quote>.</p>

<p>James asked how controls would be 'anchored' to the form. 
Reinhard replied <quote who="Reinhard M&#252;ller">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</quote>. James explained how he would anticipate it working - 
<quote who="James Thompson">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</quote>. 
If a widget was allowed to resize, then <quote who="James Thompson">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</quote>. He felt that <quote who="James Thompson">in real 
life it works pretty well</quote> although <quote who="James Thompson">doing 
something like that in forms would require some type of region tag that you 
could nest</quote>.</p>

<p><a href="http://www.gnuenterprise.org/irc-logs/gnue-public.log.2006-03-29">The 
next day</a>, Jason Cater (jcater) was <quote who="Jason Cater">nervous 
going away from the pluggable layout system we had moved to</quote> to 
<quote who="Jason Cater">using a single, hardcoded layout manager like 
this</quote>. Jan Ischebeck (siesel) agreed - <quote who="Jan Ischebeck">I 
hope to still be able to use the character based layout.</quote> Reinhard 
explained <quote who="Reinhard M&#252;ller">actually I would be aiming at making 
different layout systems work as opposed to the single, hardcoded x/y 
positioning we have now</quote>.</p>

<p>James noted that <quote who="James Thompson">forms lets you plug in 
layout managers</quote> already - <quote who="James Thompson">just no other 
layout managers have been written</quote>. Jason added that 
<quote who="Jason Cater">the intention was to have the layout plugin system 
in common instead of forms, too</quote> so that the other GNUe tools, not 
just GNUe Forms, could use it.</p>

<p>Reinhard asked <quote who="Reinhard M&#252;ller">how would you implement x/y 
positioning without accessing the x/y parameters?</quote> James said that
<quote who="James Thompson">positioning would be the job of the layout mgr 
entirely</quote> - if the user interface had built-in layout management 
features (which some did), these would be used, but if not, the layout 
management routines would handle this. Reinhard asked whether this would 
mean having and maintaining <quote who="Reinhard M&#252;ller">two complete sets 
of uidrivers? one for x/y based and one for layout management?</quote></p>

<p>Reinhard had <quote who="Reinhard M&#252;ller">not yet understood why anybody 
should want char based positioning in a form for other reasons than to keep 
compatibility with old forms - especially as I figure char based positioning 
is a hell to implement in html or similar frontends</quote>. Bajusz Tam&#0225;s 
(btami) gave the example of wanting <quote who="Bajusz Tam&#0225;s">forms 
that exactly matching reports providing  by law</quote> - for example, 
for tax purposes.</p>

<p>James emphasised that <quote who="James Thompson">i don't see layout 
management as something the UI objects should take part in - i think the 
entry objects should provide hints to the layout manager about what they 
want - but not participate in the</quote> layout. They could express a 
preference <quote who="James Thompson">like now &quot;i want to sit in 
the 3rd chair in isle 4&quot;</quote> or relative to other objects but 
the layout manager would process these hints <quote who="James Thompson">and 
stick them wherever it feels like honoring the hints</quote> - 
<quote who="James Thompson">if it wants to do x/y positioning that would 
be ok - but it it wants to use UI specific containers then it 
could</quote>. Discussion continued.</p>


</section>

<section 
   title="GNUe Application Platform"
   subject="[IRC] 28 Mar 2006"
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.2006-03-28"
   author="Peter Sullivan" 
   contact="mailto:psu@burdonvale.co.uk" 
   startdate="28 Mar 2006 12:00:00 -0800"
   enddate="28 Mar 2006 12:00:00 -0800">

<topic>Navigator</topic>

<p>Further to 
<kcref title="GNUe Application Platform to replace Navigator?" subject="[IRC] 27 Mar 2006" />, 
Jason Cater (jcater) said that his view of GNUe Application Platform (GAP) 
was that it was a way of <quote who="Jason Cater">providing clients a cleaner 
way to get at</quote> the GNUe Common Library <quote who="Jason Cater">and 
each other</quote>. He noted that <quote who="Jason Cater">right now, all 
client apps are based on GClientApp</quote>, which <quote who="Jason Cater">takes 
care of initializing some services</quote> - <quote who="Jason Cater">gap is 
providing a way for all components of a tool to get at that &quot;service&quot; 
cleanly</quote>. For example, the current way of sharing connections was 
messy, and caused problems when refactoring code. And this was just connections - 
there were other componants that tools might want to share. GAP, by contrast, 
<quote who="Jason Cater">would allow any component of any tool to declare 
what components of other tools it needs - without creating an __init__ 
nightmare</quote>.</p>

<p>James Thompson (jamest) added that <quote who="James Thompson">it also 
enables an application to only load the components it needs - like in my 
case I have lots of</quote> based on the core GNUe client application 
code - <quote who="James Thompson">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</quote>. He hoped that 
<quote who="James Thompson">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" - 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</quote> to make it an editor for generic 
python code, not just GNUe triggers.</p>

</section>


<section 
   title="Timezones in GNUe Application Server"
   subject="[IRC] 30 Mar 2006"
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.2006-03-30"
   author="Peter Sullivan" 
   contact="mailto:psu@burdonvale.co.uk" 
   startdate="30 Mar 2006 12:00:00 -0800"
   enddate="30 Mar 2006 12:00:00 -0800">

<topic>Application Server</topic>

<p>It was asked how GNUe dealt with different time zones - in a three-tier 
set up (forms talks to Application Server talks to back-end database), 
the users of a forms could be in different time zones to each other, and 
different to the time zone of the Application Server and/or the database 
server. This could create problems sorting entries by date/time order. 
Reinhard M&#252;ller (reinhard) noted that, as of time of writing, 
<quote who="Reinhard M&#252;ller">there is no timezone handling currently - 
so appserver just takes time values like you give it - so if you use 
gnue_createdate etc it's all in the timezone appserver is running 
in</quote>. Johannes Vetter (johannesV) noted that 
<quote who="Johannes Vetter">well, actuall python's datetime.datetime 
has no 'native' timezone either - instead one would have to implement 
timezone-support if needed</quote>. Reinhard noted that 
<quote who="Reinhard M&#252;ller">converting times values to UTC before 
storing in the db might not be what most users would expect - still 
somebody searching in the db directly via sql might be surprised to 
find "wrong" values</quote>.</p>

<p>Reinhard noted that the specification for XML-PRC (the XML 
specification for Remote Procedure Calls, which GNUe Application 
Server was intended to be compatible with) said that 
<quote who="Reinhard M&#252;ller">It should be specified by the server 
in its documentation what assumptions it makes about 
timezones. so it looks like you can't pass a timezone there by 
definition - and that we can define, for example, that all dates 
must be the timezone which appserver runs in</quote>.</p>

<p>Reinhard agreed <quote who="Reinhard M&#252;ller">100% that timezone 
handling is a missing feature in appserver - which would have to be 
implemented by either documenting something, or some changes in 
appserver itself, or (most probably) both. I think it would make 
most sense to make the client responsible to send only UTC time 
values to the server - but then appserver would have to convert 
all automatically set times to UTC, too - like gnue_createdate etc
- which currently is in appserver's local time zone - and I figure 
there's a whole bunch of other problems we might run into if we 
look closer, for example the fact that the date part of a 
datetime value can change when you convert timezones</quote>.</p>

<p>Reinhard concluded <quote who="Reinhard M&#252;ller">I think this 
really needs more thinking - also regarding different backends and 
how *they* are able to handle timezones</quote>. Later on, he 
<a href="http://www.gnuenterprise.org/roundup/gnue/issue94">documented</a> 
the issue <quote who="Reinhard M&#252;ller">as a wishlist item for 
appserver</quote>.</p>

</section>


<section 
   title="Block level focus triggers"
   subject="[IRC] 03 Apr 2006"
   archive="http://www.gnuenterprise.org/irc-logs/gnue-public.log.2006-04-03"
   author="Peter Sullivan" 
   contact="mailto:psu@burdonvale.co.uk" 
   startdate="03 Apr 2006 12:00:00 -0800"
   enddate="03 Apr 2006 12:00:00 -0800">

<topic>Forms</topic>

<p>Johannes Vetter (johannesV) asked what <quote who="Johannes Vetter">block-level 
focus-triggers</quote> were for in Forms. James Thompson (jamest) replied 
that <quote who="James Thompson">they provide a higher level trigger than per 
entry level - so you could define a trigger that validates that fields x,y,z match 
a specific combo of values - and block navigation if they did</quote> not. In 
other words, <quote who="James Thompson">they fire on any focus change in that 
block</quote>, not just on movement into or out of the block. This meant that, 
if you moved from one entry field to another in the same block, you would fire 
four triggers all at once - the focus-out trigger for the field and block and 
the focus-out trigger for the field and the block. Even if you were moving 
from one field within the block to another field still within the block. This 
was intended to match a similar feature in a proprietary database forms 
software package.</p>

</section>

</kc>