5.30.2005

CUBY 2

El otro día comentaba que en stratos (asociación de desarrolladores de videojuegos) había una compo de hacer un juego en 48h.

Aunque tenía que entregar una práctica el domingo y preparar otra para el martes, saqué un poco de tiempo en el finde para hacer un pequeño juego en base a algunas cosas ue ya tenía hechas. Esta vez es un juego en 8kb (muy optimizable, pero las prisas no me dejaron hacer más), programado en C (sí, me rebajé) y OpenGL (mano en el pecho). Es un clon más del quake en el que tienes que ir dando cera a unos enemigos que tratan de invadir tus templos... hay que saber interpretarlo, pero es así. Recomiendo ver la intro, allí cuenta toda la historia. Unos shots

imagen de la intro:






imagen del juego:


El juego lo puedes bajar de aquí (26kb)
Si quieres ver las demás compos visita este post de los foros de stratos

testigo musical

Aloriel me pasa el testigo musical. Hace unos días veía en planeta castilla y leon como los blogs se pasaban la patata caliente en la que ponían información sobre sus canciones. LLegué a pensar que podría ser una estrategia de la SGAE XD.

Sé de buena tinta que a los que leais este blog os interesarán un pito mis gustos musicales, pero no creo que sea el objetivo, creo que en este caso es el recordar aquellas canciones que han pasado por nuestras vidas y, que por alguna razón, se han quedado.

empecemos...

Testigo recibido de: Aloriel

Tamaño total de los archivos de música de mi máquina: 2.69 gb, 443 ficheros, mp3 y wma :)

Último disco comprado: esto me hace recordar lo pirata que soy XD. Recuero que fue el primero de Hevia.

Canción que estoy escuchando ahora: ahora ninguna, pero la primera que tengo en el reproductor es.... the cardigans - for what it's worth.

5 canciones que escucho un montón o que tienen algún significado para mi:

* farbraush :: fr08-main - aun recuerdo cuando vi fr08 por primera vez :___)
* mago de oz :: molinos de viento - por aquel verano con corazón reparado (literal, nada de sentimentalidades).
* rammstein :: Spieluhr
* jarabe de palo :: grita
* estopa:: el del medio de los chicos - me recuerda a mi padre


El testigo no se lo voy a pasar a nadie, me lo quedo :P.

5.27.2005

48h

Este finde, como comenta zaelsius en su blog, hay competición de creación de un juego en 48 horas en los foros de stratos. Las normas a grandes rasgos son las siguientes: se debe crear un juego en 48h comenzando la noche de hoy (27-mayo) siguiendo unas reglas que se fijarán una hora antes de comenzar el concurso.

Ya hubo otra compo hace unos meses y fue un éxito de participación y de nivel de las producciones. En mi caso presenté un pequeño juego (9k, solo windows) de habilidad en 3D encapsulado en 4kb :). Lo mejor una imágenes para rememorar aquel día de coding intensivo.


PD: Si alguien quiere el código no tiene más que perdirmelo, aunque no encontrará nada de utilidad XD.

5.26.2005

De vuelta por telefónica I+D

Como comenté el otro día esta mañana tenía una entrevista en telefónica I+D. Esta era mi segunda entrevista, en la primera me hicieron además de un entrevista técnica, la típica de RRHH (test de personalidad, lógica y entrevista personal). En aquella ocasión no creo que fueran demasiado mal las cosas, aunque sé que tampoco demasiado bien - conozco mis limitaciones en el campo de las relaciones personales y habilidades sociales - y salí con cierta esperanza, sobretodo después de la entrevista técnica, en la que me preguntaron si sabía C++ (EL lenguaje).

Pues bien, hoy me han hecho solo entrevista técnica, y me lo esperaba ( y temía), me han preguntado por Java y J2EE. Sabía que el destino me tenía deparado algo así :(. La entrevista en general ha ido bien, muy dinámica, pregunta-respuesta, pregunta-respuesta. He respondido con seguridad, tranquilo (se nota que llevo algunas entrevistas más que la otra vez en mi lomo), creo que he demostrado que a nivel técnico estoy a la altura de las circunstancias. Incluso he estado tomando con uno de los entrevistadores hablando sobre qué se hacía allí y demás.

La gran sorpresa ha sido cuando me han preguntado qué me gustaba. Lógicamente les he respondido que python rocks y que opengl rocks (con buenas palabras lógicamente) y me comentaron que dentro de tid había un pequeño proyecto con opengl (oh! dios). Estas son el tipo de cosas que a uno le alegran la mañana XD.

La conclusión del tema es que creo que tengo más posibilidades que la otra vez (como bien dice goleman en la "práctica de la inteligencia emocional", el subconsciente es un arma muy poderosa) y que finalmente tendré que lidiar con java y J2EE, lo cual no me disgusta demasiado, lo importante es coger experiencia.

5.24.2005

casualidades de la vida

Según terminaba de enviar el post anterior me llaman de telefónica i+d para que vaya a hacer otra entrevista técnica. Cuando fui la otra vez me hicieron unas pruebas que duraron unas 5 horas, primero unos test de inteligencia, sentido común y demás, para después pasar a hacer una entrevista técnica. Allí dos señores, mucho menos solemnes que la mujer (muy agradable) de RRHH, me hicieron preguntas sobre todas las siglas que te puedes imaginar, J2EE, C++,C, perl, PHP.. incluso de tcl/tk XDDD, atónito que quedé cuando me lo dijeron. Yo les di bastante la brasa con python (bueno, allí donde voy lo hago con la serpiente por delante. En mente tengo pillarme una camiseta de python y otra de opengl XDD) e incluso el entrevistador me preguntó cuanto se tardaría en aprender python (lo cual demuestra que algo de lo que le dije lo interesó).

Veremos que es lo que quieren esta vez. Sé que técnicamente tengo un nivel bastante bueno, sin embargo no basta con tenerlo, también hay que saber mostrarlo (no quiero usar la palabra venderlo porque suena al típico engaño). Esta vez llevaré el portátil (como me recomento alex) y si tengo oportunidad les enselaré hasta el último byte que he programado .Deseadme suerte :)

trabajo

Miro el calendario con tristeza viendo que me queda un solo mes de carrera. Ahora es cuando empiezas a recordar a todos esos amigos que has dejado, todo lo que has vivido, lo que has aprendido y lo mejor (o peor, he dudado), lo que te queda por aprender. Mirando hacia atrás estoy muy contento de lo que he vivio y lo volvería a hacer casi todo. Sim embargo lo que me preocupa ahora es el futuro, la vuelta al trabajar, pero esta vez en serio.

Se me plantean varias posibilidades:
- Buscar trabajo en una empresa (aka cuenta ajena): el tema está cada vez más complicado y no es eso lo malo, lo peor es que cada vez dan menos. En este aspecto no tengo problemas, el otro día haciendo un trabajo en el que tenía que preparar una propuesta para un cliente , hablé con una persona que conocía de una consultora de madrid para pedirle ayuda y más o menos claro me dejó caer que podría trabajar con ellos. Obviamente ellos ya saben como trabajo y saben que donde me muevo no lo hago mal. Tb tendría la posibilidad de buscar trabajo en la empresa donde curré la otra vez, aunque me gustaría hacerlo en el dpto de I+D. En este aspecto ahora me lamento de no haber entablado mayor relación con el jefe de i+d.

- Irme al extrajero a aprender inglés... :) es posible, peor no debería ni pensarlo, hacer la maleta e irme.

- Ejercicio libre de la profesión, esto es, ICT's y/o TIC's. Difícil, conozco ahora mismo a un arquitecto de una importante empresa de construcción que podría servir de enlace y también se podría montar una pequeña empresa a modo de consultoría, pero enfocado a un sector concreto, que parece que es lo que funciona, como comenta uno de mis profesores en su web.

- ultima opción, hacer lo que realmente me gusta: este puede ser el más difícil de todos. Algunos cyber-amigos, como jaboco rodriguez villar lo están intentando, por un lado escribiendo un libro sobre 3D, programando una aplicación (Shader designer), creando su empresa , dando cursos online sobre shaders, etc. Sé que actualmente mi nivel de 3D no es alto, tampoco es bajo, pero eso no es lo que realmente importa, lo realmente importante por donde salir en este mundo. Algunas opciones son programar juegos (ahora con los dispositivos móviles puede ser un filón), entrar en una empresa de videojuegos, desarrollo indie... arg! quizás cada PYME debería tener una video presentación sobre su negocio en 4k XD

5.22.2005

teatro en la calle

Ayer estuve por valladolid dando una vuelta para enterarme de qué era es del teatro en la calle . La primera sensación que me vino a la cabeza cuando escuché eso de "teatro en la calle" es la típica de "qué rollazo", sin embargo me llevé una grata sorpresa al ver algunas de las actuaciones.

La primera parada fue en la plaza coca, allí había un escenario y gente tomando tapas en los bares de alrededor. En aquel momento me quedé petrificado al ver un hombre mimo, todo pintado de negro, con un paraguas y niños puteandole, aunque más petrificado me quedé cuando vi que era la estatua que lleva toda la vida en plaza coca XD (nunca había estado en esa plaza sin estar borracho). Siguiente parada y primera buena impresión, plaza mayor. Allí había, en el escenario más cercano a la parada del bus, dos personas (un calvo y un cincuentón)actuando a cámara lenta con la música de superman. Después de unos 5 minutos consiguinedo un puesto decente para verlos (aún así los vi de lado), sacaron unas guitarras y comenzaron a tocar. Primero el "para elisa" junto con el himno de la alegría (que tanto jodió miguel rios por cierto XD). Más adelante se atrevieron con flamenco y demás, todo esto a la vez que hacían pequeñas acrobacias y tocaban la misma guitarra los dos. Muy bueno.

Mientras estaban dándole a la guitarra aparecieron en escena 3 dinosaurios gigantescos. Tenían patas, cuello y cola larga y en en ojos y cola luces de color azul que les daban un aspecto espectacular. Además emitían gritos (parecido al de las gaviotas) que embientaban muy bien. Dieron unas vueltas por la plaza mayor y se piraron. No sé como los hombres que estaban dentro controlaban aquellos bichos.


Me fui a tomar un algo por ahí y volví a la plaza mayor, allí estaba una especie de payaso que empezó la actuación justo antes de irme a tomar la caña de turno. Terminó la actuación y dio paso a dos malabaristas que ssaban bolas y mazas con luces. Al comienzo parecía la típica actuación de malabaristas pero con elementos iluminados, pero en cuanto uno de ellos (el chico) se acercó a una mesita (donde había un portátil) y conectó las mazas que tenía a un cable que venía del portátil, me di cuenta de que no era algo estandard. En efecto, después de unos malabares el chaval se sentó y comenzó, tocando las teclas del portátil, a hacer lucir las mazas al ritmo de la música, y eso no es todo, cuando terminó comenzó una música (que no sé definir muy bien, quizás una techno suave, new age, si alguien lo sabe que me lo diga) y las mazas comenzaron a cambiar de color al ritmo de la música. Además los malabares estaban perfectamente sincronizados con la música y con los colores. El escenario a oscuras, la música, y los malabares me quedaron encandilado. El caso es que "feeding the fish" tienen web y en ella muestran algunas cosas del espectaculo de ayer, flux, incluso hay videos , pero no dan el feeling que dan en directo.

Una pena que no haya estado en las 5 ediciones anteriores, aunque nunca es tarde, seguro estaré en las que vengan :)

5.21.2005

Letra pequeña

Estaba viendo la F1 hace un rato y terminando un trabajo sobre túneles de nivel 2 (el trabajo más pesado que he hecho en mi vida) y en esto que, como siempre, estoy leyendo la letra pequeña de los anuncios, esta vez de un hiunday (un 4x4, otras moda más, tan estúpida como las demás) y leo: "el precio se corresponde a la opción basica.... incluído plan prever, plan blblabal, y plan de fidelización". Plan de fidelización? pero qué se han creído? que somos gilipollas?. Todas las compañías hacen planes de fidelización, los hipermercados y gasolineras con sus tarjetas, las operadoreas móviles con contratos imposibles de dar de baja, pero por lo menos no son tan descaradas y no te dicen: "mira, ignorante, te estamos atando para que te gastes el dinero que no tienes ( las casas suben un 108% y los sueldos un 27%, me dirás quién no está hipotecado) y además no te gastes menos de lo que te estás gastando".

En las inversiones familiares evito siempre evitar ese tipo de ofertas, tanto en gasolineas, contratos elétrica+operadora telefónica, internet, es por ello que me destrozan este tipo de cosas.

5.19.2005

Código del día (o del mes :P)

Hace unos días estaba pendiente de los resultados de los scene awards con las epseranza que Arise (stravaganza) y Paradise (RGBA) ganaran en sus respectivas catergorías (mejor demo y mejor 64k). Para ser algo más parcial decidí bajarme las
producciones candidatas a la cetegoría 64k (las demos para cuando me ponga una ADSL de tropecientos megas) y entre ellas me gustó especialmente Prophecy de conspiracy que finalmente resultó la ganadora.
En concreto me gustó un efecto, que no sé como describir, quizas como efeto "película vieja", que aparece en la parte en la que comienza a verse la ciudad después de ver las praderas verdes y las margaritas. Como buen documentador que soy (copiar deliveradamente es plagiar, copiar deliveradamente haciendo referencia es documentar), decidí hace algo similar para la intro 4k que estoy preparando. Supuse que lo que hacía era generar una serie de texturas con ruido no coherente y en la fase de post-render de la escena superponer la serie con un quad de toda
la pantalla con un blend.
El primer paso, codear las herramientas para generar texturas y subirlas
a la gráfica:


#define TAMX 128
#define TAMY 256

float Gtime =0;

unsigned char img[TAMX*TAMY*4];
int i,j;
int k=8;
int TEX_post[8];

typedef void(*gen_f)();
unsigned char *col;

int TEX_upload(int x,int y,unsigned char* data)
{
int id;
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id);
gluBuild2DMipmaps(GL_TEXTURE_2D,4,x,y,GL_RGBA,GL_UNSIGNED_BYTE,data);
return id;
}

int GenTex(gen_f fn)
{
for(i = 0; i< TAMX; ++i)
{
for(j = 0; j< TAMY; ++j)
{
col = &(img[(j*TAMX+i)*4]);
fn();
}
}
return TEX_upload(TAMX,TAMY,img);

}

El segundo paso, generar las texturas:

void TEX_Rand(void)
{

col[0] = 0;
col[1] = 0;
col[2] = 0;
col[3] = InterPol(20.0f,60.0f,(float)rand()/0xFFFF);
//interpolacion linea, cosenoidal o lo que desee
}

void INTRO_Init()
{
.....
while(k--)
{
TEX_post[k] = GenTex(TEX_Rand);
}
....
}

En este paso lo que hago es generar 8 texturas de color negro pero con
un canal alpha entre 20 y 60 (prácticamente transparentes), aunque según
se modifiquen estos valores se consiguen diferentes resutados.

El tercer y último paso, dibujarlo:

