Palabras clave: Python, JDBC, SQL, IRIS, Jupyter Notebook, Pandas, Numpy y aprendizaje automático

Hoy me he encontrado con este artículo de Zphong Li, que publicó en Enero de 2020 pero que creo que es muy interesante y aún útil a día de hoy. Así que... para los que estéis haciendo vuestros primeros pinitos en Machine Learning con InterSystems IRIS, Python y Jupyter... aquí lo tenéis!!

0 0
0 1.2K

Siguiendo la serie de artículos de mi compañero Murray vamos a centrarnos en el artículo donde analizamos la CPU.

Un cliente me pidió que le aconsejara sobre el siguiente escenario: sus servidores de producción se están acercando al final de su vida útil y es el momento de actualizar el hardware. También están pensando en consolidar los servidores por medio de la virtualización y quieren ajustar la capacidad, ya sea con servidores de hardware dedicado o virtualizados.

Hoy analizaremos la CPU. En artículos posteriores explicaré el enfoque para dimensionar correctamente otros "grupos alimenticios de hardware": la memoria y las Entradas/Salidas.

0 0
0 146
Artículo
· 12 ago, 2021 Lectura de 3 min
Escaneo y división de globals
Este es un ejemplo de código que funciona en IRIS 2020.1 y en Caché 2018.1.3 
No se mantendrá sincronizado con las nuevas versiones.      
Y NO cuenta con el servicio de soporte de InterSystems.

En la mayoría de los casos, un global que se utiliza como almacenamiento predeterminado tiene solo 1 nivel de subíndice que representa el IDKEY.
Para un índice de globals podemos ver 2 o más niveles de subíndices.
Las matrices, las relaciones de herencia padre hijo o las clases persistentes que extienden una clase base, son ejemplos en los que vemos más niveles. Aunque todos estos globals son bastante uniformes.

1 0
0 129
Artículo
· 7 oct, 2021 Lectura de 2 min
Cómo obtener Upstream en GitHub

¡Hola desarrolladores!

Con frecuencia, cuando colaboramos con el repositorio de alguien en GitHub, seguimos el siguiente ciclo:
1. Fork: crear nuestra bifurcación del repositorio
2. Clone: clonar una copia local de nuestro repositorio bifurcado
3. Realizar nuestros cambios y guardarlos con un Commit en nuestra copia local
4. Push: publicar nuestros cambios al repositorio clonado de GitHub
5. Hacer Pull-Request para solicitar incorporar nuestros cambios desde nuestro fork — bifurcación — al repositorio original
6. Y si todo va bien se hará un Merge — fusión o incorporación — con nuestros cambios en el repositorio original

¡Todo esto es genial y funciona bien!

Y si queremos realizar una segunda colaboración justo después de llevar a cabo un Merge , es necesario que primero realicemos un Fetch upstream en nuestro repositorio clonado para que tengamos disponibles los cambios actualizados que incorporamos al repositorio original a través del Pull Request.

Los más frikies de git lo hacen muy fácilmente, pero muchos terminamos simplemente por eliminar nuestro primer fork y crear otro nuevo.

1 0
0 180

¡Hola desarrolladores!

A veces necesitamos importar datos CSV de forma programática en InterSystems IRIS desde un fichero o una URL. Y esperamos además que automáticamente se genere una clase con los tipos de datos adecuados y los datos importados.

Echadle un ojo al módulo csvgen en Open Exchange que hace exactamente eso que hemos descrito.

Si necesitas importar un fichero CSV en IRIS puedes hacer esto:

0 0
0 144
Artículo
· 3 nov, 2021 Lectura de 1 min
Ruta de aprendizaje para principiantes

¡Hola Comunidad!

La página web de formación de InterSystems (InterSystems Learning Website) tiene muchos cursos interactivos. Si quieres aprender más o empezar a trabajar con InterSystems, este es el camino que debes seguir:

Resumen:

Conceptos básicos:

