POSTCAPITAL

Planificación v0.1

Descripción de las tareas a realizar (“historias de usuario”)

El sistema está pensado bajo una arquitectura cliente/servidor. De un lado disponemos de un servidor de archivos que alberga una colección de documentos en formatos digitales; y del otro, tenemos un número indeterminado de clientes, que podrán hacer búsquedas en el servidor y acceder a los resultados por medio de una red privada virtual (VPN).

Server side:

  • Herramienta de extracción de información y meta datos de la colección de archivos. Indexación de esta información en una base de datos de manera que se puedan realizar búsquedas rápidas por contenido o por cualquier criterio (autor, titulo, etc .. ).
  • Respuesta a tiempo real de los cambios en el sistema de ficheros.
  • Soporte para “Tags”. Se pueden asignar tantos tags como se quiera a un archivo.
  • Transcodificación de archivos a formatos libres. texto: pdf, vídeo: mp4 + ogg, imagen: png , sonido: mp3 + ogg.
  • inyección de meta data en los archivos.
  • Uso de técnicas de búsqueda semántica: soporte para consultas RDF, ayuda semántica en las búsquedas (por ejemplo detección de la raíz de una palabra, buscar plural/singular, palabras parecidas, etc…), establecer links/relaciones entre archivos (creacion de ontologias).

Client side :

  • Interface (GUI) de búsqueda. Búsquedas rápidas por contenido o por cualquier criterio (autor, titulo, etc .. ).
  • Visualización en “Tag Cloud” por número de “tags”, número de “consultas”, gráficos de espacio en disco, etc…
  • herramientas para catalogación humana y para facilitar esta tarea.

Un primer diagrama orientativo de los objetos que intervienen en el sistema

Tecnologías a utilizar

En un principio se plantea el uso de las siguientes herramientas/tecnologías para desarrollar el proyecto::

  • Ubuntu: como sistema operativo de base, el software desarrollado sera empaquetado para esta distribución de GNU/Linux de manera que podrá ser instalado muy fácilmente.
  • Tracker: el demonio de indexación de gnome y su API de programación, nos proporciona un punto de partida que se ajusta muy bien a nuestras necesidades.
  • Dbus: Sistema de comunicación entre aplicaciones.
  • Python y C : como lenguajes de programación.
  • Screenlet: pequeñas aplicaciones escritas en python que pueden permanecer “flotando” en el desktop.
  • Web Widget: pequeña aplicación web que se puede incrustar en un “screenlet” pero que también es funcional desde un web browser.

Metodología de desarrollo

Durante el desarrollo del proyecto nos basaremos en cuatro principios sobre los que vamos a ir iterando hasta finalizar el proyecto. Estas fases o principios son planificación, diseño, desarrollo y pruebas.

Actualmente nos encontramos aún en fase de planificación (aunque ya en este documento se describen también posibles soluciones para el diseño).

En esta fase lo mas importante es la confección de las “Historias de usuario”. Se trata de breves frases escritas por el artista (no más de tres líneas), en las que se describe una prestación o un proceso sin ningún tipo de tecnicismo. En el primer apartado de este documento he tratado de transcribir lo que se habló en la primera reunión de planificación pero Daniel debería hecharles un vistazo para completarlas si es necesario.

Estas historias de usuario servirán para realizar la planificación de “releases”. Entendiendo que debemos empezar por un sistema básico y funcional que iremos ampliando en cada “release”.

A continuación podemos pasar a la propia planificación de la próxima (o primera) release del proyecto. Poniendo en orden las historias de usuario que faltan por desarrollar. Deberá ser el artista quien dicte el orden de las historias de usuario, y los desarrolladores quienes estimen el tiempo que les llevaría idealmente en desarrollarlo.

En este sentido y también a raíz de lo hablado en la reunión de planificación, considero que en la primera “release” se desarrollaran la primera de las “historias de usuario” del “Server side” y la primera de las del “Client side” descritas en el primer apartado de este documento. De esta forma tendremos en poco tiempo un sistema de mínimos funcional a partir del que ir desarrollando nuevas funcionalidades.

Diseño v0.1

Desarrollo v0.1

xmlrpc_server.py

 TODO:

config file amb “shared_folders” , “NFS/SMB” , “port” , etc …

afergir metodes :: get_tagcloud, get_count, add_tag, inject etc … (alguns amb crides al sistema altres via dbus)

autodiscover Avahi PythonPublishExample

async

xmlrpc_client.py

 TODO:

autodiscover Avahi PythonBrowseExample

afergir metodes :: get_tagcloud, get_count, add_tag, inject etc …

shared-tracker-client-gui.py shared-tracker-client-gui.glade

 TODO:

adaptar gui i sequencia de “calls al tracker” al sistema de “tracker-search-tool.c”

escaneja per avahi i munta el shared folder via gvfs-bin

real async (threads)

gui per a tagejar i injectar metadata


Planificación v0.2

Descripción de las tareas a realizar (“historias de usuario”)

Heredamos de la v0.1 un sistema cliente/servidor bien definido, asentado y testeado. Aún así la v0.1 no se puede considerar totalmente funcional, para la v0.2 quedan pendientes algunos detalles importantes a nivel de interacion en la interfaz gráfica del cliente. Además, de las historias de usuario pendientes de la Planificación v0.1 assignamos para la siguiente release las que se detallan a continuación::

Server side:

  • inyección de meta data en los archivos.
  • Uso de técnicas de búsqueda semántica: soporte para consultas RDF.

Client side :

  • inyección de meta data en los archivos.
  • herramientas para catalogación humana y para facilitar esta tarea.
  • Búsquedas complejas por cualquier criterio (autor, titulo, etc .. ). (RDF)

Diseño v0.2

Continuamos exactamente con el mismo diseño de la version 0.1.

Desarrollo v0.2

xmlrpc_server.py

 TODO:

injeccio de metadata

async ¿?

xmlrpc_client.py

 TODO:

injeccio de metadata

real async (threads) ¿?

shared-tracker-client-gui.py shared-tracker-client-gui.glade

 TODO:

injectar metadata

flecos de la interficie ::

  • paginador
  • label amb el numero de resulats + suggeriments en cerques nul.les
  • testejar la interactivitat ¿?

eines que faciliten la feina de catalogació humana ::

  • seleccio multiple de resultats + assignacio multiple de tags + assignacio multiple de metadata
  • poder seleccionar el numero de resultats per pagina
  • interficie de cerca avançada (RDF query)

Pruebas v0.2

La release v0.2 no se considerará terminada sin haber realizado un plan exaustivo de pruebas a dos niveles ::

  • programático :: tests de unidad de clases, stress tests … pydebug messages + logfiles
  • humano :: se definiran diversos guiones de prueba que deberan ser ejecutados por personas que evaluarán el funcionamiento de la aplicación.

De estos tests saldrán tareas para assignar a la siguiente release.

CIRCARE DEPENDENCIAS

python-samba smbfs? python-medusa python-gtk2 python-avahi python-dbus python-glade2 python-xdg python-gobject gvfs-bin tracker-utils?

CONVERSORES TextoAudioVideo

Texto


origen-texto: msdoc

destino-texto: pdf

opcion1 : abiword

abiword --to=pdf test.doc

opcion2 : openoffice

http://www.togaware.com/linux/survivor/Convert_MS_Word.html
/usr/bin/oowriter -invisible "macro:///Standard.Module1.ConvertWordToPDF(/usr/src/shared-tracker-svn/conversors/test/pdf2/index.html)"
/usr/bin/oowriter -invisible "macro:///Standard.Module1.ConvertWordToPDF(/usr/src/shared-tracker-svn/conversors/test/pdf2/test.doc)"

AudioVideo


origen-video: cualquiera

destino-video: QuickTime

Video: h264, yuv420p, 360x270 [PAR 0:1 DAR 0:1], 25.00 tb(r)
Audio: mpeg4aac, 44100 Hz, stereo

origen-audio: cualquiera

destino-audio: mp3

Audio: mp3, 44100 Hz, stereo
configuracion de herramientas. ffmpeg (conversor audio/video)

configuration: –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libfaad –enable-gpl –enable-pthreads –enable-libgsm –enable-libx264 –enable-libamr-nb –enable-libamr-wb –disable-debug –enable-shared –enable-nonfree

apt-get install libfaad-dev libx264-dev libmp3lame-dev libtheora-dev libvorbis-dev libgsm1-dev
wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-6.1.0.4.tar.bz2
tar -jxvf amrnb-6.1.0.4.tar.bz2
cd amrnb-6.1.0.4
./configure --prefix=/usr
make
make install
cd ..
wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.1.tar.bz2
tar -jxvf amrwb-7.0.0.1.tar.bz2
cd amrwb-7.0.0.1
./configure --prefix=/usr
make
make install
cd ../ffmpeg-0.5
./configure  --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libfaad --enable-gpl --enable-pthreads --enable-libgsm --enable-libx264 --enable-libamr-nb --enable-libamr-wb --disable-debug --enable-shared --enable-nonfree
make
make install
cp /usr/local/lib/libav* /usr/lib/ ???
 
start/postcapital_archive.txt · Last modified: 2009/05/06 14:25 by lluis
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki