Agustín Ventura

Ingeniería de Software

Migrando el blog

Desde hace ya bastantes años llevo pagando religiosamente todos los años un dominio (aguasnegras.es) y un alojamiento para tener el blog. El blog ha tenido mejores y peores momentos, pero en general me gusta tener un sitio donde poder escribir en un momento dado, y por supuesto compartir con la comunidad (sobre todo en español, es por lo que escribo en este idioma). El asunto es que si nos paramos a pensarlo, el blog tiene bastantes pocos comentarios y sobre todo entradas mías, es decir, es fundamentalmente un medio de solo lectura.

Logging en Java con SLF4J y Log4j2

En este artículo se hace una breve introducción a la generación de logs en Java usando SLF4J y Log4j2, así como un breve repaso de las mejores prácticas relativas. Introducción En Java se da una circunstancia muy extraña, siendo el logging tan importante como es, no hay una buena solución integrada en el framework como tal. Es cierto que existe la Java Logging API o Java Logging Framework, pero fue una adición bastante a posteriori (en concreto, se añadió en el 2002, en la versión 1.

Emulador de Android en Ubuntu (Initializing hardware OpenGLES emulation support)

A veces (normalmente en una instalación nueva), los emuladores de Android no arrancan en Ubuntu de 64 bits debido a un error con OpenGLES. Para comprobar si la solución es aplicable, hay que ejecutar este comando desde la consola: $ ./emulator -avd GalaxyS -verbose Donde GalaxyS será el nombre del avd que se desee arrancar, al final del log deberemos ver algo así: emulator: Initializing hardware OpenGLES emulation support Violación de segmento (`core' generado) El problema y su solución se encuentra reportado aquí.

CrankPlay, lógica propia

Vale, una vez terminado el guarreo con el ciclo de vida, toca implementar la lógica de negocio propia de la aplicación. Al ser JustPlay un reproductor de mp3 y ogg, vamos a ver que lógica tenemos que implementar: Funcionalidad Detallada Gestión de la lista de reproducción, añadir directorios y canciones sueltas, borrar la lista de reproducción, eliminar canciones en particular y reordenarla mediante drag&drop. Reproducir: Reproducir toda la playlist desde el principio hasta el final dándole al botón de play.

CrankPlay, binding al servicio

El siguiente paso en el desarrollo de JustPlay resulta bastante obvio, ligar el MediaPlayer con el MediaService, o lo que es lo mismo, hacer un bind. Para no perderme, he hecho un pequeño diagrama de interacción entre MediaPlayer y MediaService. En él se aprecia que aparte de los métodos de negocio necesarios (denotados por una línea discontínua), todavía me faltan por implementar dos métodos del ciclo de vida: el bind y el unbind, que son precisamente los que me permiten establecer una comunicación bidireccional con el MediaService para indicar acciones y realizar y obtener resultados.