No es un bug, es una característica no documentada

viernes, 3 de agosto de 2018

Tutorial Java: Log4j desde cero

12:10 Posted by Inazio Claver No comments
En el trabajo me ha surgido la necesidad de trabajar con la librería Log4j en un proyecto y como me
he vuelto un poco loco para configurarla que menos que aprovechar para retomar este blog (again).

¿Qué es Log4j?
Log4j es una librería perteneciente a los Java Logging Frameworks desarrollada por Apache Software Foundation usada para generar mensajes de logging de una forma limpia, sencilla, permitiendo filtrarlos por importancia y pudiendo configurar su salida tanto por consolafichero u otras diferentes.

martes, 12 de diciembre de 2017

Leer ficheros properties en Java

17:11 Posted by Inazio Claver No comments
Una práctica habitual en Java es guardar parámetros de configuración en un archivo de propiedades, que es básicamente un fichero de texto plano con la extensión .properties con su contenido almacenado como una pareja clave=valor y con el símbolo # para indicar línea de comentario.

Por ejemplo:
# Archivo properties
usuario=Inazio
password=programandoapasitos.com
ruta=/home/inazio/resources
Así, en este ejemplo la primera línea será solo de comentarios, y en las posteriores cada clave será un parámetro de nuestra configuración y, separado por un igual, su valor correspondiente.

Java nos proporciona una herramienta muy útil y sencilla para leer los archivos de propiedades, la clase Properties.

lunes, 27 de noviembre de 2017

Tutorial Maven en Eclipse (II). Generar un JAR

11:29 Posted by Inazio Claver No comments

En la anterior entrada del Tutorial Maven en Eclipse aprendimos qué es Maven, como crear un proyecto Maven enEclipse, a configurarlo y a manejar las dependencias de librerías.


¿Cuál sería el siguiente paso lógico? Aprender como generar los archivos JAR con Maven y agregarle todas los recursos necesarias, para poder usar nuestro proyecto en cualquier máquina en que queramos ejecutarlo.

viernes, 28 de julio de 2017

Tutorial Maven en Eclipse

12:02 Posted by Inazio Claver No comments
Apache Maven Java Logo
De normal, cuando realizamos un proyecto Java si es pequeño nosotros mismos podemos hacer las actividades típicas de la construcción de software.
  • Instalar las librerías necesarias para nuestro proyecto en el classpath
  • Correr los casos de test
  • Crear la documentación del código fuente
  • Compilar código fuente
  • Empacar el código compilado en JAR
Pero, ¿qué sucede conforme nuestro proyecto va creciendo y se va agregando más gente a él? Pues que podemos perder el control del mismo y es más plausible cometer errores humanos en la construcción del programa. Para eso está Maven.

miércoles, 19 de julio de 2017

Resolver sudokus en Java

13:07 Posted by Inazio Claver No comments
El otro día estaba haciendo el sudoku del periódico y me plantee la siguiente duda. ¿Cómo sería un programa que te resolviese el sudoku automáticamente?

Para el que no lo sepa, un sudoku es un pasatiempo japonés consistente en rellenar un tablero de 9x9, que a su vez está divido en secciones de 3x3, con números del 1 al nueve de tal manera que ninguno de ellos puede estar repetido en ninguna fila, columna o secciones.
Como curiosidad, sabed que el problema de un sudoku sólo se considera bien planteado si su solución es única, consiguiéndose esto sólo si, como mínimo, hay ya preestablecidas 17 cifras dentro del tablero (Wikipedia insified).

Dicho esto, vayamos a la resolución del problema.
La idea que se me ocurrió, y que luego he ido leyendo que es la más sencilla de implementar, es la del algoritmo de marcha atrás.

domingo, 16 de abril de 2017

Cómo leer ficheros CSV con Java

19:53 Posted by Inazio Claver 2 comments
Un CSV es un fichero de texto plano que consta de varios valores separados por comas (o punto y coma, según el caso), de modo que para procesar este tipo de ficheros en Java en principio debería bastar con leer el archivo línea a línea y partir las cadenas de texto por el separador correspondiente.

Por ejemplo, si tenemos la siguiente línea, sería bastante sencillo de procesarlo:
Programando, a, pasitos
Pero sin embargo, si nos encontramos alguna de las siguientes entradas:
"Programando a pasitos", "Claver, Inazio", "CSV, Java"
ya es más complicado, al formar las comas parte de la cadena de texto que queremos extraer. Y si además tenemos en cuenta que las comillas también pueden ser parte de ese valor, se complicaría, teniendo que poner dobles comillas para indicar que es parte del valor de una cadena.
"Programando a pasitos", "Claver, Inazio", """Leyendo CSV"" en Java"
Vamos a ver como procesar los dos tipos de CSV anteriores, el sencillo y el complejo.

domingo, 26 de febrero de 2017

Configurar Virtual Host Apache en Ubuntu

21:39 Posted by Inazio Claver , No comments
Hace poco tiempo se estropeo mi ordenador y decidí que era el momento idóneo para dar el salto a una plataforma Linux. He tonteado mucho con ello pero nunca lo había tomado realmente en serio y, por considerarme 'primerizo' opté por la última versión LTS de Ubuntu, la 16.04.

El cambio no ha sido muy grande en rasgos generales, pero cuando te orientas a algo más especializado, como la programación web por ejemplo, si que he tenido ciertas dificultades para dejar todas las configuraciones como yo quería. Aquí voy a explicar como hacer una de ellas, los host virtuales de Apache.

Apache es el servidor web más popular actualmente y permite una flexibilidad asombrosa a la hora de realizar sus configuraciones. Como tengo varios proyectos en mente, me interesa poder emular varios dominios desde mi propio portátil directamente, trabajando como si de la raíz de la página web se tratase. Ahí es donde entran los virtual host.

Un host virtual es un mecanismo que permite tener funcionando más de un sitio web en una misma máquina. Estos sitios web podrán estar basados en diferentes direcciones IP o bien en distintos nombres de dominio. Ésta segunda manera es la forma con la que quiero trabajar.