Artículo Luis Angel Pérez Ramos · nov 28, 2023 6m read

En este artículo vamos a ver como podemos utilizar el servicio de mensajería instantanea de WhatsApp desde InterSystems IRIS para enviar mensajes a diferentes destinatarios. Para ello deberemos crear y configurar una cuenta en Meta y configurar un Business Operation para enviar los mensajes que deseemos.

Veamos con más detalle cada uno de estos pasos.

Configurando una cuenta en Meta

Este es posiblemente el punto más enrevesado de toda la configuración, ya que deberemos configurar una serie de cuentas hasta poder disponer de la funcionalidad de mensajería.

0
0 167
Artículo Luis Angel Pérez Ramos · nov 28, 2023 1m read

Seguimos fieles a nuestra cita de los viernes con la predicción de la Quiniela. Jornada 24ª de la quiniela que coincide con la 15ª de Primera División y la 18ª de Segunda.

Veamos la Quiniela de esta semana:

Predicciones para Primera División:

Y para Segunda:

Esto nos daría la siguiente apuesta simple:

Si queréis introducir apuestas con dobles, según los porcentajes dados para cada partido nos daría que los partidos más dudosos son:

Mallorca - Alavés: 1X

Sevilla - Villarreal: 1X

Racing de Ferrol - Albacete: 1X

Pues ya tendríamos la apuesta para la jornada, ¡mucha suerte para todos!

2
0 199
Artículo Luis Angel Pérez Ramos · nov 24, 2023 1m read

¡Ni Black Friday ni inventos! Nosotros seguimos empeñados con nuestro QuinielaML Friday. Y aquí tenemos una semana más las predicciones, en este caso para la 22ª jornada de la Quiniela, correspondiente a la 14ª jornada de Primera División y  a la 17ª de Segunda.

Estos serán los partidos a predecir:

Veamos que nos dice QuinielaML para Primera División:

Como vemos no hay nada que se salga fuera de la norma, quizás podemos destacar la poca confianza que tiene en el Betis...

Y ahora la Segunda División:

1
0 130
Artículo Luis Angel Pérez Ramos · nov 22, 2023 3m read

Introducción

A InterSystems le gustaría optimizar IRIS para aprovechar las modernas extensiones del conjunto de instrucciones de la CPU.  Eso está genial para el rendimiento del producto, pero ¿cómo sabéis si vuestra CPU seguirá siendo compatible con las nuevas versiones de IRIS? En este artículo os explico cómo saber la familia de microarquitectura de la CPU, y cómo averiguar las extensiones específicas del conjunto de instrucciones de la CPU.

0
0 90
Artículo Luis Angel Pérez Ramos · nov 17, 2023 1m read

¿Pensábais que no habría este viernes predicción de la Quiniela por no haber partidos de Primera División? ¡Pues estáis muy equivocados! Gracias a la modularidad y sencillez que proporciona InterSystems IRIS hemos incluido los datos relativos a los partidos de clasificación de la Eurocopa, así que veamos cual será la Quiniela de esta jornada.

Vamos a ver cual es la predicción para la Segunda División:

Echemos un vistazo ahora a la predicción de los partidos de clasificación para la Eurocopa 2024:

Así que nos queda una Quiniela tal que así:

Pues listo. Alea jacta est.

1
0 139
Artículo Luis Angel Pérez Ramos · nov 9, 2023 1m read

Aquíe estamos una jornada más, tras 2 jornadas con 10 aciertos afrontamos la 20ª jornada de la Quiniela, 13ª jornada de Primera División y 15ª de Segunda.

Veamos cuales son los partidos que entran en la Quiniela:

 

Previsiones para Primera División:

Segunda División:

Así quedaría reflejado en la Quiniela*:

* ¡Ojo! El partido Mallorca - Cádiz ha sido aplazado y seguramente sea resuelto mediante sorteo.

¡Mucha suerte a todos!

3
0 174
Artículo Luis Angel Pérez Ramos · nov 4, 2023 5m read

