Article
· May 22, 2022 1m read
Debugging Trick with SQL

I'm sure you have met this situation:

  • There is a bug in a System that you can't reproduce yourself locally
  • You need to run a few lines in the affected instance
  • You get full access to System Management Portal
  • But there is just no terminal, nor console, nor access with Studio, Atelier or VSCode
  • How to run your few lines for testing ???

19 3
5 891
Article
· May 14, 2022 2m read
M:N in Contest #1

M:N Relationship is a recurring object of my interest for a long time.
So the subject turns up with me repeatedly.
For this article, I found a nice example with TWO separate M:N relationships. Some M:N².

It is not pure fiction but taken from a closer view of OEX Contests that we run on a regular base.

9 2
1 330
Article
· Mar 27, 2022 2m read
Hacking Health Camp 2022 (day 3)

HHC-banner

Hi guys!

The final day of the Hacking Health Camp 2022 in Strasbourg, France, is upon us and today we will see all the wonderful creations of the teams. They worked hard through the night and our teams onsite and online worked with them and answered their questions.

5 1
0 202

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.

7 6
1 283
Article
· Nov 26, 2021 13m read
Traditional Debugging in ObjectScript

Finding errors in your code or examining unexpected behavior is the main purpose of Debugging
I will try to refresh the traditional tools away from the helpers you have in Studio, VScode, Serenji, ....
to the basics which have been there before your preferred EDI used it in the background.

19 10
3 1.2K
Article
· Oct 12, 2021 2m read
Generating OFX [V1]

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.

5 4
0 370
Article
· Sep 11, 2021 2m read
Successful Troubleshooting

During the last weeks, I was working on various issues and problems related to SW development.
I found that quite often problem analysis was mostly chasing issues just on the surface
but not really attacking the deeper reasons of the problem and follow the consequences.
It's like the doc that stops your leg bleeding but doesn't see that it is broken.

8 2
0 443

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 418

We are ridiculously good at mastering data. The data is clean, multi-sourced, related and we only publish it with resulting levels of decay that guarantee the data is current. We chose the HL7 Reference Information Model (RIM) to land the data, and enable exchange of the data through Fast Healthcare Interoperability Resources (FHIR®).

13 2
1 674
Article
· May 28, 2021 1m read
Fetch Upstream in GitHub

Hi colleagues!

Often when we collaborate to someone's repo in GitHub we do the following cycle:

Fork-Clone-Change-Commit-Push-Pull-Request-Merge to the original repo.

This is all great and works fine!

And if we want to make a second collaboration right after the merge you need to perform "Fetch upstream" to your forked repo first to "ingest" your own Pull-request in the original repo.

Geeky git-professionals do it with ease but this was always a headache for me so I usually simply deleted the fork and created a new one.

And today I figured that Github added a new UI feature that I can easily fetch-upstream for my fork with the original one and make it up to date and capable for pull-requests.

Here is where the button is:

This is a relief! )

Wanted to share this relief and productivity tip with you!

Bring more collaborations to Github repos!

And speaking of PR - I just made a PR with docker to Google Cloud Run deployment for the FHIRaaS demo made by @Anton Umnikov for the current FHIR Contest! Looking for more of your contributions!

9 0
3 390

install and usage

Packed Pretty.xml installs routine ZPretty in any namespace.
calling $$Do^ZPretty(input,[filler],[newline]) returns a wrapped JSON string.
filler is the optional string for the indent, default = " "
newline is optional, default = $C(13,10)
input accepts: JSON_String, JSON_Stream, %DynamicAbstractObject

6 0
0 385

On a default VS Code installation, when you create a new file its language mode is 'Plain Text'

You have to click there to set another mode.

Luckily, there's a setting you can tweak to change this. It is called files.defaultLanguage

Set it to the ID of the language you want. Those IDs display in parentheses after each entry on the language mode selector.

3 1
1 1.8K
Article
· Nov 21, 2020 3m read
ObjectScript over ODBC

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 517
Article
· Aug 3, 2020 3m read
Global Scanning & Slicing

In most cases, a global used by default storage has just 1 subscript level that represents the IDKEY.
For an index-globals we may see 2 or more subscript levels.
Arrays, or parent-child relationships or persistent classes extending a base data class
are examples where we see more levels. Though all these globals are quite uniform.

7 0
2 375
Article
· Jul 29, 2020 5m read
SQL for ^ERROR Global

Standard error logs in IRIS / Caché / Ensemble are written global ^ERRORS.
As this piece dates back some decades back to previous millennium its structure
is far from the typical SQL storage structures.

11 16
3 851

I studied about developer services offered by main manufactures, and InterSystems is the leader, see:

Better Developer support/services
Feature InterSystems Microsoft Oracle IBM Redhat
Development Community Web Portal 1 1 1 1 1
Discord or twitch developer channel 1 1 0 0 0
Linkedin, Twitter, Facebook developer channel 1 1 1 1 1
YouTube and Podcast Channel 1 1 1 1 1
Certification program 1 1 1 1 1
Developer Open IDE Tools 1 1 1 0 1
Newsletter 1 1 1 1 1
Free e-learning courses 1 0 0 0 0
Online product documentation 1 1 1 1 1
Free product community edition 1 1 1 0 1
Free product instance in the public cloud 1 1 1 1 0
Free Hands-on e-books 0 0 0 1 1
Developer Community Open source solutions portal 1 1 0 0 0
Gamified developer community portal 1 0 0 0 0
Frequent hackthon competitions 1 0 0 1 0
Redeem prizes from developer participation efforts 1 0 0 0 0
Global Developer event 1 1 1 1 1
Public recognition by developer level 1 0 1 0 0
Meetup groups 1 1 1 1 1
Open source initiatives 1 1 1 1 1
Total: 19 14 13 12 12

4 2
1 209
Article
· Jul 20, 2020 2m read
SPOOL as SQL Table

It is a classic Global Mapping exercise presenting ^SPOOL as Class / Table

Background

Device #2 named SPOOL dates back to the predecessors of Caché and IRIS
It was the first "%Stream" like option to buffer output before printing.
It is also the first and till today the most simple way of output redirection.

Solution

This is also an example of a mapped Global.
USE 2 redirects the output into the Global ^SPOOL

11 0
0 342