1 0
0 97

¡Hola desarrolladores!

El Administrador de paquetes ZPM se está haciendo muy popular y por ello la librería de paquetes está creciendo.

Así, algunas soluciones o muestras pueden crearse con InterSystems IRIS y uno o dos paquetes instalados.

Me gustaría compartir con vosotros iris-docker-zpm-usage-template - una plantilla que se puede utilizar exactamente con esa finalidad.

0 0
0 120
Artículo
· 11 feb, 2022 Lectura de 5 min
Cómo convertirse en un señor del tiempo - El nacimiento

El tiempo dirá, siempre lo hace.

El Doctor.

No es una tarea facil dominar fechas y horas, siempre es un problema y a veces confuso en cualquier lenguaje de programación, vamos a aclarar y a poner unos cuantos tips para que esta tarea sea lo mas sencilla posible.

Súbete a la TARDIS que te voy a convertir en un Señor del tiempo

Tardis

24 0
0 389
Artículo
· 19 abr, 2022 Lectura de 3 min
Migración de Base de Datos usando SQLgateway

Gracias a @Yuri Marx hemos visto un buen ejemplo de Migración de Bases de datos de Postgres a IRIS.
Mi problema personal es el uso de DBeaver como una herramienta de migración.
En especial, como una de las fortalezas de IRIS (y también Caché) es la disponibilidad de los SQLgateways que permiten el acceso a cualquier base de datos externa, siempre y cuando se puedan acceder usando ODBC/JDBC. Así que he ampliado el paquete para demostrarlo.

1 0
0 173
Artículo
· 9 jun, 2022 Lectura de 1 min
Visor de pacientes FHIR

Alt Text

¡Hola a todos!

Solo quería compartir aquí una publicación rápida sobre mi proyecto para el Gran Premio :D

FHIR Patient Viewer es una herramienta de renderizado de una sola página, basada en Vue.js, que muestra de forma sencilla los datos devueltos de una llamada /Patient/{id}/$everything realizada a un servidor FHIR de InterSystems.

En el archivo Readme he incluido 3 cosas principales:

0 0
0 126
Artículo
· 28 jul, 2022 Lectura de 4 min
Cómo añadí ObjectScript a Jupyter Notebook

ObjectScript Kernel Logo

Jupyter Notebook es un entorno interactivo formado por celdas que permiten ejecutar código en un gran número de lenguajes de marcado y programación diferentes.

Para hacer esto, Jupyter debe conectarse a un kernel apropiado. No había un Kernel ObjectScript, por lo que decidí crear uno.

Puedes probarlo aquí.

Este es un adelanto de los resultados:

1 0
0 122
Artículo
· 1 sep, 2022 Lectura de 2 min
Algunos ejemplos de interoperabilidad FHIR

¡Hola desarrolladores!

Quizá os hayáis encontrado con escenarios donde no tenéis que implementar un repositorio FHIR, sino por ejemplo reenviar peticiones FHIR, gestionar las respuestas y tal vez realizar modificaciones o extraer algunos valores por el camino. Aquí encontraréis algunos ejemplos que pueden implementarse con InterSystems IRIS For Health o HealthShare Health Connect.

0 0
0 136
Artículo
· 29 sep, 2022 Lectura de 2 min
Visual Trace y la libertad de eleccion

¡Hola Comunidad!

A lo largo de los años siempre he pensado en crear cosas nuevas, modificar las existentes, experimentar, probar, romper (siempre pasa), construir de nuevo, y empezar otra vez.

Los concursos promovidos por InterSystems son una excelente fuente de motivación. Obviamente los premios llaman la atención y eso no se puede negar. Pero no se trata solo de los premios/regalos - los concursos son un reto creativo, una oportunidad de crear, reimaginar, probar, experimentar... Y lo mejor de todo es que eres libre de hacer todo lo que quieras!