//el código del quad... última tenología XD
void quad()
{
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(-1.0f/2.0f,-1.0f/2.0f,0);
glTexCoord2f(0,1);
glVertex3f(-1.f/2,1.f/2,0);
glTexCoord2f(1,1);
glVertex3f(1.f/2,1.f/2,0);
glTexCoord2f(1,0);
glVertex3f(1.f/2,-1.f/2,0);
glEnd();
}
//con este parámetro se cosigue tener puntos más o menos gordos, o con
diferentes pixelados, según se quiera ver
float Granularidad = 4.0f;
__inline void PostRender()
{
glLoadIdentity();
glTranslatef(0.0f,0.0f,-0.5f);

glMatrixMode(GL_TEXTURE);
glScalef(Granularidad,Granularidad,Granularidad);

glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glBindTexture(GL_TEXTURE_2D,TEX_post[k++%0x07]);
quad();
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
}
void INTRO_RenderFrame(float delta)
{
RenderALL();
PostRender();
}

Y se obtiene un resultado la mar de chulo y muy configurable variando
los parámetros de alpha de las texturas y de granularidad. Como no, lo
mejor para estos casos es una imagen del antes y del después :)




5.12.2005

Pruebas de selección

Bien, acabo de llegar de las prubas de selección con deloitte en el hotel NH ciudad de Valladolid. Me levanté a las 7:15 y después de enfundarme mis mejores pantalones, mi camisa azul (he usado la azul claro porque dice mi madre que me hace muy bien a la cara XD) y mis queridos zapatos camper (mereció la pena los 80€ que me gasté en ellos) salí zumbando hacia el hotel. La cita era a las 8 y una de mis mayores dudas era con quien me encontraria: gente de clase, personas de otras carreras... la duda se resolvió nada más acercarme al hotel, allí había 3 personas que conocía de clase (los típicos que ves mil veces pero que no sueles hablar con ellos). El primer error que cometí es la de no llevar el traje, que, aunque iba bien vestido, era mucho más apropiado (más que nada por el contacto cercano con las personas de RRHH).

A las 8:45 entramos a una sala del sótano del hotel. Era la típica sala forrada en madera, con mesa presidencial y buena acústica. Por parte de deloitte había dos chicas de RRHH que nos dieron las gracias - qué menos - por venir. A continuación nos hicieron, si no recuerdo mal, 4 test: razonamiento verbal, razonamiento lógico (2) e inglés. En el de razonamiento verbal te daban una frase sin dos palabras y debías rellenarlas con una de 4 posibilidades, por ejemplo: segundo es a tiempo como perro es a ....... El de razonamiento lógico eran una serie de figuras que formaban una secuencia y debías continuarla. Este test para una persona que se ha metido un año entero de ecuaciones de maxwell es relativamente fácil. El de inglés, un infierno, todo phrasal verbs y uso de for, in, at, about, from, etc, en frases con un vocabulario más o menos asequible pero bastante confusas. Para esta parte no encuentro ningún punto importante, sale solo.
A continuación la temida dinámica de grupo. Para ello nos dividieron en 3 grupos (aparentemente aleatorios) y nos fuimos a una sala parecida a la primera pero más adecuada, tenía una mesa redonda en la que nos veíamos todos la cara. Las dos personas de RRHH se sentaron juntas, una con un portátil (creo que era licenciada en económicas) y una psico-pedagoga que tomaba notas a mano. Lo primera sorpresa en las presentaciones... todos teleco y con experiencia laboral. La mayoría tenían el proyecto casi acabado y, la verdad, parecían mucho mayores que yo. Estaba claro que estaba en un grupo que no era el mío :( pero tampoco me preocupó demasiado. En las presentaciones un apunte: es importantísimo poner enel CV el área en el que te interesa trabajar y tu disponibilidad para desplazarte por toda españa.

La dinámica de grupo fue bien, debíamos proponer cada uno un negocio para un persona de mucha pasta. Después de unas ideas la que ganó, sorprendentemente, es la de enlatar el calimocho la cual tuvimos que desarrollar. Había claramente 3 personas que luchaban por tener el mando que prácticamente solo hablaban ellos, y lo peor es que se dispersaban. Por ello mis dos primeras intervenciones fueron para encauzar la disputa y volver a lo que realmente era interesante. Hice unas 5 aportaciones más en las que aporté ideas que finalmente estuvieron en lo que le presentamos al cliente. Creo que el problema de las dinámicas es que la gente quiere que la vean y para ello habla, aunque sean tonterías, no dejando hablar a los demás que quizás tengan ideas, incluso para que ellos sigan hablando. El momentazo fue cuando la señorita comentó que debíamos hablar en inglés, todo el mundo parecía saber inglés. De 12 personas solo 3 no hablamos y los demás lo hicieron con un nivel bastante bueno.

De la dinámica se puedo extraer las siguientes conclusiones: hay que ir bien vestido, no tener miedo a decir cosas siempre que estén bien argumentadas (sobre todo los argumentos), dar paso a las personas que no hablan, ser capaz de no irse por las ramas y sobretodo, que no se note que quieres hacerte notar.

La conclusión de todo esto es que la universidad va muchísimos años más atrás de lo que pensaba. Mientras que ahora la formación que se requiere para un ingeniero es la social, la universidad se centra en la formación técnica y lo peor, de hace 20 años. Me irrita muchísimo este tema, más que nada porque no hay escuela de habilidades sociales y personas que han tenido problemas muy graves en su vida (que afectan profundamente al comportamiento social de la persona) vemos que, además de tener que superar las asignaturas, tenemos que superar otra serie de aspectos sin ningún tipo de formación. Creo que cuando termine las asignaturas me voy a dedicar a viajar al extrajero a aprender idioma, mejorar mis habilidades sociales y dejar aparcado el PC que tantos buenos ratos me ha dado (y me da).

5.10.2005

Diccionario RAE con python

Este post es solo para enseñar lo que es un lenguaje de verdad a alguien que yo me sé :)
C:\temp>rae.py barruntar
barruntar
-> Prever, conjeturar o presentir por alguna se├▒al o indicio.

