Artículo
· 22 nov, 2022 Lectura de 5 min
InterSystems IRIS con Laravel (a través de ODBC)

Últimamente me han preguntado en varias ocasiones cómo hacer que el Framework Laravel funcione con InterSystems IRIS Data Platform. Ha pasado un tiempo desde la publicación de este anuncio sobre Laravel e InterSystems Caché. En este artículo mostraremos unas breves instrucciones sobre cómo configurar un proyecto Laravel para usarlo con InterSystems IRIS a través de ODBC.

¿Qué es Laravel?

0 0
1 70
Artículo
· 21 nov, 2022 Lectura de 8 min
Introducción a Django - 2ª parte

En la primera parte de este artículo he mostrado cómo empezar un nuevo proyecto en Django, y cómo definir nuevos modelos y añadir modelos ya existentes.

En esta publicación, voy a mostrar un Panel de Administración (disponible con la configuración predeterminada) y cómo puede ser útil.

Nota importante: si intentáis reproducir los pasos de este artículo, no funcionará para vosotros. Porque mientras escribía la publicación he realizado varios ajustes en el proyecto django-iris, e incluso en el driver DB-API de InterSystems, para arreglar algunos problemas ahí también, y creo que el driver aún está en desarrollo y habrá un driver más estable en el futuro. Así que vamos a asumir que este artículo solo explica cómo podría ser si tuviéramos todo terminado.

1 0
1 87

YASPE es el sucesor de YAPE (Yet Another pButtons Extractor). YASPE ha sido escrito desde cero con muchos cambios internos para facilitar el mantenimiento y añadir mejoras.

Funcionalidades de YASPE:

  • Analizar y representar gráficamente los archivos de InterSystems Caché pButtons e InterSystems IRIS SystemPerformance para un rápido análisis de rendimiento de las métricas de IRIS y del Sistema Operativo.
  • Facilitar un análisis profundo, creando gráficos tanto ad-hoc como combinando métricas de IRIS y del Sistema Operativo con la opción "Pretty Performance".
  • La opción "System Overview" te ahorra tener que buscar en los archivos SystemPerformance detalles del sistema u opciones de configuración comunes.

YASPE está escrito en Python y está disponible en GitHub como código fuente o para contenedores Docker en:


0 0
0 49
Artículo
· 14 nov, 2022 Lectura de 2 min
Comandos útiles de ObjectScript de una sola línea

¡Amigos!

Hace poco encontré en la Comunidad varios comandos de ObjectScript de una única línea y creo que estaría genial no perderlos y recopilar más.

Por eso he decidido recoger unos cuantos ejemplos, ponerlos en este proyecto en Open Exchange, y compartirlos con vosotros!

Así es como podéis usarlos.

0 0
0 100

¡Hola desarrolladores! Quería compartir hoy un ejemplo muy interesante por parte de Tani Frankel. Se trata de una aplicación sencilla sobre la utilidad SystemPerfomance.

Repasando nuestra documentación sobre la rutina de monitorización ^SystemPerformance (conocida como ^pButtons en versiones anteriores a IRIS), un cliente me dijo «Entiendo todo esto pero ojalá fuese más simple, más sencillo para definir perfiles y gestionarlos, etc.».

Entonces pensé que sería interesante como ejercicio facilitar una pequeña interfaz para hacer esas tareas más sencillas.

El primer paso era envolver en una API basada en clases la rutina actual de ^SystemPerformance.

0 1
0 265


Puede que lo sepáis, pero IRIS es una base de datos con la capacidad de ejecutar código.

La parte de ejecución de código se llama Servidor de Aplicación.

Actualmente IRIS permite dos lenguajes de forma nativa: ObjectScript y Python.
Ejecutar código está bien, pero saber cómo organizarlo es aún mejor.

0 0
0 106

Según la consultora IDC, el 80% de todos los datos producidos son NoSQL. Mira:

Hay documentos digitales y escaneados, textos online y offline, contenido BLOB (objeto binario grande) en SQL, imágenes, vídeos y audio. ¿Te imaginas una iniciativa de Analítica Corporativa sin todos estos datos para analizar y apoyar las decisiones?

1 0
1 111

¡Hola a todos!

En una reciente actualización de MessageViewer @Henrique Dias y yo propusimos una nueva manera de visualizar mensajes en IRIS Interoperability. En esa actualización, intentamos dar a los usuarios una visualización basada en un diagrama de secuencia UML. Tenéis más information en el artículo anterior.

Para conseguir los complicados cálculos geométricos necesarios para realizar ese diagrama, usamos mermaid, una extraordinaria librería JavaScript open source. Y lo que me gustaría compartir con vosotros en este artículo es cómo utilizar esa librería. Me centraré solo en el diagrama de secuencia, pero estad seguros de que la librería permite hacer mucho más.

