cisneros día a día

miércoles, agosto 31, 2005

Upload de Fichero no-scorm


Implementada la versión beta de la subida de documento no-scorm.

Se trata de adjuntar un fichero .zip al formulario web, descomprimirlo y permitir al usuario elegir cual es el documento principal.

El árbol de documentos descomprimidos se graban en disco con siguiendo la estrutura y nombres originales en un directorio único para cada documento-euskoScorm.

En la imagen vemos la pantalla en la que el usuario elige cual es el documento índice. Vemos que el módulo soporta un zip con directorios hijos.

Hay que indicar que esta parte de la implementación solo supone la subida y posterior descompresión del fichero zip, aún queda por resolver la descarga o visualización del mismo, y además filtrando por privilegios.

Librería JAF

He tenido que añadir al proyecto la librería jaf de sun.

Una librería muy interesante para manejar los mime-type de los ficheros con muchas utilidades.

Ejemplos

Api

lunes, agosto 29, 2005

Upload de Fichero.

El sistema ya sopora la subida de un fichero vía web.

Por ahora la persistencia del fichero se hace en un directorio, se estudia la posibilidad de almacenarlo en un campo Blob de la base de datos.

Formularios web vía Css.

Primera prueba de uso de css para el formateo de un formulario web, sin usar tablas, todo divs.

#document_uploadbyweb_step01{
background-color: yellow;
}

.form_subject {
float: left;
width: 20em;
}



viernes, agosto 26, 2005

Modulo Login.. versón 0.1beta


Ya tenemos la primera versión del login.

Con ella se han construido también primeras versiones de módulos como el MonitorSession y el StrutsMensajes.

jueves, agosto 25, 2005

Primera query de Búsqueda Avanzada.

here we are:
( general_title:title OR general_title:other ) AND ( general_keywords:keywords_yes OR general_keywords:yes ) AND NOT ( general_keywords:keywords_not OR general_keywords:not ) AND ( general_language:general_language ) AND ( metadata_language:metadata_language ) AND ( educational_learningResourceType:exercise ) AND ( educational_intendedEndUserRole:user ) AND ( educational_typicalAgeRange:2-3 ) AND ( rights_cost:true ) AND ( classification_taxonEntry:taxon bean )

lunes, agosto 22, 2005

Búsqueda.. versión 0.3


Unas mejoras en el buscador y tenemos implementado el hightlighter..

Ayudándonos de css podemos mejorarlo y hacer que las palabras resaltadas tengan fondo amarillo.

El Modulo Translator



Ya empieza a funcionar la aplicacion en modo multilenguje.

Resuelto las siguientes secciones de multilenguaje:
  1. mensajes de la aplicación.
  2. textos estáticos.
  3. combos de tablas catálogo
Falta
  1. imagenes
Mas información en el wiki.

Aquí tenemos unos ejemplos:

sábado, agosto 20, 2005

Busqueda.. version 0.2


La busqueda ya responde con alguna descripción más del elemento encontrado.

También empieza a diferenciar entre búsqueda aproximada y búsqueda exacta.. pero no va del todo bien :)

lazy="true" problema

Con lo contento que estaba yo con la configuracion perezosa.

Pues nada, no lo vamos a poder usar hasta que se estabilize el proyecto, pues resulta que cada vez que termino de hacer una operación con lucene cierro la session actual y para que una carga perezosa de un objeto funcione bien a la hora de cargar una de las collection que no fueron cargados, tanto tanto el acceso de carga del objeto como la consulta de la collection no cargada se deben hacer con la misma session abierta.

Por el momento elimino todas las configuraciones perezosas

Poltergeist [01]: Registros de tabla catálogo que se borran.

Resuelto el primer poltergeist del proyecto.

Resulta que si borraba un elemento DocumentBean se borraban todos los objetos hijos que este referenciaba, esto está bien hasta cierto punto: no puede borrar objetos que pertenezcan a una tabla catálogo.

Al principio lo ví claro, tenía configuradas las relacciones de muchos a uno con cascade="all", y claro, se borraban todos los hijos fueran lo que fueren.. pero aún quitando esto seguían desapareciendo registros de tablas catálogo.. el problema era que me estaba olvidando de las relaciones muchos a muchos.