C:\temp>type rae.py
import re;
import sys;
import urllib;
if(len(sys.argv) > 1):
s =re.compile("<span class=\"eAcep\">(.*?)</span>");
rm = re.compile("<.*?>(.*?)<.*?>");
l = urllib.urlopen("http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_BUS=1&LEMA=%s" % sys.argv[1]).read();
g = s.findall(l)
if(g):
print sys.argv[1]
for i in g:
print "->"+ rm.sub(lambda x:x.group(1),i);


C:\temp>



Falla el character enconding, pero en 3 minutos no me da tiempo a mirar la documentación (realmente tampoco me interesa :P). Siempre se ha dicho que parsear HTML con regexp es un asesinato, pero ahí esta.
a dormir

5.09.2005

Marketing

El otro día viendo la TV había un programa de estos de curiosidades, zapping y demás. En uno de los repotajes, una alta (sic!) cargo de marketing de citroen hablaba orgullosa de su trabajo con el anuncio del coche bailando [1], comentaba el gran trabajo de los artistas, de los músicos y de todo el personal.

Personamente me encandiló la forma en la que hablaba del trabajo de sus empleados, especialmente los de 3D, y no me imaginaba la cantidad de trabajo que algo así llevaría. Pues otra vez tengo que reconocer que soy un iluso y que los comerciales de grandes empresas hacen su trabajo muy bien. Menos mal que visitando codepixel, en concreto este artículo, me he dado cuenta de que aquellas palabras de esa señora no eran más que una cortina de humo, no hay más que bajarse este video (2Mb) para darse cuenta que una compañía fundada el año pasado, sin comerciales, sin publicidad, sin la parafernalia que adorna a las empresas ahora, es capaz de crear una animación 3D de la misma calidad con muchísimos menos medios (aka dinero).

