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 259

¡Hola desarroladores!

¿Os parece que las consultas sobre el rango de fechas son demasiado lentas? ¿Os parece que el rendimiento de SQL es bajo? ¡Tengo un curioso truco que podría ayudaros a solucionar estos problemas! (¡Los desarrolladores de SQL odian que sepáis estas cosas!)*

Si tenéis una clase que guarda los registros de hora cuando se añaden datos, entonces esos datos se ordenarán con vuestros valores IDKEY, es decir, TimeStamp1 < TimeStamp2 si y solo si la condición ID1 < ID2 se cumple para todos los valores ID y TimeStamp en la tabla - entonces podéis utilizar esta información para aumentar el rendimiento de las consultas en relación con los rangos de TimeStamp. Echad un vistazo a la siguiente tabla:

1 1
0 1K
Artículo
· 24 mayo, 2019 Lectura de 18 min
Uso de expresiones regulares en ObjectScript

Al igual que con Pattern Matching, se pueden utilizar Expresiones Regulares para identificar patrones en textos en ObjectScript, sólo que con una potencia mucho mayor.

En este artículo se proporciona una breve introducción sobre las Expresiones Regulares y lo que puede hacerse con ellas en ObjectScript. La información que se proporciona aquí se basa en varias fuentes, entre las que destaca el libro “Mastering Regular Expressions” (Dominando las expresiones regulares) escrito por Jeffrey Friedl y, por supuesto, la documentación online de la plataforma.

4 3
1 871
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 200

¡Hola a tod@s!

El Portal de Administración del Sistema Caché incluye una potente herramienta de consultas en SQL basada en la web, aunque para algunas aplicaciones lo más conveniente es utilizar un cliente dedicado SQL que esté instalado en la PC del usuario.

SQuirreL SQL es un conocido cliente SQL de código abierto construido en Java, que utiliza JDBC para conectarse a un DBMS. Como tal, podemos configurar SQuirreL para que se conecte a Caché usando el controlador JDBC en Caché.

1 2
0 1.8K
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 293
Artículo
· 21 dic, 2019 Lectura de 2 min
Demo de SUDOKU

Para aquellos expertos que no pueden parar después del concurso "Advent of Code" (AoC2019), he publicado un código bastante antiguo en estilo tradicional para mejorarlo.

Fue escrito en base a una prueba previa en .XLS. Está lejos de ser perfecto. Es más bien un desafío para mejora en todas las direcciones (código, interfaz, ...). Así que cualquiera está invitado a mejorarlo.

3 0
0 190
Artículo
· 18 dic, 2019 Lectura de 3 min
Listar archivos de una carpeta

Pregunta:

¿Cómo obtengo un listado de los archivos que se encuentran dentro de cierta carpeta/directorio, usando un comodín/filtro?

Por ejemplo, todos los archivos '*.txt' en 'C:\Temp.

Respuesta:

En CACHE:

Puedes usar la consulta de clase FileSet de %Library.File.

1 0
0 206

¡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 449
Artículo
· 6 dic, 2019 Lectura de 7 min
Haciendo una integración REST: Geolocalización


¡Hola a tod@s!

comparto los pasos necesarios para crear y probar una integración REST.

Lo primero que necesitamos es acceder al contrato que nos aporta el equipo que se encarga de desarrollar el sistema externo. En concreto de esta forma sabremos varias cosas:

0 0
0 212
Artículo
· 6 dic, 2019 Lectura de 12 min
Tutorial de WebSockets

¡Hola Comunidad!

La mayor parte de las comunicaciones servidor-cliente en la web se basan en una estructura de solicitud y respuesta. El cliente envía una solicitud al servidor y el servidor responde a esta solicitud. El protocolo WebSocket ofrece un canal bidireccional de comunicación entre un servidor y un cliente, lo que permite a los servidores enviar mensajes a los clientes sin antes haber recibido una solicitud. Por más información sobre el protocolo WebSocket y su implementación en InterSystems IRIS, vea los siguientes enlaces:

3 0
0 1.2K

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

Buenas tardes a todos!

Actualmente me encuentro migrando a la versión 2018.2 en una máquina nueva,un entorno que está en producción con la versión de Ensemble de 2012.1.2

Tras realizar un recovery de un backup realizado del otro entorno, y configurar el entorno para que esté igual que el antiguo, me he dispuesto a realizar las primeras pruebas, en un circuito que lee de SQL, y posteriormente tras procesar los mensajes, envía una peticion SQL, pero en el primer paso, que es al pasar por un enrutador, me he encontrado con el siguiente problema:

1 3
0 139

++ 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 368

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 243

¡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
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 180
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 339

¡Hola Comunidad!

Os traemos un nuevo vídeo del Global Summit de este año, disponible en el Canal de YouTube de la Comunidad de Desarrolladores en inglés:

Adopción de InterSystems IRIS

https://www.youtube.com/embed/UrI0JMkm1h0
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

0 0
0 92

¡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

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

InterSystems ha corregido varios defectos críticos que pueden ocasionar problemas de integridad de datos. Estos defectos han sido identificados y corregidos en un breve espacio de tiempo, por lo que InterSystems ha simplificado el proceso de actualización consolidándolos en un único paquete. Los efectos de estos fallos puede que no sean siempre visibles. Los defectos afectan a los productos InterSystems IRIS, IRIS for Health, Health Connect, Caché, Ensemble y HealthShare. Todos los defectos están relacionados con la aplicación de datos de journals.

0 0
0 103

Saludos comunidad. Me gustaría saber cómo migrar un BD en producción a un entorno local. Cuando tengo un sistema en producción (Servidor BD Sql), lo que hacemos es montar una copia local para hacer el análisis con los datos y no ocupar los recursos del sistema en producción. Mi pregunta es: ¿cómo se hace con la tecnología Intersystems? Ya probé el conector PowerBi y se ve muy bien, pero ahí es donde surgió la pregunta.

1 2
0 147

¡Hola a tod@s!

En este artículo voy a hablar sobre los Globals, esas espadas mágicas para almacenar datos, que han estado con nosotros desde hace tiempo, pero no mucha gente las utiliza de forma eficiente o realmente conoce esta súper herramienta.

Si se utilizan globals para realizar las tareas en donde realmente brillan, los resultados pueden ser sorprendentes, ya sea en términos de un mayor rendimiento o en una simplificación drástica de la solución en general (1, 2).

Globals ofrecen una forma especial de almacenar y procesar datos, la cual es completamente diferente de las tablas SQL. Se introdujeron por primera vez en 1966 con el lenguaje de programación M(UMPS), donde inicialmente se utilizaron en las bases de datos médicas. Todavía se usan de la misma manera, pero también fueron adoptados por otras industrias donde la confiabilidad y el alto rendimiento son la máxima prioridad (como en las finanzas, las operaciones comerciales, etc.)

1 0
1 207

¡Hola a tod@s!

Con el reciente lanzamiento de macOS 10.15, Apple ha reforzado su mecanismo de control con una tecnología llamada Gatekeeper, que requiere que los archivos ejecutables deban ser validados. Ahora mismo, los productos de InterSystems no están soportados para ser utilizados en macOS 10.15 y los ejecutables no han sido validados. (Os recordamos que los productos de InterSystems solo están soportados en macOS como una plataforma de desarrollo).

0 3
0 110