Feeds:
Entradas
Comentarios

Archive for the ‘Resumen de ciclo’ Category

Se da por finalizado el ciclo #6 del desarrollo de la aplicación. En este, como ya se contó anteriormente, se ha trabajado en el tema de hacer multipestaña la interfaz. Como parte de ello, se ha añadido un menú y la característica de internacionalización. Aunque todavía no se ha decidido cuál será la siguiente funcionalidad a implementar, se intentará atender a las peticiones de la encuesta y las opciones que se barajan son la integración con SSH y la gestión de configuración.

Por último, anunciar que el 10 de mayo verá la luz la versión 0.3.0 con las nuevas funcionalidades implementadas y la corrección de algunos bugs.

Read Full Post »

Se da por concluido el ciclo #5 del desarrollo en el cual se ha implementado la funcionalidad de monitorización del directorio actual para actual el panel en consecuencia.

Para detectar los cambios, se ha utilizado la extensión del kernel inotify que nos permite leer de un descriptor de fichero estructuras de datos con la información de los eventos que ocurren. De esta manera, hemos conseguido detectar todos los eventos que se deseaban y gestionarlos adecuadamente.

Para adaptar la arquitectura a la generación de vistas previas de archivos individuales ha sido necesario modificar el Preview Manager y añadir funcionalidades nuevas a la clase Normal Previewer. Ahora, es posible la generación de vistas previas sueltas en el directorio actual y actualizar el Preview Manager.

Como parte de las pruebas, se han detectado errores muy importantes, los cuales han sido solventados. Algunos estaban ya presentes en el ciclo anterior. Para una información más detallada se recomienda ver la forja del proyecto en su sección de bugs.

En próximos días se tomará la decisión de la siguiente funcionalidad a implementar, teniendo en cuenta las peticiones de los usuarios en la encuesta que se publicó hace unos días.

Read Full Post »

Con la liberación de los paquetes .deb para la instalación de la aplicación se da por finalizado el ciclo #4 del proyecto. El trabajo realizado ha servido para permitir la instalación en sistemas debian utilizando el gestor de paquetes habitual. Además, y como parte de lo anterior, el proyecto se puede compilar y construir con las herramientas autotools.

Terminado este ciclo, se concluye el trabajo antes de la evaluación para el Concurso Universitario de Software Libre. Se dedicarán los próximos días a mejorar la documentación existente y realizar video-tutoriales que faciliten la instalación y uso de la aplicación. Tras ello, se comenzará el ciclo #5, que está previsto que se dedique a permitir el manejo de la aplicación sin utilizar el ratón, utilizando combinaciones de teclas al estilo de editores como vim o emacs.

Por último, recomendar la instalación de la aplicación debido a la facilidad con la que realiza actualmente, con el fin de reportar bugs o problemas.

Read Full Post »

A día de hoy se ha finalizado la implementación del ciclo #3 del desarrollo. Como ya se comentó, el test a pasar era la navegación por el árbol de directorios utilizando los comandos habituales del terminal a la vez que las vistas previas de los archivos de dichos directorios se mostraran en el panel lateral.

A fin de comprender un poco las decisiones tomadas en este ciclo, se muestra la siguiente lista de aspectos relevantes:

  • Se ha tomado y modificado el código fuente de la última versión de bash. En cada cambio de directorio, éste avisa a nuestra aplicación a través de una fifo.
  • La aplicación integra un bash-tp (así es como llamamos a la modificación de bash realizada). Así, tanto el panel como el terminal se encuentran en la misma ventana de escritorio.
  • La generación de vistas previas ha sido optimizada mediante la utilización de hilos individuales para cada archivo a previsualizar.
  • La implementación llevada a cabo ha utilizado Gtkmm como biblioteca gráfica.

Para comprender el resultado obtenido, qué mejor manera que ver las siguientes capturas de pantalla tomadas de la versión actual de la aplicación.

Ahora una captura de la versión básica de la aplicación:

Como podemos contemplar, en la primera imagen la aplicación ha sido lanzada sin ningún fichero por línea de órdenes, y actúa en el modo normal de navegación por directorios. Al contrario, en la segunda ejecución, se muestra el resultado obtenido de la ejecución de la aplicación al pasarle por línea de órdenes un archivo (en este caso un vídeo). Se ha de tener en cuenta que en este caso en particular se muestra una de las opciones de generación de vista previa para los vídeos, consistente en generar múltiples capturas y concatenarlas.

