Ir al contenido principal

Entradas

If… Else o cómo la IA está Overrated!!!

🧠 Introducción La Inteligencia Artificial está en todos lados. En tu celular, en tu refrigeradora, en tu carro, en tu jefe que repite lo que leyó en LinkedIn. Y aunque suena como el nuevo Mesías tecnológico, la verdad es que la IA —por ahora— es más un “If… Else” glorificado que un ente pensante. 🎭 El hype: ¿IA o Imitación Avanzada? Nos vendieron que la IA iba a reemplazar al humano. Que iba a escribir novelas, componer sinfonías, diagnosticar enfermedades y hasta entender a tu suegra. Spoiler: no puede. Lo que hace es predecir patrones. ¿Inteligente? Sí. ¿Humano? No. Es como ese compañero que copia en el examen y saca 95, pero no sabe explicar nada sin Google. 🤔 El dilema del experto Un humano experto no solo responde. Piensa, duda, improvisa, se equivoca y aprende. La IA responde. Punto. No tiene contexto emocional, ni intuición, ni ese sexto sentido que te dice “esto huele raro”. ¿Puede una IA detectar que el cliente está mintiendo en una reunión? ¿O que el cód...

Renombrar archivos (movies) y subirlos a FTP remoto

 Como decíamos ayer... Recientemente caí en cuenta que mi servidor multimedia, PLEX, no veía o no reconocía algunos archivos en mi biblioteca de películas, por lo que no los mostraba en la lista de medios disponibles para ver y disfrutar. Luego de un rato de investigación, noté que los archivos faltantes era porque no coincidian el nombre de la carpeta con el archivo .mp4 correspondiente. Me explico, suelo descargar algunos torrents con el cliente Qbittorrent, estos archivos, al concluir la descarga, suelen formar una carpeta con más o menos la siguiente estructura: carpeta:           /Título de la película/ archivo:           título de la película (year)[otros datos].mp4 Como por ejemplo: El mentalista (1999)[ytsx]/     el mentalista.(1999).[ytsx].mp4 El caso es que cuando el nombre del archivo .mp4 contiene caracteres especiales o no coincide con el de la carpeta padre, el servidor de Plex puede fallar en agreg...

Problemas de sonido con Opensuse Tumbleweed

Hoy venimos rápido con una pequeña entrada que espero les sea de utilidad. Un problema muy común cuando usamos la maravillosa distribución Rolling-Release de Opensuse, Tumbleweed , es el de perder la configuración de sonido después de instalar o realizar alguna actualización con el comando: sudo zypper dup

Architectural decisions on a recent project

We can recall that the only real boss of the architect is requirements . The architect may not listen to us, to developers, to customers, to anyone. But the requirements are the indisputable boss. So, there is not mystery neither magic over the decision making process, it must be ruled by the requirements. But, what was this project about? In fact, it was about consuming a SOAP service provided by a third part, to allow our internal business side to update the customer case-file or unique digital profile. As part of this project, the number of request from our platform to the provider side must be under certain control or below a number we can consider acceptable for our consuming rate. Also, for both services, our own service and the one from the provider, working with bio-metric data is a must, it involves fingerprints and face recognition. So let’s start looking deeper into this project.

¿Otro microservicio? NO, gracias

Suele pasar en este mundo de la tecnología que, cada cierto tiempo, tenemos a todo el mundo hablando y usando determinada solución, producto o herramienta, sin ninguna otra razón de peso  mas que la moda, o que el "main stream" de turno dice que es la forma correcta de hacer las cosas. Entre esas tecnologías o soluciones de moda nos encontramos con los ya harto renombrados, microservicios . Todo el mundo habla de ellos, todo el mundo migra hacia ellos, ... pero, y siempre hay un pero, ¿son en verdad tan beneficiosos los microservicios ? ¿Cuanto hay de mito y cuanto de, ¿fea?, realidad?

OAUTH 2.0, Conceptos y modo de funcionamiento

Video donde revisamos algunos conceptos y modo de funcionamiento de OAUTH 2.0.

JWT explained!! Al fin!!!

Siguiendo con la onda de seguridad, autenticación y autorización, hoy vamos a hablar de uno de los elementos que ya hemos mencionado como parte de estos mecanismos, los ya famosos Json Web Token o JWT , el cual es un String  que cumple con el estándar RFC 7519 para transmitir información con la identidad y claims de un usuario de forma segura entre un cliente/servidor. Dicha información puede ser verificada y confiable porque está firmada digitalmente.