Moraleja: llevo escuchando desde el verano del año pasado insitentemente que el perfil de ingeniero buscado hoy en día está enfocado mucho más al área técnico-comercial que al propio de un ingeniero, el puramente técnico. A mi me gustaría saber quien es el que hace el trabajo por detrás, quienes son los que diseñan el soft,el hard, o cualquier otra cosa, porque desde luego el comercial de aquí para allá dudo que tenga tiempo de ponerse con rational rose, por ejemplo. Es por esto que la noticia me ha tocado en nervio, ver que toda la parafernalia exterior sobra a la hora de obtener un producto de calidad me hace preguntarme todo lo anterior.

Comentario: Hace un mes y pico, en una entrevista laboral en telefónica, la responsable de RRHH me preguntó algo que todavía estoy pensando : "¿Estás en alerta de la publicidad que puedan estarte mandando de los diferentes medios?"a lo cual respondí sin dudar :"No hago otra cosa". La respuesta no fue la más afortunada (como las demás), pero aún pienso el por qué de esta pregunta (quizás alguien sepa responderme). El jueves tengo otra entrevista con deloitte, espero que cuando me hagan otra pregunta de ese tipo la conteste mejor, aunque creo que en esta prueba antes de la entrevista personal hay una dinámica de grupo para eliminar a gente como yo, con un instinto comercial nulo. XD

5.08.2005

F1 (24/66)

Aún no ha terminado la carrera, pero tengo un sabor agridulce. Después de años (unos 6) siguiendo la fórmula 1 como podía, a veces gracias a TVE, otras gracias a amigos que tenían la RTL y úlmamente gracias a tele5. La peor parte de todo esto es que tele5 está consiguiendo que la F1 sea como el fútbol, una gran masa de gente gritando y haciendo comentarios pensando, pobres, que este es un deporte similar al fútbol. Para mi el verdadero jugo de este deporte se obtiene del carácter técnico del mismo, y no de la emoción mediática que se pueda obtener. Es por ello que me divierte mucho más pensar en cómo harán la estrategia, el soft de gestión del coche, los entresijos de la conducción (pincha schumi ahora mismo, una pena) y creo que para todo esto es necesario un conocimiento de ciertas cosas que no tiene la "gente de la calle" (schumi pincha de nuevo). Quizás peque de clasista -uno estos adjetivos que se usan para indicar que lo que dices no es políticamente correcto (p.ej: xenófobo, racista...)- pero, manteniéndome en mis trece, sigo pensando que el enfoque de este deporte no es el que está tomando en este último año.

Por suerte tenemos, al fin, los comentarios inteligentes y experimentados de Pedro de la Rosa, que gracias a él y al tercer coche obtenido por mclaren debido a la pésima temporada pasada, mclaren está donde está. Además no todo lo que consigue tele5 es malo, está consiguiendo que vea F1 por televisión, que tengamos infomación (poca) sobre apartados técnicos, cobertura casi diaria de los que pasa en el mundo fórmula 1 (bueno, en el mundo de fernando alonso).

En resumen, sabor agridulce.

Por último, y para el que esté interesado en temas algo más técnicos, comentar que xilinx (fabricante de FPGA) tiene algunso artículos del uso de FPGA's en F1(en concreto williams). No se meten en términos técnicos, son temas comerciales y de rendimiento, pero merece la pena ver que un dispositivo que está al alcance de todos, es usado en un ámbito de hi-tech. En concreto recomiendo el siguiente artículo de la revista xcell: http://www.xilinx.com/publications/xcellonline/xcell_47/xc_formula47.htm

5.05.2005

Python, Ruby y threads

Estaba ayer terminando de portar uno de los wizards de configuración de red de soleupix. El código en cuestión lanza un thread para hacer unas llamadas a la shell para ejecutar los comandos necesarios para configurar la red. El problema surge al portar el código en Ruby (usa GTK pero es caso a parte, digno de unos miles de post) a python, concretamente los threads y los callbacks son la parte más compleja ya que Ruby implementa una especie de delegates. En un primer momento pensé en hacerlo con lambda, pero dada la complejidad de las funciones opté por implementarlo con funciones normales (según escribo esto creo que será mejor hacerlo con funciones locales). Resumiendo, en ruby para crear el thread se hace más o menos así:



