miércoles, 24 de marzo de 2010

Notas previas a la primera entrega

El desarrollo de este proyecto no ha generado el amor esperado en un principio por el lenguaje en si. Tampoco quiero decir que ha generado tanto odio.
Estando en los últimos semestres de la carrera el estres no tiene que ver con la tarea de programación, si no las entregas de proyectos, fechas límites, trabajo o falta de trabajo fuera de la escuela, etc.
Particularmente el proyecto va "bien" gracias a la intensidad de Pepe (Ugalde) quien no del todo contento encontró una armonia entre Alt+Tab cambiando entre API clojure-Foros Clojure-API Java y el fiel JEdit y Gaby que igual que yo estresados con que podemos pasar mucho tiempo corriendo código y no encontramos donde está el problema o que macro era el indicado o porque la sintaxis no esta bien.

Cada día me hago más fanatico del Peer Programming porque como en este caso nos ayuda bastante el conocimiento de la otra persona para avanzar en lineas de código, por otro lado la programación solitaria en la noche en casa (esos momentos de inspiración) la mayor parte de las veces resulta frustrante cuando pasas varias horas y no logras tener algo bien definido para hacer commit.
Personalmente extraño los momentos cuando el código fluye y fluye y sientes esa self-motivation y group-motivation.

La clase pasada Ariel nos mostro la forma taaaaan sencilla de hacer un servidor que atienda varias peticiones lo cual antes nos aterraba, eso fue una gran ayuda para la segunda entrega y el estres decremento un poco, en fin, la primera entrega es pronto, faltan varios detalles, pero lo vamos a lograr.

Semana santa se aproxima y como acordamos será semana de proyecto. Descansaremos de todo lo demás y nos aplicaremos a avanzar para la segunda entrega, al menos ese es el objetivo. Esperemos sea importante el avance para que al final del semestre no estemos apurados con tanto clojure.

Reitero en nombre del Equipo que Clojure->nil

domingo, 21 de marzo de 2010

Avances - 21/marzo

El día de hoy nos dedicamos a los métodos de escritura en la base de datos. Al final logramos que agregara tuplas al final del archivo con el padding adecuado y su bandera de :deleted. También logramos que borrara tuplas cambiando las flags, después de varios intentos con DataOutputStream hasta que cambiamos a RandomAccessFile. Nos mucho tardamos en descubrir cómo cambiar sólo unos bytes en el archivo.
Pensábamos que read-bin-file ya filtraba las tuplas borradas antes de mandarlas en :records, pero nos dimos cuenta de que no es así después de haber diseñado el método que cambia las flags como si sí las filtrara, así que debemos cambiarlo. También pensamos borrar varias tuplas de una vez, pero no lo logramos todavía.
Mejoramos un poquito la interfaz gráfica, ahora la s partes relacionadas a la búsqueda están más juntas. Todavía no logramos agregar tuplas o que la tabla no se trabe al modificarla.
Todo el día lo dedicamos a esto y aún así avanzamos muuuy poco. Odiamos Clojure y Swing :)

jueves, 18 de marzo de 2010

Avances =)

A lo largo de estas semanas hemos trabajado en el proyecto, estamos presionados por la entrega, sobre todo por la complejidad de la sintaxis que presenta el lenguaje. Hasta el día de hoy tenemos una interfaz gráfica que permite ver los datos dentro de la base de datos, aún estamos trabajando en las funciones que se requieren ya que las hemos implementado pero no hemos tenido muy buenos resultados =(.

Al principio tuvimos problemas con la creación de la interfaz cuando se compilaba el código; nos dimos cuenta que este error era por los diferentes editores que utilizábamos ya que en ocasiones presentaba caracteres diferentes y causaba conflicto. Cuando ya teníamos la interfaz tuvimos el problema para leer la base de datos, una gran ayuda fue el hecho de realizar la misma interfaz en Java y después hacerlo en Clojure.

Para los métodos, estamos realizando varios intentos, en este caso tenemos algunos problemas con los Listeners de la interfaz, consideramos que hemos realizado un buen trabajo en equipo aunque debemos decir que el lenguaje no nos agrada del todo.

Hemos estado trabajando también sobre el video final para no dejarlo al último como se nos ha recomendado para dar un buen resultado en todo el proyecto.

miércoles, 3 de marzo de 2010

¿Por qué Artistic License/ GPL?


Decidimos que el proyecto que estamos desarrollando, estará bajo la licencia Artistic License/GPL, decidimos utilizar esta licencia sobre todo por el conocimiento que tenemos de la licencia GPL que permite que se distribuya el proyecto de una forma binaria así como el código fuente, esto lo decidimos pensando en un futuro, ya que al ser una licencia que se basa en la libertad de código, es posible que en algunos meses o años alguien se interese en la forma en la que se desarrolló el proyecto y podrá tener acceso al código fuente para hacer mejoras y obtener una mejor aplicación.

Otro factor por el que pensamos que esta licencia es la adecuada es porque como se menciona en el libro “Introducción al Software Libre”[1] de un programa que esté bajo la licencia GPL se debe distribuir y nunca tendrá propietario, permitiendo que la idea de la libertad de distribución y modificación del código continúe y todas las mejoras que se realicen deben ser publicadas por la misma licencia.


[1] González Barahona Jesús, et al. “Introducción al Software Libre”. Fundación per a la Universitat Oberta de Catalunya. Madrid. 2003, p.p. 79-81