Pesquisar

Announcement
· Jun 26

Chat with Developer Community AI!

Hey Community!

We're excited to introduce a new way to interact with the Developer Community AI — you can now have a real conversation with it!

Instead of just asking one-off questions, you can chat with DC AI in a more natural, back-and-forth format. This way, whether you're exploring InterSystems technologies, debugging code, or learning something new, DC AI is here to help, just like a fellow developer.

And just like the original Q&A version, this chat experience is powered by InterSystems IRIS Vector Search, making your conversations fast, context-aware, and highly relevant.

👉 Give it a try, and let us know what you think!

2 Comments
Discussion (2)1
Log in or sign up to continue
Question
· Jun 26

VSCode CSP compare with server failed

VSCode version:

Version: 1.101.2 (user setup)
Commit: 2901c5ac6db8a986a5666c3af51ff804d05af0d4
Date: 2025-06-24T20:27:15.391Z
Electron: 35.5.1
ElectronBuildId: 11727614
Chromium: 134.0.6998.205
Node.js: 22.15.1
V8: 13.4.114.21-electron.0
OS: Windows_NT x64 10.0.26100

-----------------------
I'm working with a CSP legacy system. 

When a csp file is newer in Caché them my local version, I try to do a compare with the server and receive the error in VSCode

Looking the Windows Log a I see the message:
2025-06-26 10:57:13.054 [error] [Window] {"statusCode":400,"message":"Bad Request","errorText":"ERRO #16006: Nome do documento 'csp.aporte.teste.csp' é inválido"}

csp/aporte is my Web Application in Caché.
teste.csp is my csp file.

The compare function works fine with CLASSES and ROUTINE, but fail with CSP and CSR

Regards.

2 Comments
Discussion (3)4
Log in or sign up to continue
Question
· Jun 26

Struggling with SOAP web-service permissions/plumbing

I am attempting to follow the tutorial at Publishing Web Services Using Caché | Caché Web Services QuickStart Tutorial | Caché & Ensemble 2018.1.4 – 2018.1.11 to build a toy SOAP web-service using Cache but am running into what I suspect are permissions issues, or perhaps setting up the "plumbing" to get an incoming request to call the web-service methods.

Ensemble instance running on local laptop. Only the Ensemble private web-server installed on the machine (no IIS or Apache).

Working through the tutorial, when I get to testing the service using the terminal (Testing the Service from the Terminal | Caché Web Services QuickStart Tutorial | Caché & Ensemble 2018.1.4 – 2018.1.11), I get an error:

I don't really understand what this is telling me, or what to try. 

And as the tutorial pages appear to contain erroneous content, its hard to be confident about what to try - on the page about testing the web-service from the terminal, I'm pretty sure the class name highlighted below should, in context, be "SOAPTutorial.SOAPService"... (And the tutorial isn't very clear about namespaces - to run the client.Test() method as described below, you have to be in the same namespace as the web-service code - earlier it says something like "in any namespace....")

I have tried:

  • attempting to visit the web-service via a URL generated from the namespace + class name using a browser gives this:
  • adding a web application /colintest1/ that should be pointing to the classes above, and then visiting the web-service via a URL incorporating the web-application name:
  • http://localhost:57772/colintest1/SOAPTutorial.SOAPService.cls gives the same error as above ("An error occurred with the CSP application....") The web-application is configured as: There's a role WS_Role configured to give permission to read and write to the database for the WEBSERVICES namespace: with member "UnknownUser", and a Resource WebServices - not confident all this is properly set up...nor sure that this is the issue!
  • visiting http://localhost:57772/colintest1/ gives: 
  • adding things to the ^SYS global in the %SYS namespace:     set ^SYS("Security","CSP","AllowClass","/csp/webservices/","%SOAP.WebServiceInfo")=1     set ^SYS("Security","CSP","AllowClass","/csp/webservices/","%SOAP.WebServiceInvoke")=1 or     set ^SYS("Security","CSP","AllowClass","/colintest1/","%SOAP.WebServiceInfo")=1     set ^SYS("Security","CSP","AllowClass","/colintest1/","%SOAP.WebServiceInvoke")=1 Does not make any difference to the previously observed behaviour.