Así que ví estos concursos como una oportunidad de crear mi propio Y si...? (la serie en la que Marvel permite a los autores re-imaginar sus historias como quieran) y he sido muy afortunado de encontrar otra persona que recibe estas ideas con los brazos abiertos laugh ¡Muchas gracias, @José Pereira!

En el último concurso de Interoperabilidad, creé el visualizador de mensajes Message Viewer y en este concurso de Interoperabilidad traigo de nuevo el Message Viewer, pero esta vez con Visual Trace!

1 0
0 91

Continúo la descripción del trabajo usando el módulo openhl de Python en producción.

Como la versión de IRIS con Python Embebido, aún no ha sido liberada, ya es necesario usarlo en producción ahora. Decidimos hacer una copia de seguridad del servicio para exportar consultas a un archivo xlsx en un servidor aparte, y guardar el resultado de la consulta en un global en una base de datos separada.

0 0
0 61

Llamamos Procesamiento Híbrido Transaccional y Analítico (HTAP por sus siglas en inglés) a la capacidad de recuperar numerosos registros por segundo, mientras que a la vez se permiten consultas simultáneas en tiempo real. También se llama Analítica Transaccional ó Transanalítica y es un elemento muy útil en escenarios en los que disponemos de un flujo constante de datos en tiempo real, como podría ser el caso de datos provenientes de sensores IIOT o información de las fluctuaciones en el mercado bursátil y nos permite satisfacer la necesidad de consultar estos conjuntos de datos en tiempo real o casi en tiempo real.

Os comparto un ejemplo que podréis ejecutar en el que se recibe un conjunto de datos en streaming, con entradas de datos constantes y consultas continuas a la vez. El ejemplo está desarrollado en varias plataformas y podréis comparar cómo reaccionó cada una de ellas, con la velocidad de entrada y salida de datos en cada plataforma y su rendimiento. Las plataformas con las que he probado en esta demo son: InterSystems IRIS, MariaDB y MySQL.

0 0
0 70

¡Hola Comunidad!

Si alguno de vosotros habéis pasado la Certificación Oficial de InterSystems, podéis tener un elegante tick verde en el avatar de vuestro perfil, así:

Y podéis añadir vuestras certificaciones a vuestro perfil, para que todo el mundo sepa todo lo que sabéis.

Para añadir las certificaciones a vuestro perfil, solo tenéis que seguir estos sencillos pasos:

1️⃣ Ir a vuestro perfil en la Comunidad

2️⃣ Ir al apartado Certificaciones de InterSystems, a la izquierda

3️⃣ Hacer clic en el botón Cargar mis certificaciones

¡Y eso es todo!

0 0
0 66
Artículo
· 3 abr, 2023 Lectura de 9 min
Apache Web Gateway con Docker

¡Hola Comunidad!

En este artículo configuraremos mediante programación un Apache Web Gateway con Docker, utilizando:

  • El Protocolo HTTPS.
  • TLS\SSL para asegurar la comunicación entre el Web Gateway y la instancia de IRIS.

imagen

Utilizaremos dos imágenes: una para el Web Gateway y la segunda para la instancia de IRIS.

Todos los archivos necesarios están disponibles en este repositorio de GitHub.

1 0
1 181

iris-docker-multi-stage-script

Os presentamos un script en Python para mantener a punto tus imágenes de IRIS en Docker ;-)

Sin necesidad de cambiar tu dockerfile o tu código, puedes reducir el tamaño de tu imagen en un 50% o más!

TL;DR

Nombra a tu imagen builder como builder y a la imagen final final y añade esto al final de tu Dockerfile:

Modifica tu Dockerfile para usar un build multi-stage:

ARG IMAGE=intersystemsdc/irishealth-community:latest
FROM $IMAGE as builder

Añade esto al final de tu Dockerfile:

FROM $IMAGE as final

ADD --chown=${ISC_PACKAGE_MGRUSER}:${ISC_PACKAGE_IRISGROUP} https://github.com/grongierisc/iris-docker-multi-stage-script/releases/latest/download/copy-data.py /irisdev/app/copy-data.py

