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 :)