jump to navigation

Internet en el GDD May 31, 2007

Posted by Bosco in : eventos , add a comment

Uffff, qué de problemas… Eso sí, ha habido un equipo de sorporte muy eficiente, o al menos se lo han currado mucho. En cuanto se caía la red en alguna sala, entraban con un router, el aparato de UMTS de vodafone e intentaban crear una pequeña wifi, con poco ancho de banda pero mejor eso que nada.

En general en los seminarios ha ido fatal la red. Pero ahora estoy en el auditorio y parece que aquí hay muy buena cobertura… y sigo con el portatil prestado por google!
A aprovecharlo!

Google Gear May 31, 2007

Posted by Bosco in : eventos, mobile, tech , add a comment

Chris Wetherell nos ha presentado el Google Gear, una aplicación genial para poder navegar por web offline!! Claro, la web debe estar “programada” orientada al Google Gear, pero aún así es un avance muy interesante.

Cómo funciona google Gear? A través de un manifest file se enumeran los objetos de tu web, por ejemplo imágenes y texto estático, que crees que puede ser leido offline. Cuando abres tu navegador que incorpore el plugin de Google Gear, este bajará y almacenará en un SQLite estas imágenes y objetos. De esta manera cuando navegues por esa web, estos objetos se cargarán de la bbdd y no de intenet.

Es parecido a una caché interna del navegador, pero más potente, ya que puedes configurar en tu web qué quieres que se cachee, por ejemplo, como primera integración nos ha enseñado el Google Reader (el lector de rss). Lo tiene programado que cada vez que se conecta a su reader (si hay cosas nuevas) se descargan los nuevos artículos. Cuando lo vuelves a abrir y no hay conexión, o no hay cambios, en vez de mirar internet te los muestra directamente de la bbdd.

Hay 2 conceptos interesantes en todo esto, el primero es definir qué es estar offline… Que tarde mucho internet en responder, o que se detecte que no hay red? Se puede configurar ambas.

Por otro lado, hay que ser hábil programando la web para poder descargar el contenido “util” offline, como el google reader.

Qué aplicaciones potenciales tiene? Para empezar estos lectores de rss, noticias y correo son interesantes. Pero yo le veo sobre todo una grandísima potencia a aplicaciones mobile!!!!

El consumo de ancho de banda en un movil o pda es problemático, así que si podemos reducirlo al máximo, y además aprovechar cuando tenemos picos buenos de conectividad para descargar la información, y cuando no haya conectividad, pues se usa la misma aplicación offline!

Un mundo de posibilidades que hay que explorar… Por cierto, funciona para IE y firefox, independiente del O.S, es decir, en un windows mobile o en palm os también!!!

Google Gadgets May 31, 2007

Posted by Bosco in : eventos, tech , add a comment

Muy buena charla sobre gadgets, aunque le veo poca cosa práctica. Como bien ha explicado el ponente, que ha venido desde SF, la mayoría de los creadores de gadgets son adolescentes o frikis!

De todas formas un punto muy atractivo es que se pueden insertar en Blogger, aunque actualmente solo en el template. Habrá que hackear blogger para que le podamos colar los gadgets…

En directo desde el GDD! May 31, 2007

Posted by Bosco in : eventos, tech, web2.0 , add a comment

Por fin he podido conectarme a internet! Hemos empezado el evento, hacia las 11 de la mañana. Ahora mismo estamos en videoconferencia con London.

Qué hemos hehco so far? Acreditación y desayuno, presentación por parte de Isabel Aguilera (Directora General en España) y del director del CSIC cuyo nombre no puedo recordar. Después escribiré sobre estas 2 presentaciones, han sido realmente malas.

A continuación un Marketing Manager nos ha mostrado un poco la visión de Google, y nos ha presentado los últimos proyectos, hoy en concreto estrenan Google Gears, una forma de descargarte el contenido a tu PC de forma más o menos transparente, y luego poder utilizarlo off-line, por ejemplo, la primera integración que han hehco ha sido con Gogle Reader (un RSS reader), se descarga todos los bolgs a tu PC, y los puedes leer desconectado. Estupendo, eso me hace preguntarme… Utilizarán esta tecnología para integrar openOffice con google documents?

Finalmente, estoy escribiendo esto desde un portatil que me han prestado aquí en Google, porque el que me ha dejado Francesc no le funciona el WiFi!!!!!

Centros de submarinismo May 28, 2007

Posted by Bosco in : buceo, guía de viajes, mapas , add a comment

El siguiente mapa muestra los diversos centros de submarinismo a los que he ido recientemente, también he añadido los links a las inmersiones que he ido haciendo.

