Article Evgeny Shvarov · Apr 14, 2019 3m read

Hi guys!

Portrait of  Madame X, Gustave Caillebotte.

One of the features I like in InterSystems ObjectScript is how you can process array transformations in a specific method or a function.

Usually when we say "process an array" we assume a very straightforward algorithm which loops through an array and does something with its entries upon a certain rule.

The trick is how you transfer an array to work with into a function. 

One of the nice approaches on how to pass the information about an array is using $Name and Indirection operator. 

Below you can find a very simple example which illustrates the thing.

2
1 685
Announcement Evgeny Shvarov · Apr 6, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in March 2019

New Applications

isc-tar  published by @Dmitry Maslennikov

Compact files as TAR or Extract files from TAR files

Light weight EXCEL download v.1.0 published by @Robert Cemper

This is the working example of a light weight export to EXCEL based on data in SAMPLES namespace. Good old CSP is well equipped to produce HTML tables accepted from EXCEL as input. With modern Browsers you don't even need and tags. So the required code around your SQL result set is really slim. And you are free to add any formatting you need either by HTML or in SQL.

PythonGateway v.0.7 published by @Eduard Lebedyuk

Python Gateway for InterSystems Data Platforms.

Adopted Bitmaps v.1.0 published by @Robert Cemper

This is a running example of the Bitmap Adoption

WebSockets Tutorial v.1.0 published by @Lily Taub

A short tutorial on WebSockets in InterSystems IRIS 2018.1+ and Caché 2016.2+

Sync Data with DSTIME v.1.0.0 published by @Robert Cemper

Other Sync-Tools just work from Caché/IRIS to Caché/IRIS. Synchronizing your data to some external DB you requires some other solution. DSTIME can do it.

HL7 and SMS Interoperability Demo v.1.3 published by @Amir Samary

This demo shows how easy it is to integrate an Electronic Medical Record system that is sending HL7 messages with AWS.

0
0 261
Announcement Evgeny Shvarov · Apr 1, 2019

Hi Community!

Here is a digest of the Developer Community postings in March 2019.

Most viewed

CachéQuality for VSCode now available  364

Studio debugger since 2018.1.1  149

Job Opportunity - Relocate from Europe to UK  137

InterSystems IRIS version 2019.1 released   127

Tar compress tool in ObjectScript  125

A Tutorial On WebSockets  122

Embedded SQL vs ObjectScript SQL. What do you prefer and why?  121

A Deep Learning Demo Kit with Python3 Binding to HealthShare (Part I)  118

Side Effects of Quit and Return Commands with $Increment, or "I.E.Repin. Unexpected..."  117

String to date  116

Behind the scene of isc-tar project  100

Using Docker with your InterSystems IRIS development repository  99

Global Data converted to CSV file  87

CSP: Dynamically Generated Table  79

Behind the scene of isc-tar project and story about Continuous Integration using Github Actions  66

Run A Deep Learning Demo with Python3 Binding to HealthShare (Part II)  62

Most voted

InterSystems Partnertag Österreich 2019  7

Adopted Bitmaps example now on Open Exchange  7

ObjectScript error handling snippets  7

Tar compress tool in ObjectScript  6

InterSystems DACH Symposium 2019  6

Synchronize Data with DSTIME  6

A Tutorial On WebSockets  4

CachéQuality for VSCode now available  3

A Deep Learning Demo Kit with Python3 Binding to HealthShare (Part I)  3

InterSystems IRIS version 2019.1 released   3

Most commented

CachéQuality for VSCode now available  36

HL7 message import to sql server  16

Studio debugger since 2018.1.1  12

Rule to validate SQL syntaxis  12

No 'Access-Control-Allow-Origin' header issue with Cors  11

Cache docker image  9

Creating multiple Record Map Records from a single HL7 message  8

Quick way to check if an SSL/TLS configuration name is valid?  7

Sending Messages on the Top of Queue  7

Ensemble to Spring Boot Java app using RabbitMQ  6

Top 10 Authors to Follow by Views

Dmitry MaslennikovPosts,  291

Zhong LiPosts,  180

Lily TaubPosts,  122

