Archivos anuales: 2019


Error en fechas al enviar correo UTL_SMTP – Oracle

Oracle incluye un paquete para el manejo de envío de correo directamente desde la base de datos. Desde que me tocó realizar una función para enviar notificaciones a clientes, he trabajado a la par con dicha librería, todas las pruebas fueron correctas, desde cambio de formato a html, múltiples recipientes de correo separados por coma, sin embargo al visualizar los correos no había notado algo importante, aunque llegaba a la bandeja de entrada de primero en outlook, tenían la fecha errada y si tienes ordenado los correos por fecha, no se encontrarían en la fecha de hoy. Este problema se […]


Parámetros por valor o por referencia en JAVA 1

Esta duda surge desde que uno se inicia en la programación y empieza a trabajar con métodos/funciones que requieren la manipulación de datos sin tener que generar un valor de retorno. En otros lenguajes de programación por lo general, siempre los parámetros se pasan por valor y luego existe una sintaxis especial para indicar si un parámetro va a usarse por referencia. Esto es bastante claro y se entiende sus capacidades pero en Java puede resultar confuso porque no lo especifican claramente y tiene definición distinta. En Java todo se pasa por valor, es decir que no existe el termino […]


Índices Únicos y Búsquedas case-insensitive en Postgresql

Cada vez que trabajo en postgres me tropiezo con los mismos inconvenientes. Entonces se puede decir que hay una serie de reglas que no debo olvidar. Hay dos casos en particular que tomar en cuenta. Índices Únicos Ya sea por código o por herramientas clientes para manipular base de datos como por ejemplo pgAdmin, al utilizar la opción de «crear índice único» en algún campo de una tabla es muy sencillo. Obviamos probar y continuamos elaborando las tablas pero se presenta un inconveniente mucho después al momento de insertar datos. Suponiendo que tenemos una tabla de «usuarios» cuyo campo nombre_usuario […]


Limit en Oracle

Al venir de otros manejadores de base de datos, como por ejemplo Mysql, Postgres, SQLite, ya conocemos la forma de limitar registros con la clausula LIMIT, dicha clausula no existe en Oracle (tampoco en SQLServer) y siempre ha sido una polémica entre los usuarios por lo importante que es. Cómo ya estamos acostumbrados, lo consideramos como parte del estándar pero no lo es, no se contempla entre los estándares de SQL, así que es común que otros manejadores no tengan esta opción. La primera vez que necesité esta opción con Oracle, duré varias horas buscando la alternativa adecuada. Hay varias […]


Algunos consejos sobre Hibernate

En un par de años he trabajado con varios proyectos que utilizan Hibernate y siempre veo los mismos errores, o mejor dicho, costumbres que pueden perjudicar el rendimiento de una aplicación. Todos estamos propensos a cometer errores y más cuando estás empezando, sin embargo con el tiempo, la experiencia y la investigación activa, podemos intuir sobre que podemos mejorar y evitar estos contratiempos. Por ello escribo este post, tanto para aconsejar como para recordarme a mi mismo sobre los pequeños detalles que necesitamos tomar en cuenta a la hora de crear nuestra aplicación. Son cosas simples que a la larga […]


AngularJs – Simple ordenamiento de tabla con buscador

Aunque prefiero utilizar plugins, herramientas o fabricar mis propios buscadores, paginadores y ordenamientos, a veces solo necesitamos con cumplir con un requerimiento sencillo. En este caso necesitaba ordenar una simple tabla con pocos datos y permitir que el usuario eligiera por cual columna ordenar. Adicional se agregó un filtro de búsqueda para poder encontrar algún registro fácilmente. Suponiendo que tenemos un array de listado de clientes :

Angular nos provee de directivas, filtros y al momento de mostrar la información con la directiva ng-repeat, pasamos los parámetros necesarios para indicar el ordenamiento con «orderBy», la columna por la cual ordenar […]


AngularJs – Combinando promises

Cuando trabajamos con webservices de los cuales obtenemos datos para nuestra aplicación, muchas veces requerimos hacer varias peticiones, éstas pueden ser separadas individuales que se ejecutan en algún proceso, acción o en la carga principal. Cuando trabajamos en la inicialización o necesitamos cargar un grupo de peticiones al mismo tiempo, podemos combinarlas para que carguen todos los datos al terminar todas las peticiones, con esto nos aseguramos de tener toda la información. Las promesas (promises) en Javascript, es un objeto que nos ayuda en las operaciones asíncronas (peticiones AJAX) para indicar la finalización correcta o fallida de dicha petición. Como […]


AngularJs – Problemas al minificar por inyección de dependencias

AngularJs tiene la característica de manejar inyección de dependencia a través de los nombres de argumentos utilizados luego en el constructor de los controladores. Si utilizamos los programas comunes para minificar, estos argumentos serán cambiados de nombre y al no tener el mismo nombre que requiere Angular para el manejo de dependencias, simplemente no funcionará y la aplicación mostrará errores. Teniendo un ejemplo común, definiendo Angular en un espacio global y utilizando la dependencia $scope como argumento:

Al minificar se transformará de esta manera:

El argumento $scope se convierte simplemente en «a» y como consecuencia, fallará la inyección […]


¿Que es JPA? Diferencia con Hibernate

JPA significa Java Persistence Architecture API (API de Arquitectura de Persistencia Java), es una especificación de java para acceder, persistir y manejar datos entre Clases-Objetos de Java y bases de datos relacionales. Como conocemos un API significa Appication Programming Interface (Interfaz de Programación de Aplicaciones) es un grupo de funciones y procedimientos que permiten la creación de aplicaciones que aceden a características definidas. El API nos provee una guia para crear una interface que cumple con ciertos estándares. JPA nos indica una interface, no nos provee una implementación de esa interface, no provee ninguna operación para persistir un objeto a […]


Manejo de excepciones en Oracle

El manejo de errores es muy común en cualquier aplicación que estemos realizando, esto puede ser un proceso largo y tedioso si también contamos con los posibles errores de base de datos. Cuando trabajamos con Java, nos resulta más útil y rápido pasar estos mensajes o manejar excepciones a través de la base de datos directamente, nos evitamos cambiar a cada momento el código fuente por un simple mensaje. Oracle nos permite manejar nuestras propias excepciones, asociando un número de error y un mensaje, igual como se haría con excepciones en otros lenguajes de programación. Este tipo de mensajes los […]