Clear filter
Article
Robert Cemper · Apr 28, 2023
I decided to write this down before time wiped out my memoryIt's a very personal story as a partner, as a competitor, as an employee,as a customer and finally as an external observer of InterSystems.
After superfast graduation from Technical University in Vienna,some years of development for a virtual machine at SIEMENS,some hard-core networking experience and core OS development at OLIVETTII joined Digital Equipment (DEC) in 1978 as a support and sales engineer of their brand new DSM-11.
The core of DSM-11 - the Global module - was written by Terry Ragon.I had the chance to meet him during the kick-off training in Maynard, MA.InterSystems was rather fresh after its foundation.
It was a challenging time to get in all the (to me) new hardware technologyand all the details of that big cake of operating system, database, and interpreter.It was fascinating. It was great to see how I could win any benchmark againsttraditional relational DBs.As the provider of the core engine, I saw InterSytems as a Partner
Though based on my background in virtualization. I just couldn't resist modifying and adjusting drivers and disk modules to transform DSM-11into a "Layered Product" [an App] running with almost the sameperformance on top of RSX-11M.
You might imagine DEC was not so pleased with this experiment.Especially as short time later, they started the same exercise on VMS.The result was poor and not attractive to customers at that time.DEC was just not able to understand what jewel they had in their hands.Later, under the guidance of InterSystems, this gap was closed.
But one of my customers invited me to write his own "DSM-like" OSdirectly on bare-bone VAX without any bit of VMS.How often did you hear from such an engineering opportunity?It was one of those"IMPOSSIBLE - CAN'T BE DONE" triggers that I met during my life.We were 2 experienced engineers dedicated to the project:Bought a VAX-750 in 1981, started to read the processor handbook and after passing page 35 we started typing on the console.Realistic:- There was a design beyond the limits of PDP- There was a stack of new functionalities- Already supporting diskless machines over Ethernet,- I created the bootstraps, my own protocol on Ethernet,my own hardware format on disk, that no one else could read......
A huge effort. But after 18 months only it was doneand we could run the first installation at a customer.This was the time when InterSystems became a Competitor.A very remote one since there was no overlap in the market.We watched suspiciously each other from a far distance.
It was a commercial success for the company.For me, it became a lot of routine work with MicroVAX as a main box.Bug fixing and a fresh release every now and then was no real challenge.Some years later DEC offered a new "MISSION IMPOSSIBLE" to me and I followedIt was a technology challenge - but far from the old DSM that was goneout of scope. And it converted into an organizational and management challengeSo I sold my "Engineer Soul" to climb up international management in DEC.But that made me aware of the "Quality" and "Customer first" mindset.
When Compaq bought DEC, the local management structures were destroyed.Looking for new opportunities I was contacted by a headhunter.Big surprise: his customer was InterSystems:
Within a few weeks, I joined as Employee and felt at home immediately.Now I realized what I had missed for a long time - Creative Working -and what I had sold just for a few bucks more.I just joined when objects became invisible in the local partition.Caché Studio was fresh and new. And 2 decades of development had gone.But the basic structures were the same that I had built into my own variant.And of top importance to me "Quality first" + "Customer dedication" I spent 12 very exciting years at InterSystems seeing a lot of new featuresraising and some less attractive ones fading away.But it was never a routine job. Every day a different challenge to fight.I'm especially proud that I never lost any benchmark against other DBs:Topped by winning against Oracle Spacial by a significant factor.After my retirement 9 years ago I changed into the role of aCustomer of InterSystems. This experience completes the image.A very personal pleasure to me is this Developer Community that I joined in 2017Now I see myself in the role of Observer of InterSystems. understand I proposed it already back in 2005. But it was just too early to be accepted My dedication to Customers + Quality is unbroken and my message tomy support engineers at DEC is still valid for me:
the customer is always right - he has the problem
our products may have a bug - so find it
the description of our products might be wrong - explain it better
don't assume the customer has your technical background - explain in detail
we didn't understand what the bug is - ask twice and try to listen deeper
Those are also the 5 principles I apply when I do my reviews on OEXand that makes the quality of an OEX package.
Now in 2023 I became a critical Observer and have my surprises,have some dejà-vue recognizing old ideas fresh dressed. My applausefor news is filtered. Some are great some less convincing.
I always try to pass on my personal experience to those that ask for it.And sometimes I try to remind contributors, that their articles orpackages are a service to the other members and they deserve Quality.
I hope it wasn't boring for you. Thanks for sharing, @Robert.Cemper1003. Always interesting to hear about the early days! Thanks for this great article @Robert.Cemper1003 ! This brings back memories ... I did some benchmark testing as a student on a DEC MicroVAX I in 1987 in VMS (using a VT100 terminal). I didn't work with M at that time yet but our retail business run by older family members started using it in +/-1986 on a PC AT (Micronetics MSM running on top of DOS) with an ISA bus terminal multiplexer card - RS232/422 cables were installed for multiple Falco VT420 terminals. Soon after, our other retail business started using Digital Unix workstations with these VT terminals too. I started programming in M in 1997 using DTM, soon followed by Open M when we grounded our current retail business and now - 26 years later - I'm writing modern apps and api's in JavaScript/ObjectScript using a Caché/IRIS + Node.js back-end running on the same globals structure! I don't think many technologies can stay relevant/on top for that long ... 😉 Hello @Robert.Cemper1003 thanks for this beautiful personal story ; a priceless testimonial of what happened before the IRIS era.
If it can reassure you, in no way boring and even very pleasant from a narrative and purely literary point of view. 😊
Thanks @Robert.Cemper1003 for sharing @RobertCemper - our paths have crossed a time or two. I hope they will again. Thanks @Robert Cemper for sharing, very insightful story @Robert.Cemper1003 Robert Cemper, I joined InterSystems in 2023 (23 months ago) as a Sales Engineer and prior to joining new almost nothing about IRIS (I have been working for a while with small and very large tech companies in development and sales engineering). So nice to read you posts always, but this one which I happen to find when looking you up (to try and follow you as you are so prolific on here) to help improve my depth of knowledge on InterSystems. Reading your post here felt like I was reading an excerpt from one of my favorite history of technology novels, "The Soul of a New Machine" by Tracy Kidder.
Announcement
Anastasia Dyubaylo · Mar 3, 2020
Hi Community,
On 8-9 June 2020 InterSystems UK & Ireland will be hosting the annual events for its customers, offering both technical and strategic insight content on the different ways to achieve successful digital innovation:
➡️ InterSystems UKI Developer MeetUp
➡️ InterSystems UKI Innovation Day
InterSystems is committed to your success, and to ensure we make the best use of your valuable time, we would like to understand more about the technology drivers and challenges your business is facing now, and how you are preparing beyond 2020.
With your help, we can ensure that the conference agenda features topics relevant to your business, with information that will maximize your IT investment and partnership with InterSystems.
The survey will only take an estimated 3 minutes to complete. Thank you in advance for your feedback!
SAVE THE DATE
Keep your eyes peeled for an official event invitation in coming weeks, but you can save the date and register your interest here.
Article
Anastasia Dyubaylo · Mar 26, 2020
These Competition Terms (the "Terms") apply to competitions and contests sponsored by InterSystems and its affiliates including coding contests relating to InterSystems products and technologies (each a "Contest"). Please read these Terms and all applicable Rules (defined below) carefully as they form a binding legal agreement between you and InterSystems Corporation (“InterSystems”), with principal office located at:
InterSystems Corporation1 Memorial Drive CambridgeMA, 02142 UNITED STATES
Our Contests vary, and InterSystems may post Contest-specific rules ("Rules") on the Contest websites on the Open Exchange (or linked therefrom) which, along with these Terms, become part of your agreement with InterSystems relating to the respective Contest. If there is a conflict between these Terms and the Rules, the Rules have priority.Any decision or determination of any Contest administrator or judge, including interpretation and applications of the Terms and Rules, is final and binding in all matters relating to such Contest, to the extent allowed by law.The Terms and Rules include information about how InterSystems may use your personal information when you create an “Open Exchange Profile” (as defined below) or participate in a Contest.
UNLESS YOU AGREE TO THE TERMS AND APPLICABLE RULES, YOU:
(1) MUST NOT CREATE AN OPEN EXCHANGE PROFILE OR PARTICIPATE IN A CONTEST AND
(2) ARE NOT ELIGIBLE TO RECEIVE PRIZES UNDER A CONTEST.
The words "include" and "including" are used in these Terms and any Rules to mean "including but not limited to."
ELIGIBILITYVOID WHERE PROHIBITED. Each Contest is void in Crimea, Iran, North Korea, Quebec, Syria, and where prohibited by law.NO PURCHASE NECESSARY TO ENTER OR WIN. You do not need to purchase any InterSystems product or service to enter or win a Contest.INELIGIBLE INDIVIDUALSYou cannot participate in a Contest, will be immediately disqualified, and forfeit any related prize if you are or become:
a resident of Quebec;
a resident of Crimea, Iran, North Korea, Syria, or other US embargoed country;
ordinarily resident in a US embargoed country;
otherwise prohibited by applicable export controls and sanctions programs; or
a resident anywhere that a Contest is prohibited by law.
You cannot participate in a Contest if you are under the age of majority in your home state or nation, and in no case if you are less than sixteen (16) years of age at the time of registration for the Contest.
REQUIREMENTS TO ENTER AND RECEIVE A PRIZEIn order to enter a Contest, you must have:
access to the Internet,
a valid email address, and
a registration to any InterSystems online community required by these Terms or the applicable Contest Rules.
IF A CONTEST OFFERS A PRIZETo coordinate the delivery of prizes, you must provide on InterSystems request:
your name,
phone number,
a valid mailing address, and
any other information InterSystems may need to award or send you such prize.
This information must be provided to InterSystems in English using ASCII characters only and will be used to award and send a prize to you. Use of non-ASCII characters may prevent or delay your receipt of an award or prize. InterSystems will endeavor to disperse prizes to all eligible prize recipients. You understand that there may be rare circumstances in which InterSystems is unable to disperse a prize due to administrative, carrier, or legal restrictions.
VERIFYING ELIGIBILITYInterSystems reserves the right to verify your eligibility and to adjudicate any dispute at any time. You agree to provide InterSystems with any proof of eligibility requested by InterSystems, and your refusal or failure to provide such proof within ten (10) days of InterSystems request for such information will result in your disqualification from a Contest and forfeiture of any prizes.COMMUNICATIONSAll communications between InterSystems and you, including over the Contest website or email communications, must be in English.
HOW TO ENTER A CONTESTOpen Exchange Profile Creation and Contest Participation.To enter a Contest, you must first create a profile on the Open Exchange (“Open Exchange Profile”). Once your Open Exchange Profile has been created, you will be able to request registration for Contests. You will be required to provide additional information about yourself when registering for Contests.
Registration times are listed on the applicable Contest websites. YOU ARE RESPONSIBLE FOR DETERMINING THE CORRESPONDING TIME IN YOUR TIME ZONE. InterSystems may modify the opening and closing dates for registration by an informational notice on the applicable Contest website. You are responsible for frequently reviewing Contest details on the applicable Contest website.
All the data provided through the profile creation and registration process must be complete, correct, and provided in English.
APPLICATION NAMES AND NICKNAMESInterSystems reserves the right to change or omit contestant nicknames or application names for purposes of publication on InterSystems websites, listserves, or other publication mechanisms particularly if they are, in InterSystems sole discretion, offensive, obscene, or violate the intellectual property rights of others. If InterSystems determines that you or your team’s naming fails the above criteria, you and your team members, if applicable, may be disqualified from the Contest(s) for which you have registered.
CONTEST STRUCTUREEach Contest consists of submission and voting stages as may be more fully described in the Rules posted on the applicable Contest website. Each Contest introduces one or more challenges for you to resolve (hereinafter, “Prompt(s)”). In each Contest, you will receive a score based on the success of your solution to the Prompt and the quality of code.PROMPTSIn each Contest, you will be asked to resolve one or more problems in the Prompt. Based on your contest submission, votes from the judges or other judging participants (as described in the Contest Rules) will be cast to determine the winner(s) of the Contest. You will be able to access the Prompt(s) on the applicable Contest website or online the judging system when the Contest begins.SUBMISSIONSYou must submit your applications through the Contest website or the specified online judging system.
Your submission must be in the format specified by the applicable Contest website or relevant online judging system, the applicable Rules, and these Terms (in order of decreasing priority). Deliberately obfuscated source code is not allowed.
You should submit your solutions with enough time remaining in each time period to avoid latency issues between your computer and InterSystems servers. Solutions will not be accepted after the applicable contest period expires.
MODIFYING A CONTESTInterSystems may cancel or modify the structure and timing of a Contest for any or no reason at all. Generally, such modification will be limited to ensuring conformance or clarity of the Terms and applicable Rules or to prevent an unfair result. In the event of any such modification to a Contest, its rules, or these Terms, InterSystems shall post a notice of the changes conspicuously on the Open Exchange or the Contest website.PRIVACY TERMSScope. This Privacy Terms section covers the information you share with InterSystems during the course of your participation in a Contest or use of any Contest website.
Privacy, Generally. Your use of any coding competitions services or platforms in connection with your participation in a Contest is governed by the applicable Rules and these Terms, including this Section (Privacy Terms), InterSystems Privacy Policy, and, if applicable, any relevant InterSystems policies relating to other relationships between InterSystems and the contestant(s), including employment, candidate, and consultant privacy policies. InterSystems uses the information collected in connection with a Contest based on InterSystems legitimate interest in administering and managing Contests and activity associated with each Contest.
Information InterSystems Collects. In order to administer Contests and manage Contest activity (including Contest Profiles), InterSystems collects basic contestant information about you (for example, your name, email, and school or company name), information about your coding experience (such as your preferred coding language), and information about your contest submissions (for example: file information and content information about your submission, its evaluation, or your Contest scores). InterSystems will collect this information from both:
You, when you provide it during the course of registering for a Contest or creating an Open Exchange Profile); or
judges or other individuals responsible for managing a Contest.
InterSystems Use of Your Information. InterSystems will use the information you provide to administer a Contest (including verifying your eligibility to participate in a Contest and delivering prizes). This data will be maintained in accordance with the InterSystems Privacy Policy. If you have expressed interest in learning about InterSystems events, programs, and/or job opportunities, your data will be disclosed to InterSystems’s internal outreach and staffing teams.
Personally Identifiable Information in Nicknames and Submissions. InterSystems strongly discourages from you from including any personally identifying information (e.g., your legal name or location) in your contestant nickname, team name, and submissions. Such nickname, team name, or submission material may be published publicly.Sharing Your Information. Your name, username, application name, location details, country of residence, and any personal details (e.g., your favorite coding language) that you specified during registration; any/all of these may be displayed publicly on Contest websites, social media, and InterSystems-managed blogs for promotion purposes. You can request to have this information omitted from display by emailing InterSystems Developer Community at community@InterSystems.com.
If you win a prize, InterSystems may share your name, phone number, e-mail address, and mailing address with third parties during the process of prize fulfillment. InterSystems may also be required to disclose your information to external third parties, such as local labor authorities, courts, tribunals, regulatory bodies, and/or law enforcement agencies for the purpose of complying with applicable laws and regulations or in response to legal processes.
InterSystems maintains servers around the world, and your information may be processed on servers located outside of the country where you live. Data protection laws (including those regulating the publishing and disclosure of your information) vary among countries.
ACCESSING YOUR INFORMATION
While logged into a Contest website, you will be able to access, review, and update some of your personal data held by InterSystems in connection with a Contest.
In certain countries, you may have the right to request access or updates to your information, request that it be deleted, and restrict the processing of your information. You may also have the right to object to the processing of your information. Please contact the contest administrator via the applicable Contest website if you would like to exercise any of these rights. InterSystems will respond to any requests in accordance with applicable law; therefore, there may be circumstances where InterSystems is not able to comply with your request.
To delete your Open Exchange Profile, you must email community@InterSystems.com. Deleting your Contest Profile may terminate your access to your Contest history, de-register you from all Contests for which you have enrolled; or forfeit all claims to prizes accruing to your Profile. If you have participated in past Contests, deleting your Contest Profile shall prevent your registered nickname from appearing on any public scoreboards. However, your code and historical activity may remain in our system data stores and scoreboards.
CONTACTING INTERSYSTEMS ABOUT PRIVACY QUESTIONSYou can contact the applicable Contest administrator via the applicable Contest website if you have questions about the processing of your information collected in connection with a Contest.
If you are in the EU and cannot find the answer to your question in these Terms or Rules, then you can contact InterSystems Data Protection Office at dpo@intersystems.com.
Depending on your country of residence, you can contact your local data protection authority if you have concerns regarding your rights under local law.ADVANCEMENT AND NOTICE OF WINNERSNotice of Advancement. Results posted on a Contest website are not definitive and may change as necessary in InterSystems sole discretion to comply with these Terms or the Contest Rules.Announcement of Winners. The results of a Contest will be posted on the applicable Contest website after completion of such Contest. Posted results will include a list of the contestants' names, nicknames, usernames, and application names in ranked order based on their scores.
PRIZESIf a Contest offers a prize, then the following Terms are applicable:Money Prizes. Money prizes will be awarded in U.S. dollars and may be delivered in the form of cash, check, gift card, or other cash equivalent. You are responsible for any costs associated with currency exchanges directed by you. InterSystems may work with an authorized third-party to convert money prizes into a local currency. You understand InterSystems has sole discretion to choose which currency exchange rate to apply in order to convert any money prize into a non-U.S. dollar currency.Taxes. You are solely responsible for complying with all applicable tax laws and filing requirements. To remain eligible for a prize, you must submit to InterSystems or a relevant tax authority specified by InterSystems, all documentation requested by InterSystems or required by applicable law within seven (7) days (or less if required by regulation) of request by InterSystems or its designated agent. You are solely responsible for paying all taxes, duties, and other fees imposed on prizes awarded to you. All prizes will be net of any taxes InterSystems is required by law to withhold.No Warranties for Prizes. Except as required by law, InterSystems makes no warranties, express or implied, for prizes.Prizes are Non-Transferable. Participants may not sell or give away the entitlement to a prize to their customers or other persons.
DISQUALIFICATIONYou may be disqualified from a Contest and forfeit any prizes you may be eligible to receive for said Contest or any other Contest if InterSystems reasonably believes that you have attempted to undermine the legitimate operation of a Contest, including by:
Providing false information about yourself during registration or concerning your eligibility;
Breaching or refusing to comply with any Terms or Rules of any Contest for which you have registered;
Tampering or interfering with administration of a Contest (including monitoring at onsite rounds) or with the ability of other contestants to participate in a Contest;
Submitting content that:
violates the rights of a third party;
is lewd, obscene, pornographic, racist, sexist, or otherwise inappropriate to a Contest, in each case, as determined in InterSystems sole discretion; or
violates any applicable law.
Threatening or harassing other contestants or InterSystems personnel--including its employees and representatives.
Harassing behavior (as described in the list above) includes offensive, threatening, and/or hateful comments directed toward an individual or protected class (e.g., sexual orientation, disability, gender identity, age, race, religion, ethnicity, veteran status), the use or display of sexual images in public or shared spaces, deliberate intimidation or distress, stalking, following, taking unwelcome photos/videos, sustained disruption of talks or other events, inappropriate physical contact, unwelcome sexual attention or communications, and developing and/or promoting any applications designed to encourage any of these behaviors. InterSystems has sole discretion over whether a Contest participant has committed threatening or harassing behavior.REPORTING INAPPROPRIATE BEHAVIORUsing the applicable Contest administrator email address specified on the applicable Contest website, you may report to InterSystems any harassment, cheating, or violation of any Terms or Rules by another contestant. InterSystems may investigate any such allegations and all decisions by InterSystems in these matters are final and binding. If you are asked to stop any harassing behavior, you are expected to comply immediately.As required in the sole discretion of InterSystems or its agents, disqualification from one Contest may disqualify you from other Contests or from the same Contest in subsequent years. The scope of a disqualification will depend on the character and severity of the violation resulting in such disqualification.
OWNERSHIP; RIGHTS IN YOUR SUBMISSIONSLicense to Use Content; Reservation of Rights. InterSystems may publish code and content to Contest websites to support participation in the Contest. You may use the code and content made available on a Contest website solely to prepare for and compete in such Contest. InterSystems retains all rights in such code and content except as explicitly granted by the Terms or Rules of the Contest(s) for which you have registered.Ownership of Submissions. You warrant that you have the right to publish your Contest submission in any Contest for which you register. You retain all rights to your submitted source code and any other work product that you held before submitting them to a Contest except that you grant to InterSystems a perpetual, nonexclusive, unrestricted right to use your Contest submission(s) anywhere in the world for the promotion or management of InterSystems online communities, marketing, or research relating to technologies used in your submissions.Social Media. If you post on your social media page using Contest hashtags or labels (e.g., “#IRISDev”) or share/post any content on a Contest social media page (altogether “Social Media Content”), then InterSystems may feature such Social Media Content in marketing and promotional materials for any Contest.
THE LICENSE YOU GRANT TO INTERSYSTEMSYou grant InterSystems an unrestricted, sublicensable, transferable, perpetual, irrevocable, worldwide, free license to use your Social Media Content to promote any Contest.
You warrant that you have the authority to grant the license set forth in this Section.
You waive all rights in such content shared on social media (including any right of prior approval), and you release InterSystems and its agents from any claim or cause of action, whether now known or unknown, for: defamation, copyright infringement, invasion of rights to privacy, publicity, or personality or any similar matter, or any cause of action based relating to the use and exploitation of Social Media Content. Moreover, you will neither sue nor bring any proceeding against InterSystems or its agents for their use of your Social Media Content in accordance with these Terms or other applicable Contest Rules.
Permission to Use Your Name and Likeness. By registering for a Contest, you agree that InterSystems and its agents may, without compensation, use your name, likeness, and statements to promote a Contest--including displaying it on a Contest website.
YOUR REPRESENTATIONS, WARRANTIES, INDEMNITIES.Representations and Warranties.
You represent and warrant that:
the information you provide about yourself while registering or in subsequent communications with InterSystems is truthful and accurate;
except as permitted by the Terms and Rules of the Contest(s) for which you have registered, your submissions to a Contest are original and not created with the assistance of any information about the relevant Prompt other than what has been provided by InterSystems;
you own all rights in your submissions or otherwise have the right to submit your submissions to InterSystems and to grant to InterSystems the licenses granted in these Terms and any applicable Rules without violating any rights of any other person or entity or any obligation you may have to such person or entity; and
your submissions do not violate any applicable laws.
Indemnities. You will indemnify InterSystems and its affiliates, directors, officers, and employees against all liabilities, damages, losses, costs, fees (including reasonable legal fees), and expenses relating to any allegation or third-party legal proceeding to the extent arising from:
your acts or omissions in relation to a Contest (including your use or acceptance of any prize and your breach of these Terms or any applicable Rules); and
your submissions violating any rights of any other person or entity or any obligation you may have with them.
DISCLAIMERSEACH CONTEST WEBSITE AND ALL CONTENT (INCLUDING SOURCE CODE) IS PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS. INTERSYSTEMS DISCLAIMS ALL REPRESENTATIONS AND WARRANTIES (EXPRESS OR IMPLIED), INCLUDING ANY WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. INTERSYSTEMS IS NOT RESPONSIBLE FOR ANY INCOMPLETE, FAILED, OR DELAYED TRANSMISSION OF YOUR APPLICATION INFORMATION OR SUBMISSIONS DUE TO THE INTERNET, INCLUDING INTERRUPTION OR DELAYS CAUSED BY EQUIPMENT OR SOFTWARE MALFUNCTION OR OTHER TECHNICAL PROBLEMS. INTERSYSTEMS IS NOT RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER OR SOFTWARE RESULTING FROM DOWNLOADED SOURCE CODE. YOU USE ALL SOURCE CODE AVAILABLE ON A CONTEST WEBSITE OR ONLINE JUDGE SYSTEM AT YOUR OWN RISK.MISCELLANEOUSNot an Offer or Contract of Employment.
You acknowledge that your participation in the Open Exchange, Developer Community, Contest, or other interaction with InterSystems relating to these terms, is voluntary.
You acknowledge that no confidential, fiduciary, agency or other relationship or implied-in-fact contract now exists between you and InterSystems so as to contravene or override these Terms.
No relationship described in part B of this Section is established by your submission of an entry to Contest.
You understand and agree that nothing in these Terms, any Rules, any submission to a Contest, or any award of a prize may be construed as an offer or contract of employment with InterSystems.
Severability. If any provision (or part of a provision) of these Terms or Contest Rules is or becomes invalid, illegal, or unenforceable, the rest of the terms will remain in effect.Import and Export Laws. InterSystems will organize each Contest in compliance with all applicable import laws, export laws, rules, regulations, and sanctions programs. Participants acknowledge and agree that each Contest (including the award of prizes, swag, or other items) may be subject to certain export laws and regulations.Governing Law. ALL CLAIMS ARISING OUT OF OR RELATING TO THESE TERMS AND ANY CONTEST RULES WILL BE GOVERNED AND INTERPRETED IN ACCORDANCE WITH THE LAWS OF THE COMMONWEALTH OF MASSACHUSETTS WITHOUT GIVING EFFECT TO THE MASSACHUSETTS’ CONFLICT OF LAWS PROVISIONS, AND THE SAME SHALL BE LITIGATED EXCLUSIVELY IN THE FEDERAL OR STATE COURTS OF THE COMMONWEALTH OF MASSACHUSETTS IN MIDDLESEX COUNTY. THE PARTIES HERETO CONSENT TO PERSONAL JURISDICTION IN COURTS IDENTIFIED ABOVE.
Article
Evgeny Shvarov · Mar 20, 2020
Hi colleagues!
Every day Johns Hopkins University publishes new data on coronavirus COVID-19 pandemic status.
I built a simple InterSystems IRIS Analytics dashboard using InterSystems IRIS Community Edition in docker deployed on GCP Kubernetes which shows key measures of the disease outbreak.
This dashboard is an example of how information from CSV could be analyzed with IRIS Analytics and deployed to GCP Kubernetes in a form of InterSystems IRIS Community Edition.
Added the interactive map of the USA:
The next dashboard shows the timeline:
And can be filtered by country. E.g. here is in the USA:
The source code of the application is available on Open Exchange.
How does it work?
Demo runs using InterSystems IRIS Community Edition docker container and exposes InterSystems IRIS BI dashboards using DeepSee Web representation layer via MDX2JSON REST API. Its deployed on GCP and operates using Google Kubernetes Engine (GKE).
How it was developed
The data is taken from the Johns Hopkins repository in CSV form.
Classes, cubes, and initial pivots were generated via Analyzethis module, thanks @Peter.Steiwer!
Import method then was introduced using the CSVTOCLASS method, thanks @Eduard.Lebedyuk!
Dashboards are rendered with DeepSee Web (DSW) module.
IRIS BI artifacts (pivots, dashboards) were exported by ISC.DEV module:
IRISAPP> d ##class(dev.code).workdir("/irisdev/app/src")
IRISAPP> d ##class(dev.code).export("*.dfi")
The code has been developed using VSCode ObjectScript, thanks @Dmitry.Maslennikov.
Building docker image for development and deploymentAll the deployment sits in Dockerfile. With Dockerfile we build an image with data, web apps and modules installed and properly setup and then we deploy the image to GCP Kubernetes.
This Dockerfile is a modified version of this Template Dockerfile which is described very well in this article.
All the preliminary steps are being done in iris.script file:
Here we install DeepSee Web.
zpm "install dsw"
This enables IRIS Analytics (DeepSee) for /csp/irisapp web app:
do EnableDeepSee^%SYS.cspServer("/csp/irisapp/")
This code is needed to make the analytics web app be available without credentials:
zn "%SYS"
write "Modify MDX2JSON application security...",!
set webName = "/mdx2json"
set webProperties("AutheEnabled") = 64
set webProperties("MatchRoles")=":%DB_IRISAPP"
set sc = ##class(Security.Applications).Modify(webName, .webProperties)
if sc<1 write $SYSTEM.OBJ.DisplayError(sc)
And here in Dockerfile this command helps to set DSW configuration.
COPY irisapp.json /usr/irissys/csp/dsw/configs/
Deployment to Kubernetes
The deployment procedure is being processed by Github Actions - and this workflow handles it on every commit to the repository.
Github workflow uses Dockerfile we built on a previous step along with Terraform and Kubernetes settings.
The procedure is identical to the one described in this article by @Mikhail.Khomenko.
How to run and develop it locally
You are very welcome to run, develop and collaborate with this project.
To run it locally using docker do:
Clone/git pull the repo into any local directory
$ git clone https://github.com/intersystems-community/objectscript-docker-template.git
Open the terminal in this directory and run:
$ docker-compose build
Run the IRIS container:
$ docker-compose up -d
Once the container is built up and running open the application on:
localhost:yourport/dsw/index.html#/irisapp
How to Develop
This repository is ready to code in VSCode with the ObjectScript plugin. Install VSCode, Docker, and ObjectScript plugin and open the folder in VSCode.
How to Contribute
Fork the repository, make changes, and send Pull Requests. See the video for more information.
Would love to see your contribution! Wow Evgeny, this is very cool. Thank you. Great to see this!
Look forward to people using it and improving / extending it! Thank you, Joe!
This is a rather simple example but it could be a good beginning in working with COVID-19 data with InterSystems IRIS on a local machine and docker container along with a GitHub Actions deployment workflow to Google Kubernetes cloud. Thank you, Jeff!
Yes!
Developers! The repository is fully prepared for collaboration! Your forks and Pull Requests are very welcome! The US reached 100K COVID-19 confirmed.
Italy and USA both lead the disease stats:
Introduced the second dashboard: -Covid timeline.
And can be filtered by country. E.g. here is the USA:
Introduced the interactive map of the USA on the spreading of COVID-19.
Thanks to @Semen.Makarov for DSW-map, @Eduard.Lebedyuk for the help with DeepSee IRIS Analytics, and @Arun.Tiriveedhi9645 for the PR for the update from Github data source.
Added the world map:
All dashboards. Added a new dashboard with a bubble chart on Confirmed-Recovered-Deaths for Top-10 countries:
💡 This article is considered as InterSystems Data Platform Best Practice. Fixed the URL this is fixed too
Article
Evgeny Shvarov · Jan 9, 2020
Hi Developers!
Recently we updated the design of Open Exchange and I want to describe how you can find the solutions you are interested in.
Applications Catalog
The first thing you see is the catalog of published applications, tools, and solutions.
The number of applications shows you how many are published or/and fit your query.
You can find the solution you are looking for with the following set of Categories, Products or Industries:
Or you can just search for the tool you are looking for. E.g. let's find applications which help to work with "Python":
Application
The application page shows the Name, version, description, author, publisher (if any), release date, repository, documentation, license, and Download:
Also, it has an active Discuss button if the application has the related post on Developers Community
Every app could have release history:
And issues/tasks open for the application which you can add to a related Github repository:
All the application releases appear on the News page, where you can see the release news and links to the app and author:
You can check all the applications of a particular author. E.g. here are the apps from @Eduard.Lebedyuk:
Applications could be published on behalf of the company. Here are the companies which publish applications on Open Exchange:
And you can check all the applications published by a particular company. E.g. by George James:
This was a quick guide on InterSystems Open Exchange features. In the next article, we'll review how to publish an application on Open Exchange.
Stay tuned!
Announcement
Anastasia Dyubaylo · Feb 18, 2020
Hi Community,
The new video from Global Summit 2019 is already on InterSystems Developers YouTube:
⏯ InterSystems IRIS on HCI
HCI, or hyper-converged infrastructure, is a software-defined IT infrastructure that virtualizes all the elements of a conventional system. This video will show the benefits and limitations of deploying an InterSystems IRIS-based application on HCI.
Takeaway: You will gain an understanding of HCI, and learn where and when it may be useful.
Presenter: @Murray.Oldfield, Technology Architect, InterSystems
Additional materials to this video you can find in this InterSystems Online Learning Course.
Enjoy watching this video! 👍🏼
Announcement
Derek Robinson · Apr 10, 2020
In Episode 7 of Data Points, product manager @Carmen.Logue joined the pod to tell us all about InterSystems Reports — the new reporting feature of InterSystems IRIS! Take a listen to hear about its capabilities, use cases, and how it fits into the existing set of analytics technologies.
For more information and to subscribe on your favorite podcast app, head over to https://datapoints.intersystems.com. There, you can also find links to the previous episodes. Make sure to rate the podcast if you're using Apple Podcasts, as well!
Article
sween · Oct 20, 2023

This article will cover turning over control of provisioning the InterSystems Kubernetes Operator, and starting your journey managing your own "Cloud" of InterSystems Solutions through Git Ops practices. This deployment pattern is also the fulfillment path for the [PID^TOO||](https://www.pidtoo.com)| FHIR Breathing Identity Resolution Engine.
### Git Ops
I encourage you to do your own research or ask your favorite LLM about Git Ops, but I can paraphrase it here for you as we understand it. Git Ops is an alternative deployment paradigm, where the Kubernetes Cluster itself is "pulling" updates from manifests that reside in source control to manage the state of your solutions, making "Git" an integral part of the name.
### Prerequisites
* Provision a Kubernetes Cluster , this has been tested on EKS, GKE, and MicroK8s Clusters
* Provision a GitLab, GitHub, or other Git Repo that is accessible by your Kubernetes Cluster
### Argo CD
The star of our show here is [ArgoCD](https://argoproj.github.io/cd/), which provides a declarative approach to continuous delivery with a ridiculously well done UI. Getting the chart going on your cluster is a snap with just a couple of strokes on your cluster.
kubectl create namespace argocd
kubectl apply -n argocd -f \
https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Let's go get logged into the UI for ArgoCD on your Kubernetes Cluster, to do this, you need to grab the secret that was created for the UI, and setup a port forward to make it accessible on your system.
**Grab Secret**
Decrypt it and put it on your clipboard.

**Port Forward**
Redirect port 4000 (or whatever) to your local host

**UI**
Navigate to https://0.0.0.0:4000 and supply the secret to the login screen and login.

### InterSystems Kubernetes Operator (IKO)
Instructions for obtaining the IKO Helm chart in the [documentation ](https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=AIKO)itself, once you get it, check it in to your git repo in a feature branch. I would provide a sample repo for this, but unfortunately cant do it without violating a re-distribution as it does not appear the chart is available in a public repository.
Create yourself a feature branch in your git repository and unpack the IKO Helm chart into a single directory. As below, this is `iko/iris_operator_amd-3.5.48.100` off the root of the repo.
On `feature/iko` branch as an example:
├── iko
│ ├── AIKO.pdf
│ └── iris_operator_amd-3.5.48.100
│ ├── chart
│ │ └── iris-operator
│ │ ├── Chart.yaml
│ │ ├── templates
│ │ │ ├── apiregistration.yaml
│ │ │ ├── appcatalog-user-roles.yaml
│ │ │ ├── cleaner.yaml
│ │ │ ├── cluster-role-binding.yaml
│ │ │ ├── cluster-role.yaml
│ │ │ ├── deployment.yaml
│ │ │ ├── _helpers.tpl
│ │ │ ├── mutating-webhook.yaml
│ │ │ ├── service-account.yaml
│ │ │ ├── service.yaml
│ │ │ ├── user-roles.yaml
│ │ │ └── validating-webhook.yaml
│ │ └── values.yaml
**IKO Setup**
Create `isc` namespace, and add secret for `containers.intersystems.com` into it.
kubectl create ns isc
kubectl create secret docker-registry \
pidtoo-pull-secret --namespace isc \
--docker-server=https://containers.intersystems.com \
--docker-username='ron@pidtoo.com' \
--docker-password='12345'
This should conclude the setup for IKO, and enable it's delegate it entirely through Git Ops to Argo CD.
### Connect Git to Argo CD
This is a simple step in the UI for Argo CD to connect the repo, this step ONLY "connects" the repo, further configuration will be in the repo itself.

### Declare Branch to Argo CD
Configure Kubernetes to poll branch through Argo CD `values.yml` in the Argo CD chart. It is up to you really for most of these locations in the git repo, but the opinionated way to declare things in your repo can be in an "App of Apps" paradigm.
Consider creating the folder structure below, and the files that need to be created as a table of contents below:
├── argocd
│ ├── app-of-apps
│ │ ├── charts
│ │ │ └── iris-cluster-collection
│ │ │ ├── Chart.yaml ## Chart
│ │ │ ├── templates
│ │ │ │ ├── iris-operator-application.yaml ## IKO As Application
│ │ │ └── values.yaml ## Application Chart Values
│ │ └── cluster-seeds
│ │ ├── seed.yaml ## Cluster Seed
**Chart**
apiVersion: v1
description: 'pidtoo IRIS cluster'
name: iris-cluster-collection
version: 1.0.0
appVersion: 3.5.48.100
maintainers:
- name: intersystems
email: support@intersystems.com
**IKO As Application**
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: iko
namespace: argocd
spec:
destination:
namespace: isc
server: https://kubernetes.default.svc
project: default
source:
path: iko/iris_operator_amd-3.5.48.100/chart/iris-operator
repoURL: {{ .Values.repoURL }}
targetRevision: {{ .Values.targetRevision }}
syncPolicy:
automated: {}
syncOptions:
- CreateNamespace=true
**IKO Application Chart Values**
targetRevision: main
repoURL: https://github.com/pidtoo/gitops_iko.git
**Cluster Seed**
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: gitops-iko-seed
namespace: argocd
labels:
isAppOfApps: 'true'
spec:
destination:
namespace: isc
server: https://kubernetes.default.svc
project: default
source:
path: argocd/app-of-apps/charts/iris-cluster-collection
repoURL: https://github.com/pidtoo/gitops_iko.git
targetRevision: main
syncPolicy:
automated: {}
syncOptions:
- CreateNamespace=true
### Seed the Cluster!
This is the final on interacting with your Argo CD/IKO Cluster applications, **the rest is up to Git**!
kubectl apply -n argocd -f argocd/app-of-apps/cluster-seeds/seed.yaml
### Merge to Main
Ok, this is where we see how we did in the UI, you should immediately start seeing in Argo CD applications starting coming to life.
**The apps view:**

**InterSystems Kubernetes Operator View**


> Welcome to GitOps with the InterSystems Kubernetes Operator!
[Git Demos are the Best! - Live October 19, 2023](https://youtu.be/IKoadH_oOPU?feature=shared)
Ron Sweeney, Principal Architect Integration Required, LLC (PID^TOO)
Dan McCracken, COO, Devsoperative, INC
Ohh, so useful Ron & Dan, thanks for sharing your experience and tools. Very insightful Ron, thanks. 💡 This article is considered as InterSystems Data Platform Best Practice.
Announcement
Anastasia Dyubaylo · Dec 4, 2023
Hey Community,
It's time to announce the winners of the InterSystems Java Contest 2023!
Thank you to all our amazing participants who submitted 13 applications 🔥
Experts Nomination
🥇 1st place and $5,000 go to the presto-iris app by @Dmitry.Maslennikov
🥈 2nd place and $3,000 go to the iris-dmn app by @Alexey.Nechaev
🥉 3rd place and $1,500 go to the iris-parquet app by @Yuri.Gomes
🏅 4th place and $750 go to the quiz-app app by @Andrii.Mishchenko
🏅 5th place and $500 go to the StarChat app by @Anna.Diak
🌟 $100 go to the JIRISReport app by @Yuri.Gomes
🌟 $100 go to the InterLang app by @Zacchaeus.Chok
🌟 $100 go to the fhir-pex app by @Flavio.Neubauer3032
🌟 $100 go to the excel-java-iris app by @Oliver.Wilms
🌟 $100 go to the native-api-command-line-java app by @Robert.Cemper1003
All the applications are interesting and deserve the accolades. So it was quite hard for each of our experts to choose only 3 out of 13. That's why (and because it's the last contest of the year and we wish to spread the holiday spirit) it was decided to award all the applications that were submitted for the contest. We hope no one minds 😉
🌟 $100 go to the java-global-editor app by @Robert.Cemper1003
🌟 $100 go to the Image AI Creator app by @Yuri.Gomes
🌟 $100 go to the iris-extlanguage-openpdf app by @Nicki.Vallentgoed
Community Nomination
🥇 1st place and $1,000 go to the presto-iris app by @Dmitry.Maslennikov
🥈 2nd place and $750 go to the StarChat app by @Anna.Diak
🥉 3rd place and $500 go to the quiz-app app by @Andrii.Mishchenko
🏅 4th place and $300 go to the fhir-pex app by @Flavio.Neubauer3032
🏅 5th place and $200 go to the iris-dmn app by @Alexey.Nechaev
Our sincerest congratulations to all the participants and winners!
Join the fun next time ;) Congratulations to all the winners, and thanks for the recognition Congrats to all the winners and all the participants ; greatful job and outcomes Thanks community. This contest show to us how it is important IRIS with Java, not only Python with IRIS. Congratulations to all the winners and participants, particularly to @Anna.Diak and @Andrii.Mishchenko - I am so very proud of you! Congratulations to all the winners and participants! It was really exciting to participate in this competition. Thank you for the opportunity and everyone who voted. Thank you very much for your support! Congratulations! it was a great competition Congrats to all the winners!!! It was a great race! Thank you very much for your support, again! Congratulations to all the winners 🏆 👏 Congratulations to all participants! You are all winners! 🏆 Congratulations to all the participants! JAVA is alive! Congratulations to all the winners!
Announcement
Vadim Aniskin · Jan 17, 2024
Hey Community!
It's time to share the first-ever announcement of the Ideas Portal 2023 annual stats and the Top InterSystems Ideas Contributors for 2023 🌟
General Stats:
✓ 160 new ideas posted in 2023✓ 30 implemented ideas: ✓ 19 ideas implemented by Community members ✓ 11 ideas implemented by InterSystems✓ 364 new comments posted✓ 223 new users registered
Implementer of Ideas:
We present the new exciting badge Implementer of Ideas. It's a person who implemented the maximum number of ideas during 2023.
Nomination: Implementer of ideas
Given to developers for the maximum number of implemented ideas from the InterSystems Ideas portal.
Developer
Number of implemented ideas
Dmitry Maslennikov
2
Yuri Marx
2
John Murray
2
Badge's name
Badge's logo
Winners
Implementer of Ideas
@Dmitry.Maslennikov
@Yuri.Gomes
@John.Murray
Let's applaud together the developers who earned this badge in 2023 👏🏅
Most Voted Ideas:
Idea
Author
Votes
Light version InterSystems IRIS
@Andre.LarsenBarbosa
56
Implement autosave for DTL and BPL pages
@LuisAngel.PérezRamos
14
Make IRIS a part of Spring Cloud
@wang.zhe
14
Most Commented Ideas:
Idea
Author
Comments
Binary index implementation
@Akio.Hashimoto1419
14
testing dashboard for InterSystems IRIS
@diba
12
Dark version of InterSystems Community
@Guillaume.Rongier7183
8
Idea Leaders:
Developer
Number of posted ideas
@Yuri.Gomes
21
@Evgeny.Shvarov
11
@LuisAngel.PérezRamos
10
Idea Commenters:
Developer
Number of comments
@Dmitry.Maslennikov
35
@Yuri.Gomes
11
@Alex.Woodhead
8
Congratulations to the winners! 🌟 Thank you all for your contributions to InterSystems Ideas in 2023!
We are sure 2024 will be rich in your brilliant ideas! 💡🤝 @Daniel.Aguilar,
Thank you so much for implementing the idea Make a module which will let to use IRIS and Firebase framework!👏
Welcome to the Ideas Portal Hall of Fame!🎉
🖥 Application can be downloaded here: irisfirebase @Vadim.Aniskin Thank you so much, very proud to enter the Hall of Fame! ♥
Announcement
Anastasia Dyubaylo · Apr 5, 2023
Hi Community,
Watch this video to see InterSystems IRIS in action as it is applied to real-world use cases, including business 360 and real-time analytics processing:
⏯ InterSystems IRIS Live Demos @ Global Summit 2022
Presenters:
🗣 @joe.gallant, Manager, Sales Engineering, InterSystems🗣 Wei Wen Lee, Quantitative Development Engineer, Financial Services, InterSystems
Subscribe to InterSystems Developers YouTube to stay up to date!
Question
Ephraim Malane · Dec 22, 2022
Hi Community,
My IRIS.DAT file is corrupted on one of my Edge productions in the development environment and as a result, I cannot start production.
I would like to recover it if there is a way to do so, please assist.
Regards, You should ask WRC, for the help if you have support If you are a supported customer (with the license under support - SUTA), please contact WRC. More details you can find at https://www.intersystems.com/support/ I haven't seen a database corruption for many years, I literally forgot the last time I saw it, it may be 15+ years or more. And in the past (last millennium) I've seen and dealt db corruption.
Out of curiosity, what are the symptoms or your corruption? How did it happened?
To check if a database is corrupt : Do ^INTEGRIT
To repair a database : Do ^REPAIR (But if you don't know this utility or the internals of database blocks and pointers : don't use it !!!) ^INTEGRIT is the simplest way to check integrity. Run the integrity check output to a file and contact WRC, as others have said, if you have support. The most direct way to resolve database errors is to restore from a good backup and replay journals. If you can't do that, the other alternatives almost always involve loss of information. The WRC has specialists who understand database internals, and WRC always wants to investigate for the root cause of any database problems. Ephraim,
When you say "corrupted" to better understand...- Did you try to mount the DB (from the SMP of with ^MOUNT)? Sometimes if IRIS/Cache was "forced" than a *.lck file on the DB folder need to be deleted in order to allow a successful mount. - If the DB is mounted, did you got a <DATABASE> (or other) error? if so, then what was said using ^Integrity and ^Repair could help - but only if you fully understand how to use those tools (!) Most of the time, a corrupted DB is fixable using those tools, or at least data can be 99% recovered. Depending on the number of errors: if its huge than sometimes it is faster to recover the DB from a valid backup + journal files.
BTW - if this is a mirrored DB than there are other considerations as well.
Happy new year! Thank you so much everyone,
I logged a tiket with WRC and managed to resolve the issue by restoring IRIS.DAT file from another instance
Regards,
Ephraim Malane I'm glad to hear that you contacted WRC and got this resolved.
Announcement
Jayanth kotla · May 4, 2023
Hi,
This is Jayanth from OAK Technologies.
Hope you are all doing well!!
We have a position for InterSystems IRIS Technology Role for our client if anyone is interested, please drop your resume to jayanth@oaktechinc.com
Job Role: IRIS technology role
Location: Chicago, Illinois (Remote Work)
Contract:1+ Year W2 OR 1099 Contact
Required:
IRIS: inter system creative data technology
FHIR- based healthcare application development
Experience on IHE and any cloud Technology is Preferred.
Thanks, and regards,
Jayanth
OAK TECHNOLOGIES, Inc.
300 E Royal Lane Ste # 130, Irving, TX -75039
C: 972-777-4034
jayanth@oaktechinc.com
Announcement
Bob Kuszewski · Oct 11, 2023
InterSystems has made the decision to stop further development of the InterSystems Cloud Manager and label it as deprecated as of the InterSystems IRIS 2023.3 release. InterSystems will continue to support existing customers using the technology, but it is no longer recommended for new deployments.
Customers in the cloud who are interested in deploying and managing an IRIS deployment with many systems are encouraged to consider Kubernetes and the InterSystems Kubernetes Operator, which has very similar functionality to ICM.
Customers with questions on their current or planned use of ICM should reach out to their account team or contact me directly.
Question
Evgeny Shvarov · Oct 30, 2023
Hi colleages!
This is very easy to setup a FHIR server in InterSystems IRIS for Health.
It could be even one IPM command with this package:
USER>zpm "install fhir-server"
But which FHIR portal could you recommend to use?
I used to work with this one, which is very easy to install too:
USER>zpm "install fhir-portal"
but it doesn't work at the moment and I'm not sure if its main contributors @José.Pereira and @Henrique plan to support it.
What do you use? What do you recommend? Ideally installable with IPM package manager. Thanks!
Hi @Evgeny.Shvarov
Thanks for the notice. We need to check what's going on and fix it.
PS: I just realized that I had a pending pull request from you and it's approved now Hi @Henrique !
Thanks a lot for taking a look! I really like your app and got addicted, and I hope it will work again and help me and others.
@Henrique , if you could also publish a fixed version in a public IPM? That needs a release issuing in Open Exchange. Thank you!