1) This is how ethernet works, if your ethernet cable have not connected, no connection and no IP address there. Sharing network over USB, as I know works fine on macOS, but not sure how to configure it for Windows. With macOS, it's possible to connect RaspberryPI with MacBook with USB-c to USB-C cable, and it will power it and gives access to the network.

2) Upgrading Docker-based applications, it the topic right for Docker. It's not so easy to explain how to upgrade Container. Containers are stateless, and the process is just to stop the existing container and start a new one from the updated image.

You don't have to extract archives supposed to be used by Docker. They have to be used as-is with command

docker load -i iris_community_arm64-2021.1.0.215.0-docker.tar.gz

and this will load the image to docker, and then it can be used there

Yes, InterSystems, offers distributions of IRIS, which can be installed without Docker. And for sure, you can run as many instances of IRIS as you want, as soon as you have enough resources for it.

Yes, when you created a new class, it is just a file on your local disk. When you saved it, VSCode caught this action, and sent it to the server, and compiled it. But deleting this file, not a reason to do the same on the server.

You can delete class with Explorer view, there you may find any classes, that are stored on the server. By context menu you can Delete the item on the server, or Export it to get the local version. Icons close to class names, the same as in File Explorer view, may indicate the connection to your local file.

Dmitry Maslennikov · Aug 21, 2021 go to post

It’s a class not routine, and you call to method not label, so instead of double dollar, you have to use double dots 

..occupiedseatsAdj

Dmitry Maslennikov · Aug 20, 2021 go to post

Well, ok, for Authentication azure provides OAuth2 and SAML, both possible to integrate to IRIS 

User synchronization may work in two ways, every time when user is authorized, so get synced only users has authorized at least once. Or periodically, get a complete synchronization, this could be possible only with saml.

Dmitry Maslennikov · Aug 20, 2021 go to post

What kind of integration you need?

Just authentication, or even user synchronization?

or something else?

Dmitry Maslennikov · Aug 20, 2021 go to post

VSCode itself has some limitations and due to this, not so easy to add an ability to show some angular page. But anyway, much more you’ll achieve if you do it as an extra extension to VSCode, instead of still using Source control classes.

Dmitry Maslennikov · Aug 20, 2021 go to post

Added an article about GitHub Codespaces with an ability to edit ObjectScript with running IRIS inside. With an extra option to run own browser version of VSCode anywhere in the cloud on your own conditions.

Dmitry Maslennikov · Aug 20, 2021 go to post

By Setting in Business Service which it will be tied to. But I think, it will be simple, like check that latest data where create date more than current plus n seconds

Dmitry Maslennikov · Aug 20, 2021 go to post

Looks like, that you have some data generated, which you should care about, but with some delay. So, how about creating some custom adaptor, which would look at that data, check for conditions and do the task. So, just only need an index by creation time.

Dmitry Maslennikov · Aug 17, 2021 go to post

github.dev, is just a simple VSCode but in the cloud. It may get a coloring if it would allow at least our main extensions for ObjectScript, which in fact provide a basic coloring. GitHub.com itself uses coloring from another source, which in fact almost the same as for VSCode.

I'll look at github.com, and maybe I will find a solution, how to get coloring there somehow. And thinking about Codespaces feature as well.

I think this may happen, due to some issues with availability of some internal services.

In any way it’s now possible using VSCode for development with InterSystems versions 2016.2 and later. So, I would recommend using it instead. Documentation 

Dmitry Maslennikov · Jul 28, 2021 go to post

As I know, there is no way to have a schedule for the whole production. Just only services can have scheduled.

With working hours 8:00-18:00, will be something like this.

START:WEEK-*-01T08:00:00,STOP:WEEK-*-01T18:00:00,START:WEEK-*-02T08:00:00,STOP:WEEK-*-02T18:00:00,START:WEEK-*-03T08:00:00,STOP:WEEK-*-03T18:00:00,START:WEEK-*-04T08:00:00,STOP:WEEK-*-04T18:00:00,START:WEEK-*-05T08:00:00,STOP:WEEK-*-05T18:00:00

Dmitry Maslennikov · Jul 28, 2021 go to post

You got the error <STORE>, which means that your process is reached its memory limit. You may try to increase that limit in SMP, to a value more than your file size two times. Or try to change it with $ZStorage just for the current process. For sure, if you have enough memory for it.

Dmitry Maslennikov · Jul 28, 2021 go to post

JSON is binary in a low level, so, the same as for $listbuild, I think only one way to go, and it is from begin to end

Dmitry Maslennikov · Jul 28, 2021 go to post
USER>set json = [0,1,2]                                                                                     

USER>set json = [0,1,2], iter = json.%GetIterator()

USER>while iter.%GetNext(.key, .val){ write !,"[",key,"]=",val do:key=0 json.%Remove(key) }

[0]=0
[1]=2
USER>zw json
json=[1,2]  ; <DYNAMIC ARRAY>

