Puente

Amigos... No os desesperéis si no veis noticias nuevas en unos días. Sé de uno que se va de puente... :)

PD. Hay que ver cuánta gente hay ya en Planet Murcia. Hoy mismo he añadido El destino de Iscariote.

Podcasts en español

Hoy, gracias a una pregunta de Luis Pérez (cinéfilo) me he enterado de que existe una comunidad para «PodCasts» en castellano (de verdad, se debería buscar un nombre apropiado en español para esto, porque suena muy mal en este idioma de Shak^b^b^b^bCervantes). Tienen hasta un directorio con los existentes en castellano, aunque en comparación hay muchísimos menos que en inglés, por ejemplo (no sé en francés, ¿alguien tiene datos?). Ya hablé de los «diarios hablados» hace algún tiempo, y la verdad, cada vez descarto menos hacer uno. A ver si no me da vergüenza, aunque en el fondo hay gente que se lo toma como una emisión radiofónica, y en el fondo está el pasárselo bien un rato hablando de lo que uno quiera... Lo bueno de la democracia de Internet es que luego lo leerá también quien quiera :)

Interesante artículo sobre 59 segundos y Zapatero

Como siepmre, Náufrago ha puesto un interesante artículo de crítica política sobre la aparición de Zapatero en «59 segundos» que ha suscitado interesantes comentarios (el mío todavía está esperando la moderación :) )

NO a las patentes de software

Mañana a las 12 en la puerta de la facultad de Informática hay una concentración de protesta contra la aprobación por parte del parlamento europeo de la normativa sobre patentes de software. Por favor, NO a las patentes de software.

Último mes atareado

Como he dicho ya en algún post anterior, me he decidido a terminar mi tesis... Este último mes he estado muy atareado programando y solucionando errores en los programas que uso que me han vuelto loco. Analizando este último mes en términos de código:

$ cvs -z3 diff -u -C0 -D '1 month ago' | wc -l

5589


Cinco mil líneas removidas. ¿Es mucho? ¿Es poco? No sé, pero duermo bastante poco :) En fin, ya queda menos.

Fotolog de Jabalí Digital

Aunque había leído algunas veces al contertulio de Planet Murcia Jabalí Digital, no sé por qué se me había pasado por alto su fotolog. Impresionante. Sinceramente, algún día me gustaría saber hacer fotos como esas.

Larga noche de trabajo

Pues eso, sólo quería compartir con alguien que lea el weblog que me espera una larga noche de trabajo. Estoy haciendo cambios en el código de mi tesis que me llevan loco ya una semana. Intuyo que estoy cerca de la solución, pero por ahora estoy en modo "zombie" :) Es una cuestión muy complicada, que implica carga dinámica de componentes en tiempo de ejecución, linkado dinámico, etc. Si encuentro la solución pondré una explicación de qué fallo tengo y cómo lo he resulelto (espero).

Actualización 4:54: La noche ha dado resultado. ¡¡Por fin!! Después de una semana he encontrado por qué fallaba esto. Probablemente esto no os diga nada, pero para mí significa una semana de trabajo y que las cosas por fin funcionan para mi tesis: Básicamente se estaba confundiendo al enlazar un cliente con un servidor enlazados como librerías dinámicas dentro de un mismo proceso. La solución, la opción ooc.orb.policy.location_transparency ponerla a strict. Vaya. Esto hace que las invocaciones no se hagan por el _stub directo_, que era lo que estaba haciendo fallar todo el asunto... :D

Un apunte rápido sobre spam

Me he reído mucho al leer esta noticia sobre correos electrónicos que envían los _spammers_. Ya no saben lo que hacer. Ahora envían correos como si fueran el autor de un plugin muy famoso para MovableType (MT-Blacklist) diciendo que se está recibiendo ese correo como pago a usar el plugin en cuestión. Además, lo mandan en nombre del autor, una cosa que no sabía que se llamaba «Joe Job». Siguiendo esos enlaces, he encontrado también «Las reglas del Spam». ¡No las podría haber definido mejor! Por ejemplo, la regla número 3: Spammers are stupid, que incluso tiene un corolario (de Krueger): Spammers's lies are _really_ stupid. :)

Una entrevista para Info TV

Ayer se pusieron en contacto conmigo los de Info TV, un canal de televisión de noticias hecho en Murcia y para Murcia. Yo no conocía esa cadena, pero al parecer emiten por el dial 33. A ver si puedo pillar su emisión en Murcia. Según dicen, la semana que viene vendrán a hacerme una entrevista para preguntarme cosas sobre el mundo de los Weblogs, sobre Planet Murcia, sobre informática, etc. Estoy contento, la verdad. Es la primera entrevista que me hacen :). Os mantendré informados, porque por suerte o por desgracia, todos los videos de entrevistas y noticias los tienen abiertos al público en su página web...

