25 julio 2015

Errores de programación: PhP y las fechas

Este error de programación me ha gustado mucho, porque es tan absurdo y desconcertante que, cuando lo descubrí, me reí mucho. Voy a presentarlo despacio porque lo merece.

Supongamos, en primer lugar, que creo una cadena de fecha de la siguiente manera:

$dia_cad=date("d-m-Y");

Esto pretende reproducir la introducción de una fecha que venga por post rellena en un formulario, ya que estoy desarrollando un "script" de prueba de una función más compleja que maneja fechas. Bien, sigo con las pruebas y utilizo esta cadena para crear un DateTime de la siguiente manera:

$dia=date_create($dia_cad);

Necesito mostrar la fecha que representa ese día en un formato que una base de datos pueda entender. Según una llamada a print_r, descubro que invocando:

$dia->date

consigo una fecha en formato "AAAA-MM-DD HH:MM:SS" lo que es perfecto. Por tanto, al ejecutar este código:

$dia_cad=date("d-m-Y");

$dia=date_create($dia_cad);

print_r($dia);

echo $dia->date;

Se muestra, por ejemplo, como resultado de la última línea "2015-07-25 11:11:11". Genial. Yo, muy contento, elimino la línea de print_r($dia) y veo que nada funciona. La línea echo $dia->date; no devuelve nada. Tras una media hora de revisar, vuelvo a invocar print_r($dia) para ver si esa variable se vacía por algún motivo raro. Y vuelve a funcionar. Y al rato lo descubro:

¡¡Si no utilizo previamente print_r, $dia->date no devuelve nada!!

La solución es sencilla. En vez de la última línea, si quiero una cadena de fecha en el formato que quiera a partir de un DateTime, invoco simplemente:

$dias->format('Y-m-d H:i:s');

Pero ¿a que ha sido un error muy divertido?

27 marzo 2015

Un vals de un titiritero (Vampire Princess Miyu)

Curiosa canción me he encontrado en la banda sonora de la serie de animación japonesa Vampire Princess Miyu. La banda sonora de la serie reposa, en buena parte en utilizar instrumentos modernos liderados por una shinobue, una flauta tradicional japonesa, hecha de bambú, y de sonido muy agudo. La recomiendo.

Y dentro de tanta música con aire tradicional japonés, me encuentro con un vals un tanto lento (unos 48 compases por minuto) que parece intermedio entre el vals lento y el vienés. Tendría que ponerme a bailarlo para ver a qué se ajusta mejor...

 Aquí lo tenéis: Un vals de un titiritero:


12 marzo 2015

Memes sobre ciencia en España (II)

Este segundo meme está basado en la película 300.

¡Esto es Españaaaaa!


05 marzo 2015

Meme sobre ciencia (I)

A ver si resucito mi bitácora. Voy a empezar por un meme-protesta acerca de la situación de la ciencia en España.