Martyn's blog for the Revelation Software community, sharing ideas, news, views and more. NOTE – Views and opinions expressed in this blog are personal and do not necessarily represent those of Revelation Software.
Carl has recently been working hard on writing documention for the recently released OpenInsight 10.1 version and some completed chapters of the brand new ‘OpenInsight Presentation Server Reference Manual’ are now available from his RevDevX blog.
Work is ongoing to complete the other chapters and to integrate this into OpenInsight’s online help system and the main website. In the meantime, please refer Carl’s blog page (linked below) as needed.
From time to time, I am asked about managing the dreaded ‘Not Responding’ message in the caption bar of your running windows. “Use Yield()” has usually been the response, but Carl has just written and released a posting on his RevDevX blog which discusses this topic and how it is much better handled in OpenInsight 10.1.
With the recent release of 10.1 to the WORKS community and heightened interest in the new version, I thought that I would mention Carl’s blog posting so that you do not miss this useful new information and new feature of OpenInsight 10. Carl’s posting can be found here – Yield or Die! | Building OpenInsight 10 (revdevx.com).
Sorry, it has been a while since I have updated my Revelation Software blog. It is not because we have been quiet, in fact RevUS are gearing up for the long anticipated OpenInsight 10.1 release very soon. The release where many of our VARs and developers will look to come up to the latest version of the OpenInsight for Desktop and Web based application development suite of tools.
In addition, I have personally been involved with heavily testing the new OI 10.1 version by building a brand new application for one of our clients and which we hope to make available globally in the New Year. Exciting times.
However, I felt that I ought to jump on here and mention the Log4Shell security issue that several of our VARs have contacted me about this week. We are not aware of any issues with OpenInsight 9.x and 10.x, and we are not anticipating any.
For Revelation’s official announcement on the vulnerability, please review Bryan’s posting on the forum on http://www.revelation.com, copied below.
In the meantime, can I please take this opportunity to wish you a very Merry Christmas and a very Happy and Prosperous New Year.
Revelation Software’s latest release of OpenInsight, version 10.1, has changes, new functionality, and improved performance throughout the product. In this webinar, Bob Carten and Bryan Shumsky will be highlighting and demonstrating some of these improvements, including a new Database Tool panel, a brand new Examples application, new REST functionality, updated help and support documents, and more.
The new Examples application, included in the 10.1 download, provides sample forms, reports, popups, and source code. It is intended to show developers some of what can be done with OpenInsight 10.1, and perhaps more importantly, how to get it done, with real world, practical examples.
This webinar will also show menu designer updates, new databinding functionality, changes to the Form Designer tool panel, plus more.
No matter your development focus, there is probably something for you in this new version of OpenInsight. We strongly recommend that anyone who is considering developing applications in OpenInsight attend this webinar.
Don’t miss this live event on Thursday, July 22nd, 11:00 AM PT / 2:00 PM ET.
Register Now to attend the webinar OpenInsight 10.1: New and Improved.
So, this is more of a note to myself, more than anything but some of you might find this useful.
For the longest time, I have been battling with enabling and disabling Cut, Copy and Paste buttons in my applications. They were all handled on a per control basis with cumbersome code trying to work out how to set the buttons. I was never professional and never very good.
Enter OpenInsight 10 and the new EditStateChanged property, Carl’s OI10 blog posting on the subject and a lesson from Andrew about promoted events.
A couple of hours later (mostly learning and debugging, so most of you would do this in 5 minutes), I now have a system where the Cut, Copy and Paste buttons are correctly enabling and disabling based on the state of the system. For example, you select some text and the Copy and Cut buttons enable. You clear the Windows Clipboard and the Paste button disables.
OpenInisght 10 really is making building Windows desktop and web applications easier and easier.
I must apologise for the delay in getting my new demo application (video preview linked above) to RevUS and in turn to our WORKS subscribers. A few of you have been asking when and how you can get hold of the system and I thought it best to provide everyone with an update.
The reason for the delay is that I was proud of what I had managed to achieve using OpenInsight 10 and I thought that I ought to run it passed Andrew before releasing it to the world. And, therein rests lesson number one – You are rarely as clever as you think you are when it comes to things that you don’t really understand and boy, did I come down to earth with a bump.
I jest of course. I do these little projects for personal development and to better understand the tools that I am selling here at Revelation. I therefore know that what I do is very basic and there are always better and more efficient ways of doing things. This project has been one huge example of that fact.
So, I gave Andrew access to the system and he reviewed the programs. Pretty much every program needs some enhancement of varying degrees. Much of it is repetitive and one or two of the programs have been completely rewritten by Andrew for me. I’ve just needed to copy in the draft code and debug for some programs and I have had to fully understand and apply that new found knowledge to others – learning lots and lots and lots along the way. The code will no doubt not be 100% efficient and right, but it’ll be a whole lot closer following this work.
Now, his post has sounded a little negative thus far and that is all tongue in cheek. But, I did get my own back last week by being a massive thorn in Andrew’s side. Some questions were painfully stupid, leaving me hanging my head in shame and sometimes I was just too slow to grasp the concept, but Andrew has been super patient with me and I am now nearing completion of the code changes. There is just one large hurdle to overcome and yes, I will be asking Andrew for his help with that one.
So for his time and patience and understanding, I’d like to thank Andrew for helping me to make this new examples application so, so, so, so much better.
So what have been some of the changes. I will not go into all of them but some noteworthy changes are:
The use of arrays in place of stacked Set_Property statements. In some places, I had stacked half a dozen or more Set_Property calls, not knowing that each was an overhead in its own right. These have now been changed for arrays and only a single call which is much more efficient.
I had a few places where I was existing out of programs mid-way through the code. Andrew taught me to use a different technique to let the code run to the end properly.
I had been using <-1> in places when working with some arrays and he has shown me how to change that for better and more efficient code.
I had a MOUSEMOVE event which was being checked hundreds (possibly) or times as I moved the mouse over buttons. A quick change to my code now only does this once as I enter the button and not as I move across it.
The list goes on, but it has been a fascinating and sometimes frustrating few days. The end result is a head that is about to explode but better code for those of you that will be diving into it to see how things have been done.
Again, a massive personal thank you to Andrew for the education and his time.
With the release of the 10.0.8 beta program, I decided to give the desktop development side of the software a good test and I looked around at a system that I could write from the ground up. This is nothing new because, now that things are so much easier in version 10 and because they enable me as a junior developer to build functional systems, I have taken this approach to test most of the version 10 releases. It is also much nicer to build something with some perceived value, you don’t feel like you are wasting your time.
Anyway, here is where I let the cat out of the bag and expose my awful guitar skills. For the last year of so, I have been trying to learn how to play the guitar and (under a pseudonym) I have been documenting my journey online. Progress has been woefully slow and I had been trying to keep motivated using some free online practice logging tools but, as usual, none included all of the things that I wanted to cover.
Enter OpenInsight 10 and another hair brained idea to build my own system.
Version 10.0.8 is definitely the best OpenInsight release yet and I have been amazed at what I can now build using the software. So much so, I have invested a lot of time learning how to build this system better than my previous script driven systems. I have removed a lot of my code and used the system code (via simply setting the properties) and I have also taken the leap into the world of commuter modules. With the ability to have both data entry form AND your code open at the same time, makes working in OpenInsight 10 a dream.
Anyway, with some tuition along the way, including some help from Revelation Software developers to create a wickedly awesome on screen report with animated charts, and a bucket load of time, mixed with the odd tear or two (sometimes I find writing code so frustrating), I am now very close to completing the system.
So why this article?
Well, I am hoping to make it available to all of our valued WORKS subscribers, as a brand new example application. Some (most) of the code that I have written is not optimised and it is not an example of best practice (I am still a junior, learning fast) but I hope that the system will provide a nice example of how Windows based systems can easily be put together using OpenInsight 10. And, if I can produce this as a junior developer, just imagine what you guys can produce as professionals.
I will be making this system available to my YouTube subscribers, via my personal guitar YouTube channel (My Sic String Journey). That system will be empty of data and supplied via a single setup.exe file. Revelation Software will also make the system available to WORKS subscribers.
OpenInsight 10.0.8 and above now optionally installs an open-source version of the Java Runtime Environment (JRE). During the installation process, you can choose to either install this open-source version, or – if you have a different version of Java already on your system, or you wish to manually install a version of Java – you can opt to NOT install the open-source version. Note that the open-source version installed via the installation process does not update your system paths; rather, it puts the JRE directly inside the OpenInsight folder. Both the commands (batch files) to install the EngineServer service, and to run the Engine Server in “debug” mode, are aware of the location of the JRE and thus do not require modifications to the workstation’s/server’s environment settings.
OpenInsight’s RLIST functionality and performance, improved with the 10.0.7 release, has now been changed to use this new version of RLIST (RLISTX) by default. If you wish to configure your system to use legacy RLIST behavior, you must create or update a configuration record in SYSENV. Using the Record Editor, or the Configuration Record option from the OI Console, you must create a CFG_RTI_RLIST record in SYSENV, with RLIST9 in field 1. If this record doesn’t exist, or has anything other than RLIST9 in field 1, then enhanced RLIST behavior (“RLIST X”) and functionality will remain. (Note that the CFG_RTI_RLIST information is cached by your system; after changing this value, you should exit and re-enter OpenInsight).
Other notable changes in the OpenInsight 10.0.8 release include an improved startup process, better OLE and custom property support in the Form Designer, and newly customizable login dialogs.
The 10.0.8 Release includes enhancements to:
Click HERE to view or download the OpenInsight 10.0.8 ChangeLog.
<Originally published in Revelation Software’s September 2020 newsletter>
Hi Everyone, I hope that you are all well, staying safe during these Covid-19 days and that the various government measures around the world are not impacting on you, your families and your businesses too much.
Looking back at the blog, I cannot believe how long it has been since I posted anything here. That is not a sign of how busy, or not busy, I have been and I have been keeping very busy over the nine months or so.
Personally, I have been working from home throughout the lockdown period in the UK and nothing much really changed, other than my daughter taking over my office and regular workplace. Thankfully, I can work pretty much anywhere. I hope that you have been as fortunate in your workplace, although I know that some of you have struggled to settle into working from home and you are glad to be getting back t osome level of normality.
On the work side, I was really busy at the beginning of lockdown. This was mostly helping people with setting up remote workers as countless numbers of end users were moved from office to home working. I am pleased to say that pretty much everyone relocated their OpenInsight end users to remote working, regardless of whether this involved an eay O4W move or a slightly more involved OI desktop move.
The process also had one interesting benefit. It flagged up a number of systems that were not necessarily configured for optimal performance and stability and my support colleagues worked with those clients to help them to get the best from their remote access solutions.
Following this floury of suport activity, which also resulted in a number of new licenses, my client side activity settled back to normal levels for the duration of the lockdown and July and August are seasonally slow.
For me, this was the perfect time for RevUS to begin putting the finishing touches to the next OpenInsight release. I was given access to the 10.0.8 alpha and then beta releases and I set to building myself a brand new application. This would be written for the desktop and entirely in version 10.0.8. The development has gone well and, once completed, I hope to make it availble to all of our WORKS subscribers.
“… this is THE release when I think that OpenInsight and other Multivalue developers should begin to explore OpenInsight and how it can be used to modernise and benefit their application development.“
This project has enabed me to get more and more into application development with OpenInsight 10.0.8 and to learn more and more along the way. I will write more about the application itself nearer to when it is released, but it features commuter modules heavily (whereas the EXAMPLES application in OpenInsight is largely script based), some nice pretty) screens and I hope that it will feature a complex report with charts and more. The is an area that I am working on with my support colleagues at the moment.
I have been amazed at what a junior developer can build using OI10 and this is never moreso that now with the new version. The process of application development using the new version is becoming quicker and more enjoyable with each release. In addition, in my opinion, this is THE release when I think that OpenInsight and other Multivalue developers should begin to explore OpenInsight and how it can be used to modernise and benefit their application development.
Personally, I would have liked for this to be version 10.1, yes I really do think that it is good enough. But, I fully respect Revelation’s decision to hold this as another point release and especially as more and more Revelation developers are currently making the move to version 10 and more developers are reporting on their experiences of running their older applications through the conversion.
Will the next release be that ground breaking 10.1, we will have to wait and see, but I certainly hope that it will.
So, if you are an OpenInsight WORKS subscriber, you can now download both the 10.0.8 upgrade and full install files from the private WORKS area. If you are not yet on WORKS, or your subscription has since expired, you can still get your hands on the usual 30 day evaluation which has just been updated to 10.0.8.
For those of you that sinply want an update on the main changes, I have copied those below for your reading pleasure.
So, I’ll leave this long posting for now and I’ll be back very soon (I hope) with details of my new OI 10.0.8 written demo app.
OpenIsight 10.0.8 Release Notes
Major Changes in the OpenInsight 10.0.8 Release
OpenInsight now provides an option to change the precision of mathematical operations. This can be set by calling the setEPMode stored procedure, passing in 1 to enable and 0 to disable the functionality. By default, the extended precision math will maintain 32 digits of precision, but this can be modified by calling the setEPModePrecision stored procedure, passing in the number of digits of precision desired. Both the enabling of extended precision, and the default number of digits, can also be defined in the application properties. The following operators/functions are affected: +, +=, -, -=, *, /, ==, =, !=, <>, >, <, >=,<=, mod(), int(), abs(), atan(), cos(), exp(), ln(), pwr(), sin(), sqrt(), tan()
OpenInsight’s RLIST functionality and performance have also been improved starting with the 10.0.7 release. A new version of RLIST (RLISTX), which optionally replaces and extends RLIST, is available to enable these enhancements. RLISTX merges the features of RLIST, SELECT_INTO, OLIST/RUN_REPORT, and RTI_XBAND. One obvious change is the ability to pass in multiple select statements to RLIST in a single call, @FM delimited. Using the Record Editor, or the Configuration Record option from the OI Console, you must create a CFG_RTI_RLIST record in SYSENV, with RLISTX in field 1. If this record doesn’t exist, or has anything other than RLISTX in field 1, then normal RLIST behavior (“RLIST 9”) and functionality will remain. (Note that the CFG_RTI_RLIST information is cached by your system; after changing this value, you should exit and re-enter OpenInsight).
The MultiValue BFS (MVBFS) connections for QM, D3 and U2 have been enhanced to submit multiple select lists to the “back end” host for bulk processing whenever possible. This enhancement can result in significant performance improvements when using an MVBFS connection. Note that these changes work in conjunction with the RLISTX changes discussed above; you must enable RLISTX and install a “plugin” stored procedure on the host system to access these changes. There is now a button on the MVBFS connection designer which will install this plugin (a program named RTI_MVBFS_SERVER_PLUGIN_U2, RTI_MVBFS_SERVER_PLUGIN_D3, or RTI_MVBFS_SERVER_PLUGIN_QM).
Starting with OpenInsight 10.0.4, “child” processes launched from OpenInsight can be configured so that they do not consume additional license seats. In particular, CTO, AREV64, BRW, and O4W calls (using the engine server’s built-in web server) made from a copy of OpenInsight will not count against the licensed count of users.
For example, a single user copy of OpenInsight can now run the IDE, a CTO session, and generate a BRW report at the same time.
Note that this enhancement requires both OpenInsight 10.0.4 (or above), and the Universal Driver 5.2 (or above). OpenInsight 10.0.8 will work with the Universal Driver 5.1, but it will not exhibit these license enhancements until it is “paired” with a UD 5.2.
To take advantage of this license enhancement for O4W and engine server tasks, users/developers must update their eserver.cfg file (either directly or through the Settings dialogs). In particular, any passwords that are currently explicitly embedded in the eserver.cfg can be replaced with an asterisk (“*”); this indicates that the specific connection should use the enhanced licensing. This also has the additional advantage of no longer requiring manual updates to the eserver.cfg file when passwords are changed for the applications or users defined in the connection string. (As an additional enhancement, the username can also be replaced with “*” if you wish to use the ‘default user’ created for an application).
For example, if your eserver.cfg previously contained the following lines:
Oracle (the owner of Java) announced that, starting April 2019, the popular Java version 8 would no longer receive any updates; and that Java version 11 (and later) would only be available for commercial “subscribers” (with a required annual fee). Since Oracle’s version of Java has been the one most prominently available for download, it is extremely likely that the version of Java installed on your/your users/your clients systems is Oracle’s edition. Oracle’s changes may require you to change, or license, the version of Java you have installed.
Java was developed in 1991 at Sun Microsystems with the programming principles of “Simple, Robust, Portable, Platform-independent, Secured, High Performance, Multithreaded, Architecture Neutral, Object-Oriented, Interpreted and Dynamic”. Its primary objective was to be a portable, simple, and secure programming language. Since its introduction, Java has become one of the most widely adopted programming languages, used by over 9 million developers and running on 7 billion devices worldwide. Part of its popularity can be traced to the fact that it has been open source software since 2006; however, in 2018 Oracle announced a series of licensing changes that has implications for all users of Java. Revelation Software uses Java as the programming language for its Engine Server and Telnet Server functionality, and so these changes may impact you and your clients/companies as well.
In order to potentially simplify the management of Java for our users, OpenInsight version 10.0.8 and later will include the OpenJDK JRE for Java (currently version 11); users can choose to allow the OpenInsight 10 installer set up this version of Java on their server system, or the installer can leave the JRE unconfigured if the user wishes to use a different solution for Java as described below.
To explain further, your options now include:
– Contracting with Oracle for a commercial annual license: This will include support and updates. For larger corporations, this may be a suitable solution;
– Switch to one of the remaining open source providers of Java (with or without paid support), known as OpenJDK: This is the recommended solution for customers who do not wish to contract directly with Oracle, and can be automatically installed via the OpenInsight 10 installation process;
– Remain on the (no-longer-supported) Java version 8: Since this has reached the end of Long Term Support, this option may potentially leave you/your users/your clients vulnerable to security issues that may arise in the future. This is not usually recommended.
For additional explanations of the licensing changes, and the various options (including URLs for downloads), please read this:
OpenJDK providers include Linux distros, AdoptOpenJDK, Amazon, Azul, BellSoft, IBM, jClarity, Red Hat, SAP, and others; versions of OpenJDK Java can be downloaded from any of these sources. For example: