martes, 18 de mayo de 2010

Previo a la entrega

El día de hoy presentamos el proyecto que hemos estado realizando a lo largo del semestre, desafortunadamente nos encontramos con algunas situaciones a las que por más que revisamos no encontramos una solución adecuada. El día de ayer, José Alberto (Pepe) y yo nos sentíamos un tanto desesperados porque el tiempo estaba encima, aunado a la angustia de terminar el proyecto a tiempo; teníamos la angustia de entregar el video en tiempo ya que nos habíamos confiado en que esa parte estaría hecha para el sábado pero no fue así. A final de cuentas, cada uno realizó un video por lo que fue difícil seleccionar uno de los dos para subirlo porque ambos estaban bien.

En cuanto al código, existe un inconveniente que no permite que los cambios (los cuales hemos probado con println y sí se realizan) no se ven reflejados en la interfaz a menos que se abra otro nuevo cliente.

sábado, 15 de mayo de 2010

Sábado previo a la entrega

El día de hoy, seguimos trabajando en los últimos detalles del proyecto. No somos el único equipo trabajando en eso, en el video se pueden ver nuestros compañeros en la misma situación, se pueden ver: Víctor Enzaldo, Jorge Dorantes, Alfonso Jiménez, Iván Ferrer (apoyo moral), Gabriela Herrera, José Alberto Ugalde y Gonzalo Acosta.

Este proyecto realmente ha implicado un compromiso ya que, como lo hemos mencionado, es un lenguaje nuevo con una sintaxis un poco complicada, afortunadamente hemos superado esos pequeños inconvenientes por el tiempo que hemos estado trabajando sobre el proyecto.

A lo largo de la semana tuvimos algunos problemas relacionados con los sockets pero gracias a la ayuda del profesor, los hemos podido solucionar. En este momento sólo nos faltan detalles relacionados con la parte distribuida y el video pero debemos admitir que ya nos sentimos un poco más familiarizados con el lenguaje.Esperamos concluir todos los pendientes el día de hoy.


jueves, 13 de mayo de 2010

Utilidad de un blog para corrección de errores

Después de los meses que llevamos trabajando en el proyecto, recordamos la utilidad de lo que se mencionaba en el libro “Practices of an agile developer” sobre la importancia de documentar los errores que se presentan a lo largo del proyecto y sobre todo su solución.

Varias veces nos hemos topado con diferentes errores, una vez que los solucionamos pensamos que la solución es tan sencilla que la recordaremos pero la realidad es que cuando nos encontramos con un error, no recordamos cuál de todas las soluciones que hemos probado es la que nos ayudaría a solucionar el problema que se presenta. Esto nos consume tiempo porque en vez de checar en un histórico la forma en la que se solucionaba el error, tenemos que probar nuevamente cada opción.

De la misma forma, nos cuesta trabajo recordar qué es lo que hace cada método, sin embargo afortunadamente hemos podido documentar exitosamente los métodos de todo el proyecto.

miércoles, 12 de mayo de 2010

El proyecto URLyBIRD del equipo JPG

En esta entrada se puede ver la interfaz de nuestro proyecto, actualmente ya cuenta con las mejoras especificadas por el profesor tanto en la parte gráfica como en la parte del funcionamiento (lógica).

Debemos admitir que teníamos un poco descuidad el blog, sobre todo porque nos preocupa la parte de cumplir con el plazo para la entrega. Afortunadamente, vamos bien. Cada uno de los botones que se aprecian cuenta con una funcionalidad por muy básica que esta sea.

Pepe (Ugalde) y yo decidimos que nuestro protocolo de comunicación se basará en mensajes textuales, esto lo decidimos después de una asesoría breve pero muy útil con el profesor.
Actualmente necesitamos terminar de implementar dicho protocolo para poder concluir con las funciones faltantes, también trabajamos en algunas partes de la documentación y en el video, todo esto para concluir satisfactoriamente el proyecto y realizar nuestra entrega a tiempo y con las especificaciones indicadas desde un principio.

Resultados de la primera entrega

Para la primera entrega fue necesario presentar la interfaz gráfica y lograr funcionalidad total con la base de datos local. Entregamos la interfaz junto con las funciones de “Show all”, “Insert” y “Delete”, tuvimos problemas para realizar la función Find” debido a que clojure nos mostraba un error que no entendíamos, la verdad esto nos frustró un poco cuando, con ayuda del profesor, vimos cuál era el error: Pedía un arreglo de enteros pero decía que no podía “castear sólo un número” entonces le mandamos un “to-array” de ese número y funcionó. Nos dio alegría que funcionara pero eso no cambió nuestra opinión sobre Clojure porque es complicado plasmar en código la lógica de las funciones.

Pasadas las vacaciones, logramos tener una interfaz que funcionara totalmente de forma local, una vez que funcionaba totalmente, vimos que era momento de empezar con el ambiente cliente servidor. Esperamos terminar exitosamente el proyecto y pronto =)

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

miércoles, 24 de febrero de 2010

ARRANCAMOOOOOOOOS!!!!!


El día de hoy es la tercera vez que nos juntamos, un poco menos perdidos porque ya hemos practicado un poco, decidimos que por comodidad, los miércoles nos juntaremos todos los miembros del equipo y otros días trabajaremos a distancia y sólo tomaremos un rato para checar avances juntos.

Definimos que al menos una vez a la semana cada integrante del equipo deberá entrar a nuestro código (google-code) para analizar los cambios que se han hecho, en caso de que no entendamos algo, haremos la pregunta por medio de este blog.

La persona que se especializará en la interfaz gráfica será Pepe Ugalde, pero todos apoyaremos esa parte en caso de que lo necesite.

El dia de hoy decidimos que es necesario establecer prioridades para poder cumplir con los entregables, que es nuestra principal angustia sobre todo porque es un lenguaje en el que no tenemos experiencia y sabemos que se pueden presentar contratiempos.