ACTUALIZACIÓN (28/7) : Actualizado el mapa con mi nuevo plugin MyGGMS!

Fon gs May 28, 2007

Posted by Bosco in : amigoinvisible , add a comment

A veces escribir www.amigoinvisibleonline.com es un poco farragoso y difícil, por lo que he usado Fon Gets Simple! y he creado los siguientes shortcuts:

Por probar…

Amigo Invisible Online con BBDD May 27, 2007

Posted by Bosco in : amigoinvisible , add a comment

Ya anunciaba hace unos días que necesitaba añadir persistencia en base de datos al amigo invisible, porque no tenía permisos para escribir en mi log4j, así que no sabía la actividad real de la aplicación.

Bueno, pues ya lo tiene. En el post anterior explico los detalles técnicos de la implementación.

Simplemente subrayar que lo único que almaceno son los nombres de los participantes, así como el amigo que le haya tocado (por si algún día hay que recuperar la información de un sorteo!), y además guardo un referencia del sorteo, la fecha y hora, y el mensaje enviado.

Es decir, NO almaceno emails! No me interesan, no quiero tener emails, no quiero que nadie se piense que utilizo esta aplicación para vender emails o hacer spam!

Y el que no me crea puede mirar el código fuente, aunque ya lo explicaba en el post anterior sobre hibernate annotations!

hibernate annotations y spring May 27, 2007

Posted by Bosco in : amigoinvisible, programación , 1 comment so far

Por fin he añadido el soporte en base de datos de la información que creo interesante del proyecto amigo invisible online. Para ello he utilizado la JPA (java persistence API) con hibernate (basadas en el estándar JSR-220) y por supuesto Spring.

Las annotations te ahorran mucho código, más incluso que los xdoclets, y además te permite obviar completamente los incómodos archivos hbm.xml. Cómo utilizamos las annotations de hibernate?

Primero una introducción al contexto de mi proyecto. Quería persistir todo un grupo de participantes (clase Amigo) y su relación (clase Grupo), pero no quería guardar su email ni algún que otro dato, porque no quiero tener una base de datos de emails, no los quiero utilizar, y no quiero que por accidente alguna vez alguien los robe…

1.- Lo primero que hay que hacer es declarar estas clases como @Entity. De esta manera se informa que hay que persistirla y se creará automáticamente una tabla, utilizando como columnas de la tabla todos las propiedades (métodos get) que encuentre en la clase.

2.- Hay que definir una primary key a la tabla, el típico id secuencial autoincremental:

@Id @GeneratedValue(strategy=GenerationType.AUTO)
public Integer getId()…

3.- Si quieres que alguna propiedad no se añada a la tabla, puedes utilizar la anotación @Transient:

@Transient
public String getEmail()…

4.- En mi caso he tenido que crear esta relación 1..N entre Grupo y Amigo:

//En la clase Amigo se define el grupo…
@ManyToOne
@JoinColumn(name=”grupo”)
public Grupo getGrupo()

//En la clase Grupo se define el conjunto de Amigos…
@OneToMany(targetEntity=Amigo.class,cascade=CascadeType.ALL, mappedBy=”grupo”)
public Collection getAmigos()

5.- Los otros campos String, Integer… puedes utilizar @Basic, pero realemente es opecional

Y hasta aquí la programación java. La configuración es muy sencilla también. Me he creado este applicationContext-db.xml, donde podéis encontrar toda la configuración necesaria. Puedes hacer un copy-paste a tu proyecto y editar solo los siguientes puntos:

<property name=”annotatedClasses”>
<list>
<value>com.bcurtu.amigo.pojo.Amigo</value> <value>com.bcurtu.amigo.pojo.Grupo</value>
</list>
</property>

Aquí debes enumerar las clases que quieres que se persistan.

En la propiedad hbm2ddl:

<prop key=”hibernate.hbm2ddl.auto”>update</prop>

Puedes utilizar los valores update (solo modifica las tablas cuando hayan cambios), create (crea el schema si no existe), create-drop (borra lo que haya y después lo creas). Configurando esta propiedad te olvidas de la necesidad de crear el schema!

Por último (aparte de configurar correctamente los parámetros de acceso a la bbdd), debés crear los beans de tu DAO. En mi caso solo tengo uno:

<bean id=”grupoDao” class=”com.bcurtu.amigo.db.GrupoDaoHibernate”>
<property name=”sessionFactory”>
<ref bean=”sessionFactory”/>
</property>
</bean>

Puedes bajarte el código completo del proyecto desde aquí para ver cómo encajan todos los otros componentes!

Frameworks May 26, 2007

Posted by Bosco in : Gestión Proyectos, nexopen, programación, tech , add a comment

