Archivo de Octubre 2006

Screenshots: El prototipo

Octubre 27, 2006

Aquí se muestra un screenshot del prototipo que se está construyendo y que posteriormente se usará como base para desarrollar el proyecto. El prototipo está escrito en Qt4. El screenshot muestra un terminal, con la ayuda abierta en la que se ha hecho una búsqueda y una ventana con el contenido de una matriz. Además de la función sombrero dibujada por Gnuplot en una ventana a parte. Uno de los objetivos sería intentar conseguir que la salida de gnuplot se dibujase dentro de la aplicación, dentro de una ventana de la aplicación y no en una ventana a parte.

Screenshot del prototipo funcionando

En el diagrama siguiente se muestran los distintos módulos del prototipo y las dependencias entre ellos (para el que le interesen los detalles técnicos).

Diagrama de módulos

Laboratorio de ideas: El servidor de widgets

Octubre 27, 2006

Pensando en cómo son los usuarios de la aplicación me dí cuenta de que la mayoría sólo tienen conocimientos básicos de programación. Lo mínimo para hacer su tarea, o incluso menos.

Tal vez sería útil que dispusieran de una herramienta para mostrar ventanas o cuadros de diálogo de una forma simple. Pero la mayoría no tiene porqué saber cómo son las interioridades del sistema de ventanas.

Para resolver la situación se me ocurrió que podría incluir una pequeña aplicación, que tengo para mí, que sirve para hacer ventanas, sencillas, desde línea de comandos, un “servidor de widgets”.

Octave dispone de la función popen2 que permite abrir una aplicación y leer/escribir en su salida/entrada estándar. Con esta orden se podrían comunicar con el “servidor de widgets” y así hacer sus ventanas.

Bien pensando, se podría usar, incluso, para hacer plugins para la aplicación.

Laboratorio de ideas: Los posibles usuarios

Octubre 25, 2006

Estuve pensando en los posibles usuarios de la aplicación. En principio se pueden clasificar en los siguientes tipos:

  • Estudiantes (Ingenieros, físicos,…): Lo usarán para tareas muy concretas sin llegar a exprimirlo del todo.Seguramente sea la primera vez que se encuentran con una herramienta de este tipo, por lo que habrá que hacer que el Front-End haga las tareas más comunes de forma sencilla: Representación gráfica, resolución de ecuaciones,…
  •  Profesionales: Ingenieros, físicos,…
    • Científicos: Seguramente expriman la aplicación pidiendo todo lo que les pueda dar y algo más. Posiblemente conozcan otras aplicaciones similares. El Front-End sólo les servirá para iniciarse en Octave y para ciertas tareas que en Octave, “a secas”, sean difíciles de manejar.
    • Ingenieros y calculistas en general: Seguramente usarán la aplicación para tareas muy concretas y muy repetitivas. La dinámica de sistemas se limita a usar ecuaciones de primer grado y representaciones gráficas. Habrá que realizar formularios que faciliten estas tareas.

Como Octave está en inglés y si deseo que la aplicación tenga algo dedifusión sería muy conveniente que estuviese en inglés. Otras aplicaciones de este campo, como Matlab, Mathematica, SciWorkPlace… también lo están y la mayoría de los usuarios deberían saber inglés.

Cuando el proyecto esté más avanzado sería conveniente mandar un mail a las listas de correo de Octave para así tener una comunidad de usuarios amplia.

Ya está disponible la forja!!!

Octubre 25, 2006

Efectivamente, ya está disponible la forja del proyecto en:

forja.rediris.es

El proyecto se llama csl-qtoctave y en tareas pendientes tengo colocar el primer prototipo que hice de QtOctave para verificar la viabilidad del proyecto. Seguramente me base en el prototipo para desarrollar la aplicación final. Como el prototipo lo hice en Qt4, la aplicación final la basaré en la misma biblioteca. Procuraré que sólo depende de Qt4 y no otras bibliotecas para que sea más sencilla su compilación y el mantenimiento de la aplicación. Cuando algo depende de muchas cosas que pueden variar al azar, lo más seguro es que uno se pase todo el tiempo modificando el programa porque cada biblioteca le da por cambiar algo.

A ver si me entero de cómo funciona el sistema de gestión de versiones…

Laboratorio de ideas: Las primeras ideas

Octubre 21, 2006

Lo primero que se me ocurre para mejorar el posible manejo de Octave es:

  • Un sistema de ayuda con un sistema de búsqueda. Esto es lo típico para cuando deseas hacer algo pero no sabes cómo.
  • Una consola en la que se ejecute Octave y se puedan distinguir los errores en un color diferente.
  • Una “hoja de cálculo” donde poder editar las matrices. Octave trabaja con matrices y sería útil poder verlas correctamente para manipularlas.
  • Un menú con las operaciones más comunes separadas por categorías. Por ejemplo, un menú dibujar con los diversos tipos de gráfico y pequeños asistentes para realizar dichas operaciones.
  • Tal vez, un editor para programar en octave. Aunque editores como Emacs y Kate cumplen muy bien su papel.
  • Puesto que este programa al final lo usarán ingenieros y científicos, debería buscar algunas utilidades que les fuesen útiles y que estén relacionadas con Octave. No sé, podría ser una salida de los cálculos en LATEX, o un pequeño gestor de proyectos,…

Tengo más ideas, que ya las iré acoplando.

¿Alguna sugerencia?

Presentando el proyecto

Octubre 21, 2006

Me animé a participar en el Concurso Universitario de Software libre con un pequeño programilla que tenía en mente y tras realizar algunas pruebas sobre la viabilidad del proyecto.

Mi idea es desarrollar un Front-End para Octave, una aplicación para el cálculo matemático muy similar a Matlab. Si no se usa muy habitualmente el Octave, es muy tedioso de manejar. Para pasar un gráfico a jpg o a pdf hay que hacer virguerías, y tener constantemente la documentación a la vista.

Octave está realmente bien, pero debería ser, todavía, más sencillo de manejar. Por ello me lanzo a esta aventura.

También tengo en mente algunas ideas que pueden ser prácticas a la hora de hacer algún trabajo. A ver si me trabajo un laboratorio de ideas y un análisis de la aplicación que sea un poco decente.

Gracias por haber leído esta primera entrada.