Search

Clear filter
Article
Philipp Bonin · Oct 19, 2022

InterSystems IRIS integration for Node-RED

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

InterSystems Developer Meetup in San Francisco

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

InterSystems Global Contest Bonuses Results

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

InterSystems Grand Prix Contest Winners

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

The 1st InterSystems Idea-A-Thon

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

Looking to learn InterSystems ObjectScript?

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

InterSystems API Management installation issue

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

InterSystems Full Stack Contest 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

InterSystems - Database Management / Remote Connectivity

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

[Video] InterSystems IRIS FHIR Server

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

Learning InterSystems by Developer Community Articles

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

OCR and NLP together into InterSystems IRIS

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

DBeaver officially supports InterSystems IRIS

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

Winners for the InterSystems Developer Tools Contest

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

IntelliJ IDEA plugin for InterSystems

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