Recientemente me comentaron sobre la necesidad de monitorizar desde HealthConnect los registros presentes en una base de datos NoSQL en el Cloud, más en concreto Cloud Firestore, desplegada en Firebase. Con un rápido vistazo pude ver lo sencillo que resultaría crear un Adapter ad-hoc para realizar la conexión aprovechando las capacidades de Embedded Python, así que me puse manos a la obra.

Preparando el entorno

0
0 94
Artículo Luis Angel Pérez Ramos · nov 2, 2023 1m read

Después del éxito de la pasada jornada en la que QuinielaML acertó 10 resultados y obteniendo un premio de 10€ volvemos una jornada más, ¡dispuestos a reinvertir las ganancias!

Veamos los partidos de esta jornada:

Ahora las predicciones para los partidos de 1ª División:

Y para 2ª:

Así que nos quedaría una Quiniela tal que así:

Pues tenemos unos cuantos partidos dudosos, con ambos equipos rondando el 35% de posibilidades, esta jornada va a ser complicada.

¡Mucha suerte a todos!

2
0 188
Artículo Luis Angel Pérez Ramos · oct 27, 2023 1m read

¿No pensaríais que nos íbamos a quedar sin predicciones de la quiniela para este fin de semana, no? ¡Y menos en la jornada del clásico! Aquí estamos una jornada más exprimiendo las capacidades de InterSystems IRIS.

Veamos cual es la quiniela de esta jornada:

Y nuestras predicciones para Primera División:

Y Segunda División:

Pues así nos quedaría la Quiniela:

Sin una sóla victoria fuera de casa y plagado de empates...cuando menos ha quedado curiosa.

Pues nada, ¡suerte a todos!

3
0 130
Artículo Luis Angel Pérez Ramos · oct 25, 2023 6m read

En el artículo anterior vimos cómo podíamos recuperar un recurso almacenado en la base de datos de nuestro HIS particular así que hoy veremos cómo podemos añadir nuevos registros en nuestro HIS cuyo origen es un recurso FHIR que recibamos en nuestro sistema.

Operaciones CRUD con FHIR

0
1 139
Artículo Luis Angel Pérez Ramos · oct 20, 2023 1m read

Nuevo viernes y nueva predicción de la Quiniela.

Como anunciamos ayer, QuinielaML ha mejorado en su modelo de predicciones restándole peso a los resultados históricos, ¡veamos si es cierto!

Esta es la Quiniela de esta jornada:

Las predicciones para Primera División serán:

Y para Segunda División:

Esto nos dejaría la siguiente predicción:

Suerte a todos ¡y sobretodo a mi!

2
0 131
Anuncio Luis Angel Pérez Ramos · oct 19, 2023

¡Como lo oís! QuinielaML ha incorporado en su servicio de predicciones a las ligas más importantes de Europa (y Brasil) así que, estimados miembros de la Comunidad de Desarrolladores, seais de donde seais, podréis tener a vuestra disposición las predicciones de vuestras ligas favoritas.

Desde la pantalla de predicciones tendréis acceso a cada una de las nueva ligas incluidas, pudiendo registrar los partidos de cada jornada:

2
0 87
Artículo Luis Angel Pérez Ramos · oct 16, 2023 10m read

Retomamos nuestra serie de artículos sobre la herramienta de FHIR Adapter disponible para los usuarios de HealthShare HealthConnect e InterSystems IRIS.

En los artículos anteriores hemos presentado la pequeña aplicación sobre la que montamos nuestro workshop y mostramos la arquitectura desplegada en nuestra instancia de IRIS tras instalar FHIR Adapter. En el artículo de hoy veremos un ejemplo de como podemos realizar una de las operaciones CRUD (Create - Read - Update - Delete) más comunes, la lectura, y lo haremos recuperando un Resource.

¿Qué es un Resource?

0
1 171
Artículo Luis Angel Pérez Ramos · oct 11, 2023 4m read

