Subscribe for automatic updates: RSS icon RSS

Login icon Sign in for full access | Help icon Help
Advanced search

Pages: [1] 2 3 ... 10
 1 
 on: April 26, 2024, 02:28:05 am 
Started by Reuben B. - Last post by Reuben B.
With Native Interfaces, the vendor could control what changes you as a developer could make to the user interface.  A common restriction is for the vendor to not allow you to customize a BUTTON.  It is in yours and everyone's interest if there is some commonality as to how buttons are rendered so that the user knows what they can click on.  Another area that drew a lot of support calls is around the text / title that appears at the top of a FOLDER PAGE container, and a GROUP  container, developers would look to change the appearance (change color, font size and font weight) and find that there did not appear to be a formal way in Genero to do this.
 
If you reviewed the Presentation Style References documentation, you would note that there is not a documented selector that enables you to select the Folder Page title or a Group title.  You’d think there might be a Pseudo selector like there is for Aggregates but there is not.   There was a good reason for this.  The native interface vendors did not allow you the developer to change all of the appearance of the Folder title or Group title, and so we were never comfortable allowing you a selector when you could not use all the common presentation style attributes consistently.  We did not want situations where you could change it in Windows front-ends but not in Linux front-ends etc.

However there was an undocumented way...

Read more at https://4js.com/ask-reuben/ig-225/

 2 
 on: April 26, 2024, 02:26:26 am 
Started by Reuben B. - Last post by Reuben B.
The Dark Theme was introduced in GBC version 4.01.20.  With the timing of that just before  the release of Genero 5.00, your upgrade to Genero 5 is a good time to investigate incorporating the use of a Dark Theme within your Genero application.
 
I will leave it to the documentation as to how to implement and choose a Dark Theme.  In this article I will answer the two most common questions I’d expect we would get asked, that is how to create your own dark theme as part of your customisation, and also why a widget might not change appearance with a dark theme.

Read more at https://4js.com/ask-reuben/ig-224/

 3 
 on: April 26, 2024, 02:25:00 am 
Started by Reuben B. - Last post by Reuben B.
In the Genero 5.00 Release Announcement there is the following …
 
Quote
All the v5.00 front-end clients will support both Genero v4.01 and Genero v5.00. No new v4.01 front-end packages will be released; anyone needing a maintenance release for their v4.01 front-end installations will need to use the v5.00 front-end packages.

... How to think of this, if you look at a browser or a mobile app, you only ever have one version of it. You don’t have to keep particular browser versions to view particular historical web pages. Similarly with apps, you don’t have multiple versions of the same app on the App store to use with different phone versions etc. Instead with these every fortnight/month or similar period, there is a new release that is in the case of browsers typically updated silently, or in case of Mobile Apps through the Update feature of your device ecosystem. Our front-ends will now similarly be a single stream that is updated periodically, approximately monthly in case of GBC, probably less often in case of GDC, GMI, GMA.

Read more at https://4js.com/ask-reuben/ig-223/

 4 
 on: April 26, 2024, 02:22:48 am 
Started by Reuben B. - Last post by Reuben B.
With a Web Service, successive requests can be handled by any member of the Services Pool, that is any fglrun process that has been started to service those web service requests.  Web Service code should therefore be stateless so that each request is independent of other requests.  This means you should not have any modular or global variable influencing the result, and you should have no sequential or scrollable cursors left open after each request.
 
What if you wanted a web service to return one row of the database cursor to a calling program, the user in the calling program then clicks something like Next , and to then call the same web service returning the next row from the database cursor?  If it is a scrollable cursor you might want to allow the user to click something like Previous and fetch the previous row from the database cursor.  This means you need the same fglrun process and database cursor to be called by consecutive requests.
 
By adding an attribute (mode=”sticky”) to a web service .xcf, we can signify that the web service is a Sticky Web Service.

Read more at https://4js.com/ask-reuben/ig-222/

 5 
 on: April 26, 2024, 02:21:05 am 
