Ask Reuben
Ghosts of Genero Enterprise (Reuben’s Commentary)
I can see the slides to a presentation at WWDC, what did you talk about?
At WWDC24, I prepared a presentation titled “Ghosts of Genero Enterprise Coding in 2024”. I presented it in Melbourne, and it was presented by Olivier Eckert in Strasbourg and London, and Oscar Vera in Cancun. The abstract was … Genero has many features and products incorporated into the product over the years. The lack of support questions raised suggests we either implemented and documented these new features perfectly, or they are not being used to their full potential. We would like to think the former but in reality it is probably the latter. We also recently sampled a small section of Four Js customers to see what they would like in future versions of the Genero product. A number of suggestions were already implementable via the use of existing Genero components. In this overview, Reuben and the Customer Care team will examine some requirements you have, and what Genero components and tools are available at your disposal. In this article, I’d like to expand on some of the key points in that presentation. I would suggest opening the presentation, link here. or open it from the page , and have it open in another window as you read this article. The key message from the presentation was that within the Genero Enterprise Suite, we have added a number of products and features. These cost time and money for us to support over the time. If no one is using them then should we stop supporting them. However we created these products and features because we thought they would be beneficial to our community. It can be frustrating for us to be onsite or doing support with a customer and find they are not using these products or our product as much as they can. If these features are not being used because you are not aware of them then this presentation would hopefully make you aware of them and you can incorporate their usage into your environment. If you aware of them then feedback from the presentation might help us fine tune them so you do use them. There is an element of “Use It or Lose It” in our philosophy. We have seen that recently where the IBM DB2, IBM Netazza and Generic ODBC Drivers were de-supported, see this forum notice in 2022. There is no point in us spending QA hours every release on functionality that is not used. I also point out, we do not throwaway the code, if there is a commercial reason for us to reinstate functionality then we will certainly listen. As we do more Professional Services, we are entering development environments where there is little or no documentation. As well as the Code Documentation Generator which we have showed before at past WWDC, what I also demonstrated was the Meta-Schema Manager and how you can document descriptions for database tables and columns. I also mentioned Dependency Diagram that had been a topic of an Ask-Reuben. With both the Documentation Generator and Dependency Diagram, I made the point that you can print big images onto many pages and create a giant poster to place on the wall of your office! When it comes to deploying Genero applicationa to production servers, what we find is that most developers have their own bespoke way of deploying their applications. Informix-4gl did not dictate anything and so developers developed their own techniques. We do have a formal Genero method for deploying applications using something called a Genero Archive. You can read about them and the techniques and commands used in the BDL Documentation and the GAS Documentation. In particular, note the fglgar command and the gasadmin commands. Our message here is that if you are reviewing your deployment methods, have a look at how we think you should do it. We understand you are not going to suddenly change the way you do things just because we introduce some commands, but keep these commands and techniques in mind if you do need to revisit how you deploy applications. These techniques form the basis of how we deploy to Genero Mobile devices and will form the basis for the future Genero Web Application concept as well. Genero Ghost Client for testing has been well publicised in the past with WWDC presentations and an Ask-Reuben articles. I feel like with this one “we can lead the horse to water but we cannot make you drink”. I did not demonstrate it because we have done that plenty in the past and we only had so much time. Mentioning this is more a case of reminding you that it is there, we think it is useful, and you will benefit from having a series of tests you can run on your application. I had the last slide to emphasise some key points to manage expectations when you look at Genero Ghost Client. If we had more tracks I would’ve dedicated an hour to this topic. Having led a team of Informix-4gl developers in a past life and been responsible for maintaining code standards, particularly as we transformed to Genero developers I do have an interest in how you enforce code standards. Back then I had a series of awk/sed scripts that alerted me to any breaking of coding standards by our developers as they checked code in, and I would visit them in the morning after they had committed their code highlighting to them and the person who code reviewed their code what they had missed. We do also get people asking us about parsing Genero code with products such as Sonarqube. What these products do is they create an Abstract Syntax Tree (AST) and then testing code becomes a case of checking that the AST has a certain structure. That attributes have certain values, that certain notes do or not have certain ancestors or descendants. This takes code formatting, lines, presence of comments etc out of the equation. Our Code Quality tool gslint found in Genero Studio also works by creating an AST and I invite you to write a series of very small programs and execute I would treat the rules we deliver in our Code Quality tool as a very small subset of what is possible, it is by no means complete. Treat it as a starting point, or write your own Code Quality test suite from scratch but using the AST produced by fglcomp -Tx For forms, I also make the point that .42f and .4fd are already in XML format so are effectively an AST already. The GAS Monitor and GAS Monitoring are two seperate subjects and so I introduced by emphasising that these are two different concepts. The GAS Monitor page is something a system administrator should have bookmarked so they can see what is happening with their GAS instance at any one moment. The newer Web Service Monitoring concept allows you to get insight to Web Services and also to get alerted when events happen with your Web Services. We didn’t have time for a full demo, it was another topic that we could do an hours presentation on if we had more tracks. They key thing I was trying to emphasise was the concepts and keywords. This section I felt worked better in Melbourne because I was able to illustrate it with reference to my own usage of Genero Studio. I showed my Genero Screen and a few menus and asked if there was anything that looked different. The answer I was hoping people saw was the TopMenu and right-context menu entries that had the word “Git”. Genero Studio is very configurable and I have my instance configured so that I can clone Git repositories, work on them, and commit them. This is via User Actions and making them available via the TopMenu, ToolBar buttons and various right-click context menus. You can also delve into the areas of Build Rules and Package Rules to control the steps that are executed when you compile and package your Genero applications, you are not stuck with our rules. For those who favour Application Generators, you are not constrained to our BAM, you can configure Genero Studio to work with your application generator. You can configure database and form views to have your custom properties, and then have your application generated using your generator from a build on the database or form view. Have a read of the BAM Template Developer Guide. It is also not just templates, but things like hat you see with File->New. If I had time, what I also show is something a little naughty. A lot of the Studio configuration is via configuration and xml files behind the scenes, not all of which are documented and available to be overridden. if you ask me nicely I’ll show you how to add an entry to ToolBox for Genero Report Writer as an example. The concept of Code Templates is not restricted just to small bits of Genero syntax. It can be many lines, for example a copyright notice, a documentation snippet etc This was the last section because these products are used, however they could be used more. We would like your applications to me more GUI, a perception that your application is “legacy” could be averted if it had a rich graphical user interface. I feel that the built-in Web Component fglsvgcanvas is under utilised. If you have not already I would encourage you to take the fglsvgcanvas course in our self-paced training portal and read the Ask-Reuben articles https://4js.com/ask-reuben/ig-67/ and https://4js.com/ask-reuben/ig-203/ The screenshots there are from … In preparing the presentation, there was a lot I left out. I could’ve mentioned … What I else found presenting this and other presentations was that there was functionality that is not used as much because we have not the feedback to enhance something to get it to a point that it is used. Often we know about this internally but have not had the volume of requests (if any) to justify our investment. So please don’t be afraid to use the Support Portal to ask for enhancements so that functionality is useable.
Introduction
Documentation Generation
Genero Archive
Genero Ghost Client
Code Quality
fglcomp -Tx filename.4gl
and note the output.
GAS Monitor / Monitoring
Genero Studio Configuration
Web Components + FGLSVGCANVAS
What Else