Otro weblog interesante, sobre todo por sus fotos

Justo como me gustan: Caleidos.

Mi "Quijote" también en audio

Y además funciona con mplayer y el plugin para Mozilla/Firefox, aunque hay que decirlo, hay que hacer algún truquillo, y es una pena que una obra tan universal como el Quijote se vea limitada a ponerlo en un formato propietario de Windows... Esperemos que a los 500 años por fin lo pongan audible por todo el mundo... Pero bueno, Linux tiene trucos para todo. Una gozada... aquí

Cosas interesantes, software libre y literatura

No quería dejar estos links que acabo de encontrar en una búsqueda. El primero, Jordi Mas, ahora trabajando en Ximian, pero que yo siempre lo había conocido por magníficos programas que hizo en ensamblador en mi época de iniciación a la informática. Jordi ha escrito un libro llamado «Software Libre» con licencia Creative Commons.

Siguiendo sus enlaces he encontrado el blog de Jose Antonio Millán con un interesante libro: «Nueve veranos».

Imagen

Me ha gustado mucho esta imagen:

Ubuntu, boot en 35 segundos

Con un portátil normalillo: A través de esta noticia me he enterado, y he aquí los resultados:

bootlog

El periodista con frenillo

El último de los _flash_ de hoy es para indicar un enlace que disfruté leyendo muy mucho. Del compañero de blogosfera Náufrago este artículo sobre aquel periodista impresentable Jiménez Losantos. Por cierto que no sabía que Garzón lo comentaba en su último libro. Me parece muy interesante, me lo compraré. ¿Alguien lo ha leído?

De Ratzinger no voy a hablar...

Aunque esto que he encontrado en planet murcia me ha hecho reir mucho.

Nueva versión de Planet para PlanetMurcia

Y parece que va bastante mejor. Parece que han arreglado los fallos de _parsing_ que tenía el feedparser que incluían. Ahora la página sale mucho mejor. He tenido que actualizar a la versión de desarrollo con la utilidad arch (tla).

Planets en Barrapunto

Hoy he visto una noticia en Barrapunto en la que se anunciaba el Planeta Castilla y León. Un poco extraño, porque cuando pinchas en la URL sólo aparece la hoja de inscripción... ¿Y los blogs? En fin. Por ahora he añadido a Barrapunto un comentario con nuestro Planeta, a ver si se le ve por ahí :).

Pues no tengo nuevo weblog