thread = Thread.new do
# cleanup first
system("/sbin/pump -k -i \"#{Global.device}\"")
...

end





Yo lo traduje a python de la siguiente forma:


th =thread.start_new_thread(self.Thread_func,(self,None)); #hack



Pero no ejecutaba la función que le especificaba. Pensé los argumentos podrían estar mal y probé unas cosas en un fichero de pruebas:



from threading import Thread;
import thread;

class B:

def __init__(self,name):
self._th = Thread(target = self.Func);
self._name = name;
self._th.run();
def Func(self):
print "aqui otro thread (%s)" % self._name

class C:

def __init__(self,name):
self._th = thread.start_new_thread(self.Func,());
self._name = name;
def Func(self):
print "aqui otro thread (%s)" % self._name;


def fn(data):
print data;
c = thread.start_new_thread(fn,("holax",));

C("2");
B("3");




La clase B funciona correctamente (de hecho así lanzo ahora el thread), sin embargo la clase C no funciona y es precisamente porque usa la función start_new_thread del módulo thread. Un poco más abajo uso esta función para lanzar un thread, pero ahora es una función que no pertenece a una clase, y en este caso funciona correctamente. En la documentación de python2.4 no dice nada acerca de cómo usar la función start_new_thread y mucho menos su uso en clases, tendré que googlear un poco para ver qué pasa, aunque mi instinto me dice que puede ser por el parámetro self que debería pasarle y no le paso, sin embargo en este caso lanzaría una excepción.

PD: lamento el formateo pero blogger parece que no se lleva nada bien con el HTML embebido
PD2: viendolo desde blogger quedaba mal formateado, pero desde Planet AUG-CYL(hola a todos por cierto:) es prácticamente ilegible, así que he optado por eliminar el code y poner un italic y un pre (mis conocimientos de HTML no dan para más).

Vamos a quemar al barbas con keroseno

El pasado día 3 de Mayo el señor, por decir algo, Richard Stallman, conocido gurú del soft libre, vino a la ETSIT de valladolid a dar una charla sobre patentes. En principio pensé que hablaría de los múltiples beneficios del soft libre, y que saldría preparado (instruído) para usar Linux, incluso usar gcc y eliminar mi partición windows con mi querido vc++7.1. Nada de eso ocurrió, habló sobre las patentes del software. La charla resultó interesante a trozos, en mi opinión repetía mucho conceptos que ya había dejado claros, aunque usaba ejemplos bastante cotundentes -conceptualmente porque su locución(*) era algo cansina de escuchar - y fáciles de entender para alguien que no supiera nada acerca de desarrollo.

Además de la conferencia en si, hubo aspectos destacables, como la asistencia bestial de público, la obsesión del señor Stallman por la pepsi, su descuidado aspecto físico, la pequeña flauta con la que apuntó a modo de pistola para hacer más gráfico un argumento, el pesado periodista -creo- del comienzo de la charla, el "asequible" merchandising del final, el detalle de las prioridades en las preguntas finales (mal argumentadas a mi modo de ver)...

En cuanto a la gente, un 10, no hubo murmullo aparente por detrás, nada de grandes barullos al final y la organización muy buena para los dos días que llevó (destacando el detalle de las pepsis que comenta Jorge en su blog ). Por mi parte vi a algunas personas que no conocía personalmente como Jorge y David Grajal (que debía haber visto por la facultad alguna vez, ya es hora de que actulice la foto de su blog XD).

(*) para escuchar la voz de stallman solo debes escribir algo relacionado con patentes en tu editor de texto favorito, convertirlo a pdf, visionarlo con el Acrobar Reader y poner la opción de leerlo... el sintetizador es para inglés, pero clava la voz del Stallaman XD