martes, 13 de noviembre de 2007

Android

Hola holita ...

Aún es un poco pronto para saber la repercusión que va a tener este nuevo SDK de Google, pero ya podemos ir contando algo sobre él y sus principales características. Por lo que he podido leer e informarme, todo el conjunto se compone de cuatro grandes piezas:


  • Sistema operativo Linux con kernel 2.6 con servicios de seguridad, control de memoria, control de procesos, pila de protocolos para red y un modelo de controladores para los dispositivos de la PDA o Móvil, es decir, lo justito para que funcione todo con el menor consumo de recursos.

  • Una máquina virtual llamada Dalvik y que ejecuta ficheros de extension. .dex, que son creados diréctamente por la herramienta dx (compilador). La parte negativa es que el código generado no es bytecode de Java, sino bytecode de Dalvik, es decir, ya tenemos otra máquina virtual más. Más información aquí..
  • Conjunto de librerias java que nos permite controlar el dispositivo para acceder a bases de datos (SQLite), gráficos 2D y 3D OpenGL, etc ...
  • Para ponernos las cosas más fáciles, por último tenemos el framework donde podemos acceder a paquetes tan interesantes como XMPP(protocolo para mensajería instantanea, ej: gTalk), Window Manager, Telephony Manager, etc ...


    Para más referencias sobre Android puedes Google Android.

    Para no echarle todas las flores a los chicos de Google diremos que este niño tiene varios padres o madres, más concretamente la Open Handset Alliance y cuyo objetivo principal es enriquecer la experiencia de los usuarios frente al mundo de la tecnología movil.

    Es trivial decir que este SDK es un filón para proponer a futuros clientes que necesitan aplicaciónes integradas en móviles, respaldado por Google y la alianza anterior referida, y que es un gran aliciente para que proliferen nuevos dispositivos (libres) donde se pueda elegir qué sistema usar (actualmente Symbian y Windows CE) y qué programas usar en estos sistemas.

    Ta lue.

lunes, 5 de noviembre de 2007

Fotorealismo

Hola holita ...

Hoy mirando la rista de noticias que me leo todas las mañanas me he quedado un poco sorprendido con un nuevo "palabro" que de entrada puede bien servir de propaganda por ella misma: fotorealismo. Excéptico entro en el enlace y poco después me bajo un video mostrando esta nueva técnica de fotografía y,... anonanado me he quedado.

En pocas palabras: la idea es que a partir de muchas fotos hechas en un emplazamiento dado se genere una imagen en 3D donde el usuario puede moverse libremente.

Para empezar y engancharos, podéis pimero bajaros un video muy ilustrador y después visitar su página oficial, la cual es (http://phototour.cs.washington.edu) . El niño lo ha criado los chicos de la universidad de Washington, más puntualmente el departamento Graphics and Imaging Lab, y un añadido de Microsoft Research.

Profundizando más en el tema leo que Microsoft ha comprado esta tecnología y la tiene en pruebas, y por supuesto, sólo para Windows. Esto último no sería extraño si el proyecto se hubiera implementado en este sistema operativo, pero en el video anterior se ve claramente cómo las ventanas que se ven son de un gestor de ventanas Linux, en otras palabras, la universidad de Washington lo implementó en Linux y Microsoft cuando lo compró lo paso a Windows XP como única opción.

He buscado algo parecido en opensource, o por lo menos disponible en Mac, Windows y Linux, pero lo más parecido que he encontrado es Hugin que te permita formar una imagen a partir de varias, muy útil para fotografías panorámicas.

Espero que los chicos de google, se hayan puesto ya en marcha para que en un futuro aparezca un nuevo "feature" en google maps ;) y que, además de poder ver fotos de satélites, podamos movernos en 3D por las miles y miles de fotos que la comunidad suba.

Ta lueee ...


viernes, 2 de noviembre de 2007

Hibernate,... su puta matter !!!

Hola holita ...

Puede que todavía sea pronto para echar por tierra lo que tanto usan, que con solo unos meses de uso del Hibernate es pronto para rajar de él,... pero este es mi blog y me lo follo cuando quiera ...

Pues bien,... la vida con hibernate es lo que el comunismo a la política,... una utopía ...

La idea es buen bonita,... tenemos todas nuestras tablas mapeadas en una colección de objetos, y al cambiar un objeto pues se lanza una SQL al servidor y se cambia la tabla correspondiente. Qué bonito es el amor,... cuando se hace.

Pues bien,... la primera en la frente,... cuando me enteré que el hibernate toca diréctamente el codebyte de java para hacer esto,... cosa que no me parece nada seguro. Digamos para que nos entendamos que es como tocar directamente un .exe para crearle funcionalidades. Un poco fuerza bruta, no?

Lo más bonito es cuano tube que hacer un simple SELECT MAX(XXX)+1 FROM TABLA. Pues bien,... pensé que habrá alguna función muy bonita que me hiciera esto,... pues no. La solución de mi jefe de proyecto fue hacer un xml tal como <>select max(xxx)+1 from tabla< /select > (a groso modo ...), pero entonces la pregunta retórica es,... pa que me sirve en este caso hibernate ??? Me comentaron que había forma de hacerlo con alguna función de hibernate (imagino que con un DetachedCriteria), pero que era mejor así por una extraña razón (que no me he preocupado en averiguar :P).

Seguimos ,... tenia mi tabla maestra con tabla detalla tipo factura con sus lineas. El problema me lo encontré cuando tenía que hacer una modificación de factura con sus lineas. Pues bien,... pensé,... esto cojo y me creo mi objeto Factura con todas sus lineas bien enlazadas y al entregárselo a Hibernate este se encargará de saber si existe o no y modificar si hace falta. Pues no,... tengo que cargar la factura y entonces hacer una sincronización de líneas de factura, cosa que no me hizo mucha gracia. Esto es porque cada objeto de Hibernate está enlazado mágicamente con su tabla correspondiente.

Bueno,... esto sin hablar de la piña de SQL's que se lanzan a diestro y siniestro, y no quiero ni pensar cómo hacer para optimizar tantas SQL's lanzadas.

En definitiva,... paso más tiempo arreglando cosas de hibernate que programando.

Espero que algún día pueda escribir una entrada pidiendo perdon a Hibernate, que descubra la gran ventaja que tiene y que a mi, como programador, me ayude a ser más productivo.

Un saludito.