5.21.2008

falta de profesionalidad

Todos los días empresas nos prestan una serie de servicios a cambio de un dinero, sea de forma directa, voy a un bar, pido un café y pago al camarero, o de forma indirecta, voy por una autovía que se financia con los impuestos que pago. Detrás de esas empresas y servicios hay gente, personas y el trabajo de esas personas es lo que al final te llega: el camarero me sirve el café, el ingeniero diseña la carretera y el operario la cubre con asfalto, etc.

El problema es que en una empresa hay gente profesional y gente que no lo es y es es la diferencia entre que no te enteres de que te están prestando un servicio a estar quemado e indefenso.

Para mi un profesional _no_ es una persona que tenga mucha experiencia o conocimientos en un área o que haga muy bien tal o cual cosa, para mi ser un profesional es ser serio en el trabajo, cumplir con los plazos, tratar de mejorar cada día, hacer frente a los problemas y, sobretodo, hacerse responsable cuando las cosas no se hacen bien.

Últimamente veo como la profesionalidad cada vez es menor: los servicios técnicos pasan de ti cuando hay un problema, el fontanero tarda 4 días en venir a repararte el agua caliente, acuerdas un plazo y luego no se cumple, etc, etc... y lo peor, cobran con un verdadero profesional. Estoy harto de ver gente que está en su trabajo viendo pasar el tiempo para que lleguen las 3 de la tarde y saliendo del paso como pueden y con el menor esfuerzo posible, lo veo cada día.

Da gusto ver a una persona que es profesional, que le gusta su trabajo y que se preocupa, y aunque me cobre más, lo pago con gusto, solo por el hecho de que sé que ese dinero va para alguien que lo merece y por otro lado porque así estoy participando en una "selección natural".

No me extraña que las empresas cada vez busquen gente con "perfiles horizontales", ser serio es algo básico y la carencia de esa característa es mucho más problemática que la de conocimientos técnicos. Sabes que una persona profesional que tiene una responsabilidad va a esforzarse (o apechugar) para sacarlo, independientemente de si sus conocimientos sean bajos en esa materia. Saber J2EE, hibernate, structs, blablabla tiene un precio, poder confiar en que alguien va a tener algo en la fecha, sea lo que sea, no.

Etiquetas:

5.18.2008

intento de augmented reality

"Para quien tiene un martillo todo son clavos".

Esta mañana me he levantado pronto y como no tenía sueño y nada que hacer productivo en todo el día, he pensado en hacer algo con mi webcam (tranquilos, no salgo en ningún momento :). Hace unos días vi como con un gps, una webcam y una brújula gracias a google earth conseguían poner una capa por encima de la realidad con información la ubicación de diferentes cosas. El proyecto estaba hecho sobre android, en el enlace hay un video muy interesante. Tambien hace relativamente poco vi como un navegador proyectaba información sobre el parabrisas que indicaba qué calle debías coger (no encuentro el link). Con lo cual me planteé por qué no podría hacer lo mismo para agroguía, que el agricultor mirase la cámara y viese por donde había ya pasado superpuesto con la realidad.

En esta mañana he hecho un prototipo de augmented reality de forma que en la pantalla del PC se mostrase información de por donde ya había pasado mostrando la visión en ese momento del conductor unido a un capa generada que se lo indicase.

He cogido la webcam, un GPS, python y opengl y he preparado un prototipo. He colocado la webcam arriba en el coche (ver foto) junto al GPS de forma que a medida que el GPS me da información de posición con OpenGL renderizo las zonas por las que ya se ha pasado justo con la cámara en ese lugar.




La prueba no ha quedado demasiado mal teniendo en cuenta que es un prototipo rápido, un video:



Problemas:
- La resolución de la cámara es malísima.
- El GPS lleva retardo, de ahí que no estén sincronizados
- No he calibrado la cámara adecuadamente, la he puesto a ojo, un fov e inclinación más o menos parecida a la de la webcam

Mañana voy a probar con un GPS de 5hz y con menos retardo, además intentaré ajustar mejor la cámara.

Etiquetas: ,

5.11.2008

Cube modeling challenge

Este fin de semana están haciendo un concurso de modelado solo con cubos. A priori parece que con pocos cubos no se puede hacer demasiado, sin embargo merece la pena entrar y ver las imágenes.

Por mi parte me he animado y he hecho una (lo primero que "modelo" en mi vida)



si, es triste y oscura.

Etiquetas: ,

5.04.2008

cosas que pasan: MGS mobile

Me bajo metal gear acid mobile, la versión 3D para probarla en mi móvil y así saber si los shots que había visto hace ya meses eran verdad y el juego prometía tanto, lo paso al móvil y después de defraudarme miserablemente (por ahora, no me gustan los juegos por turnos) me dispongo a decompilarlo para ver un poco qué hacían.

