Esta publicación es el resultado directo de trabajar con un cliente de InterSystems que acudió a mí con el siguiente problema:

SELECT COUNT(*) FROM MyCustomTable

Esto tarda 0.005 segundos, con 2300 filas en total. Sin embargo:

0 0
0 139

Tengo un MacOS y Docker Desktop 2.2 (Engine 19.03).

Tengo un servicio REST funcionando en mi localhost (Mac) y estaba intentando invocarlo desde IRIS que se está ejecutando en un contenedor Docker. Si intentas algo así, no utilices localhost como configuración del servidor HTTP (usando una Business Operation, por ejemplo).

Tienes que utilizarhost.docker.internal.

0 0
0 139
Artículo
· 23 sep, 2019 Lectura de 3 min
SQL y Funciones definidas por el usuario

¡Hola a tod@s!

¿Alguna vez se han encontrado con una query de bajo rendimiento a la cual le falta algún dato para obtener el rendimiento deseado? ¿Han tenido la necesidad de llamar a una función desde una sentencia SQL? Me refiero a funciones definidas por el usuario, no a las funciones ya disponibles (como $LENGTH) o a las variables especiales (como $HOROLOG). Si es así, tenemos solución para esta necesidad - las 'funciones extrínsecas' o 'funciones definidas por el usuario'.

0 0
0 139

¡Hola Comunidad!

En mi artículo anterior, aprendimos estos temas:

  1. ¿Qué es Docker?
  2. Algunos de los beneficios de Docker
  3. ¿Cómo funciona Docker?
  4. Imagen de Docker
  5. Contenedores Docker
  6. Repositorio de imágenes Docker
  7. Repositorio de imágenes Docker de InterSystems
  8. Instalación de Docker
  9. Comandos básicos de Docker
  10. Ejecutar la Community Edition de IRIS utilizando Docker
  11. Interfaz gráfica de Docker Desktop

En este artículo trataré los siguientes temas:

  1. Uso del archivo Docker Compose (un fichero YAML)
  2. Uso del archivo Docker (empleado para construir una imagen Docker)
  3. Uso de Docker Volume

Comencemos.

0 2
0 138

Muchas veces es necesario copiar o enviar archivos a su instancia de docker.

En mi caso fue con el IRIS JDBC driver.