Usando proof-of-possession of key del lado del cliente

En nuestro capítulo anterior   vimos cómo implementar Proof Of Key en el lado del servidor usando OAUTH 2.0 con SpringBoot . Hoy corresponde enfocarnos en ese concepto del lado del cliente. En esta oportunidad vamos a desarrollar una aplicación que interactúe con el servidor o proveedor de OAUTH  tras demostrar que está en posesión de la clave privada relacionada con la clave pública que se nos provee en el JWT correspondiente. Al igual que la anterior, esta publicación va a hacer uso de Java 8 , Maven , Spring Web , Spring Security  y Nimbus JOSE + JWT .

Usando proof-of-possession key semantics con un Provider de OAuth 2.0

Hace rato que OAUTH 2.0 viene estando presente en el escenario de seguridad en IT . El post que hoy nos ocupa tiene como propósito mostrar un ejemplo funcional del esquema Prueba de posesión de clave, del ingles Proof Of Possession (POP) of key usando Spring Boot . Este ejemplo usa como base el código presentado en el maravilloso libro, OAUTH 2.0 Cookbook, la diferencia es que este SI FUNCIONA!!! ;)

Getters y Setters grandes enemigos de la OOP

Es mucho el artículo, publicación y blogs de , ¿supuestos?, entendidos en el tema que hablan sobre, o exponen el problema con, el uso o más bien ABUSO de los Getters y Setters en la programación orientada a objetos (OOP). Es este un tema recurrente y para nada nuevo, no señor, de hecho viene dando vueltas en el entorno de desarrollos OOP desde hace un buen rato. Pero.... ¿Cuál es el gran problema con usar getters y setters?

Métodos Comunistas y Propiedades Capitalistas

No, este no es un artículo sobre política, sigue siendo sobre programación orientada a objectos (OOP), específicamente sobre métodos públicos y propiedades privadas , de allí el título. Todo surge por un comentario que me hizo un querido amigo al leer mi publicación sobre l as reglas pigbar de programación . El me comentó: "Mr. Bladi, entiendo sus reglas acerca de que las propiedades deban ser privadas por aquello del encapsulamiento, ¿pero que todos los métodos deban ser públicos? eso me cuesta entenderlo, eso implica que no existen métodos privados, y yo debo saber lo que un objeto hace sin preocuparme del cómo, por lo que esos métodos privados pueden ser útiles."

NULL debe morir

Uno de los grandes errores de la programación orientada a objetos ( OOP ) con Java ha sido la existencia de las referencias a NULL . Esta es la causa del popular y formidable error “ java.lang .NullpointerException ”. Toda una embrarrada. La existencia de este tipo de referencia es la causa de muchos dolores de cabeza, de muchísimo código innecesario y defensivo, de muchas malas prácticas y de una pésima filosofía de desarrollo.

Historia de una conversa sobre OOP

Y luego de un largo rato volvemos por acá con una historia basada en hechos reales, sobre una conversación muy didáctica que tuve con un amigo: -Mr. Bladi, he escuchado que Ud. se opone, es más desprecia, al uso de las clases Utilitarias y los métodos estáticos en la programación orientada a objetos (OOP). -Ciertamente. No aconsejo su uso y lo considero una mala práctica, algo ofensivo en la OOP. -Pero si no podemos usar clases utilitarias y métodos estáticos, ¿Cuáles opciones Tenemos? -Tenemos unas cuantas opciones. Pero antes un poco de contexto. Las clases utilitarias, esas que están repletas de métodos estáticos, no son objetos reales, son un recurso totalmente procedimental y rompen el principio de encapsulamiento en la OOP. Peor aún, las clases utilitarias con su torrente de métodos estáticos, son muy difíciles de testear en las pruebas automáticas.  TODO MÉTODO ESTÁTICO, E INCLUSO LOS PRIVADOS, SON CANDIDATOS PARA UNA NUEVA CLASE, es decir son elegibles ...

Webinar sobre la notación BPMN 2.0 con Camunda Modeler

BPMN 2.0 Es el estándar para la representación de procesos de BPM. La implementación de Camunda BPM es muy completa y nos presenta un editor o "modeler" muy poderoso y simple de usar. En este Webinar haremos una introducción a la notación BPMN 2.0 , sus elementos más relevantes y su uso en un proceso de BPM, junto a algunas buenas prácticas de modelado de procesos. El Webinar se realizará el día Viernes 16 de Diciembre a partir de las 15:00 horas, en horario de Santiago de Chile. Haremos uso de la plataforma de transmisión en línea por Youtube, por lo que sólo debe acceder a la URL suministrada para acceder al evento en la fecha y hora acordada. Url del evento: https://www.youtube.com/watch?v=MasRtcI7uA8   Para mayor información sobre los primeros pasos con la plataforma de Camunda BPM los invito a visitar las publicaciones sobre los Primeros pasos con Camunda BPM en este Blog. Hasta pronto

