Hi Developers!
We had a set of technology bonuses for the InterSystems Grand Prix contest.
Hi Developers!
We had a set of technology bonuses for the InterSystems Grand Prix contest.
Hi folks!
Sometimes when we develop a mockup or PoC there is a need for a simple interface that will provide data in IRIS in JSON against SQL queries.
And recently I contributed a simple module that does exactly that:
accepts SQL string and returns the JSON.
How to install? Just call:
zpm "install sql-rest"
If you install it in a namespace X it will setup a /sql endpoint to your system that will accept POST requests with SQL string and will return the result for you for the data available in the namespace X.
Hi developers!
Recently we announced the preview of Embedded Python technology in InterSystems IRIS.
Check the Sneak Peak video by @Robert.Kuszewski.
Embedded python gives the option to load and run python code in the InterSystems IRIS server. You can either use library modules from Python pip, like numpy, pandas, etc, or you can write your own python modules in the form of standalone py files.
So once you are happy with the development phase of the IRIS Embedded Python solution there is another very important question of how the solution could be deployed.
One of the options you can consider is using the ZPM Package manager which is described in this article.
Hi folks!
Each IRIS installation has a /lib folder which is intended for 3rd-party libraries being used in the solution.
For IRIS installation the typical path is:
/usr/irissys/lib/
In ZPM the shortcut is ${libdir}.
What is the macro or internal function to obtain it programmatically?
Hi Developers!
Here're the technology bonuses for the InterSystems Grand Prix Contest that will give you extra points in the voting.
| Group | Bonus | Points |
| General | Docker | 2 |
| ZPM | 2 | |
| Unit Testing | 2 | |
| API and languages | REST API | 2 |
| ODBC/JDBC | 2 | |
| Embedded Python usage | 4 | |
| Native API in Java, Python, .NET, node.js | 3 | |
| Multi-model | Globals (key-value) | 2 |
| SQL | 2 | |
| Object | 2 | |
| New model | 3 | |
| Analytics | IRIS BI | 2 |
| IRIS NLP | 2 | |
| InterSystems Reports | 3 | |
| AI/ML | Integrated ML | 4 |
| Python or Julia Gateway | 3 | |
| Interoperability | BPL | 3 |
| Custom Adapter | 2 | |
| PEX | 4 | |
| Workflow Engine | 2 | |
| FHIR | FHIR Server REST API | 3 |
| FHIR SQL Scheme usage | 2 | |
| Healthcare Data Transformations | 3 | |
| Total | 58 |
Below are the details and useful links on all the technical bonuses.
Hi developers!
Want to share with you the new release on Open Exchange we had in January 2021:
Applications by Downloads
Now you can sort applications on Open Exchange by number of Downloads in descending order. Choose the sorting selector to Downloads:
Hi developers!
We had a set of technology bonuses for the InterSystems Multi-Model contest.
And here is how projects collected it:
| Project | Docker | zpm | Key-Value | SQL | Object | Your Model | Total Bonus |
| zapm | 2 | 2 | 2 | 2 | 2 | 10 | |
| iris-vaccine-tracker | 2 | 2 | 2 | 2 | 2 | 10 | |
| qewd-jsdb-kit-iris | 2 | 2 | 2 | 6 | |||
| BeI-MultiModel | 2 | 2 | 2 | 2 | 2 | 10 | |
| iris-image-index-demo | 2 | 2 | 2 | 2 | 2 | 2 | 12 |
| IRIS Publisher | 2 | 2 | 2 | 2 | 8 | ||
| iris-sftp-logs | 2 | 2 | 2 | 2 | 2 | 10 | |
| iris-multimodel-suite | 2 | 2 | 2 | 2 | 2 | 10 | |
| GeoDatas | 2 | 2 | 2 | 6 | |||
| HealthInfoQueryLayer | 2 | 2 | 2 | 6 |
Hi folks!
Just a very short note on if you want to add a cute Open Exchange shield like this:
in your GitHub repo you can do it by entering one line like this:
[](https://openexchange.intersystems.com/package/csvgen)
In the URL place the path to your OEX page.
Thanks to the participants of contest for such a neat shield )
What other helpful Github shields do you know? Please share in the comments?
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?"