Alexey MaslovPosts,  117

Evgeny ShvarovPosts,  99

Ponnumani GurusamyPosts,  87

Robert CemperPosts,  85

Gevorg ArutunyanPosts,  79

Pravin BartonPosts,  61

Stuart ByrnePosts,  40

Top 10 Experts to Follow

Eduard LebedyukAnswers,  +8

Aviel KlausnerAnswers,  +7

Alexander KoblovAnswers,  +4

Kyle BaxterAnswers,  +4

Vitaliy SerdtsevAnswers,  +4

Jeffrey DrummAnswers,  +4

David Van De GriekAnswers,  +3

Stephen CanzanoAnswers,  +3

Dmitry MaslennikovAnswers,  +2

Robert CemperAnswers,  +2

0
0 199
Article Evgeny Shvarov · Mar 14, 2019 5m read

Hi Community!

I think everyone keeps the source code of the project in the repository nowadays: Github, GitLab, bitbucket, etc. Same for InterSystems IRIS projects  check any on Open Exchange.

What do we do every time when start or continue working with a certain repository with InterSystems Data Platform?

We need a local InterSystems IRIS machine, have the environment for the project set up and the source code imported.

So every developer performs the following:

  1. Check out the code from repo
  2. Install/Run local IRIS installation
  3. Create a new namespace/database for a project
  4. Import the code into this new namespace
  5. Setup all the rest environment
  6. Start/continue coding the project 

If you dockerize your repository this steps line could be shortened to this 3 steps:

  1. Check out the code from repo
  2. Run docker-compose build 
  3. Start/continue coding the project 

Profit - no any hands-on for 3-4-5 steps which could take minutes and bring head ache sometime.

You can dockerize (almost) any your InterSystems repo with a few following steps. Let’s go!

10
9 2007
Discussion Evgeny Shvarov · Mar 7, 2019

Hi Community!

There are two general ways to execute arbitrary SQL  in serverside ObjectScript code: EmbeddedSQL and ObjectScript SQL a.k.a. Dynamic SQL.

E.g. if we want to get the value of the property of instance with a certain ID using SQL we can do:

&sql(SELECT Name INTO :name FROM Sample.Person WHERE ID=1)

write name

Same result with %SQL.Statement:

set rs=##class(%SQL.Statement).%ExecDirect(,"SELECT Name as name FROM Sample.Person where ID=1")
  do rs.%Next()
  write rs.name
2
0 1131
Announcement Evgeny Shvarov · Mar 4, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in January and February 2019

CPIPE

This is a tiny example of how to run a server command from within Caché / Ensemble / IRIS and get back the full output as seen in any server command shell.

QEWD-js

QEWD.js is a Node.js framework for REST APIs, interactive WebSocket and/or Ajax applications, capable of running as a monolithic application or split across MicroServices. Fully supports Cache, Ensemble and IRIS, allowing use of existing Cache ObjectScript code, Cache Objects and Cache SQL, but also allows the database to be abstracted as a persistent JSON / Document database.

PMML-Business-Operation

With this simple Business Operation, you can easily leverage your predictive models (saved as PMML) in a Production. There's both a generic BO and a utility method that allows you to generate dedicated operation / request / response classes.

COSFaker 

Helps to generate fake/test data for development purposes

WsockClient.csp and WsocClient.js

Web socket clients on CSP  and InterSystems node.js adapter to collect end manage data transferred to the client in InterSystems IRIS or Caché 

CachéQuality for VSCode by @Daniel Tamajon

IDE extension that helps you detect and fix quality issues as you write code. Like a spell checker, this extension squiggles flaws so they can be fixed before committing code. You can get it directly from the VS Code Marketplace and it will then detect new bugs and quality issues as you code (ObjectScript and JavaScript)

0
0 250
Question Evgeny Shvarov · Mar 1, 2019

Hi Community!

When you run  IRIS container out-of-the-box and connect to it via terminal e.g. with:

docker-compose exec iris bash

You see something like:

root@7b19f545187b:/opt/app# irissession IRIS

Node: 7b19f545187b, Instance: IRIS

Username: ***

Password: ***

USER>

And you enter login and password every time.