RUN --mount=type=bind,source=/,target=/builder/root,from=builder \
    cp -f /builder/root/usr/irissys/iris.cpf /usr/irissys/iris.cpf && \
    python3 /irisdev/app/copy-data.py -c /usr/irissys/iris.cpf -d /builder/root/ 

¡Boom! ¡Ya está listo!

0 0
0 31
Artículo
· 25 mayo, 2023 Lectura de 1 min
Configuraciones de producción

Cuando se desarrollan producciones de interoperabilidad, puede ser útil tener configuraciones fuera de un Business Host. La razón principal es cuando necesitas una configuración que afecte a varios Business Hosts diferentes y quieres garantizar que el valor es el mismo. Aunque las Configuraciones Predeterminadas del Sistema (CPS) pueden ser usadas para propagar configuraciones para Business Hosts, pueden ser cambiadas al anular el valor a nivel de BH (aunque la ventaja de las configuraciones del Business Host definidas a través de las CPS es que no requieren código personalizado, que sí es requerido por nuestro enfoque actual).

Otra razón es cuando necesitas afectar partes no configuradas de la configuración del Business Host (PoolSize, Enabled, etc.)

Añadiremos una configuración env a una producción.

0 0
0 52

¡Hola Comunidad!

Me gustaría compartir con vosotros un ejercicio que he hecho para crear "mi propio" chat con ChatGPT en Telegram.

Ha sido posible gracias a dos componentes de Open Exchange: Telegram Adapter, de @Nikolay Soloviev e IRIS Open-AI, de @Kurro Lopez

Así que con este ejemplo podréis configurar vuestro propio chat con ChatGPT en Telegram.

¡Veamos cómo hacerlo funcionar!

0 0
0 99

Preguntas frecuentes de InterSystems

Se pueden configurar páginas de error individuales para los siguientes mensajes de error/respuestas del Web Gateway:

  • Error del servidor
  • Servidor ocupado
  • Servidor no disponible
  • Tiempo límite de espera del servidor
  • Conexión cerrada

Los ajustes se realizan en la pantalla Administración del Portal de Gestión ([Administración] > [Configuración] > [Gestión del Web Gateway] > [Configuración] > [Parámetros predeterminados]).

1 0
0 58

¡Hola Comunidad!

Hoy vamos a explicar un tema importante al que a veces no se le da la importancia debida - el uso de los Grupos y las Etiquetas en las publicaciones.

Cuando se crea una publicación, tras el cuerpo del mensaje, aparecen dos campos para indicar el Grupo y las Etiquetas.

0 0
0 39
Artículo
· 2 feb, 2024 Lectura de 9 min
PrivateGPT explorando la documentación

Considerar el nuevo interés empresarial en la aplicación de IA generativa a información y datos privados locales comercialmente sensibles, sin exposición a nubes públicas. Al igual que una cerilla necesita la energía del golpe para encenderse, el nuevo desafío de "energía de activación" del líder tecnológico es revelar cómo la inversión en hardware GPU podría respaldar nuevas capacidades competitivas. La capacidad puede revelar los casos de uso que brindan nuevo valor y ahorro.

Afilar este hacha comienza con un protocolo funcional para ejecutar LLM en un portátil local.

1 0
0 111
Artículo
· 1 jul, 2019 Lectura de 16 min
Dominando JDBC con SQL Gateway

Como todos sabemos, IRIS Database / Caché es un motor de base de datos que efectúa muchas tareas dentro de sí misma. Sin embargo, ¿qué puede hacer cuando necesita tener acceso a una base de datos externa? Una opción es utilizar el SQL Gateway en Caché mediante un conector JDBC. En este artículo, mi objetivo es responder las siguientes preguntas con el fin de ayudarle a que se familiarice con la tecnología y que resuelva algunos de los más problemas comunes.

2 0
1 671