viernes, 28 de marzo de 2008

Wirepet BluWorld: Mascotas que comparten

Despues del buen resultado obtenido en el 2006 con el proyecto Wirepet, en 2007 se nos presento la posibilidad de continuar su desarrollo con el aporte de elementos innovadores.

Fifo, autor de la idea original, tenia muchas ideas para incluir en el proyecto, y con unos cuantos aportes más de nuestro otro compañero Fernando y yo, la idea quedo clara: Nos centrariamos en una mascota virtual que pudiera compartir sus objetos con otras mascotas mediante comunicación bluetooth (ahora no solo depende de el mismo para suplir sus necesidades), y que tuviera que mantener su entorno cuidado para poder alimentarse (no ensuciar mucho el agua del lago o dejará de haber peces, regar los árboles habitualmente si queremos que produzcan manzanas, etcetera).


El apartado gráfico fue rediseñado y la programación empezó desde cero igualmente, esta vez con una maquina de estados que separaba de una manera mucho mas eficiente cada parte del juego, y haciendo una correcta separación de la lógica del pintado. Ayuda inestimable la de Unkasoft, sin ellos todo habría sido mucho más dificil.


Sin embargo, tal como supimos por ellos, y por nuestra propia experiencia más tarde, el bluetooth y las maquinas virtuales de Java Micro Edition (J2ME) que cada fabricante implemetenta de una manera diferente (en cada una de las versiones de sus móviles), no se llevan muy bien. A efectos prácticos, y debido también a otros factores que por entonces desconociamos (como una empaquetamiento de recursos poco eficiente), esto limitó enormemente el número de dispositivos soportados por la aplicación.

El resultado del proyecto cumplió con la mayor parte de los objetivos planteados y fue presentado a finales de Junio en el aula de Grados de la Universidad Pontificia, animandos a continuar este año con un nuevo diseño más eficiente y a dejar todos los cabos bien atados: esta vez, además de innovar, conseguiremos la mayor compatibilidad con, a ser posible, cientos de dispositivos móviles del mercado, entre los que esperamos que esté el tuyo ;).

jueves, 27 de marzo de 2008

La hora de la Tierra

El 29 de Marzo de 2008, millones de personas en algunas de las mayores ciudades se unirán y apagarán la luz durante una hora – La hora de la Tierra – enviando un poderoso mensaje nacional y globalmente y actuando frente al calentamiento global




Este tipo de iniciativas buscan apagar las luces y todo aparato eléctrico durante una hora para reducir el consumo energético, frenar (un poquito) la contaminación por éste consumo y darnos cuenta, nosotros y las instituciones que nos gobiernan, del gran consumo energético que hacemos.
El año pasado este mismo evento solo se celebro en Sydney, pero en 2008 se realizará a nivel global. Si lo pensamos y fuésemos capaces de prescindir de la electricidad y otras fuentes de energía durante una hora al día durante todo el año, seguro que no muchas cosas cambiarían, pero si el daño que hacemos a nuestro planeta por estar aquí.

Animo a todo el mundo a que consuma lo mínimo que pueda en todos sus ámbitos de la vida. Utilizar aparatos respetuosos con el medio ambiente (al menos suelen consumir menos) y ser responsables respecto al consumo que realizamos.
Y os animo a que toméis parte en el evento La Hora de la Tierra (Earth Hour) todos los días.

Otra cuestión relacionada con el consumo responsable me trae de cabeza.
Hay mucha gente que los recursos que localiza en Internet los obtiene de las (queridísimas) redes P2P. Para esto, muchos de ellos mantienen el ordenador encendido durante todo el día, generando un consumo anual de (12 meses / año * 15 € / mes = 180 € / año) SOLO en electricidad; más lo que cuesta el ADSL (o la conexión que tengamos). Pues bien, yo me pregunto, si una película dura 2 horas, el consumo por verla seria de ((15 € / mes * 2 horas) / 720 horas / mes = 0,042 €). Pero esa película podemos tardar en bajarla cerca de... 1 semana??? (3,75 €) Dependerá del recurso y de la disponibilidad. Eso es que consumimos para descargar una película lo mismo que para ver 90 películas en descarga directa.