How to programmatically setup docker-compose file to have IRIS container with OS authentication enabled? And have the following while entering the terminal:

root@7b19f545187b:/opt/app# irissession IRIS

Node: 7b19f545187b, Instance: IRIS

USER>

3
0 533
Discussion Evgeny Shvarov · Feb 11, 2019

Hi guys!

Suppose you developed a tool, framework, library on InterSystems ObjectScript for InterSystems Data Platform, share it via Open Exchange and want people to install it. 

What is the best strategy if it is a library and supposed to be called from different namespaces?

Here are the following thoughts:

1. Tool's developer should be able to use globals to read/store data the tool needs.

2. Tool's consumer should be confident, that the thing he/she installs will not harm the application's data.

3. A tool should be callable from any application's namespace.

4. Tool's installation(in general) should not request manual security changes (e.g. grant the write access to IRISLIB) and %YourClass is not an option.

5. It's easy to uninstall the tool - just delete the namespace/database (maybe delete some web-apps too).

10
0 573
Announcement Evgeny Shvarov · Jan 18, 2019

Hi Community!

Here is the digest of what has happened on Open Exchange in November and December 2018!

Application Releases

We had 5 releases in November and December:

Cache ODBC for Node.js

This library aims to provide simple access to ODBC data sources for node.js.

Laracache

Laravel package providing InterSystems Cache as a data source using ODBC

DeepSeeButtons

Tool for analyzing your DeepSee Environment

DSW Reports

Addon for DeepSee Web which provides online reports and PDF emailing reports using InterSystems DeepSee dashboards

AnalyseThis

Utility to easily transform a CSV file into a personalized preview of DeepSee

0
0 246
Announcement Evgeny Shvarov · Jan 8, 2019

Hi Community!

New Badges're already on Global Masters Advocacy Hub

We're happy to announce that this year we again introduced three annual badges on Global Masters Advocacy Hub to let you remember how much you contributed to Developer Community in 2018. Here they are:

 DC Best-Selling Author 2018
 DC Expert 2018
 DC Opinion Leader 2018

Let's take a closer look at the DC Wall of Fame 2018 and greet everyone with big applause! 

0
0 403
Announcement Evgeny Shvarov · Jan 6, 2019

Hi Community!

It's time to announce the best articles on InterSystems Data Platforms you published in 2018!

And here are three best articles for the year (criteria is the number of views):

First place: K-Means clustering of the Iris Dataset, by Niyaz Khafizov  1564

Second place: Continuous Delivery of your InterSystems solution using GitLab - Part I: Git, by Eduard Lebedyuk  1206

Third place: Replacing ZEN - Part 1 - Introduction, by Peter Cooper  933

Congrats to authors!

And what are the best articles by InterSystems Data Platforms?

See below

0
0 433
Announcement Evgeny Shvarov · Dec 26, 2018

Hi Community!

Thank you for being with InterSystems Developer Community yet another year! We appreciate it very much!

We want to know how helpful DC for you today and how could we make it better. 

Could you please go through this short 5 min survey which will let us know what do you think about DC and what could be improved.

We wish you a Merry Christmas and a Happy New Year! 

Sincerely, 

Your InterSystems Developer Community Team

0
0 236
Announcement Evgeny Shvarov · Dec 16, 2018

Hi Community!

We try a new approach to the InterSystems Developers YouTube Videos called "Coding Talks"!

Coding Talks is a short video in which the developer demonstrates a particular feature or functionality of InterSystems Data Platforms which he/she uses to in coding. Typical format: the face on side and editor with ObjectScript.

Check this video I made by myself participating in Advent of Code 2018 and coding with InterSystems ObjectScript in VSCode.

Coding Advent of Code 2018 Using InterSystems ObjectScript 

 

0
1 413
Announcement Evgeny Shvarov · Dec 3, 2018

Hi Community!

As you know or maybe guess we keep working on making Developer Community a better place for you, developers on InterSystems Data Platforms.

And here is the release on what we did in October-November.

Key visible enhancements:

better monthly digests,

InterSystems Best Practices,

Speed up mailings.

And a lot of small, but nice things - check the details inside.

0
0 216