Artículo
· 28 feb, 2023 Lectura de 6 min
Como controlar el acceso a tus recursos con OAuth2

Buenas a todos,

una de las herramientas potentes que tiene Intersystems es la posibilidad de implementar en el propio sistema la autenticación OAuth2. Esta herramienta nos da la posibilidad de poder controlar quien accede a nuestros recursos y como accede.

A continuación planteo una solución ante el problema de querer controlar quien accede a mis recursos y la posibilidad de monitorizarlo. Para ello deberemos seguir los siguientes pasos:

7 0
3 310

¡Hola Comunidad!

En este artículo, comparo las características de los principales líderes en Operational Database Management Systems (ODBMS) del cuadrante mágico de Gartner (2019). La lista está clasificada por número de características existentes.

  1. InterSystems IRIS 2020.3 - 58 características (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls)
  2. Oracle Database 21c - 54 características (https://docs.oracle.com/en/database/oracle/oracle-database/index.html)
  3. Microsoft SQL Server - 45 características (https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15)
  4. AWS Aurora - PostgreSQL - 34 características (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Aurora...)

0 0
0 310
Artículo
· 16 mayo, 2022 Lectura de 3 min
¿Cómo de segura es una contraseña?

¿Cómo podemos comprobar si una contraseña es suficientemente segura, para evitar que sea descifrada? ¿Y cómo podemos crear una contraseña segura?

He desarrollado una herramienta que puede ayudar con esto. Puedes encontrarla en OpenExchange. Instálala con zpm

zpm "install passwords-tool"

Este módulo instalará solo una clase caretdev.Passwords, que contiene algunos métodos que pueden ayudarte.

0 0
0 310

Como ayuda para aquellos que quieren utilizar las funciones de la Base de datos documental (DocDB) dentro de InterSystems IRIS, y específicamente la API REST que proporciona, reuní una Colección Postman que ofrece muestras para varias llamadas básicas.

Por ejemplo:

0 0
0 308
Artículo
· 24 oct, 2019 Lectura de 3 min
Pruebas unitarias en Transformaciones de Datos

¡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.

2 0
0 305
Artículo
· 5 jul, 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 305

Principiantes- ver Parte 1.

3. Variantes de estructuras cuando se usan globals

Una estructura, como un árbol ordenado, tiene varios casos especiales. Echemos un vistazo a aquellos que tienen un valor práctico para trabajar con globals.

3.1 Caso especial 1. Un nodo sin ramas

Los globals pueden usarse no solo como una matriz, sino como variables regulares. Por ejemplo, para crear un contador:

2 1
1 302
Artículo
· 27 abr, 2022 Lectura de 3 min
¿Qué o quién está consumiendo mis licencias?

De vez en cuando, recibimos la pregunta anterior en soporte, algo o alguien está usando más licencias de las esperadas y necesitamos encontrar qué está pasando.

Tenemos dos escenarios. El primer escenario es cuando nos damos cuenta que las licencias están agotadas porque la aplicación no funciona o porque intentamos conectarnos a través del terminal y sale el "encantador" mensaje <LICENSE LIMIT EXCEEDED>:

2 0
0 299
Artículo
· 15 sep, 2023 Lectura de 42 min
IAM (InterSystems API Manager) - de cero a cien

Este artículo ha sido actualizado con respecto al original en inglés (más antiguo). Los ejemplos que se presentan aquí han sido validados con la última versión de IAM, actualmente la 3.2.1.0-4, y la versión más reciente de InterSystems IRIS, la 2023.2, que es la primera en que ya no se instala por defecto un servidor web.

Este artículo contiene los materiales, ejemplos y ejercicios necesarios para aprender los conceptos básicos de IAM.

Todos los recursos están disponibles en este git: https://github.com/grongierisc/iam-training.

Las soluciones están en esta rama.

2 0
2 296
Artículo
· 12 nov, 2021 Lectura de 21 min
Curso de formación sobre Ensemble / Interoperabilidad

Este curso de formación está dirigido a todas las personas interesadas en conocer el framework de Interoperabilidad de IRIS. Utilizaremos Docker y VSCode.

GitHub: https://github.com/grongierisc/formation-template

1. Formación en Ensemble/Interoperabilidad

El objetivo de esta formación es aprender el framework de interoperabilidad de InterSystems, y en particular el uso de:
* Producciones
* Mensajes
* Business Operations
* Adaptadores
* Business Processes
* Business Services
* Operaciones y servicios REST

1 0
0 295
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 292

Introducción

En este artículo, voy a contarles cómo logré realizar la integración en la plataforma Intersystems IRIS 2020 de una cuenta de correo Outlook Exchange con oAuth 2.0. Aunque esta tarea puede parecer sencilla, la realidad es que Intersystems IRIS 2020 no cuenta con los componentes necesarios para lograrlo. En mi caso, utilice código de la versión 2022 (puedes descargar la versión de evaluación) y lo adapté a la versión 2020. Si bien es factible actualizar entre versiones con el instalador IRIS 2022, esto toma semanas de pruebas antes de realizar el cambio en productivo, y la integración no podía esperar, es por esto que se optó por tomar componentes de IRIS 2022 y copiarlos/adaptarlos a la versión 2020.

21 2
2 291
Artículo
· 16 jul, 2024 Lectura de 4 min
Introducción al soporte WSGI

wsgi_logo

Contexto

La Interfaz de Pasarela de Servidor Web (WSGI, por sus siglas en inglés) es una convención de llamada para que los servidores web puedan reenviar solicitudes a aplicaciones o frameworks web escritos en el lenguaje de programación Python. WSGI es un estándar de Python descrito en detalle en PEP 3333.

🤔 Ok, gran definición, ¿y qué tiene que ver con IRIS?

2 2
0 291

Hace algunas semanas estaba leyendo un libro de Stephen Hawking y Leonard Mlodinow, El Gran Diseño. En un momento dado, intentando definir cosas como ¿por qué existimos?, ¿por qué utilizamos los modelos que utilizamos en física?,... bueno, ya sabéis, ese tipo de cosas... los autores se refirieron al ejemplo del Juego de la Vida inventado por el matemático John Coward en 1970... Básicamente el quería mostrar que un sistema con unas leyes fundamentales realmente simples (Física) podría evolucionar y "vivir" hasta convertirse en un sistema más complejo (Química) en el cual "algo" (humanos) podría descubrir su propio modelo y reglas complejas que explicasen su realidad... las reglas para este modelo determinista que el expuso eran tan básicas que pensé que sería divertido implementarlas en ObjectScript cuando tuviera un rato libre... hay otras implementaciones en JavaScript y en otros lenguajes... pero no en ObjectScript… y ¡!había que corregir eso!!… así que ¡aquí lo tienes!

1 0
0 291

¡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 Solovyev 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 289

¡Hola desarrolladores!

Muchos de vosotros publicáis vuestras bibliotecas de InterSystems ObjectScript en Open Exchange y Github.

Pero, ¿qué puedes hacer para facilitar a los desarrolladores el uso y la colaboración en tu proyecto?

En este artículo, quiero presentar una forma sencilla de poner en marcha y contribuir en cualquier proyecto ObjectScript con solo copiar un conjunto estándar de archivos en tu repositorio.

¡Vamos!

0 0
0 286

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 285

¡Hola desarrolladores!

Últimamente he estado probando el módulo csvgen y buscaba un fichero CSV para probar. Resulta que encontré un fichero muy interesante en Data.World con estadísticas sobre los episodios de Game of Thrones (Juego de Tronos). Estadísticas sobre muertes 😱.

¡Han documentado todos los asesinatos a lo largo de las 8 temporadas y han anotado dónde, quién, qué clan y con qué arma ha matado a otro personaje!

0 0
0 285
Artículo
· 28 oct, 2019 Lectura de 4 min
Cómo reenviar solicitudes en un servicio REST

¡Hola Comunidad!

Una función útil de nuestra estructura REST es la capacidad que tienen las clases de Dispatch para identificar los prefijos de una solicitud y redireccionarlos a otra clase de Dispatch. Este enfoque permite mejorar el orden y la lectura del código, permite mantener separadas las versiones de una interfaz fácilmente y ofrece una forma de proteger llamadas a APIs a las que solo ciertos usuarios podrán acceder.

0 1
0 283

¡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 ;-)

