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".