Feeds:
Entradas
Comentarios

Archive for the ‘Ciclo #3’ Category

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 »

En este ciclo del desarrollo se va a llevar a cabo una importante reutilización de código fuente. Como ya se comentó en anteriores entradas del blog, se va a partir del código fuente de bash para implementar la terminal embebida en la aplicación.

Para ello, siguiendo la filosofía del software libre y de código abierto, se llevará a cabo una pequeña modificación en la implementación del intérprete de comandos para que, cuando se realice un cambio de directorio, éste notifique a nuestra aplicación de ello. Debido a su ejecución en un proceso diferente, será necesarios mecanismos de comunicación alternativos.

Buscando la sencillez, la intención es implementar la comunicación haciendo uso de una fifo o tubería. Así, TP lanzará un hilo que se encargue de escuchar las notificaciones de cambio de directorio a través de la tubería y recargue el panel lateral.

En definitiva, se integrará por completo el código fuente de bash en nuestro proyecto, realizando la modificación pertinente y llevando a cabo la integración que se ha mencionado. El próximo paso es, por tanto, examinar el código fuente existente y determinar el lugar y la forma de integrar nuestro “parche”.

Read Full Post »

Tras abordar los dos primeros ciclos del proyecto, se ha llegado a la conclusión de que el análisis inicial realizado no respondía a la que al final ha ocurrido en la implementación. La inexperiencia en la gestión de proyectos y planificación de proyectos puede ser la causa.

A pesar de ello, si se examina la lista de funcionalidades inicial ideada, los ciclos 1, 2, 3 y 5 han sido completados. Es lógico por tanto continuar con la implementación del ciclo 4: subshell con reconocimiento de cambios de directorio.

Tal y como se comentó en un post anterior, la subshell será implementada utilizando como base el código fuente de bash e integrando en él el código del proyecto. La intención es que cada cambio de directorio sea notificado a TP::Previewer para que actualice y muestre en un panel lateral las vistas previas de los archivos de la ruta actual.

En lo respectivo a mostrar un panel, se prevé  implementación de un terminal virtual con libvte y mostrar los archivos previsualizados haciendo uso de un panel convencional de GTK+.

Read Full Post »