Here I want to suggest to you one of the approaches - deploying global data using the ZPM package manager.
Hi developers!
Sometimes we need to test this or that library, framework, or function vs some dataset. And often we want to deal with some meaningful data.
Recently I added two very simple but meaningful datasets that could be installed with one line.
Titanic Dataset
Contains 800+ records about passengers from the famous cruise liner. The dataset could be installed with:
zpm "install dataset-titanic"
This installs one class dc.data.Titanic with 800+ records.
Countries dataset
The dataset contains data about 167 countries such as population, surface, capital, the average life expectancy. The dataset could be installed as:
zpm "install dataset-countries"
This installs one class dc.data.Countries and the global with data.
Hi Developers!
Here're the technology bonuses for the InterSystems Multi-Model Contest that will give you extra points in the voting:
See the details below.
Hi Developers,
We want to sum up the results of 2020 and meet 2021 together with you!

This was a very unusual, strange, dangerous, online year. A year full of politics, courage, diseases and deaths, new life-changing technologies, and innovations.
This was a unique year for the Developer Community too – for the first time we had a 100% virtual global summit, we introduced series of online contests and we are doing regular online meetups – this is all new and all this is already a part of our life.
This year we introduced the Japanese and the Portuguese Communities in addition to the English and the Spanish ones, and we are waiting for the Chinese community to join!
Hi Developers!
I'm pleased to announce that we made a New Year Eve release on Open Exchange!
What's inside?
See the details bellow.
Good day, Developer Community!
As you know we have Company listings on Open Exchange. It lets publishing Open Exchange applications on behalf of companies so one can check which solutions in certain industries are being provided by companies.
Sometimes people are also looking for qualitative and proven implementation or consulting services on InterSystems products: IRIS, Caché, Ensemble, or HealthShare.
And recently we introduced a new option on Open Exchange to list the services your company provides related to InterSystems technology: implementation, consulting etc.
How to do that?
Open your company profile in the Services tab and create a service. Choose the type of service and give a description of what the service is about and why it is worth ordering it. Instructions.
Then publish the service by sending it for approval.

Hi developers!
We had a set of technology bonuses for the InterSystems Analytics contest.
And here is how projects collected it:
| Project | docker | zpm | IRIS BI | IRIS NLP | Integrated ML | Real Data | ISC Reports | Total |
| Nominal | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 8 |
| iris-analytics-notebook | 1 | 1 | 1 | 3 | ||||
| website-analyzer | 1 | 1 | 1 | 1 | 4 | |||
| dataking-server | 1 | 1 | 2 | |||||
| iris-analytics-package | 1 | 1 | 1 | 2 | 5 |
This table is subject to change upon project improvements or if we missed something.
Hi, folks!
Sometimes I need to schedule a task programmatically.
And in 99% I need having some class method be periodically called.
And I want to have the schedule be started by one line. As a job in crontab.
I decided to introduce such a module with iris-cron-task module.
See the details below!
Hi Developers,
You asked for it – we did it!
We are introducing a new voting engine and algorithm to InterSytems Contests which you can try with the current contest – starting next Monday!

