domingo, 29 de abril de 2007

Un domingo productivo

Hoy trabajé todo el día en la tesis. Sin proponérmelo surgió una nueva estrategia. El código de Diego P. no tiene javadoc, con lo cual es difícil de seguir. Mi idea fue empezar a documentar para familiarizarme, y de paso hacerlo vía javadoc para que me sirva más adelante y también a otras personas que quieran seguir usando ese código (allá ellos...).

Además estuve cambiando la estructura de paquetes, que no se si fue muy buena idea, pero estos días voy a seguir con esa línea.

sábado, 28 de abril de 2007

Un avance

¡Funcionó! Hoy hice andar la tesis de Diego P. en la compu de mi casa, luego de varios intentos y peleas está funcionando perfectamente.

El objetivo para estos próximos días es principalmente lograr entender el código (e ir comentando y cambiando el estilo para hacerlo más familiar). De forma adicional, voy a ver si cambio la librería de poliedros, pero no parece ser tarea sencilla...

miércoles, 25 de abril de 2007

Algunos avances

Me siento en mi nueva compu en la oficina de la facultad (la anterior está actualmente ocupada, así que mi nuevo "hogar" es terminus). El primer panorama es desolador, todo el software desactualizado y sin acceso a internet.

Me paso el primer día viendo por qué no hay acceso a internet hasta que en mi desesperación intento cambiar el cable ethernet y lo logro. Luego me dedico durante una noche a actualizar sus paquetes (la velocidad durante el día haría de esta una tarea tortuosa). Paso a paso me voy sintiendo nuevamente en una compu "mía".

Otro tema técnico es que el servidor de dependex está roto, su disco se quemó y por lo tanto instalé un precario servidor de cvs en casa.

(CVSROOT :pserver:gdecaso@tetrix.hopto.org:2401/tesis).

Un buen paso fue lograr hacer andar la tesis de Diego P. en la computadora que él usaba y luego casi lograrlo en mi nueva compu, sólo con un error (espero menor) de javax.crypto.cipher.

martes, 24 de abril de 2007

Charla con Diego G.

Hoy me reuní con mi director para discutir aspectos de la tesis. Los dos coincidimos en que el punto central de la misma es realizar una buena técnica de análisis interprocedural que primordialmente esté formalizada.

La escalabilidad es un tema a tener en cuenta, pero no es el objetivo número uno, especialmente teniendo en cuenta que se trata del primer acercamiento al tema.

También discutimos brevemente sobre la representación del heap y otras cuestiones como aplicaciones posibles del trabajo o de que manera trabajar con contratos hechos por otras personas, etc.

Mañana trabajaremos juntos intentando hacer andar la tesis de Diego P., tarea que me está resultando un tanto más compleja de lo que esperaba. Diego G. dice que en "negritus" (una de las máquinas de la oficina) hay una versión funcionando, veremos...

domingo, 22 de abril de 2007

Primeros pasos

El día de ayer me dediqué a instalar Eclipse en su versión 3.2.2 y la JDK 6 de Java en mi Kubuntu Dapper Drake. Debido a problemas de velocidad en mi conexión a internet, fue recién a las 20 horas que pude tener todo andando.

Entonces creé un nuevo proyecto pero, contrario a lo que dije ayer, me dediqué a importar todas las cosas de Diego P. en el mismo. Sin embargo tuve problemas para hacer andar JNI contra las librerías de PolyLib, por lo tanto mi objetivo para hoy es o bien arreglar tal vínculo, o ceder y empezar a probar con JNA.

sábado, 21 de abril de 2007

Algunos puntos de comienzo

La tesis consta de extender un trabajo hecho por Diego P. hace aproximadamente un año. Cuento aquí con los fuentes de su trabajo y el primer objetivo es tener un conocimiento relativamente completo sobre ellos.

Para esto se me ocurren 2 opciones:
  1. Importarlos de forma completa como un proyecto en Eclipse e intentar lograr que compile, recorrer el código de arriba a abajo y abajo a arriba para entender de a poco.

  2. Crear un proyecto nuevo e importar archivos, clases o funcionalidades a medida que los voy necesitando.
Me convence más la segunda, ya que si bien tardaré un poco más, cada línea de código, cada clase al menos habrá sido tenida en cuenta y habrá muy poco código ajeno a mi entender.

A esto se le suma que el proyecto de Diego P. utiliza una librería para tratar poliedros, la PolyLib, según Diego G., mi director, esta librería tiene muchos problemas de memoria y performance.

Dado que comenzaré el proyecto "de cero" pienso usar en cambio la PPL, una librería hecha en Italia, que aparentemente funciona mucho mejor.

Hay un problema, tanto PolyLib como PPL están desarrolladas en C++, y la tesis será desarrollada en Java. Para hacer llamados a librerías nativas desde Java hay que usar JNI, lo cual es muy difícil según me han dicho.

Existe una interface más sencilla, llamada JNA, que aparentemente facilita la integración, evitando tener que lidiar con JNI directamente.

Por lo tanto, los objetivos para estos primeros días:
  • Crear un nuevo proyecto Java
  • Importar de a poco los contenidos de la tesis de Diego P. hasta tener un conocimiento amplio de ellos
  • Instalar PPL
  • Conectar el proyecto Java con PPL usando JNA
Esta primera fase culminaría cuando mi nuevo proyecto logre reproducir la funcionalidad de la tesis de Diego P. pero con la nueva librería, supuestamente mejor que la anterior.

Objetivo secundario: para poder realizar comparaciones sería interesante que la librería de poliedros se pueda seleccionar entre estas dos opciones (y posiblemente otras en el futuro).

Empecemos

Hace pocas semanas que regreso de un viaje que me ha hecho recorrer gran parte de Argentina y Bolivia por lapso de varios meses. Energía, ganas, la mente bien fresca es lo que caracteriza mi estado de ánimo al tocar nuevamente el viejo terruño porteño.

Pero esta historia comienza un tiempo atrás, un tiempo pretérito en el cual el año actual era el 2003 y la gente era más buena que ahora, todo más barato y la pizza más rica, como en todo tiempo pasado.

¿Por qué el 2003? ¿Por qué no comenzar en 1983? ¿Por qué no en 1916 y por qué no en 1492? En algún punto hay que poner el cero, es una cuestión de referencias. Dado que este blog intenta acompañar el fin de mis estudios universitarios, nada mejor que remontar su inicio a los comienzos de estos.

Allá por 2003, me anoto en mi carrera y comienzo el sinuoso, tortuoso, trabajoso, penoso andar por cursadas, trabajos prácticos y finales. Rudimentos básicos de álgebra y análisis matemático, nociones de probabilidad y estadística, incursiones en algoritmos y estructuras de datos... una a una las asignaturas van quedando atrás.

Toda vivencia guardada en nuestra memoria está condicionada no sólo por la forma en la que uno la sintió, sino por todo lo que transcurrió hasta el momento en que uno elige recordar. El caso de mis cursadas no es la excepción.

En su momento eran dolores de cabeza, nervios antes de los exámenes, sufrimiento por sentir que uno no llegaba con las cosas en tiempo y/o forma... hoy miro atrás con cierta melancolía y pienso "no era tan grave".

Luego de 4 años de cursada libré una a una las batallas que cada materia planteaba, y victorioso, en diciembre decidí tomarme unas largas vacaciones. Volvemos entonces al punto de partida, vuelvo del viaje con ganas renovadas, con nuevo objetivo también.