Volvemos al ataque con nuestro ejemplo de uso de FHIR Adapter, en este artículo vamos a revisar como podemos configurarlo en nuestras instancias de IRIS y cual es el resultado de la instalación.

Los pasos realizados para la configuración del proyecto son los mismos que indica la documentación oficial, podéis revisarlos directamente aquí. Pues bien, ¡manos a la obra!

Instalación

0
1 146
Artículo Luis Angel Pérez Ramos · oct 11, 2023 12m read

¡Hola Comunidad!

Este es el tercer artículo de la serie sobre arranque de instancias de IRIS con Docker. En esta publicación nos centraremos en el Enterprise Caché Protocol (ECP) o Protocolo de Caché Empresarial.

De manera muy simplificada, ECP permite configurar algunas instancias de IRIS como servidores de aplicaciones y otras como servidores de datos. Encontraréis más información técnica detallada en la documentación oficial.

El objetivo de este artículo es describir:

  • Cómo escribir el script de arranque de un servidor de datos y de uno o más servidores de aplicaciones.
  • Cómo establecer una conexión cifrada entre estos nodos con Docker.

Para hacerlo, generalmente utilizamos algunas de las herramientas que ya hemos visto en artículos anteriores sobre web gateway y mirroring, que describen instrumentos como OpenSSL, envsubst y Config-API.

Requisitos

ECP no está disponible en la versión Community de IRIS. Por lo tanto, se requiere acceso al World Response Center (WRC) para descargar una licencia de contenedor y conectarse al registro de contenedores en containers.intersystems.com.

Preparando el sistema

El sistema debe compartir algunos archivos locales con los contenedores. Es necesario crear ciertos usuarios y grupos para evitar el error "access denied" (acceso denegado).

sudo useradd --uid 51773 --user-group irisowner
sudo useradd --uid 52773 --user-group irisuser
sudo groupmod --gid 51773 irisowner
sudo groupmod --gid 52773 irisuser

Si aún no tenéis la licencia "iris.key", podéis descargarla desde el WRC y añadirla a vuestro directorio principal.

Obtener el repositorio de muestra

Todos los archivos que se necesitan están disponibles en un repositorio público, excepto la licencia "iris.key", así que hay que comenzar clonándola:

git clone https://github.com/lscalese/ecp-with-docker.git
cd ecp-with-docker

Certificados SSL

Para encriptar las comunicaciones entre los servidores de aplicaciones y el servidor de datos, necesitamos certificados SSL. Un script listo para usar ("gen-certificates.sh") está disponible. Sin embargo, podéis modificarlo libremente para que los ajustes del certificado sean consistentes con vuestra ubicación, empresa, etc.

Ejecutad:

sh ./gen-certificates.sh

Los certificados generados ahora se encuentran en el directorio "./certificates".

ArchivoContenedorDescripción
./certificates/CA_Server.cerServidor de aplicaciones y servidor de datosCertificado del servidor de autoridad
./certificates/app_server.cerServidor de aplicacionesCertificado para la instancia del servidor de aplicaciones de IRIS
./certificates/app_server.keyServidor de aplicacionesClave privada correspondiente
./certificates/data_server.cerServidor de datosCertificado para la instancia del servidor de datos de IRIS
./certificates/data_server.keyServidor de datosClave privada correspondiente

Construcción de la imagen

En primer lugar, iniciad sesión en el registro de Docker de InterSystems. La imagen base se descargará del registro durante la ejecución del comando build:

docker login -u="YourWRCLogin" -p="YourICRToken" containers.intersystems.com

Si no conocéis vuestro token, iniciad sesión en https://containers.intersystems.com/ con vuestra cuenta del WRC.

Durante la ejecución del build, añadiremos algunas utilidades de software a la imagen base de IRIS:

  • gettext-base: nos permitirá sustituir variables de entorno en nuestros archivos de configuración utilizando el comando "envsubst".
  • iputils-arping: se requiere en caso de que queramos hacer un mirror del servidor de datos.
  • ZPM: administrador de paquetes de ObjectScript.

