Las herramientas que utilizan los astrónomos

Hace 6 años, el 19 de diciembre del 2013, la Agencia Espacial Europea (ESA) lanzó un telescopio orbital llamado Gaia. Podéis obtener más información sobre la misión Gaia en la página web oficial de la Agencia Espacial Europea o en el artículo de Vitaly Egorov (Billion pixels for a billion stars).

Y sin embargo, pocas personas saben cuál fue la tecnología que utilizó la agencia para almacenar y procesar los datos recopilados por Gaia. En 2011, dos años antes del lanzamiento, los desarrolladores barajaban varias opciones (consultar "Astrostatistics and Data Mining" escrito por Luis Manuel Sarro, Laurent Eyer, William O'Mullane, Joris De Ridder, pp. 111-112):

1 0
0 141

¡Hola Comunidad!

Solo por diversión, creé un script de bash que genera archivos csv a partir de un archivo exportado %GOGEN.
(%GOGEN es la herramienta para exportar globales para Cache 5.xx)

Al principio creí que sería muy simple con bash, pero...
- si se quiere tener un encabezado en el archivo csv
- si se exportan con GOGEN más globales juntos, no solo uno
- si se desea un archivo csv para cada global/índice que tiene el global...

0 0
0 2K

Este artículo, y los dos siguientes de la serie, se conciben como una guía para los usuarios, los desarrolladores o para los administradores de sistemas que necesiten trabajar con la estructura de OAuth 2.0 (conocido también por simplicidad como OAUTH) en aplicaciones que estén basadas en los productos de InterSystems.

0 0
0 1.3K

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 137
Artículo
· 7 sep, 2021 Lectura de 3 min
ObjectScript sobre ODBC
Este es un ejemplo de código que funciona en IRIS 2020.1 y en Caché 2018.1.3 
No se mantendrá sincronizado con las nuevas versiones.  
Y NO cuenta con el servicio de soporte de InterSystems.
De vez en cuando, puedes encontrarte una situación en la que, por diferentes razones, ODBC es la única opción para acceder a un sistema remoto. Lo cual es suficiente mientras necesites examinar o cambiar tablas. Pero no puedes ejecutar directamente algunos comandos o cambiar algunos globals.
0 0
0 117

¡Hola Comunidad!

En esta ocasión os presento una nueva y potente función de nuestro analizador de código estático: objectscriptQuality.

Cada vez que se publica una nueva versión de IRIS, seguramente preparas una guía de migración en la que tienes que dedicar mucho tiempo en la realización pruebas para encontrar dónde no cumple el código con la nueva versión. O quizás necesitas que el código sea compatible con varias versiones de IRIS o Caché.

0 0
0 72

Hay varias maneras de generar ficheros Excel usando tecnología InterSystems: por ejemplo utilizando informes generados con InterSystems Reports, o los antiguos informes ZEN, o incluso haciendo uso de librerías Java de terceros. Las posibilidades son casi infinitas.

Pero, ¿qué pasa si quieres crear una sencilla hoja de cálculo sólo con ObjectScript? (sin aplicaciones de terceros)

En mi caso, necesito generar informes que contengan muchos datos sin procesar (a los financieros les encantan), pero mi antiguo informe ZEN fallaba y me da lo que me gusta llamar un "archivo con cero bytes". Básicamente, Java se queda sin memoria y provoca una sobrecarga en el servidor de informes.

0 0
0 150

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 76

27 de abril de 2023

InterSystems ha corregido un defecto que puede provocar la corrupción de las bases de datos y los ficheros journal en sistemas AIX con IBM POWER8 o procesadores POWER posteriores. Este defecto solo se puede desencadenar cuando se utiliza la encriptación de base de datos o de journal.

Para que se desencadene este defecto, se requieren las siguientes condiciones:

Si el entorno cumple todas estas condiciones, entonces la key utilizada para la encriptación de la base de datos o journal, puede corromperse.

0 0
0 59

Preguntas frecuentes de InterSystems

Si se establece una relación y hay una gran cantidad de n en una proporción de 1:n, se puede consumir una gran cantidad de memoria debido al procesamiento secuencial de la relación.

Después de hacer referencia a un objeto de muchos lados en un programa y cambiarlo internamente, simplemente liberar la variable que contiene el OREF (eliminarla, establecer otro valor, etc.) no liberará el objeto de muchos lados ni el objeto de relación. Ésta es la causa.

1 0
0 33
Artículo
· 18 jun, 2019 Lectura de 14 min
API RESTful

¡Hola Comunidad!

Les dejo una guía para principiantes sobre todo lo que necesitan saber del diseño y la documentación de la Interfaz de programación para aplicaciones (API) RESTful. Mediante este ejemplo aprenderán algunos de los patrones más comunes de la API RESTful.

¡Espero que les sea útil!

1 0
0 506
Artículo
· 17 jul, 2019 Lectura de 12 min
Clases de consulta en InterSystems Caché


Las clases de consulta en InterSystems Caché son una herramienta muy útil que separa las consultas SQL del código Object Script de Caché. Básicamente funciona de la siguiente manera: supongamos que quiere utilizar la misma consulta SQL con distintos argumentos en varios lugares diferentes. En este caso, puede evitar la duplicación del código si declara el contenido de la consulta como una clase de consulta y después llama a esta consulta por su nombre. Este método también es conveniente para las consultas personalizadas, donde el desarrollador define con cuál de las tareas obtendrá la siguiente fila. ¿Esto le parece interesante? Entones, ¡siga leyendo!

1 0
0 710

Todo el mundo tiene un entorno para realizar pruebas.

Algunas personas tienen la suerte de tener un entorno totalmente separado para Producción.

-- Anónimo

.

En esta serie de artículos, me gustaría presentar y discutir varios métodos posibles para el desarrollo de software, con las tecnologías de InterSystems y GitLab. Trataré temas como:

  • Git 101
  • Git flow (development process)
  • Instalación de GitLab
  • Flujo de trabajo de GitLab
  • GitLab CI/CD (Integración Continua/Entrega Continua)
  • CI/CD (Integración Continua/Entrega Continua) con contenedores

En esta primera parte se abordará la piedra angular del desarrollo de software moderno - el sistema de control de las versiones de Git y varios flujos de Git.

0 0
0 567
Artículo
· 14 nov, 2019 Lectura de 4 min
Descarga ligera a EXCEL

¡Hola a tod@s!

Buscando en la Comunidad propuestas para trabajar con datos organizados en hojas EXCEL, de forma sencilla, para ofrecer a los usuarios finales, encontré este buen artículo sobre el tema: Tips & Tricks - SQL to Excel, que introduce un concepto importante: "EXCEL puede interpretar tablas HTML y mostrarlas de la forma habitual"
¡Genial!

0 0
0 181
Artículo
· 10 jun, 2020 Lectura de 2 min
Sincronizar datos con el DSTIME

¡Hola Comunidad!

Para la sincronización de datos dentro de Caché/IRIS, existen varias formas de sincronizar objetos y tablas. A nivel de la base de datos se puede usar Shadowing o Mirroring

Esto funciona perfectamente, y si solo necesitas sincronizar una parte de tus datos, puedes partir tus datos en conjuntos más pequeños usando Global mapping. O, si necesitas sincronización bidireccional a nivel de clase/tabla, puedes usar la herramienta Object Synchronization.

El único límite de todos estos métodos es que sólo funcionan desde Caché/IRIS hacia Caché/IRIS. Si quieres sincronizar tus datos a alguna base de datos externa, necesitas alguna otra solución.

0 0
0 164

¡Hola desarrolladores!

El desarrollo de una aplicación web Full-Stack en JavaScript con Caché requiere que juntes los bloques correctos para construirla. En la primera parte de este artículo, creamos una aplicación básica para desarrollar el frontal de usuario (front-end) en React. En esta segunda parte, mostraré cómo elegir la tecnología más adecuada para desarrollar la parte servidora (back-end) de tu aplicación. Verás que Caché te permite utilizar diferentes enfoques para vincular tu front-end con tu servidor de Caché, dependiendo de las necesidades de tu aplicación. También configuraremos un back-end mediante Node.js/QEWD y CSP/REST. En la siguiente parte, vamos a mejorar nuestra aplicación básica web y la conectaremos a Caché usando estas tecnologías.

0 0
0 1.7K

¡Hola desarrolladores!

La clase %Net.SSH.Session permite conectarse a servidores mediante SSH. Lo más habitual es usarlo con SFTP, especialmente en los adaptadores de FTP entrantes y salientes.

En este artículo se dará un breve ejemplo de cómo conectarse a un servidor SSH usando la clase, se describirá las opciones para autenticar y cómo hacer la depuración cuando surjan problemas.

A continuación un ejemplo de cómo hacer la conexión:

0 0
0 172

Continuando con la serie de análisis de rendimiento, en este artículo voy a mostrar un método para dimensionar los requisitos de memoria compartida para aplicaciones de base de datos que se ejecutan en plataformas de datos de InterSystems, incluyendo los Global y Routine Buffers, gmheap y locksize. También daré algunos consejos de rendimiento que se deberían tener en cuenta al configurar servidores y al virtualizar aplicaciones de Iris. Como siempre, cuando hablo de Iris o Caché , me refiero a toda la plataforma de datos. Este artículo tiene algunos años pero mantiene su esencia, por lo que me referiré a Iris o Caché indistintamente ya que la teoría es exáctamente igual para todos los productos con kernel Caché/Iris.

1 0
0 114
Artículo
· 11 feb, 2022 Lectura de 5 min
Cómo convertirse en un señor del tiempo - El nacimiento

El tiempo dirá, siempre lo hace.

El Doctor.

No es una tarea facil dominar fechas y horas, siempre es un problema y a veces confuso en cualquier lenguaje de programación, vamos a aclarar y a poner unos cuantos tips para que esta tarea sea lo mas sencilla posible.

Súbete a la TARDIS que te voy a convertir en un Señor del tiempo

Tardis

24 0
0 410

Encontré este pequeño artículo de @Brendan Bannon de hace unos años... pero creo que es muy útil para cuando tengamos estructuras de almacenamiento basadas puramente en globals y queramos tener la posibilidad de acceder a ellas desde el punto de vista de Objetos y/o Relacional.

El fichero ZIP adjunto contiene un paquete de ejemplos de mapeos SQL Storage (válido para IRIS y Caché) que he hecho y recopilado a lo largo de estos años.

0 0
0 104

Preguntas frecuentes de InterSystems

Este error ocurre cuando una instancia de la clase ya está abierta en el momento de la compilación.

Hay dos formas de abordar este problema:

  1. Terminar el proceso o aplicación que tiene la instancia abierta
  2. Opciones de compilación en el menú de compilación de Studio: marque el indicador de compilación "Compilar clases en uso" y compile.

Si desea determinar qué proceso está utilizando la clase, pruebe la rutina de ejemplo siguiente.

0 0
0 6
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 224
Artículo
· 19 jun, 2019 Lectura de 8 min
El arte de mapear Globals para Clases (2 de 3)

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

En este ejemplo se estudiarán 4 o 5 cosas diferentes más allá de lo que se cubrió en la Parte 1

Todo lo que falta por hacer después de esto, es el ejemplo del mapeo de padres e hijos, entonces irá por buen camino.

0 0
0 179

¡Hola Comunidad!

Tengo una pregunta para todos: en ObjectScript tenemos la variable cls para las clases y mac para el código, y ambas se compilan dentro de int en el código. ¿Hay alguna razón para utilizar mac en lugar de cls para las clases no-persistentes?

En mi opinión, los beneficios de utilizar cls son:

1. Herencia y otras funciones de la Programación Orientada a Objetos (POO)

2. Código auto-documentado

0 0
0 147

¡Hola Comunidad!

Como explicó Rob en un artículo anterior, la interfaz Node.js de Caché permite crear Servicios Web y Servicios REST utilizando el framework modular framework EWD 3.

Por defecto, estos servicios devuelven una respuesta JSON con Content-Type: application / json y el cuerpo de respuesta contiene el JSON que devuelve utilizando el método finished(), por lo que:

finished({ test: 'test response' });

devuelve

{ "test": "test response" }

con un content-type HTTP de application/json

0 0
0 1.4K