Artículo Luis Angel Pérez Ramos · ago 29, 2024 4m read

Dos grandes cambios para la herramienta de código abierto TestCoverage: Compatibilidad con Python integrado y una nueva interfaz de usuario.

Python integrado

Anteriormente, TestCoverage solo podía rastrear la cobertura de pruebas unitarias para el código escrito en ObjectScript. Ignoraba el código escrito en otros lenguajes como Python en las estadísticas de cobertura.

 

0
0 104
InterSystems Official Luis Angel Pérez Ramos · ago 26, 2024

La versión 2024.1.3 de InterSystems IRIS Adaptive Analytics ya está disponible en la página de distribución de software de InterSystems.  Esta versión incluye AtScale 2024.1.3 y un archivo actualizado de funciones agregadas definidas por el usuario (UDAF).  Esta versión incluye las siguientes nuevas funciones de modelado y BI:

0
0 57
Artículo Luis Angel Pérez Ramos · ago 23, 2024 1m read

Vamos con nuestro artículo semanal con la predicción de la Quiniela, confiemos que algo más acertada que la hecatombe vivida en la pasada jornada. Veamos cuales son los partidos que entran esta jornada en la Quiniela:

Ahora la predicción para la Primera División:

Y los partidos de Segunda:

Esto nos da la siguiente Quiniela:

Como véis, pocas variantes para esta jornada. ¡Suerte con las apuestas!

0
0 133
InterSystems Official Luis Angel Pérez Ramos · ago 16, 2024

Alerta: Corrupción de Base de Datos en Bases de Datos de Múltiples Volúmenes después de Truncamiento

InterSystems ha corregido un defecto que puede causar corrupción de base de datos o errores <DISKHARD> en bases de datos de múltiples volúmenes en circunstancias extremadamente raras. Solo las bases de datos que han sidotruncated (truncadas) están en peligro.

El defecto existe en los siguientes productos y en cualquier producto de InterSystems basados en ellos:

0
0 66
Artículo Luis Angel Pérez Ramos · ago 14, 2024 1m read

¡Vuelve la liga de fútbol y vuelve la Quiniela! Y fieles a nuestra tradición, aquí tenemos la primera predicción de la Quiniela de la temporada 2024/25.

Veamos los partidos que forman parte de la 1ª jornada de la Quiniela:

Aquí tenemos la predicción generada por QuinielaML para la Primera División:

Y para Segunda División:

Por lo que la Quiniela resultante será la siguiente:

¡Venga! A ver si empezamos con fuerza esta temporada.

¡Mucha suerte a todos!

0
0 112
Pregunta Luis Angel Pérez Ramos · ago 12, 2024

¡Hola estimados miembros de la comunidad!

En esta ocasión no vengo con ningún artículo sino con un problema que me he encontrado al definir una conexión a una tabla ubicada en una base de datos externa en MySQL.

Estoy haciendo algunas pruebas con la funcionalidad de las Foreign Tables incluidas en IRIS que permite incluir tablas externas en modo consulta como si fueran propias de IRIS y he visto que funciona perfectamente con una tabla ubicada en PostgreSQL, el problema ha sido al intentar hacer lo mismo con una tabla de MySQL, he seguido los siguiente pasos como indica la documentación:

1
0 66
Artículo Luis Angel Pérez Ramos · ago 8, 2024 2m read

Me encontré con esta peculiaridad al investigar un problema no relacionado que afecta cómo se manejan los proyectos de Studio en VS Code.

Cuando añadís el nivel superior de la webapp a un %Studio.Project, esto inserta un %Studio.ProjectItem con un sufijo .DIR. Por ejemplo, si Studio o VS Code están conectados al espacio de nombres USER y añadís la webapp /csp/user a un proyecto, el nombre del nuevo ProjectItem es "csp/user.DIR".

0
0 63
Artículo Luis Angel Pérez Ramos · jul 31, 2024 5m read

En el artículo anterior presentábamos la aplicación d[IA]gnosis desarrollada para el soporte a la codificación de diagnósticos en CIE-10. En este veremos como InterSystems IRIS for Health nos proporciona las herramientas necesarias para la generación de vectores a partir de la lista de códigos CIE-10 mediante un modelo pre-entrenado de lenguaje, su almacenamiento y la posterior búsqueda de similitudes sobre todos estos vectores generados.