Started by Reuben B. - Last post by Reuben B.
When Web Servers are configured for Load Balancing, they are often configured by someone not familiar with the Genero architecture.  With a typical load balanced web server architecture servicing atypical web applications and web services,  any server could be selected to handle the next request.  With a Genero Web Application, the fglrun process remains alive for the duration of the web application holding data in memory and connections to database cursors, etc.  and it is important that all requests associated with an individual web application are sent back to the same server where this fglrun process is waiting.
 
In our GAS documentation, the concept of sending requests back to the same server is called session-bound request processing.  This is required for Genero Web Applications and also for Genero Web Services that have been configured to be sticky.  For normal Genero Web Services, a more traditional web architecture can be used with sessionless request processing where it does not matter what server processes each individual request.

Read more at https://4js.com/ask-reuben/ig-221/

 6 
 on: April 26, 2024, 02:18:25 am 
Started by Reuben B. - Last post by Reuben B.
Good developers are fundamentally "lazy" in that they will find a smart way to code something once rather than repeating code or actions unnecessarily. 

One tool that developers use to reduce coding is ui.Form.setDefaultInitiailizer.  This is a method that defines a function that will be called every time a form is opened.  This function can then be used to do things liking adding elements to the form, adding attributes to widgets and containers,  or make changes to the form based on certain conditions.

Read more at https://4js.com/ask-reuben/ig-220/

 7 
 on: April 26, 2024, 02:16:39 am 
Started by Reuben B. - Last post by Reuben B.
The concept of folder and page is controlled by the front-end.  The folder page that has the field with focus will be brought to the front by the front-end.  You can provide hints with the ui.Form.ensureElementVisible() method for the case when the field with focus is not in a folder or there is no focusable field (i.e. in a MENU statement), but there is no ui.Form method that explicitly sets the current folder page.
 
Conversely there is no ui.Form method that will return the current folder page.
 
You can write a function that will return the current folder page in some circumstances.

Read more at https://4js.com/ask-reuben/ig-219/

 8 
 on: April 26, 2024, 01:33:29 am 
Started by Reuben B. - Last post by Reuben B.
The title for this week's article is a snowclone of the phrase "It’s The Economy, Stupid." , a phrase that was coined during Bill Clinton’s election campaign (it even has its own Wikipedia page) and has come to be repeated in popular culture with the word “economy” substituted for another word.  It is a phrase that enters my head when I take something that I know works, move it or change it in some way to use something new, and then hit an initially baffling error.
 
In such circumstances it is typically because an environment variable is not set correctly.  The saying "It's The Environment, Stupid" helps make me make sure that I check that Environment Variables have the value I expect them to be.  The risqué nature of the phrase helping it stick in my mind and execute some steps quickly to compare environments before I go off down the wrong path.

Read more at https://4js.com/ask-reuben/ig-218/

 9 
 on: April 26, 2024, 01:30:35 am 
Started by Reuben B. - Last post by Reuben B.
I have seen this mistake a few times now so I felt it deserves an article.  It occurs when you attempt to use the ATTRIBUTES clause on a DYNAMIC ARRAY OF RECORD.  It looks like the ATTRIBUTES clause is being ignored but what has actually happened is that you have put it in the wrong place, you have added it to the RECORD when you should add it to the ARRAY.

Read more at https://4js.com/ask-reuben/ig-217/

 10 
 on: April 26, 2024, 01:28:42 am 
Started by Reuben B. - Last post by Reuben B.
One of the characteristics of our community is that having mostly come from Informix-4gl backgrounds, they have practises that were determined by what Informix provided many years ago.  In some cases, Informix did not dictate something and so Informix-4gl users developed their own way of doing things.  These are of course all different.
 
One of those areas was how finished applications were bundled and deployed onto production servers.  You would have developed your own procedures  for figuring out what files to bundle up and ship to your customers, and then how to install it.  No two Informix-4gl developers would have the same set of procedures.
 
Within the Genero stack we have endeavoured to provide a more complete ecosystem for you to build, and deploy applications.  This include the concept of a Genero Archive.

Read more at https://4js.com/ask-reuben/ig-216/

Pages: [1] 2 3 ... 10
Powered by SMF 1.1.21 | SMF © 2015, Simple Machines