Cómo hacer café con distintos lenguajes de programación

El café forma parte íntimamente de la cultura de la programación, por algún motivo. Entiendo que se trata de que la cafeína estimula la concentración, aunque no me es posible corroborarlo ya que hace años que no tomo café con cafeína por el bien de mis compañeros y allegados, particularmente de mi esposa.

No obstante y como mero entretenimiento, voy a tratar de discurrir sobre cómo sería hacer café en diversos lenguajes de programación, inspiración que me ha venido de mi locuelo compinche de fechorías retroinformáticas Ilgrim. También del famosísimo comic de Toggl, por supuesto.

Continuar leyendo «Cómo hacer café con distintos lenguajes de programación»

Desmontando SimCity 2000

SimCity 2000 (Maxis, 1993) es uno de mis juegos superfavoritos de toda la vida. Llevo jugándolo como 20 años y es parcialmente responsable de mis horrorosas notas en el instituto. Modificar juegos siempre me ha gustado, pero hasta ahora no me había puesto en serio a decodificar los datos de este simulador de ciudades. ¡Y he hallado varias cosas interesantes!

Existieron versiones en un mogollón de plataformas, desde el Macintosh (la original) hasta GameBoy Advance, pero mi favorita es la de MS-DOS y es sobre la que trata este artículo. Hay dos ficheros interesantes: el ejecutable (SC2000.EXE) y el fichero de datos (SC2000.DAT). Lamentablemente, la versión de Windows no salió en español, y la versión Network Edition que permitía juego en red funciona fatal (y también está sólo en inglés). Continuar leyendo «Desmontando SimCity 2000»

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.

Continuar leyendo «Demos locas»

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.

Continuar leyendo «Consultas MySQL con muchos JOINs»

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.

Aunque hay un montón de soluciones disponibles, me he propuesto hacer un pequeño simulador de navegador (un webcrawler) en Java, que permita fácilmente y de forma sencilla implementar tareas. Le he puesto a la criatura Hoverkraft. Dejo por aquí el código fuente.

Continuar leyendo «Webcrawler java Hoverkraft»

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.

Continuar leyendo «Converter JSF para SelectOneMenu»