[News] S.L.U.G. November 16 Meeting Notes
- Harry Catharell - MaJic Solutions Limited
- Christian Batchelor - Batchelor Associates
- Graham Greensall - Worxinfo
- Chris Michael - hhm
- Rafi Galibov - Positronic Solutions
- Roger Fleming - APS
- Simon Barker - SCB1.com
- Ian Jempson - Sublime Software Limited
The second meeting of the S.L.U.G. took on a slightly more formal approach using an Agenda based outline which it was hoped would keep us more focused now that we were no longer User Group virgins !
The meeting still allowed for free discussion to take place but with more control over what was being said to ensure that there all attendees could be involved.
1) Review of minutes/points raised at previous meeting
The key operational issues which were tabled had been calculation latency and import of large datasets.
It was heartening to find that these problems had been reduced in importance thanks to either testing within or upgrade to the latest version of Servoy. From v2.1 onwards there seems to have been a marked improvement in the handling of these items.
The use of native SQL statements to perform calculation updates was another option used to speed up a process and it was mooted that for large imports then you could interact directly with the SQL backend to get the data into the database prior to interacting with it via Servoy.
The main product issue revolved around the Servoy development team moving the product forward so quickly that it it still leaving some fundamental operational flaws unresolved.
The group again expressed a concensus desire to see the Servoy company address the, what seem to be, minor bugs before continuing on with the major new versions
2) Servoy responses to first meeting
The minutes of the last meeting had been posted to the Servoy magazine web site and a copy was requested by and forwarded to Bob Cusick.
Bob Cusick was kind enough to send a reply once he had read through the points which had been raised but this should not be taken as any official Servoy response at this stage.
Bob Cusick pointed out the advantages of using native SQL statements and mooted that our other points were on the money !
He did stress that if anybody had any specific and direct experience of the memory leak issue then we should contact him right away !!
3) Operational Issues / Members' problem open forum
This formed the main span of the meeting where all attendees could voice any further concerns which they had about Servoy in an operational environment and also have an open forum where they could ask specific 'How Do I do This ?' questions
From a legend angle within the following points, I have called any tips & tricks [TIP] , I have labelled any 'How do I do this' questions and answers as [HOW] and I have classified any operational issues as [OI] (you are right, I chickened out when it came to calling them bugs !!)
- [TIP] Issue found where Servoy was installed on same server as FM Server. FM Server was taking up processor cycles during FM scheduled backups which then forced Servoy to disconnect clients !!
- [TIP] PCAnywhere and Java operating together were reported as being problematic. It is understood that this has something to do with each application directly influencing display properties and leaving both in conflict with each other. One member reported that he had been using GoToMyPC to facilitate some remote development work and this had NOT caused any operational issues.
- [HOW] ValueList methodologies were discussed. We had two key opinions on how best to invoke Value Lists. Essentially this boils down to either being built using Servoy options or built programmatically via native SQL and javascript method. Servoy has developed a very 'FileMaker'-like way of creating value lists which is an easy tool to master and can give you your basic value lists very easily and with little fuss. As soon as you require more specialised value lists - perhaps driven from data which may be three or more relational hops away - then this is more a job for a SQL statement and then the VL is built from a returned dataset or from an array. There is still some difficulty in mastering the SQL route and this may be a good area to base a tutorial on (Mr Cusick please take note) !
- [HOW] Variations on List displays again. Is it better to use a list form or HTML ? This had been discussed at length in the first meeting but we did revisit the use and formatting of HTML which had been built from the results of a query. This principle seemed to be understood by all. A 'curved ball' was thrown which asked the question about how to highlight a chosen row or rows within the HTML block. This had been answered by parsing the HTML block and then run a search and replace with appropriate highlighting tags but this seemed inefficient based upon time taken to run it. There will be more experimentation with this method and hopefully an update at the next meeting. Please see the example code below that Christian supplied which does the dirty deed :
Method #1
var html = '<html><head><style type="text/css">' +
'.header { font-family: "ArialMT", Arial, Helvetica, Geneva, Swiss, SunSans-Regular; font-size: 11pt;color:#000000;padding-left:12px;}' +
'.body { font-family: : ArialMT, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; font-size: 11pt;color:#000000; padding-left:12px; padding-right:12px; line-height: 14px;}' +
'.box { border-style: inset; }' +
'.lightrow { background-color: #faf9f9;} ' +
'.darkrow { background-color: #edeaea; }' +
'.lightrowselected, ' +
'.darkrowselected { background-color: #bbccaa; }' +
' </style>\n</head><body class="body">\n';
html += '<table cellpadding="2" width="100%"><tr class="header">';
Method #2
var id = arguments[0];
var lineno = arguments[1];
globals.gSubscriberSelection = lineno;
var s = globals.gSubscriberList;
var s = s.replace('rowselected">', 'row">');
s = s.replace('row"><td class="box">';lt;span class="red"> + lineno + ".", 'rowselected"><td class="box">'<span class="red"> + lineno + ".");
globals.gSubscriberList = s;
application.updateUI();
- [TIP] Spinning off from the above highlighting item, it was remembered that there is a function 'getLastKeyModifiers' which will allow you to branch a conditional method and so run an onAction method which would do one thing if, say, the Control key was held down and another if it wasn't ! Thus a single method could allow both navigation and highlighting to be called depending upon a key combination !
- [TIP] File conversion from FileMaker to Servoy (or rather FM to SQL !) There are several utilities out there which can help with a conversion from a FileMaker solution into a Servoy solution without having to use the services of PDM and their Fm to Servoy/SQL migration tool. For example : FMpro Migrator, MySQLStudio, Navicat, XERD They do not do as thorough a job as PDM whose conversion takes into account both layouts, relations, VL's and scripts as well as table structures. However they can assist in more easily porting the FM structure to an SQL database (for example, XERD lets you to manually create an ER diagram representing the FM information and once this manual process is complete will then generate the SQL script to create the database for you !)
- [OI] Network environment and caching techniques. Several users have reported situations where there has been latency experienced between data updated one one client being refreshed for use by another client accessing the same solution data ! Clarification is required as to how this is employed within Servoy and what can be done to minimise effects or get rid of the problem completely
- [OI] Servoy does not truly present any visual cue of processing time for operations. There is no UI prompt to tell you that an operation is in progress. Example : send native SQL query to backend database which is completed in 1 second whilst it then could take Servoy perhaps 5 seconds more to eventually display the results in a form !
- [OI] It has been found in report generation that object 'sliding' is very inconsistent. It may work or it may not !? We had an actual demonstration of this and there was a complete inability to predict when it would occur and why it was happening !!
4) User Group ideology
For this user group to continue meeting and to develop there has to be some common goals which can be accepted by all members and can thus lend a certain dynamism to the proceedings.
Whilst this is by no means a rigid form of constitution nor is it in any particular order, it was felt that the following points would be a good place to begin and to be used as a springboard to move us forward.
- The group meetings could provide valuable corroborated feedback for Servoy in order to assist them in directing their product development.
- The group meetings would be a forum which would allow all members to learn directly from each other's experiences both in development and in implementation of solutions.
- The User Group would help to create an alliance whereby any member may be available to assist directly with another member's development problem or provide a sounding board for that developer on a one to one basis
- The members may provide a resource and an opportunity to supply a support infrastructure to customers of members who may be absent due to holiday, illness, training etc etc.
5) AOB
It was definitely felt that it would be beneficial to have Servoy representatives present at one or more meetings.
This would give us the opportunity of expressing points to them directly and in a much more concise yet explanatory fashion than either in meeting minutes or via the Servoy Forum !
This would also be a great opportunity for Servoy to directly answer these points and also present any other information to us as was seen fit or provide demonstrations of techniques etc which may enhance our use of Servoy.
To this end these minutes will be circulated to key members of the Servoy team in the hope that they will grab the opportunity to attend a meeting and perhaps provide some date options for us to plan the next meeting around !
Final Conclusions
Some new members provided a broader perspective than the first meeting.
There is a huge sliding scale of expertise and skillset involved in the group and so it must be remembered that this group does not show any distinction between these as each member will bring their own inputs into the meetings and any other activities which may take place.
It is still felt very strongly that there needs to be some form of balance kept within the product.
More and more there is a distinction being made between Servoy and native SQL.
There is an obvious majority of attendees who are moving to Servoy from FileMaker because of the opportunities which it gives but it is comforting to know that there are SQL professionals who are using the tool to front end their solutions or use it as an administrative tool for powerful web oriented solutions.
This is good for the Group as a whole to have members who have a foot in both camps and who can share valuable experiences for the benefit of all.
There is also the consideration that the Group represents a good cross section of skills which does indicate that it can thrive by itself becoming the resource for all other members when required - indeed, it was mentioned at the meeting that there may be development opportunities available on some particular projects for any interested members !!
That said, those who do not know basic SQL should learn it and it will be a very powerful weapon to have in your arsenal.
Whilst those who know SQL should then use the ex FileMaker developers in the membership to poll for some answers as there are many parallels between FM and Servoy as a development environment and these guys have seen it, bought the popcorn and worn the T shirt !!!
Comments (2)