Después de pensarlo mucho, me he dado cuenta de que blosxom no es tan bueno... El simple hecho de que vaya por "flavors" (distintas maneras de presentar el contenido) ha hecho que no me convenza mucho. No es ya por la apariencia, sino por la programación interna, que no me ha convencido. Aunque he logrado pasar todas las noticias que tenía aquí (desordenadas por la fecha) al final no me ha convencido. Al fin y al cabo, Wordpress no es tan malo :) aunque esté programado en PHP :( (que sí que es pésimo).

Mi nuevo weblog (2)

Bueno, por fin he podido ir acondicionando el nuevo weblog. En breve sustituirá a este. Sé que la gente puede decir: "El otro es más bonito", etc. Sin embargo, bloxsom es mucho más cómodo para mí, ya que no usa bases de datos, está orientado a ficheros y directorios y puedo manejarlo con mi propio almacén Subversion que utilizo para el resto de mi trabajo.

Ahora queda el reto. Pasar todas las noticias y comentarios de WordPress a bloxsom... No va a ser tarea fácil, pero os iré comentando cómo va la cosa. Creo que en un primer momento voy a vaciar toda la base de datos de noticias, para ver cómo se adapta el nuevo bloxsom con todas las noticias que tengo actualmente. Después descargaré los comentarios, que tendré que asociar a cada historia.

Cuando digo que es más sencillo para mí me refiero a lo siguiente. Estoy en mi casa y decido escribir una noticia. Puedo crear en mi ordenador un fichero .txt dentro de los directorios de mi almacén de ficheros Subversion. Hago un commit de ese fichero y automáticamente sale publicado en la web. Veremos cómo va.

Un pequeño cuento

Durante el curso de iniciación a la literatura que comenté hace un tiempo, el profesor nos ha instado a crear un pequeño cuento que leamos en la siguiente sesión. He tenido una pequeña idea, y por supuesto no soy ningún escritor. No creo que vuelva a escribir nada más, porque soy bastante malo y no tengo imaginación. Os pongo a continuación lo que he escrito para que me deis vuestra opinión. El cuento se llama:

NO ME PUEDO QUEJAR

La verdad, no me puedo quejar. Nunca me falta la comida. ¡Ni la bebida!
Siempre encuentro algo cuando me doy una vuelta por ahí. Mi casa
siempre está cómoda. Sorprendentemente, como ignorando los cambios que
inevitablemente se producen en el ambiente, siempre a la misma
temperatura, como a mí me gusta, o al menos a mí me lo parece.

Además, desde donde vivo tengo unas magníficas vistas. Veo a la gente
pasar, de aquí y de allí, padres con sus hijos que se sientan, andan,
esperan, miran el reloj... Incluso desde una ventana puedo ver el
paisaje, lejano, azul y tierra. ¿Qué más se puede pedir?

No vivo muy estresado, la verdad. Por la mañana cuando me levanto
holgazaneo un poco, me dedico a lavarme tranquilamente, sin
prisa. Después, una vuelta por ahí. A la hora de comer, siempre saco
algo de algún sitio. Magia de la vida, ya ves. O quizá que soy
afortunado, es verdad, no me puedo quejar.

A veces me siento tranquilamente a observar la gente que pasa. Van
nadando en su mundo, a veces sentados, a veces andando. A veces
nerviosos, a veces preocupados. Con sus niños llorando,
nerviosos. ¡Qué vida, fíjate! No sé por qué. Tanto tiempo
libre me permite pensar. ¿Por qué veré siempre en la gente esa
expresión tan nerviosa? Supongo que no saben apreciar la vida
relajada, la excitación de hurgar por ahí y encontrar algo con lo que
jugar, o incluso que comer; sentarse a observar y pensar; el valor que
la tranquilidad aporta al ser...

Sí que es verdad que a veces me siento algo solo. Hace tiempo, mucho
tiempo, apareció por mi casa un amigo. No hablábamos mucho, la
verdad. Parecía ser un poco engreído, siempre con ese porte y figura
tan estirada, pero he de reconocer que girar el ojo y verlo por ahí me
reconfortaba. No recuerdo cuándo, pero un día ya no lo ví más.

No me puedo quejar, no. Pero a veces el desasosiego me inunda. Noto
como si por un instante me faltara la respiración, me doliera la
cabeza, me zumbaran los oídos; como si se me oprimiera el cuerpo. A
veces hasta creo perder el sentido y desmayarme. Pero al rato todo
vuelve a estar como antes. La temperatura es la perfecta, todo está en
calma. Veo a las personas, puedo observar el lejano paisaje. Supongo
que me estaré haciendo viejo. Además, no me pasa muy a menudo.

A veces, cuando me siento solo, nado. Me pongo a nadar y nadar. ¡Cómo
me relaja! Nado y nado frenéticamente, atravesando montañas, corales,
algas, ¡hasta barcos hundidos!, y una cosa extraña que no sabría cómo
describir. A veces, incluso, cuando voy nadando, tengo una extraña
sensación de déjà vu, de como si hubiera pasado antes por ahí. ¡Ay,
esta edad ya juega algunas pasadas! Pero eso son pequeñas cosillas. La
verdad, no me puedo quejar.

Todavía me estoy riendo

Descontroladamente, además, de ver este post de Yhandros. Cita a una "futura miss", la más guapa, vamos. Es que he hecho recopilación de los títulos de sus posts, ¿saben? ¡Ahí van (con comentarios aumentados de este sufridor profesional que os escribe)!:

* El viaje
* Que mierda de fin de semana (nota: a las mises les gustan los fallos de acentuación)
* Yo tampoco me puedo levantar (maravillosa alusión al musical de Mecano de parecido nombre)
* Mecano (me lo veía venir)
* Tengo un nuevo book (en este me ahorro los comentarios)
* Los del tomate no saben hacer de periodistas (este es el #2 en el top ten. El #1, atentos que viene después)
* Tengo una habitación para mí sola
* ¡¡¡He ido a la tele!!! (me alegra que al menos use bien la puntuación)
* Qué caros los pisos (gran cronista de nuestro siglo)
* Empieza "La Granja" y yo llego tarde (#1 indiscutible)

Sin desperdicio.

WP-Morph en el repositorio de plugins de Wordpress

Pues sí. ¡Qué bien! Me han añadido al repositorio de plugins de Wordpress. He escrito una página en el Wiki explicándolo y lo he dejado disponible para descargar la última versión. Me ha sorprendido gratamente el formato de texto de este Wiki, que no había tenido ocasión de probar.

Larry Osterman, concurrencia

Hace tiempo que quería indicar una serie de artículos de Larry Osterman, un Windowsero que estuvo con Microsoft desde sus inicios. Me ha parecido muy interesante su serie de artículos sobre concurrencia. Son muchos, y los intentaré citar aquí: parte 1, parte 2, parte 3, parte 4, parte 5, parte 6, nota sobre concurrencia, parte 7, parte 8, parte 9, parte 10, parte 11, parte 12, parte 13, parte 14, parte 15 (resumen), parte demasiadas para seguir, parte demasiadas para seguir 2, parte demasiadas para seguir 3. Creo que ya está :).

La concurrencia es una de las cosas más importantes de la programación actual, y casi no se le dedica tiempo.

Historia de un programa

El viernes pasado, durante la clase del curso ACM de programación que ya comenté estaba algo triste. Para mostrar la salida de un programa generaba código povray que a su vez generaba unas 200 imágenes girando la cámara un poquito cada vez. Después, utilizaba mencoder para convertir el conjunto de 200 imágenes en una película AVI o DIVX4/5. El caso es que últimamente mencoder no estaba muy fino y daba violación de segmento al generar el AVI.

Decía que estaba muy triste porque aunque se generaban las imágnes, a los alumnos del curso de preparación para el concurso no les podía enseñar la película con las imágenes girando...

Entonces se me ocurrió una cosa cuando quedaban 15 minutos para la presentación: La libSDL (Simple DirectMedia Layer) tenía algunos programas de ejemplo. Estaba seguro de que podía tener uno que mostrara una imagen en la pantalla. Al final encontré uno, que mostraba unos cientos de sprites moviéndose por la pantalla. Frenéticamente, antes de la presentación me puse a modificar el programa para que mostrara una imagen del tamaño que yo tenía y para que hiciera un bucle por las imágnes que le pasaba en la línea de comandos. Al final dejé el programa en algo parecido a esto:


/* Simple program. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <time.h>

#include "SDL.h"

SDL_Surface *sprite;

int LoadSprite(SDL_Surface *screen, char *file)
{
SDL_Surface *temp;

/* Load the sprite image */
sprite = SDL_LoadBMP(file);
if ( sprite == NULL ) {
fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError());
return(-1);
}

/* Set transparent pixel as the pixel at (0,0) */
if ( sprite->format->palette ) {
SDL_SetColorKey(sprite, (SDL_SRCCOLORKEY|SDL_RLEACCEL),
*(Uint8 *)sprite->pixels);
}

/* Convert sprite to video format */
temp = SDL_DisplayFormat(sprite);
SDL_FreeSurface(sprite);
if ( temp == NULL ) {
fprintf(stderr, "Couldn't convert background: %s\n",
SDL_GetError());
return(-1);
}
sprite = temp;

/* We're ready to roll. :) */
return(0);
}

