Article Robert Cemper · Jul 10, 2021 2m read My Reviews on Open Exchange - June 2021 If one of your packages on OEX receives a review you don't get notified by OEX only on YOUR package.So @Evgeny Shvarov suggested publishing my monthly summary of reviews here in DC.It reflects my experience with the status I found at the time of my review. #Open Exchange 5 0 0 174
Article Robert Cemper · Jul 10, 2021 2m read My Reviews on Open Exchange - Apr+May 2021 If one of your packages on OEX receives a review you don't get notified by OEX only on YOUR package.So @Evgeny Shvarov suggested publishing my monthly summary of reviews here in DC.It reflects my experience with the status I found at the time of my review. #Open Exchange 4 1 0 324
Article Robert Cemper · Jun 12, 2021 2m read Running reviews on Open Exchange For several weeks I'm creating reviews on OEX. So I'd like to explain to you the criteria that I apply to find my ratings.Of course, each reviewer is an independent person and has his own criteria and his own opinion.And that's good and important! As Winston Churchill once said: "If 2 people always have the same opinion, then 1 of them is superfluous" #Open Exchange 6 6 0 319
Article Robert Cemper · Apr 26, 2021 3m read SSH for IRIS container Why SSH ? If you do not have direct access to the server that runs your IRIS Docker containeryou still may require access to the container outside "iris session" or "WebTerminal".With an SSH terminal (PuTTY, KiTTY,.. ) you get access inside Docker, and then, dependingon your needs you run "iris session iris" or display/manipulate files directly. Note: This is not meant to be the default access for the average application userbut the emergency backdoor for System Management, Support, and Development. #Cloud #Containerization #Development Environment #Docker #System Administration #Terminal #Ubuntu #InterSystems IRIS 2 34 0 1.2K
Article Robert Cemper · Apr 16, 2021 1m read How to execute IRIS restart from inside Some changes in IRIS configuration require a restart of IRIS.This is no big issue as long as I have access to the server command line with sufficient privileges.In a container, this is not always given.Stopping IRIS from the terminal/session prompt is no problem.But the restart after is. Note1: container start-stop is no option as it might be removed by option --rm in docker runNote2: the target is linux (manly in docker). Windows is excluded GitHub #DevOps #Docker #Ubuntu #InterSystems IRIS 9 4 0 994
Article Robert Cemper · Apr 9, 2021 1m read Splitting an IRIS db to multiple drives I'm looking for a way to have an IRIS db distributed over several (hw) drives. Without touching the internal data structures (e.g. mapping) ! Are there any options in file systems to achieve this "splitting" or "appending" ? Historic background: #Databases #DevOps #InterSystems IRIS 0 1 0 198
Article Robert Cemper · Apr 3, 2021 2m read Wrap JSON to multi lines / Test ISJSON install and usage Packed Pretty.xml installs routine ZPretty in any namespace.calling $$Do^ZPretty(input,[filler],[newline]) returns a wrapped JSON string.filler is the optional string for the indent, default = " "newline is optional, default = $C(13,10)input accepts: JSON_String, JSON_Stream, %DynamicAbstractObject #Other 6 0 0 437
Article Robert Cemper · Mar 27, 2021 3m read IRIS easy ECP workbench Testing ECP-based applications often take quite some effort for setup and preparation.I have created a Docker-based workbench that allows you to have it quick at hands.And if you crash it? You just give your containers a fresh start.The whole setup runs code-based during the start-up of your instance.In that sense, it is also a portable coding example using ZPM and the objectscript-docker-template see Video #Docker #ECP #Tips & Tricks #InterSystems IRIS 4 3 0 589
Article Robert Cemper · Mar 24, 2021 1m read Problem with docker-compose Environment: Windows 10 Docker Desktop version v20.10.5 #Docker #Microsoft Windows #InterSystems IRIS 3 1 0 1.8K
Article Robert Cemper · Mar 14, 2021 1m read Using ClassQueries() as Tables Similar to Caché so also in IRIS, you have ClassQueries available in 2 variants Basic class queries, which use the class %SQLQuery and an SQL SELECT statement. Custom class queries, which use the class %Query and custom logic to execute, fetch, and close the query. #Other 11 11 0 583
Article Robert Cemper · Mar 5, 2021 3m read Using ECP across IRIS and Caché Migration from Caché to IRIS can be quite a challenge if your code is grown over many years and probably not so clean structured as you may like it. So you face the need to check your migrated code against some reference data. A few samples might not be a problem, but some hundred GB of data for testing might be. A possible step could be to have your fresh code in IRIS but leave your huge datastore on Caché and connect both environments over ECP. I have created a demo project that gives you the opportunity to try this based on 2 Docker images with IRIS and with Caché connected over ECP. #ECP #Caché #InterSystems IRIS 12 2 0 793
Article Robert Cemper · Feb 16, 2021 2m read FOREACH for Objectscript As you know ObjectScript has neither FOREACH system command nor system function.But it has a wide room for creativity. The task is to loop over a global or local array and do something FOR EACH element. There are 2 possible solutions: #ObjectScript #Caché #InterSystems IRIS 8 1 2 1.1K
Article Robert Cemper · Feb 10, 2021 3m read using ZPM for Node.js Inspired by @Evgeny Shvarov and his recent articleDeploying InterSystems IRIS Embedded Python Solutions with ZPM Package ManagerI propagated the idea forward to do the same also for modules in Node.js. #API #Node.js #InterSystems IRIS 8 2 0 498
Article Robert Cemper · Feb 8, 2021 2m read Websocket Client Embedded Python This is a demo to make use of a simple WebSocket Client with Embedded Python in IRIS. How to Test it Run an Iris Session in Docker Select your WebSocket Echo Server Enter the text you want to send or generate it Send it and see the result $ docker-compose exec iris iris session iris "##class(rccpy.WSockPy).Run()" *** Welcome to WebSocket Embedded Python Demo *** #Embedded Python #InterSystems IRIS 9 0 0 841
Article Robert Cemper · Jan 19, 2021 2m read Trying Embedded Python This is a first attempt to use Embedded Python in IRISThe Python code is adapted from solutions for Advent of Code 2020 contest.Test data are all input to my personal challenge. Prerequisites Make sure you have git and Docker desktop installed. Installation Clone/git pull this repo into any local directory #Embedded Python #Python #InterSystems IRIS 8 0 1 1.1K
Article Robert Cemper · Nov 21, 2020 3m read ObjectScript over ODBC Every now and then you may encounter a situation where for various reasonsODBC is the only option to access a remote system. Which is sufficient as long as you need to examine or change tables.But you can't directly execute some commands or change some Global. Special thanks @Anna Golitsyna for inspiring me to publish this. #Other 11 0 0 610
Article Robert Cemper · Sep 17, 2020 4m read Native API for ObjectScript Demo The demo is based on the raw class descriptions.The data classes used are Address, Person, Employee, CompanyFor a more attractive demo, a JSONtoString method by ID was added. #API #ObjectScript #InterSystems IRIS 9 0 0 372
Article Robert Cemper · Sep 14, 2020 3m read IRIS Native API for ObjectScript It seems to me that for some reason this didn't make its way to the official documentationand seems to be rather unknown though implemented already in IRIS 2020.1 Thanks to @Dan Pasco I got a hint on the classes involved.I used the recommended sequence of how to use it. it is all directly taken from Class Reference and I just collected it to create a first overview. #API #InterSystems IRIS 11 1 2 744
Article Robert Cemper · Aug 28, 2020 2m read Effective use of Collection Indexing and Querying Collections through SQL Triggered by a question placed by @Kurro Lopez recently I took a closer look at the indexing of collections.My simple test setup is a serial class and a persistent class with a list of this serial. #Other Open Exchange app 8 5 1 674
Article Robert Cemper · Aug 3, 2020 3m read Global Scanning & Slicing In most cases, a global used by default storage has just 1 subscript level that represents the IDKEY.For an index-globals we may see 2 or more subscript levels.Arrays, or parent-child relationships or persistent classes extending a base data classare examples where we see more levels. Though all these globals are quite uniform. #Other 7 0 2 445