Clear filter
Article
Philipp Bonin · Oct 19, 2022
The concept of low code development is getting more and more important across all industries. Everybody who is starting to get into low code programming, will inevitably come across Node-RED. InterSystems IRIS is renowned for its interoperability and so should be accessible via Node-RED.
For those who have not heard of Node-RED yet: Node-RED is a Low-Code programming application, which is based on so called nodes that are connected with wires. Nodes process incoming messages and forward them to the next connected node. Due to the great community, Node-RED offers a wide variety of nodes for all kind of applications.
Given that it would surely be useful to have a node that can interact with InterSystems IRIS right? And that is exactly what I did!
Node-RED does already have an InterSystems IRIS integration, but it was not secured against the threat of SQL-Injection. Therefore, I hardened it by safeguarding it against SQL-Injection through parameterizing the statements.
To see how to install Node-RED you can follow this guide and for information about the installation of the InterSystems IRIS node, you are invited to review the respective node documentation.
Here is a quick Demo on how to use the nodes:
First of all we want to create a class called "Demo.Person". It inherits from %Persistent and %Populate, so we can call the method Populate and fill the table with data:
Now we seek to insert our custom data into InterSystems IRIS. We can do this by using an insert statement and passing it to the IRIS-Node or by building a JSON Object and passing it to the IRIS_OO-Node:
Of course we would also like to access our data in Node-RED:
Note that the Node can also parametrize the statement itself.
If you want to try out the flow by yourself, you can download it here.
At the end I want to show you how fast you can create applications with Node-RED. In the following video you can see how I built an application that generates random machine data (temperature and pressure) and pushes the data to InterSystems IRIS. Afterwards selects it from InterSystems IRIS and displays it in two different ways in the Graphical User Interface:
View on npm View on GitHubView on nodered.org Hi Philipp,
Thanks for sharing! Congrats on your first contribution to the Developer Community ;) Thank you :) Hi Philipp, did you see my project for Node-RED? And a very recent for n8n, which is an alternative to Node-RED @Philipp.Bonin You are very welcome to publish your integration for Node-RED on Open Exchange.You would need just login here https://openexchange.intersystems.com/ and submit your application. Let me know if you have any questions about Open Exchange platform Hi Dmitry, yes I saw your project and you did really great work there! You mentioned that your node allows SQL injection, therefore I thought my project would be a good addition to yours.
Announcement
Olga Zavrazhnova · Oct 6, 2022
Hi Community,
Join us for an InterSystems Developer Meetup during TechCrunch Disrupt 2022!
We’ll be meeting on Wednesday, October 19th at Bartlett Hall, located at 242 O’Farrell St. (just a few short blocks from the Moscone Center) starting at 6 pm through 8:30 pm PT, where speakers will discuss how developers can bring the code to the data, not data to the code with Embedded Python and Integrated ML on InterSystems IRIS.
Food and drinks will be served accompanied by discussions.
Agenda:
👉 "InterSystems Overview, Developer Resources, and Startup Program" by @Dean.Andrews2971, Head of Developer Relations, InterSystems
👉 "No Latency Python Apps Close to the Data" by @Raj.Singh5479, Product Manager - Developer Experience, InterSystems
👉 "Machine Learning without a Data Science Team: Fast and Easy AutoML on InterSystems IRIS" by @Akshat.Vora, Senior Systems Developer, InterSystems
>> Register here <<
Hope to see you there!
Announcement
Anastasia Dyubaylo · Apr 7, 2022
Hi contestants!
Here are the results of the bonus collections the applications of the Globals Contest accomplished.
Here are the projects that scored it:
Project
Data-model implementation
Functional index implementation
Data Move usage
Embedded Python
Docker
ZPM
Online Demo
First Article on DC
Second Article on DC
Code Quality
Video on YouTube
Total Bonus
Nominal
5
5
3
4
2
2
2
2
1
1
3
30
Globals: Embedded Python vs. ObjectScript
4
2
2
2
2
1
13
GlobalToJSON-Compact
2
2
2
2
1
9
GlobalToJSON-Efficient
2
2
2
2
1
9
GlobalToJSON-XL-Academic
2
2
2
2
1
3
12
Spreadsheets based on globals
2
1
3
Student score query
0
iris-globals-contest
2
2
2
2
1
9
blockchain - [ IRIS python ]
-
-
0
zpm-generate-ui
2
2
2
2
1
9
python-globals-serializer-example
4
2
2
2
2
1
13
global-archiver
2
2
2
6
iris-globals-graphDB
5
2
2
2
3
14
React-UI-Global
2
2
4
globals-tool
2
2
2
6
global-mindmap
2
2
2
2
1
1
3
13
Cubes
3
3
global-name-search
2
2
Please apply with your comments here in the posts or in Discord. I have a second article already: https://community.intersystems.com/post/unit-tests-quality-your-objectscript-code. So, I claim second article bonus. Thanks! Cool! New version of the global-mindmap was sent for approval, now supporting ZPMPlease, approve the new version and compute zpm bonus
I have a second article already: https://community.intersystems.com/post/unit-tests-quality-your-objectsc.... So, I claim second article bonus. Thanks! Hi guys!
Could you please add the 1st article bonus for python-globals-serializer-example?
Article: https://community.intersystems.com/post/serializing-python-objects-globals
Thanks!
Globals: Embedded Python vs. ObjectScript is also available on Online Demo since its first release. It is also listed in OEX Directory "Products with Demo"Pls adjust the list accordingly
Announcement
Anastasia Dyubaylo · Jun 6, 2022
Hey Community,
We are super excited to announce the winners of the InterSystems Grand Prix Contest.
This competition was an absolute success! To show our appreciation to our amazing contestants we doubled the prizes for runners-up!
So let's meet the winners...
Experts Nomination
🥇 1st place and $7,000 go to the Water Conditions in Europe created by @Evgeniy.Potapov
🥈 2nd place and $5,000 go to the CloudStudio created by @Sean.Connelly
🥉 3rd place and $1,500 go to the iris-megazord created by @José.Pereira, @Henrique and @henry
🥉 3rd place and $1,500 go to the iris-fhir-client created by @Muhammad.Waseem
More winners:
🏅 $200 go the Docker InterSystems Extension created by @Dmitry.Maslennikov
🏅 $200 go the FHIR Patient Viewer created by @Dan.Berges
🏅 $200 go the test-data created by @Oliver.Wilms
🏅 $200 go the webterminal-vscode created by @John.Murray
🏅 $200 go the ObjectScript-Syntax-For-GitLab created by @Lorenzo.Scalese
🏅 $200 go the iris-mail created by @Oliver.Wilms
🏅 $200 go the FHIR Pseudonymization Proxy created by @Marcus.Wurlitzer
🏅 $200 go the Disease Predictor created by @Yuri.Gomes
🏅 $200 go the M-N-Contests created by @Robert.Cemper1003
🏅 $200 go the FIT REST Operation Framework created by @Craig.Regester
🏅 $200 go the cryptocurrency-rate-forecasting created by @Oleh.Dontsov
🏅 $200 go the apptools-infochest created by @MikhailenkoSergey
🏅 $200 go the IRIS import manager created by @Oleh.Dontsov
🏅 $200 go the CrossECP-IRIS created by @Robert.Cemper1003
🏅 $200 go the production-monitor created by @Oliver.Wilms
🏅 $200 go the ESKLP created by @Aleksandr.Kalinin6636
🏅 $200 go the db-migration-using-SQLgateway created by @Robert.Cemper1003
🏅 $200 go the apptools-admin created by @MikhailenkoSergey
Community Nomination
🥇 1st place and $3,000 go to the iris-megazord created by @José.Pereira, @Henrique and @henry
🥈 2nd place and $2,000 go to the iris-fhir-client created by @Muhammad.Waseem
🥉 3rd place and $1,000 go to the Docker InterSystems Extension created by @Dmitry.Maslennikov
THANK YOU ALL!
OUR BIG CONGRATULATIONS TO ALL PARTICIPANTS AND WINNERS!
We see all the hard work in your participation, and we would like to thank you for devoting your time and building a project for the InterSystems contest. 🙌
See you in the next contest! Congratulations everyone ! And thank you for voting CloudStudio second in the experts nomination, great momentum for the project. Congratulations everyone. It was great contest. Congratulations everyone! and Congratulation to organizers for arranging this great event. Enjoy watching a new promo video on InterSystems Developers YouTube:
🎉 InterSystems Grand Prix Contest Winners 🎉
Cool! 🤩
Announcement
Anastasia Dyubaylo · Sep 21, 2022
Hello Community!
We're thrilled to announce yet another type of contest - the contest for the brightest idea! Please welcome:
💡 InterSystems Idea-A-Thon 💡
Suggest an idea related to InterSystems Products and Services between September 26 and October 16 and receive a guaranteed prize.
Moreover, both InterSystems employees and Community Members can participate!
>> Submit your ideas here <<
Rules
InterSystems Idea-A-Thon is organized via the InterSystems Ideas feedback portal where you can submit product enhancement requests and ideas related to our services (Documentation, Dev Community, Global Masters, etc.) and vote for the ones you like.
In this contest, we invite everyone to share their ideas on this portal and vote for others.
To join the contest, you just need to submit an idea on the InterSystems Ideas portal.
Accepted ideas should:
be created during the Idea-A-Thon period by a user registered on the InterSystems Ideas portal (you can log in via InterSystems SSO);
not be part of other already existing ideas - only new ideas are allowed;
not describe the existing functionality of InterSystems Products or Services;
contain, in addition to a title, a detailed and clear explanation of the ideas' essence;
be posted in English;
be accepted as meaningful by experts.
All eligible ideas will have a special “Idea-A-Thon” status on the InterSystems Ideas portal and can be easily found at Idea-A-Thon Ideas.
Who can participate?
We invite EVERYONE to join our Idea-A-Thon. Both InterSystems employees and Community Members are welcome to participate and submit their ideas.
Prizes
1. Participant prize – prizes for everyone who posts an eligible idea:
🎁 InterSystems Branded T-Shirt
2. Expert Award – winner will be selected by the team of InterSystems experts, and will get:
🎁 LEGO Star Wars™ R2-D2™ / BOSE Sleepbuds™ II / BOSE SoundLink Flex Bluetooth® speaker bundle
3. Community Award – an idea with the most votes will get:
🎁 LEGO Star Wars™ R2-D2™ / BOSE Sleepbuds™ II / BOSE SoundLink Flex Bluetooth® speaker bundle
Important note: InterSystems employees can only get the participation prize. Expert and Community awards can only be won by non-InterSystems members of the Community.
Contest period
📝 September 26 - October 16: Publication of ideas and voting period.
Publish an idea(s) throughout this period. Registered members of the Ideas portal can vote for published ideas – these votes are counted towards the Community award.
Note: The sooner you publish your idea(s), the more time you will have to collect votes.
So!
Post your idea(s) on the InterSystems Ideas portal, get prizes, and stay tuned for your idea's status updates!
Good luck 👍
Important note: All prizes are subject to availability and shipping options. Some items may not be available to ship internationally to specific countries. Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US-embargoed countries. We will let you know if a prize is not available and offer a possible replacement. Hey Community,
We're so excited to launch the first InterSystems Idea-A-Thon starting this Monday, September 26th!
Important note: only ideas submitted on Monday from 00:00 AM EDT time are eligible for the competition.
Can't wait to see your brilliant ideas in our Idea-A-Thon! Good luck 👍 Hey Community,
InterSystems Idea-A-Thon just started!
Already 2 bright ideas joined this competition! Please check them here >> Idea-A-Thon Ideas
Don't forget to submit your ideas, vote for the ones you like best, and most importantly, comment on them ;) Hey Community!
Especially for the 1st InterSystems Idea-A-Thon, we've prepared a special promo video for our Ideas portal:
➡️ Welcome to the InterSystems Ideas
Don't forget to submit your ideas until October 16 to join our Idea-Thon ;)
p.s. 44 ideas already in the competition... Hello Community!
Last week of 💡Idea-A-Thon💡 Contest just started!
60 ideas compete for the main prizes!🎁
Two leading ideas are:
Nodejs with IRIS a dynamic platform by @Sharafat Hussain
Code snippets library by @Danny Wijnschenk
➡️ Vote and comment here on your favorite ideas until October 16! Hello Developers!Last call for submitting your ideas! 3 days left until the end of our Idea-A-Thon.⏰➡️ And don't forget to upvote and comment on the ideas you like!
Announcement
Michelle Spisak · Sep 20, 2022
If you’re on the fence about learning InterSystems ObjectScript, we’re making the decision a whole lot easier.
We just updated the “Getting Started with InterSystems ObjectScript” learning path with 3 new 5-minute videos — and a capstone exercise to help you pull together everything you’ll learn.
🤝 Get an introduction to InterSystems ObjectScript
🤿 Dive deeper into commands and functions
🤔 Understand data types and variables
👨💻 Create a class definition
Do it all in our updated learning path, Getting Started with InterSystems ObjectScript.
Question
Vivek Nayak · Feb 25, 2022
I have performed the suggested steps given in the below link for IAM installation but got an error "docker. errors.NullResource: Resource ID was not provided[21528] Failed to execute script docker-compose"
https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=CIAM_install
There seems to be environment variables that are not set - check this section of the docs https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=CIAM_install#CIAM_install_envvar it explains the environment variables used by docker-compose. Thanks, Juanito,
Yes, environment variables are not set.
I was entering the below details in the "Run the setup script and start IAM" step.
Let me know If I missed something.
docker-compose generates this error when ISC_IAM_IMAGE isn't set. I have this problem when I forget to "source" the iam_setup.sh script in other words running the script via source exports the environment variables, but just running the script doesn't.
source ./scripts/iam-setup.sh
Announcement
Anastasia Dyubaylo · Jun 17, 2022
Hello and welcome to the 21st InterSystems programming contest!
🏆 InterSystems Full Stack Contest 2022 🏆
Duration: June 27 - July 17, 2022
In prizes: $10,000
The topic
💡 Full Stack Applications 💡
Develop a Full Stack solution using the InterSystems IRIS, InterSystems IRIS For Health, or IRIS Cloud Service as a backend. By full stack we mean a frontend web or mobile application which inserts, updates, or deletes data in InterSystems IRIS via REST API, Native API, ODBC/JDBC, or Embedded Python.
What's more?
This time we decided to invite developers to try their skills in solving one of the global challenges. We encourage you to join this contest with solutions focused on tackling climate change issues:1) You will receive a special bonus if your application can solve problems related to global warming and climate change. 2) There will also be another bonus if you prepare and submit to Open Exchange a dataset related to the global warming and climate change.
So! We’re looking forward to your innovative contributions for an even more sustainable world. Hone your digital skills to develop solutions for climate issues!
General 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.
Contest Prizes:
1. Experts Nomination – winners will be selected by the team of InterSystems experts:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
🌟 4-15th places - $100
2. Community winners – applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $750
🥉 3rd place - $500
✨ Global Masters badges for all winners included!
Note: If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Important Deadlines:
🛠 Application development and registration phase:
June 27, 2022 (00:00 EST): Contest begins.
July 10, 2022 (23:59 EST): Deadline for submissions.
✅ Voting period:
July 11, 2022 (00:00 EST): Voting begins.
July 17, 2022 (23:59 EST): Voting ends.
Note: Developers can improve their apps throughout the entire registration and voting period.
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.
Helpful Resources:
✓ InterSystems IRIS Docker templates suitable for a Full Stack application:
IRIS Full Stack template
Basic InterSystems IRIS Docker template
IRIS REST API template
Native API template
IntegratedML template
IRIS Analytics template
isc-ipm-js
isc-perf-ui
isc-json
isc-rest
isc-codetidy
✓ Online courses:
Implementing RESTful Applications
✓ Videos:
REST API design and Development
REST API in 5 minutes
Data-Driven Web Apps
✓ For beginners with IRIS:
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
✓ For beginners with ObjectScript Package Manager (ZPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
✓ How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
Need Help?
Join the contest channel on InterSystems' Discord server or talk with us in the comment to this post.
We can't wait to see your projects! Good luck 👍
By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding. Developers!
Don't miss the opportunity to join the Full Stack Contest Kick-off Webinar!
The webinar starts on Monday, June 27 – at 09:00 AM EDT.
We are waiting for your participation! https://www.worldbank.org/en/topic/climatechange can help contestants identify important issues.
NOAA is the first place to look for climate data: https://www.climate.gov/maps-data
USGS is a great source of free satellite imagery: https://earthexplorer.usgs.gov/
Hey Community,
Please check out Three new Open Exchange packages by @Timothy.Leavitt! That can really help accelerate modern full-stack application development on IRIS. Developers!
There are only five days until the end of the registration phase!
Don't miss the opportunity to join the InterSystems Full Stack Contest 2022! Hi everyone!
I’m happy to see that corporation where I worked for 12 years is really care about problem of climate change.
Now I’m studying in the University and my major is close to climate change topic. That’s why I want to add my 2 cents and share my opinion which applications done be developers could help with climate change issue.
First, I want to say that analysis of UN, World Bank and other organizations data related to climate change in my opinion will not change anything, just give information that “something is happening”.
But developers can make a real positive change in this area implementing applications which help decrease energy consumption. Because largest part of global warming is related to warming produced during energy production in energy production plants from non-renewable energy sources like coal, oil products, gas. That’s why in my point of view all applications which help to decrease warming which is produced during energy production or decrease energy consumption are helpful.
For health industry related applications examples are:
Telemedicine
Hospitalization planning applications
…
And all others which minimize patients travel especially for large distance to minimize petrol consumption by cars and planes, and electricity for trains and metro.
Non-industry related applications like:
Distant learning and certification
Teleconference
Applications which support remote work for workgroups
And others – for the same reason: minimization energy consumption for travel.
Health trackers which motivate people to use feet and bicycle for short term travel and don’t use cars.
Food production and consumption is energy intensive process as well. It looks small for one person, but for billions of people it is huge. Dietary related applications which help to decrease losses of products on each stage of production, delivery chain and consumption, decrease meat consumption and use more balanced diet, because meat production requires is at least 10 time more energy compared to vegetable proteins.
Smart City applications which optimize energy consumption on city level. It includes traffic monitoring and control to minimize traffic jams (decreasing petrol and electricity consumption), and motivates people to use public transport which decreases further energy consumption.
Smart Home applications which help to optimize energy consumption on level of house.
Applications which help people to use right way to recycle old electric and electronic equipment, especially fridges and freezers. Old fridges and freezers contain old standard refrigerating medium, which are 1000 times more dangerous for ozone layer and climate change compared to carbon dioxide.
I hope this text will help developers to understand that small and ordinary applications which they implement now could really help to solve global important problem of climate change.
Good luck in the Contest! I agree! We all have to do our part! Hey, Devs!
Today is the last day to upload your applications!
Three apps have been uploaded to the contest:
interoperability-manager by @Oliver.Wilms iris-for-money by @Oliver.Wilms iris-climate-change by @Muhammad.Waseem
Who is going to be the next contester?Only a few hours left to know!
Question
Erol Gurcinar · Jul 24, 2022
Hi team,
I'll start with an apology as I am trying to wrap my head around the architecture of how InterSystems IRIS database management works. I am attempting to connect to the platform remotely through say a JDBC or ODBC connection in order to run queries, searches (through SQL statements) on my laptop and was trying to understand whether this would be possible? It is possible to setup an inbound client connection and wanted to better understand the architecture of how the database association works for IRIS database management. Does it use it's own internal SQL database or are we able to connect to our own database and which databases are certified to run against the platform?
Regards,
Eddie Hi Eddie.
>Does it use it's own internal SQL database or are we able to connect to our own database and which databases are certified to run against the platform?
Both.
Supported 3rd party databases are listed here:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=ISP_technologies#ISP_relgatewaydbs
Generally, please see "First looks" guides in our doc, particularly for JDBC and ODBC:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AFINDEX Hello,
The IRIS management portal is a web application.It connects to the IRIS database with a component called: "CSP Gateway" (can be installed on various web servers: IIS, Apache, Nginx). This "CSP gateway" is enabling you to develop web applications that will interact with the DB directly though this component. You may run "ajax like" code on the server-side, and have all your web pages fully dynamic (generated on the server in run-time).TO work with the management portal from remote, you may take advantage of it's security mechanism (define users, roles, services) the ability to authenticate with external to IRIS entities (e.g. doing LDAP to ADDS) and also have a two-factor authentication, for better security.
Any external data database or other tool that can do ODBC & JDBC can communicate with IRIS and get data out of it. Those are also.
Announcement
Anastasia Dyubaylo · May 19, 2022
Hey Community,
Meet the new video on InterSystems Developers YouTube channel:
⏯ InterSystems IRIS FHIR Server
The InterSystems IRIS FHIR Server helps you create healthcare applications that consume and create FHIR resources without having to create a FHIR infrastructure yourself. Learn how to use the service to bring your applications to market faster and with confidence in the availability, speed, and reliability of your data store.
🗣 Presenter: @Patrick.Jamieson3621, Product Manager, IRIS for Health, InterSystems
Like and share! And here is the portal where you can start using the FHIR accelerator.
Article
Yuri Marx · Aug 8, 2022
In this article you will have access to the curated base of articles from the InterSystems Developer Community of the most relevant topics to learning InterSystems IRIS. Find top published articles ranked by Machine Learning, Embedded Python, JSON, API and REST Applications, Manage and Configure InterSystems Environments, Docker and Cloud, VSCode, SQL, Analytics/BI, Globals, Security, DevOps, Interoperability, Native API. Learn and Enjoy!
Machine Learning
Machine Learning is a mandatory technology to build advanced data analysis and automate manual activities with excellent efficiency. It creates cognitive models that learn from the existing data, and perform predictions, probability calculations, classifications, identifications, and automation of "non-creative" human activities based on its self-adjusted algorithms.
In all scenarios, InterSystems IRIS acts as a data platform and environment for creating, executing, making available, and using these machine learning models. IRIS enables the use of ML from SQL commands (IntegratedML), execution of ML using Embedded Python and PMML(Predictive Model Markup Language). You can check how it functions in the following articles:
Title
Description
URL
IntegratedML hands-on lab
Practical Overview to IntegratedML
https://community.intersystems.com/post/integratedml-hands-lab
AI Robotization with InterSystems IRIS Data Platform
AI on IRIS productions
https://community.intersystems.com/post/ai-robotization-intersystems-iris-data-platform
Web App to Predict Diabetes using IRIS IntegratedML
IntegratedML sample
https://community.intersystems.com/post/web-app-predict-diabetes-using-iris-integratedml
Predict Maternal Health Risks
IntegratedML sample
https://community.intersystems.com/post/predict-maternal-health-risks
Using Machine Learning to Organize the Community – 1
Using Python ML libraries
https://community.intersystems.com/post/using-machine-learning-organize-community-1
ObjectScript language
ObjectScript is InterSystems' official programming language. It is easy, flexible, and very powerful in creating backend, integration, and analytics applications. Consult the following articles for more information:
Title
Description
URL
InterSystems ObjectScript 101++ (EN)
Video series to learn ObjectScript
https://community.intersystems.com/post/intersystems-objectscript-101-en
On $Sequence function
Create sequences of numbers
https://community.intersystems.com/post/sequence-function
Writing better-performing loops in Caché ObjectScript
Do loops
https://community.intersystems.com/post/writing-better-performing-loops-cach%C3%A9-objectscript
Data anonymization, introducing iris-Disguise
Learn how to do customizations on ObjectScript persistent classes and properties
https://community.intersystems.com/post/data-anonymization-introducing-iris-disguise
ObjectScript error handling snippets
Exception handling
https://community.intersystems.com/post/objectscript-error-handling-snippets
Traditional Debugging in ObjectScript
Debug techniques
https://community.intersystems.com/post/traditional-debugging-objectscript
Using Regular Expressions in Caché
Work with Regular Expressions
https://community.intersystems.com/post/using-regular-expressions-cach%C3%A9
Robust Error Handling and Cleanup in ObjectScript
Write code with quality
https://community.intersystems.com/post/robust-error-handling-and-cleanup-objectscript
SPOOL - the forgotten device
Using Spool
https://community.intersystems.com/post/spool-forgotten-device
How we learned to stop worrying and love InterSystems Ensemble
Processing JSON on Productions
https://community.intersystems.com/post/how-we-learned-stop-worrying-and-love-intersystems-ensemble
A more useFull Object Dump
Dumping objects
https://community.intersystems.com/post/more-usefull-object-dump
Logging using macros in InterSystems IRIS
Logging using macros
https://community.intersystems.com/post/logging-using-macros-intersystems-iris
SYSLOG - what it really is and what it means
Debug information on Syslog
https://community.intersystems.com/post/syslog-what-it-really-and-what-it-means
Tips for debugging with %Status
Debug using %Status
https://community.intersystems.com/post/tips-debugging-status
Making the most of $Query
Looking for data using $Query
https://community.intersystems.com/post/making-most-query
Multidimensional Property Persistence - Part 1 (Classic)
Multidimensional persistent properties
https://community.intersystems.com/post/multidimensional-property-persistence-part-1-classic
The adopted Bitmap
Bitmap indexes
https://community.intersystems.com/post/adopted-bitmap
How to become a time lord - The birth
Date and Time API
https://community.intersystems.com/post/how-become-time-lord-birth
Importance and Collection of Exact Version Information ($zv / $zversion)
Get IRIS version
https://community.intersystems.com/post/importance-and-collection-exact-version-information-zv-zversion
Date before Dec.1840 ? Negative $H(orolog) ?
Negative Dates
https://community.intersystems.com/post/date-dec1840-negative-horolog
Creating a Custom Index Type in Caché
Creating custom indexes
https://community.intersystems.com/post/creating-custom-index-type-cach%C3%A9
$LIST string format and %DynamicArray and %DynamicObject classes
Using $LIST, Dynamic Object, and Dynamic Arrays
https://community.intersystems.com/post/list-string-format-and-dynamicarray-and-dynamicobject-classes
SQL for ^ERROR Global
Use SQL to see Error content
https://community.intersystems.com/post/sql-error-global
Add a default setting value by code
Setting default values
https://community.intersystems.com/post/add-default-setting-value-code
Iterate over dynamic object
Use Iterate
https://community.intersystems.com/post/iterate-over-dynamic-object
Listing all of the properties in a class (and why I love ObjectScript)
ObjectScript properties iteration
https://community.intersystems.com/post/listing-all-properties-class-and-why-i-love-objectscript
Try catch block I usually use in InterSystems ObjectScript
Try Catch handling
https://community.intersystems.com/post/try-catch-block-i-usually-use-intersystems-objectscript
Running shell commands in ObjectScript
Run shell commands
https://community.intersystems.com/post/running-shell-commands-objectscript
Embedded Python
Python is one of the most popular and commonly used programming languages in the world (https://www.tiobe.com/tiobe-index/). InterSystems IRIS is a data platform open to all main programming languages. However, speaking about Python, this amazing language and its libraries are available for use everywhere in IRIS: in classes, SQL, and integrations/productions. For those who do not know or do not want to know ObjectScript (InterSystems programming language), it's a great option. See the following articles on how to do this:
Title
Description
URL
Let's fight against the machines
Build a tic tac toe game using Embedded Python
https://community.intersystems.com/post/lets-fight-against-machines
InterSystems IRIS 2021.2+ Python Examples (Embedded, Native APIs and Notebooks)
See Python and IRIS on some Python notebooks
https://community.intersystems.com/post/intersystems-iris-20212-python-examples-embedded-native-apis-and-notebooks
WebSocket Client with embedded Python
Custom Socket sample
https://community.intersystems.com/post/websocket-client-embedded-python
IRIS Python Native API in AWS Lambda
Python on AWS
https://community.intersystems.com/post/iris-python-native-api-aws-lambda
How I added ObjectScript to Jupyter Notebooks
IRIS on notebooks
https://community.intersystems.com/post/how-i-added-objectscript-jupyter-notebooks
Welcome Django
Create Python Django apps with IRIS as a database
https://community.intersystems.com/post/welcome-django
Geocoding with IRIS and Google Maps API
Using Geocoding python library
https://community.intersystems.com/post/geocoding-iris-and-google-maps-api
REST Service for Convert text to audio using IRIS and Python gTTS
Python sample using gTTS
https://community.intersystems.com/post/rest-service-convert-text-audio-using-iris-and-python-gtts
Building IRIS Responsive dashboard with Python Flask Web Framework
Flesk web app with IRIS
https://community.intersystems.com/post/building-iris-responsive-dashboard-python-flask-web-framework
JSON
JSON is one of the most widely used interoperability formats for sending and receiving data on the market. InterSystems IRIS supports this format in several ways. It is possible to have your native database in JSON (DocDB), serialize and deserialize objects, and process requests and responses in JSON, especially from REST services. Review the following articles:
Title
Description
URL
Introducing new JSON capabilities in Caché 2016.1
Presenting ObjectScript JSON API
https://community.intersystems.com/post/introducing-new-json-capabilities-cach%C3%A9-20161
JSON Enhancements
JSON Adaptor API
https://community.intersystems.com/post/json-enhancements
API and REST Applications
Backend applications are currently developed in the REST (Representational State Transfer) paradigm and are exposed as Web APIs. The following articles will help you see how it works:
Title
Description
URL
GraphQL for InterSystems Data Platforms
Create REST API with GraphQL style
https://community.intersystems.com/post/graphql-intersystems-data-platforms
Introducing InterSystems API Manager
API Management overview
https://community.intersystems.com/post/introducing-intersystems-api-manager
Advanced URL mapping for REST
Mapping routes to your APIs
https://community.intersystems.com/post/advanced-url-mapping-rest
AppS.REST - a new REST framework for InterSystems IRIS
Create REST apps easily
https://community.intersystems.com/post/appsrest-new-rest-framework-intersystems-iris
RESTForms - REST API for your classes
Create REST API for CRUD applications
https://community.intersystems.com/post/restforms-rest-api-your-classes
Developing REST API with a spec-first approach
Contract First Approach to develop APIs
https://community.intersystems.com/post/developing-rest-api-spec-first-approach
ObjectScript REST API Cookbook
REST API development tips
https://community.intersystems.com/post/objectscript-rest-api-cookbook
Generate Swagger spec from persistent and serial classes
Contract First Approach to develop APIs
https://community.intersystems.com/post/generate-swagger-spec-persistent-and-serial-classes
InterSystems IRIS REST Application Patterns
Create API REST using IRIS
https://community.intersystems.com/post/intersystems-iris-rest-application-patterns
Let's create an FHIR profile using SUSHI Part 1
Create custom FHIR profiles
https://community.intersystems.com/post/lets-create-fhir-profile-using-sushi-part-1
IAM (InterSystems API Manager), Zero to Hero
Manage your APIs with IAM
https://community.intersystems.com/post/iam-intersystems-api-manager-zero-hero
Using InterSystems API Management to Load Balance an API
Use APIM to do API load balance
https://community.intersystems.com/post/using-intersystems-api-management-load-balance-api
Securing your APIs with OAuth 2.0 in InterSystems API Management – Part 1
Secure your API using APIM
https://community.intersystems.com/post/securing-your-apis-oauth-20-intersystems-api-management-%E2%80%93-part-1
Getting an Angular UI for your InterSystems IRIS application in 5 minutes
Full Stack app with IRIS and Angular
https://community.intersystems.com/post/getting-angular-ui-your-intersystems-iris-application-5-minutes
Upload into an InterSystems IRIS REST API
Save files using REST API
https://community.intersystems.com/post/upload-intersystems-iris-rest-api
Manage and Configure InterSystems Environments
The good management and configuration of IRIS environments are essential for the performance, security, availability, and reliability of the applications used by users. These articles can give you excellent tips on how to do this.
Title
Description
URL
InterSystems Data Platforms Capacity Planning and Performance Series Index
Capacity and Performance improvement
https://community.intersystems.com/post/intersystems-data-platforms-capacity-planning-and-performance-series-index
Deploying Applications in InterSystems Cache with %Installer
Using %Installer to create namespaces, databases, and applications configuration
https://community.intersystems.com/post/deploying-applications-intersystems-cache-installer
Horizontal Scalability with InterSystems IRIS
Set IRIS instances for horizontal scalability
https://community.intersystems.com/post/horizontal-scalability-intersystems-iris
The InterSystems Iris Fhirserver running on a Raspberry Pi Raspberry running as a FHIRserver
Run IRIS inside Raspberry PI
https://community.intersystems.com/post/intersystems-iris-fhirserver-running-raspberry-pi-raspberry-running-fhirserver
Database Mirroring without a Virtual IP Address
Set mirrors using VIP
https://community.intersystems.com/post/database-mirroring-without-virtual-ip-address
Apache Web Gateway with Docker
Configure SSL and Web Gateway for web applications
https://community.intersystems.com/post/apache-web-gateway-docker
Work with SAML in IRIS
SAML to Web services
https://community.intersystems.com/post/work-saml-iris
Mastering the %SYSTEM.Encryption class
Encrypt and decrypt using IRIS
https://community.intersystems.com/post/mastering-systemencryption-class
Docker and Cloud
The new application architectures work in container Docker and in the cloud, aiming to achieve elastic scalability, shorter installation, configuration, and provisioning times, and reduced infrastructure complexity and cost. Study these articles to learn how to bring IRIS to the cloud:
Title
Description
URL
Highly available IRIS deployment on Kubernetes without mirroring
IRIS on cloud clusters with Kubernetes
https://community.intersystems.com/post/highly-available-iris-deployment-kubernetes-without-mirroring
InterSystems IRIS Example Reference Architectures for Amazon Web Services (AWS)
IRIS on AWS
https://community.intersystems.com/post/intersystems-iris-example-reference-architectures-amazon-web-services-aws
InterSystems Example Reference Architecture for Microsoft Azure Resource Manager (ARM)
IRIS on Azure with cheap machines (ARM machines)
https://community.intersystems.com/post/intersystems-example-reference-architecture-microsoft-azure-resource-manager-arm
Dockerfile and Friends or How to Run and Collaborate to ObjectScript Projects on InterSystems IRIS
Learn about important files on Docker projects
https://community.intersystems.com/post/dockerfile-and-friends-or-how-run-and-collaborate-objectscript-projects-intersystems-iris
InterSystems IRIS Deployment Guide for AWS using CloudFormation template
IRIS on AWS using CloudFormation
https://community.intersystems.com/post/intersystems-iris-deployment%C2%A0guide-aws%C2%A0using-cloudformation-template
InterSystems IRIS Example Reference Architectures for Google Cloud Platform (GCP)
IRIS on Google Cloud
https://community.intersystems.com/post/intersystems-iris-example-reference-architectures-google-cloud-platform-gcp
Using AWS Glue with InterSystems IRIS
Using IRIS and AWS Glue (AWS ETL tool)
https://community.intersystems.com/post/using-aws-glue-intersystems-iris
Amazon EKS and IRIS. High Availability and Backup
IRIS on HA with AWS
https://community.intersystems.com/post/amazon-eks-and-iris-high-availability-and-backup
Running InterSystems Reports in containers
IRIS reports on Docker
https://community.intersystems.com/post/running-intersystems-reports-containers
Running InterSystems IRIS in a FaaS mode with Kubeless
IRIS on Kubernetes
https://community.intersystems.com/post/running-intersystems-iris-faas-mode-kubeless
InterSystems Kubernetes Operator Deep Dive: Introduction to Kubernetes Operators
IRIS on Kubernetes
https://community.intersystems.com/post/intersystems-kubernetes-operator-deep-dive-introduction-kubernetes-operators
Scaling Cloud Hosts and Reconfiguring InterSystems IRIS
Scaling IRIS on AWS, Azure, or GCP
https://community.intersystems.com/post/scaling-cloud-hosts-and-reconfiguring-intersystems-iris
Deploying a Simple IRIS-Based Web Application Using Amazon EKS
IRIS on AWS
https://community.intersystems.com/post/deploying-simple-iris-based-web-application-using-amazon-eks
VSCode
VSCode is one of the most used development IDE in the world. IRIS fully supports this IDE. See the following articles:
Title
Description
URL
VSCode-ObjectScript on GitHub
Develop IRIS apps into Web Github VSCode
https://community.intersystems.com/post/vscode-objectscript-github
GitHub Codespaces with IRIS
Develop IRIS apps into Web Github
https://community.intersystems.com/post/github-codespaces-iris
VSCode Tips & Tricks - SOAP Wizard
Create shortcut option on VSCode
https://community.intersystems.com/post/vscode-tips-tricks-soap-wizard
Adding your own snippets to VS Code
Create snippets
https://community.intersystems.com/post/adding-your-own-snippets-vs-code
SQL
SQL is one of the most used language for dealing with relational databases. These articles demonstrate how to perform queries and data persistence:
Title
Description
URL
Free Text Search: The Way To Search Your Text Fields That SQL Developers Are Hiding From You!*
Using Indexes to promote advanced search
https://community.intersystems.com/post/free-text-search-way-search-your-text-fields-sql-developers-are-hiding-you
Improve SQL Performance for Date Range Queries
Do SQL Queries using dates
https://community.intersystems.com/post/improve-sql-performance-date-range-queries
Static WHERE Conditions
Where on Persistent Classes
https://community.intersystems.com/post/static-where-conditions
2021.2 SQL Feature Spotlight - Run Time Plan Choice
Select Runtime SQL Execution Plan
https://community.intersystems.com/post/20212-sql-feature-spotlight-run-time-plan-choice
New in 2020.1: the Universal Query Cache
SQL Cache
https://community.intersystems.com/post/new-20201-universal-query-cache
Materialized Views
Create views inside persistent classes
https://community.intersystems.com/post/materialized-views
Debugging Trick with SQL
Debug SQL commands
https://community.intersystems.com/post/debugging-trick-sql
Using ClassQueries() as Tables
Creating views
https://community.intersystems.com/post/using-classqueries-tables
M:N Relationship
Mapping N to N relationships
https://community.intersystems.com/post/mn-relationship
Reading AWS S3 data on COVID as SQL table in IRIS
Get CSV data from AWS S3 to IRIS table
https://community.intersystems.com/post/reading-aws-s3-data-covid-sql-table-iris
The One Query Performance Trick You NEED to Know? Tune Table!
SQL tunning
https://community.intersystems.com/post/one-query-performance-trick-you-need-know-tune-table
Data Storage - Information You Must Know to Make Good Decisions When Developing
Configure the data storage section on a persistent class to get more performance
https://community.intersystems.com/post/data-storage-information-you-must-know-make-good-decisions-when-developing
Improve SQL Performance for Date Queries, AGAIN!
Tunning SQL queries for dates
https://community.intersystems.com/post/improve-sql-performance-date-queries-again
Scrollable ResultSet Pagination Sample
Paginate SQL results (see comments too)
https://community.intersystems.com/post/scrollable-resultset-pagination-sample
Day 1: Developing with InterSystems Objects and SQL
Concepts about SQL into InterSystems IRIS
https://community.intersystems.com/post/day-1-developing-intersystems-objects-and-sql
DB Migration using SQLgateway
Migrate from PostgreSQL, MySQL, and other databases to IRIS
https://community.intersystems.com/post/db-migration-using-sqlgateway
Importing CSV into the Existing Table in InterSystems IRIS
Import CSV to SQL Table
https://community.intersystems.com/post/importing-csv-existing-table-intersystems-iris
Four Database APIs
SQL APIs
https://community.intersystems.com/post/four-database-apis
Indexing of non-atomic attributes
Create advanced index options
https://community.intersystems.com/post/indexing-non-atomic-attributes
Know Your Indices
Index creation fundamentals
https://community.intersystems.com/post/know-your-indices
Dynamic SQL to Dynamic Object
Use DynamicSQL
https://community.intersystems.com/post/dynamic-sql-dynamic-object
Data migration tool - Part I: from Postgres to IRIS
Series of articles on how to migrate from popular databases to IRIS database
https://community.intersystems.com/post/data-migration-tool-part-i-postgres-iris
Analytics/BI
BI/Analytics allows making decisions based on data analysis in graphs, dashboards, summaries, and detailed tables and based on navigation and data exploration by the analyst user. Here's how to build analytic applications using IRIS:
Title
Description
URL
COVID-19 Analytics on InterSystems IRIS
Create Analytics dashboards to analyze COVID in the world
https://community.intersystems.com/post/covid-19-analytics-intersystems-iris
DeepSee Troubleshooting Guide
Fix problems
https://community.intersystems.com/post/deepsee-troubleshooting-guide
AnalyzeThis – Quick start into InterSystems BI
Quick start into IRIS BI
https://community.intersystems.com/post/analyzethis-%E2%80%93-quick-start-intersystems-bi
Power BI Connector for InterSystems IRIS. Part I
Using IRIS data inside Power BI
https://community.intersystems.com/post/power-bi-connector-intersystems-iris-part-i
Creating Portlets in DeepSee
Analytics Portlets with IRIS BI
https://community.intersystems.com/post/creating-portlets-deepsee
Game Of Throne Analytics or How long is Arya's Stark List
Analytics sample
https://community.intersystems.com/post/game-throne-analytics-or-how-long-aryas-stark-list
DeepSee Web: InterSystems Analytics Visualization with AngularJS. Part 1
Web dashboards using Angular
https://community.intersystems.com/post/deepsee-web-intersystems-analytics-visualization-angularjs-part-1
Building Analytics Solution with IRIS
Present main options to do analytics with IRIS
https://community.intersystems.com/post/building-analytics-solution-iris
Globals
Globals are the key mechanism in IRIS for flexibly storing and retrieving data, whether in SQL, in classes, in JSON documents, in BI cubes, or other custom formats. Take a glimpse at how to do this in the following articles:
Title
Description
URL
The Art of Mapping Globals to Classes 1 of 3
Mapping globals to SQL tables and Objects
https://community.intersystems.com/post/art-mapping-globals-classes-1-3
Globals Are Magic Swords For Managing Data. Part 1
Fundamentals about globals
https://community.intersystems.com/post/globals-are-magic-swords-managing-data-part-1
GlobalToJSON-embeddedPython-pure
Export globals to JSON
https://community.intersystems.com/post/globaltojson-embeddedpython-pure
Transactions in Global InterSystems IRIS
Manage transactions on Globals persistence
https://community.intersystems.com/post/transactions-global-intersystems-iris
Store Mindmaps using Globals
Using globals to persist mindmap data
https://community.intersystems.com/post/store-mindmaps-using-globals
Security
It is critical to ensure security for any application. Security is related to access and authorization management, tracking and auditing transactions, encryption of the stored and transported content, and setting correct configuration parameters to ensure the protection of sensible resources. Read these articles to understand more about how to establish security:
Title
Description
URL
InterSystems IRIS Open Authorization Framework (OAuth 2.0) implementation - part 1
Using OAuth
https://community.intersystems.com/post/intersystems-iris-open-authorization-framework-oauth-20-implementation-part-1
Debugging Web
Debugging CSP and REST apps
https://community.intersystems.com/post/debugging-web
Class Queries in InterSystems IRIS
Defining SQL Queries inside Persistent classes
https://community.intersystems.com/post/class-queries-intersystems-iris
Using the OS certificate store with TLS/SSL
Using OS certificate to do SSL
https://community.intersystems.com/post/using-os-certificate-store-tlsssl
Integrity Check: Speeding it Up or Slowing it Down
Ensure integrity
https://community.intersystems.com/post/integrity-check-speeding-it-or-slowing-it-down
Tracking Data Changes - Audit Log - 1 of 2
Store audit data
https://community.intersystems.com/post/tracking-data-changes-audit-log-1-2
Running the Management Portal (Private Web Server) Over TLS/SSL/HTTPS
Configure SSL to IRIS Web Server
https://community.intersystems.com/post/running-management-portal-private-web-server-over-tlssslhttps
OAuth Authorization and InterSystems IRIS: Taming Trust Protocols
Using OAuth
https://community.intersystems.com/post/oauth-authorization-and-intersystems-iris-taming-trust-protocols
Using Oauth2 with SOAP (Web)Services
Oauth setting for SOAP services
https://community.intersystems.com/post/using-oauth2-soap-webservices
DeepSee: Setting up security - Part 1 of 5
Security on IRIS BI
https://community.intersystems.com/post/deepsee-setting-security-part-1-5
Changes to the security level of the system
Security by default
https://community.intersystems.com/post/changes-security-level-system
DevOps
DevOps is a way to adopt practices and tools that make it possible to automate the fast and quality transition from source code from development (Dev) to production operation (Ops). See how to do this in IRIS.
Title
Description
URL
Continuous Delivery of your InterSystems solution using GitLab - Part I: Git
Continuous delivery with GitLab
https://community.intersystems.com/post/continuous-delivery-your-intersystems-solution-using-gitlab-part-i-git
Introducing InterSystems ObjectScript Package Manager
Use ZPM to configure and install third-party packages inside your application
https://community.intersystems.com/post/introducing-intersystems-objectscript-package-manager
ZPMshow - a helper for tired fingers
How to use ZPM – IRIS Package Manager
https://community.intersystems.com/post/zpmshow-helper-tired-fingers
How to set up a mirror programmatically
Automate the create new mirrors
https://community.intersystems.com/post/how-set-mirror-programmatically
Unit Tests and Test Coverage in the ObjectScript Package Manager
Create Unit Tests for ObjectScript code quality
https://community.intersystems.com/post/unit-tests-and-test-coverage-objectscript-package-manager
Deploying a sharded cluster with Docker and MergeCPF
Automate config using cpf files
https://community.intersystems.com/post/deploying-sharded-cluster-docker-and-mergecpf
Caché ObjectScript Quick Reference
ObjectScript reference pdf document
https://community.intersystems.com/post/cach%C3%A9-objectscript-quick-reference
The Anatomy of ZPM Module: Packaging Your InterSystems Solution
Use ZPM to automate deployment
https://community.intersystems.com/post/anatomy-zpm-module-packaging-your-intersystems-solution
Adding VSCode into your IRIS Container
Embed VSCode inside your docker instance
https://community.intersystems.com/post/adding-vscode-your-iris-container
How to Create New Database, Namespace and Web Application for InterSystems IRIS programmatically
Automate database and namespace creation
https://community.intersystems.com/post/how-create-new-database-namespace-and-web-application-intersystems-iris-programmatically
Unit Tests: Quality of your ObjectScript Code
Quality Assurance with Unit Tests
https://community.intersystems.com/post/unit-tests-quality-your-objectscript-code
Some InterSystems Developer Community Docker Images
Docker community images
https://community.intersystems.com/post/some-intersystems-developer-community-docker-images
Interoperability
IRIS has a powerful data and application interoperability bus. See how to use it with the following articles.
Title
Description
URL
Sending Alerts from Ensemble via Telegram
Production to send data to telegram
https://community.intersystems.com/post/sending-alerts-ensemble-telegram
[InterSystems IRIS for the First Time] Let’s use Interoperability
Create business services, operations, processes, and productions
https://community.intersystems.com/post/intersystems-iris-first-time-let%E2%80%99s-use-interoperability
InterSystems IRIS Interoperability with Embedded Python
Create business services, operations, processes, and productions using Python
https://community.intersystems.com/post/intersystems-iris-interoperability-embedded-python
Ensemble / Interoperability Training Course
Great sample to learn how to create productions
https://community.intersystems.com/post/ensemble-interoperability-training-course
Some Programmatic Interoperability Examples
Programmatic productions using Python or ObjectScript
https://community.intersystems.com/post/some-programmatic-interoperability-examples
Listing files in folder
List files in a folder
https://community.intersystems.com/post/listing-files-folder
Containerising .Net/Java Gateways (or Kafka Integration Demo)
Kafka support using Java or .Net Native API
https://community.intersystems.com/post/containerising-netjava-gateways-or-kafka-integration-demo
Implementing IRIS Integrations with .NET or Java using PEX
Using PEX to create productions using Java or .Net
https://community.intersystems.com/post/implementing-iris-integrations-net-or-java-using-pex
Migrate from Java Business Host to PEX
Using PEX
https://community.intersystems.com/post/migrate-java-business-host-pex
Using Tesseract OCR and Java Gateway
Using Java PEX
https://community.intersystems.com/post/using-tesseract-ocr-and-java-gateway
Creating a PEX Business Operation
Create Java PEX Business Operation
https://community.intersystems.com/post/creating-pex-business-operation
OCR and NLP together into InterSystems IRIS
Java PEX Sample
https://community.intersystems.com/post/ocr-and-nlp-together-intersystems-iris
Creating a custom interoperability business service using an HTTP Adapter
Creating Business Services
https://community.intersystems.com/post/creating-custom-interoperability-business-service-using-http-adapter
Native API
IRIS is open to working with some of the most used programming languages in the market (Java, Javascript/NodeJS, .Net, C++, and Python). To do it we use Native API for each of these languages. Check out these articles:
Title
Description
URL
WebSocket Client JS with IRIS Native API as Docker Micro Server
Using IRIS and NodeJS to do a WebSocket
https://community.intersystems.com/post/websocket-client-js-iris-native-api-docker-micro-server
IRIS Native API for ObjectScript
Using Native APIs
https://community.intersystems.com/post/iris-native-api-objectscript
Using ZPM for Node.js
Using ZPM on Node.js projects
https://community.intersystems.com/post/using-zpm-nodejs
Creating a PDF from a Text file
Java Native API for generating PDF
https://community.intersystems.com/post/creating-pdf-text-file
How to Start Development with InterSystems IRIS in Less Than a Minute
Start to develop using IRIS
https://community.intersystems.com/post/how-start-development-intersystems-iris-less-minute
Making a blog using Python + IRIS Globals
A blog on using Python native API
https://community.intersystems.com/post/making-blog-using-python-iris-globals
wow. Well done, @Yuri.Gomes ! In bookmarks! Thanks! All the Major Learning points in one shot....Great...
Thanks a lot @Yuri.Gomes so IMPRESSIVE - you made the DC knowledge base! We will create a dedicated challenge in GM Academy on Global Masters so people wouldn't miss. Thanks! Thanks Olga! thanks
Article
Yuri Marx · Nov 19, 2020
According to IDC, more than 80% of information it is NoSQL, especially text into documents. When the digital services or applications not process all this information, the business lose. To face this challenge, it is possible use OCR technology. OCR uses machine learning and/or trained image patterns to transform image pixels into text. This is important, because many documents are scanned into images inside PDF, or many documents contains images with text inside. So OCR are an important step to get all possible data from a document.
To do OCR, the main open source solution used is Google Tesseract, the most popular solution into the Python and Java community. Tesseract has support to more than 100 idioms and can be trained with new models to recognize car plates, captchas and so on. Tesseract was created in C++, so Java uses it consuming an intermediate, called Tess4J. My following code shows it to you:
private String extractTextFromImage(File tempFile) throws TesseractException {
ITesseract tesseract = new Tesseract();
tesseract.setDatapath("/usr/share/tessdata/"); //directory to trained models
tesseract.setLanguage("eng+por"); // choose your language/trained model
return tesseract.doOCR(tempFile); //call tesseract function doOCR()
//passing the file to be processed with OCR technique
}
To allows IRIS to use this Java Class and get the results from Java, we need to use PEX and Java Gateway solutions.
First it is necessary config Java Proxy into the production and second, config a PEX business operation or service to communicate IRIS and Java into a production.
Class dc.ocr.OcrProduction Extends Ens.Production
{
XData ProductionDefinition
{
<Production Name="dc.ocr.OcrProduction" LogGeneralTraceEvents="false">
<Description></Description>
<ActorPoolSize>2</ActorPoolSize>
<Item Name="OcrService" Category="" ClassName="dc.ocr.OcrService" PoolSize="1" Enabled="true"
Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="JavaGateway" Category="" ClassName="EnsLib.JavaGateway.Service" PoolSize="1"
Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
<Setting Target="Host" Name="ClassPath">.:/usr/irissys/dev/java/lib/JDK18/*:/opt/irisapp/*
:/usr/irissys/dev/java/lib/gson/*
:/usr/irissys/dev/java/lib/jackson/*:/jgw/ocr-pex-1.0.0.jar
</Setting>
<Setting Target="Host" Name="JavaHome">/usr/lib/jvm/java-8-openjdk-amd64/</Setting>
</Item>
<Item Name="OcrOperation" Category="" ClassName="EnsLib.PEX.BusinessOperation" PoolSize="1"
Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
<Setting Target="Host" Name="%gatewayPort">55555</Setting>
<Setting Target="Host" Name="%remoteClassname">community.intersystems.pex.ocr.OcrOperation</Setting>
<Setting Target="Host" Name="%gatewayExtraClasspaths">.:/usr/irissys/dev/java/lib/JDK18/*
:/opt/irisapp/*:/usr/irissys/dev/java/lib/gson/*
:/usr/irissys/dev/java/lib/jackson/*
:/jgw/ocr-pex-1.0.0.jar
</Setting>
</Item>
</Production>
}
}
Now any IRIS production can communicate with Java and Tesseract! See:
//call ocr method to get text from image, if you want to use pex
Set pRequest = ##class(dc.ocr.OcrRequest).%New()
Set pRequest.FileName = file.Filename
// call java pex operation to do ocr, passing file into pRequest and receive ocr text with pResponse
Set tSC = ..SendRequestSync("OcrOperation", pRequest, .pResponse, 1200)
//save the results into database to use text analytics - nlp
Set ocrTable = ##class(dc.ocr.OcrTable).%New()
Set ocrTable.FileName = file.Filename
Set ocrTable.OcrText = pResponse.StringValue
Set tSC = ocrTable.%Save()
All code details, with comments can be found into my OCR Service repository (https://openexchange.intersystems.com/package/OCR-Service).
Now, with the text extracted, we need to use IRIS NLP engine to analyze textual data and get insights to support decisions. For this, when a text is extracted, it is saved into a table, and this table is used by NLP engine as text source. See the table %Save() above and see the following code with NLP referencing OCRTable (place with texts extracted). See:
Class dc.ocr.OcrNLP Extends %iKnow.DomainDefinition [ ProcedureBlock ]
{
XData Domain [ XMLNamespace = "http://www.intersystems.com/iknow" ]
{
<domain name="OcrNLP" disabled="false" allowCustomUpdates="true">
<parameter name="DefaultConfig" value="OcrNLP.Configuration" isList="false" />
<data dropBeforeBuild="true">
<table listname="OcrNLPTable" batchMode="true" disabled="false"
listerClass="%iKnow.Source.SQL.Lister" tableName="dc_ocr.OcrTable" idField="ID"
groupField="ID" dataFields="OcrText" metadataColumns="FileName" metadataFields="filename" />
</data>
<matching disabled="false" dropBeforeBuild="true" autoExecute="true" ignoreDictionaryErrors="true" />
<metadata>
<field name="filename" operators="=" dataType="STRING" storage="0" caseSensitive="false" disabled="false" />
</metadata>
<configuration name="OcrNLP.Configuration" detectLanguage="true" languages="en,pt"
userDictionary="OcrNLP.Dictionary#1" summarize="true" maxConceptLength="0" />
<userDictionary name="OcrNLP.Dictionary#1" />
</domain>
}
}
See full details and configuration into my OCR Service github repository.
Now we can upload some files and go to the Explorer to see concepts and CRC generated.
See my animation with all steps discussed here:
Happy OCR/NLP hacking! Hi @Yuri.Gomes The OCR response it's fast! Really impressive
Congrats on this great demo
Thanks Henrique! And it is running with a docker with 2 cores and 2 gb ram Hi Yuri, are you able to do a zpm distribution of your code? With the assistance of Intersystems SE, we still failed to get the docker download to configure. Thank you
Announcement
Tatiana Krupenya · Nov 20, 2020
We are glad to announce that DBeaver has supported InterSystems IRIS out-of-the-box since version 7.2.4. You don't need to configure it manually anymore, just find the IRIS icon in the Connections list.
All necessary fields are already filled. But please, do not forget to enter your username and password.
By default, InterSystems IRIS driver doesn't include in DBeaver. For the first connection DBeaver suggests downloading the driver from the official InterSystems GitHub repository. This driver will be used for all further connections.
The current version does not contain IRIS specific features, but all main DBeaver functions will work for your database. If you think that it can be important to add something else, please let us know.
That's great!
DBeaver it's an amazing application! We have been using it for a few weeks now. It is very powerful. @Paul.Hurley , thanks for the feedback!Developers! Please, provide more reviews if you like/dislike the tool, thanks in advance! Hi @Tatiana.Krupenya !
Thanks for the article!
What is the way to establish connections to IRIS via DBeaver over the SSL? The last couple of times I tied this, it told me it couldn't find the jar file to download. I got it from the dev directory on my IRIS server and configured it manually. Does it work on the following version?
Cache for Windows (x86-64) 2016.1.2 (Build 208U) Not sure, but you can try
there any way should be available driver for Cache, which should work I've used it with Cache 2018, but not as far back as 2016. You'll have to manually add the driver to DBeaver first to try it. To do that, first get a copy of the JDBC driver, which should be in the installation directory for your Cache instance. Look for a folder called dev, then java, then lib, then JDK17 or JDK18 depending on which version of Java is installed on your machine, then there should be a jar file with a name like cache-jdbc-x.y.z.jar. Copy that somewhere easy to get to.
In DBeaver, click on the Database menu, then Driver Manager. Click New. Give the driver a name like Cache 2016 or something you'll recognize. Under driver files, click Add File and choose that .jar file. The class name for the driver should be com.intersys.jdbc.CacheDriver. In the sample URL field put a URL that would connect to your Cache instance, which would look like jdbc:Cache//(server):(port)/(namespace). Click on Test Driver to verify. If it works, click OK.
Now when you go to Database, New Connection, you should see that driver listed as an option. Does anyone know how to use TLS with DBeaver for Mac? I found online that the way to do it is to copy the keystore file into DBeaver's .../jre/lib/security directory (which didn't exist by default), which I did, but I still can't connect. I feel like I'm missing something. I've watched someone do this on a PC and it's completely different. I have the key in both .pem and .jks formats. Appreciate any help! Here is the article by @Benjamin.DeBoe that answers your question I hope . I think perhaps this is the one you meant Evgeny connecting to Cloud SQL with Dbeaver
If you think that it can be important to add something else, please let us know.
How about support for two-factor authentication?
Now days 2FA/MFA is virtually mandatory in some environment. In case anybody cares, I've submitted the idea of supporting 2FA in DBeaver.
Add support for two-factor authentication in DBeaver
Announcement
Anastasia Dyubaylo · Apr 26, 2021
Hey community,
The InterSystems Developer Tools 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 $4,000 go to the Server Manager for VSCode project by @John.Murray
🥈 2nd place and $1,500 go to the Config-API project by @Lorenzo.Scalese
🥈 2nd place and $1,500 go to the zpm-explorer project by @Henrique.GonçalvesDias and @José.Pereira
🏆 Community Nomination - an application that received the most votes in total:
🥇 1st place and $750 go to the Server Manager for VSCode project by @John.Murray
🥈 2nd place and $500 go to the zpm-explorer project by @Henrique and @José.Pereira
🥉 3rd place and $250 go to the Config-API project by @Lorenzo.Scalese
Congratulations to all the winners and participants!
Thank you all for your attention to the contest and the efforts you pay into this competition!
And what's next?
We will announce the next competition very soon – stay tuned! big CONGRATULATIONS to the winners! I feel honoured that Server Manager 2.0 achieved first place in both categories. Building good tools for developers has been a major part of my professional life for nearly thirty years, so I am pleased this one is proving popular.
Thank you to everyone who voted for me, and to my employer George James Software for allowing me to work on this during office hours. Congratulations to Lorenzo, Henrique and José for their successes. There were some really great entries in the contest, so take a look at them if you haven’t already. Congrats @John.Murray for this deserved victory! Congrats to all the participants! This was an amazing contest!
And It's a real pity this time that we have only 3 winning positions. The community has won a lot more! Hey developers,
We would also like to thank all of our participants and highlight their cool apps:
💥 Grafana Plugin for InterSystems, IntelliJ InterSystems by @Dmitry.Maslennikov
💥 IRIS_REST_Documentation by @davimassaru.teixeiramuta
💥 gj :: locate by @George.James
💥 Git for IRIS by @Marcus.Wurlitzer
💥 zapm-editor by @Sergei.Mihaylenko
💥helper-for-objectscript-language-extensions, IRIS-easy-ECP-workbench, and SSH for IRIS container by @Robert.Cemper1003
Thank you all for such a great contribution! Hope to see your new apps in the next contests! Congrats to the developers that dedicated the time of their lives to create incredible applications!
Congrats to the staff team that make those contests possible and help us to make the Community greater every day.
Congratulations everyone! Congrats!!! Well deserved:) Thank you all for your contributions!! Congrats to the winners. Thank you for the Git for IRIS app. I plan to use that It is a great piece of work John. Well deserved.
Article
Dmitry Maslennikov · Apr 23, 2021
Let me introduce the support of InterSystems IRIS in IntelliJ IDEA. This plugin adds Syntax Highlighting support for ObjectScript, and auto import and compile on the server after saving a changed file. It uses LanguageServer written in Rust, where was added an ability to import and compile code.
Installation
You will need the latest version of IntelliJ IDEA, Community Edition also supported. Probably other editions of IntelliJ products also supported, but not tested.
Download the latest version of the plugin from the releases page, do not extract it
Open IntelliJ IDEA, go to Settings, Plugins, Gear icon, Install Plugin from Disk, and select downloaded file
Restart the IDE
Now you can open any folder with ObjectScript source code you already have as a new project.
And first of all, you have to configure the connection to IRIS. Settings -> Languages & Frameworks -> InterSystems. Note, that there is SuperServer port, not WebServer's.
After that, when you change mac or cls file, after save it's automatically will import to the server and compile.
Please vote for the project on the current contest