Dmitry Maslennikov · Feb 27, 2020 go to post

It's great that you trying to do it.

But I'm not sure what you actually going to achieve with WebGateway?

A provided link has info about running in docker.

So, if you just want to activate server-status page in internal apache which goes with IRIS, you should know, that it is not recommended to use internal webserver in production.

Some time ago I did an example of Apache with CSPgateway as a docker image. It can be outdated a bit but can be used as an example, how to achieve it. You can easily extend Apache settings there, to allow server-status as well.

Dmitry Maslennikov · Feb 23, 2020 go to post

$lb is a binary format, when you try to write it you just outputs everything including special symbols.

zwrite command, can do it respectively to format.

zzdump can show how it looks in real, it's byte sequence.

USER>zw $lb("words","more","words")
$lb("words","more","words") 

USER>zzdump $lb("words","more","words") 

0000: 07 01 77 6F 72 64 73 06 01 6D 6F 72 65 07 01 77         ..words..more..w
0010: 6F 72 64 73                                             ords

USER>zzdump $lb(1,2,3,4,5)              
0000: 03 04 01 03 04 02 03 04 03 03 04 04 03 04 05            ...............

But it is not so important how it looks low-level, as we mostly don't care about it.  Developers work with $ListBuild mostly through a bunch of functions, such as $list, $listget, $listnext and so on. You can find more information about $listbuild in the documentation, as well as many examples, and all functions which can be used to work with it.

Dmitry Maslennikov · Jan 31, 2020 go to post

Hi Max, thanks for the feedback.

Actually, there are no way to disable it, yet. Could you fill the enhancement request here?

Dmitry Maslennikov · Jan 28, 2020 go to post

Hi Jose,

Interesting, I don't have windows, but as I can see, exit code 2, means 

The system cannot find the file specified.

That's strange when it successfully called docker-compose when looked for a port.

You can also try to open an ordinary terminal in VSCode (Menu, View->Terminal), and put full command there, to see how it works.

Dmitry Maslennikov · Jan 26, 2020 go to post

Thanks, for sharing this.

As an addition, if you have would like to use a different file name from default docker-compose.yml for your configuration, you can set it as well.

"objectscript.conn" :{
  "ns": "IRISAPP",
  "active": true,
  "docker-compose": {
    "service": "iris",
    "internalPort": 52773,
    "file": "docker-compose.yml"
  }
}
Dmitry Maslennikov · Jan 24, 2020 go to post

I'm going to Barcelona this year, catch me there if you would like to see VSCode-ObjectScript in action if you would like to discuss new features you want to see there if you face in issues. 

See you there

Dmitry Maslennikov · Jan 23, 2020 go to post

I'm finally going to Antwerp this year.

So, you have a chance to meet me there, to see VSCode-ObjectScript in action, get quick help with the migration process, and give your feedback.

See you there.

Dmitry Maslennikov · Jan 13, 2020 go to post

A FOR loop pushes a new level onto the stack. A WHILE loop does not change the stack level.  

Source

Working with stack takes time.

Dmitry Maslennikov · Jan 10, 2020 go to post

Embedded SQL queries, with variables, and INTO. When I would like to see query plan, I have to first clean it and replace with `?`.

Would be good, to be able to get query plans for such cases, a bit more easier.

Dmitry Maslennikov · Jan 10, 2020 go to post

Something like this, you can have many serverN folders, with own settings.json there, configured for any server.

{
    "folders": [
        {
            "name": "root",
            "path": ".",
        },
        {
            "name": "server1",
            "path": "server1",
        },
        {
            "uri": "isfs://server1",
            "name": "server1",
        },
        {
            "uri": "isfs://server1?ns=%25SYS",
            "name": "server1 sys",
        },
        {
            "name": "server2",
            "path": "server2",
        },
        {
            "uri": "isfs://server2",
            "name": "server2",
        },
        {
            "uri": "isfs://server2?ns=%25SYS",
            "name": "server2 sys",
        },
        {
            "name": "server3",
            "path": "server3",
        },
        {
            "uri": "isfs://server3",
            "name": "server3",
        },
        {
            "uri": "isfs://server3?ns=%25SYS",
            "name": "server3 sys",
        }
    ],
    "settings": {
        "objectscript.serverSideEditing": true
    }
}

Could you explain a bit, how would you like to see work with CSP files? For me, when you working with own local instance, you can just open csp folder in VSCode, and edit as a usual file, InterSystems will compile it automatically with the next request. I think it would be possible to add CSP editor only as part of Server-side editing feature.

Server-side search, not yet available, because, search engine not yet publicly released. I've already implemented server-side search when server-side editing enabled, and you can test it with the latest beta version of vscode-objectscript, and only with Code-Insiders version, and with flag --enable-proposed-api daimor.vscode-objectscript

Could you add your expectations from debugging feature, as an issue here?

Only one server connection.

At the moment it is possible to have multiple folders configured for each own server, and tied up with .code-workspace file. I see you already use server-side editing, so, you can just extend your file. And the link for the info, how to configure it.

Curiously, what do you expect from XData? Could you fill the issue, so, for any other ideas as well?

When your team uses Studio with source hooks, it's even easier to move to VSCode. VSCode supports source control class hooks, and even some types of actions from menu. You can the latest beta release, to get more features.

VSCode can also be used to edit files directly on a server, almost the same way as Studio. Just at the moment it does not check any changes on the server, and uses your opened files as a source of truth.

Scott, could you give some more details about your experience with VSCode, privately directly to me or publicly here? What do you expect, and what would help you decide to use VSCode instead of Studio?

Dmitry Maslennikov · Dec 26, 2019 go to post

The best solution would be to use docker-compose.yml

version: '3.7'
services:
  service1: 
    ....
  service2:
    ...

And each service in such configuration will be able to contact any other service by his name.

Dmitry Maslennikov · Dec 17, 2019 go to post

crossType and crossSteps I get from $lb stored in grid which I read with $Data with variable crossInfo.

So, I use the trick with the second argument in $Data, where variable gets value if data exists.

And another trick with the left $listbuild as you noticed. Which just extracts values from right's side $listbuild to variables in the left's side $listbuild. The documentation actually has information about it.

Good luck. ))

Dmitry Maslennikov · Dec 11, 2019 go to post

How is it related to Cache?

Your files currently stored as data in Cache database or stored as files on your Linux server?

How are you going to use your files stored in SharePoint when you will move it?

The very recent version of IRIS available only as a Docker image, at the moment version 2019.4. The version available for any other platform on the download page is just 2019.1.

Look how SMP looks side by side in 2019.1 and 2019.4

Looks like rescheduling running task does not work. But it is possible to create a new one, which runs once.

Class User.Test Extends %SYS.Task.Definition
{
Parameter TaskName = "SomeTask";
Method OnTask() As %Status
{

  Set task = ##class(%SYS.Task).%New()
  Set task.Name = "Test task"
  Set task.NameSpace = $Namespace
  Set task.TaskClass = ..%ClassName(1)
  Set task.TimePeriod = 5 // RunOnce
  Set task.RescheduleOnStart = 0
  Set tSC = task.%Save()
  If $$$ISERR(tSC) {
    Quit tSC
  }
  
  Set nextDate = +$Horolog + $Random(10) + 1
  Set nextTime = $ZTimeh("10:00")
  Quit ##class(%SYS.Task).RunOnce(task.%Id(), nextDate, nextTime)
}
}