In Studio you could open a class directly via it's name, without having to traverse the package tree with multiple clicks until arriving at the desired class.

You would Ctrl + O or (File -> Open) and be able to simply type in the class name, for example:

You press Enter, and viola - the class is opened.

How do you achieve this in VSCode?

10
0 1 58

Hi Developers!

Many of you publish your InterSystems ObjectScript libraries on Open Exchange and Github.

But what do you do to ease the usage and collaboration to your project for developers?

In this article, I want to introduce the way how to introduce an easy way to launch and contribute to any ObjectScript project just by copying a standard set of files to your repository.

Let's go!

90
6 21 955
Article
YURI MARX GOMES · Jan 25, 2021 2m read
Static Documentation Generators

Hi Community,

In the past, technical documentation of the source code and software products was generated in chm, pdf files and documentation generators of the programming languages themselves. This old approach had the following limitations:
1. Outdated documentation;
2. Non-interactive and difficult to consult documentation;
3. Layout unresponsive, unfriendly and not adherent to HTML;
4. Inability to customize the layout of the documentation;
5. Inability to have HTML 5 documentation online and offline.
6. Lack of Markdown support.

10
0 5 113

The ObjectScript language of InterSystems IRIS has a very powerful metadata engine called XData. This feature allows the creation of metadata definitions for your classes, to be used by the compiler or by programs that will extend the standard features of the language, based on the XData definitions of its scope.

20
0 0 114

About this article:

In InterSystems IRIS, the default form of access to the management portal is HTTP, which means that if the client is in the office and the server is in the cloud, many clients probably desire to encrypt their traffic in some way.

Thus, we would like to show you some ways to encrypt your traffic to and from the IRIS management portal (or various REST services) running on AWS.

00
0 0 99

Hi Community!

I think everyone keeps the source code of the project in the repository nowadays: Github, GitLab, bitbucket, etc. Same for InterSystems IRIS projects  check any on Open Exchange.

What do we do every time when start or continue working with a certain repository with InterSystems Data Platform?

We need a local InterSystems IRIS machine, have the environment for the project set up and the source code imported.

So every developer performs the following:

  1. Check out the code from repo
  2. Install/Run local IRIS installation
  3. Create a new namespace/database for a project
  4. Import the code into this new namespace
  5. Setup all the rest environment
  6. Start/continue coding the project 

If you dockerize your repository this steps line could be shortened to this 3 steps:

  1. Check out the code from repo
  2. Run docker-compose build 
  3. Start/continue coding the project 

Profit - no any hands-on for 3-4-5 steps which could take minutes and bring head ache sometime.

You can dockerize (almost) any your InterSystems repo with a few following steps. Let’s go!

40
7 5 689

This time I want to talk about something not specific to InterSystems IRIS, but that I think is important if you want to work with Docker and your server at work is a PC or laptop with Windows 10 Pro or Enterprise.

As you likely know, containers technology comes basically from Linux world and, nowadays, is on Linux hosts were it shows maximum potential. Those who use Windows on a normal basis see that both, Microsoft and Docker, have done important efforts during these last years that allow us to run containers based on Linux images on our Windows system in a really easy way... but it's something not supported for production systems and, this is the big problem, is not reliable if we want to keep persistent data outside of containers, in the host system,... mostly due to the big differences between Windows and Linux file systems. In the end, Docker for Windows itself uses a small linux virtual machine (MobiLinux) to run the containers... it does it transparently for the windows user... and it works perfectly well if, as I said, you don't require that your databases survive longer than the container...

Well,...let's get to the point,... the point is that many times, to avoid issues and simplify, we need a full Linux system and, if our server is based on Windows, the only way of having it is through a virtual machine. At least till WSL2 in Windows is released, but that will be another story and sure it'll take a bit of time to become robust enough.

In this article, I'll tell you, step by step, how to install an environment where you'll be able to work, if you need it, with Docker containers on an Ubuntu system in your Windows server. Let's go...

140
3 10 7,646

The Eclipse environment persists perspective data to enable layout customization and other features. Sometimes when this data becomes out of date, Eclipse fails to clear references to it. For example, upgrading a plug-in can leave behind data about an earlier version of that plug-in. This mechanism applies to all Eclipse plug-ins and is not unique to the Atelier plug-in.

In light of this: You may find that after upgrading from Atelier 1.1 to 1.2, your Atelier perspective looks something like:

50
0 2 688
Article
Robert Cemper · May 14, 2020 2m read
IRIS-Docker-micro-Durability

During the development of a container-based demo I found the need to access a fresh docker
instance of IRIS image (e.g intersystems/iris-community:2020.2.0.199.0) over and over.
To bypass setting passwords and loading my code repeatedly I developed this workaround.

100
1 0 135

I was searching for the most simple way to connect from visual studio code to my local instance via terminal without having to change any window.

I know this can also be achieved via telnet but seems a bit overhead if you're in your local machine.

For me the simplest sollution is to open a terminal window in VS Code, navigate to the /bin folder of your instance installation and run .\csession.exe INSTANCENAME

For simplicity you can just include your /bin folder in your path so you don't even need to navigate there