Dockerfile:

ARG IMAGE=containers.intersystems.com/intersystems/iris:2022.2.0.281.0

# Don't need to download the image from WRC. It will be pulled from ICR at build time.

FROM $IMAGE

USER root

# Install iputils-arping to have an arping command.  It's required to configure Virtual IP.
# Download the latest ZPM version (ZPM is included only with community edition).
RUN apt-get update && apt-get install iputils-arping gettext-base && \
   rm -rf /var/lib/apt/lists/*

USER ${ISC_PACKAGE_MGRUSER}

WORKDIR /home/irisowner/demo

RUN --mount=type=bind,src=.,dst=. \
   iris start IRIS && \
       iris session IRIS < iris.script && \
   iris stop IRIS quietly

No hay nada especial en este Dockerfile, excepto la última línea. Configura la instancia del servidor de datos de IRIS para aceptar hasta 3 servidores de aplicaciones. Tened en cuenta que esta configuración requiere reiniciar IRIS. Asignamos el valor de este parámetro durante la ejecución del comando build para evitar tener que reiniciar posteriormente.

Ejecutar el comando build:

docker-compose build –no-cache

Archivos de configuración

Para la configuración de las instancias de IRIS (servidores de aplicaciones y servidor de datos), utilizamos el formato JSON del archivo Config-API. Notaréis que estos archivos contienen variables de entorno "${variable_name}". Sus valores se definen en las secciones "environment" del archivo "docker-compose.yml" que veremos más adelante en este documento. Estas variables se sustituirán justo antes de cargar los archivos utilizando la utilidad "envsubst".

Servidor de datos

Para el servidor de datos, haremos lo siguiente:

  • Habilitar el servicio ECP y definir la lista de clientes autorizados (servidores de aplicaciones).
  • Crear la configuración "SSL %ECPServer" necesaria para encriptar las comunicaciones.
  • Crear una base de datos llamada "myappdata". Esta base de datos se utilizará como base de datos remota desde los servidores de aplicaciones.

(data-serer.json)[https://github.com/lscalese/ecp-with-docker/blob/master/config-files/data-server.json]

{
   "Security.Services" : {
       "%Service_ECP" : {
           "Enabled" : true,
           "ClientSystems":"${CLIENT_SYSTEMS}",
           "AutheEnabled":"1024"
       }
   },
   "Security.SSLConfigs": {
       "%ECPServer": {
           "CAFile": "${CA_ROOT}",
           "CertificateFile": "${CA_SERVER}",
           "Name": "%ECPServer",
           "PrivateKeyFile": "${CA_PRIVATE_KEY}",
           "Type": "1",
           "VerifyPeer": 3
       }
   },
   "Security.System": {
       "SSLECPServer":1
   },
   "SYS.Databases":{
       "/usr/irissys/mgr/myappdata/" : {}
   },
   "Databases":{
       "myappdata" : {
           "Directory" : "/usr/irissys/mgr/myappdata/"
       }
   }
}

Este archivo de configuración se carga al inicio del contenedor del servidor de datos mediante el script "init_datasrv.sh". Todos los servidores de aplicaciones conectados al servidor de datos deben ser confiables. Este script validará automáticamente todas las conexiones dentro de los 100 segundos para limitar las acciones manuales en el portal de administración. Por supuesto, esto se puede mejorar para aumentar la seguridad.

Servidor de aplicaciones

Para los servidores de aplicaciones, realizaremos lo siguiente:

  • Habilitar el servicio ECP.
  • Crear la configuración SSL "%ECPClient" requerida para el cifrado de la comunicación.
  • Configurar la información de conexión con el servidor de datos.
  • Crear la configuración de la base de datos remota "myappdata".
  • Crear un mapeo global "demo.*" en el namespace "USER" hacia la base de datos "myappdata". Esto nos permitirá probar el funcionamiento de ECP posteriormente.

app-server.json:

{
   "Security.Services" : {
       "%Service_ECP" : {
           "Enabled" : true
       }
   },
   "Security.SSLConfigs": {
       "%ECPClient": {
           "CAFile": "${CA_ROOT}",
           "CertificateFile": "${CA_CLIENT}",
           "Name": "%ECPClient",
           "PrivateKeyFile": "${CA_PRIVATE_KEY}",
           "Type": "0"
       }
   },
   "ECPServers" : {
       "${DATASERVER_NAME}" : {
           "Name" : "${DATASERVER_NAME}",
           "Address" : "${DATASERVER_IP}",
           "Port" : "${DATASERVER_PORT}",
           "SSLConfig" : "1"
       }
   },
   "Databases": {
       "myappdata" : {
           "Directory" : "/usr/irissys/mgr/myappdata/",
           "Name" : "${REMOTE_DB_NAME}",
           "Server" : "${DATASERVER_NAME}"
       }
   },
   "MapGlobals":{
       "USER": [{
           "Name" : "demo.*",
           "Database" : "myappdata"
       }]
   }
}

El archivo de configuración se carga al iniciar un contenedor del servidor de aplicaciones mediante el script "init_appsrv.sh".

Iniciar los contenedores

Ahora podemos iniciar los contenedores:

  • 2 servidores de aplicaciones.
  • 1 servidor de datos.

Para hacer esto, hay que ejecutar:

docker-compose up –scale ecp-demo-app-server=2

Podéis consultar el archivo docker-compose para obtener más detalles:

# Variables are defined in .env file
# to show the resolved docker-compose file, execute
# docker-compose config

version: '3.7'

services:
  ecp-demo-data-server:
   build: .
   image: ecp-demo
   container_name: ecp-demo-data-server
   hostname: data-server
   networks:
     app_net:
   environment:
     # List of allowed ECP clients (application server). 
     - CLIENT_SYSTEMS=ecp-with-docker_ecp-demo-app-server_1;ecp-with-docker_ecp-demo-app-server_2;ecp-with-docker_ecp-demo-app-server_3
     # Path authority server certificate
     - CA_ROOT=/certificates/CA_Server.cer
     # Path to data server certificate
     - CA_SERVER=/certificates/data_server.cer
     # Path to private key of the data server certificate
     - CA_PRIVATE_KEY=/certificates/data_server.key
     # Path to Config-API file to initiliaze this IRIS instance
     - IRIS_CONFIGAPI_FILE=/home/irisowner/demo/data-server.json
   ports:
     - "81:52773"
   volumes:
     # Post start script - data server initilization.
     - ./init_datasrv.sh:/home/irisowner/demo/init_datasrv.sh
     # Mount certificates (see gen-certificates.sh to generate certificates)
     - ./certificates/app_server.cer:/certificates/data_server.cer
     - ./certificates/app_server.key:/certificates/data_server.key
     - ./certificates/CA_Server.cer:/certificates/CA_Server.cer
     # Mount config file
     - ./config-files/data-server.json:/home/irisowner/demo/data-server.json
     # IRIS License
     - ~/iris.key:/usr/irissys/mgr/iris.key
   command: -a /home/irisowner/demo/init_datasrv.sh


 ecp-demo-app-server:
   image: ecp-demo
   networks:
     app_net:
   environment:
     # Hostname or IP of the data server.
     - DATASERVER_IP=data-server
     - DATASERVER_NAME=data-server
     - DATASERVER_PORT=1972
     # Path authority server certificate
     - CA_ROOT=/certificates/CA_Server.cer
     - CA_CLIENT=/certificates/app_server.cer
     - CA_PRIVATE_KEY=/certificates/app_server.key
     - IRIS_CONFIGAPI_FILE=/home/irisowner/demo/app-server.json
   ports:
     - 52773
   volumes:
     # Post start script - application server initilization.
     - ./init_appsrv.sh:/home/irisowner/demo/init_appsrv.sh
     # Mount certificates
     - ./certificates/CA_Server.cer:/certificates/CA_Server.cer
     # Path to private key of the data server certificate
     - ./certificates/app_server.cer:/certificates/app_server.cer
     # Path to private key of the data server certificate
     - ./certificates/app_server.key:/certificates/app_server.key
     # Path to Config-API file to initiliaze this IRIS instance
     - ./config-files/app-server.json:/home/irisowner/demo/app-server.json
     # IRIS License
     - ~/iris.key:/usr/irissys/mgr/iris.key
   command: -a /home/irisowner/demo/init_appsrv.sh
 networks:
 app_net:
   ipam:
     driver: default
     config:
       # APP_NET_SUBNET variable is defined in .env file
       - subnet: "${APP_NET_SUBNET}"

¡Vamos a probarlo!

Acceso al portal de administración del servidor de datos

Los contenedores se han iniciado. Vamos a verificar el estado desde el servidor de datos.
El puerto 52773 está mapeado al puerto local 81, por lo que se puede acceder a él con esta dirección http://localhost:81/csp/sys/utilhome.csp.

Iniciad sesión con el nombre de usuario y contraseña predeterminados, luego hay que ir a System -> Configuration -> ECP Params. Haced clic en "ECP Application Servers". Si todo funciona correctamente, deberíais ver 2 servidores de aplicaciones con el estado "Normal". La estructura del nombre del cliente es "data server name":"application server hostname":"IRIS instance name". En nuestro caso, no hemos configurado los nombres de los servidores de aplicaciones, por lo que se han generado automáticamente.

Lista de servidores de aplicaciones

Acceder al portal de administración del servidor de aplicaciones

Para conectarse al portal de administración de los servidores de aplicaciones, hay que obtener el número de puerto. Como utilizamos la opción "--scale", no pudimos establecer los puertos en el archivo docker-compose. Por lo tanto, hay que recuperarlos con el comando docker ps:

docker ps -a
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS                      PORTS                                                                                     NAMES
a1844f38939f   ecp-demo   "/tini -- /iris-main…"   25 minutes ago   Up 25 minutes (unhealthy)   1972/tcp, 2188/tcp, 53773/tcp, 54773/tcp, 0.0.0.0:81->52773/tcp, :::81->52773/tcp         ecp-demo-data-server
4fa9623be1f8   ecp-demo   "/tini -- /iris-main…"   25 minutes ago   Up 25 minutes (unhealthy)   1972/tcp, 2188/tcp, 53773/tcp, 54773/tcp, 0.0.0.0:49170->52773/tcp, :::49170->52773/tcp   ecp-with-docker_ecp-demo-app-server_1
ecff03aa62b6   ecp-demo   "/tini -- /iris-main…"   25 minutes ago   Up 25 minutes (unhealthy)   1972/tcp, 2188/tcp, 53773/tcp, 54773/tcp, 0.0.0.0:49169->52773/tcp, :::49169->52773/tcp   ecp-with-docker_ecp-demo-app-server_2

En este ejemplo, los puertos son:

servidor de datos

Pruebas de lectura/escritura en la base de datos remota.

Vamos a realizar unas pruebas de lectura/escritura en el terminal. Abrid una terminal de IRIS en el primer servidor de aplicaciones:

docker exec -it ecp-with-docker_ecp-demo-app-server_1 iris session iris
Set ^demo.ecp=$zdt($h,3,1) _ “ write from the first application server.”

Ahora abrid una terminal en el segundo servidor de aplicaciones:

docker exec -it ecp-with-docker_ecp-demo-app-server_2 iris session iris
Set ^demo.ecp(2)=$zdt($h,3,1) _ " write from the second application server."
zwrite ^demo.ecp

Deberíais ver las respuestas de ambos servidores:

^demo.ecp(1)="2022-07-05 23:05:10 write from the first application server."
^demo.ecp(2)="2022-07-05 23:07:44 write from the second application server."

Finalmente, abrid una terminal de IRIS en el servidor de datos y realizad una lectura del global demo.ecp:

docker exec -it ecp-demo-data-server iris session iris
zwrite ^["^^/usr/irissys/mgr/myappdata/"]demo.ecp

^["^^/usr/irissys/mgr/myappdata/"]demo.ecp(1)="2022-07-05 23:05:10 write from the first application server."
^["^^/usr/irissys/mgr/myappdata/"]demo.ecp(2)="2022-07-05 23:07:44 write from the second application server."

Eso es todo por hoy. Espero que os haya gustado este artículo. No dudéis en dejar un comentario si tenéis alguna duda o consulta.

0
0 139
Artículo Luis Angel Pérez Ramos · oct 10, 2023 3m read

Seguramente todos habéis oido hablar de FHIR como la panacea y solución a todos los problemas de interoperabilidad y compatibilidad entre sistemas. Aquí mismo podemos ver a uno de sus clásicos defensores sujetando un recurso FHIR con su mano y disfrutando desaforadamente:

Pero para el resto de los mortales vamos a hacer una pequeña introducción.

¿Qué es FHIR?

2
0 193
Artículo Luis Angel Pérez Ramos · oct 6, 2023 1m read

Como no podía ser de otra manera y fieles a nuestra cita de los viernes, procedemos a publicar las predicciones de la aplicación QuinielaML para la jornada 9ª de Primera División y 10ª de Segunda.

Os recuerdo que QuinielaML está desarrollada sobre InterSystems IRIS haciendo uso de sus capacidades de Machine Learning que proporciona mediante la funcionalidad IntegratedML así como de Embedded Python que permite la captura de datos para entrenar el modelo predictivo.

Aquí tenemos la jornada de este fin de semana:

Veamos que tenemos para Primera División:

Y ahora Segunda:

1
0 307
Artículo Luis Angel Pérez Ramos · oct 3, 2023 1m read

¿Te estás preparando para usar VS Code por primera vez? Asegúrate de que tengas los privilegios suficientes.

¿Has definido tu servidor IRIS en la configuración de VS Code y aún recibes el siguiente error?

VS Code accede a IRIS/HealthConnect mediante la aplicación web /api/atelier. Si no tienes permiso (si estás utilizando por ejemplo un usuario LDAP para conectarte y la aplicación web no está configurada para admitir LDAP), esta es la razón por la que no pudiste conectarte.

0
0 110
Artículo Luis Angel Pérez Ramos · sep 29, 2023 1m read

¡Volvemos al ataque con la Quiniela! 8ª jornada en Primera y Segunda División y con la QuinielaML deseando resarcirse de los 4 aciertos del pasado fin de semana. Aquí tenemos el boleto de esta jornada:

Y estas son las predicciones para Primera División:

Y ahora para Segunda División:

Por lo que la Quiniela quedaría tal que así:

Pues ale, ya tenéis lo necesario para haceros ricos. ¡Feliz viernes!

1
0 201
Artículo Luis Angel Pérez Ramos · sep 27, 2023 6m read

Recientemente @Anastasia Dyubaylo publico un post (este) en el que mostraba una nueva funcionalidad de IntegratedML para predicciones de series temporales que ya nos presentó @Thomas Dyar en el Global Summit 2023 y me entró la curiosidad de verlo funcionar en acción así que ¡qué mejor forma de verlo en funcionamiento que montando un pequeño workshop!

Introducción

0
0 109
Artículo Luis Angel Pérez Ramos · sep 22, 2023 1m read

Nueva jornada de la Liga y nuevas predicciones de QuinielaML. Únicamente recordar que la pasada jornada QuinielaML acertó 9 de los 15 resultados, nada mal.

Veamos la Quiniela de esta jornada:

Y ahora las estimaciones de QuinielaML para la 6ª jornada de Primera División:

Y para la 7ª jornada de Segunda:

Por lo que nuestra Quiniela quedaría tal que así:

¡Buen fin de semana y suerte!

3
0 259
Artículo Luis Angel Pérez Ramos · sep 15, 2023 1m read

Como bien sabréis los que seguís habitualmente las publicaciones de nuestra Comunidad, disponemos de una aplicación desarrollada con Angular e IRIS que nos permite obtener estimaciones sobre los resultados de Primera y Segunda División del fútbol español llamada QuinielaML. Pues bien, ¡pongámosla a prueba!

Estos son los partidos que entran en la Quiniela de la 7ª jornada:

Veamos las estimaciones para Primera División de nuestra aplicación:

Y ahora para Segunda División:

1
0 230
Comentarios Luis Angel Pérez Ramos · sep 11, 2023

Habitualmente recibimos quejas desde nuestros clientes a cerca de los refrescos automáticos de las páginas web de diseño de BPL y DTL. Esto suele ser un problema común no sólo de usuarios novatos, sino que también de programadores veteranos, es algo común que se olviden de grabar regularmente sus cambios y al cerrarse la sesión o recargarse automáticamente la página se pierda todo el trabajo realizado.

3
0 82
Artículo Luis Angel Pérez Ramos · sep 8, 2023 1m read

InterSystems FAQ

Puedes evitar este error especificando un objeto de tipo stream como argumento de la función %ToJSON usando durante la generación del string JSON desde el objeto dinámico.

A continuación podéis ver un ejemplo.

USER>set temp=##class(%Stream.TmpCharacter).%New()

USER>set jsonobj={}

USER>set jsonobj.pro1=["a","b","c","d"]

USER>set jsonobj.pro2=["あ","い","う","え"]

USER>do jsonobj.%ToJSON(temp)

USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

Podéis consultar la documentación si queréis más detalles al respecto.

0
0 137
Artículo Luis Angel Pérez Ramos · sep 5, 2023 12m read

Continuamos con la serie de artículos relativos a la aplicación de QuinielaML. En este artículo vamos a tratar cómo preparamos los datos en crudo que hemos capturado mediante la funcionalidad de Embedded Python.

¡Bienvenidos a todos!

Introducción

0
0 173
Artículo Luis Angel Pérez Ramos · ago 29, 2023 8m read

Proseguimos con la serie de artículos basados en la aplicación QuinielaML.

En el artículo de hoy describiré como trabajar con la funcionalidad de Embedded Python disponible en los productos de InterSystems.

Embedded Python nos permite la utilización de Python como lenguaje de programación dentro de nuestras producciones, pudiendo sacar provecho de todas las funcionalidades disponibles en Python. Aquí podéis ampliar información al respecto.

Antes de nada recordemos cómo es el diseñor de la arquitectura de nuestro proyecto:

Problemática

0
0 173
Artículo Luis Angel Pérez Ramos · ago 25, 2023 4m read

Aprovechando la aplicación de Quiniela ML y como indicamos en el artículo anterior vamos a explicar como podemos realizar una autenticación JWT entre nuestro frontend desarrollado en Angular y nuestro backend desarrollado en InterSystems IRIS.

Os recuerdo como es la arquitectura de nuestro proyecto de QuinielaML:

Habitualmente es un proceso bastante engorroso en las aplicaciones web el desarrollo de la administración y gestión de acceso de los usuarios, pero en nuestro caso InterSystems IRIS nos simplifica el proceso al proporcionarnos toda la infraestructura que necesitamos.

0
0 237
Artículo Luis Angel Pérez Ramos · ago 22, 2023 4m read

Bienvenidos estimados miembros de la Comunidad a la presentación y primera entrega de un pequeño proyecto que demostrará las capacidades de InterSystems IRIS para proporcionar funcionalidades plenas de backup para una aplicación web desarrollada en Angular. Este artículo se limitará a presentar el concepto así como las funcionalidades de InterSystems IRIS utilizadas de un modo general, entrando más en detalle en posteriores artículos.

¡Bienvenidos a QuinielaML!

Introducción

2
0 584