Ayer estuvimos todo el día en un stand en innovaduero, un feria que mezcla de una forma un tanto extraña tecnología y turismo y que se desarrolló en Zamora, más concretamente en IFEZA . Nosotros estuvimos allí grancias al foro info rural que nos contactó (gracias a Jaime Gómez Gil).
Nunca había ido a una feria así que fuimos un poco al tuntun, con un proyector, unos videos preparados días antes a toda prisa, unas pda y unos GPS para hacer bulto. Por suerte la organización de innova (los mismos que foro info rural) nos había impreso unos carteles en grande que me preparó Juanma Zarza, aka mr koala (un nuevo compañero de trabajo) a toda prisa y casi sin material, lo cual le agradezco de verdad.
Al llegar nisiquiera estabamos en las listas de inscripción y aquella tenía toda la pinta de que iba a ser un desmadre… menos mal que al final no fue así, la organización nos traó de lujo, nos invitó a un café a media mañana, a comer, unas botellas de vino, etc.
Lo siguiente fue montar el stand, no digo más, una foto:
En el rato de preparación del stand preparé una versión de agroguía para poder enseñar una demo de una parcela y preparé unas transparencias (en powerpoint, claro) para una charla que teníamos que dar horas después y de la que nos enteramos horas antes ;)
La mañana pasó divertida, hablando con los compañeros de stand de los que luego hablaré y explicando una y otra vez en que consistía nuestro proyecto, me entrevistaron en la radio, unos 3 minutos, en los cuales mi “habilidad” no me dejó nisiquiera decir la página web ni un teléfono de contacto. Total… te dejan hablar 3 minutos en la radio y no hacer un mínimo de publicidad es para llamarme tonto hasta aburrirte. Una foto de las presentaciones de por la mañana, están aburridos:
Por la tarde más demostraciones y explicaciones, aquello se conviritó en un coñazo terrible, pero bueno. De compañeros de stand tuvimos a:
- fundación médico rural, una fundación que trata de transmitir la necesidad de aplicar la tecnología a las urgencias médicas en poblaciones alejadas. En resumen, tenían un acuerdo con philips que había creado un monitor de esos del corazón que transmitía los datos a un pc remoto gracias a GPRS y de esa forma un equipo especializado podría ayudar al médico o enfermero de la zona rural a salir del apuro. Lo que me contaron los dos señores que estuvieron allí era muy curioso y la verdad es que da que pensar. Tenemos a alcaldes en la cárcel, se están gastando dinero en gilipolleces y para algo que realmente es interesante y puede ayudar a salvar vidas no hacen ni puto caso. La única que había metido pasta era telefónica para poder compensar las supuestas (o presuntas,muy de moda ahora) enfermedades provocadas por las antenas… ahora gracias a la cobertura se pueden salvar vidas y las antenas dejan de ser peligrosas. De esto sí que se debería hacer publicidad, debería recibir ayudas políticas y económicas y atención por parte de los medios de “comunicación”.
- Proxima systems, una empresa que integraba productos de comunicación para aplicación a domótica, video vigilancia y demás. Muy interesante lo que hacían, además tuve la suerte de que eran técnicos y pudimos hablar de algo más que de vender humo y de lo maravilloso que eran sus productos. Muy agradables.
Como curiosidad tuvimos todo el día un segway de esos, además casi en exclusiva, con el que casi nos matamos :). Fue la sensación de la feria.
En resumen, una jornada muy divertida, pudimos conocer a mucha gente y aprendimos bastantes cosas acerca de lo que hacer en una feria.
Decir que un 0 para lo políticos, los cuales llegaron mal y tarde. Como siempre, para hacerse la foto. De mal en peor.
Hacía tiempo que tenía ganas de probar a renderizar un fractal y leyendo ayer en la wikipedia acerca de Mandelbrot vi que el código era muy simple. Después de todo es calcular si una función diverge tras una serie de iteraciones por cada pixel.
He hecho un pequeño código en python para hacer pruebecillas, la verdad que con muy poco código se obtienen imágenes bastante bonitas, de hecho estoy pensando en imprimir alguna y ponerla de poster. Se generan imágenes de este pelo:
El código, necesita PIL y python 2.4 y he dejado algunas funciones para generar animaciones (con un par de hilos para -intentar- aprovechar mi dual core) y 3 ó 4 test de resultados chulos. El código generado HTML a partir del .py usando, como no, vim, la putada es que blogger te mete saltos de linea y hay que quitar los tags br, con un simple replace basta.
import Image;
from threading import Thread;
SIZEX = 1024;
SIZEY = int(SIZEX*2.0/3.0);
NFRAMES = 50;
ZOOMSTEP = 1.0;
def get_color(xx,yy):
x = x0 = xx;
y = y0 = yy;
colour = 0;
iteration = 0
maxiteration = 600
while ( x*x + y*y < 4 and iteration < maxiteration ):
tx = x*x - y*y + x0;
ty = 2*x*y + y0;
x = tx;
y = ty;
iteration = iteration + 1;
colour = float(iteration)/maxiteration;
return colour;
class Palete:
def __init__(self):
self._colors = []
pass;
def addColor(self,color, t):
self._colors.append((color,t));
def getColor(self,t):
#search for color
i = 0;
while(self._colors[i][1] < t):
i+=1;
if(i == 0):
return self._colors[0][0];
else:
t0 = self._colors[i-1][1];
t1 = self._colors[i][1]
dist = t1-t0;
d = (t-t0)/dist;
c0 = self._colors[i-1][0];
c1 = self._colors[i][0];
#print d
color = (c0[0] + d*(c1[0] - c0[0]),
c0[1] + d*(c1[1] - c0[1]),
c0[2] + d*(c1[2] - c0[2]));
return color;
def get_img_fractal(zoom, px,py, palete):
im = Image.new(“RGB”, (SIZEX,SIZEY))
for x in range(SIZEX):
for y in range(SIZEY):
t = get_color(px + zoom*(-2.0 + 3.0*(float(x)/SIZEX)) ,py + zoom*(-1.0 + 2.0*(float(y)/SIZEY)));
color = palete.getColor(t);
im.putpixel((x,y),(255*color[0],255*color[1],255*color[2]));
return im;
class Fractal(Thread):
def __init__ (self,fractals):
Thread.__init__(self)
self._fractals = fractals;
def run(self):
p = Palete();
p.addColor((1.0,1.0,1.0),0.0);
p.addColor((1.0,0.0,0.0),0.5);
p.addColor((1.0,1.0,1.0),1.0);
for x in self._fractals:
print ”generating %.3d.png” % x[3];
get_img_fractal(x[0],x[1],x[2],p).save(“%.3d.png” % x[3]);
def animation():
zoom = 1.0;
it = 0;
fractals = [];
for n in range(NFRAMES):
fractals.append((zoom,-0.77028065155993652446, -0.11144667326007166574,n));
zoom = zoom/2.0;
it+=1;
#launch two threadç
f1 = Fractal(fractals[:len(fractals)/2]);
f2 = Fractal(fractals[len(fractals)/2:-1]);
f1.start();
f2.start();
def testColoring():
p = Palete();
p.addColor((1.0,1.0,1.0),0.0);
p.addColor((1.0,0.0,0.0),0.5);
p.addColor((1.0,1.0,1.0),1.0);
get_img_fractal(0.4,-0.77028065155993652446, -0.11144667326007166574,p).save(“coloring.png”);
def testColoring2():
p = Palete();
p.addColor((0.0,0.0,0.0),0.0);
p.addColor((145.0/255.0,165.0/255.0,192.0/255.0),0.5);
p.addColor((1.0,1.0,1.0),1.0);
get_img_fractal(0.0001,-0.77028065155993652446, -0.11144667326007166574,p).save(“coloring2.png”);
def testColoring3():
p = Palete();
p.addColor((1.0,1.0,1.0),0.0);
p.addColor((145.0/255.0,165.0/255.0,192.0/255.0),0.5);
p.addColor((0.0,125.0/255.0,244.0/255.0),1.0);
get_img_fractal(0.0001,-0.77028065155993652446, -0.11144667326007166574,p).save(“coloring3.png”);
def testColoring4():
p = Palete();
p.addColor((0.0,0.0,0.0),0.0);
p.addColor((145.0/255.0,165.0/255.0,192.0/255.0),0.5);
p.addColor((1.0,1.0,1.0),1.0);
get_img_fractal(0.00001,-0.26605838294940658357,-0.65123057178473777796,p).save(“coloring4.png”);
#testColoring2();
#testColoring3();
testColoring4();
#animation();
El pasado sábado estuve en una de las reuniones que DOID organiza para presentarse. Fue en Madrid, en la sede del medialab, un sitio muy cool, con puertas grandes, todos con mac y gafas de pasta.
En el sitio de congregan para realizar una serie de talleres sobre temas de visualización, la verdad es que los temas que tratan parecen interesantes, precisamente el sábado estaba el creador de processing y unos meses atrás estuvo el proyecto levelhead, sí, el del cubo con webcam.
Al grano, Nae empezó comentando qué era DOID que se había hecho hasta ahora, que empresas lo formaban (tirón de orejas por no incluir unkasoft) y cual eran las directrices.
La exposición pasó a ser un debate en el que cada uno pedía lo que le salía de las narices poco más o menos, unos se quejaban de lo mal que se trata a los empleados, otros de la fama de frikis, las empresas se defendían incluso, ojo al dato, diciendo que se pagaba bien y que se pagaban las horas extras, sí, habeis leído bien. Fue de lo mejor que escuché en ese rato, una empresa que se dedica a temas relacionados con ingeniería (no me gusta la palabra informática) que paga horas extras, eso me impactó realmente. En ese poco tiempo se pidió un servicio de servidores de trac y svn, formación, difusión, apoyo a amateurs… de todo un poco.. ah! y se presentaron dos juegos casuales con muy buena pinta.
Hubo cosas curiosas, como por ejemplo el momento en el que entra juan tamargo, jefe de proyectos de pyro, entonces Nae paró la exposición y le preguntó acerca de un tema interesante, la falta de diseñadores y gestores de proyecto… el fulano le dijo que no venía representando a pyro, respondió brevemente y se piró. Qué momentazo.
En conclusión, hay pocos profesionales, no hay dinero en esta nuestra industria, la gente se va a otros sitios donde se trabaja menos, con menos presión, pensando menos y cobrando más… todas las nuevas empresas que empiezan lo hacen programando para móvil y mucha gente parece que se pasa a nintendo DS.
Una foto del evento tomada de la cuenta de flickr de medialab, donde se pueden encontrar más fotos del sábado.
Enhorabuena a Nae por saber tirar del carro.
Después de ver el SDk de Android puedo decir, desde mi punto de vista de desarrollador para móvil (o casi :P) es lo siguiente:
- google no se ha mojado nada: todo cerrado, ni código fuente de la VM, ni especificación del formato del bytecode ni API para C++. Ya solo esto es muy triste. Creo que hace unas horas era lo más preguntado en el grupo de android. Ahora está la fiebre de “Android programmer wanted!!”. Por suerte ya ha gente haciendo hacks para correr aplicaciones compiladas en C.
- todo basado en java: entiendo que hayan tomado este lenguaje porque un mono puede hacerse 5 midlets en media hora, pero tratándose de google me resulta extraño. Seguramente por no hacer cambiar a los desarrolladores para móvil de lenguaje y herramientas. Sinceramente, esperaba C++ con bindings para python.
- Si funciona puede estar muy bien pero si no funciona se quedará en la misma mierda que J2ME pero encima no soportado por todos los fabricantes. Lo dicho, si tiene éxito lo bueno es que probablemente no caigan en los mismo errores que ya se han comentido con el tema de la fragmentación.
- No hay ningún móvil soportado… el emulador es muy bonito, pero ya sabemos que son como la noche y el día
- Por otro lado hay cosas buenas, muy al estilo google, como las diferentes librerías que incorpora, entre ellas OpenGLES (¿quien dijo que OpenGL estaba muerto?), Me alegra ver que han tirado por esta especificación, tengo ya ganas de ver lo que se puede hacer en dispositivos potentes como espero que sean los que corran Android.
PD: sí, la realidad es que java no me gusta nada, me parece un lenguaje que no tiene todo lo bueno de C++ ni todo lo bueno de lenguajes más modernos como python e incluso C#.
Seguramente en los próximos días pondremos en el blog de Unkasoft una crónica un poco más suave de lo que pasó allí. Aquí empieza la mía:

