Artículo
Muhammad Waseem · Jul 28, 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 59
Artículo
Alberto Fuentes · Mayo 25, 2021 Lectura de 12 min
Cómo desarrollar una API REST con un enfoque spec-first

En este artículo, me gustaría hablar sobre el enfoque spec-first para el desarrollo de una API REST.

Mientras que el desarrollo tradicional code-first de una API REST es así:

  • Escribir el código
  • Habilitarlo en REST
  • Documentarlo (como una API REST)

Spec-first sigue los mismos pasos, pero a la inversa. Comenzamos con una especificación, — que también actúa como documentación — , generamos el código base de la aplicación REST a partir de ella, y finalmente escribimos la lógica de negocio concreta que nos haga falta.

Esto ofrece varias ventajas:

0 1
0 420

Esta es el tercera de una serie de lanzamientos que forman parte del programa de versiones de prueba para desarrolladores. Las próximas versiones de prueba se espera que sean actualizadas cada dos semanas, aproximadamente, y añadiremos funcionalidades según estén listas. Se han añadido muchas actualizaciones y mejoras en 2022.2, en la gestión de SQL, integración cloud, adaptadores Kafka y JMS, SQL Loader y otras áreas.

0 0
0 71
Artículo
Muhammad Waseem · Jul 26, 2022 Lectura de 10 min
Conversión de zona horaria usando Python Embebido

La fecha y la hora son factores importantes en nuestra vida. Porque todas las aplicaciones son interesantes según la fecha y la hora. Pero el mundo está dividido en múltiples zonas horarias. Si nuestro producto se lanza al mundo, para mantener el historial de eventos, debemos convertir todas las horas a nuestra hora local o UTC (Tiempo Universal Coordinado). Por lo que sé, muchos lenguajes de programación conocidos de C#, JavaScript, Java, etc., ofrecían la librería para convertir la fecha y la hora, es decir, con un nombre de zona horaria podemos convertir sin conocer la diferencia horaria.

La base de datos TZ no existe en los productos de InterSystems. En el pasado, escribí la función en C# (C# tiene una librería para esto) y la usé dentro de InterSystems como una clase contenedora.

Pero ahora, IRIS comenzó a ser compatible con Python Embebido. Por eso, podemos usar la conversión de zona horaria de Python en InterSystems fácilmente.

0 0
0 292

Servir el café: Cómo crear y programar una tarea

¿No te gustaría que una taza de café caliente te esperara justo al llegar a la oficina? ¡Vamos a automatizar eso!

Cache e IRIS incorporan un Administrador de tareas, que debería resultar familiar a quienes estén acostumbrados a utilizar el programador de tareas de Windows o a usar cron en Linux. Tu cuenta de usuario requerirá tener acceso al recurso %Admin_Task para utilizarlo, y puedes acceder a él desde el portal de administración en System Operation -> Task Manager. Cuando se instala por primera vez, hay aproximadamente 20 tipos de tareas que puedes programar.

Si quieres añadir tus propias tareas, empieza creando una clase que extienda %SYS.Task.Definition. Como mínimo, debes sobreescribir el método OnTask, que tiene una firma de Method OnTask() As %Status. El código de ese método se ejecutará cada vez que se lance la tarea. De hecho, si tu tarea arroja "Error #5003: No implementado (Error #5003: Not Implemented)" cada vez que se ejecuta, es porque este método no se sobreescribió correctamente. De manera muy básica, podría ser:

0 0
0 87

¡Hola desarrolladores!

Solo quiero compartir con vosotros mi conocimiento, es decir, experiencia en algo que os puede hacer ahorrar unas cuantas horas algún día.

Si estás creando una REST API con IRIS que contiene más de un nivel de "/", por ejemplo: '/patients/all', no te olvides de añadir el parámetro 'recurse=1' en tu script de despliegue en %Installer. Si no, todas las entradas de nivel secundario y de mayor profundidad no funcionarán. Y todas las entradas de nivel primario funcionarán.

/patients