10
1 1 367

Are you all ready for something you wish you knew ages ago (or, in my case, a DECADE ago)?  Open up a portal in your favorite instance and go to:

System Administration->Configuration->Additional Settings->Startup

Scroll down to "Terminal Prompt" and click 'Edit'.  This allows you to edit what you see on your terminal prompt.  You can change that to my current setting: 8,3,2

What does this do?  It adds your instance name for your prompt.  So now your prompt can look like:

DEVELOPMENT:USER>

120
1 11 995

Every developer has made the mistake of accidentally leaving temporary debug code in place when they meant to remove it after debugging is complete.  The great thing about writing in ObjectScript is that there is a way to make temporary code be truly temporary and automatically self-destruct!   This can also be done in such a way that the code has no change of making it into your source control stream, which can be helpful as well.

30
0 1 263

Hi guys!

Was coding today with InterSystems IRIS in a docker container and decided to share with you the commands you may find useful in everyday coding.

# docker-compose build

command to build a container. Remember, it is useful if you have dockerfile in the repo.

if the build is successful call the following to launch it:

# docker-compose up -d

Find IRIS management portal on:

localhost:port/csp/sys/%25CSP.Portal.Home.zen?$NAMESPACE=%25SYS

where the port is what you set in docker-compose.yml - 52775 in this case.

Run the following if you want to launch a terminal session inside IRIS container:

# docker-compose iris iris session iris

gfhj gj 


sdfdsfsdf





USER>

And run the following to shut down the container:

# docker-compose down

Troubleshooting

50
3 4 386
Article
Richard Zimmermann · Aug 21, 2019 2m read
ToolBox-4-Iris

Hello everyone,
After some work with IRIS we want to share our ToolBox-4-Iris with you.

What is this about?

The ToolBox-4-Iris is an API for IRIS with a collection of handy and useful tools - features that are not available in IRIS, but greatly simplify application development. To save time and effort on the "typical tools" that every developer needs. This includes additional classes, individual methods or even more efficient macros, which are described in the respective packages.

Content

110
1 3 271
Article
Guillaume Rongier · Jul 4, 2019 1m read
Install EnsDemo on IRIS

Has you may know, EnsDemo from Ensemble are not available anymore on IRIS.

This is a good thing, Iris is cloud oriented, it must be light, fast. Now the new way of sharing samples or modules is through git, continuous integration and OpenExchange.

But, in some cases you want to go back to your good old samples from EnsDemo to get inspiration or best practices.

Good news, there is a git for that :

30
2 1 429
Article
Dmitriy Maslennikov · Jun 4, 2019 1m read
Favourite editor for programming

There are many projects which work on InterSystems products, and they are not always written only in ObjectScript. I think some of you working with different programming languages and already have some experience with other editors, and hope you already have a favourite online editor. 

My current choice is VSCode, whereas you may already know I have added an extension to support ObjectScript.

10
0 8 522
Article
Dmitriy Maslennikov · Jun 10, 2019 2m read
GitHub now supports ObjectScript

Hey developers,

I have great news for you. A few days ago, GitHub was updated with the latest version of linguist project, which is being used to recognize source code types in repositories. It helps to determine which programming language had been used in every file of the repository. Repository statistics section shows the results of this module work.

 

Also, you can search across all available GitHub repositories for any chosen language. 

60
1 3 498
Article
Robert Cemper · Jun 10, 2019 1m read
A more useFull Object Dump
This is a coding example working on Caché 2018.1.3 and IRIS 2020.2 
It will not be kept in sync with new versions 
It is also NOT serviced by InterSystems Support !

During testing your code you are often confronted with the need to examine
the actual content of an object. Either using ZWRITE or $system.OBJ.Dump()
you get a picture of simple properties as "--- attribute values ---"
while "--- swizzled references ---" are more confusing than informative
and with "--- calculated references ---" you are just left in the lurch.

160
1 3 536

PHP, from the beginning of its time, is renowned (and criticized) for supporting integration with a lot of libraries, as well as with almost all the DB existing on the market. However, for some mysterious reasons, it did not support hierarchical databases on the globals.

Globals are structures for storing hierarchical information. They are somewhat similar to key-value database with the only difference being that the key can be multi-level:

20
4 1 444

This is a continuation of my story about the development of my project isc-tar started in the first part.

Just having tests is not enough, it does not mean that you will run tests after all changes. Running tests should be automated, and when you cover all your functionality with tests, everything should work well after any change in any place.  And Continuous Integration (CI) helps to keep the code and deployment procedure with as fewer bugs as possible and automates the routine procedures, like publishing releases.

I use GitHub to store the source code. And some time ago GitHub started to work on its own CI/CD platform and named it GitHub Actions. It is not widely available, yet. You have to be signed as a beta tester for this feature, as I did. GitHub Actions uses quite a different way how to deal with a build workflow. What is important that Github Actions allows to use Docker, and it’s quite easy to customize available actions. And interesting that GitHub Actions is really much bigger than any classic CI like we have in Travis, Circle or Gitlab CI and so on. You can find more in the official documentation.

30
1 0 326