Tras poner a prueba los resultados obtenidos, se puede afirmar que la aplicación se encuentra en una etapa usable. Tras trabajar con ella durante varios días, se llega a la conclusión de que aumenta la productividad enormemente, permitiendo la navegación por el árbol de directorios del sistema sin utilizar apenas comandos como “ls” o los navegadores Nautilus o Konqueror.

Por último, y como aspecto más técnico, cabe comentar la optimización llevada a cabo en la etapa de refinamiento de este ciclo. En ella, se ha optimizado la colocación de las vistas previas en el panel analizando la forma en la que GTK+ refresca las ventanas. Para ello, se han encapsulado las acciones a realizar en “Comandos”, que son independiente de la biblioteca gráfica que se utilice. En este caso particular, GTK+ los procesará al final de cada una de sus iteraciones del bucle principal.

En definitiva, se da por finalizado el ciclo #3 del proyecto. En una entrada posterior de este blog se expondrá el trabajo a realizar en el siguiente ciclo. Os animo a echar un vistazo, descargar y probar el proyecto.

Read Full Post »

A día de hoy se ha finalizado la implementación del ciclo #2 de desarrollo del proyecto.

Este ciclo del desarrollo se puede calificar como el más importante que se va a llevar a cabo. Su objetivo era la implementación de la previsualización de los tipos de archivos más utilizados. Como consecuencia de ello, ha sido necesario tener en cuenta los siguientes aspectos:

  • Tipos de archivo: se han definido las categorías en las que clasificar los tipos de archivos. Se ha tenido en cuenta que muchos archivos pueden no ser legibles, estar mal formado o ser de tipos poco utilizados o específicos de una aplicación.
  • Detección del tipo de archivo: con el fin de clasificar los archivos a previsualizar, es necesario la lectura de su tipo mime y extensión.
  • Generación de la vista previa individual: para cada tipo de archivo es necesario la generación de la vista previa de una manera diferente. Esto ha conllevado la utilización de librerías específicas como ImageMagick o Ffmpegthumbnailer.
  • Gestión del disco duro: una vez generadas las vistas previas de cada archivo, es de suma importancia la gestión eficiente del espacio en disco. Para ello, se almacenan datos sobre los últimos archivos previsualizados y se intenta recuperar la vista previa que se generó la última vez. En este sentido, se ha de tener en cuenta que el archivo no haya sido modificado.
  • Visualización: a la hora de mostrar el resultado obtenido al previsualizar cada archivo, es importante dotar al programa de independencia de la librería gráfica a utilizar. Para ello se ha generado una estructura muy modular que permite la implementación de visualizadores para cualquier librería con únicamente implementar una interfaz común. En la versión actual del programa, se encuentra implementada la visualización mediante GTK+.
  • Gestión de iconos: cuando un archivo no resulta alcanzable o su tipo no es previsualizable por cualquier motivo, se ha de mostrar un icono que lo represente y nos dé información sobre qué tipo de archivo puede ser. Para gestionar este aspecto, se ha implementado la capacidad de usar “temas” de iconos que permitan a un usuario o implementador el diseño de nuevos iconos con los que sustituir los actuales.

Como es denotable, el trabajo ha sido muy grande. Es evidente que el ciclo podría haber sido dividido en varios que comprendieran cada uno de los puntos mencionados anteriormente. Sin embargo, la alta cohesión que existe entre ellos ha ido obligando a incorporárlos de manera progresiva.

Read Full Post »

Con el fin de recapitular el trabajo realizado en cada ciclo, se realizará un pequeño resumen de las decisiones tomadas y de los problemas surgidos a la hora de la implementación.

En este ciclo, el primero del desarrollo, se ha tratado el reconocimiento de opciones introducidas al programa por línea de comandos. En un principio se reconocen únicamente las opciones de:

  • –time, -t : tiempo que dura la previsualización de archivos individuales
  • –noaux, -n : no mostrar un panel auxiliar con la vista en miniatura de archivos en tiempo real (objetivo de uno de los últimos ciclos)
  • –version : mostrar la versión del programa
  • –help : mostrar la ayuda del programa

En un futuro, se añadirán opciones para cambiar el tamaño y colocación de las ventanas, no previsualizar archivos de un tipo determinado, etc… Esto no conllevará apenas trabajo ya que para leer las opciones se ha utilizado las funciones “getopt”, un estándar en estas tareas, que permiten añadir nuevas opciones de forma sencilla.

Además, se ha confeccionado la estructura del código del proyecto, así como los archivos auxiliares Makefile, Readme, License, ChangeLog y Authors.

Read Full Post »