Mermaid utiliza una sintaxis inspirada en Markdown para definir los diagramas. Es super intuitivo, por eso es mejor mostraros un ejemplo en lugar de escribir un montón de texto aburrido:

0 0
0 250
Artículo
· 11 mayo, 2022 Lectura de 3 min
Cómo añadir VSCode a tu contenedor IRIS

Una de las formas más sencillas de configurar entornos de desarrollo repetibles es utilizar contenedores para ellos. Descubrí que cuando cambian rápidamente, era muy conveniente alojar una instancia de vscode dentro de mi contenedor de desarrollo. De este modo, he creado un script de contenedor sencillo que permite añadir en un contenedor IRIS un vscode basado en un navegador. Esto debería funcionar para la mayoría de los contenedores 2021.1 y posteriores. El repositorio de mi código se puede encontrar aquí

0 1
0 102

Este artículo es una continuación de este otro sobre cómo migrar de bases de datos populares (como PostgreSQL y MySQL) a IRIS.

Utilizaremos los mismos procedimientos utilizados para migrar desde PostgreSQL. Sin embargo, verás que es aún más fácil ya que los tipos de datos en MySQL son muy similares a los de IRIS. Por eso no necesitaremos crear reglas de transformación en las columnas.

Obtención de los datos de muestra para realizar el proceso de migración

En Github es posible descargar un proyecto de Docker Compose para crear y ejecutar 2 bases de datos:

  • Source Database (Base de datos de origen): Instancia Docker de la base de datos ejemplo MySQL.
  • Target Database (Base de datos objetivo): Instancia Docker de InterSystems IRIS con un esquema preparado para recibir la base de datos de origen.

0 0
0 135

Hola a todos! Comentamos hoy una entrada de Timothy Leavitt cuyo equipo (Application Services en InterSystems - encargado de desarrollar y mantener muchas de nuestras aplicaciones internas, y proporcionar herramientas y prácticas recomendadas a otras aplicaciones departamentales), durante el último año, se embarcó en un viaje hacia el desarrollo de interfaces de usuario basadas en Angular/REST, para las aplicaciones existentes construidas originalmente con CSP y/o Zen.

1 2
0 154

¡Hola desarrolladores!

Para mí, una de las peores cosas de ObjectScript es tener que escribir la sentencia ##class(Class).Method() para llamar a un método de clase en código o en un terminal. Incluso envié una idea para simplificarlo en ObjectScript.

¡Pero! Hay una nueva funcionalidad en VSCode ObjectScript que acaba de ser añadida al plugin - ¡Copy Invocation!

0 0
0 111
Artículo
· 23 sep, 2022 Lectura de 5 min
Caso de uso de Python Embebido con Azure Service Bus (ASB)

Resumen

Empezamos a usar Azure Service Bus (ASB) como solución de mensajería empresarial hace tres años. La hemos usado para publicar y consumir datos entre muchas aplicaciones de la organización. Como el flujo de datos es complejo, y normalmente se necesitan los datos de una aplicación en muchas otras aplicaciones, el modelo publicador -> múltiples subscriptores resultó muy adecuado. El uso de ASB en la organización es de docenas de millones de mensajes por día, mientras que la plataforma IRIS tiene unos 2-3 millones de mensajes/día.

El problema con ASB

Cuando empezamos con la integración de ASB, encontramos que el protocolo AMQP no tiene la configuración predeterminada para la implementación de IRIS, por lo que estuvimos buscando una solución alternativa para poder comunicar con ASB.

2 1
1 97

Acabo de redactar un ejemplo rápido para ayudar a un colega a cargar datos en IRIS desde R usando RJDBC y pensé que sería útil compartirlo aquí para futuras consultas.

Fue bastante sencillo, aparte de que a IRIS no le gusta el uso de puntos "." en los nombres de las columnas; la solución alternativa es simplemente renombrar las columnas. Alguien con más conocimientos que yo en R seguramente pueda ofrecer un enfoque más amplio smiley

# Es necesario un valor válido para el JAVA_HOME antes de cargar la librería (RJDBC)
Sys.setenv(JAVA_HOME="C:\\Java\\jdk-8.0.322.6-hotspot\\jre")
library(RJDBC)
library(dplyr)

# Conexión a IRIS – se requiere la ruta a la librería JAR de InterSystems JDBC JAR de tu instalación
drv <- JDBC("com.intersystems.jdbc.IRISDriver", "C:\\InterSystems\\IRIS\\dev\\java\\lib\\1.8\\intersystems-jdbc-3.3.0.jar","\"")
conn <- dbConnect(drv, "jdbc:IRIS://localhost:1972/USER", "IRIS Username", "IRIS Password")
dbListTables(conn)

# Para mayor confusión, cargar el dataset de IRIS:)
data(iris)

