Article
· Jul 19, 2020 1m read
Organize ZLANG

The guide “Extending Languages with %ZLANG Routines”
Tells you all details you need to know to extend your programming language.
EXCEPT: How to do it in a clean way.

This example of a %ZLANGC00.mac may show a possible approach
to get an easy to overview and to manage setup.
With less than 50 lines of code you might not be affected.
But if your Studio shows close to 1000 rows or more you may get in troubles.

9 0
0 268
Article
· Jul 4, 2020 4m read
Editor Archaeology

During the development of the Terminal Multi-Line Command Editor I discovered in my IRIS installation
a piece of software that I just can classify as a historic artifact. And it is still fully operational !!!

As it dates back to times before InterSystems was founded in 1978 you may understand my surprise.
I personally stepped into that environment in 1978 and used it then for daily work.

16 5
0 282
Article
· Jul 4, 2020 2m read
Terminal Multi-Line Command Editor

The Command extension enables the execution of Multi-Line Commands from Terminal prompt.

Terminal Multi-Line Input with Edit, Insert, Delete, Print extension for IRIS and Caché
IRIS and Caché have just single command lines in terminal available
This Multi-Line Commands Editor also will execute the Multi-line Commands.
In addition, it is independent of access to %SYS and can be installed in any namespace

Special thanks to @Jeffrey Drumm who inspired me to this and supported me as beta-tester.

8 1
0 1.2K
Article
· Jun 29, 2020 3m read
Terminal Multi-Line Option


The Command extension enables the execution of Multi-Line Commands from Terminal prompt.

Installation & Execution

Import %ZML.xml to Namespace %SYS

Optionally you may add this line to your %ZLANGC00.mac for a simplified use:

ZML do ^%zml quit  ; add multi line command in terminal

and
USER>zml

otherwise, just call it from the terminal command prompt

10 0
1 536

As you know in Caché / IRIS you have the possibility to define a property as Multidimensional as documented here:
https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_proplit#GOBJ_proplit_multidim
and the explanation of how to use it
https://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=GOBJ_proplit#GOBJ_proplit_multidim_values

Though the access is quite comfortable (in traditional COS sense) there are 2 main restrictions that hurt:

#1) It is not saved to disk unless your application includes code to save it specifically.
#2) It cannot be stored in or exposed through SQL tables
there are some more
I'll show how to overcome these limits

14 1
2 545
Article
· Apr 26, 2020 5m read
Materialized Views

A VIEW in SQL is basically a prepared SQL statement.
It has to be executed and assembled like any other SQL query.
MATERIALIZED VIEW means that the content is collected before hands and can be retrieved rather fast.
I saw the concept first with my favorite competitor named O* and they made a lot of noise about it.

{ favorite: because I could win every benchmark against them devil }

12 3
1 734
Article
· Apr 25, 2020 2m read
Static WHERE Conditions

