Article
Yuri Marx · Apr 4 12m read
Store Mindmaps using Globals

  

Globals are the core of the InterSystems IRIS for data persistence. It is flexible, allowing store JSON documents, relational data, object oriented data, OLAP cubes and custom data models, like Mindmaps. To see how to store, delete and get mindmap data using globals, follow these steps:

1. Clone/git pull the repo into any local directory

3 2
1 102

Motivation

This project was thought of when I was thinking of how to let Python code deal naturally with the scalable storage and efficient retrieving mechanism given by IRIS globals, through Embedded Python.

My initial idea was to create a kind of Python dictionary implementation using globals, but soon I realized that I should deal with object abstraction first.

So, I started creating some Python classes that could wrap Python objects, storing and retrieving their data in globals, i.e., serializing and deserializing Python objects in IRIS globals.

1 0
0 64

This example demonstrates the difference you may experience when you write to
Gllobals directly from Embedded Python compared to native ObjectScript.

To make this demo useful I start 2 background jobs that simply write sequentially
to a dedicated global. A common control method signals for a synchronous start.
Similar a common stop & view interrupts data feeding.

That's the principle process:

2 1
0 122

Hi developers!

As you probably noticed in IRIS 2021 the names of globals are random.

And if you create IRIS classes with DDL and want to be sure what global was created you probably would want to provide a name.

And indeed you can do it. 

Use WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' in CREATE Table to make it work. Documentation. See the example below:

3 11
0 259

Hey developers!

Sometimes we need to insert or refer to the data of classes directly in globals.

And maybe a lot of you expect that data structure of global with records is:

^Sample.Person(Id)=$listbuild("",col1,col2,...,coln).

And this article is a heads up, that this is not always true, don't expect it as granted!

7 1
0 193

I have created a package to export a Global into JSON object file and to re-create it by reloading from this file   
embeddedPython refers to the new available technologies. It should be understood as a learning exercise of 
how to handle the language interfaces. Only Global nodes containing data are presented in the generated JSON file.
Differently from the previous example, this one is using embedded Python only, no ObjectScript. Therefore PURE

8 2
0 268
Article
Robert Cemper · Jan 24 1m read
GlobalToJSON-Academic

I have created a package that offers a utility to load a Global into JSON object and reverse     
to create a Global from this type of JSON object. Academic refers to the structure created.
Each logical node of the Global is presented separately with all its descendants.
Even if they don't contain any stored data.

2 1
0 127

For some years I missed being able to offer, to everybody interested in ObjectScript, a tutorial more or less complete, to start with ObjectScript. Something that could help more and make things easier to those new developers that come to our technology... something intermediate, halfway between the common "Hello World!", that doesn't really get you further, and the "Advanced Training", that is unaffordable because of lack of time,etc.

If there were something truly helpful not only as an introduction to the ecosystem, but as a starting point, as a boost, to really start to walk into ObjectScript and move forward by yourself... wouldn't that be awesome?

7 7
0 389
Article
Rob Tweed · Dec 20, 2021 1m read
Holiday Reading: What Lies Beneath!

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. 

10 5
4 321

I'd like to share with you some storage features that also exist in Caché but are almost 
unknown and mostly not used. They are of course available in IRIS and gain importance
with large and distributed storage architectures.

14 0
0 286

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:

https://github.com/robtweed/global_storage

Amongst other things you'll discover that:

8 4
2 442
Article
Robert Cemper · Feb 10, 2021 3m read
Using ZPM for Node.js

Inspired by  @Evgeny Shvarov  and his recent article 
Deploying InterSystems IRIS Embedded Python Solutions with ZPM Package Manager
I propagated the idea forward to do the same also for modules in Node.js.
The case is based on my example of IRIS Native API for Node.js.

To anticipate the obvious reply that InterSystems IRIS supports WebSockets natively as a client:
This is correct and here is my aged related article with the link to the example in OEX

8 1
0 236

Making a blog using Python + IRIS Globals

Since I started to use internet (late 90's), I always had a CMS (content management system) present to make easier post
any information in a blog, social media or even an enterprise page. And later years putting all my code into github I
used to document it on a markdown file. Observing how easy could be persisting data into Intersystems IRIS with the
Native API I decided to make this application and force myself to forget a little of SQL and stay open to key-value database
model.

4 2
0 256

Hi developers!

Often we need to deploy some data along with code pieces of the application.

And for InterSystems IRIS developers the question could sound: "How can I deploy the data I have in globals?"

InterSystems IRIS Globals Model QuickStart | InterSystems

Here I want to suggest to you one of the approaches - deploying global data using the ZPM package manager.

1 0
0 216

QEWD is assumed by most people to only integrate with IRIS (or Cache) via a connection through IRIS's high-performance C interface.  This requires QEWD (and its Node.js environment) to be installed and configured on the same machine as IRIS.

I'm frequently asked if QEWD can run on a separate server (or servers), and access IRIS (or Cache) over a network connection.  The answer is yes it can, but the information on how to set it up in this way has been admittedly a bit tricky to discover.

0 0
0 174
Article
Robert Cemper · Nov 21, 2020 3m read
ObjectScript over ODBC
This is a coding example working on IRIS 2020.1 and on Caché 2018.1.3 
It will not be kept in sync with new versions      
It is also NOT serviced by InterSystems Support !   
Every now and then you may encounter a situation where for various reasons
ODBC is the only option to access a remote system. Which is sufficient as long as you need to examine or change tables.
But you can't directly execute some commands or change some Global.

 
Special thanks @Anna Golitsyna for inspiring me to publish this.

11 0
0 316