Introducción

0
0 146
Artículo Luis Angel Pérez Ramos · jul 25, 2024 7m read

Visualización gráfica de tablas

Aquí documentaremos cómo podéis obtener los resultados de vuestra Data Collection para que se muestren gráficamente. La salida de vuestro proyecto se verá así:

image

Tened en cuenta que estoy trabajando en una máquina local. Si vosotros estáis haciendo esto en un servidor, aseguraos de usar la dirección IP correcta.

Primero, importaremos las tres clases que vamos a necesitar (tened en cuenta que las editaremos más tarde):

Podéis tomar el xml e importarlo en vuestro sistema.

La especificación en realidad creará la clase de despacho y la plantilla de implementación. Si estáis interesados en aprender más sobre este proceso, echad un vistazo al excelente artículo de mi colega, Eduard Lebedyuk.

Configurar las APIs

Tened en cuenta que en esta demostración utilizaremos Autorización Básica. También asumimos que ya hay datos en las tablas Sample_DBExpansion_Data.DBAnalysisInfo y Sample_DBExpansion_Data.GlobalAnalysisInfo. Si no los hay, volved a la Colección de Datos y obtened algunos datos.

  1. Primero, vamos a crear un endpoint que nos dará acceso a nuestros datos: image

Rellenad los mismos nombres a menos que planeéis personalizar el código para la aplicación React por vuestra cuenta.

  1. Haced clic en guardar y probemos nuestras APIs. Abrid Postman y enviad la siguiente solicitud (aseguraos de usar la autorización adecuada): image

Nuestra salida debería verse algo así:

{
    "data": [
        {
            "Name": "c:\\intersystems\\irishealth\\mgr\\training\\",
            "Date": "2023-04-30 15:23:58",
            "DBUsedSize": 2010,
            "DBAllocSize": 2060
        },
        {
            "Name": "c:\\intersystems\\irishealth\\mgr\\training\\",
            "Date": "2023-05-01 09:01:42",
            "DBUsedSize": 2010,
            "DBAllocSize": 2060
        },
        {
            "Name": "c:\\intersystems\\irishealth\\mgr\\training\\",
            "Date": "2023-05-03 13:57:40",
            "DBUsedSize": 150,
            "DBAllocSize": 2060
        }
    ]
}

A continuación, enviemos una solicitud GET a http://localhost:52776/Sample/dbAnalysis/globals/all. Comprobad que vuestra respuesta os da una lista de globals cuya información se vea así: (date cuenta de que el nombre se establecerá por defecto al nombre de la clase si el global tiene uno)

        {
            "Name": "someName.cls",
            "UsedMB": 4.2,
            "AllocatedMB": 5.7
        }

Ahora probemos con un global específico, digamos "Errors". Enviad una solicitud GET a http://localhost:52776/Sample/dbAnalysis/global/Errors. Comprobad que vuestra salida es similar a esta:

        {
            "Name": "ERRORS",
            "UsedMB": 0.4,
            "Date": "2023-04-30 15:23:58",
            "AllocatedMB": 0.45
        },
        {
            "Name": "ERRORS",
            "UsedMB": 0.43,
            "Date": "2023-05-01 09:01:42",
            "AllocatedMB": 0.49
        },
        {
            "Name": "ERRORS",
            "UsedMB": 0.1,
            "Date": "2023-05-03 13:57:40",
            "AllocatedMB": 0.13
        }

Y finalmente, enviemos una solicitud GET a http://localhost:52776/Sample/dbAnalysis/globals/table/1000. Esto nos dará el crecimiento de globals, cuya salida canalizaremos en la sección 'Datos Tabulados' de la aplicación React. Tened en cuenta que los 1000 días solo se refieren a cuántos días hacia atrás deberíamos ir. Esto depende completamente de vosotros. Sentíos libres de personalizar esto en el archivo src/components/TableInputBar.js. Buscad la línea <Table timeBack={1000} numGlobals={searchInput}/>. Poned aquí la cantidad de días que deseéis ver hacia atrás en la aplicación React.

Deberíais obtener una respuesta que sea una lista de objetos como esta:

       {
            "Name": "nameOfGlobal",
            "ClassName": "AriTesting.DemoTableElad.cls",
            "OldMB": 0.14,
            "OldDate": "2023-04-30 15:23:58",
            "NewMB": 0.14,
            "NewDate": "2023-05-03 13:57:40",
            "Change": "0"
        }