int main(int argc, char *argv[])
{
SDL_Surface *screen;
int width, height;
Uint8 video_bpp;
Uint32 videoflags;
Uint32 background;

/* Initialize SDL */
if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
exit(1);
}
atexit(SDL_Quit);

videoflags = SDL_SWSURFACE|SDL_ANYFORMAT;
width = 800;
height = 600;
video_bpp = 8;

/* Set video mode */
screen = SDL_SetVideoMode(width, height, video_bpp, videoflags);
if ( ! screen ) {
fprintf(stderr, "Couldn't set %dx%d video mode: %s\n",
width, height, SDL_GetError());
exit(2);
}

while ( argc > 1 ) {
char c;

SDL_Rect area;
area.x=0;
area.y=0;

--argc;


/* Load the sprite */
if ( LoadSprite(screen, argv[argc]) < 0 ) {
exit(1);
}

SDL_BlitSurface(sprite, NULL, screen, &area);
SDL_UpdateRect (screen, 0,0,0,0);
SDL_FreeSurface (sprite);
}

return(0);
}



que finalmente hizo el papel. En cada bucle carga la imagen y la muestra, lo cual hace que no respete muy bien el "jitter", pero da la sensación y funcionó sensacionalmente :). He aquí una de las imágenes:

Buenos weblogs, ya sé por qué

Así es. Si Zootropo es uno de los mejores Weblogs que leo, es por cosas como esta. Trucos básicos y muy útiles para Ubuntu.

Survey about Components

Bayu Hendradjaya sent me the interview I include below. It would be nice everybody doing components-related work to answer it and send it back to him.


"A SURVEY ON COMPONENT BASED METRICS"

A. GENERAL ISSUES QUESTIONS
---------------------------
A.1 Please describe your development and application
environment and platform briefly?

