Otro ejemplo sobre cómo usar extensiones personalizadas de comandos, en este caso ZZJSON para formatear JSON.
IRIS dispone de la clase %JSON.Formatter. Pero a veces para depurar resulta un poco largo de usar.
Otro ejemplo sobre cómo usar extensiones personalizadas de comandos, en este caso ZZJSON para formatear JSON.
IRIS dispone de la clase %JSON.Formatter. Pero a veces para depurar resulta un poco largo de usar.
¡Hola a todos! hoy veremos un truco para recorrer las actividades que forman parte de un Business Process. En función de lo que estemos desarrollando, es posible que en ocasiones necesitemos hacer introspección como por ejemplo, obtener las anotaciones que hemos incluido dentro de las actividades de un Business Process.
¡Muy buenas! Repasemos hoy un genial artículo de David E. Nelson sobre cómo montar un entorno de pruebas utilizando contenedores Docker para experimentar con IRIS, Spark y Zeppelin.
Gracias a la creciente disponibilidad de contenedores y el cada vez más útil Docker para Windows / MacOs, tengo mi propia selección de entornos preconfigurados para aprendizaje automático y data science. Por ejemplo, Jupyter Docker Stacks y Zeppelin en Docker Hub. Gracias también a la edición IRIS Community en un contenedor, tenemos un práctico acceso a una plataforma de datos que admite tanto el aprendizaje automático y análisis junto con otras muchas funciones. Al usar contenedores, no necesito preocuparme por actualizaciones automáticas que puedan arruinar mi área de pruebas. Si mi oficina se inundara y el portátil quedara inservible, podría recrear fácilmente el área de pruebas con un único archivo de texto, que por supuesto subí a un sistema de control de versiones ;-)
¡Hola a todos!
Hoy hablaremos de cómo cargar un modelo de Machine Learning en IRIS y cómo probarlo, a través de un artículo genial de Niyaz Khafizov.
Nota: lo siguiente se realizó utilizando Ubuntu 18.04, Apache Zeppelin 0.8.0 y Python 3.6.5.
Actualmente, muchas de las diferentes herramientas que están disponibles para data mining permiten desarrollar modelospredictivos y analizar los datos con gran facilidad.
Hola a todos!
Os comparto el código que utilizamos en una sesión práctica del último InterSystems Iberia Summit en Barcelona sobre el desarrollo de una aplicación simple Angular utilizando InterSystems IRIS como backend.
A continuación veremos cómo mostrar una lista de métricas de ejemplo disponibles a través del servicio /api/monitor.
En el artículo anterior, echamos un vistazo al servicio que expone las métricas de IRIS en formato Prometheus. Veamos cómo configurar y ejecutar IRIS preview release 2019.4 en un contenedor y listar las métricas disponibles.
Asumimos que tienes Docker instalado. Si no es así, descárgalo e instálalo para tu sistema operativo :)
Si ya te resulta familiar trabajar con IRIS y contenedores Docker, puedes saltar directamente al Paso 2. Mostrar métricas.
¡Hola Comunidad!
El gestor de paquetes InterSystems Package Manager (ZPM) es una gran herramienta, pero es aún mejor si la puedes usar directamente en lugar de tener que instalarla.
Hay varias formas de hacer esto, a continuación veremos una forma de tener un contenedor IRIS con ZPM instalado a través del Dockerfile.
Hemos preparado un ejemplo con algunas líneas en el Dockerfile que se ocupan de la descarga e instalación de la última versión de ZPM.
Añade estas líneas a tu Dockerfile estándar que utiliza el IRIS Community y tendrás ZPM instalado y listo para usar.
Para descargar la última versión del cliente ZPM:
En InterSystems IRIS 2019.1.4 se incluye ya el servicio /api/monitor, que permite acceder a métricas de IRIS en formato Prometheus.
Esto es una gran noticia para aquellos interesados en utilizar métricas de IRIS como parte de su solución de monitorización y alertas. Este servicio (API) es un componente del nuevo System Alerting and Monitoring (SAM) que se liberará en próximas versiones de InterSystems IRIS.
Sin embargo, no es necesario esperar a que se libere System Alerting and Monitoring (SAM) para empezar a planificar y probar esta API para monitorizar tus instancias de IRIS.
¡Hola!
¿Te gustaría saber si tus transformaciones de datos funcionan como tienes previsto con un solo comando? ¿Y qué te parecería poder escribir pruebas unitarias de forma fácil y simple para las transformaciones de datos que utilizas?
Al hablar de interoperabilidad, normalmente encontraremos muchas transformaciones de datos involucradas. Esas transformaciones de datos se utilizan para convertir datos entre diferentes sistemas o aplicaciones en tu código, así que realmente se encargan de un trabajo muy importante.
¡Hola a tod@s!
Me gustaría comentar con vosotros algunas de las mejoras en procesamiento JSON que incorpora IRIS desde la versión 2019.1. Utilizar JSON como formato de serialización es muy común a la hora de construir aplicaciones hoy en día, especialmente si desarrollamos o interactuamos con servicios REST.
Ayuda mucho poder dar un formato fácilmente interpretable por una persona a una cadena JSON. Especialmente cuando queremos depurar código y acabamos teniendo que examinar por ejemplo una respuesta JSON de un tamaño considerable.
¡Hola a tod@s!
K-Medias es uno de los algoritmos de aprendizaje no supervisado más simples para resolver el problema de agrupamiento. Este problema consiste en formar grupos de objetos con características similares. Por ejemplo, si tenemos una imagen de una pelota roja sobre césped verde, K-Medias separará los pixels de la imagen en dos grupos (clusters): un grupo con los pixels que forman la pelota, y otro grupo con los pixels del césped.
Repasaremos un artículo publicado por Niyaz Khafizov en el que implementaremos un ejemplo donde cargaremos un conjunto de datos en IRIS y ejecutaremos el algoritmo K-Medias utilizando Apache Zeppelin con el conector Spark. Utilizaremos InterSystems IRIS, Apache Zeppelin 0.8.0 y python.
¡Hola a todos!
Hoy me gustaría contaros cómo podemos añadir la documentación de un servicio REST al Developer Portal de InterSystems API Manager.
Necesitamos tener instalado InterSystems IRIS 2019.2 junto con InterSystems API Manager (IAM).
En el post Presentación de InterSystems API Manager, David nos cuenta cómo instalarlo, configurarlo y hacer una primera prueba.
¡Hola a todos!
En ocasiones, mientras depuramos código COS podemos obtener mensajes de error como: <UNDEFINED>test^routine *test
El error (al que podemos acceder con la variable especial $zerror) nos indica la rutina y la línea que ha fallado.
Para revisar el código desde la línea de comandos, escribimos:
ZLOAD routine ZPRINT test
Posiblemente también nos sea útil echar un vistazo a las líneas que se encuentran antes de la línea donde se produjo el error, ya que estas le proporcionan contexto. Utilizando ZPRINT podemos escribir ZPRINT +1:test pero esto podría mostrarnos cientos de líneas.
¡Hola a tod@s!
Hoy os traigo un artículo de Kyle Baxter sobre búsquedas de texto libre que vale la pena guardar como referencia :)
¿Os gustaría buscar de forma eficiente campos de texto libres almacenados en vuestra aplicación? ¿Lo habéis intentado alguna vez pero no habéis encontrado una manera que os ofrezca un buen rendimiento? Hay un truco especial que resuelve el problema :)
Como es habitual, si preferís la versión TL;DR (Demasiado largo, no lo he leído), podéis ir directamente al final del artículo, pero preferiríamos que leyeseis el artículo entero para evitar herir sentimientos.
¡Hola! Me gustaría revisitar hoy con vosotros un artículo muy útil de Amir Samary donde se detalla cómo ejecutar un comando del sistema operativo desde IRIS / Caché / Ensemble de forma interactiva.
Con frecuencia es necesario ejecutar algún comando externo, como por ejemplo un programa Python o un script de bash desde Caché/Ensemble. Existen dos formas principales:
Al igual que con Pattern Matching, se pueden utilizar Expresiones Regularespara identificar patrones en textos en ObjectScript, sólo que con una potencia mucho mayor.
En este artículo se proporciona una breve introducción sobre las Expresiones Regulares y lo que puede hacerse con ellas en ObjectScript. La información que se proporciona aquí se basa en varias fuentes, entre las que destaca el libro “Mastering Regular Expressions” (Dominando las expresiones regulares) escrito por Jeffrey Friedl y, por supuesto, la documentación online de la plataforma.
Hola a todos, me gustaría compartir una guía rápida publicada en el Developer Community sobre cómo conectar Apache Spark + Apache Zeppelin con InterSystems IRIS.
Introducción
Apache Spark es un framework opensource para computación en cluster. Proporciona una interfaz para desarrollar sobre clusters incluyendo paralelismo y tolerancia a fallos. Por ello es muy utilizado en Big Data.
Apache Zeppelin es un bloc de notas, que cuenta con una excelente interfaz de usuario para trabajar con diversos tipos análisis y machine learning
Me gustaría compartir un trabajo de André-Claude Gendron del CIUSSS de l'Estrie - CHUS (Canadá) presentado en un InterSystems Summit.
Consiste en un framework de generación de objetos simulados (mocks) que puede utilizarse para construir UnitTests.
Un objeto simulado (o mock) no es más que un objeto que imita el comportamiento de objetos reales de forma controlada. Estos objetos simulados se utilizan en las pruebas unitarias (UnitTest) para simular objetos o dependencias que sean necesarias para la clase que se quiera probar.
El archivo events_examples.zip contiene dos ejemplos que muestran cómo procesar una carga de trabajo de forma asíncrona utilizando colas persistentes.
Este es un ejemplo muy sencillo que crea algunos procesos trabajadores y les encola mensajes utilizando $system.Event.
; crear un recurso compartido y crear los procesos trabajadores USER>do ##class(IAT.S04.Event.Test).Setup() ; encolar algunos mensajes hacia los trabajadores y ver qué sucede USER>do ##class(IAT.S04.Event.Test).Run() Show log? no/[yes]: ^Samples.Log=10 ^Samples.Log(1)="[2016-02-19 09:43:14] Enqueuing 1" ^Samples.Log(2)="[2016-02-19 09:43:14] Worker 8168 grabs: 1" ^Samples.Log(3)="[2016-02-19 09:43:14] Enqueuing 2" ^Samples.Log(4)="[2016-02-19 09:43:14] Worker 18184 grabs: 2" ^Samples.Log(5)="[2016-02-19 09:43:14] Enqueuing 3" ^Samples.Log(6)="[2016-02-19 09:43:14] Worker 8168 grabs: 3" ^Samples.Log(7)="[2016-02-19 09:43:14] Enqueuing 4" ^Samples.Log(8)="[2016-02-19 09:43:14] Worker 18184 grabs: 4" ^Samples.Log(9)="[2016-02-19 09:43:14] Enqueuing 5" ^Samples.Log(10)="[2016-02-19 09:43:14] Worker 8168 grabs: 5" ; trabajo terminado, podemos enviar más mensajes o matar a los procesos trabajadores write $system.Process.Terminate(8168) 1 write $system.Process.Terminate(18184) 1
El archivo workmgr_simple.prj_.zip contiene un ejemplo simple de paralelización con $system.WorkMgr
El ejemplo utiliza diferentes procesos (trabajadores o workers) para actualizar pedazos de una misma tabla .