Docker tiene este enfoque para esto (créditos a https://docs.docker.com/engine/reference/commandline/cp/):

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Pero para copiar necesitas el nombre de tu docker. Escribe este comando para esto:

docker ps

En mi caso, my-iris es el nombre del docker.

0 0
1 138

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:

2 3
0 138

Este artículo describe un diseño arquitectónico de complejidad intermedia para DeepSee. Al igual que en el ejemplo anterior, esta implementación incluye bases de datos separadas para almacenar la información, la implementación y la configuración de DeepSee. También presenta dos nuevas bases de datos: la primera para almacenar los globals necesarios para la sincronización, la segunda para almacenar tablas de hechos e índices.

0 0
0 138

¡Hola Comunidad!

Este artículo es una guía sencilla sobre cómo preguntar y cómo conseguir respuestas en la Comunidad.

Ya que el objetivo obvio cuando publicamos una pregunta en la Comunidad es obtener una respuesta, veamos cómo conseguir buenas preguntas que tengan visibilidad para encontrar fácilmente.

1 0
0 138
Artículo
· 24 mayo, 2021 Lectura de 4 min
Cómo acceder a IRIS desde Rust

Qué te parece si te digo que muy pronto te podrás conectar a IRIS desde la aplicación escrita en Rust...

¿Qué es Rust?

Rust es un lenguaje de programación multiparadigma diseñado teniendo en cuenta el rendimiento, la seguridad y especialmente que la concurrencia sea segura. Rust es sintácticamente similar a C++, pero puede garantizar la seguridad de la memoria mediante el uso de un verificador de préstamos para validar las referencias. Rust logra la seguridad de la memoria sin emplear un recolector de basura, y el conteo de referencias es opcional. (c) Wikipedia.

Es el lenguaje más valorado durante los últimos cinco años en la encuesta de Stack Overflow 2020.

0 0
0 136

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

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:

1 1
0 136
Artículo
· 31 ago, 2022 Lectura de 2 min
Python Embebido y tcl tkinter en Windows

Si tu código de Python Embebido llama a la librería tkinter (que es usada por muchas librerías especializadas en la creación de gráficos, como matplotlib), puede que obtengas este error:

<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test() 
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:

c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library

This probably means that Tcl wasn't installed properly.

1 0
1 136

La Inteligencia Artificial (IA) está recibiendo mucha atención últimamente porque puede cambiar muchos aspectos de nuestras vidas. Una mayor potencia informática y más datos han ayudado a la IA a hacer cosas asombrosas, como mejorar las pruebas médicas y fabricar coches que se conducen solos. La IA también puede ayudar a las empresas a tomar mejores decisiones y a trabajar de forma más eficiente, por lo que cada vez es más popular y se utiliza más. ¿Cómo se pueden integrar las llamadas a la API OpenAI en una aplicación de interoperabilidad IRIS existente?

0 0
0 135

Durante una actualización a una versión principal (major) es aconsejable recompilar las clases y rutinas de todos tus namespaces (ver Tareas tras la instalación de una versión major).

do $system.OBJ.CompileAllNamespaces("u")
do ##Class(%Routine).CompileAllNamespaces()

Para automatizar esta tarea de administración y mantener un registro de cualquier error, os muestro un ejemplo de una clase para importar y compilar en el namespace USER, que puedes usar después de cada actualización: admin.utils.cls

1 1
0 135
Artículo
· 18 mayo, 2020 Lectura de 2 min
Cliente para WebSockets basado en Node.js

Los WebSockets, como tecnología de comunicación, están ganando una importancia cada vez mayor.
En el namespace SAMPLES puedes encontrar un buen ejemplo para ejecutar un WebSocket Server.
También hay un ejemplo útil para un Browser Client en el cual JavaScript hace la mayor parte del trabajo.

La cuestión es:
¿Cómo consumir la salida de un WebSocket Server en tu aplicación?

0 0
0 135

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

En la última publicación programamos recogidas de métricas de rendimiento usando pButtons, a lo largo de 24 horas. En esta publicación, analizaremos algunas de esas métricas clave que se están recogiendo y cómo se relacionan con el hardware del sistema subyacente. También empezaremos a explorar la relación entre las métricas de Caché (o de cualquiera de las plataformas de datos de InterSystems) y las métricas del sistema. Veremos también cómo usar estas métricas para entender el pulso diario de tu sistema y diagnosticar problemas de rendimiento.

0 0
0 135
Artículo
· 12 sep, 2022 Lectura de 5 min
Anonimización de datos con iris-Disguise

freepik- freepik.com
En primer lugar, ¿qué es la anonimización de datos?

Según la Wikipedia:

La anonimización es un tipo de sanitización de información cuya intención es la protección de la privacidad. Es el proceso de eliminar información personal de los conjuntos de datos, de modo que las personas que son descritas por los datos permanecen en el anonimato.

2 1
1 134
Artículo
· 3 sep, 2019 Lectura de 4 min
Evaluación de Sharding #1

¡Hola Comunidad!

Con IRIS nos llegó una INTERESANTÍSIMA funcionalidad - ¡SHARDING! Sin duda una gran característica.

Pero, ¿cómo puedo descubrir si encaja con mis aplicaciones actuales? ¿Hay alguna funcionalidad práctica para apostar por ello en mi perfecta aplicación transaccional? ¿O es sólo algo para las nuevas aplicaciones que vaya a diseñar?

1 0
0 134
Artículo
· 13 feb, 2020 Lectura de 1 min
Consejos de un perro viejo programador

Hola a todos,

Si queréis pasar un rato divertido y aprender alguna cosa fruto de la experiencia os recomiendo este video de unos colegillas que tengo en Málaga y que tienen muuuuuchas horas de desarrollo. Sus consejos sirven para todo, sí, también para ObjectScript e IRIS. ;-)