0 0
0 281

Hola a todos,

con este artículo, me gustaría mostrar lo fácil y dinámicamente que puede ser configurada nuestra herramienta de Alerta y Monitorización de Sistema (SAM, del inglés System Alerting and Monitoring). El caso de uso podría ser el de un flujo de aprovisionamiento CI/CD ágil y rápido, donde queráis ejecutar vuestros tests unitarios y de estrés, y podáis ver rápidamente si los tests tuvieron éxito o cómo están estresando el sistema y tu aplicación ( el API de SAM en el backend de InterSystems IRIS es extensible para tu implementación APM).

0 0
0 278

En este artículo explicaré cómo, mediante programación, creé el usuario, concedí privilegios, habilité/deshabilité y autentifiqué/invalidé una aplicación web en mi aplicación Data_APP_Security (https://openexchange.intersystems.com/package/Data_APP_Security)

0 1
0 276

Quería compartiros hoy un pequeño truco para personalizar cómo se muestran los mensajes en el Visor de Mensajes. En concreto, cómo mostrar mensajes JSON directamente en el Visor de Mensajes en lugar de serializados como XML.

image

3 2
0 274

Preguntas frecuentes de InterSystems

En el siguiente ejemplo, un archivo de imagen se codifica en una cadena Base64 en una propiedad de clase, se guarda, se decodifica la cadena en Base64 y se restaura en otro archivo.

【Classe ejemplo】

Class User.test Extends %Persistent
{
Property pics As %GlobalBinaryStream;
}


【Cuando se importa】

0 0
0 273
Artículo
· 11 abr, 2023 Lectura de 3 min
Tutorial rápido para crear bases de datos de ejemplo

Introducción

Este es un sencillo tutorial sobre la manera más rápida que conozco para crear una base de datos de ejemplo para cualquier propósito, como hacer pruebas, hacer ejemplos para tutoriales, etc.

Creando un namespace

  1. Abre el terminal
  2. Escribe "D $SYSTEM.SQL.Shell()"
  3. Escribe "CREATE DATABASE " y el nombre que quieres para tu namespace.

Ahora tienes un nuevo namespace de una manera más rápida que creándolo desde el Portal de Gestión - que por supuesto ofrece más opciones de configuración.

1 0
0 273