- funcionará, pero

/patients/all

- no funcionará.

Este es un ejemplo de sección CSPApplication que arregla el problema y que puede que quieras usar en tu clase %Installer:

    <CSPApplication Url="${CSPAPP}"
      Recurse="1"
      Directory="${CSPAPPDIR}"
      Grant="${RESOURCE},%SQL"
      AuthenticationMethods="96"
      />

0 0
0 36
Artículo
Muhammad Waseem · Jul 19, 2022 Lectura de 3 min
Índices únicos y valores nulos en InterSystems IRIS

Recientemente surgió un patrón interesante en torno a los índices únicos (en una discusión interna re: isc.rest) y me gustaría destacarlo para la Comunidad.

Como caso de uso motivador: supón que tienes una clase que representa un árbol, donde cada nodo también tiene un nombre, y queremos que los nodos sean únicos por nombre y nodo principal. Queremos que cada nodo raíz también tenga un nombre único. Una implementación natural sería:

0 0
0 36
Artículo
Ricardo Paiva · Jun 24, 2021 Lectura de 6 min
Cómo utilizar AWS Glue con InterSystems IRIS

Publicación Original por: Anton Umnikov
Arquitecto Senior de soluciones en la nube en InterSystems
AWS CSAA, GCP CACE

AWS Glue es un proceso ETL (extraer, transformar y cargar) completamente gestionado, que hace sencillo y rentable clasificar los datos, limpiarlos, enriquecerlos y moverlos de forma fiable entre diferentes almacenes de datos.

En el caso de InterSystems IRIS, AWS Glue permite mover grandes cantidades de datos a IRIS desde fuentes de datos tanto en la nube como en las propias instalaciones (on-premise). Las fuentes de datos potenciales incluyen, pero no se limitan a, bases de datos on-prem, archivos CSV, JSON, Parquet y Avro que residen en buckets S3, bases de datos nativas en la nube como AWS Redshift y Aurora, y muchas otras.

0 1
0 252

¡Hola Comunidad!

@Joan Pérez publicó una reseña en la que comentó que no está muy claro qué aplicaciones están disponibles para InterSystems Package Manager. ¡Gracias por tu pregunta, Joan! De hecho, la respuesta merece una publicación.

Existen al menos dos formas de conocer las aplicaciones con ZPM:

1. Ejecutar el comando find en zpm:

0 0
0 34

A veces es necesario transferir o migrar datos y esquemas de datos de Postgres a IRIS. Actualmente hay varias opciones para hacerlo, pero las dos más populares son DBeaver y SQLGateway. Ésta última es descrita por Robert Cemper en este excelente artículo: DB Migration using SQLgateway (Migración de base de datos usando SQLgateway).

Yo describiré en este artículo cómo realizar la migración utilizando DBeaver:

1 0
0 108

Hola Comunidad,

Esta publicación es una introducción a mi aplicación iris-climate-change en Open Exchange.

iris-climate-change importa el conjunto de datos Temperature Change, de la Organización de las Naciones Unidas para la Agricultura y la Alimentación (FAO), usando la funcionalidad LOAD DATA (SQL) y analiza y visualiza los datos con la ayuda del framework Python Flask Web, la librería Pandas Python data analysis, Plotly Open Source Graphing Library for Python y la librería Plotly JavaScript Open Source Graphing.

0 0
0 34
Artículo
Alberto Fuentes · Abr 28, 2021 Lectura de 8 min
Consejos para depurar con %Status

Introducción

Si resuelves problemas complejos en ObjectScript, probablemente tienes mucho código que funciona con los valores de %Status. Si has interactuado con clases persistentes desde una perspectiva de objetos (%Save, %OpenId, etc.), casi seguro que las ha visto.

Un %Status proporciona una envoltura alrededor de un mensaje de error localizable en las plataformas de InterSystems. Un estado OK ($$$OK) simplemente es igual a 1, mientras que un mal estado ($$$ERROR(errorcode,arguments...)) se representa como un 0 seguido de un espacio seguido de una lista $ListBuild con información estructurada sobre el error.