Los más viejos del lugar se van a reir mucho con anécdotas y se verán reflejados con algunas

https://youtu.be/Sk7Mbx_81Bg

1 0
0 134

Quizás algún día necesites utilizar Adaptive Analytics, así que aquí va un artículo sobre cómo empezar a desarrollar un dashboard (cuadro de mando) en Tableau conectando con el cubo de Atscale.

Preparación del PC

Necesitas conectar un driver. Yo uso Cloudera Hive. Puedes descargar el driver desde:
https://www.cloudera.com/downloads/connectors/hive/odbc/2-6-1.html

Tienes que registrarte, puedes hacerlo gratis. Necesitas descargar la versión correcta para tu sistema operativo.

La instalación es sencilla.

Preparación de AtScale

Publicación del proyecto

Para conectar a un cubo desde Tableau, tienes que publicar primero un proyecto con los cubos que te interesen.

Para publicarlo, ve a PROJECTS > "Project name" > DRAFT "Project name" > PUBLISH

0 0
0 134
Artículo
· 17 sep, 2020 Lectura de 2 min
Atelier - Depuración - Adjuntar al proceso

¡Hola Comunidad!

Me gustaría compartir con vosotros mi experiencia sobre la depuración con Atelier.

Estoy desarrollando una API REST y quiero adjuntar un proceso cuando llamo a la API desde una herramienta cliente REST, por ejemplo Postman. El objetivo es inspeccionar valores del HEADER y el BODY de la solicitud HTTP durante el proceso de depuración.

Voy a demostrarlo usando una clase del namespace SAMPLES.

1 - Abre Atelier

2 - Abre tu clase de servicio REST

2 0
0 133

Me gustaría compartir algunas funciones de almacenamiento que también existen en Caché y que son prácticamente desconocidas y en su mayoría no se utilizan. Por supuesto, están disponibles en IRIS y son más relevantes con arquitecturas de almacenamiento extensas y distribuidas.

0 0
0 133

Este artículo es una continuación de esta publicación.

En ese artículo, analizamos el desarrollo de business processes, que forman parte de los componentes necesarios para la integración del sistema y sirven como coordinadores de la producción.

En este artículo mostraremos la creación de un business service, que es la ventana de entrada de información para la producción.

0 0
0 133
Artículo
· 2 mar, 2021 Lectura de 1 min
Análisis de errores de aplicación

¡Hola, desarrolladores!

Como sabeis, los errores de la aplicación están en el global ^ERRORS. Aparecen si los llamas:

d e.Log() 

en la sección Catch de Try-Catch.

Con la propuesta de @Robert Cemper, ahora se puede utilizar SQL para examinarlo.

Inspirado por el módulo de Robert, presenté un módulo simple de IRIS Analytics que muestra estos errores en un dashboard:

1 0
0 133

Una de nuestras apps utiliza una consulta de clase para un informe ZEN y funciona perfectamente en ese informe, produciendo los resultados esperados. Hemos migrado a InterSystems Reports y nos hemos dado cuenta de que, para un informe que utiliza la misma consulta de clase, aparecen en la parte de abajo más de 100 filas extra con los mismos valores en las columnas.

Descartamos InterSystems Reports como fuente del problema reproduciendo el problema de "filas extra" con una hoja de cálculo de Excel que llama a la misma consulta de clase utilizando un procedimiento almacenado.

¿Cuál era el problema? Cuando llamábamos al procedimiento almacenado desde el antiguo ZEN Report o desde la función SQL Query en el Portal de Administración, no veíamos estas filas adicionales.

0 0
0 133