Ahora, si en vez de buscar las películas y la música desde redes que exigen que nuestras maquinas, (200 usuarios compartiendo una película, son 200 maquinas funcionando, lo que son 3000€ al mes) buscásemos los recursos que queremos utilizar de forma online conseguimos reducir el gasto energético drásticamente, pues sería un único servidor (o unos pocos) los que nos ofrecen ese recurso a nosotros y a otros cuantos miles de usuarios.
(todas las cifras son en euros, da miedo pensarlo en toneladas de dióxido de carbono emitido a la atmósfera)

Bienaventurados los recursos online, pues ellos respetarán la Tierra

Todo lo que hagamos siempre es poco.

miércoles, 27 de febrero de 2008

Yo me ofusco, tú te ofuscas, él...

La primera version de la mascota no tenia el código ofuscado. ¿Y esto que es? Viene a ser complicar el código para hacerlo practicamente ilegible.
Hay varios ofuscadores de código, pero el más famoso es proguard.
La mayoría de los entornos de desarrollo para J2ME permiten su uso en nuestras aplicaciones y especificamente NetBeans Mobile lo trae embebido y no necesita configuración alguna.
¿Para qué ofuscar? Puede que parezca que no sirva para nada 'complicar' (para el ojo humano) el código, pues siempre queremos que sea lo más legible posible. Bueno, pues es que ofuscar sería una tarea a realizar al empaquetar una versión de nuestro software.
Cuando el código no está ofuscado, para saber qué contiene un JAR basta con descomprimirlo con cualquier programa y buscar las clases que contiene.
Por ejemplo el codigo:
int contador = 0;
while (contador == 0) {
BaseDeDatos.insertar(alumno);
}

Cuando ofuscamos, el código toma la pinta:
int a = 0;
while (a == 0) {
b.c(d);
}

Facilmente nos damos cuenta que el codigo se complica sobremanera. Una ventaja importantisima es que vamos a poder reducir el tamaño de nuestras aplicaciones sobre un 20 y un 30%.
Centrandonos en móviles, viene a ser una gran ventaja.
Por ejemplo: WirePET ocupo 87 Kb sin ofuscarse. Esto impedía que pudiésemos instalar el juego en cualquier móvil que no permitiene aplicaciones de más de 64 Kb.
Pues bien, al ofuscar conseguimos que la aplicacion bajase hasta los 62 Kb permitiendo acceder a este conjunto de móviles.
Interesante ¿no?

Pues ya sabes, ofuscate todo lo que puedas, menos con las personas cercanas :)

Subversionate


Tal y como hacemos en el trabajo y como viene diciendome (y explica aqui) Javi desde que le conozco: Usa Subversion hasta para tu curriculo.
Por fin me he decidido a instalarlo para el desarrollo del proyecto y, la verdad, que lo echaba de menos hasta para hacer la más pequeña práctica.

Subversion es una herramienta muy útil para el control de versiones. Sirve fundamentalmente para tener bajo control cada pequeña version a lo largo de la vida del proyecto. Sirve para saber en que se esta trabajando, como se esta haciendo, sirve de salvavidas ante cualquier imprevisto y facilita muchisimo el desarrollo al tener siempre versiones controladas, marcadas y salvadas en 'algun lugar' accesible.

VisualSVN: Subversion en un paso.
La verdad que con la falta de tiempo lo que he hecho a sido seguir un vinculo que me facilito Alberto para instalar Subversion en un par de clicks. Es una version para windows (lo siento por los linuxeros) cuya interfaz es realmente sencilla y usable y no requiere mas que indicar que usuarios, grupos y proyectos vamos a manejar.

Parafraseando a Javi yo diria: "No uses subversion porque es adictivo".

sábado, 26 de enero de 2008

Habla con Jou




Hola a todos, a traves de una aplicacion web de MyCyberTwin podemos ahora establecer una conversacion con Jou, el protagonista de la primera aventura de WirePET.
Podeis preguntarle cosas sobre el juego, el desarrollo, metodologias agiles... eso si, en lengua inglesa. Cuanto mas hablemos con el mas listo se volvera y mas facil sera que nos conteste adecuadamente las siguientes veces; ademas se le puede añadir conocimiento.
Por ahora le explicado un poco que es scrum, IWPAAMS y WirePET. Poco a poco y segun las conversaciones que tenga le ire enseñando mas cosas.
Me parece una forma estupenda de tener el tipico FAQ o wiki, si es que funciona bien. Saludos!

viernes, 25 de enero de 2008

La importancia de UN planeta de UNA estrella

Mi compañero Felix nos mando un enlace a un post de la huella digital.
Es un video de la saga de Carl Sagan sobre el universo, para ver si nos damos cuenta de lo importante que resulta nuestro planeta en el inmenso infinito de la galaxia.



Solo una nota, la foto mas lejana se hizo a 6000 millones de km de la Tierra, que se encuentra en la via lactea que tiene un diámetro medio de unos 100.000 años luz (1 año luz = diez billones de km) se calcula que contiene entre 200.000 y 400.000 millones de estrellas.
Por la cuenta de la vieja esto quiere decir que la foto se hizo desde muy muy muy cerca. Para que veamos lo insignificantes que somos y lo importantes que nos creemos. Ademas de la infinidad de galaxias que hay en el universo... no quiero ni pensar en la idea de los universos paralelos que tanto se maneja desde la ciencia ficcion hace decadas o en la mecanica cuantica hace años.

domingo, 20 de enero de 2008

La temperatura del fin del mundo

En varias ocasiones, y sobretodo al terminar o empezar una era o ciclo se habla del fin del mundo. En cualquier cuantía temporal, el fin del mundo se acerca imperdonable disfrazado de distintos personajes. Unas veces se le señala con el dedo y se le llama Arbusto, otras veces se le da el nombre de alguna ciudad con central nuclear y otras simplemente se alude al clima y la metereología.
Algún día escribiré un artículo comentando las 10 mejores formas de acabar con el planeta.
Por ahora solo comentaré dos formas en las que todo lo que existe puede dejar de existir.
Ya hace tiempo se hablaba del destino ultimo del universo en dos sentidos opuestos (pero hay más):

El fin del fuego
Consiste en que la constante universal cuyo valor se desconoce sea menor de lo esperado, entonces el universo llegará un momento en el que dejará de expandirse para volver a contraerse (a modo de masa elástica) acabando todo en una gran explosión opuesta al big bang y llamada big crunch.

El fin del hielo
Aquella constante valdría más de lo querido, permitiendo a la elasticidad del universo alcanzar valores no contraibles, es decir, que se seguirá expandiendo y expandiendo y expandiendo hasta alcanzar el cero absoluto (aproximadamente, −273,15 ºC ó −459,67 ºF)

Puede que parezca muy extrambótico, pero estos mismos conceptos nos los plasman con el clima y en escalas de tiempo mucho más cercanas. ¿Qué cómo? Unos nos dicen que el cambio climático esta haciendo que los gases de efecto invernadero y < ponga aqui su razon sobre el cambio climático> produzcan un aumento de la temperatura media del planeta. Cosa probada, comprobada, testeada y verificada.
Otros nos dicen que nuestra estrella esta perezosa y por ello comenzara a dar menos calorcito a nuestro hogar producido porque los anillos solares se estan moviendo más lentamente o que estamos entrando en un periodo glaciar y por ello la temperatura sufrirá un descenso.

Ahora yo me pregunto, ¿en un videojuego sobre el clima y la metereologia que debemos plasmar como fin del juego? ¿mucho calor o mucho frio?
El caso es que el fin llegará, pues no hay nada perpetuo.

miércoles, 12 de diciembre de 2007

WirePET: Resultado

El proyecto desarrollado se finalizó en el plazo esperado (restringiendo algunas funcionalidades iniciales para poder cumplirlos)
Al formar parte de los proyectos de Movente - Concurso de Ideas se presentó en la UPSA el 27 de Junio de 2006 en el aula de grados. Aqui hay una lista de los proyectos que se presentaron ese día.

La presentación (en pdf) no indaga en la tecnología utilizada, pero plasma lo que se quiere (y hasta la fecha se ha conseguido) obtener con las ideas en las que se apoya el proyecto y el sistema de juego que tiene.

Gracias a la colaboración de Tempos21 y sobretodo a Joan Borrás se pudo tener la aplicación para su descarga a terminales a través de WAP mandando un mensaje corto del tipo 'GET WirePET al 7213'. Lamentablemente este servicio estubo activo hasta principios del año 2007. Puede que más adelante busquemos algún sitio para descargarlo, y puede que sea desde los servidores de Unkasoft.