A.2 When you use CASE tool to develop the software
a) Specify your CASE tool

b) Describe how it helps you in developing the Component
Based software.

c) What are the unresolved problems with such tools?

A.3 How well is your system documented?

A.4 Do you find reusing components technically difficult?
State/describe the difficulties involved.

A.5 How many times did you reuse a component before you
become confident with its "blind re-use"?

A.6 Do you use any visualization mechanism to represent your
software system?

B. COMPONENT ISSUES QUESTIONS
-----------------------------
B.1 Do you find some components to be more complex than
others? If yes, how do you define complexity?

B.2 Do you find some components to be more critical than
others? If yes, how do you define criticality?

B.3 Do you find the specification document for components
are clear enough to be used in software development? Please
explain.


B.4 Are the interfaces between components well-defined? What
would be your interpretation of the term "well-defined"?

B.5 How do you make a judgment on the security aspects of
third party components?

B.6 What procedures do you adopt in order to impart
trustworthiness to the components that you have developed?

B.7 Describe/state any metrics that you use to "measure"
various issues in (B.5) and (B.6) above.

C. COMPONENT INTEGRATION ISSUES QUESTIONS
-----------------------------------------

C.1 During integration, do you use your own components,
third party components or both? Please describe the reasons
for your choice.


C.2 How are the components specified (e.g., using CIDL/MIDL,
etc) in your environment?

C.3 How are the dynamic behaviors of components captured?
(e.g., using OCL?)

C.4 How many components on average do you integrate into
your system per day/week?

C.5 What depth of component hierarchy do you tolerate before
you declare that the system is "very complex"?

C.6 How many people on average are involved in integrating
components? What is the average system integration time (in
days)?


C.7 What are the key issues do you encounter during integration?


D. QUESTIONS ON DIFFICULTIES IN COMPONENT INTEGRATION
-----------------------------------------------------
D.1 What problems did you experience during component
integration?
Please list.


D.2 List/describe the issues/problems that you encounter
when integrating third-party components?


D.3 What problems do you encounter when integrating an
updated versions of third-party components?


D.4 How do you manage change in requirements during
integration of components?

E. QUESTIONS ON RISKS IN COMPONENT INTEGRATION
----------------------------------------------
E.1 What risks did you face during component integration?
Please explain.

E.2 How did you identify and ameliorate the risks during
component integration?


F. METRICS ISSUES RELATED QUESTIONS
-----------------------------------
F.1 For your CBSE-based system development
a) Explain the nature of metrics used.

b) Do you use any special software metrics generator tool?
If yes, please specify the name

c) How do you measure the development of your software using
these metrics?

d) How do you find the usefulness and effectiveness of these
metrics?

e) Please specify the limitations of the metrics used, if any.


F.2 Please explain the degree of confidence in chosen
metrics in predicting the system behavior.

F.3 Do you use special metrics for component integration? If
yes, please describe the metrics, and if not, do you think
to need one?


------------ end of survey

Algunos pensamientos filosóficos. Muerte del Papa y otras vergüenzas de la Humanidad

Ya no aguanto más. Me había propuesto no hablar sobre la muerte del Papa, pero ya está bien. Esta semana he estado muy liado y no he podido hablar de esto ni escribirlo aquí. Eso me ha causado una acumulación de muchas ideas que no tengo más remedio que poner aquí. A ver si ordeno bien las ideas, porque son muchas.

Empecemos con el papa. La muerte del papa ha despertado un fenómeno que quizá me esperaba, pero que como aquellas cosas que uno espera, pero que también espera que no sean así, vuelven a defraudar y desmoralizar cuando pasan como uno espera. La gente se ha movido en masa hacia Roma. Todo el mundo llora al papa. Se ve por la tele miles de personas echando lágrimas por una persona que ni siquiera llegaron a conocer. ¿Realmente por qué lloran? ¿Porque se ha muerto el papa o este papa? ¡Si en realidad no lo conocían! Entonces me inclino a pensar que lloran porque se ha muerto el papa... Pero que no se preocupen, dentro de poco habrá otro... Todo esto aderezado con que cada vez la gente es más «pasota», menos practicante, y también menos «creyente», porque en el fondo creen en lo que quieren, y eso no es ser creyente, es ser cómodo.