# A IRIS no le gustan los puntos "." en el nombre de las columnas, así que los renombramos. (Probablemente se pueda codificar de una forma más genérica, pero no soy muy bueno con R.)
iris <- iris %>% rename(sepal_length = Sepal.Length, sepal_width = Sepal.Width, petal_length = Petal.Length, petal_width = Petal.Width)

# dbWriteTable/dbGetQuery/dbReadTable funcionan
dbWriteTable(conn, "iris", iris, overwrite = TRUE)
dbGetQuery(conn, "select count(*) from iris")
d <- dbReadTable(conn, "iris")

0 0
0 71

Iris-python-template

Proyecto de plantilla con varios códigos Python para ser utilizados con InterSystems IRIS Community Edition con contenedor.

Contenido:

  • Bloc de notas
    • Kernel de Python Embebido
    • Kernel de ObjectScript
    • Kernel de Vanilla Python
  • Python Embebido
    • Ejemplo de código
    • Demostración de Flask
  • API nativas de Python de IRIS
    • Ejemplo de código

Diagrama

2 0
1 253

La Función como Servicio (FaaS) es un modelo de computación en la nube que proporciona una plataforma que permite a los clientes desarrollar, ejecutar y gestionar funcionalidades de aplicaciones sin la complejidad de crear y mantener la infraestructura típicamente asociada con el desarrollo y lanzamiento de una app. Crear una aplicación siguiendo este modelo es una forma de conseguir una "arquitectura sin servidor ", y se suele utilizar cuando se crean aplicaciones basadas en microservicios.

Wikipedia

FaaS es un enfoque muy popular para ejecutar cargas de trabajo en la nube, permitiendo a los desarrolladores centrarse en escribir código.

Este artículo muestra cómo desplegar métodos de InterSystems IRIS con un modelo FaaS.

0 0
0 106
Artículo
· 26 sep, 2021 Lectura de 8 min
¡Luchemos contra las máquinas!

https://media.giphy.com/media/Nxu57gIbNuYOQ/giphy.gif

Calma, calma, no estoy promoviendo una guerra contra las máquinas como en las películas de ciencia ficción, para evitar la dominación mundial de Ultron o Skynet.
Todavía no, todavía no 🤔

Os invito a retar a las máquinas a través de la creación de un juego muy sencillo usando ObjectScript con Python embebido.

1 1
0 586
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 95
Artículo
· 29 sep, 2022 Lectura de 2 min
Cómo instalar EnsDemo en IRIS

Como sabéis, el namespace EnsDemo de Ensemble ya no está disponible en IRIS.

Esto es algo positivo, ya que IRIS está orientada a la nube y por lo tanto debe ser lo más ligera y rápida posible. La nueva forma de compartir ejemplos de código o módulos es a través de git, integración continua y OpenExchange.

Pero no os preocupéis, somos conscientes de que, en algunos casos, querréis volver a recuperar ejemplos y código presente en EnsDemo, ya sea como fuente de inspiración o para ayudaros a revisar buenas prácticas.

0 0
0 93
Artículo
· 26 sep, 2022 Lectura de 2 min
Cómo depurar Business Operations

A veces necesitamos depurar una Business Operation (BO). El registro y seguimiento (trazas) funcionan, pero a veces quieres trabajar con una BO en tu sesión en el terminal local.

Así es como puedes hacerlo en cualquier sistema operativo.

Windows tiene una estupenda herramienta para depurar Business Operations - en modo Foreground. En ese modo, Windows ejecuta un terminal local con un job para la operación.

0 0
0 91

¡Hola a todos!

Hoy instalaremos Jupyter Notebook y vamos a conectarlo con Apache Spark e InterSystems IRIS.

Nota: Los siguientes procedimientos los hice en Ubuntu 18.04 y Python 3.6.5.

Introducción

Si estás buscando un bloc de notas que sea reconocido, difundido ampliamente y muy popular entre los usuarios de Python, en lugar de utilizar Apache Zeppelin, deberías elegir Jupyter notebook. Jupyter notebook es una excelente y muy poderosa herramienta para la "ciencia de datos", que cuenta con una comunidad muy grande, además de muchas funciones y software adicional. Jupyter notebook permite crear y compartir documentos que contienen código en tiempo real, ecuaciones, visualizaciones y texto narrativo. Sus aplicaciones incluyen la limpieza y transformación de los datos, simulaciones numéricas, modelamiento estadístico, visualización de datos, machine learning y muchas funciones más. Y lo más importante, existe una gran comunidad que ayuda a resolver los problemas que surjan.

0 1
0 467
Artículo
· 22 sep, 2022 Lectura de 5 min
¿Cómo encontrar el conjunto de datos que necesitas?

¡Hola Comunidad!

