Hi, Community!

Open Exchange (OEX) is getting more and more popular and more and more developers consider publishing their apps in the public package manager registry.

This is really great!

So the topic of thoughtful naming convention is getting more important and even critical. Let's discuss?

2 6
1 496

Hi Interoperability experts!

Recently noticed an interesting conceptual discussion in our Interoperability Discord channel to which I want to give more exposure.

All we know that typical InterSystems Interoperability production consists of the following chain:

Inbound adapter->Business Service->Business Process->Business Operation->Outbound adapter.

And Business Process (BO) here is always considered as a passive "listener" either on port/folder/rest API for an incoming data.

2 4
0 315
Discussion
· Sep 16, 2022
txt2img
Several models, such as DALL-E, Midjourney, and StableDiffusion, became available recently. All these models generate digital images from natural language descriptions. The most interesting one, in my opinion, is StableDiffusion which is open source - released barely a few weeks ago. There's now an entire community trying to leverage it for various use cases.
2 0
0 931

Hello everyone,

My team is currently developing guidance and best practices for the generation, storage, and deployment of TUNE TABLE statistics across development and production environments. With that in mind, we want to get an idea of what methods teams in the field have developed for handling this data. In particular, we’d like to know the following:

2 3
1 226

Images for other languages are often build using multistage build process.

What about InterSystems IRIS?

Consider this Dockerfile:

FROM irishealth-community:2020.4.0.524.0 AS builder

# Load code into USER and compile
# Adjust settings, etc.

FROM irishealth-community:2020.4.0.524.0

# replace in standard kit with what we modified in first stage

COPY --from=builder /usr/irissys/iris.cpf /usr/irissys/.
COPY --from=builder /usr/irissys/mgr/IRIS.DAT /usr/irissys/mgr/.
COPY --from=builder /usr/irissys/mgr/user/IRIS.DAT /usr/irissys/mgr/user/.

The advantage of this approach is the image size.
The disadvantage is that on a final stage developer must know/remember all the modified places in the builder image.

But otherwise is this approach OK for InterSystems IRIS?
Have anyone tried to build IRIS images this way?

2 9
0 309
Discussion
· Sep 22, 2022
Testing MergeCPF feature

For quite some time InterSystems IRIS supports such thing as Merging CPF. So, with help of this it should be possible to define only desired changes in configuration. And get them applied even with vanilla Docker image.

And I though it could be useful when used with Dockerfile. Use this way to configure IRIS during docker build instead of using Installer manifest.

2 8
0 565

Hi Developers!

Often we need to use relatively small arrays with constants, static arrays in algorithms, etc where we need to do something with each element of an array. There are several ways to deal with it in ObjectSctipt.

Previously I used to use globals, locals, PPG for this but not so long time ago figured out that %List is a way too handy.

Indeed, suppose we have an array of months and need to set up and use it in our code.

2 15
1 665

Hi Team, we are going to deliver a speech on a developer forum where most developers hv not used our tech before but using other database and integration technologies , Pls give us some key points on why they should adopt us and the benefits you can get, especially if you change your tech stack from others to IRIS. Thanks a lot!

2 3
0 195
Discussion
· Nov 9, 2022
Code Golf: Word Order

We're back with a code golf!

You will receive a string. Each word in the string will contain a number.
This number is the position that word should have in the sentence.
If the input string is empty, return an empty string.
The output can only be in words, without the given numbers.

Input

"i2s T1his Te4st a3"

Output

This is a Test

2 13
0 629

The IRIS Management Portal is localized (translated) for some (many?) languages and the language used by the Management Portal interface is determined by the browser settings, often derived from the OS settings (can be changed).

This means that if a user, like me, want to use ONLY the English version of the Management Portal, each and every time you login you need to change the language. VERY annoying.

I know I can change the language configured in Browser, BUT, I want to use English for the IRIS management portal non for all my internet activity!

2 9
1 206

Work Queue Manager (WQM) is a feature of InterSystems IRIS that enables you to improve performance by distributing work to multiple concurrent processes programmatically. The idea is that you split the work into chunks, and WQM distributes the chunks across worker processes and can provide the info that the work is done.