0 1
0 107

Durante mucho tiempo hemos estado usando una utilidad en producción para exportar el resultado de una consulta a una hoja de cálculo Excel. Además, hemos hecho una modificación en ella, en la que la configuración explícita de los formatos de las columnas es una prioridad.

0 0
0 57
Artículo
Ricardo Paiva · Jul 7, 2022 Lectura de 17 min
Creando un Visualizador de Mensajes alternativo en IRIS

Si tuvieras la oportunidad de cambiar algo en el Visualizador de Mensajes de Interoperabilidad en IRIS, ¿qué harías?

Después de publicar el artículo Panel de Control "IRIS History Monitor", recibí algunos comentarios muy interesantes y varias peticiones. Una de ellas fue un Visualizador de Mensajes mejorado.
Si aún no lo has hecho, echa un vistazo al proyecto: merece la pena que le dediques un rato, y además ganó el 3er premio (Bronce) a Los mejores desarrolladores y aplicaciones de InterSystems Open Exchange en 2019.
Empecé a pensar algunas ideas sobre lo que me gustaría incluir en el "nuevo" Visualizador de Mensajes pero ¿cómo podría mostrar estos recursos de la forma más rápida y sencilla?

1 0
0 49
Artículo
Alberto Fuentes · Jul 5, 2022 Lectura de 1 min
Ejemplo de código para concatenar arrays JSON

ObjectScript no incluye ningún método por defecto para añadir un array JSON a otro. Este es un fragmento de código que utilizo y que es equivalente al método concat() de JavaScript.

Puedes llamarlo con cualquier número de argumentos para concatenarlos en un nuevo array. Si un argumento es un array dinámico, sus elementos serán añadidos. Si no, el argumento en sí será añadido.

0 0
0 90

¡Hola desarrolladores!

En Docker Hub hay publicadas imágenes para los contenedores de InterSystems IRIS Community Edition e InterSystems IRIS Community for Health.

¿Qué es esto?

Hay un repositorio en que se publican estás imágenes (que, de hecho, son las mismas que las imágenes de IRIS Community Edition que tienes en el Registro de Contenedores de InterSystems a las que se les ha pre-cargado el cliente del ObjectScript Package Manager).

Así que si ejecutas este contenedor con IRIS CE o IRIS CE for Health puedes empezar a usar ZPM inmediatamente e instalar paquetes desde el Registro de la Comunidad o cualquier otro.

¿Que significa esto para ti?

0 0
0 42

¡Hola Comunidad!

Me gustaría anunciaros brevemente tres nuevos paquetes, disponibles en Open Exchange / a través de ZPM, que pueden realmente ayudaros a acelerar el desarrollo en IRIS de aplicaciones full-stack modernas. Todo esto se anunció la semana pasada en una sesión del Global Summit, pero muchos no pudisteis asistir. Además, me acabo de enterar de que justo ahora está en marcha un concurso de desarrollo de aplicaciones full-stack!

1 0
0 45

IRIS Interoperability, antes conocida como Ensemble, viene con muchos adaptadores integrados. No tiene un servicio o un adaptador para recibir correo. He escrito un servicio de correo electrónico para recibir mensajes de correo a través de SMTP que se pueden pasar a la operación de correo electrónico.

0 0
0 54
Artículo
Muhammad Waseem · Jun 28, 2022 Lectura de 3 min
Sintaxis de ObjectScript para GitLab

¡Hola Comunidad!

Recientemente, migré una serie de repositorios de Objectscript de formato XML a UDL.
Después de la migración, me decepcionó un poco la presentación en la interfaz web de GitLab.

Dado que la sintaxis de Objectscript es compatible con GitHub, pensé que también sería compatible con GitLab. Desafortunadamente, la librería utilizada por GitLab para resaltar el código no tiene una extensión para admitir Objectscript.

0 0
0 81

Hola Comunidad,

