Hi, @Ben Spead, 

I'm using a plugin to change the color of each one of my workspaces. The plugin's easy to use and helps me a lot, avoiding mistakes editing in the wrong workspace.

Peacock
https://marketplace.visualstudio.com/items?itemName=johnpapa.vscode-peacock

The plugin creates the configuration inside the .vscode folder in a JSON file.

{
    "objectscript.conn.ns": "IRISMONITOR",
    "objectscript.conn.port": 52773,
    "objectscript.conn.active": true,
    "objectscript.format": {
        "commandCase": "word",
        "functionCase": "word"
    },
    "objectscript.export.addCategory": true,
    "workbench.colorCustomizations": {
        "activityBar.background": "#88d7ea",
        "activityBar.activeBorder": "#de41bf",
        "activityBar.foreground": "#15202b",
        "activityBar.inactiveForeground": "#15202b99",
        "activityBarBadge.background": "#de41bf",
        "activityBarBadge.foreground": "#e7e7e7",
        "titleBar.activeBackground": "#5dc9e2",
        "titleBar.inactiveBackground": "#5dc9e299",
        "titleBar.activeForeground": "#15202b",
        "titleBar.inactiveForeground": "#15202b99",
        "statusBar.background": "#5dc9e2",
        "statusBarItem.hoverBackground": "#32bbda",
        "statusBar.foreground": "#15202b",
        "activityBar.activeBackground": "#88d7ea",
        "statusBar.border": "#5dc9e2",
        "titleBar.border": "#5dc9e2"
    },
    "peacock.color": "#5dc9e2"
}

HTH

Hi Scott, 

Thanks for your interest in my project.

A similar question happened with the History Monitor Dashboard. 

https://community.intersystems.com/post/dashboard-iris-history-monitor#comment-73721

You can choose to import the code in an existent Namespace, and just like Eduard replied before, for the non-docker environment, import the code in your Namespace and access the main csp. 

Or you can choose to install the Message Viewer in a new Namespace and make use of the Installer.cls.

If that was your choice change the parameters in the Installer.cls

<Default Name="APPPATH" Dir="/opt/app/" /> 

Change the /opt/app/ to whatever directory you want.

Next, you can use the class Installer.cls to create the Database, Namespace, and Web Application.

So, run the following lines of the Dockerfile in the Caché/Ensemblé/IRIS Terminal: 

Do $system.OBJ.Load("/opt/app/Installer.cls","ck")

Set sc = ##class(App.Installer).setup(,3)

HTH

Answering the question, "What is docker-compose?"

"Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application's services. Then, with a single command, you create and start all the services from your configuration."

for more info: https://docs.docker.com/compose/

Hi Neerav, 

Thanks for pointing the license situation. But, as we discussed before in LinkedIn messages and the post of History Monitor. 

The license for the DevExtreme is free to develop Non-Commercial applications. I updated the README.md file to make the situation clear following the instructions provided by the DevExtreme website.

https://js.devexpress.com/Licensing/#NonCommercial

Hi @Eduard Lebedyuk 

Thanks for your PR on GitHub.

Answering your questions:
1. I'm always trying to make things simple and using those opportunities to make Caché/IRIS to shiny a little bit in my work environment. And choosing CSP over REST+Angular or any other technology stack is one of those attempts to show what CSP (Caché/IRIS) is capable of creating. I can say that it was a personal choice.

2. I'm improving these points, and I'll publish the fix as soon as possible.

3. Right now, I don't have any plans to create a new visual trace. Unfortunately, I didn't face a situation as you mention "...  single session exceeds 300-500 thousands of messages ..." But, I'll search for something that can improve your scenario.

Thank you again for spending your time with my article and my application.

Hi @Evgeny Shvarov 

Thanks for the link to the updated article. 

I found out the error using the Google Chrome DevTools.

I was trying to upload an image in a Published App.

In the DevTools console I got the error: 

POST https://openexchange.intersystems.com/mpapi/packages/image/446 500 (Internal Server Error)

Using the Network tab, I could see the details in the Response: 

{
    "errors":[ {
            "code":5001,
            "domain":"%ObjectErrors",
            "error":"ERROR #5001: You can't to change title image of the published package. Please, unpublish package or create draft.",
            "id":"GeneralError",
            "params":["You can't to change title image of the published package. Please, unpublish package or create draft."
            ]
        }
    ],
    "summary":"ERROR #5001: You can't to change title image of the published package. Please, unpublish package or create draft."
}

As a suggestion, this response could be shown in a toast message? 

Hi @Joao.Palma 

To add new widget to the dashboard page, edit the dashboard.csp

The CSP page use bootstrap, javascript, and just a few tags of   <script language="Cache" runat="server">

To retrieve the information,  the ClassMethod  ##(VAR.infra.dashboard.dashboard). getMetrics() is called by the javascript function: 

function getSamples() {
  $.getJSON(urlPreparacao, {
  method: "getMetrics"
}


The ClassMethod give to you the following properties:

  • "ApplicationErrors": 1,
  • "CSPSessions": 1,
  • "CacheEfficiency": "140.55",
  • "DatabaseSpace": "Normal",
  • "DiskReads": 4747741,
  • "DiskWrites": "40290",
  • "ECPAppServer": "OK",
  • "ECPAppSrvRate": "0",
  • "ECPDataServer": "OK",
  • "ECPDataSrvRate": "0",
  • "GloRefs": 672977994,
  • "GloRefsPerSec": "15740.00",
  • "GloSets": 2575733,
  • "JournalEntries": 480333,
  • "JournalSpace": "Normal",
  • "JournalStatus": "Normal",
  • "LastBackup": "",
  • "LicenseCurrent": 3,
  • "LicenseCurrentPct": "2",
  • "LicenseHigh": 4,
  • "LicenseHighPct": "3",
  • "LicenseLimit": 150,
  • "LicenseType": "Ensemble 2012.2 Enterprise, Multi-Server, Platform Independent, Development License, Web Add-On, DeepSee Analyzer, DeepSee Mode",
  • "LockTable": "Normal",
  • "LogicalReads": 472186661,
  • "Processes": "12",
  • "RouRefs": 247229866,
  • "SeriousAlerts": 0,
  • "ShadowServer": "OK",
  • "ShadowSource": "OK",
  • "SystemUpTime": "0d  4h 31m",
  • "WriteDaemon": "Normal"

In case none of the properties helps you, create a new ClassMethod with the information that you want and modify the dashboard.csp

Adding a new javascript function, it will retrieve the information that fits your needs.

I hope that helps. 

Best Regards,

Henrique