Finally, here's the current state of the code in the web-service class - the request isn't making it as far as this as far as I can see!

FWIW, looking at the CSP Gateway HTTP Trace doesn't help much - can see some of the from a browser requests hitting the gateway, and the "An error occurred" page being presented in response, but no other illuminating information about why the error occurred! eg

Discussion (1)2
Log in or sign up to continue
Article
· Jun 26 4m read

Innovando para una elegancia generativa

Público

Aquellos interesados en explorar nuevos casos de uso de GenerativeAI.

Comparte ideas y razones al entrenar inteligencia artificial generativa para el reconocimiento de patrones.

Desafío 1 – Simple pero no más simple

Un desarrollador aspira a concebir una solución elegante para ciertos requerimientos.
Los patrones de coincidencia (como las expresiones regulares) pueden resolverse de muchas maneras. ¿Cuál es la mejor solución en código?
¿Puede una IA postular una solución elegante de coincidencia de patrones para un rango de ejemplos que van de simples a complejos?

Consideremos los tres valores de cadena:

  • "AA"
  • "BB"
  • "CC"

La expresión: "2 caracteres alfabéticos" coincide con todos estos valores y otros valores similares de manera intuitiva y flexible.

Alternativamente, la expresión: "AA" o "BB" o "CC" sería una forma muy específica de coincidir únicamente con estos valores:

Otra forma de resolverlo sería: "A" o "B" o "C", repetido dos veces.

Desafío 2 – Muestra incompleta

Los problemas de patrones rara vez tienen todos los ejemplos especificados.
Una IA efectiva necesita aceptar una muestra limitada e incompleta de filas de datos y postular una expresión de coincidencia de patrón razonable.
Un objetivo tipo Turing sería igualar la inferencia humana para un patrón basado en datos representativos pero incompletos.

Una mejor calidad en el procesamiento de muestras tiene mayor prioridad que ampliar la ventana de tokens para muestras de mayor tamaño.

 

Desafío 3 - Aprovechar secuencias que se repiten

Extendiendo el ejemplo anterior, para incluir también valores de un solo carácter:

  • "A"
  • "B"
  • "C"

Esto parece más elegante que especificar TODOS los valores posibles de forma explícita.

 if test?1(1"A",1"B",1"C",1"AA",1"BB",1"CC")

 

Desafío 4 – Sesgo en datos delimitados

Una necesidad común más allá de los patrones generalizados es resolver datos delimitados. Por ejemplo, un formato aleatorio de número de teléfono.

213-5729-57986

Podría resolverse con la expresión:
3 números, guion, 4 números, guion, 4 números

 if test?3N1"-"4N1"-"4N

Esto se puede normalizar con una secuencia repetida a:

 if test?3N2(1"-"4)

Esto significa básicamente tener preferencia por especificar explícitamente un delimitador, por ejemplo "-", en lugar de generalizar los delimitadores como caracteres de puntuación. Por lo tanto, la salida generada debería evitar la sobre-generalización, por ejemplo:

 if test?3N1P4N1P4N

 

Desafío 5 – Secuencias repetidas

Considerad números formateados con códigos de prefijo comunes.

El modelo de IA detecta tres secuencias comunes entre los valores y orienta la solución para reflejar un interés en esta característica:

En esta ocasión, la IA decidió generar una coincidencia de cadena superflua con "13".

Sin embargo, como indica la herramienta, el patrón coincidirá con todos los valores proporcionados.

El patrón puede ajustarse fácilmente en la descripción de texto libre y regenerarse.

Velocidad de inferencia

La asistencia de IA en el Workbench con éxito parcial cualificado puede acelerar la implementación.
Por encima de un umbral de complejidad, un asistente de IA puede deducir propuestas más rápido que el análisis manual.
Considerad el siguiente intento de inferencia de IA con éxito parcial cualificado:

El asistente de IA utiliza tantas filas de datos como puede acomodar en su ventana de contexto de tokens para el procesamiento, omitiendo las filas de datos excedentes.
El número de filas se cuantifica en la salida generada, mostrando cómo se truncaron los datos para la inferencia.
Esto puede ser útil para volver a incluir filas de datos preferidas en la ventana de contexto para un reprocesamiento más refinado.

 

Esfuerzo de entrenamiento

Dirigido a GPU Nvidia Cuda A10 en Huggingface.
Entrenamiento supervisado del modelo.

Etapa Entrenamiento GPU continuo
Conjunto de datos base para prototipo 4 días
Conjunto de datos principal 13 días
Segundo conjunto de datos refinado 2 días

 

Conclusión

La inferencia generativa de un solo disparo (on-shot) con tamaño de token limitado puede acercarse de manera útil a la elegancia de una solución discreta en código, incluso sin procesamiento de cadena de pensamiento, al incorporar el sesgo de expertos en la materia dentro de los datos base de entrenamiento.
Los asistentes de IA pueden participar en flujos de trabajo iterativos para la solución.

 

Explora más

Poned manos a la obra y explorad la demostración tecnológica que actualmente se encuentra alojada en Huggingface.
El icono de engranaje en los botones de la demo indica dónde se está empleando la generación de IA.

La demo está diseñada para audiencias en inglés, francés y español.

1 Comment
Discussion (1)2
Log in or sign up to continue
Article
· Jun 25 3m read

管理ポータルの再下位メニューに対してアクセスを制限する方法

これは InterSystems FAQ サイトの記事です。

管理ポータルのシステム管理やシステムエクスプローラーなど最上位のメニューについては、事前定義ロールをユーザに付与することでアクセスを制限することができます。

最下位のメニュー、例えば [システム管理] > [構成] > [システム構成] > [ネームスペース] などは、事前定義ロールの %Manager を付与されたユーザであれば、全てのユーザが利用できてしまいます。

このページに対して、「%Manager ロールを持っているが、あるユーザは使用でき あるユーザは使用できない」のようにユーザ毎のアクセス制限を追加したい場合は、カスタムリソースを作成し再下位メニューに対して作成したカスタムリソースを付与することで制限を追加することができます。

手順は以下の通りです。

  1. カスタムリソースを任意名で作成する。この時パブリック許可は設定しない。
  2. 管理ポータルの任意の再下位メニューに 1 で作成したカスタムリソースを設定する。
  3. 新規でロールを作成し、1で作成したカスタムリソースに対する USE 許可を設定する。
  4. メニューを利用できるユーザを 3 で作成したロールのメンバーに設定する。

 

具体的な設定の流れは以下の通りです。

1. カスタムリソースを任意名で作成する。この時パブリック許可は設定しない。

管理ポータル > [システム管理] > [セキュリティ] > [リソース] の画面で新規リソースを作成します。

図例では、Restrict リソースをパブリック許可なしで作成しています。

 

2、管理ポータルの任意の再下位メニューに 1 で作成したカスタムリソースを設定する。

図では、管理ポータル > [システム管理] > [構成] > [システム構成] > [ネームスペース] の画面に対してアクセス制限を加えたいため、このメニューに 1 で作成したリソースを設定します。

デフォルトの状態は以下の通りです。

リソースを追加した後は以下の通りです。

 

3、新規でロールを作成し、1で作成したカスタムリソースに対する USE 許可を設定する。

次は、ユーザ毎にアクセスを変えたいため、作成したカスタムリソースの USE 許可を持つロールを作成します。

RestrictedRole ロール作成の流れは以下の通りです。

 

 

4、メニューを利用できるユーザを 3 で作成したロールのメンバーに設定する。

予め、TestM1、TestM2 ユーザを作成しそれぞれに %Manager ロールを付与している状態を作っています。

さらに、3 で作成したロールのメンバーに TestM1 ユーザを追加しています。

 

最後に、設定後の画面表示を確認します。

TestM1 ユーザでログインした場合、[ネームスペース]メニューは利用できますが、TestM2 ユーザは追加設定したカスタムリソースに対する USE 許可を持たないため、メニューにアクセスできないことが確認できました。

Discussion (0)1
Log in or sign up to continue