Aparte del sentimiento de gregarismo que da ver a miles y miles de personas yendo a ver dos segundos al papa azuzados como borregas por los servicios de «protección», uno puede ver cientos de comentarios en la tele, por ejemplo, diciendo «era un buen hombre», «era un gran hombre»... Y yo me pregunto varias cosas. ¿Por qué era un buen hombre? ¿Por qué era un gran hombre? La gente que dice eso, ¿realmente lo piensa? ¿En algún momento ha llegado por medio del pensamiento a la consciencia de que lo que dice es así? ¿O simplemente lo dice porque se espera de ellos que lo digan? Por supuesto que las respuestas a estas preguntas están claras, lo cual podría dar para mucho hablar sobre el estado de aborregamiento generalizado en el que caemos. Lo individual, el pensamiento propio e independiente no está de moda, al menos en las «masas». De ahí obtengo una conclusión: la masa es tonta, mediocre, aborregada e hipócrita. También me viene a la cabeza que para ser un «buen papa» hay que, simplemente, viajar mucho, reir mucho, saludar mucho y ya.

Todo esto lo he podido ver gracias a que los medios de comunicación se han pasado 24 horas al día durante estos últimos días hablando del papa y de su muerte. Muy bien. Se han pasado. Simple y llanamente. ¿Realmente el papa es tan importante? Realmente no. Entonces ¿por qué hemos tenido ese empalagamiento de papa? Pues simplemente porque vende. Todas las televisiones se han lanzado en un pacto con el telespectador en el que sólo le muestra lo que sabe que va a ver. El morbo y "lo nuevo".

Esto me sirve para dar una razón más de por qué toda esa gente va: por morbo, por ver cosas diferentes, por salir del aburrimiento: me voy a Roma y así la veo, y de paso veo la capilla ardiente del papa. Pues muy bien. De verdad, me da una confianza absoluta en el género humano. ¿Por qué digo esto de que la gente se guía por morbo más que por respeto al papa? Pues bien, veamos un ejemplo que prueba lo que digo: ayer las autoridades pidieron que por favor no llegaran más peregrinos. Los verdaderos católicos que respetaran al papa y a la Iglesia hubieran desistido de ir, ya que el mogollón que hay en Roma es pequeño... Pero esta mañana oigo en la radio: "La Universidad Católica de Murcia ha fletado un avión para ir a Roma, blah blah". ¡¡Un avión!! Perfecto, respetando al papa, a las peticiones de la Iglesia... Más bien morbo, anteposición de las querencias personales...

El cabreo y la desazón que me ha llevado a colmar el vaso que significa escribir esto hoy es haber visto entrar a Bush en el Vaticano por la puerta grande. Ni colas ni hostias, al tipo le han dejado paso expedito para que se ponga al ladito a rezar. Qué irónico. A rezar. El responsable de tantas cosas rezando.

Y ahora, si me lo permiten, me voy a quedar a gusto con Bush. Este mequetrefe hacedor de crímenes contra la humanidad, ha admitido recientemente que los informes que tenía sobre Irak eran falsos o malinformados. Pero no nos lo perdamos. Aún así ha hecho una guerra, ha hecho lo que le ha dado la gana en Irak, ha cometido asesinatos, mucha gente ha muerto, civiles sobre todo, le está costando mucho dinero al mundo. Y muchas, muchísimas más cosas que ni siquiera puedo pensar ni expresar. Y sin embargo, le dejan entrar con todos los honores al Vaticano. Muy bien. Eso también me da mucha más confianza en la Humanidad. Y finalmente, como no podía dejar pasar, la oposición española tan cabreada porque Zapatero no tenga buenas relaciones con Bush. A Bush deberían juzgarlo en el Tribunal Internacional de Derechos Humanos. Y no lo digo como ninguna broma.

La muerte del papa, la verdad, ha servido para que me diera cuenta de muchas cosas. Vamos, que se pueden analizar muchas cosas del asunto. Por ejemplo, continuando con nuestro amigo Bush, recordaré que una de sus frases preferidas era que con la guerra de Irak, «el mundo era ahora más seguro». Sinceramente, hago esta pregunta. ¿Hay ahora alguien que piense eso? Ni él lo piensa. Se me cayó el alma a los pies cuando vi el dispositivo de seguridad que se había montado para la llegada de líderes internacionales al funeral del papa... Misiles antiaéreos, ¡¡¡misiles antiaéreos!!! Miles y miles de policías... ¿Pero en qué mierda de mundo hipócrita y de cartón piedra vivimos? Sinceramente, ¿no se da cuenta todo el mundo de que por culpa de Bush las cosas nunca volverán a ser lo que eran? El libro de Gonzalez y Cebrián lo decía muy claro. Siempre hay visionarios. (Aquí una nota importante. Alguien me puede decir que el mundo lo han cambiado los atentados terroristas. Por supuesto, ni que decir tiene que condeno como el que más los atentados terroristas. Pero también veo que la política exterior americana, extorsionando a todo el mundo e imponiendo un imperialismo galopante, ha propiciado que se levantaran masas. Igual que condeno los atentados, condeno a los americanos por este tipo de política expoliadora mundial. Ahí queda eso.)