Para empezar diré que motodev summit (lietaralment es cumbre) es una serie de charlas sobre la tecnología de Motorola sobre móviles y alrededores. Uno de los eventos era en londres, en un hotel bastante chulo (por fuera) en la zona de Barbican. La verdad que el evento estaba muy muy bien montado, muchas charlas, comida para todos, pantallas indicando lo que había, una zona donde empresas mostraban sus productos (comento más adelante el tema). Como digo, todo bien montado, salvo que en el lunch este de las narices no había mesas para todos (se comía de pie) y una vez terminabas no había sitio para dejar los platos…
Llegamos tarde gracias a british airways, total que nor perdimos las primeras charlas y la primera la pillamos empezada, una sobre un futuro API (JSR 293)para localización. La charla fue muy buena, comentó cosas muy interesantes.
Pero lo bueno empezó a terminar cuando entramos a la charla de optimización de Midlets para J2ME. No quiero poner a caldo al fulano que la impartío, un tal Gerard Palma, pero a los 3 minutos los que estaban viendo la conferencia se rieron de él en toda la cara, se suponía que este tío es experto en JVM… no tenía ni puta idea de optimizar ni de absolutamente nada. Hubo carcajadas en la sesión, sobretodo cuando uno le comentó algo acerca de por qué el motorola V3 (para el que no lo sepa es el peor móvil creado por la raza humana) iba tan como el culo. Patético.
Ya el colmo fue cuando entramos en la charla del sistema de desarrollo que plantea Motorola para sus móviles… una burda copia de EclipseME (un pluggin para eclipse para desarrollo en móvil de forma simple) nos hizo la presentación una tía que era el primer día que cogía eclipse, es que nos enseñó a que tenía autocompletion, lo que tiene uno que ver… no sabía luego lanzar la midlet, etc, lamentable.
Para poner la guinda casi perdemos el enlace en barcelona gracias, nuevamente a british airways, cuyas personas de seguridad me cachearon, por lo menos lo hicieron con cierta gracia, porque el fulano de 2 metros me dijo “ohhh, your lucky day!”.
En resumen, si el tal palma este lleva 7 años y es consultor estratégico yo debería ser, como mínimo, director técnico de google. La conclusión es que, aunque no lo parezca, en españa estamos a un buen nivel técnico, sobretodo si nos medimos con la gente que había allí escuchando las charlas, que sabían rato más que los ponentes.
Estoy seguro que aquí podemos organizar unos talleres de optimización de midlets mucho más interesantes…