Discussion Evgeny Shvarov · Aug 18, 2019

Hi Developers!

InterSystems IRIS stores everything in globals and if we use ObjectScript classes to persist data class documents globals it uses in storage. But if you use globals for calculations, temporary storages, for special indexes or for some other purposes - how do you document it?

Possible options which come to my mind:

1. Macro

#define Array ^MyGlobal

usage:

s $$$Array(1)=1

2. Class parameter

Parameter Array ="^MyGlobal";

Usage:

3. Documentation comment

Just document it to have it in a class documentation

What do you do?

3
0 451
Announcement Evgeny Shvarov · Aug 4, 2019

Hi Developers!

This is the digest of new solutions and applications submitted to InterSystems OpenExchange in July 2019!

New Applications

Metrics example published by David Underhill

A simple example of collating database and license metrics

Dynamic SQL to Dynamic Object published by David Crawford

ObjectScript function to convert any SQL query into a dynamic object

Cogs JSON Class published by Sean Connelly

Convert JSON to and from InterSystems ObjectScipt classes

Objectscript Roman Numeral Converter published by David Crawford

Converts numbers into roman numerals using ObjectScript

Random Read IO Storage Performance Tool published by Tony Pepper

Random Read IO Performance Tool for InterSystems IRIS Database

Port published by Rubens Silva

Port is a VCS-agnostic Caché Studio utility to export or import Caché files based on projects instead of namespaces

Forgery published by Rubens Silva

An auxiliary tool used to mimic requests to %CSP.REST and Frontier Router-based classes.

Log Production Queue Counts published by Robert Hanna

A simple scheduled task and persistent table for logging production queue counts.

EnsDemo Iris installer published by Guillaume Rongier

ENSDEMO port to IRIS without HL7 and DICOM examples

Anti CSRF CSP published by David Crawford

A method for mitigating anti CSRF attacks on CSP derived API calls

Frontier published by Rubens Silva

%CSP.REST on steroids. Frontier is a REST framework made with the purpose of reducing boilerplate code and imposing a clean coding style 

Python Gateway Samples published by Eduard Lebedyuk

Examples of PythonGateway Usage. Python Gateway for InterSystems Data Platforms

0
0 200
Question Evgeny Shvarov · Aug 3, 2019

Hi developers!

Every day coding with IRIS and docker I call the following 3 commands in VSCode terminal. Always the same for any projects:

docker-compose build   ; to build the container

docker-compose up -d   ; to run the IRIS in container

docker-compose exec iris iris session iris ; to open the IRIS terminal

Is there any way to map the key sequence which will type me the rest? 

e.g.

irisb for docker-compose build,

irisup for docker-compose up -d,

irist for docker-compose exec iris iris session iris

I know and use keyboard sequences for mac, but it doesn't work in VSCode terminal :/

2
0 606
Announcement Evgeny Shvarov · Jul 31, 2019

Hi Developers!

This is an anniversary announcement to celebrate 6,000 members on InterSystems Developers!

There are some other good figures came: 

  • we have more than 5,000 posts with almost 1,000 articles. (956 to the moment).
  • Also, we are close to having 20,000 answers and comments and 2,000,000 reads for DC postings.

And we have the Spanish Community for 2 months running! Join Spanish DC!

0
1 295
Article Evgeny Shvarov · Jul 30, 2019 2m read

Hi Developers!

This is the second post on the resources for Developers. This part is about Open Exchange

Using Open Exchange to Learn InterSystems

InterSystems Open Exchange is a applications gallery of tools, connectors, and libraries which InterSystems Developers submit to share the experience, approaches and do business. All the applications are either built with InterSystems data platforms or are intended to use for development with InterSystems data platforms.

If you are a beginner developer you can take a look at applications in Technology Example category. All the applications in this category come with open source code repositories, so you are able to run the samples and examples in a docker container with IRIS on your laptop or in the cloud IRIS sandbox. Examples:

4
0 478
Article Evgeny Shvarov · Jul 28, 2019 2m read

Hi Developers!

Recently I was asked, “How can a beginner in InterSystems technologies learn from InterSystems Developers community content to improve his developer skills”?

This is a really good question. It has several answers so I decided to write the post with the hope it could be useful for developers.

So! How to learn Intersystems Data Platforms(IRIS, IRIS for Health) from InterSystems Developers community content if you are a beginner?

2
0 655
Article Evgeny Shvarov · Jul 18, 2019 3m read

Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and manager pledge to making participation in InterSystems Developer Community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

0
0 4509
Article Evgeny Shvarov · Jul 13, 2019 2m read

Hi guys!

Was coding today with InterSystems IRIS in a docker container and decided to share with you the commands you may find useful in everyday coding.

# docker-compose build

command to build a container. Remember, it is useful if you have dockerfile in the repo.

if the build is successful call the following to launch it:

# docker-compose up -d

Find IRIS management portal on:

localhost:port/csp/sys/%25CSP.Portal.Home.zen?$NAMESPACE=%25SYS

where the port is what you set in docker-compose.yml - 52775 in this case.

Run the following if you want to launch a terminal session inside IRIS container:

# docker-compose iris iris session iris

gfhj gj 


sdfdsfsdf





USER>

And run the following to shut down the container:

# docker-compose down

Troubleshooting

4
4 767
Announcement Evgeny Shvarov · Jul 7, 2019

Hi Community!

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

New Applications

Example Backup Task published by @Sergey Mikhailenko

Sample database backup copying task with prior deletion of outdated copies

A more useful Object Dump published by @Robert Cemper

This small helper class allows you to dump an object to terminal or
e.g in background to some stream for later review.

Samples BI published by @Evgeny Shvarov on behalf of InterSystems

This is a technology example of InterSystems Business Analytics tool with Cubes, Pivots, MDX Queries and Dashboards. The Sample is  formerly known as "Holefoods "

Interjob communication Demo published by @Robert Cemper

It's internal variant of PIPE

2
0 253
Question Evgeny Shvarov · Jun 28, 2019

Hi guys!

As you know there are two (at least) ways to get the stored value of the property of InterSystems IRIS class if you know the ID of an instance (or a record).

1. Get it by as a property of an instance with "Object access":

ClassMethod GetPropertyForID(stId As %Integer) As %String

{

set obj=..%OpenId(stId)

return obj.StringData

}

2. Get it as a value of a column of the record with "SQL access":

18
0 1349
Announcement Evgeny Shvarov · Jun 9, 2019

Hi Community!

I have very good news for the developers, who are using GitHub to host projects with InterSystems ObjectScript.  GitHub introduced the support of InterSystems ObjectScript this week!

How does it work?

Now all the .cls files in your repository are considered as InterSystems ObjectScript and highlighted according to the language rules of ObjectScript. For example WebTerminal, Samples-Data.

7
1 1177
Announcement Evgeny Shvarov · Jun 6, 2019

Hi Community!

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

New Applications

Background Jobs over ECP published by @Robert Cemper

An internal variant of a PIPE

Simple Remote Server Control published by @Robert Cemper

Simple monitoring of several servers at a lightweight level

iris-nodejs-101  published by @David Reche

This application demo a REST API build in node.js able to receive HTTP GET, POST and DELETE of custom JSON 

Sea Battle  published by @Evgeny Shvarov

Simple terminal game an approach to "Sea Battle". Example of simple ObjectScript method calls and terminal interaction The code is an ObjectScript remake of Python example in CodeAcademy

PHP-module for Caché published by @Sergey Kamenev

This is PHP-module for InterSystems Caché. In current moment module works only locally, on same server where running Caché. Module has excelence speed because uses c-callin interface for access to DB.

PHP-module for IRIS published by  @Sergey Kamenev

This is PHP-module for InterSystems IRIS. In current moment module works only locally, on same server where running IRIS or Caché. Module has excelence speed because uses c-callin interface for access to DB.

TSQL Checkers v.1.0.0 published by @Anton Umnikov

Demonstration of TSQL support in InterSystems IRIS. Checkers game

isclib v.2.1.0 published by @Kyle Michel

Go library for interacting with InterSystems Corporation products like Cache and Ensemble<--break->

0
0 336
Announcement Evgeny Shvarov · May 7, 2019

Hi Community!

Today and yesterday a lot of you received a strange email with the subject:

InterSystems Developers Publications, Week 29 of April - 05 of May, Digest

and body:

subscription|type|digest_w|post|461231|

This happened because of a bug in our email subsystem.  I bring my apologies and we are fixing the bug at the moment.

0
0 255
Announcement Evgeny Shvarov · May 6, 2019

Hi Community!

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

New Applications

Arduino Snippets published by @Eduard Lebedyuk 

Connect your Arduino to InterSystems IRIS or Caché via com port (or usb<->com)

Japanese Calendar published by @Hiroshi Sato 

Japanese Calendar Converter for InterSystems products

Cache Quality for Atelier published 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 install it directly from Atelier and it will then detect new bugs and quality issues as you code (ObjectScript and JavaScript).

ETL Interoperability Adapter published by @Guillaume Rongier

Extend EnsLib.SQL.OutboundAdapter to add batch batch and fetch support on JDBC connection for Ensemble and IRIS.

R Gateway published by Shiao Bing Sung

Use R language with InterSystems IRIS

The Folding Staff published by  @John Murray 

'The Folding Stuff' is a simple VSCode extension that adds Visual Studio Code's existing code folding / unfolding features to the editor context menu.<--break->

0
0 264
Discussion Evgeny Shvarov · May 1, 2019

Hi Community!

Sometimes I meet a method which accepts 10+ parameters.

And often I need only the 8th parameter  to  pass. And I call the method something like:

do ##class(Some.Feature).Method(,,,,,,,"flag")

And I don't like this method when I call it like this cause, you know, often I just miss the number of commas and raise some other flag I wanted.

How do you avoid this situations? 

If you meet such a code, how do you call it and sure that you didn't miss the number of ","?

What is a good number of parameters in a method and f you need to pass more parameters in a method what do you do?

27
1 1939
Announcement Evgeny Shvarov · May 1, 2019

Hi Community!

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

Most viewed

Most voted

Most Discussed

0
0 270