es un placer invitaros al próximo webinar para lanzar el siguiente reto/concurso: InterSystems Full Stack Contest Kick-off centrado en problemas del cambio climático! El tema de este webinar está dedicado a la Competición Full Stack.

Discutiremos los retos clave y los problemas que el cambio climático y el calentamiento global nos plantean y cómo podrían ser resueltos. Como siempre, nuestros expertos responderán a preguntas sobre como desarrollar, contruir y desplegar soluciones full-stack utilizando InterSystems IRIS.

Date & Time: Lunes, Junio 27 – 15:00 CEST (09:00 AM EDT)

Oradores:
🗣 ​​​Ainar Abdrakhmanov, experto en cambio climático, co-autor de 4 waves course, Co-Fundador, SEO en Longevica
🗣 @Timothy Leavitt, InterSystems Development Manager
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager

0 0
0 35

Como sabéis, hay una etiqueta llamada "Mejores Prácticas", que se utiliza para destacar artículos de la Comunidad de Desarrolladores que incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems. Cada 1-2 semanas los expertos de la companía eligen un nuevo artículo.

Hasta ahora, solo tienen dicha etiqueta artículos originales en inglés o artículos en español traducidos al inglés. La buena noticia es que ya podéis proponer artículos en español para que sean evaluados, aunque no estén traducidos al inglés.

¿Cómo podéis proponer un artículo?

0 0
0 36
Artículo
Ricardo Paiva · Jun 23, 2022 Lectura de 7 min
Conector Power BI para InterSystems IRIS. Parte I

En un mundo en constante cambio, las empresas deben innovar para ser competitivas. Esto asegura que tomarán decisiones con agilidad y seguridad, aspirando a obtener buenos resultados con mayor exactitud.

Las herramientas de Business Intelligence (BI) ayudan a las compañías a tomar decisiones inteligentes en vez de confiar en la "prueba y error". Estas decisiones inteligentes pueden ser la diferencia entre el éxito y el fracaso en el mercado.

Microsoft Power BI es una de las herramientas de Business Intelligence líderes. Con unos pocos clics, Power BI permite a los gerentes y analistas explorar los datos de la compañía. Esto es importante porque cuando es fácil accceder y visualizar los datos, es más probable que se usen para tomar decisiones.


2 1
1 83

Digamos que tengo una clase persistente en IRIS con una propiedad opcional EmailOptIn:

Class Person Extends %Persistent
{
Property Name As %String;
Property EmailOptIn As %Boolean;
}

Más tarde me doy cuenta de que estoy haciendo muchas comprobaciones nulas en esta propiedad donde no debería ser necesario. La solución es hacer de esto una propiedad requerida:

0 0
0 52

¡Hola a todos!

En el artículo anterior, combinamos ZPM con Config-API para cargar una configuración en la instalación/carga de un módulo. Podría ser útil para aplicaciones pequeñas, pero no es conveniente para aplicaciones grandes.

Puede que necesites crear varios namespaces e instalar muchos módulos zpm en diferentes namespaces. Usar el documento de configuración en la instalación/carga de zpm es un problema para este caso especial. Además, incluso si solo necesitas un módulo y un namespace, el cliente ZPM está diseñado para que se instale en el namespace actual y no es posible cambiar a otro namespace durante la instalación. Por lo tanto, si necesitamos que se instale en un namespace específico, debe existir antes de utilizar el cliente ZPM.

0 0
0 52

¡Hola Comunidad!

Hemos grabado el webinar que hicimos ayer y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!

Pierre-Yves Duquesnoy mostró toda la potencia de SAM, la herramienta de monitorización de InterSystems IRIS. Presentó la arquitectura de SAM y su instalación; y monitorizó varios sistemas IRIS agrupados en clusters. Además, extendió las métricas existentes para monitorizar métricas de aplicaciones adicionales.... ¡y muchas cosas más! Por eso, si queréis conocer SAM a fondo, ¡no os perdáis el vídeo!

SAM: Monitorizando InterSystems IRIS con Grafana y Prometheus

0 0
0 42