Pero hay más. La muerte del papa no tiene desperdicio. Las miserias de la Humanidad continúan... Ahora obispos, curas, curillas y cualquiera con autoridad eclesiástica está de moda. De entre las miles de misas alabando la persona del papa, he oído una y otra vez que «se va a acelerar el proceso de beatificación del papa». Pero ¿de qué hablan? Hasta donde yo sé, se tiene que haber probado que la persona beatificada ha realizado al menos dos milagros. ¿Qué milagros ha hecho el papa? Por favor, que alguien me lo diga. No me entra ni por una neurona de la cabeza cómo no se da cuenta la Iglesia de lo patético de su condición. ¿Alguien en su sano juicio y que realmente se considere orgulloso de ser como es se cree que Juan Pablo II ha hecho milagros? De verdad, debe estar algo tarado. Pero amigos, la cosa seguirá. Lo beatificarán, lo harán santo, la gente rezará por él, y todo pasará sin pena ni gloria. El aborregamiento y la falta de pensamiento propio proseguirá y todos tan contentos. De verdad, me ha defraudado la «masa».

Para terminar, quiero citar un comentario que encontré hace unos días en Planet Murcia sobre el tema que me sorprendió. No pensaba que nadie se iba a atrever a ir contra la masa. En concreto fue este post encontrado en la Bitácora de María del Mar:

La religión, en general y en particular, dejó de significar y tener presencia en mi propio discurso (al menos consciente). Esta es mi declaración de intenciones. Por tanto, no hay significación alguna sobre la figura del Papa o la de ningún otro representante religioso. La figura del Papa como jefe de Estado sólo nos hace recordar que el Estado Vaticano es un estado antidemocrático, que mantiene la discriminación entre hombres y mujeres, no respeta los derechos humanos y que basa su poder en una jerarquía antidemocrática.

La filosofía como forma de aprender a pensar pensando.


Me alegro de no estar solo.

Área Reservada, Radio 3

¿Qué sería de mí sin este programa? Durante años me he considerado un «raro». Realmente no me gusta la música que oigo en los garitos, en la radio, etc. Pero he encontrado la música que me gusta. El programa «Área Reservada» de Radio 3 es una auténtica delicia. Es una pena que el web de Radio-Televisión Española sea tan malo. Podría incluir más información de cada programa...

Concurso ACM de programación

Creo que es interesante traladar a este weblog y a planeta código que hay un concurso internacional ACM de programación. Mi universidad, la Universidad de Murcia participa todos los años desde hace dos, y resulta muy interesante. En la Universidad de Valladolid hay un programa que muestra cómo suelen ser estos concursos. El programa permite registrarse a cualquier persona y probar a enviar programas que resuelvan problemas. La lista de problemas se divide en volúmenes, y se puede ver aquí. Los programas enviados son procesados por un "juez online" que copmila y prueba que los programas sean correctos. Una buen link por si un día estáis aburridos y queréis programar un rato. Los problemas tienen un ranking de quién los resuelve más rápido y con menos memoria. Por ejemplo, anoche me tiré hasta las 4 de la mañana intentando resolver éste, y debo decir que lo resolví, pero el tiempo de ejecución se me va de baras :( (el tiempo de ejecución del programa no debe exceder de 10 segundos). Después de darme cabezazos con el programa busqué por internet y encontré 100 sitios que te dicen cómo resolverlo, y mucho más rápido, claro... Un verdadero ejercicio de auto-humillación intelectual :).

¿Por qué cuento todo esto? Pues porque en mi Universidad tenemos un curso para preparar para este concurso ACM de programación, que incluye un concurso que organizamos nosotros a nivel regional. El que gana compite en la versión del sureste de Europa en París.

Mi "otro" weblog

Mi intención es abandonar WordPress (que está en PHP, y como todo PHP está bastante cascado) y utilizar Blosxom. Las ventajas de Blosxom son muchas: ficheros de texto plano, no usa bases de datos, etc. Un primer resultado aquí. Todavía no está muy operativa, pero da una idea. Estoy teniendo problemas con el plugin Markdodwn, no se ejecuta. Mañana más.

Solución al acertijo sobre WP-Morph

