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.
It's possible to enable Ctrl+C / Ctrl+V in IRIS Terminal for Windows.
To do that, open Terminal and select Edit > User Settings and enable Windows edit accelerators. This settingspecifies whether the Terminal enables the common Windows edit shortcuts (Ctrl+C, Ctrl+V, Ctrl+Shift+V), in addition to the basic Terminal edit shortcuts (Ctrl+Insert and Shift+Insert).
After that Ctrl+C / Ctrl+V would work.
Also <SYNTAX> errors after incorrect copy/paste go away.
I really love documentaries! Last weekend I was watching a Netflix documentary called This is Pop, because it was Analytics Contest time and I thought: Why not creating a pop song analytics with InterSystems Iris?
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?
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"
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.
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.
Hi Developers!
Let me share with you some exercises from a workshop about developing interoperability components in Java using PEX (Production EXtension).
You will find slides and step by step exercises about:
Understanding simple PEX components coded in Java.
Making some changes on them.
All built using containers, so you don't need to build a local Java environment.
In this article I will explain how to Authenticate, Authorize and Audit by code by using CSP Web Application along with Enabling /Disabling and Authenticate/Unauthenticate any Web Application.
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.
Just want to share an old but always relevant best practice on namespaces changing @Dmitry Maslennikov shared with me (again).
Consider method:
classmethod DoSomethingInSYS() as %Status
{
set sc=$$$OK
set ns=$namespace
zn "%SYS"
// try-catch in case there will be an error
try {
// do something, e.g. config change
}
catch {}
zn ns ; returning back to the namespace we came in the routine
return sc
}
And with new $namespace the method could be rewritten as:
classmethod DoSomethingInSYS() as %Status
{
set sc=$$$OK
new $namespace
set $namespace="%SYS"
// do something
return sc
}
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.
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.
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.
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.
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.
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.
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:
Some changes in IRIS configuration require a restart of IRIS. This is no big issue as long as I have access to the server command line with sufficient privileges.
In a container, this is not always given. Stopping IRIS from the terminal/session prompt is no problem. But the restart after is.
Note1: container start-stop is no option as it might be removed by option --rm in docker run Note2: the target is linux (manly in docker). Windows is excluded
Hello everyone, let me introduce, one of my latest projects. It is a DataSource plugin for Grafana, which can connect directly to InterSystems IRIS and gather any data (in the future).
Apache Zeppelin it's a Multi-purpose notebook that allow you:
Data Ingestion
Data Discovery
Data Analytics
Data Visualization and Collaboration.
Apache Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. Currently Apache Zeppelin supports many interpreters such as Apache Spark, Apache Flink, Python, R, JDBC, Markdown and Shell.