Good choice, I'm already using gitlab in our company, with closed sources. In our process, I even deploy to our own windows server. Our application on Angular 2.

it is our gitlab-ci.yml, I've removed deploy stage.

image: node:5

stages:
  - test
  - build

cache:
  key: "$CI_PROJECT_NAME/$CI_BUILD_REF_NAME"
  paths:
    - ./node_modules/

before_script:
  - export PATH=$PATH:./node_modules/.bin/
  - npm install

tslint_job:
  stage: test
  tags:
    - linux
    - docker
  script:
    - ng lint

test_job:
  stage: test
  tags:
    - linux
    - docker
  script:
    - karma start --browsers PhantomJS --single-run

build_job:
  stage: build
  tags:
    - linux
    - docker
  artifacts:
    expire_in: 1 week
    paths:
      - dist/*
  script:
    - ng build --aot-prod --bh "./"

There are not such methods, we only have function which converts delimited string to $listbuild format and back. And you can do it in this way, without any looping, but only if you already know how many items you have.

USER>set string="a,b,c,d,e,f"

USER>set list=$lfs(string,",")

USER>zw list
list=$lb("a","b","c","d","e","f")

USER>set $lb(array(0),array(1),array(2),array(3),array(4),array(5))=list

USER>zw array
array(0)="a"
array(1)="b"
array(2)="c"
array(3)="d"
array(4)="e"
array(5)="f"

What do you want to fix? Locked access or change security level?

Mostly when you run some server application inside a container, it means that no needs any changes of settings, while this container is up because all that changes may disappear after restart container form a new image.

I would recommend changing security level in the installation process. You can do it with some environment variables described in the documentation. Just add this lines in the Dockerfile before cinstall_silent command

ENV ISC_PACKAGE_INITIAL_SECURITY="Locked Down" \
    ISC_PACKAGE_USER_PASSWORD="secretpassword"

And your installation will be secured.

Read more about initial security settings in the documentation.

The difference only in output format. InterSystems returns just string of bytes, while online generator returns hex codes for that bytes, which is much better for reading by human. So,  you may quickly check it with command zzdump. And you may notice, that zzdump shows the same hash you got from online generator.

USER>set hash=$system.Encryption.SHAHash(512,"test")

USER>zzdump hash

0000: EE 26 B0 DD 4A F7 E7 49 AA 1A 8E E3 C1 0A E9 92         î&°ÝJ÷çIª..ãÁ.é.
0010: 3F 61 89 80 77 2E 47 3F 88 19 A5 D4 94 0E 0D B2         ?a..w.G?..¥Ô...²
0020: 7A C1 85 F8 A0 E1 D5 F8 4F 88 BC 88 7F D6 7B 14         zÁ.ø áÕøO.¼..Ö{.
0030: 37 32 C3 04 CC 5F A9 AD 8E 6F 57 F5 00 28 A8 FF         72Ã.Ì_©­.oWõ.(¨ÿ

And this simple line of code, may help you to convert this hash to hex hash.

USER>set hashHex="" for i=1:1:$l(hash) set hashHex=hashHex_$zhex($a(hash,i))

USER>write hashHex
EE26B0DD4AF7E749AA1A8EE3C1AE9923F618980772E473F8819A5D494EDB27AC185F8A0E1D5F84F88BC887FD67B143732C34CC5FA9AD8E6F57F5028A8FF

USER>write $zconvert(hashHex,"L")
ee26b0dd4af7e749aa1a8ee3c1ae9923f618980772e473f8819a5d494edb27ac185f8a0e1d5f84f88bc887fd67b143732c34cc5fa9ad8e6f57f5028a8ff

In my experience such behavior I saw when we had so many writes to the disk, and write daemon queue only grown up.

In first I would launch mgstat tool from InterSystems. But it should be started before the freezing system, and for quite long time, with at least 5 seconds interval, better if it would be 1 second. Then you should look at some columns such as WDphase, PhyWrs, WDQsz.

What you should look for. 

  • WDphase -  should not be all the time in the 8th phase.
  • WDQsz - from time to time should fall to zero
  • PhyWrs - may help to calculate a "real" speed of writing to the disk. And compare with expected speed.
  • WDPass - time to time should be increased, if WD still at the same cycle so long time, it may cause a freezing system.

Counts only lines which appear in the final "INT" code.  If you working with MAC code, you may open INT by pressing Ctrl+Shift+V in the Studio. And then you can go to this needed line wit dialog called by Ctrl+Shift+G, Where you should put 'label+line' or just '+line'. If you Studio says, that no other sources, you should check flag "Keep Generated Source Code" and add compiler flag "k" in the Studio options and recompile your routine.

Well, there are some different reasons to do it:

  • optimization network traffic for readers. You should remember, that you wrote the public article for people all around the world, with different quality of their network connection. Some people may even disable images for loading.
  • in slow internet connection, you may see empty spaces for your images, while it will be loaded.
  • it is a bit difficult to recognize your terminal images due to the white background, the same as for page. If you put it as a formatted text, it will have the different background.