Demos locas

La cultura de la demoscene jamás deja de sorprenderme. Los límites de las diferentes plataformas son superados con total alevosía, superándolos aún suponiéndolos definitivos una y otra vez. Más colores, más sonido, nuevas funciones… o simplemente hacer lo común por el camino más difícil. Per aspera ad astra.

Con este pequeño artículo quisiera mostrar las demos que más me han sorprendido por romper las barreras que creíamos impenetrables, por hacer lo común a través de lo imposible o simplemente porque me parecen técnicamente relevantes.

Leer más...

Convertir vídeos es fácil, si sabes cómo

Para cualquier tipo de fichero hay mil millones de formatos distintos. Para imágenes, música, texto… o vídeo. Para imágenes o sonido es facilísimo y cualquier programa tonto lo hace a las mil maravillas. Por algún motivo, convertir vídeo no es algo tan evidente.

Hay dos herramientas a tener en cuenta que me han encantado: Handbrake y ffmpeg. ¿Qué nos ofrecen?

La primera es muy sencilla de usar gracias a su interfaz gráfica, y para convertir a MKV o MP4 es la mejor opción. Puede tomar de fuente multitud de formatos, acepta multitud de opciones y soporta características de los MKV como capítulos.

Leer más...

Consultas MySQL con muchos JOINs

A veces uso MySQL por elección. No por mi elección, sino por la de los clientes. 🙂

Una de las cosas que más me ha roto la cabeza es optimizar queries con muchos JOINs. Recientemente, un informe requería una consulta con 25 JOINs, y al tratar de ejecutarla nuestro servidor prácticamente lloraba que por favor parásemos. Sin embargo, me he topado (al decir verdad, fue mi jefe) con una variable de configuración muy interesante a la hora de encarar este problema.

Emuladores 101

La emulación es una técnica muy usada en informática para poder dar soporte a software antiguo. Básicamente consiste en hacer que un sistema informático sea capaz de imitar a otro, normalmente con el fin de hacerlo compatible con el software de éste. Esta técnica puede implementarse tanto por software como por hardware, y de hecho puede usarse para imitar el comportamiento de ambos. Trataré en este artículo de dar una visión de los fundamentos de este fenómeno.

El ejemplo práctico más común de emulador sería un programa que se ejecuta en nuestro ordenador que permite utilizar software de un sistema antiguo. Tómese como ejemplo un emulador de Master System para ordenadores con Windows. Consistiría, pues, en un programa que se ejecutaría en nuestra máquina, ejecutaría un programa diseñado para esta consola, volcado en un fichero en nuestro PC. Mediante un mapeo de controles (por ejemplo, asignar los cursores de nuestro teclado al control direccional del mando de la consola) controlaríamos el funcionamiento de la misma. Es decir, podemos jugar al Alex Kidd in Miracle World (1986) en Windows.

Leer más...

Webcrawler java Hoverkraft

He estado trasteando una forma de simular un navegador en Java. Hasta ahora he usado JMeter, que es tremendamente potente, configurable y para pruebas de carga es imprescindible. No obstante hay dos detalles que no me convencen: a veces uno quiere algo programático en lugar de declarativo, y segundo el JMeter es durillo de entender y configurar. Además, no siempre es necesario tener métricas exóticas o peticiones de Ajax, a veces sólo queremos acceder a algún servicio web o analizar una web para bajar ficheros o automatizar tareas.

Leer más...

Converter JSF para SelectOneMenu

La principal característica de JSF (o, al menos, la que más me gusta) es la facilidad para enlazar atributos del bean controlador desde la vista xhtml. No obstante existe una limitación importante: en el estándar HTTP las claves y valores siempre serán cadenas porque así es como se transmiten. Sí, se puede serializar el objeto en base64, pero en casi cualquier circunstancia se debe huir de una salvajada así.

¿Cómo hacer, pues, que el valor de un control se enlace directamente con un objeto? Pues JSF provee para ello los converters. Bueno, permite que tú los programes, claro. Tampoco PrimeFaces, que es mi librería de componentes de eleción, incluye estos conversores. Así pues, he programado uno pequeño para los SelectOneMenu, los menús desplegables asemejables a comboboxes. Lo dejo aquí para referencia mía y por si puede servirle de algo a alguien.

Leer más...

De LAMP a LEMP

Como fundador de la difunta Frikipedia, una de mis primeras labores fue el montar un servidor web. En 2005 la elección por antonomasia era, por supuesto, el stack LAMP en Debian. Por aquel entonces no existía verdadera competencia en el segmento de webs personales, y sigue siendo hoy día el recomendado para MediaWiki.

Para los rezagados, LAMP significa Linux+Apache+MySQL+PHP, y es uno de los stacks más utilizados a la hora de construir páginas web personales. Linux (estrictamente distribuciones de GNU/Linux) provee el sistema de explotación de la máquina, Apache el servidor HTTP, MySQL la base de datos y PHP el lenguaje de programación.

Leer más...