El proyecto WirePET fue presentado de forma extraordinaria en la inauguración de la Feria de Muestras de Salamanca el día 7 de Septiembre de 2006, ante Presidente de la Junta de Castilla y León, D. Juan Vicente Herrera en el stand de Caja Duero. A partir de ello Jou apareció durante unos 10 segundos xD ese mismo fin de semana en el canal regional 'canal 4 cyl'.

Como ya he comentado otras ocasiones, este proyecto no se frenó aqui, pues quedaron en el tintero muchas ideas que todavía debían plasmarse. ya os contaremos (:

sábado, 8 de diciembre de 2007

Jou, alimentarse y jugar.

Si ya disponía de una versión de la lógica de la aplicación, ésta tenía que ser depurada y adaptada para informar al usuario de los acontecimientos del juego y para poder jugar durante bastante tiempo.
Como el objetivo era obtener una mascota virtual con connotaciones educativas, me documenté sobre los alimentos fundamentales en la dieta de cualquier persona y según sus cualidades codifiqué estas características en un conjunto de valores que afectarían a los atributos de Jou.

Fundamental para que Jou viva (y siento el punto de vista pesimista) es que sufra. El usuario se debe encargar de que Jou sufra lo mínimo posible y cubra sus necesidades de alimentación, higiene, felicidad y salud. De esta forma, con los objetos que tengamos en el juego podremos cubrir distintas necesidades, pero éstas variarán en función de las necesidades anteriores y de los alimentos y objetos utilizados.

Por ejemplo, podemos darle de comer carne, pero una dieta basada en carne no es buena para la salud, por lo que deberemos darle alguna fruta o verdura para compensar. Comer, normalmente le dará sed a Jou, y algunos alimentos le gustarán más que otros. El caso es liar la relacción entre los objetos del juego y el estado de los atributos de Jou.

Para obtener más jugabilidad, de entre los 20 objetos que existen en el juego, comenzaremos con un conjunto reducido de ellos, que se irá ampliando a modo de premio según avancemos en la aventura. Así también conseguimos que el jugador se acostumbre a la interfaz de usuario y descubra distintas posibilidades poco a poco.
Otro de los aspectos que afecta a Jou es la hora del día, pues no se está igual de cansado a las 12 de la noche que a las 12 del medio día.

Mezclando todas estas posibilidades con algo de azar para ampliarlas se obtiene un juego compacto pero muy jugable pues cada vez que empezamos a jugar los resultados serán distintos aunque le demos los mismos cuidados.

jueves, 6 de diciembre de 2007

El nacimiento de Jou

Una vez concedida la beca para el desarrollo de la primera versión de WirePET tenía que ponerme a trabajar inteligentemente, para hacer las cosas una vez si es posible y de la forma adecuada.
Nos habían informado que íbamos a recibir varios cursos: 30 horas sobre Fundamentos sobre Java (J2EE), otras 25 sobre desarrollo java en móviles (J2ME) y sobre 20 horas de la plataforma de comunicaciones de Tempos21.
Mientras recibía estos conocimientos y sacaba el 3er curso de la IT en Informática de Gestión, comenzé con el proyecto.

Como lo primero que vimos fue J2EE comencé por desarrollar una mascota que a través de la
consola informara de cómo estaba. Es decir, no tenía gráficos y no tenía interacción con el usuario; simplemente decía por consola que es lo que hacía, a la vez que consumía los alimentos y bebidas de forma aleatoria. Al acabarse éstos moría.
Obviamente esto estaba lejos de ser un videojuego, así que cuando recibimos el curso de J2ME comencé a pensar en cómo portar este funcionamiento al móvil y cómo hacerlo interactivo y gráficamente entretenido.
Necesariamente tenía que tener gráficos agradables a la vez que sencillos. Como mi objetivo era solo el móvil que me habían prestado (Nokia6230i) me centré en desarrollar para él y luego ver que compatibilidad se habría generado.

En este punto fue cuando recurrí a mi amigo Alvar, que sin poner ninguna pega hizo tres bocetos de tres mascotas en uno de sus cuardenos, para decantarnos por una de ellas, la cual escaneó y me paso a un tamaño increible. Con ésta imágen yo luego trabajaría para obtener todas las demás. Podríamos decir que Jou es hijo de Alvar, pero yo le alimente, le eduqué y le vi crecer :)