Durante años he trabajado en muchos proyectos diferentes y he podido encontrar muchos datos interesantes.

Pero la mayoría de las veces el conjunto de datos con el que trabajaba era de los clientes. Cuando hace un par de años empecé a participar en los Concursos de Programación de InterSystems, comencé a buscar conjuntos de datos web específicos.

Yo mismo he ido seleccionando algunos datos, pero he pensado: "¿Este conjunto de datos es suficiente para ayudar a otras personas?"

1 0
1 73
Artículo
· 19 sep, 2022 Lectura de 17 min
Cuatro APIs de base de datos

Una sesión simultánea en IRIS: SQL, Objects, REST y GraphQL

Kazimir Malevich, "Deportistas" (1932)

"¡Pues claro que no lo entiende! ¿Cómo puede una persona que siempre ha viajado en un carruaje tirado por caballos entender los sentimientos e impresiones del viajero expres o del piloto de aviones?"

Kazimir Malevich (1916)

Introducción

Ya hemos abordado el tema de por qué la representación de objetos/clases es superior a la de SQL para implementar modelos de áreas temáticas. Y esas conclusiones y hechos son tan ciertos ahora como lo han sido siempre. Entonces, ¿por qué deberíamos dar un paso atrás y hablar sobre las tecnologías que arrastran las abstracciones de vuelta al nivel global, donde habían estado en la era pre-objetos y pre-clases? ¿Por qué debemos fomentar el uso de "código espagueti", que provoca errores que son difíciles de rastrear y se basa en las habilidades de desarrolladores virtuosos?

Hay varios argumentos a favor de la transmisión de datos por medio de APIs basadas en SQL/REST/GraphQL en lugar de representarlos como clases/objetos:

3 0
0 1.5K

En el Centro de Soporte Internacional (WRC), vemos a menudo clientes que se han encontrado un problema al visualizar las páginas de catálogos SOAP en el navegador. Estas páginas nos sirven para visualizar el WDSL y poder testear los métodos y servicios descritos en el web service. En este artículo voy a explicar por qué se encuentran este error, y también propondré una solución. Esta explicación se centra en los síntomas observados en InterSystems IRIS, pero se ha podido ver un comportamiento similar en versiones más recientes de Caché.

El problema:

Estás intentando crear nuevos Servicios Web SOAP en InterSystems IRIS. Cuando vas a visualizar el Catálogo SOAP para ver lo que has creado hasta ese momento, aparece este error en tu navegador:

0 0
0 136

Nota: Lo que sigue es solo una guía. Cada cliente es diferente.

A través de nuestra experiencia en soporte ayudando a clientes, hemos visto muchos casos en los que no tener un plan de actualización adecuado (y documentado) conduce a problemas inesperados con prioridad de Crisis. En algunos casos, podemos solucionar el problema durante el periodo de actualización, pero no siempre, ya que algunas situaciones pueden requerir una investigación más exhaustiva que puede llevar días o incluso meses.

Es esencial documentar el proceso de actualización, incluyendo los pasos que se deben efectuar antes, durante y después de la actualización, ¡incluso en servidores y aplicaciones pequeñas! Además, un plan de actualización documentado es muy útil cuando involucra a terceros, como proveedores de software o hardware. Al entregar este documento a un proveedor externo (como InterSystems) se acelerará la comprensión de todo el contexto.

Después de trabajar con diferentes documentos, me gustaría compartir unas instrucciones generales para ayudaros a crear un plan de actualización o para ponerlo al día. Por supuesto, se me escaparán algunas cosas. Estoy seguro de que algunos de vosotros tenéis mucha experiencia y podréis añadir ideas y sugerencias, ¡así que no dudéis en comentar este artículo!

0 0
0 74

¡Hola desarrolladores!

Los que usáis Dockerfile para trabajar con InterSystems IRIS a menudo tenéis que ejecutar varias líneas de ObjectScript. Para mí, esto era el juego de "escapar de esto y aquello" cada vez, solo para ejecutar unos pocos comandos en ObjectScript a IRIS. Idealmente, preferiría programar en ObjectScript sin usar comillas o caracteres de escape.

Recientemente he encontrado un buen "hack" sobre cómo esto podría ser mejorado a exactamente este estado. Lo cogí del repositorio de @Dmitry Maslennikov y te permite usar Objectscript de una forma como si lo escribieras en el terminal de IRIS.

Esto es lo que tienes en dockerfile:

///
COPY irissession.sh /
SHELL ["/irissession.sh"]
RUN \
  do $SYSTEM.OBJ.Load("Installer.cls", "ck") \
  set sc = ##class(App.Installer).setup()
# bringing the standard shell back
SHELL ["/bin/bash", "-c"]
CMD [ "-l", "/usr/irissys/mgr/messages.log" ]
///

0 0
0 73