En mi empresa estamos trabajando internamente en el desarrollo de un framework j2ee. Es un proyecto que pronto será opensource, ya lo comentaré cuando sea realidad.

Qué es un framework? Un framework es un conjunto de librerías, tecnologías y metodologías de programación con el objetivo de simplificar el desarrollo de un proyecto web.

Existen muchos frameworks en el mercado, desde sencillos frameworks MVC como struts o tapestry, u otros más generalistas, como Spring o Jboss Seam.

Por qué entonces nos ponemos a hacer otro framework? No es una pérdida de dinero? Puede parecerlo, pero creemos que es una apuesta a largo plazo para nuestro departamento, y que sin tener una visibilidad de algo tangible desde fuera del equipo de desarrollo, lo que si obtendremos es un mayor éxito en nuestros proyectos y un menor coste al realizarlos.

Por un lado no hemos empezado desde cero a programar el framework. Nuestro framework está basado en Spring, por lo que el core lo tenemos cubierto. Lo que hemos hecho es integrar otras tecnologías, que Spring no llega a cubrir por su orientación generalista, y que para nuestro negocio son bastante imprescindibles: un workflow engine, un gestor documental, un gestor de auditorias para Oracle… Todo lo intentamos hacer de acuerdo a las especificaciones JSR, para nunca depender de un producto en concreto.

Pero porqué hacemos esto? Porque los proyectos J2EE cada día son más grandes, el mundo del J2EE evoluciona rápidamente y el conocimiento tecnológico que se necesita es mayor. En un mercado laboral como el de los informáticos la rotación es muy alta y la incorporación de gente joven también. El conocimiento muchas veces se pierde, por lo que el esfuerzo de incorporar gente nueva es grande.

Lo que tratamos es reducir al mínimo el conocimiento de tecnologías J2EE, que son muy duras y caras de encontrar, proporcionando herramientas (wizards, plugins e integraciones) que permitan realizar módulos complejos de forma ágil. Además facilitar los servicios que habitualmente utilizamos de una forma homogénea, evitándole al programador tener que empezar de cero algo que anteriormente ya ha sido utilizado. Además, todo esto permite dedicar los esfuerzos de nuestro arquitecto a temas más delicados, en vez de dar soporte a los mismos problemas de siempre.

Y por último, y muy importante y muchas veces menospreciado, pretendemos crear una forma de trabajo estándar, que cualquiera pueda cambiar de proyecto y el coste de su incorporación sea mínimo. Para ello utilizamos tecnologías como maven2, continuum, wikis o trac.

El furió d’aiguagelida May 26, 2007

Posted by Bosco in : buceo, guía de viajes , add a comment

Esta mañana he madrugado para ir a bucear al furió d’aiguagelida, en Begur. Hemos ido al Aiguablava Gymsub Dive Center, donde estuve hace 3 salidas, y la verdad que muy bien. Es súper cómodo ir allí por las instalaciones que tienen, y porque ellos son muy majos.

La peculiaridad de la salida de hoy es que íbamos a hacer un concurso fotográfico submarino. A cada uno de nosotros (19) nos han dado una cámara de fotos con su carcasa (el club está que se sale de generoso!) para que compitiéramos en igualdad de condiciones. Son cámaras analógicas, muy sencillitas, pero oye, ya está bien para hacer alguna prueba…

Esta mañana llovía bastante, pero aún así hemos montado el equipo y hemos salido hacia allí. El furió son un montón de rocas que sobresalen del agua, yendo en dirección a Tamariú, y muy cerca de la costa. No es en absoluto profunda, sin embargo tiene una cantidad de vida que merece la pena visitar. Además, nada más bajar por el cabo de la bolla, te encuentras con un pequeño tunel formado entre dos rocas muy bonito.

Como es poco profundo, no había corriente, ni prisas por llegar a ningún lado hemos estado un montón de tiempo, y si hemos salido ha sido por el frío, porque de aire todavía me quedaban 100 at.

Entre los bichos que hemos visto a destacar las barracudas. Yo la verdad que solo he visto una y de lejos, pero otros compañeros las han tenido bastante cerca. Muy guay. Y lo demás, como he comentado, un montón de peces, pequeños bancos, un pulpo…

Ha sido muy divertido, aunque ya veremos cómo salen estas fotos…

Fecha: 26/5/07
Lugar: Furió d’Aiguagelida (Begur)
Centro buceo: AiguaBlava GymSub (Begur)
Tiempo de fondo: 52 min
Profundidad máxima: 16 metros
Visibilidad: 7 m
Temperatura Agua: 16 grados
Neopreno: 7 mm, con capucha
Plomos: 8 kg
Botella: Aire 15l
Estado del mar: Marejadilla