El otro día lancé un reto basado en un plugin anti-spam que he realizado: WP-Morph. Dije que yo había encontrado tres maneras de romper el plugin anti-spam de forma automática. Una de ellas era trivial: que el spammer tuviera un intérprete JavaScript, algo difícil, pero posible. Otra de ellas la descubrió Juanjo en este comentario del weblog. La idea es que en cualquier momento, un par de valores, el calculado por el código javascript y el dado por md5, son válidos para siempre. Así que precalculando esos valores se pueden utilizar siempre para enviar un comentario. Hay varias formas de tratar eso, y lo haré para las próximas versiones del plugin. Resumiendo:

1. Que el spammer tenga un intérprete JavaScript.
2. Precalcular valores válidos del formulario, y
3. ¿Cuál es el tercero?

Este no lo descubrió nadie. La idea es mirar una segunda vez el código. Ese código JavaScript bien podría ser un código en C o casi en perl... Lo bueno de esos lenguajes como perl es que son capaces de interpretar código en tiempo de ejecución, y todos ellos incorporan una función exec que es capaz de interpretar código en tiempo de ejecución. ¿Por qué perl? Bueno, la mayoría de los spammers utilizan perl o python o ruby como lenguajes de scripting para lanzar comentarios spam, así que es natural proponer esta solución.

Sin embargo, el código JavaScript no es exactamente código Perl. Por ejemplo veamos los cambios que hay que hacer:

1. El valor calculado se tiene que extraer, y el código JavaScript que rellena el formulario no significa nada. Sólo es necesario el valor final.
2. Las variables en perl llevan añadido un "$" delante, así que hay que hacer esta transformación.

Imaginemos que somos capaces de extraer el código que hace el cálculo:


v0=1368;v1=1581;v2=927;v3=802;v4=1280;v5=968;v6=1745;v7=1147;v8=661;v9=1376;v10=2086;v11=1539;v12=165;v13=1380;v14=1407;v15=114;if ( v15 > 2059)
{ v7 = v15; }if ( v15 > 1735)
{ v10 = v12; }if ( v11 > 1503)
{ v12 = v8; }v10=(v13-v5)%2514;v4=Math.abs(v4);
v4%=26; while (v4--) {
v0++; }v0=(v8+v12)%2514;eElement.value = (v0+v1+v2+v3+v4+v5+v6+v7+v8+v9+v10+v11+v12+v13+v14+v15)%2514;


Así, las modificaciones que hay que hacer sobre ese código son:

1. s/v([0-9])+/\$v$1/g (sustituye todas las "vxx" con "$vxx" al estilo perl).
2. s/Math\.abs/abs/g (en perl la función es "abs").
3. s/eElement.value/\$v/g (el valor final en $v).
4. Añadir al final: print "$v".

Resultado:


$v0=1368;$v1=1581;$v2=927;$v3=802;$v4=1280;$v5=968;$v6=1745;$v7=1147;$v8=661;$v9=1376;$v10=2086;$v11=1539;$v12=165;$v13=1380;$v14=1407;$v15=114;if ( $v15 > 2059)
{ $v7 = $v15; }if ( $v15 > 1735)
{ $v10 = $v12; }if ( $v11 > 1503)
{ $v12 = $v8; }$v10=($v13-$v5)%2514;$v4=abs($v4);
$v4%=26; while ($v4--) {
$v0++; }$v0=($v8+$v12)%2514;$v = ($v0+$v1+$v2+$v3+$v4+$v5+$v6+$v7+$v8+$v9+$v10+$v11+$v12+$v13+$v14+$v15)%2514;
print $v;


y la salida: 957.

Voilà. He ahí la tercera solución. Ni siquiera se necesita una función md5 (que perl también trae de fábrica incluso).

Imprimatur

Acabo de empezar a leer "Imprimatur", de Monaldi y Sorti. Al parecer, serán un conjunto de siete libros que formarán la frase "Imprimatur secretum, veritas mysterium. Unicum..." (Aunque el secreto se divulgue, la verdad continúa siendo un misterio. Sólo queda...). Con lo que el título de los dos últimos libros todavía no se sabe. El libro incluye un CD con la música de la época que aparece durante el relato, lo cual le da una esfera envolvente de la época. Muy original, me ha gustado mucho, al menos el principio. Es de aquellos libros con los que estás inmerso en la época y en la historia desde el primer párrafo:

Los hombres del alguacil llegaron al atardecer, justo cuando iba a encender la antorcha que iluminaba nuestro letrero. Venían cargados con tablas y martillos; y sellos y cadenas y grandes clavos. Al avanzar por la via dell'Orso gritaban y gesticulaban imperiosos para que los transeúntes y los corros de gente despejasen la calle. Estaban francamente rabiosos. Cuando llegaron a mi lado, soltaron su carga: "Todos dentro, todos dentro, hay que cerrar", gritó el que daba las órdenes.