Clear filter
Article
Iryna Mykhailova · Aug 2, 2022
Before we start talking about databases and different data models that exist, first we'd better talk about what a database is and how to use it.
A database is an organized collection of data stored and accessed electronically. It is used to store and retrieve structured, semi-structured, or raw data which is often related to a theme or activity.
At the heart of every database lies at least one model used to describe its data. And depending on the model it is based on, a database may have slightly different characteristics and store different types of data.
To write, retrieve, modify, sort, transform or print the information from the database, a software called Database Management System (DBMS) is used.
The size, capacity, and performance of databases and their respective DBMS have increased by several orders of magnitude. It has been made possible by technological advances in various areas, such as processors, computer memory, computer storage, and computer networks. In general, the development of database technology can be divided into four generations based on the data models or structure: navigational, relational, object and post-relational.
Unlike the first three generations, which are characterized by a specific data model, the fourth generation includes many different databases based on different models. They include column, graph, document, component, multidimensional, key-value, in-memory etc. All these databases are united by a single name NoSQL (No SQL or now it is more accurate to say Not only SQL).
Moreover, now a new class appears, which is called NewSQL. These are modern relational databases that aim to provide the same scalable performance as NoSQL systems for online transaction processing workloads (read-write) while using SQL and maintaining ACID.
Incidentally, among these fourth generation databases are those that support multiple data models mentioned above. They are called multi-model databases. A good example of this type of database is InterSystems IRIS. That is why I will use it to give examples of different types of models as they appear.
The first generation databases used hierarchical or network models. At the heart of the former is a tree structure where each record has only one owner. You can see how this works using the example of InterSystems IRIS, because its main model is hierarchical and all data is stored in globals (which are B*-trees). You can read more about globals here.
We can create this tree in IRIS :
Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36
And see it in the database:
After Edgar F. Codd proposed his relational algebra and his theory of data storage, using relational principles, in 1969. After, the relational databases were created. The use of relations (tables), attributes (columns), tuples (rows), and, most importantly, transactions and ACID requirements made these databases very popular and they remain so now.
For example, we have the schema:
We can create and populate tables:
And if we write the query:
select p.ID, p.Name, a.Country, A.City
from My.Person p left join My.Address a
on p.Address = a.ID
we will receive the answer:
Despite the significant advantages of relational databases, with the spread of object languages, it became necessary to store object-oriented data in databases. That's why in the 1990s the first object-oriented and object-relational databases appeared. The latter were created on the basis of relational databases by adding add-ons to simulate the work with objects. The former were developed from scratch based on the recommendations of the OMG (Object Management Group) consortium and after ODMG (Object Data Management Group).
The key ideas of these object-oriented databases are the following.
The single data warehouse is accessible using:
object definition language - schema definition, allows defining classes, their attributes, relations, and methods,
object-query language - declarative, almost SQL-like language that allows getting objects from the database,
object manipulation language - allows modification and saving data in the database, supports transactions and method calls.
This model allows obtaining data from databases using object-oriented languages.
If we take the same structure as in the previous example but in the object-oriented form, we will have the following classes:
Class My.Person Extends %Persistent
{
Property Name As %Name;
Property Address As My.Address;
}
Class My.Address Extends %Persistent
{
Property Country;
Property City;
}
And we can create the objects using the object-oriented language:
set address = ##class(My.Address).%New()
set address.Country = "France"
set address.City = "Marseille"
do address.%Save()
set person = ##class(My.Person).%New()
set person.Address = address
set person.Name = "Quouinaut, Martin"
do person.%Save()
Unfortunately, object databases did not succeed in competing with relational databases from their dominant position, and as a result, many ORMs appeared.
In any case, with the spread of the Internet in the 2000s and the emergence of new requirements for data storage, other data models and DBMSs started to emerge. Two of these models that are used in IRIS are document and column models.
Document-oriented databases are used to manage semi-structured data. This is data that does not follow a fixed structure and carries the structure within it. Each unit of information in such a database is a simple pair: a key and a specific document. This document is formatted usually in JSON and contains the information. Since the database does not require a certain schema, it is also possible to integrate different types of documents in the same warehouse.
If we take the previous example again, we can have documents like these:
{
"Name":"Quouinaut, Martin",
"Address":{
"Country":"France",
"City":"Paris"
}
}
{
"Name":"Merlingue, Luke",
"Address":{
"Country":"France",
"City":"Nancy"
},
"Age":26
}
These two documents with a different number of fields are stored in the IRIS database without any problem.
And the last example of a model that will be available in version 2022.2 is the column model. In this case, the DBMS stores the data tables per column and not per row.
Column orientation allows more efficient access to data for querying a subset of columns (eliminating the need to read columns that are not relevant), and more options for data compression. Compression by column is also more efficient when the data in the column is similar. However, they are generally less efficient for inserting new data.
You can create this table:
Create Table My.Address (
city varchar(50),
zip varchar(5),
country varchar(15)
) WITH STORAGETYPE = COLUMNAR
In this case, the class is like this:
Spoiler
Class My.Address Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {UnknownUser}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = Address ]
{
Property city As %Library.String(COLLATION = "EXACT", MAXLEN = 50) [ SqlColumnNumber = 2 ];
Property zip As %Library.String(COLLATION = "EXACT", MAXLEN = 5) [ SqlColumnNumber = 3 ];
Property country As %Library.String(COLLATION = "EXACT", MAXLEN = 15) [ SqlColumnNumber = 4 ];
Parameter STORAGEDEFAULT = "columnar";
Parameter USEEXTENTSET = 1;
/// Bitmap Extent Index auto-generated by DDL CREATE TABLE statement. Do not edit the SqlName of this index.
Index DDLBEIndex [ Extent, SqlName = "%%DDLBEIndex", Type = bitmap ];
Storage Default
{
<Data name="_CDM_city">
<Attribute>city</Attribute>
<ColumnarGlobal>^q3AW.DZLd.1.V1</ColumnarGlobal>
<Structure>vector</Structure>
</Data>
<Data name="_CDM_country">
<Attribute>country</Attribute>
<ColumnarGlobal>^q3AW.DZLd.1.V2</ColumnarGlobal>
<Structure>vector</Structure>
</Data>
<Data name="_CDM_zip">
<Attribute>zip</Attribute>
<ColumnarGlobal>^q3AW.DZLd.1.V3</ColumnarGlobal>
<Structure>vector</Structure>
</Data>
<DataLocation>^q3AW.DZLd.1</DataLocation>
<ExtentLocation>^q3AW.DZLd</ExtentLocation>
<ExtentSize>3</ExtentSize>
<IdFunction>sequence</IdFunction>
<IdLocation>^q3AW.DZLd.1</IdLocation>
<Index name="DDLBEIndex">
<Location>^q3AW.DZLd.2</Location>
</Index>
<Index name="IDKEY">
<Location>^q3AW.DZLd.1</Location>
</Index>
<IndexLocation>^q3AW.DZLd.I</IndexLocation>
<Property name="%%ID">
<AverageFieldSize>3</AverageFieldSize>
<Selectivity>1</Selectivity>
</Property>
<Property name="city">
<AverageFieldSize>7</AverageFieldSize>
<Selectivity>33.3333%</Selectivity>
</Property>
<Property name="country">
<AverageFieldSize>7</AverageFieldSize>
<Selectivity>33.3333%</Selectivity>
</Property>
<Property name="zip">
<AverageFieldSize>7</AverageFieldSize>
<Selectivity>33.3333%</Selectivity>
</Property>
<SQLMap name="%%DDLBEIndex">
<BlockCount>-4</BlockCount>
</SQLMap>
<SQLMap name="IDKEY">
<BlockCount>-4</BlockCount>
</SQLMap>
<SQLMap name="_CDM_city">
<BlockCount>-4</BlockCount>
</SQLMap>
<SQLMap name="_CDM_country">
<BlockCount>-4</BlockCount>
</SQLMap>
<SQLMap name="_CDM_zip">
<BlockCount>-4</BlockCount>
</SQLMap>
<StreamLocation>^q3AW.DZLd.S</StreamLocation>
<Type>%Storage.Persistent</Type>
}
}
Then we insert the data:
insert into My.Address values ('London', '47000', 'UK')
insert into My.Address values ('Paris', '54000', 'France')
insert into My.Address values ('Kyiv', '03000', 'Ukraine')
In the globals we see:
If we open the global with the city names, we will see :
And if we write a query:
select City
from My.Address
we receive data:
In this case, the DBMS just reads a global to get the whole result. And it saves time and resources when reading.
So, we have talked about 5 different data models supported by the InterSystems IRIS database. These are the hierarchical, relational, object, document, and column models.
Hope you will find this article useful when trying to figure out which models are available. If you have any questions feel free to ask them in the comments. Very nice article Excellent article - thank you very much for taking the time to write this up!!! 💡 This article is considered as InterSystems Data Platform Best Practice. Thanks @Iryna.Mykhailova for this brilliant article !
Very clear and cleverly presented. NB : for column-oriented storage specified at the table level via the statement WITH STORAGETYPE = COLUMNAR , it should be noted that IRIS leaves itself free to choose for you the most commonly optimal storage (in row or in column), according to the types of data.
Example :
the following statement :
CREATE TABLE a.addressV1 (
city varchar(50),
zip varchar(15),
country varchar(15)
)
WITH STORAGETYPE = COLUMNAR
Will not create any column-oriented storage, due to the risk of too disparate data, due to the number of characters allowed in each column (15 or 50) :
Class a.addressV1 Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = addressV1 ]
{
Property city As %Library.String(COLLATION = "EXACT", MAXLEN = 50, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 2 ];
Property zip As %Library.String(COLLATION = "EXACT", MAXLEN = 15, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 3 ];
Property country As %Library.String(COLLATION = "EXACT", MAXLEN = 15, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 4 ];
Parameter STORAGEDEFAULT = "columnar";
Parameter USEEXTENTSET = 1;
while the example given in the article, retains a column (and only one) in column-oriented storage, since having only 5 characters allowed for the zip column.
CREATE TABLE a.addressV2 (
city varchar(50),
zip varchar(5),
country varchar(15)
)
WITH STORAGETYPE = COLUMNAR
Class a.addressV2 Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = addressV2 ]
{
Property city As %Library.String(COLLATION = "EXACT", MAXLEN = 50, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 2 ];
Property zip As %Library.String(COLLATION = "EXACT", MAXLEN = 5) [ SqlColumnNumber = 3 ];
Property country As %Library.String(COLLATION = "EXACT", MAXLEN = 15, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 4 ];
Parameter STORAGEDEFAULT = "columnar";
Parameter USEEXTENTSET = 1;
Announcement
Olga Zavrazhnova · Sep 13, 2022
Fall Hackathon Season is ready now!
InterSystems will take part in HackMIT hackaton, a long-weekend hackaton organized by the MIT (Massachusetts Institute of Technology), where thousands of students come together to work on cool software and/or hardware projects. This year the HackMIT is in-person again, at the MIT campus, and will take place during the first weekend of October.This year the main tracks are Education, Sustainability, New Frontiers, and Entertainment.InterSystems challenge will be related to 1 or 2 of the main tracks and will be revealed on September 28.Stay tuned!
HackMIT it's a great event! I hope this year could be bigger than the last one. Agree - last year's event was so much fun! And it was so successful, with the help of our superb mentors! :)This year they do it fully in person, I also hope it will big and awesome!
Article
Robert Cemper · Jun 6, 2022
The 24th contest was dominated by already well know winners+ 3 new winning contributors GROWTH: 8,6%Participation by my 5 regions:
as: 1, br: 4, eu: 4+1new, us: 1+2new, ru: 5, total:18 With is distribution:
Prizes
USD
Region
Prz
8
9200
ru
37.4%
7
6200
eu
25.2%
7
4700
br
19.1%
2
3500
as
14.2%
5
1000
us
4.1%
This results over all 24 contests into:
Prizes
USD
Region
Prz
95
72870
br
40.3%
48
51625
ru
28.6%
34
25900
eu
14.3%
15
19325
as
10.7%
14
11000
us
6.1%
The Top 6 performing winners:
And all winner's profiles over 24 contests:
The related package is updated on OEX and ODS.
GitHub Just curious, how do you count me, since I've moved to UAE, a few contests ago You are still counted with RU as at beginning of the contests.I didn't split your identity. I had rumors that you are contracted in UAR.
Announcement
Anastasia Dyubaylo · Sep 14, 2022
Hey Community,
We're thrilled to invite you to the next "InterSystems Iberia Summit 2022", which will be held in-person once again. Registration is already open!
Join us in this important event where we'll bring together InterSystems customers and partners and also employees and members of the Developer Community - to learn, inspire and share innovation challenges with each other:
➡️ InterSystems Iberia Summit 2022
🗓 November 16 – 17, 2022
📍Valencia. The Westin Valencia hotel
At the InterSystems Iberia Summit, you will be able to share challenges and priorities. And you will learn how InterSystems technology is making the digital transformation a reality while allowing and boosting innovation.
We'll publish the agenda with prominent speakers, topics, and workshops soon.
And there will be great surprises at the Developer Community Corner.
See you in Valencia!
➡️ Registration is open at: www.intersystems.com/es/iberia-summit-2022 worth to go! I wish I would go
Announcement
Anastasia Dyubaylo · Sep 26, 2022
Hey Community,
We're very pleased to present to you our brand new About Us pages! Please welcome:
📍 Our Team
📍 InterSystems Developer Ecosystem Overview
So...
Let's meet the Team! These are the people that make the magic happen ✨
Please feel free to contact us – we are here to make the Community a better place for developers!
In addition, don't miss your chance to get to know all our regional teams:
ES DC team
PT DC team
JP DC team
CN DC team
FR DC team
And...
🤩 Let's meet our InterSystems Developer Ecosystem overview page!
Here you can see a clear and simple overview of our related portals and resources where you can find lots of exciting and helpful stuff:
How to find these pages?
Go to the "About Us" section from the top menu:
Hope you enjoy our brand new pages!
Feel free to share your feedback in the comments ;)
Announcement
Anastasia Dyubaylo · Aug 3, 2021
Hey Developers,
Welcome to the next InterSystems online programming competition:
🏆 InterSystems IRIS Analytics Contest 🏆
Duration: August 23 - September 12, 2021
Total prize: $8,750
Landing page: https://contest.intersystems.com
Prizes
1. Experts Nomination - a specially selected jury will determine winners:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
2. Community winners - applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
🥉 3rd place - $250
If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account!
👥 Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team.
Do not forget to highlight your team members in the README of your application – DC user profiles.
Contest Period
🛠 August 23 - September 5: Application development and registration phase.
✅ September 6 - 12: Voting period.
Note: Developers can improve their apps throughout the entire registration and voting period.
The topic
💡 Analytics solutions using InterSystems IRIS 💡
Use one or more InterSystems IRIS analytics capabilities such as:
Adaptive Analytics (AtScale)
InterSystems Reports (Logi)
InterSystems BI (DeepSee)
InterSystems NLP (iKnow)
to create a simple compelling, and clear visualization and/or story.
Here are the requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition (except Adaptive Analytics and InterSystems Reports).
The application should be Open Source and published on GitHub.
The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works.
Helpful resources
1. Sample applications and instructions:
1.1. Adaptive Analytics:
Adaptive Analytics in Action (video)
1.2 InterSystems Reports:
A look at InterSystems Reports (video)
InterSystems Reports Resource guide
Running InterSystems Reports in containers
IRIS reports server demo (OEX)
1.3 IRIS BI examples:
IRIS Analytics Template
Samples BI
Covid19 analytics
Analyze This
Game of Throne Analytics
Pivot Subscriptions
Error Globals Analytics
Creating InterSystems IRIS BI Solutions Using Docker & VSCode (video)
The Freedom of Visualization Choice: InterSystems BI (video)
InterSystems BI(DeepSee) Overview (online course)
InterSystems BI(DeepSee) Analyzer Basics (online course)
1.4 InterSystems NLP (iKnow):
iKnow Source Code
Samples Aviation
Set Analysis
iKnow First Look (online course)
2. Sample data:
Hole Foods database for IRIS BI (installed with SamplesBI package)
Adventure Works, zip
Synthea
3. Tools to import data into IRIS:
CSVGEN and CSVGENUI
S3 External Table
4. For beginners with IRIS
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
5. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
Judgment
Voting rules will be announced soon. Stay tuned!
So!
We're waiting for YOUR great project – join our coding marathon to win!
❗️ Please check out the Official Contest Terms here.❗️
Added an article on InterSystems Reports in containers and the related demo Added new section to helpful resources:
➡️ For beginners with IRIS
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners - thanks to @Yuri.Gomes for such a useful post!
Thanks! Hey Developers,
Watch the new video on InterSystems Developers YouTube:
⏯ Adaptive Analytics in InterSystems IRIS
Hi Community,
See a demonstration of InterSystems IRIS Adaptive Analytics and get a detailed description of this new offering for analytics end-users:
⏯ Demonstration: Adaptive Analytics in InterSystems IRIS
Hey Developers,
The start date of the Analytics contest has been postponed!
Please welcome the new contest period:
🛠 August 23 - September 5: Application development and registration phase.
✅ September 6 - 12: Voting period.
Stay tuned! Hi Community!
The registration period will be soon!
We are waiting for your awesome solutions! Hey Community!
Only 4 days left to the start of the registration period!
You can use one or more InterSystems IRIS analytics capabilities such as:
Adaptive Analytics (AtScale)
InterSystems Reports (Logi)
InterSystems BI (DeepSee)
InterSystems NLP (iKnow)
to create a simple compelling, and clear visualization and/or story. Hey DC members!
Don't miss the upcoming InterSystems Analytics Contest Kick-off Webinar!
Date & Time: Monday, August 23 — 10:00 AM EDT
Speakers: 🗣 @Carmen Logue, InterSystems Product Manager - Analytics and AI🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager Developers!
Tomorrow is starting the registration phase of InterSystems IRIS Analytics Contest!
Don't forget about the upcoming InterSystems Analytics Contest Kick-off Webinar on Monday, August 23 — 10:00 AM EDT.
We are waiting for you! Hi, Devs!
The registration period has already begun!
Please, upload your applications!
We are waiting for your new and marvelous ideas!🤩 Hi Community!
The recording of this webinar is available on InterSystems Developers YouTube! Please welcome:
⏯ InterSystems Analytics Contest Kick-Off Webinar
Big applause to our speakers! 👏🏼 Dear Developers!
Please use technology bonuses to collect more votes and get closer to victory. 🥳
Happy coding!✌ Hi Community!
The registration period is continuing!
Please, check out our Official Contest Terms here.
Have a great day!😄 Developers!
We are waiting for your great apps!
Don't forget to participate! Dear developers!
🛠 The registration period ends on September 5th.
Hurry up to upload your apps! Hey Developers!
Today is the last day of the registration period!
Upload your applications and solutions and take a part in the competition!
Good luck to everybody!😉 Community!
Registration time will end soon!
And here 4 applications that are already in the competition:
AlertDashboard by@Zhuang.Pan
Analytics OKR by @Yuri.Gomes iris-analytics-datastudio by @Dmitry.Maslennikov promjet-stats by @Evgeniy.Potapov
Who is gonna be next?
Announcement
Evgeny Shvarov · Jul 30, 2021
Hey Developers,
We are excited to announce the launch of the InterSystems Partner Directory!
This is the place to go to find commercial services and solutions built on InterSystems products.
Why InterSystems Partner Directory?
Every day, we receive questions like these:
Are there any ERP solutions built on InterSystems technology?
I live in Sweden—how can I get trained with InterSystems?
Does InterSystems have any implementation partners in France?
Whether our customers look for help building a solution, for a trusted consulting source, for assistance with an implementation project, or for some extra training, they can use the Partner Directory to establish a relationship with the company that’s right for them.
If your company is an InterSystems partner that provides:
Implementation, consulting, or training services related to InterSystems technology,
and/or solutions built with or for InterSystems products,
We welcome you to publish your listing and join the Partner Directory.
Check it out and share it with your colleagues!
You can easily find InterSystems Partner Directory site in the top bar:
Announcement
Anastasia Dyubaylo · Sep 29, 2021
Hey Developers,
Welcome to the next InterSystems online programming competition:
🏆 InterSystems Interoperability Contest 🏆
Duration: October 04-24, 2021
Our prize pool increased to $9,450!
Prizes
1. Experts Nomination - a specially selected jury will determine winners:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
🌟 NEW PRIZES: 4-10th places - $100
2. Community winners - applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
🥉 3rd place - $250
If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account!
👥 Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team.
Do not forget to highlight your team members in the README of your application – DC user profiles.
Contest Period
🛠 October 04-17: Application development and registration phase.
✅ October 18 - 24: Voting period.
Note: Developers can improve their apps throughout the entire registration and voting period.
The topic
💡 Interoperability solutions for InterSystems IRIS and IRIS for Health 💡
Develop an interoperability solution or a solution that helps to develop or/and maintain Interoperability solutions using InterSystems IRIS or InterSystems IRIS for Health.
Requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition.
The application should be Open Source and published on GitHub.
The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works.
Helpful resources
1. For beginners with InterSystems IRIS:
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
2. Sample applications:
Ensemble/Interoperability Formation
IRIS-Interoperability-template
ETL-Interoperability-Adapter
InterSystems IRIS for Health ENSDEMO
HL7 and SMS Interoperability Demo
Twitter Sentiment Analysis with IRIS
Healthcare HL7 XML
RabbitMQ adapter
PEX demo
3. Online courses & videos:
Interoperability for Business
Interoperability QuickStart
Interoperability Resource Guide - 2019
Intelligent Interoperability
Interoperability for Health Overview
4. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
Judgment
Voting rules will be announced soon. Stay tuned!
So!
Ready. Set. Code.
Please join our exciting coding marathon!
❗️ Please check out the Official Contest Terms here.❗️
Hey Devs!
Don't miss the upcoming InterSystems Interoperability Contest Kick-off Webinar dedicated to the Interoperability Contest!
Date & Time: Monday, October 4 — 12:00 AM EDT
We are waiting for you, and good luck to everybody! Hey Community!
We are waiting for your participation in the Interoperability Contest!
Here is the landing page: https://contest.intersystems.com/ Dear Participants!
Don't forget about technology bonuses to help you get closer to winning! 🎉
Please follow this post prepared by @Evgeny.Shvarov
Happy coding!✌ Hey Developers,
The recording of the Interoperability Contest Kick-off Webinar is available on InterSystems Developers YouTube!
Please welcome:
⏯ InterSystems Interoperability Contest Kick-off Webinar
Hi Community!
The registration period is continuing!
Please, check out our Official Contest Terms here.
Have a great day!😄 Hello Developers!
The first week of the registration period has ended, so only one week left!
So, upload your applications and participate!
For now, @Aleksandr.Kalinin6636 has added an application! It's called ESKLP, go check it out!
Good luck to everybody, and easy coding! Developers!
Hooray, we have another participant @Robert.Cemper1003 and his app CSV to M$-OFX. 🔥
Who will be next?👀 Developers!
Today is the last day of the registration period! So, don't waste your time and upload your awesome applications!
And here new participants to our contests, check out the apps:
iris-crypto-tracker by @Evgeniy.Potapov
LabResultsVerification-hl7 by @Muhammad.Waseem
appmsw-telealerts by @MikhailenkoSergey
Announcement
Anastasia Dyubaylo · Nov 23, 2020
Hey Developers,
The InterSystems Interoperability Contest is over. Thank you all for participating in our exciting coding marathon!
And now it's time to announce the winners!
A storm of applause goes to these developers and their applications:
🏆 Experts Nomination - winners were determined by a specially selected jury:
🥇 1st place and $2,000 go to the Open API Client Gen project by @Lorenzo.Scalese
🥈 2nd place and $1,000 go to the OCR Service project by @Yuri.Gomes
🥉 3rd place and $250 go to the IRIS Interoperability Message Viewer project by @Henrique
🥉 3rd place and $250 go to the interoperability-integratedml-adapter project by @José.Pereira
🏆 Community Nomination - an application that received the most votes in total:
🥇 1st place and $1,000 go to the OCR Service project by @Yuri.Gomes
🥈 2nd place and $500 go to the IRIS Interoperability Message Viewer project by @Henrique
🥉 3rd place and $250 go to the Open API Client Gen project by @Lorenzo.Scalese
Congratulations to all the participants!
Thank you for your attention to the contest and the efforts you pay in this exciting coding competition!
And what's next?
We've already announced the next competition for InterSystems developers!
Please join the InterSystems Analytics Contest kicking off December 7th!
Stay tuned for more details! I'm really very happy to be the community winner and the 2nd in the experts votes. I participated in 4 past contests, and now, in my preferred topic, interoperability, I won.
Thanks all DC team to organize, support and do the better IT contest in the market. The iris contests help to the community to knows better the IRIS features and how to use it to solve important problems.
Many fantastic apps were created and enrich the OEX catalog with samples to the intersystems clients. These contest samples and apps also helped IRIS PMers to see how the market uses the IRIS features and got more collaboration with the advanced IRIS users and developers.
I see only positive aspects in the IRIS contests. I hope the contests to be continue in 2021!
And I see you in the december contest, about analytics. I know will be my app already. It will be great!
Thanks again! Thanks to the each vote that I got. You are my fuel to do more articles, apps and contribute to the InterSystems and community efforts. Big congrats, Yuri!
And thank you for such a great contribution! What an exciting contest!
So happy to win in experts votes and third in community votes.
Congrats to all participants for your great apps.
Thanks to experts and community for your support!
Also special thanks to the OEX Team and all members behind the scene. Congrats to the winners and all the participants! It was very hard to choose the best project in the contest, we had a really amazing set of applications!
Happy to see all the participants on Friday in the celebration meetup!
Article
Eduard Lebedyuk · Jun 3, 2021
**IMPORTANT NOTE** InterSystems no longer provides a separate InterSystems Reports Server container. To run containerized InterSystems Reports Server, use Logi Reports Server container and your InterSystems Reports Server license. [Documentation](https://devnet.logianalytics.com/hc/en-us/articles/5741448163607-Using-and-Upgrading-Logi-Report-Server-on-Docker).
> InterSystems Reports is powered by Logi Report (formerly named JReport), a product of Logi Analytics. InterSystems Reports is supported by InterSystems IRIS and InterSystems IRIS for Health. It provides a robust modern reporting solution that includes:
>
> - Embedded operational reporting which can be customized by both report developers and end users.
> - Pixel-perfect formatting that lets you develop highly specific form grids or other special layout elements for invoices, documents, and forms.
> - Banded layouts that provide structure for aggregated and detailed data.
> - Exact positioning of headers, footers, aggregations, detailed data, images, and sub-reports.
> - A variety of page report types.
> - Large-scale dynamic report scheduling and distribution including export to PDF, XLS, HTML, XML, and other file formats, printing, and archiving for regulatory compliance.
>
> InterSystems Reports consists of:
>
> - A report designer, which provides Design and Preview Tabs that enable report developers to create and preview reports with live data.
> - A report server which provides end users browser-based access to run, schedule, filter, and modify reports.
From [InterSystems documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_intro).
This article focuses on the Server part of InterSystems Reports and provides a guide on running Report Server in containers while persisting all the data.
# Prerequisites
Before we start, this software must be available for the InterSystems Reports to work:
- [Docker](https://docs.docker.com/engine/install/) - while InterSystems Reports can work *without* Docker, this article focuses on Dockerised setup.
- (Optional) [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - to clone this repo, otherwise [download it as an archive](https://github.com/eduard93/reports/archive/refs/heads/master.zip).
- (Optional) [InterSystems Reports Designer](https://wrc.intersystems.com/) - to create new reports if desired.
Additionally, you'll need:
- Login on [containers.intersystems.com](https://containers.intersystems.com) Docker registry
- InterSystems Reports License (contact InterSystems for it)
# Configuration
Before we start, here's what we're going to do:
- First, we are starting Reports and IRIS in setup mode to setup IRIS as a database (not DataSource!) for Reports.
- After that, we are configuring Reports and persisting this configuration on the host.
- Finally, we are running Reports with persisted data.
# First start
Let's go. Note that all steps here - 1-8 use `docker-compose_setup.yml` as a docker-compose configuration file. All additional docker-compose commands during these steps must be run as `docker-compose -f docker-compose_setup.yml`.
1. Clone this repo: `git clone https://github.com/eduard93/reports.git` or download an [archive](https://github.com/eduard93/reports/archive/refs/heads/master.zip).
2. Edit `config.properties` and specify your InterSystems Reports Server license information (User and Key). If you don't have them - contact InterSystems. There are many other properties described in the [documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_server). Note that IRIS, in that case, refers to the database for Reports and not the data source for reports (which comes later).
3. Start InterSystems Reports Server with initialization: `docker-compose -f docker-compose_setup.yml up -d`
4. Wait for InterSystems Reports Server to start (check with `docker-compose -f docker-compose_setup.yml logs reports`). It can take 5-10 minutes. Reports Server is ready for work when logs show: `reports_1 | Logi Report Server is ready for service.`
5. Open [Reports Server](http://localhost:8888). (User/pass: `admin`/`admin`). In a case, it shows an expired window enter the same license info again. It should look like this:

# Persisting configuration
Now that Reports is running, we need to adjust configuration a little and persist it on a host (note that InterSystems IRIS part of a configuration is persisted using [Durable %SYS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=ADOCK#ADOCK_iris_durable).
6. Check `Enable Resources from Real Paths` option in the `server console` > `Administration` > `Configuration` > `Advanced` page. [Docs](https://devnet.logianalytics.com/hc/en-us/articles/1500009750141-Getting-and-Using-Resources-from-a-Real-Path). It would allow us to publish reports as simple as copying them into the `reports` folder in the repository.

7. Copy persistent storage files to host ([docs](https://hub.docker.com/r/logianalytics/logireport-server)):
```
docker cp reports_reports_1:/opt/LogiReport/Server/bin .
docker cp reports_reports_1:/opt/LogiReport/Server/derby .
docker cp reports_reports_1:/opt/LogiReport/Server/font .
docker cp reports_reports_1:/opt/LogiReport/Server/history .
docker cp reports_reports_1:/opt/LogiReport/Server/style .
```
8. Shutdown InterSystems Reports Server: `docker-compose -f docker-compose_setup.yml down`
# Second start
Now we're ready to start Reports with persisted data storage - this is how it would run in production.
9. Start InterSystems Reports Server without initialization: `docker-compose up -d`
10. Create a new folder resource in `Public Reports` with Real Path: `/reports`. [Docs](https://devnet.logianalytics.com/hc/en-us/articles/1500009750141-Getting-and-Using-Resources-from-a-Real-Path). To do that open `Public Reports` and select `Publish` > `From Server Machine`:

Create a new folder pointing to `/reports`:


It should contain a catalog (which defines a connection to IRIS) and two reports (`reportset1` and `reportset2`). Run them (use `Run` button to see it in a browser and `Advanced Run` to choose between HTML, PDF, Excel, Text, RTF, XML, and PostScript formats). Here's what reports look like:


As you can see, Reports supports Unicode out of the box. In this example, I'm using the same IRIS as a data source, but in general, it can be any other IRIS instance - as defined in a catalog. This demo uses the `HoleFoods` dataset (installed with `zpm "install samples-bi"`). To add new connections, create a new catalog in Designer. After that, create new reports and export everything in a new subfolder in a `reports` folder. Of course Server container must have network access to any data source IRIS instance.
That's it! Now, if you want to stop Reports, execute: `docker-compose stop`. And to start Reports again execute: `docker-compose up -d`. Note that all reports are still available.
# Debugging
All logs are stored in `/opt/LogiReport/Server/logs` folder. In a case of errors, add it to volumes, restart Reports and reproduce the error.
Documentation describes how to adjust [log levels](https://documentation.logianalytics.com/rsg17u1/content/html/config/config_log.htm?Highlight=logging). If Reports doesn't exactly get to the UI adjust `LogConfig.properties` file located in the `bin` folder:
```
logger.Engine.level = TRIVIAL
logger.DHTML.level = TRIVIAL
logger.Designer.level = TRIVIAL
logger.Event.level = TRIVIAL
logger.Error.level = TRIVIAL
logger.Access.level = TRIVIAL
logger.Manage.level = TRIVIAL
logger.Debug.level = TRIVIAL
logger.Performance.level = TRIVIAL
logger.Dump.level = TRIVIAL
```
# Embedding and APIs
To embed reports in your web application, use [Embedded API](https://documentation.logianalytics.com/logiinfov12/content/embedded-reports-api.htm).
Other [available APIs](https://documentation.logianalytics.com/logireportserverguidev17/content/html/api/wkapi_srv.htm).
# Summary
InterSystems Reports provides a robust modern reporting solution with embedded operational reporting. InterSystems Reports Server provides end users browser-based access to run, schedule, filter, and modify reports. InterSystems Reports Server can be efficiently run in a Docker environment.
# Links
- [Repository](https://github.com/eduard93/reports)
- [Documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_server)
- [Logging](https://documentation.logianalytics.com/rsg17u1/content/html/config/config_log.htm?Highlight=logging) 💡 This article is considered as InterSystems Data Platform Best Practice. Thank you for taking the time to make such a clear tutorial!
Announcement
Anastasia Dyubaylo · Jul 12, 2021
Hey Developers,
Are you ready for the new challenge? We're pleased to announce the first InterSystems technical article writing competition:
🏆 InterSystems Tech Article Contest 🏆
Write an article on any topic related to InterSystems technology from July 15 to August 15 August 22 – extended!
Prizes for everyone: Everyone who publishes an article on DC during this period will receive a special prize pack!
Main Prize: Apple iPad
Join our new contest and your content will be seen by over 55K monthly readers! Details below.
Prizes
1. Everyone is a winner in InterSystems Tech Article Contest! Any user who writes an article during the competition period will receive special prizes:
🎁 unique Developer Community Hoody
🎁 InterSystems sticker
2. Expert Awards – articles will be judged by InterSystems experts:
🥇 1st place: Apple iPad 128GB
🥈 2nd place: Amazon Kindle 8G Paperwhite
🥉 3rd place: Nike Utility Speed Backpack
Or as an alternative: Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed
3. Developer Community Award – article with the most likes. The winner will have an option to choose one from the following prizes:
🎁 Nike Utility Speed Backpack
🎁 Amazon Kindle 8G Paperwhite
🎁 Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed
Who can participate?
Any Developer Community member, except for InterSystems employees. Create an account!
Contest Period
📝 July 15 - August 22: Publication of articles on the Community and voting time.
Publish an article(s) throughout this period. DC members can vote for published articles with Likes – votes in the Community award.
Note: The sooner you publish an article(s), the more time you will have to collect Likes.
🎉 August 23: Winners announcement.
What are the requirements?
❗️ Any article written during the contest period and satisfying the requirements below will automatically enter the competition:
The article must be related to InterSystems technology
The article must be in English
The article must be 100% new (it can be a continuation of an existing article)
The article should not be plagiarized or translated (translations of your own DC articles from another language are allowed)
Article size: >1,000 characters
Team size: individual (multiple entries from the same author are allowed)
What to write about?
❗️ You can choose any tech topic related to InterSystems technology.
Here're some possible fields for choosing the article topic. These are just examples, you have the liberty to choose anything you want.
#
Topic
Details
1
Embedded Python Introduction
Embedded Python is an exciting new feature of InterSystems IRIS allowing developers to write methods, SQL procedures and more in Python.
2
Embedded Python from Interoperability
Explore how Embedded Python can be leveraged from an Interoperability production.
3
Embedded Python: Translating by Language Constructs
While we aim for seamless Embedded Python integration there are some tips & tricks to smooth things over. Underscore methods, dictionaries, lists and others. What are the best ways of calling Python features from ObjectScript?
4
Intro to InterSystems Reports Designer
Continuation of this article. This article should cover:
Catalog creation
Creation of the basic report types, namely
Chart (bar, pie, line, gauge, heatmap, ...)
Table (summary and detailed)
Crosstab
Publishing Reports to Reports Server
Creating a schedule
A good tutorial to start with: Getting Started with InterSystems Reports
5
Calling Reports from Interoperability/IRIS
An article describing how to execute (and get) InterSystems Reports Report from IRIS on from Interoperability Production.
6
Map Reports with InterSystems
An article describing how to build InterSystems Reports Report with geospatial data. HoleFoods dataset contains locations for transactions which you can use.
7
How to do CI/CD with InterSystems IRIS
–
8
Change Data Capture with Kafka Connect
An example that shows how to set up Kafka Connect and export&import SQL data via the Kafal Connect JDBC connector.
9
Applying analytics / ML to the SQL Statement Index
–
10
My favourite maintenance tasks, automated
–
11
Leveraging the Audit database
–
12
The three steps to set up GitHub Actions that make your app invincible
–
13
OAuth2 authorization in IRIS instance
–
14
Setup mirroring on K8s
–
15
Using %MDX and %KPI instead of Subject Area in IRIS Analytics
–
16
Trying External Language Gateways / compare to the gateways of old
Example
17
Streaming events to Kafka from IAM
–
18
IntegratedML walkthrough
–
19
Exporting requests to Excel using Python
–
20
Integrating cloud services with productions
e.g. MS Azure Cognitive Services or Amazon Rekognition.
21
Working with IKO
–
22
IKO IRIS on AWS Kubernetes with Hugepages
–
23
Incorporating backups with IKO
–
24
IKO – Create a cluster with compute nodes, SAM, and no sharding
Include the CPF file to set up our best practices.
25
Data Science shared workgroup setup with ECP
There is a data server and each data scientist has a compute node on their desktop. Show the data is available when disconnected and syncs when you re-connec.
26
Article discussing storage options for cloud deployments (performance difference between local storage, block storage, etc) and trade-offs (you might not need mirrors if using block storage, etc.)
–
27
Building IRIS images with Docker Build Mounts
Details
28
InterSystems IRIS CUDA image
There's a way to use GPUs/CUDA from inside the container. Describe how to build an InterSystems IRIS image with CUDA support.
Note: Articles on the same topic from different authors are allowed.
Feel free to submit your topic ideas in the comments to this post.
So,
We're waiting for your great articles!
Good luck and let the power of Pulitzer be with you! ✨ Article idea: Building IRIS images with Docker Build Mounts
From the docs on Docker Build Mounts:
RUN --mount allows you to create mounts that process running as part of the build can access. This can be used to bind files from other part of the build without copying, accessing build secrets or ssh-agent sockets, or creating cache locations to speed up your build.
This is a recent Docker feature allowing users to build compact images (since we no longer need to COPY everything inside). Try it out and write an article about it? Article idea: InterSystems IRIS CUDA image
There's a way to use GPUs/CUDA from inside the container. Describe how to build an InterSystems IRIS image with CUDA support. Hey Developers,Each article will bring you points on Global Masters, and you also could earn some of related badges:✅ Badges for Number of Articles: 1st / 5 / 10 / 25 / 50 articles✅ Badges for Number of Votes (votes for all your DC posts in sum): 50 / 100 / 500 / 1000 votes✅ Badges for Number of Views: 750 / 2,000 / 5,000 / 15,000 viewsCheck these badges and how much points they can bring in this article. Hey DC members,
The InterSystems Tech Article Contest started today! 🤩🤩
Can't wait for your great articles!
📍 Start here: https://community.intersystems.com/contests/1 Hey Community,
We've implemented a new feature in our DC editor so that you can easily track the amount of content in your article! Please welcome:
Word & character counter
When you type any text on the post creation page, DC Editor reads all words and characters and automatically displays them in the lower right corner.
p.s. Counter works only for WYSIWYG format.
Enjoy! ✨ Hi Community!
If you do not have a topic to write an article on, you can view the topics that we offer above in this post.
Good luck and stay tuned! Hey Community!
We are waiting for your great articles!
Participate and win Apple iPad 128GB for the first place! Hey DC members,
The InterSystems Tech Article Contest сontinues!🚀
We look forward to your articles! Hey DC members,
5 new articles are already in the game! 🤩
Visit our contest page to support the participants with Likes = votes in the Community Award!
📍 https://community.intersystems.com/contests/1 Wow!! 👏👏I love this contest!! 😁 Yeah! A lot of new things to read 😊👍🏼 Hey Developers!
What great articles have already been made!🤩🤩
Who will be next? Hey Community,
Another alternative prize was added to the Community Award:
🎁 Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed
Now the winner will have an option to choose one of 3 prizes! Hey Devs!
Don't forget, that DC members can vote for published articles with Likes – votes in the Community award.
So, the earlier you will write an article, the chance to get more likes is higher!🤩
Good luck and stay tuned! Hi, May I translate my article once I've publish in english? Kurro, translations of your own DC articles are also allowed, go ahead! ;) Hi Community!
Only two weeks left to the end InterSystems Tech Article Contest!
Don't be shy, publish your article and win the prize! Hey Devs!
Now 12 incredible articles are in the game!🤩
Visit our contest page to support the participants with Likes = votes in the Community Award!
📍 https://community.intersystems.com/contests/1 Hey DC members,
A new article by @Oliver.Wilms !
Check it out! Hi Comunity!
Almost one week left to the end of InterSystems Tech Article Contest!
Good luck and stay tuned! The prizes are waiting for you! Hi, Devs!
2 more articles are already in the game!😻
Only 6 days left to the end of the publication period!
Good luck to everybody!🤞💪 Hey Community,
❗️ We decided to extend the contest period until 22 August!
One more week to write an article and join our competition – don't miss your chance to win 😉
P.s. And don't forget about prizes for everyone who enters the contest ;)
______________
Yours, Anastasia Hey Community!2 more articles are being added to the contest!Interoperability with IRIS and Pharmacy Robotics by @Nigel.Salm5021 launch with the intelligent eco-system in InterSystems by @crys.su9670
Go check it out! And good luck to everybody! Hey Developers!
One more participant has joined the contest with some awesome articles!
Deploy to production module to convert query results to xlsx file based on python openpyxl library by @MikhailenkoSergey Hi Developers!
How many awesome articles are already been made!
Go check them out: https://community.intersystems.com/contests/1 Hi DC Members!
A new article is added to the competition!
Why I love ObjectScript and why I think I might love Python More by @Nigel.Salm5021
Take a look at it Hey Community!
One more new article has been added to the game!
GitHub Codespaces with IRIS by @Dmitry.Maslennikov
Only one day left to the end of the contest! I have just published my third and final Tech Article. This article describes how you can develop a single Interface Code Base and then using Package and Global Mappings generate a multitude of Interfaces that either have date PUSHED into them or PULL data from a Source Application or Database and in my example, transform that data into either HL7 or FHIR messages. I then use HTTP to send the message to a Target Server.
[12:15 AM]
I have attached the article as a PDF which might make it a bit easier to read and I will be releasing the actual software on OEX in the near future. Hey Developers!
3 more articles have been added to the competition!
Transferring Files via REST to Store in a Property, Part 3 by @Iryna.Mykhailova
How to develop an interoperability solution in one code base and then use it to generate many individual interfaces by @Nigel.Salm5021
My opinion: IRIS Mirror not as reliable as expected in AWS Elastic Container Service by @Oliver.Wilms
Last call Developers! Only 8 hours left to the end of the contest! great! thanks, Nigel
Announcement
Evgeny Shvarov · Aug 15, 2021
Hi Community and InterSystems Partners!
We are glad to share great news for Intersystems Partner Directory Members:here is a list of services you can use to become more visible within our InterSystems Community.
As a partner, you may order one of the services every six months free of charge:
$1,000 Google AdWords Campaign VoucherWe will set up and launch the campaign for you
Promotion within the Developer EcosystemWe put a banner on the website with 50K+ monthly InterSystems related audience
Webinar supported by InterSystemsWe will take care of all the organizational efforts. You just come and tell about your solution and get real-time feedback
Introduce Your Company's Tag on Developer CommunityUse your own tag to share news about your company
Your Video on InterSystems Developers YouTube channelMake a video about your application and how it works with InterSystems solutions, and we will post it on our YouTube channel with 186,000 subscribers
Publish a Job DescriptionSubmit a job description, and it will be published on Developer Community forums with 50K+ monthly audience.
And more services are coming soon!
Also, if you have something in mind, you can share in the comments what you would like to see as a service provided for partners by Intersystems Partner Directory.
How to request:
1. Sign in to Partner Directory and make sure you have the Company's profile. If not - here is the video on how to list it
2. Open your Partner Directory account
3. Navigate to the tab Ecosystem Services
4. Hit the "Request" button in front of one of those you want to get
Waiting for your requests! Hope the services are helpful! And looking forward to your feedback on the usage of InterSystems Partner Ecosystem services!
Announcement
Guillaume Rongier · Sep 1, 2021
All French-speaking developers are friendly invited to follow a stream in the form of a journal.
Every first Thursday of the month at 12:00 (Paris time), we organize a 30-45 minutes stream on Youtube with the following format :
News on technologies around InterSystems.
A section called "Did you know it?" (tips and tricks on IRIS)
A "dossier", where we develop a subject (example: How language gateway works).
And we end the program with an Interview of an french developer
Previous episodes :
Stream #0 : https://www.youtube.com/watch?v=ah0G7mNqa4E
News
2020.4 in GA
https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.cls?KEY=HXIHRN_new20204
IAM deck
https://docs.konghq.com/deck/
Le concours Outils InterSystems
https://community.intersystems.com/post/intersystems-programming-contest-developer-tools
Apps :
https://community.intersystems.com/post/announcing-server-manager-20-visual-studio-code
https://openexchange.intersystems.com/package/Config-API
https://community.intersystems.com/post/environment-setup-config-api
https://openexchange.intersystems.com/package/i2b2-on-iris-1
https://community.intersystems.com/post/containerising-netjava-gateways-or-kafka-integration-demo
News
https://community.intersystems.com/post/install-zpm-one-line
https://community.intersystems.com/post/ssh-iris-container
https://community.intersystems.com/post/intersystems-iris-multistage-builds
Did you know it?
Performance differences between methods/routines/labels
https://gist.github.com/grongierisc/85dccbc573e2ad48cea2809ac80fc062
Dossier
IAM Demo
https://github.com/grongierisc/iam-training/tree/training
Interview
Lorenzo Scalese
Stream #1 : https://www.youtube.com/watch?v=E87OYwO7w60
News
https://community.intersystems.com/post/global-storage-everything-you-wanted-know-and-more
https://community.intersystems.com/post/separate-list-results-persistent-classes-sql#comment-155671
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCRN_new20204
New layout
https://community.intersystems.com/post/pubsub-publish-subscribe-messages
https://community.intersystems.com/post/introducing-intersystems-container-registry
https://community.intersystems.com/post/mirroring-ensemble-service-information
https://community.intersystems.com/post/should-we-store-external-files-intersystems-stream-or-windows-folders
https://community.intersystems.com/post/intersystems-fhir-accelerator-programming-contest
https://community.intersystems.com/post/new-video-embedded-python-intersystems-iris-sneak-peek
https://community.intersystems.com/post/java-business-host-now-retired
Did you know it?
List vs Array
Dossier
PubSub
https://github.com/grongierisc/iris-pubsub-cdc
Interview
Matthieu Laurent
Stream #2 : https://www.youtube.com/watch?v=pszDXnzMi48
News
https://community.intersystems.com/post/intersystems-iris-iris-health-healthshare-health-connect-20211-are-now-generally-available
https://community.intersystems.com/post/ensemble-interoperability-training-course
https://community.intersystems.com/post/looking-python-developers-iris-embedded-python-early-access-program
Small Demo
https://community.intersystems.com/post/intersystems-ai-contest-kick-webinar
https://community.intersystems.com/post/lets-chat-join-intersystems-developers-discord
https://community.intersystems.com/post/class-projections-and-projection-classes
https://community.intersystems.com/post/how-verify-if-attribute-exists-object
Did you know it?
Persistence and SerialObject
https://gist.github.com/grongierisc/629a4f966d103c19cc298b4bb833a6e
Dossier
External gateway
https://github.com/grongierisc/iris-r-gateway-template
Interview
Fabien Cabot
Stream #3 : https://www.youtube.com/watch?v=PrIQ9x6KdBM
News
https://community.intersystems.com/post/my-reviews-open-exchange-july-2021
https://spound.github.io/iris_offline_docs/
http://dreamymclean.intersystems.skytapdns.com:52773/csp/docbook/Doc.View.cls
youtube links :
fireship : https://www.youtube.com/c/Fireship
micode : https://www.youtube.com/channel/UCYnvxJ-PKiGXo_tYXpWAC-w
https://community.intersystems.com/contests/1 :
https://community.intersystems.com/post/intersystems-iris-rest-application-patterns
https://community.intersystems.com/post/add-business-item-your-production-code
https://github.com/thewophile-beep/integrated-ml-demo
Did you know it?
Snapshot vs Resultset
https://github.com/grongierisc/BatchSqlOutboundAdapter/tree/SnapShotvsResultSet
SSR (Server Side Rendering) vs CSR (Client Side Rendering)
Dossier
How OBS works
Interview
Théophile Thierry
Next :
Stream #4 : https://www.youtube.com/watch?v=GHhowDrbmCc
News
https://community.intersystems.com/post/github-has-new-feature-vs-code-cloud
https://blog.octo.com/
https://blog.octo.com/bd-le-deploiement-continu-cd/
https://www.developpez.com/
https://community.intersystems.com/contests/1
https://community.intersystems.com/post/intersystems-iris-analytics-contest
https://openexchange.intersystems.com/package/Open-API-Client-Gen
https://openexchange.intersystems.com/package/Export-Studio-Snippets-to-VS-Code
https://www.docker.com/products/docker-desktop
Did you know it?
Parameter DEFAULTGLOBAL As STRING = "^IRIS.Temp.Rest.AsyncJob";
CORS with unantheticated user
https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=GREST_cors#GREST_cors_configure
Dossier
Async REST Call
https://github.com/grongierisc/iris-csvgen-ui/tree/master/src/Grongier/Rest/Async
Interview
Yann De Cambourg
Announcement
Anastasia Dyubaylo · Jan 17, 2022
Hey Developers,
It's time to announce the winners of the InterSystems Datasets contest! Are you ready?
A storm of applause goes to these developers and their applications:
🏆 Experts Nomination - winners were determined by a specially selected jury:
🥇 1st place and $4,000 go to the Medical Datasets app by @Muhammad.Waseem
🥈 2nd place and $2,000 go to the iris-kaggle-socrata-generator app by @José.Pereira and @Henrique
🥉 3rd place and $1,000 go to the Health Dataset by @Yuri.Gomes
More winners:
🏅 $100 go the ApacheLog-Dataset by @Evgeniy.Potapov
🏅 $100 go the exchange-rate-cbrf by @MikhailenkoSergey
🏅 $100 go the dataset-finance by @Oliver.Wilms
🏅 $100 go the openflights_dataset @Andreas.Schneider
🏅 $100 go the iris-python-faker by @Dmitry.Maslennikov
🏅 $100 go the Dataset OEX reviews by @Robert.Cemper1003
🏅 $100 go the Dataset Lightweight M:N by @Robert.Cemper1003
🏅 $100 go the dataset-covid19-fake-news by @henry
🏆 Community Nomination - an application that received the most votes in total:
🥇 1st place and $1,000 go to the iris-kaggle-socrata-generator app by @José.Pereira and @Henrique
🥈 2nd place and $500 go to the Medical Datasets app by @Muhammad.Waseem
🥉 3rd place and $250 go to the iris-python-faker by @Dmitry.Maslennikov
Our BIG congrats to all the participants and winners!
Thank you all for being attentive to our coding competition and for the efforts you pay into this contest! Thanks to the experts, the contest organization and congrats to the contestants. Many thanks to DC for all of your support, It was great contest and I learned a lot, Congratulations to all winners. Congratulations to everyone! Congratulations to the winners!! 
Congratulations!!!
Question
Sehinde Raji · Dec 6, 2021
Newbie
I am currently running a docker image with Iris 2021.1 and I would like to install node js on to it. I have had a look at the instructions on the intersystems online learning portal and I must say its very confusing. Some of the documentation says that you can only install it on 2019. Other parts say that it doesn't matter and you can install it if you have a dev directory. I checked my dev directory and there it isn't there. Sadly this is very inconsistent. Does anyone know if it is possible to install on the above mentioned version of Iris ? The most important thing you have to understand first, that when you use containers-way for running your application (and Docker here is just one of the ways, to run containers). You have to remember, that container should be as simple as possible, and do just only one thing. So, it means, that your NodeJS application, should run in a separate container, even if it connects to IRIS, it still has to be run separately and connected to IRIS over TCP.
So, you can use any official Debian-based NodeJS image, put InterSystems NodeJS driver in it, as well as your application, and run it. And your IRIS will run in a separate container, no matter which version.
Just as another option, I've recently published a project. Running in NodeJS, and connects to IRIS. It does not use an official driver and can be installed with npm (no readme, yet). Supports only SQL queries at the moment. You can look at this code, for example of usage. Just installing this package inside a Debian-based docker image with NodeJS, will be enough. Thank you very much for your advice it is very much appreciated