Dado que todas vuestras solicitudes estaban en orden, ahora podemos crear nuestra aplicación web. Recordad que si no estáis recibiendo las respuestas que esperabais, deberíais retroceder y verificar qué está mal antes de avanzar y crear la aplicación que depende de ellas.

Pasos para crear la aplicación web

  1. Lo primero que haréis es crear una aplicación React genérica. Recordad que necesitaréis tener Node (por lo menos la versión 14) instalado en la máquina local de desarrollo, pero no será necesario en el servidor. Si no lo tenéis instalado, hacedlo aquí. Si no estáis seguros de si lo tenéis instalado, podéis ejecutar este comando desde vuestro terminal:
node --version
  1. Ahora instalaremos una aplicación React genérica y cambiaremos las partes que necesitemos. Esto es tan simple como ejecutar:
npx create-react-app data-collection-graphs
  1. Si es la primera vez que hacéis esto, puede tomar unos minutos. Una vez que esté hecho, tendremos una carpeta que se verá de la siguiente manera: image

  2. Vuestra aplicación React genérica (que personalizaremos) ahora está funcionando. Comprobadlo:

npm start

Deberíais ser redirigidos automáticamente a una pestaña que os muestra lo siguiente (si no, id a http://localhost:3000/): image

  1. Ahora personalicemos según nuestras necesidades. Detened vuestra aplicación desde el terminal con ^C. Descargad la carpeta src desde este repositorio y reemplazad la que se encuentra en vuestro directorio, la cual fue creada automáticamente por nuestros comandos anteriores. Desde el directorio data-collection-graphs, instalad chart.js y react-chartjs-2 de la siguiente manera:
npm install --save chart.js
npm install --save react-chartjs-2

En la carpeta src/components se encuentra el código JavaScript que llama a los puntos finales de la API para obtener datos para el gráfico. Si vuestro servidor no está ejecutándose en localhost:80, entonces debéis cambiar la variable baseUrl (y la autorización básica codificada en base64, si ese es el método de autorización que habéis elegido) en los archivos BarChart.js, DBChart.js, SingleGlobalHistoryChart.js, y TableData.js.

  1. Utilizad npm start para cargar vuestra página, y ahora deberíais obtener la página con vuestros análisis de base de datos.

Nota: Es posible que veáis una página en blanco y, al abrir las herramientas de desarrollo web, veáis un error como este: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:52775/Sample/dbAnalysis/globals/all. (Reason: CORS preflight response did not succeed). Status code: 404.

Si este es el caso, añadid el siguiente método de clase en vuestro archivo generado Sample.DBExpansion.Util.REST.disp.cls:

ClassMethod OnHandleCorsRequest(pUrl As %String) As %Status
{
     //s ^CORS("OnHandleCorsRequest")="Handled"
     #; Get the origin
     Set tOrigin=$Get(%request.CgiEnvs("HTTP_ORIGIN"))
     #; Allow requested origin
     Do ..SetResponseHeaderIfEmpty("Access-Control-Allow-Origin",tOrigin)
     #; Set allow credentials to be true
     Do ..SetResponseHeaderIfEmpty("Access-Control-Allow-Credentials","true")
     #; Allow requested headers
     Set tHeaders=$Get(%request.CgiEnvs("HTTP_ACCESS_CONTROL_REQUEST_HEADERS"))
     Do ..SetResponseHeaderIfEmpty("Access-Control-Allow-Headers",tHeaders)
     #; Allow requested method
     Set tMethod=$Get(%request.CgiEnvs("HTTP_ACCESS_CONTROL_REQUEST_METHOD"))
     Do ..SetResponseHeaderIfEmpty("Access-Control-Allow-Method",tMethod)
     Return $$$OK
}

Como no estamos utilizando autenticación delegada aquí, la solicitud será realizada por el usuario CSPSystem. Esto significa que debemos otorgar al usuario CSPSystem los roles apropiados para las consultas que estamos realizando. Podéis leer más al respecto aquí (o simplemente dar al usuario CSPSystem el rol necesario para leer datos de vuestro espacio de nombres/base de datos).

Con Cross-Origin Resource Sharing (CORS) configurado, después de refrescar la página, deberíais ver cómo los gráficos comienzan a poblarse y verse como lo que vemos en la parte superior de esta página.

Sentíos libres de explorar el código y hacer mejoras o personalizaciones que se adapten mejor a vuestra organización.

Si tenéis alguna sugerencia sobre cómo puedo mejorar esto desde nuestro lado, por favor hacedmelo saber también.

Continuad con el repositorio de análisis de datos aquí.

0
0 112
Artículo Luis Angel Pérez Ramos · jul 24, 2024 4m read

Con la introducción de los tipos de datos vectoriales y la funcionalidad de Vector Search en IRIS se nos abre todo un mundo de posibilidades para el desarrollo de aplicaciones y un ejemplo de estas aplicaciones es la que vi reciéntemente publicada un concurso público de la Consejería de Sanidad de Valencia en la que solicitaban una herramienta para ayudar en la codificación CIE-10 utilizando modelos de IA.

¿Cómo podríamos implementar una aplicación similar a la solicitada? Veamos que necesitaríamos:

6
0 211
Artículo Luis Angel Pérez Ramos · jul 11, 2024 2m read

¡Hola!

Recientemente he estado investigando una situación molesta mientras editaba clases o rutinas ObjectScript en VSCode.
Lo que me estaba pasando era que, como yo estaba escribiendo en las líneas de código en mi clase (por ejemplo: la adición de un nuevo método; el cambio de la firma de la clase; o de un bloque de código), esto hacía que rápidamente la sintaxis fuera revisada, reformateada y compilada  - e inevitablemente, (ya que estaría a la mitad de mi escritura), esto generaba errores de compilación.

0
0 191
Artículo Luis Angel Pérez Ramos · jun 27, 2024 7m read

Por defecto, todos los archivos creados dentro de un contenedor se almacenan en una capa writable del contenedor. Esto significa que:

  • Los datos no persisten cuando ese contenedor ya no existe, y puede ser difícil extraer los datos del contenedor si otro proceso los necesita.
  • La capa writable (en la que se puede escribir) de un contenedor está estrechamente ligada a la máquina anfitriona donde se está ejecutando el contenedor. No se puede mover fácilmente los datos a otro lugar.
0
0 293
Artículo Luis Angel Pérez Ramos · jun 18, 2024 6m read

Recogida de datos

Esta es una guía de instrucciones paso a paso para crear una tarea que recopile datos sobre la base de datos InterSystems y los globales que contiene (como se ve en la Open Exchange App asociada - encontrad todo el código asociado allí).

Descargo de responsabilidad: Este software es meramente para fines de PRUEBA/DEMO. Este código no está soportado por InterSystems como parte de ningún producto. InterSystems lo suministra como herramienta de demostración/prueba para un producto y versión específicos. El usuario o cliente es totalmente responsable del mantenimiento y prueba de este software después de la entrega, e InterSystems no tendrá ninguna responsabilidad por errores o mal uso de este código.

  1. En primer lugar, importad el archivo «DataCollection.xml» a través del portal de gestión y aseguraos de que no hay errores. Si los hubiera, podría tratarse de una cuestión de versiones. Poneos en contacto con Ari Glikman en ari.glikman@intersystems.com para que os ayude a obtener una versión adecuada para vosotros. Además, aseguraos de que importáis los datos en el espacio de nombres cuyos datos internos queréis recopilar para su posterior inspección.

  2. Una vez finalizada la importación, deberíais ver el paquete Sample/Muestra con varios subpaquetes también

image

Si un paquete de Sample/Muestra ya está presente en vuestro servidor, entonces todavía debéis ver los nuevos subpaquetes junto con cualquier otra carpeta que estaban previamente allí.

  1. Ahora es el momento de ejecutar las pruebas unitarias para asegurarse de que todo funciona correctamente.

a. Cread una carpeta llamada Unit Tests que pueda ser leída por vuestro Terminal InterSystems, por ejemplo, como yo tengo una instalación local, haré una carpeta en mi disco C.

FolderStructure

b. En esta carpeta exportaremos ahora la clase Sample.DBExpansion.Test.CaptureTest como un fichero xml.

image

c. En el terminal estableced el global ^UnitTestRoot = “<< carpeta en la que está Unit Tests>>”.. Según el ejemplo anterior, sería (tened en cuenta que debe estar en el mismo espacio de nombres donde importasteis el paquete) C:\ (a tener en cuenta que no es “C:\Unit Tests” !)

set ^UnitTestRoot = "C:\"

d. Por último, ejecutamos las pruebas unitarias. Hacedlo ejecutando la siguiente línea de código desde el terminal:

do ##class(Sample.DBExpansion.Test.TestManager).RunTest("Unit Tests", "/noload/nodelete")

Esencialmente le estamos diciendo al programa que ejecute todas las pruebas que se encuentran en la carpeta C:\Unit Tests. Por el momento sólo tenemos un archivo allí, el creado en 3.b.

La salida debería ser la siguiente

UnitTestOutput

Si las pruebas unitarias no pasan, entonces el programa no está listo para ejecutarse. No continuéis con los siguientes pasos hasta que obtengáis una salida que diga que todas las pruebas han pasado.

  1. ¡Felicidades! Ahora es el momento de construir la tarea. Para ello

a. Abrid el portal de gestión e id a Operación del Sistema > Gestor de Tareas > Nueva Tarea

*Tened en cuenta que vuestro usuario debe tener acceso al espacio de nombres %SYS, de lo contrario la tarea se ejecutará pero no recopilará ningún dato.

NewTask

Ahora se os darán varios campos para rellenar en cuanto a la tarea que queréis crear. Deberéis elegir el espacio de nombres en el que importasteis el paquete y dar un nombre a la tarea. Deberéis dar una descripción para futuras referencias. Lo ideal es dejar la casilla de verificación rápida sin marcar, esto significa que la tarea se ejecutará más lentamente pero recogerá datos más completos. Si tarda demasiado en ejecutarse (depende de lo grande que sea la base de datos y sus globales) entonces quizás sea mejor marcar aquí y optar por una tarea más rápida. HowManyGlobals indica cuántos datos globales deben recopilarse: -1 indica todos los datos globales y es la opción recomendada. Seleccionad Siguiente, elegid con qué frecuencia debe ejecutarse la tarea y pulsad Finalizar.

Recording 2023-05-10 at 7 10 32 PM

b. Aparecerá el Calendario de Tareas, donde podréis ver cuándo están programadas todas las tareas, incluida la recién creada. Si además deseáis ejecutarla ahora, seleccionad Ejecutar en la parte derecha.

Seleccionad el Historial de Tareas para asegurar que se ha creado correctamente. Después de ejecutar la tarea deberíais ver que también se ha ejecutado correctamente. En caso contrario, aparecerá un error.

Esta tarea creará dos tablas:

Sample_DBExpansion_Data.DBAnalysisInfo.

Esta tabla va a almacenar datos sobre la propia base de datos. Nos referimos a esto como «metadatos». La información que almacena se puede ver en la siguiente imagen. La Bandera Rápida indicará la selección elegida en 4.a.

DBTable

Sample_DBExpansion_Data.GlobalAnalysisInfo

Esto contendrá la información relativa a los globales en la base de datos. Observad que si hay un nombre de clase asociado al global, lo veremos aquí junto con su tamaño. Por último, observad que el campo MetaDataID corresponde al campo ID de la tabla Sample_DBExpansion_Data.DBAnalysisInfo. Esto quiere decir que en el momento en que se capturó la información de la base de datos, se capturó su correspondiente información global y comparten este número identificativo (son los globales de la base de datos en ese momento). Es una forma de ver cómo evolucionan en el tiempo los globales de una base de datos y la propia base de datos.

GLOBALTABLE

  1. A continuación, la interfaz de usuario es un poco más bonita.

Recording_2023-05-23_at_2_03_45_PM_AdobeExpress

Muestra información sobre el global y la base de datos que aparecen en la tabla de una manera más digerible. Hay 3 gráficos: uno que muestra la historia de los datos, el segundo que muestra los tamaños históricos de un global elegido, ya sea a través del desplegable o de una búsqueda, y por último hay una visión general de todos los tamaños globales. En la parte inferior hay una tabla donde se introduce cuántos globales se quieren mostrar y los presenta ordenados por tamaño. La columna %Change está resaltada en amarillo para un cambio mínimo de tamaño, en verde para una disminución de tamaño y en rojo para un aumento significativo de tamaño.

Encontraréis instrucciones paso a paso sobre cómo configurarlo aquí.

Si no os interesan los gráficos, continuad con el análisis de datos aquí.

Docker

Prerrequisitos

Aseguraos de tener git y Docker desktop instalados.

Instalación

Clone/git pull el repo en cualquier directorio local

$ git clone https://github.com/rcemper/PR_DataCollection.git
$ docker compose up -d && docker compose logs -f

Inicio del contenedor
cread el directorio apropiado «/home/irisowner/dev/Unit Tests»
estableced ^UnitTestRoot = «/home/irisowner/dev/»

Para abrir el Terminal IRIS:

$ docker-compose exec iris iris session iris
USER>

o utilizando WebTerminal.
http://localhost:42773/terminal/

Para acceder al portal de gestión del sistema IRIS
http://localhost:42773/csp/sys/UtilHome.csp

Para acceder a UnitTestPortal http://localhost:42773/csp/sys/%25UnitTest.Portal.Indices.cls?$NAMESPACE=USUARIO

0
0 199
Artículo Luis Angel Pérez Ramos · jun 6, 2024 1m read

¡A ver si os pensábais que la Quiniela descansaba! Ni mucho menos, nuestro querido Estado rebuscará los partidos de futbol de las ligas más inverosímiles para poder seguir recaudando semanalmente el diezmo debido.

Para la 60ª jornada de la Quiniela tendremos partidos amistosos internacionales y la 29ª jornada de la liga femenina de fútbol, que hemos podido introducir en QuinielaML sin el más mínimo problema.

Estos son los partidos de la Quiniela:

Y estas son las estimaciones para la 1ª femenina:

Y los amistosos internacionales:

Por lo que nos quedará la siguiente Quiniela:

Suerte a todos.

1
0 118
Artículo Luis Angel Pérez Ramos · mayo 29, 2024 3m read

La mayoría de los ejemplos que he visto hasta ahora en OEX o DC dejan la impresión de que los VECTORES son sólo algo disponible con SQL con las 3 Funciones especialmente alrededor de VECTOR_Search.
* TO_VECTOR()
* VECTOR_DOT_PRODUCT ()
* VECTOR_COSINE ()

Hay un resumen muy útil escondido en el paquete de demostración iris-vector-search.
Desde allí encontraréis todo lo que necesitáis en varios enlaces y rincones.

0
0 87
Artículo Luis Angel Pérez Ramos · mayo 17, 2024 1m read

¡Se nos agotan las oportunidades para hacernos millonarios! En la pasada jornada nos quedamos nuevamente con 9 aciertos...a ver si instauran el premio por "casi 10", que nos lo tenemos sobradamente ganado.

Veamos la jornada de este fin de semana correspondiente a la 37ª jornada de Primera División y a la 40ª de Segunda.

Veamos las predicciones de la Primera División:

Y ahora la Segunda División:

Esto nos da la siguiente Quiniela

¡Suerte y buen fin de semana a todos!

2
0 122
Artículo Luis Angel Pérez Ramos · mayo 16, 2024 3m read

Revisando los diferentes artículos que he ido publicando he caído en la cuenta de que me faltaba explicar una funcionalidad bastante práctica dentro de nuestro EMPI (Enterprise Master Patient Index) y no es otra que la notificación de altas y vinculaciones a sistemas externos al EMPI.

0
0 82
Artículo Luis Angel Pérez Ramos · mayo 13, 2024 1m read

Volvemos con las predicciones de la Quiniela que, desafortunadamente, no pudimos publicar el pasado viernes (mea culpa, mea maxima culpa).

Esta jornada es algo atípica al disputarse el miércoles e incluir partidos de Primera División, Premier League y Ligue 1. Veamos los partidos que entran esta jornada:

Veamos la estimación para la Primera División:

Para la Premier League:

Y finalmente para Ligue 1:

Esto nos da la siguiente Quiniela:

¡Mucha suerte a todos!

1
0 158
Artículo Luis Angel Pérez Ramos · mayo 8, 2024 2m read

Hola a todos,

Cuando estamos diseñando un BP que necesita ser reutilizado, a menudo necesitamos desarrollar un componente con un objeto <call> configurable, donde establecemos el destino de la llamada al objeto.

@process.TargetConfigName

Sí, se puede lograr.

Aquí está el código completo:

2
0 119
Artículo Luis Angel Pérez Ramos · mayo 3, 2024 6m read

En nuestro artículo anterior presentábamos los conceptos generales así como la problemática que queríamos resolver mediante el uso del motor de tareas integrado en InterSystems IRIS, en el artículo de hoy veremos como configuramos una producción de interoperabilidad para proveer una solución.

Configuración del motor de Workflow

Primeramente vamos a definir los roles de las tareas que vamos a manejar, en nuestro ejemplo vamos a definir dos tipos:

0
0 170
Artículo Luis Angel Pérez Ramos · mayo 2, 2024 1m read

Aquí estamos nuevamente con una nueva jornada de la Quiniela, jornada 34ª de Primera División y 38ª de Segunda. La pasada jornada nos quedamos con la miel en los labios con 9 aciertos, así que habrá que resarcirse esta jornada. Estos son los partidos que entran para esta jornada:

Estás son las predicciones para la Primera División:

Y para Segunda División:

Esto nos deja la Quiniela así:

Sospechosamente favorable a los partidos en casa...no sé no sé, mantengamos la fe.

¡Mucha suerte a todos!

2
0 209
Artículo Luis Angel Pérez Ramos · abr 29, 2024 6m read

Desde hace un tiempo tenía pendiente hacer algún tipo de prueba de concepto con la funcionalidad de Workflow, la cual, como tantas otras funcionalidades presentes en IRIS, suele pasar bastante desapercibida para nuestros clientes (y por lo cual entono el mea culpa). Por ello me decidí hace unos días a desarrollar un ejemplo de cómo configurar y explotar esta funcionalidad conectándola con una interfaz de usuario desarrollada en Angular.

0
1 176
Artículo Luis Angel Pérez Ramos · abr 26, 2024 1m read

Como ya viene siendo habitual, aquí tenemos una nueva jornada de la Quiniela, la 54ª, 33ª de Primera División y 37ª de Segunda División.

Estos son los partidos que la conforman:

Veamos que nos cuenta QuinielaML para Primera División:

Y para Segunda División:

Esto nos da la siguiente Quiniela:

¡Suerte y buen fin de semana!

3
0 144
Artículo Luis Angel Pérez Ramos · abr 19, 2024 1m read

Otra jornada más con la predicción de la Quiniela, esta jornada correspondiente a la 32ª de Primera División y a la 36ª de Segunda.

Estos son los partidos que entran esta jornada:

Aquí tenemos la predicción de Primera División:

Y aquí la de Segunda:

Lo que nos deja la siguiente Quiniela:

Pues ya lo tenéis, ¡mucha suerte a todos!

1
0 170
Artículo Luis Angel Pérez Ramos · abr 12, 2024 1m read

Volvemos a la Quiniela habitual con partidos correspondientes a la 31ª jornada de Primera División y la 35º de Segunda. Así que veamos que partidos entran en esta jornada.

Las predicciones para la Primera División son las siguientes:

Y para Segunda:

Por lo que nos queda la siguiente Quiniela:

¡Mucha suerte a todos y buen fin de semana!

0
0 151
Artículo Luis Angel Pérez Ramos · abr 4, 2024 1m read

Nueva jornada atípica de la Quiniela por la final de la Copa del Rey que lleva al parón de Primera División. Para esta jornada entran los partidos de Segunda División y de la Premier League así como la final de la Copa del Rey como Pleno al 15.

Veamos la Quiniela de la jornada:

Veamos que nos cuenta IntegratedML para Segunda División:

Y para la Premier:

Y finalmente la Copa del Rey:

Esto nos dará la siguiente Quiniela:

0
0 150
Artículo Luis Angel Pérez Ramos · abr 2, 2024 8m read

En este artículo, cubriremos los siguientes temas:

  • ¿Qué es Kubernetes?
  • Componentes principales de Kubernetes (K8)


¿Qué es Kubernetes?

Kubernetes es un marco de orquestación de contenedores de código abierto desarrollado por Google. En esencia, controla la velocidad de los contenedores y ayuda a gestionar aplicaciones formadas de varios contenedores. Además, le permite operarlos en diferentes entornos, por ejemplo, máquinas físicas, máquinas virtuales, entornos de nube o incluso entornos de implementación híbridos.


¿Qué problemas soluciona?

0
0 131