¡Hola a tod@s!

En las partes anteriores (1, 2) de este artículo, hablamos de Globals como árboles. En esta tercera parte, los veremos como matrices dispersas.

Una matriz dispersa es un tipo de matriz donde la mayoría de los valores asumen un valor idéntico.

En la práctica, a menudo veréis matrices dispersas tan grandes que no tiene sentido ocupar memoria con elementos idénticos. Por lo tanto, tiene sentido organizar matrices dispersas de tal manera que no se desperdicie memoria al almacenar valores duplicados.

En algunos lenguajes de programación, las matrices dispersas son parte del lenguaje (por ejemplo, en J, MATLAB). En otros lenguajes, hay bibliotecas especiales que permiten usarlas. Para C ++, esos serían Eigen y similares.

Los Globals son buenos candidatos para implementar matrices dispersas por las siguientes razones:

3 0
0 473
Artículo
· 27 ago, 2019 Lectura de 11 min
Presentación de InterSystems API Manager

¡Hola a tod@s!

Como posiblemente haya oído, acabamos de presentar InterSystems API Manager (IAM); una nueva característica de InterSystems IRIS Data Platform™, que permite monitorizar, controlar y gobernar el trafico desde y hacia APIs basadas en web, dentro de su infraestructura de TI. En caso de que se lo haya perdido, aquí está el enlace al anuncio.

En este artículo, mostraré como habilitar IAM y resaltar algunas de las muchas capacidades a las que IAM permite sacar provecho.

0 0
0 472

¡Hola a tod@s!

Al usar Studio, ODBC o una conexión de terminal a Caché o Ensemble, quizás se haya preguntado cómo podría implementar una conexión segura. Una opción es agregar TLS (también conocido como SSL) a su conexión. Las aplicaciones cliente de Caché (TELNET, ODBC y Studio) todas entienden cómo agregar TLS a la conexión. Tan solo es necesario configurarlas para hacerlo.

Configurar esos clientes es más fácil en la versión 2015.1 y posteriores. A continuación discutiré este nuevo método. Si ya usa el viejo método, este seguirá funcionando, pero le recomiendo considerar pasarse al nuevo.

1 0
0 461

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

¿Por dónde empezamos?

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.

2 1
0 457

"Así que su jefe le gritó por enviarle una página web con un "Hello World" sin formato"

Nuestra lección anterior terminó cuando proporcionamos un valor para el Mensaje desde Caché a un servicio REST para el cliente, y utilizamos Angular interfaz de usuario. Aunque hay muchas partes móviles involucradas en el proceso, la página no es especialmente emocionante en este momento. Antes de que empecemos a añadir nuevas funciones, deberíamos retroceder un poco y revisar nuestras herramientas.


0 0
0 453

¡Hola a todos!

Como seguramente ya sabréis, ya está disponible en Docker Hub una versión totalmente gratuita de InterSystems IRIS for Health (I4H). Se trata de la versión Community y, como digo, es totalmente gratuita y funcional. Ya se ha hablado de ella en algunos artículos y posts,... así que hoy no va de eso. Aquí vamos a ver el "misterioso caso de la desaparición o, mejor, ausencia de mis datos persistentes cuando arranco el contenedor con la opción durable" (no he encontrado la fuente de letra terrorífica para darle más suspense... el editor de posts da para lo que da smiley ) .

1 0
0 441
Artículo
· 25 abr, 2019 Lectura de 2 min
Cómo instalar y usar TFS en Atelier

Hola,

Este es un breve tutorial para instalar y usar TFS en Atelier. Está basado en mi propia experiencia y algunos trucos que he detectado.

Si está familiarizado con Visual Studio puede que sientas que es un poco lento y pesado, pero tendrás el mismo panel de TFS que el que tienes en Visual Studio, por lo que no necesitarás un entrenamiento especial para usarlo.smiley

2 0
0 422

++ Update: August 1, 2018