However, recently, I got an interesting question: there's a large logical transaction composed of ~1,000,000 individual objects and SQL inserts and updates. Some updates are CPU-intensive, so the original idea was to use WQM to split an update into chunks to speed things up.

But, here's a catch: if one of the individual 1,000,000 changes fails (there's a variety of application-level checks so that it can fail, and that's not even that abnormal a behavior), the entire transaction must be rolled back. That creates a problem: each chunk must report success before committing their individual transactions, and someone must get all these reports and decide if we are committing or not.

Unfortunately, it looks like WQM does not have a bidirectional communication between workers and manager, so I suggested an approach using events:

  1. Start jobs.
  2. Wait for all jobs to report success using $System.Event.WaitMsg().
  3. Send Commit or Rollback using the $System.Event.Signal().
2 9
2 289

This year at Global Summit we will have several members of the InterSystems internal applications team (AppServices) on site to present topics of interest to developers. There will be General Sessions that we teach on a number of topics related to tools we're launching to the OEX, knowledge gained based on migrating our Caché app portfolio to InterSystems IRIS, best practices for following OWASP Top 10 with ObjectScript, and a survey of the application landscape offering services to our customers and prospects.

2 9
0 250
Discussion
· Mar 14, 2024
IRIS Drivers with maven

Once again I would like to know, if there are any plans to make Java libraries available through normal channels like public mvnrepository, like the whole world it's doing, where anyone can find any JDBC driver to any database in the world but InterSystems.

Currently there is only some useless garbage. There are just very empty files. What was the point of posting it there?

2 9
0 421

Hi Developers!

With InterSystems IRIS Cloud SQL recently becoming Generally Available, some of you may have had a chance to try it out. Or maybe you used it for your contest entry or during the EAP period. We're curious to learn what YOU think of it. So, have you already tried the new service InterSystems IRIS Cloud SQL?

We have launched a new Ideas Portal category dedicated to this database-as-a-service (DBaaS) where we're looking for your ideas on how we can improve InterSystems IRIS Cloud SQL.

Or share your experience with the service in the comments to this post.

1 0
0 113

I am currently adding a field to our Existing messaging from Epic, however there might be a possibility I need to back load data into the Ancillary system. While I have the previous messages that can be sent, they do not have this additional field that I am adding to the message.

I can do a lookup against Epic Clarity SQL Database; however, I don't want to throw a wrench into the workflow if the system cannot connect to the Epic Clarity SQL Database.

1 3
0 234

Hi folks!

I'm playing with IRIS interoperability at the moment and it turned out that Data Transformation cannot be the element of production by itself.

It can be called either from data rule or from business process.

But why?

What if I just want to change the message with the transformation and transfer the message somewhere else? Why the overhead with Rule or Business process?

1 1
0 183

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

1 2
0 1K

There is a list of numbers from 1 to 190.

AllList="1,2,3,4,5,6,7,8,9,.....,187,188,189,190"

There is a collection of sets of these values:

List(1)="3,5,6,7,9"
List(2)="1,2,6,9"
List(3)="5,8,9"
List(4)="2,4,6,8"
List(5)="4,7,9"

What is an elegant approach in Object Script to pick the least number of list items:

  • List(1)
  • List(5)
  • List(n)

That together would cover as many numbers as possible from the AllList.

Interested in best coverage over efficiency.

1 7
0 162

Hi folks!

We have a bunch of templates on OEX that provide a handy foundation for building a particular application with IRIS. And the basic principle of each and every template is that we take vanilla IRIS images, load code, and files into the image using Dockerfile, and create a new docker image as a solution. And then we develop running this image and rebuilding it when returning to development.

Some developers ask me why we need to build the docker image to work with the code. Indeed, if at the end of the day I need to develop a ZPM package and not a docker image why don't run the vanilla image and load the code and everything in it?

The problem I have with the building image approach is that often I can wait a lot to build an image and it fails on some Objectscript problem in the source that I cannot fix as the image is not building. and

Any thoughts? How do you develop with docker?

1 4
1 445