Entradas

Mostrando las entradas de mayo, 2024

Migraciones y Timezones

Imagen
Había una vez dos aplicaciones, una de Contabilidad y otra de Costos, que convivían en una misma máquina y lo hicieron durante muchos años en armonía. Ambas aplicaciones nacieron mucho antes de que GeneXus tuviera soporte para TimeZone. Un día, los dioses de los microservicios decidieron que era una buena idea instalar las aplicaciones en diferentes equipos. Para ello, se creó una KB intermedia con servicios simples que permitieran transferir datos de una aplicación a la otra. Esta KB, llamada Servicios SOAP, leía datos de la base de datos de Contabilidad y los devolvía en una colección de SDT para que el sistema de Costos pudiera procesarlos. La KB de Servicios SOAP y la de Costos estaban programadas en GeneXus, generando en .NET Framework, y convivieron muchos años transfiriendo asientos sin inconvenientes. La KB de Servicios SOAP no grababa nada en la base de datos; solo leía y devolvía algunos servicios, por lo que no la considerábamos crítica. Todos los campos eran de tipo DATE y ...

Prototipo de KB Assistant en GeneXus

Imagen
 Es de esperar que aparezcan una cantidad interesantes de asistentes para ayudar en el desarrollo de aplicaciones GeneXus, ayudados con los modelos de inteligencia artificial y su capacidad de interpretar el lenguaje natural.  Mi primer intento para hacer una prueba de esto, es un modelo RAG  Retrieval-Augmented Generation en el que le paso una colección de documentos y los procesa dividiendo el contenido en pedazos y codificando el contenido como vectores de muchas dimensiones y almacenando el resultado en una base de datos vectorial.  Luego se puede recuperar dichos datos de forma de encontrar textos que están semánticamente cerca de lo que estoy preguntando.  En mi caso, lo que hice fue hacer un programa que lee una KB GeneXus y genera un txt por cada objeto.  Si bien el contenido es diferente para los diferentes tipos de objetos, el contenido del mismo tiene la forma Atributo : ClienteId Descripcion: Identificador de Cliente ClienteId es del tipo de dat...

Libros interesantes

Imagen
 Me toco participar en dos temas que no domino y por lo tanto tuve que leer algo sobre los temas.  Observability En un proyecto que estoy trabajando, empezamos a sustituir los logs por metrics/ traces / logs de OpenTelemetry.   El libro Learning OpenTelemetry , es una buena introducción al tema y permite ver que es un tema que se esta trabajando mucho pues muchas funcionalidades se están agregando en estos momentos.  Para administrar sitios con varios nodos, para procesos distribuidos y para manejo de microservicios, OpenTelemetry ofrece numerosas ventajas.  También tiene la posibilidad de medir cosas en producción, sin afectar (mucho) la performance de la aplicación.  Docker / Kubernetes / Helm Una aplicación que desarrollamos necesita instalarse a través de imágenes docker en kubernetes.  Helm es uno de los productos que se utilizan para facilitar la instalación es un gestor de paquetes para kubernetes que facilita la tarea, definiendo que es lo que ...