El uso de la dirección IP virtual (VIP) de InterSystems incorporada en Mirroring de la base de datos de Caché tiene ciertas limitaciones. En particular, solo puede utilizarse cuando los miembros Mirror se encuentran en la misma subred. Cuando se utilizan varios centros de datos, las subredes normalmente no se “extienden” más allá del centro de datos físico debido a la complejidad añadida de la red (puede obtener más información aquí). Por las mismas razones, la IP virtual con frecuencia no puede utilizarse cuando la base de datos se aloja en la nube.

0 0
0 394


Los globales de InterSystems Caché proporcionan un conjunto de funciones muy útiles para los desarrolladores. Pero, ¿por qué los globales son tan rápidos y eficientes?

Teoría

Básicamente, la base de datos de Caché es un catálogo con el mismo nombre que la base de datos y contiene el archivo CACHE.DAT. En los sistemas Unix, la base de datos también puede ser una partición normal del disco.

0 0
0 386
Artículo
· 26 sep, 2019 Lectura de 8 min
SYSLOG - Qué es en realidad y qué significa

¡Hola a todos!

En esta publicación me gustaría hablar sobre la tabla syslog: qué es, cómo analizarla, cuáles son realmente las entradas y por qué puede ser importante para usted. La tabla syslog puede contener información de diagnóstico importante. Si su sistema tiene algún problema, es importante entender cómo analizar esta tabla y qué información contiene.

<--break->¿Qué es una tabla syslog?

0 0
0 373
Artículo
· 14 nov, 2019 Lectura de 15 min
Despliegue de aplicaciones con %Installer
¡Hola Comunidad!

Suponga que desarrolló su propia aplicación con la tecnología de InterSystems y ahora quiere realizar varias implementaciones en sus distintos clientes. Durante el proceso de desarrollo usted escribió una guía de instalación detallada para aplicarla, ya que no solo necesita importar clases, también configurar el entorno de acuerdo a sus necesidades.

Para atender esta tarea específica, InterSystems creó una herramienta especial llamada %Installer. Siga con la lectura para saber cómo utilizarla.

0 0
0 348
Artículo
· 14 jun, 2019 Lectura de 5 min
La aplicación IRIS API Explorer

InterSystems IRIS 2019.2 introducirá nuevas funciones, muy interesantes. Una de las áreas con novedades que teneis que conocer es la Gestión de APIs.

Para InterSystems IRIS, se ha añadido soporte de una metodología Design-First o API-First. Este método permite realizar primero el diseño de la especificación y después generar el lado del servidor automáticamente a partir de ella.

0 0
0 332

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.

0 0
0 310
Artículo
· 8 oct, 2019 Lectura de 4 min
Funciones útiles para DNI

Hola a todos:

En este artículo quiero compartir unas funciones con vosotros, que espero os sean útiles en algún momento.

Definiciones

DNI: Documento Nacional de Identidad. Se compone de diferentes series de números y letras, que acreditan la identidad y los datos personales del titular, así como la nacionalidad española. Ejemplo: 94494452X

NIE: Número de Identificación Extranjero: Es un código para extranjeros en España.

Si necesitas generar ejemplos, puedes generar ejemplos de DNI o NIE en el siguiente enlace:

2 2
0 302

Comenzamos con la primera parte de esta serie de artículos que describe cómo desarrollar un Backend de servicios REST con Caché.

Parte 1 - Configuración

Para empezar desde cero, crearemos un Namespace para nuestra nueva aplicación: WIDGETDIRECT, y la configuraremos con bases de datos que incluyan Códigos, Datos y las funciones de Seguridad que sean apropiadas.

Nuestro siguiente paso es configurar 2 aplicaciones para que presenten el contenido en la web, una para el contenido de la web en Angular y otra que proporcione el contenido de la Transferencia de Estado Representacional (REST).

0 0
0 295

Ya está disponible la edición gratuita de InterSystems IRIS (InterSystems IRIS Community Edition) en la nube de AWS