Integración de Liferay, BOS y Openxava en un Proceso BPMN de Compras

Hoy hagamos la corta, como dicen en mi bello Santiago de Chile. Les dejo un video demostrativo de la integración de las siguientes herramientas: Bonita Open Solution 5.5 (BOS) Liferay CE 5.5 OpenXava 4.3 Alfresco CE 3.3 Es una aplicación de proceso de compras públicas, donde podemos observar la lista de tareas, formularios de aplicación avanzados, integración con Alfresco, carga y visualización de documentos, cambio de roles en el proceso, entre muchas otras cosas.

Primeros pasos con Camunda BPM – Invocar una Clase Java desde una Tarea de Servicios en un proceso BPMN 2.0

Ya en nuestra publicación anterior aprendimos cómo agregar Formularios de HTML a nuestras Tareas Humanas o con Actor para nuestro proceso de BPMN 2.0 . En esta oportunidad, siendo esta nuestra última publicación de la serie Primeros pasos con Camunda BPM , vamos a aprender a configurar e invocar a clases de Java para que se ejecuten desde nuestras actividades o tareas de servicio .  Esto es una funcionalidad muy importante puesto que nos permite desde nuestro proceso de BPM invocar servicios o consumirlos tal cual lo solemos hacer desde nuestras aplicaciones Java normales. Salvo algunas excepciones, casi todo lo que se puede hacer desde Java es posible hacerlo desde nuestras clases para automatización de servicios.

Primeros pasos con Camunda BPM – Agregar Formularios HTML al Proceso BPMN

Es común cuando se trabaja con procesos en BPM bajo la notación BPMN el considerar formularios de entrada tanto para el inicio del proceso como para sus Tareas Humanas, sobre todo cuando se desea aprovechar las bondades que ofrece el motor de BPM , en este caso la plataforma BPM de Camunda . En esta publicación vamos a tratar el tema de cómo agregar formularios de HTML personalizados para nuestras actividades de Inicio de Proceso y Tareas Humanas en el proceso BPMN que desplegamos en nuestra publicación anterior . Así que síganme los buenos y manos a las sobras…

Primeros pasos con Camunda BPM – Desplegar y Probar el Proceso BPMN 2.0

Como decíamos ayer… bueno, no ayer exactamente, pero en nuestra publicación anterior ya vimos cómo elaborar nuestro primer proceso de BPMN 2.0 y guardar los cambios de la configuración respectiva. Vamos ahora a revisar los pasos necesarios para desplegar y probar dicho proceso en la plataforma BPM de Camunda . Así mismo revisaremos los detalles necesarios para configurar los permisos de usuarios y la funcionalidad que pueden ejecutar sobre el proceso desplegado, todo esto haciendo uso de la plataforma de administración de Camunda . Tampoco podemos olvidar que daremos una mirada a las instancias en ejecución de nuestro proceso mediante la herramienta Cockpit. Entonces, sin más preámbulos, manos a las sobras…

Primeros pasos con Camunda BPM – Modelando un Proceso BPMN 2.0

Tenemos entre manos la tercera publicación de nuestra serie sobre la Plataforma de BPM de Camunda .  El día de hoy vamos, por fin, a empezar a modelar o construir nuestro primer proceso sencillo en notación BPMN 2.0. Para ello vamos a usar el modelador o editor que ya hemos instalado en nuestra primera publicación , y vamos a guardarlo en la sección de recursos del proyecto Maven Java que configuramos en la segunda publicación . Así que, como ya es costumbre, manos a las sobras…

Primeros pasos con Camunda BPM – Configurar Proyecto JAVA

En nuestro artículo anterior dimos inicio a la instalación de la plataforma de Camunda BPM y del modelador o editor. En esta oportunidad vamos a tratar el tema de cómo configurar nuestro ambiente de desarrollo para poder modelar procesos, crear clases asociadas a estos procesos y desplegar nuestros procesos en la plataforma de BPM . Usaremos Eclipse como IDE para el desarrollo y Maven como herramienta de construcción del proyecto.