ejecuto:
"""
C:\temp\metal_gear_acid_mobile_3d_n70\src>java -cp jode.jar;C:\WTK22\lib\cldcapi10.jar;C:\WTK22\lib\midpapi20.jar;C:\SonyEricsson\JavaME_SDK_CLDC\PC_Emulation\WTK2\lib\mobile3d.jar;C:\WTK22\lib\mmapi.jar jode.decompiler.Main --dest src meta l_gear_acid_mobile_3d_n70.jar
"""

y cual es mi sorpresa que no está ofuscado!. Ahí está, el código del juego completito, salvo métodos que están, parece ofuscados, todo el resto de cosas se pueden ver perfectamente. Ahi está, todo el código de 3D, su A* (ver AStarSearchpor ejemplo), la animación a la antigua usanza (quake2 style pero sin interpolar) de Snake (ver JSR184_LoadSnake).

Soy fan de decompilar juegos para móvil, es divertidísimo intentar saber qué están haciendo sin ver ni una sola variable (normalmente todo se llama 'a') o ver los formatos de fichero que usan o como cargan las imágenes. Por ahora lo que más he visto ha sido lo de empaquetar recursos y "xorear" parte de los datos, "swapear" el comienzo y fin del fichero (ves cosas como "GNP" de la cabecera de los png)... aunque luego tienes casos como gameloft del cual aún no he conseguido ver como lo hacen, es demasiado difícil de descifrar para un rato.

Si algo bueno tiene java (de lo poco) es que se puede decompilar y mirar dentro.

Etiquetas: , ,

5.02.2008

KML y la privacidad

Este post pretender ser dos cosas: primero un pequeño manual de como hacer un servidor de KML con python y cherrypy y segundo demostrar qué se puede hacer para recibir feedback indiscriminado usando lo anterior.

Conocimientos previos:
- cherrypy es un API que permite implementar una aplicación web en dos patadas
- KML es un formato usando principalmente por Google Earth que sirve como contenedor de información geográfica, puntos de interés, etc, etc

KML no deja de ser un xml (*sic*) en el cual cabe de todo puntos, líneas, elementos 3D, animaciones y lo que nos interesa, conexiones a un servidor para obtener datos enumrados anteriormente. De esta forma es posible indicarle en un enlace que vaya a un servidor a buscar datos. Hay un pequeño pero efectivo tutorial en la página del api de google earth.

Tomando ese ejemplo creamos el servidor con cherrypy:

import cherrypy

class Root:
def get_kml(self, latitude, longitude):
kml = (
'<?xml version="1.0" encoding="UTF-8"?>\n'
'<kml xmlns="http://earth.google.com/kml/2.2">\n'
'<Placemark>\n'
'<name>Random Placemark</name>\n'
'<Point>\n'
'<coordinates>%f,%f</coordinates>\n'
'</Point>\n'
'</Placemark>\n'
'</kml>'
) %(longitude, latitude)
return kml

def index(self, directory="."):
cherrypy.response.headers["Content-Type"] = "application/vnd.google-earth.kml+xml"
return self.get_kml(-3.332565,42.600353);

index.exposed = True

if __name__ == '__main__':
root = Root()
cherrypy.quickstart(root);


El tema web no me va, pero estaba interesado en saber como va este tema en python. Me da la impresión que aún está por detrás de Ruby. He estado mirando turbogears y la verdad me ha gustado.

En el tutorial ponen un ejemplo de KML que se conecta a un servidor, podríamos cambiar la sentencia Link por lo siguiente:

<link>
<href>http://localhost:8080/</href>
</link>

De esta forma al cargar ese fichero en google earth se conectaría al servidor y bajaría kml.

Ahora la segunda parte: qué pasa si ese kml es generado por una aplicación y el usuario lo carga en su google earth. Pongamos, por ejemplo, un software de guiado para maquinaria agrícola, en el cual después de haber trabajado se puede guardar ese trabajo a KML para poder verlo más tarde en el PC. Pongamos que ese software escribe algo así dentro del fichero kml:

<link>
<href>http://servidor.com/?license_no=1234&lat=-3.332565&lon=42.600353</href>
</link>


Gracias al número de licencia conoces al usuario y con latitud y longitud conoces la localización de sus parcelas. Eso por no hablar que con unos pocos bytes se puede enviar _de todo_. Tiene su parte mala, pero también su parte buena, se le pueden dar bastantes usos.

Por cierto, y no digo que tenga algo que ver, ya he implementado el writer para kml de agroguía :):

Etiquetas: ,

4.27.2008

partes de un negocio: El negociador

Mañana he quedado con una empresa Argentina que está interesada en agroguía. Veremos a ver por donde salimos :).

Etiquetas:

4.24.2008

Python, generators y pipes

Para rematar el artículo del otro día sobre generators en python conviene leerse este otro sobre Pipelined Python que no deja de ser syntactic sugar (como diría alguno), pero queda la mar de c00l.

Etiquetas: ,

www.flickr.com