Working in support, I usually get asked how many days I should keep journals. Should it be two days or after two backups? More? Less? Why two?
The correct answer (for most of the environments) is that you should keep the journals since the last validated Backup. I.e., until you don't check if a Backup is valid (restoring the file and checking with the Integrity utility), you can't be sure there is a good copy of your data and can't purge the journals safely.
For several weeks I'm creating reviews on OEX. So I'd like to explain to you the criteria that I apply to find my ratings. Of course, each reviewer is an independent person and has his own criteria and his own opinion. And that's good and important! As Winston Churchill once said:
"If 2 people always have the same opinion, then 1 of them is superfluous"
As you can see in my profile I teach at a university and I wanted to share my take on teaching IRIS (or Caché before it).
It’s been some time but I remember seeing a series of articles by @Yuri Marx earlier this year about the course “Developing with InterSystems Objects and SQL”. He actually gave a brief description of what’s done on Day 1, Day 2, and Day 3 with comments from instructor @Joel Solon. And I thought to myself, it may be interesting to share my experience.
I thought i would share a little method I knocked together to traverse and compare 2 JSON objects for basic equivilance. I'm currently working on some data migration, and wanted a basic sanity check to validate that the JSON output is basically equivliant between the old and new, excluding a few things like timestamps.
It's a basic little recurvsive method, that will bubble up any differences over a nested structure. It's very low tech, as that's all I need it to do, but I thought it might be useful for others?
What do you think If I will say you, that very soon you will be able to connect to IRIS from the application written in Rust.
What is Rust
Rust is a multi-paradigm programming language designed for performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. Rust achieves memory safety without garbage collection, and reference counting is optional. (c) Wikipedia
For those of you who might be new to IRIS, and even those who have used Cache or IRIS for some time but want to explore beyond its usually-assumed boundaries and practices, you might want to dive into this detailed exploration of the database engine that is at its heart, and discover just what you can really do with it, going way beyond what InterSystems have done with it for you.
Embedded python gives the option to load and run python code in the InterSystems IRIS server. You can either use library modules from Python pip, like numpy, pandas, etc, or you can write your own python modules in the form of standalone py files.
So once you are happy with the development phase of the IRIS Embedded Python solution there is another very important question of how the solution could be deployed.
One of the options you can consider is using the ZPM Package manager which is described in this article.
In the past, technical documentation of the source code and software products was generated in chm, pdf files and documentation generators of the programming languages themselves. This old approach had the following limitations: 1. Outdated documentation; 2. Non-interactive and difficult to consult documentation; 3. Layout unresponsive, unfriendly and not adherent to HTML; 4. Inability to customize the layout of the documentation; 5. Inability to have HTML 5 documentation online and offline. 6. Lack of Markdown support.
I present to you the project of editors in terminal mode. The full-screen editor of routines, arrays and text files in terminal mode can be useful to you when debugging your project in docker or when your web interface is unavailable or limited for some reason.
Although this project is self-sufficient, I decided to make it as an addition to the ‘zapm’ module for the convenience of calling editor commands.
If your instance does not have a ZPM, then you can install the zapm-editor module in one line:
This is the second piece in our series on 2021.2 SQL enhancements delivering an adaptive, high-performance SQL experience. In this article, we'll zoom in on the innovations in gathering Table Statistics, which are of course the primary input for the Run Time Plan Choice capability we described in the previous article.
Just want to share an old but always relevant best practice on namespaces changing @Dmitry Maslennikov shared with me (again).
classmethod DoSomethingInSYS() as %Status
// try-catch in case there will be an error
// do something, e.g. config change
zn ns ; returning back to the namespace we came in the routine
And with new $namespace the method could be rewritten as:
classmethod DoSomethingInSYS() as %Status
// do something
So! The difference is that we don't need to change the namespace manually as it will be back automatically once we return the method.
and we don't need try-catch (at least for this purpose) too.
InterSystems IRIS 2020.1 includes PEX (Production EXtension Framework) to facilitate the development of IRIS Interoperability productions with components written in Java or .NET.
Thanks to PEX, an integration developer with knowledge of Java or .NET can benefit from the power, scalability, and robustness of the InterSystems IRIS Interoperability framework and be productive in no time.
Just in case you never heard about OFX before V1 was an attempt to create a dedicated SGML for banking and ignoring XML. Details. It evolved to XML but not for M$ MONEY. Today we would use JSON for similar tasks.
At the heart of IRIS and Cache is a very interesting database architecture that we, at M/Gateway Developments, refer to as "Global Storage". If you ever wanted to know more about the fundamentals and capabilities of this underlying database, you might want to read a major analysis we've put together:
I'm participating in the Developing with InterSystems Objects and SQL with Joel Solon. The course is very nice and I will share with you some tips I got during the training. Tips presented in the day 2:
Not so while ago GitHub introduced, ability to very quickly run VSCode in the browser for any repository hosted there. Press the . key on any repository or pull request, or swap .com with .dev in the URL, to go directly to a VS Code environment in your browser.
This VSCode is a light version of the Desktop version but works entirely in Browser. And due to this, it has a limitation for extensions which was allowed to work this way. And let me introduce the new version 1.2.1 of VSCode-ObjectScript extension which now supports running in Browser mode.