¡Hola a tod@s!,

Es muy común que gente nueva usando InterSystems IRIS quiera comenzar a experimentar y trabajar en algún proyecto personal en un entorno gratuito. Si eres uno de ellos, ¡tenemos buenas noticias para ti!! Ya puedes usar la a edición gratuita de InterSystems IRIS (InterSystems IRIS Community Edition) en la nube de AWS.

0 0
1 295
Artículo
· 17 jun, 2019 Lectura de 2 min
GitHub ahora soporta ObjectScript

¡Hola a tod@s! Hoy traigo buenas noticias para la Comunidad:

Hace unos días, GitHub se actualizó con la última versión del proyecto linguist, que se utiliza para reconocer los tipos de código fuente en los repositorios. Ayuda a determinar qué lenguaje de programación se ha utilizado en cada archivo del repositorio. La sección de estadísticas del repositorio muestra los resultados del trabajo de este módulo.

Además, se puede buscar en todos los repositorios disponibles de GitHub para cualquier idioma elegido.

0 0
0 279
Artículo
· 29 jul, 2019 Lectura de 4 min
Búsquedas en campos de texto libre de forma rápida

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

0 1
0 276

¡Hola!

Creo que lo más sencillo es (trabajando con un csv delimitado por ";"):


set file = ##class(%File).%New( "data.csv" )
    set sc = file.Open( "R" )
    if $$$ISERR(sc) quit    ; or do smth
    while 'file.AtEnd {
        set str=file.ReadLine()
        for i=1:1:$length( str, ";" ) {
            set id=$piece( str, ";" ,i )
            write !, id  // or do smth
        }
    }
    do file.Close()

Opciones posibles:

Distintas variantes de manejo de errores con código sc.

Introducir un bucle while dentro de un bloque try/catch.

0 0
0 275

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 260

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 255
Artículo
· 5 jun, 2019 Lectura de 7 min
El arte de mapear Globals para Clases (1 de 3)

¿Alguno de ustedes desea traer de vuelta una antigua aplicación MUMPS? Siga estos pasos para mapear sus globales ya establecidos para clases y mostrar todos esos hermosos datos en Objects y SQL

Al seguir los sencillos pasos en este artículo y los dos siguientes, podrá mapear todas las variables globales, excepto las más difíciles, para clases de Caché. Para los que estén locos pondré un archivo zip con diferentes mapeos que he coleccionado a lo largo de los años. Esto NO es para datos nuevos; si no cuenta con datos globales ya establecidos, por favor, utilice el almacenamiento predeterminado.

0 0
0 255
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 251

¡Hola Comunidad!

En publicaciones anteriores, mi compañero Murray mostró cómo se pueden recopilar métricas históricas de rendimiento utilizando los pButtons. Hablamos primero de los pButtons porque se instalan con cada instancia de las plataformas de datos (Ensemble, Caché, …). Sin embargo, existen otras formas para recopilar, procesar y desplegar las métricas de rendimiento de Caché, en tiempo real, ya sea con la finalidad de realizar una supervisión sencilla o, lo más importante, para llevar a cabo operaciones analíticas mucho más sofisticadas y obtener la capacidad de planificación. Uno de los métodos utilizados más comunes para recopilar datos es el SNMP (Protocolo simple de administración de la red).

0 0
0 242
Artículo
· 16 abr, 2019 Lectura de 3 min
Copiar parte de las propiedades de un objeto a otro

A veces, necesitamos copiar parte de las propiedades de un objeto en otro diferente.

La forma mas facil sería hacer lo siguiente:

Set obj1.FirstName = obj2.FirstName

Set obj1.SecondName = obj2.SecondName

¿Que sucede si el objeto contiene un gran número de propiedades? ¿Y si solo necesitamos extraer un importante grupo de datos, y complementar la información en otro objeto?

Tenemos las siguientes clases:

3 0
0 237