And even with %Remove will not reach subsequent items

Dmitry Maslennikov · Jul 28, 2021 go to post

Be careful with multiple %Remove, it moves the index. So, the next %Remove in a row, will remove the wrong item. 

Dmitry Maslennikov · Jul 28, 2021 go to post

I think this may help

ClassMethod CleanNull(json As %DynamicObject) As %DynamicObject
{
  Set iter = json.%GetIterator()
  Set toRemove = ""
  While iter.%GetNext(.key, .value) {
    Set type = json.%GetTypeOf(key)
    If (type="null") {
      Set toRemove = toRemove _ $Listbuild(key)
    }
    ElseIf (type="object")||(type="array") {
      Set $Property(json, key) = ..CleanNull(value)
    }
  }
  Set ptr = 0, corr = 0
  While $Listnext(toRemove, ptr, key) {
    Do json.%Remove(key - corr)
    set corr = corr + 1
  }
  Return json
}

And Testing metho

ClassMethod TestJSON()
{
  set json = {
    "recipients": [ 
      { "name":"Utsavi", "email":"utsavi@gmail.com"},
      { "name":"Utsavi 1", "email":"utsavi1@gmail.com"},
      null, null
    ],
    "content":[null, {"title":"Test.pdf", "data":"ygwehfbnwfbhew"} ]
  }
  Set result = ..CleanNull(json)
  Do result.%ToJSON()
}

Will return this

{"recipients":[{"name":"Utsavi","email":"utsavi@gmail.com"},{"name":"Utsavi 1","email":"utsavi1@gmail.com"}],"content":[{"title":"Test.pdf","data":"ygwehfbnwfbhew"}]}
Dmitry Maslennikov · Jul 27, 2021 go to post

I would not recommend using it this way, due to many limitations and issues in it. Just make it on your own.

Dmitry Maslennikov · Jul 27, 2021 go to post

What the issue you faced?

Class User.Rest Extends %CSP.REST
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/:resource/(.*)" Method="GET" Call="GetResource" Cors="true"/>
<Route Url="/ping" Method="GET" Call="Ping" Cors="true"/>
</Routes>
}

ClassMethod Ping() As %String
{
  Write {"pong": true}.%ToJSON()
  Return $$$OK
}

ClassMethod GetResource(pResource As %String, pId As %String) As %Status
{
  Write {"resource": (pResource), "id": (pId)}.%ToJSON()
  Return $$$OK
}

}

With this REST class, I can do queries like this http://localhost:52773/rest/patient/test/123/456, with no issues it returns {"resource":"patient","id":"test/123/456"}

Dmitry Maslennikov · Jul 13, 2021 go to post

Community edition version is limited to 8 cores. Do, if you are able to limit it somehow, do it. I would recommend using Docker, and it gives an ability how to limit CPUs for a container.

Dmitry Maslennikov · Jul 13, 2021 go to post

One more possibility is that the input Base64 stream has line breaks, which have to be omitted. And just read correct length would not be enough, it needs to remove all line breaks, truncate to the closest divisible by 4 length, and using the left tail with the next iteration. 

Periodically I see, that some systems may replace symbols such as "+" or "/" in Base64 with something like URL compatible.

Updated

Class CodeGolf.NatoTranslator
{

ClassMethod ToNato(i As %String) As %String
{
 s l="lfa,ravo,harlie,elta,cho,oxtrot,olf,otel,ndia,uliett,ilo,ima,ike,ovember,scar,apa,uebec,omeo,ierra,ango,niform,ictor,hiskey,ray,ankee,ulu"
 f j=1:1:$l(i){s k=$e(i,j),o=$g(o)_" "_$s(",.!?"[k:k,1:$zcvt(k,"U")_$p(l,",",$a(k)#32))} q $zstrip(o,"<=W")
}

ClassMethod Test(val = "If, you can read?") As %Status
{
  set res = ..ToNato(val)
  zw res
  #dim methodObj As %Dictionary.MethodDefinition
  set methodObj = ##class(%Dictionary.MethodDefinition).IDKEYOpen($ClassName(), "ToNato")
  Write !,"Size: ", methodObj.Implementation.Size
}

}

Size: 255

Hi Surya,

Unfortunately, no one tool that can do vulnerability scanning, knows anything about ObjectScript. The only way to do it right now is to do it manually. If you really need it, I can do it for you, just let me know by email dmitry@caretdev.com

You opened issue, in repository related to this Developer Community and issues just only related to this site. You would need to open the issue, in related to VSCode extension repository, here.

Did you past this with Ctrl+V hot key?

it’s possible when you try to past it with hot key, it was inserted a hidden chars instead, and then you past it through menu or with Hot key Shift+Insert

It's still there, docker-ls just needs the auth.

 docker-ls repositories --registry https://containers.intersystems.com --user "********" --password "****************"         
requesting list . done
repositories:
- intersystems/arbiter
- intersystems/arbiter-arm64
.......