The typical WHERE condition in SQL relates mostly to some content of the rows you work on.
So it needs to be calculated and checked for each row you access.
Differently (and that's why I named it STATIC) is a WHERE condition that is independent of the rows you access.

14 2
1 490
Article
· Dec 9, 2019 1m read
SUDOKU demo

A demo in traditional style COS

This was written based on a previous trial in .XLS
It is far from being perfect. Rather a challenge for
improvement in all directions (code, interface, ...)
So anyone feel invited to make it better.

13 0
0 552
Article
· Jun 10, 2019 2m read
GitHub now supports ObjectScript

Hey developers,

I have great news for you. A few days ago, GitHub was updated with the latest version of linguist project, which is being used to recognize source code types in repositories. It helps to determine which programming language had been used in every file of the repository. Repository statistics section shows the results of this module work.

Also, you can search across all available GitHub repositories for any chosen language.

6 3
1 717
Article
· Jun 5, 2019 1m read
Using Interjob Communication (IJC)

Earlier I've written about command pipes.
This is the internal variant of a PIPE.

To make this more tangible and visible for you I prepared a small example
The scenario is to run a monitoring process that receives
input from an unknown number of sensors. (Could be Lab equipment or similar.)

12 0
0 407
Article
· Jun 4, 2019 1m read
Favourite editor for programming

There are many projects which work on InterSystems products, and they are not always written only in ObjectScript. I think some of you working with different programming languages and already have some experience with other editors, and hope you already have a favourite online editor.

My current choice is VSCode, whereas you may already know I have added an extension to support ObjectScript.

1 8
0 674
Article
· May 30, 2019 2m read
BackgroundJobs over ECP

Running a Background Job using the JOB command is a well-known feature.
Using ECP to distribute databases to several servers is also well-known.
But using the combination of both to run a process on a different server
seems to be a rare case.

Sure there are enough other ways to start a remote job, but the special
combination with ECP where the application server starts a process on a
data server without additional networking is worth to be remembered.

13 0
1 592
Article
· May 29, 2019 1m read
Simple Remote Server Control

This example is extracted from a long-running installation.
The purpose is to have simple monitoring of several servers at a rather primitive level.
Just slightly more intelligent than a raw PING. But still easy to integrate.
It avoids the overkill of information you are often confronted with while you are just
interested in the number of active processes or similar basic figures.
The example shows a basic skeleton that might be easily filled by your real needs.

It consists of 3 sections:

13 0
2 547
Article
· Dec 28, 2018 2m read
Docker-compose default network conflicts

I recently had to diagnose a networking problem I was having when attached to our corporate network. I was seeing an unknown bridge network being defined that shared the same IP address space as the company network thus blocking access to company resources. This bridge network was separate from the Docker0 bridge network which the docker engine sets up. Docker was configured with a bip (bridge ip) address to prevent docker form using an address space that create a conflict.

1 2
1 5.1K
Article
· Feb 27, 2018 2m read
Dataset Lightweight M:N

This data set demonstrates a basic M:N relationship between 2 tables
The dataset is targeted to show a slim implementation of M:N
It's no question that other implementations exist. But at significantly more storage consumption.

6 0
0 275
Article
· Feb 26, 2018 2m read
M:N Relationship

If you have worked with Caché Objects,
You know already all about Relationships (one:many , parent:child) ...
But you will not find a word on many:many relationships in the docs.

But I met the question quite often from new adopters of Caché objects:
"Is it possible to implement many:many relationships ?" YES - of course !

12 7
0 1.1K

Too often users finding themselves in need of a software solution do not consider “open source” vs. “proprietary” alternative. Most of them either have their go-to favorite developer or just google for reviews and ready-made answers. However, this alternative must be the starting point of their search, as the decision has the most consequences.

It is not an overstatement to say that open source is the future of technology, albeit, it has its own unique challenges. Here is what users, especially corporate users should consider choosing the software for their business needs.

2 2
0 1K

A request came from a customer to estimate how long it would take to encrypt a database with cvencrypt utility.

This question is a little bit like how long is a piece of string — it depends. But its an interesting question. The answer primarily depends on the performance of CPU and storage on the target platform the customer is using, so the answer is more about coming up with a simple methodology that can be used to benchmark the CPU and storage while running cvencrypt.

6 0
1 962
Article
· Nov 14, 2016 1m read
openssl for Windows

Question:

Where can I find the openssl command line tool for Windows?

Answer:

The openssl command line utility comes with Unix, but not with Windows. It is used for working with security certificates.

The main site is

https://www.openssl.org/

There are no binaries on this site but in the Community section there is a link for binaries which leads to:

1 0
0 951

Presenter: Benjamin De Boe
Task: Perform advanced analytics on huge amounts of data
Approach: Use third-party analytics frameworks to leverage your entire clustered environment

In this session, we’ll explain what machine learning means and how it can help you gain insights in vast amounts of data, leveraging complex environments.

Content related to this session, including slides, video and additional learning content can be found here.

0 0
0 266

Presenter: Harry Tong
Task: Load terabytes of data into a distributed environment
Approach: Leverage parallelism and open-source tools

In this session, we’ll discuss how to load TBs of data into a distributed environment, leveraging parallelism and open source to reach exceptional load rates.

Content related to this session, including slides, video and additional learning content can be found here.

0 0
0 321

Presenter: Tony Pepper
Task: Host an application based on InterSystems’ technology in a public cloud environment
Approach: Provide a checklist of things to think about before you deploy

Are you looking at hosting your applications in the public cloud? This talk will highlight what you need to think about when deploying InterSystems technology in any public cloud environment.

Content related to this session, including slides, video and additional learning content can be found here.

1 0
0 199