Hi folks!
Do we have an embedded REST API in IRIS which accepts arbitrary SQL and returns data in JSON?
Or if anyone did something like this?
The idea is to have something like MDX2JSON but SQL2JSON.
Thanks!
Hi folks!
Often while debugging you want to know the values of all the parameters.
Using VSCode Debugger is not an option.
What do you use to know what parameters came to the method?
My hope if you have a "magic" macro that will store all the variables with their names into a global?
And share your approaches, please?
Hi Developers!
Here're the technology bonuses for the InterSystems Multi-Model Contest that will give you extra points in the voting:
See the details below.
Hi Developers!
Want to raise security discussion today!
Let's discuss how InterSystems security for applications works. In general, the concept is clear: we have Resources (what to protect), Roles which combine a set of privileges and accesses to Resources and Users which can have this or that Role.
But there is also a concept of Application which also could have a Role.
So you either provide a Role for a User or for an Application.
What do you use in production? What is your strategy and why? Pros, cons?
Hi developers!
We introduced a set of bonuses to all the participants of the Interoperability Stack Contest.
And here is the table of current bonuses accomplishments:
Hooray!
I'm pleased to announce that 100 ZPM modules are available in the public InterSystems IRIS zpm-repository! Now!
Thank you, developers! This is great that you adopt ZPM Package manager that fast and share your open source add-on libraries for InterSystems IRIS in a form of ZPM packages which means that each of them could be installed as:
USER>zpm "install module-name"
Wish to see the next milestone of 1,000 modules soon in 2021!
Thank you!
Hi Developers!
Here're the technology bonuses for the InterSystems Interoperability Contest that will give you extra points in the voting:
See the details below.
Hi developers!
We introduced a set of bonuses to all the participants of the Ful Stack Contest.
And here is the table of current bonuses accomplishments:
Hi VSCode users!
Just want to check with you, is this settings.json file ideal enough if I:
1. Want VSCode to connect to IRIS in docker?
2. Want to use VSCode SQL Tool?
The connection settings file:
{
"files.associations": {
"Dockerfile*": "dockerfile",
"iris.script": "objectscript"
},
"objectscript.conn" :{
"ns": "IRISAPP",
"username":"_SYSTEM",
"password": "SYS",
"docker-compose": {
"service": "iris",
"internalPort": 52773
}
},
"sqltools.connections": [
{
"namespace": "IRISAPP",
"connectionMethod": "Server and Port",
"showSystem": false,
"previewLimit": 50,
"server": "localhost",
"port": 32770,
"askForPassword": false,
"driver": "InterSystems IRIS",
"name": "objectscript-docker",
"username": "_SYSTEM",
"password": "SYS"
}
]
}Hi developers!
Want to discuss with you the case of %Status.
If you familiar with ObjectScript you know what is it. I'd love to hear the history of the case why it had appeared in ObjectScript but it turned out that almost every system/library classmethods return %Status and there is a whole set of tools to deal with it.
What is does it gives you the responsibility to check the value or %Status of every system method you call.
E.g. if you save the data of the persistent class, you should never call like this:
do obj.%Save()you need to call:
set sc=obj.%Save()
if $$$ISERR(sc) do // something or quit.Hi Developers!
Recently we discussed the naming convention on packages we deploy and even made some choices.
Here I want to have a conversation on the naming convention for unit tests.
Of course, we wish every good library has unit tests. Here is the documentation and some good articles(one, two, three) regarding it on the Developer Community.
Let's decide on the naming of UnitTests packages?
The suggestion is that unit test classes will all start with the UnitTest package name.
E.g. if your library's class name is:
johndoe.lib.class
The related unit test class will be:
UnitTest.johndoe.lib.class
What about folders?
The suggestion is that unit test classes will live separately from source classes, e.g. in /tests directory.
Here is the example of a repository with unit tests that are named and placed according to the proposal.
What do you think?
Hi Developers!
Here're the technology bonuses for the Full Stack Contest that will give you extra points in the voting:
See the details below.
Hi Developers!
How do you handle errors with &sql a.k.a. embedded SQL?
I think I found a universal error-handling template which works in any situation:
&sql(SELECT * FROM Sample.Person)
if SQLCODE < 0 throw ##class(%Exception.SQL).CreateFromSQLCODE(SQLCODE,"Context description")What is your choice?