En fín que hay que tener cuidado con el cascade. :)

viernes, agosto 19, 2005

Tablas Catalogo Ordenadas

El método CatManager.getAll( clas:Class ):Collection ya retorna la collection ordenada por el campo _ORDER de la tabla.

lunes, agosto 15, 2005

Primera Busqueda Exitosa en Producción



Hemos integrado el módulo del motor de búsqueda en el proyecto.

Aquí vemos el primer resultado de una búsqueda hecha sobre los documentos indexados en nuestra base de datos.

El resultado es aún muy pedestre, pero estamos orgullosos de él.

Aprovechando hemos hecho la primera integración del jpaggui también.

jueves, agosto 11, 2005

Primera Busqueda Exitosa

Aqui tenemos la prueba de que ya empieza a funcionar la indexacion y busqueda de documentos en nuestro proyecto:

miércoles, agosto 10, 2005

Integración de las Maquetas


Empezamos con la integración de las maquetas..

Esto es lo que tenemos por ahora:

Indexación de documentos

Se empieza con buen pie la indexación de documentos. Por ahora ya tenemos un esquema de como se va a indexar cada documento.

Este es el xml de un documento con el que alimentamos a lucene:

<documents>
<document id="1">
<property name="general_title" stored="false" boost="1">title</property>
<property name="general_description" stored="false" boost="1">description</property>
<property name="general_keywords" stored="false" boost="1">keyworrds</property>
<property name="general_language" stored="false" boost="1">language</property>
<property name="metadata_language" stored="false" boost="1">metadata language</property>
<property name="educational_learningResourceType" stored="false" boost="1">image</property>
<property name="educational_intendedEndUserRole" stored="false" boost="1">teacher</property>
<property name="educational_typicalAgeRange" stored="false" boost="1">age range</property>
<property name="rights_copyright" stored="false" boost="1">true</property>
</document>
</documents>

martes, agosto 09, 2005

La i18n

Rebuscamos en la documentación de Struts para ver como sacarle el máximo partido a la internacianización.

Encontramos que podemos gestionar nuestro propio gestor de mensajes integrado con Struts.

Se completa la implementación, y se ve que es fácil.

Se empieza a estudiar la repercursión de suplir el gestor de mensajes por defecto de Struts, lo suyo sería poder usar los dos. El de Struts por defecto, y si este no encuentra el mensaje usar el nuestro propio.

el modulo easylucene

Se está intentando encapsular todo lo que es el motor lucene.

Se ha empezado a desarrollar un proyecto a parte llamado easylucene. Este proyecto se convertirá en un .jar que podremos importar a cualquier otro proyecto y para poder usar lucene sólo tendremos que enviarle unos xml muy sencillos con las ids y las propiedades de los documentos a insertar más un directorio donde se encuentre el índice de lucene.. Se creará el índice y se indexarán los documentos.

También nos facilita las búquedas abríendonos una ventana en forma de método público al que le pasamos un String con la query y el directorio donde se encuentra el índice. El método nos retorna un xml en forma de String con los documentos encontrados, sus ids, su prioridad y sus propiedades si se las indexó con la flag de 'stored' activada.

Otro método nos permite borrar documentos del índice. Le pasamos un xml con las ids de los documentos a borrar, y los borra del índice retornándonos el número de elementos borrados.

Estamos en la versión 0.1beta, todo lo anteriormente comentado ya está implementado, no optimizado.

viernes, agosto 05, 2005

arrancando con el modulo de creacion de documento scorm

Los comienzos siempre son duros, y empezar con el primer modulo así está siendo.

miércoles, agosto 03, 2005

Nacimiento de la capa DAO

Ya tenemos el primer registro insertado el la BD a partir de la capa DAO:

Los primeros ladrilllos.


Ya tenemos el primer pantallazo del proyecto Cisneros en funcionamiento.

Le llamaremos a esto la versión 0.00.00.00.01 alpha.

lunes, agosto 01, 2005

Reunion con Cliente

Nuestro enviado especial ha tenido una reunion de solidificacion de especifiaciones con nuestro cliente.

Esperamos ansiosos que mañana nos comente que fechas de entrega tenemos y demas.