cusl

TBO's picture

TBO gantt

Según este diagrama que me da la forja de rediris parece que voy cumpliendo la planificación :D

TBO's picture

Aunque no escriba mucho en el blog el desarrollo de TBO sigue adelante. He hecho algunas cosillas interesantes en cuanto a la estructura del proyecto y a la "metodología" de desarrollo y en cuanto al código el proyecto empieza a tomar color y ya casi parece una aplicación :P

TBO

Esta es la pinta que tiene ahora mismo la aplicación. Ahora mismo se puede:

  • Crear un nuevo cómic
  • Añadir/borrar/moverse entre páginas
  • Añadir/borrar/seleccionar/mover/escalar viñetas

Próximos pasos:

  • Añadir una barra lateral para meter controles de las herramientas
  • Implementar el guardado y apertura de ficheros .tbo (tengo que definir cómo serán los ficheros .tbo)
  • Añadir el modo de edición de viñeta (aquí está to el meollo)

Cambios estructurales/desarrollo

Con respecto al desarrollo, he dejado de usar cmake para usar las autotools. Esto puede ser una decisión arbitraria, y en realidad lo es, pero es que la mayoría de los proyectos gnome/gtk utilizan este tipo de herramientas y para hacer más "compatible" TBO he decidido utilizar esto.

El cambio de cmake a autotools no ha sido traumático ni mucho menos, hay un montón de documentación por ahí y además me he basado en el código del proyecto epiphany.

Por otra parte, antes estaba usando bazaar (además del svn de rediris con bzr-svn) para gestionar las versiones de TBO, pero me ha dado por cambiarme a git, y ahora es lo que estoy usando (con git svn para el svn de rediris). Así que la evolución del proyecto se puede seguir los cambios desde aquí.

Por ahora no tengo mucho más que decir. Si todo va bien y consigo una versión funcional quiero intentar meter TBO en el proyecto gnome, guadalinex->ubuntu->debian y que sea algo más o menos utilizado.

Todas las sugerencias, parches y críticas serán bien recibidas.

TBO's picture

TBO

Con el proyecto TBO pretendo hacer un editor fácil de usar para poder crear cómics, presentaciones guías de programas, etc.

La idea del proyecto es presentar una interfaz (hecha con gtk) más o menos sencilla que ofrezca un editor para que quién no sepa dibujar pueda hacer un cómic en cinco minutos para hacer una presentación de algo, un tutorial de cómo funciona algo o para dibujar un cómic gracioso.

Para ello el editor dispondrá de diferentes modelos prediseñados para ir añadiendo a las viñetas y el usuario tan sólo tendrá que colocar los personajes y escribir los bocadillos correspondientes para tener un cómic.

Quiero desarrollar el proyecto con python, gtk y cairo. Y tengo intención de que se pueda exportar a png y pdf y además quiero que añadir nuevos sets de personajes a añadir.

GECO's picture

Esta semana, los días 7 y 8 de Mayo ha tenido lugar la fase final de Concurso Universitario de Software Libre. Esta final, como las dos anteriores ha tenido lugar en la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Sevilla. Y como en anteriores ediciones ha consistido en dos días completos de ponencias y charlas, incluyendo entre estas las presentaciones de los seis proyectos finalistas y la entrega de premios.

Este año además de como colaborador he asistido como finalista con el proyecto GECO. Además este año se ha celebrado la fase final en el salón de actos mientras que en años anteriores se hizo en el salón de grados. El salón de actos es realmente grande y separa muchísimo a los ponentes del público, algo que intimida al ponente y por otra parte hace que los asistentes tengan más complicado participar con preguntas.

Como en todo evento de este tipo lo más importante es relacionarse con ponentes y otros participantes, compartir ideas e impresiones, poner cara a gente que sólo conoces a través de internet y hacer amigos.

Yo por mi parte he aprendido mucho de los demás participantes y ponentes, me gustaría haber hablado más, pero por diferentes motivos al final hemos hablado poco, pero bueno, ha estado bastante bien.

El año que viene no creo que pueda participar, porque comenzaré con los estudios de doctorado, que quedan fuera del ámbito del concurso, pero me tocará colaborar, medio organizar y espero poder "tutorar" o ser el mentor de algún estudiante que necesite mi ayuda o guía para participar. Tengo varios proyectos para el que no tenga nada en mente y seguro que saldrán muchos más.

Premios

Premio innovación: eOPSOA
Finalista innovación: Cool Imaging

Premio comunidad: AVBOT
Finalista comunidad: Digital Coach

Premio ocio: Tucan
Finalista ocio: Geco

Los premiados se llevan 2000 euros y una subscripción a Linux Magazine y los finalistas 1000 euros y una subscripción digital.

Quiero decir que para los participantes el concurso no acaba aquí, en septiembre comienza de nuevo y podréis participar incluso mejorando el mismo proyecto, si os pasa como a mí que ya acabáis y demás siempre podéis seguir ligados al concurso colaborando a la difusión, impulsando a nuevos alumnos universitario a participar e incluso colaborando con los proyectos, porque no olvidemos que esto es software libre y que toda colaboración es bienvenida.

GECO's picture

Para la presentación de GECO en la Fase Final del Concurso Universitario de Software Libre he preparado un pequeño comic en el que creo que se muestra de una manera más clara y amena el porqué de GECO.

Comic GECO

GECO's picture

El 28 de abril se dió a conocer la lista de finalistas del tercer concurso universitario de software libre (CUSL3) y resulta que GECO ha salido seleccionado.

Esto es una gran noticia después de que en el concurso local de Sevilla también recibiera un premio, así que parece ser que el tiempo y esfuerzo dedicado a este proyecto está dando sus frutos.

GECOwin

GECO no nació como un proyecto para ganar el concurso, tan solo era una necesidad personal que quería implementar y para la cual aproveché el concurso como medio de motivación y una oportunidad para aprender un poco más. Marcandome unos plazos e implementando la parte funcional primero he conseguido un proyecto que podría considerarse casi cerrado, hoy en día se podría decir que está en la versión 0.99, tan sólo falta por añadir una pequeña funcionalidad a los clientes, pero que gecolib ya contempla.

Muchas gracias a todos los que han hecho posible este concurso y a todos los participantes. Una idea que no se intenta llevar a cabo es una idea menos. Así que ningún desarrollo es en vano.

GECO's picture

Siempre es bueno colaborar en otros proyectos de software libre y más aún cuando el proyecto lo están haciendo compañeros de la asociación SUGUS.

Ya dejaron caer un par de veces Alex y Edulix que al proyecto meshias no le vendría mal un logo, así que una tarde me puse a ello y salió esto:

meshias

Ya que estabamos y puesto que este proyecto me pareció interesante estuve mirando un poco el código y también arreglé un pequeño bug por ahí.

Pienso seguir colaborando tanto en este proyecto como en otros que considere interesantes. Y esta es otra muestra más de que este "Concurso Universitario de Software Libre" no va de rivalidad ni de ganar premios, sino de llevar a cabo proyectos y entre todos aprender.

Y por supuesto no he abandonado todavía GECO, aún le quedan un par de detalles para considerarlo como proyecto acabado y espero dedicarle un par de tardes esta semana para que esté terminado para la fase final.

GECO's picture

Cada vez que hago un desarrollo comienzo creando una carpeta y a partir de esa carpeta raíz del proyecto comienzo a generar todo lo necesario para que se pueda ejecutar. Hasta hace bien poco GECO estaba así y se podían ejecutar cada una de sus partes, tanto el servidor como el cliente de forma simple tan solo entrando en el directorio correspondiente y lanzando el script.

Pero cuando comienzas a utilizar un programa de manera más o menos habitual, no es cómodo el tener que entrar en el directorio correspondiente y lanzar el script, para un uso habitual es más conveniente el tener el programa instalado como uno más del sistema. Y esto es lo último que he realizado, un instalador sencillo que te deja todo donde "debe" estar para facilitar el uso.

Python ofrece una forma sencilla de hacer instaladores de módulos y programas, es el conocido módulo distutils. Normalmente los programas en python cuando te los descargas vienen con un fichero setup.py el cual hay que ejecutar para que se instale en el sistema, es una especie de make, pero para python.

¿Cómo crear un fichero setup.py?

El fichero setup.py no es más que un pequeño script en python en el cual tendremos que definir qué queremos que se instale, autor, descripción y otros datos.

Veamoslo con ejemplos:

  1. # setup.py de gecoc
  2. from distutils.core import setup
  3.  
  4. setup(name = 'gecoc',
  5. version = '1.0',
  6. description = 'geco client lib',
  7. author = 'Daniel Garcia Moreno',
  8. author_email = '<dani@danigm.net>',
  9. url = 'http://bzr.danigm.net/geco',
  10. license = 'GPLv3',
  11. scripts = ['terminal-geco'],
  12. packages = ['gecoc']
  13. )

$sudo python setup.py install

Con este script se puede instalar la librería gecolib que está en el paquete gecoc y el script terminal-geco. La mayoría de las opciones se entienden perfectamente, son datos opcionales que dan información sobre el programa. Las partes importantes en este ejemplo son las opciones scripts y packages. Scripts instala la lista de scripts en /usr/bin y packages instala un paquete python (directorio con __init__.py) en /usr/lib/pythonX.X/site-packages/.

El directorio destino de la instalación se puede cambiar y poner otro en lugar de /usr/, por ejemplo /usr/local/

$sudo python setup.py install --prefix=/usr/local/

  1. # setup.py de gtk-geco
  2. from distutils.core import setup
  3. import os
  4.  
  5. datafiles = []
  6.  
  7. for i in os.listdir('glade'):
  8. datafiles.append(('share/gtk-geco/', ['glade/'+i]))
  9.  
  10. datafiles.append(('share/pixmaps', ['geco.png']))
  11. datafiles.append(('share/applications', ['gtkgeco.desktop']))
  12.  
  13. setup(name = 'gtk-geco',
  14. version = '1.0',
  15. description = 'gtk client for geco',
  16. author = 'Daniel Garcia Moreno',
  17. author_email = '<dani@danigm.net>',
  18. url = 'http://bzr.danigm.net/geco',
  19. license = 'GPLv3',
  20. data_files = datafiles,
  21. scripts = ['gtk-geco'],
  22. py_modules = ['gtkgeco'],
  23. packages = ['gecoc']
  24. )

Este otro ejemplo es el instaldor de la aplicación de escritorio gtk-geco. En este caso además de instalar un script y el paquete gecoc se instala un módulo python, que es un simple fichero .py y una serie de datos, que se hace con data_files. Con datafiles se puede instalar cualquier tipo de archivo en cualquier ruta del sistema. Si la ruta es relativa se instala a partir de La ruta /usr (o la que se haya especificado), y si la ruta es absoluta se usa esa. La ruta define un directorio y la lista de ficheros siguiente serán los que se copien a dicha ruta.

Facilitando un poco más la instalación

Tengo el código dividido en dos carpetas dentro de src, gecod y gecoc y dentro de gecoc está gtk-geco y web-geco que son dos clientes diferentes. Para facilitar la instalación he creado un script en bash que se encarga de instalar el módulo que deseemos de manera sencilla:

  1. #!/bin/bash
  2.  
  3. function install_help(){
  4. echo "Ayuda del instalador $(basename $0)"
  5. echo " Con este instalador puedes instalar:"
  6. echo " gecod"
  7. echo " gecoc"
  8. echo " gtk-geco"
  9. echo " web-geco"
  10. echo ""
  11. echo " Usalo pasando como argumento el nombre de lo que quieras instalar"
  12. echo " por ejemplo:"
  13. echo " sudo ./$(basename $0) gecod"
  14. }
  15.  
  16. root=$PWD
  17.  
  18. if [ "$#" -eq 0 ]
  19. then
  20. install_help
  21. exit 0
  22. fi
  23.  
  24. while [ "$#" -gt 0 ]
  25. do
  26. case $1 in
  27. -h | --help)
  28. install_help
  29. shift
  30. ;;
  31. gecod)
  32. cd $root
  33. cd src/gecod/
  34. echo "instalando gecod"
  35. python setup.py install
  36. shift
  37. ;;
  38. gecoc)
  39. cd $root
  40. cd src/gecoc/
  41. echo "instalando gecoc"
  42. python setup.py install
  43. shift
  44. ;;
  45. gtk-geco)
  46. cd $root
  47. cd src/gecoc/gtk-geco
  48. echo "instalando gtk-geco"
  49. python setup.py install
  50. shift
  51. ;;
  52. web-geco)
  53. cd $root
  54. cd src/gecoc/web-geco
  55. echo "instalando web-geco"
  56. python setup.py install
  57. shift
  58. ;;
  59. *)
  60. install_help
  61. shift
  62. ;;
  63. esac
  64. done

Y con este instalador instalar por ejemplo el cliente de escritorio es tan fácil como ejecutar:

$sudo ./install.sh gtk-geco

danigm's picture

Esta semana se han celebrado las "Jornadas sobre conocimiento Libre" en la escuela de informática de la Universidad de Sevilla. Estas jornadas han consistido en dos días, jueves 2 y viernes 3 en los cuales llenos de conferencias sobre conocimiento libre y software libre tratando de exponer todos los puntos de vista posibles para volver a reiterar que el conocimiento nació libre y debería volver a ser libre y sobre todo para aclarar que todo el sistema en el que vivimos de conocimiento privativo y "propiedad intelectual" es algo totalmente inventado.

La importancia de los eventos, charlas y congresos dentro de la universidad

A mí personalmente cada vez me gustan más este tipo de eventos, en los cuales te vuelves a reencontrar con gente conocida, conoces personalmente a gente que sólo conocías de manera virtual, y se comparte conocimiento de manera continua y desinteresada. Yo me he pedido dos días de vacaciones para no perderme nada, ni de la parte organizativa ni tampoco estando como simple asistente.

Para un estudiante centrado en sus estudios este tipo de eventos puede parecerle una perdida de tiempo, sobretodo si tiene alguna entrega de prácticas o quizás un examen, pero en este tipo de eventos se aprende muchísimo más que en cualquier clase, además se hacen amigos que en un futuro te recordarán y te posiblemente te abran el mercado laboral. Así pues, aunque recomiendo siempre asistir a las clases (aunque el profesor sea malo) este tipo de eventos son una gran excepción y considero que no debería haber nada más importante que el tratar de aprender lo máximo posible de de los diferentes ponentes y de toda la gente que se mueve por estos temas.

La mayoría de los ponentes invitados a todos los eventos de esta índole son reconocidos en algún campo y puedes estar seguro de que aprenderás muchísimo tan solo estando al lado de estas personas.

¿Quién monta todo este sarao, quién pone el dinero?

Habrá quien se pregunte de dónde sale el dinero y el esfuerzo necesario para montar este tipo de eventos, y si no te lo has preguntado y no lo sabes, deberías hacerlo.

Hasta donde yo sé y en lo que yo he participado, los organismos que ponen el dinero suelen ser las universidades y organismos universitarios en forma de promoción, infraestructuras y demás. Pero detrás de estos eventos lo de menos es el poco dinero que pueda haber detrás (pago de hoteles para ponentes, viajes, etc), el trabajo realmente duro lo realizan los organizadores y puedo asegurar que no obtienen ningún beneficio económico de este tipo de eventos. La mayoría de los eventos están organizados por asociaciones de estudiantes, profesores universitarios y gente pro-activa en general. Y aunque no lo parezca, aunque no se vea, es un trabajo realmente duro y poco reconocido. Así pues quiero agradecer a toda la gente que hace posible todo este tipo de eventos, tanto las jornadas de conocimiento libre como el mes que viene la fase final del CUSL.

Temática de las Jornadas

El propio nombre dice bastante, estas jornadas se han centrado en el conocimiento y en las formas de distribución del conocimiento, tomando como conocimiento tanto el conocimiento científico como cultural, música, libros, arquitectura, software, etc.

Cabe destacar la gran presentación de Jorge Cortell que nos mostró a todos los presentes de una forma clara que la propiedad intelectual es un invento, que no tiene sentido y que sin embargo está regulada y hay leyes que protegen una cosa que no existe. Por lo tanto es importante pensar en ello y empezar a cuestionarnos esa idea que intentan vendernos, y que mucha gente toma como ley natural de que las ideas tienen un propietario.

Una idea es tuya mientras esté en tú cabeza, una vez que la has comunicado deja de ser tuya para ser de dos o más personas. Tú no pierdes nada, la otra persona gana mucho.

Las ideas, y cuando hablo de ideas hablo de música, pinturas, libros, escritos, etc. no son cuantificables, no se pueden delimitar, no puedes decir esta idea la tengo yo y es mía, si la compartes no puedes obligar a la otra persona a que te devuelva tú idea.

Por supuesto eso no quita que tú sigas siendo el autor de tu idea, eso no se puede quitar por mucho que se comparta o replique una idea. Siempre serás el autor de tus ideas, pero no tienes derecho ninguno para prohibir a otra persona que utilice tu idea.

Hay muchas personas que confunden o quieren confundir cultura con mercado, y la cultura no es un producto, no se puede vender, aunque se hace.

Una vez leí en alguna parte "Cuando oigo a alguien hablar de cultura echo mano a mi cartera". Y esto es así, pero tenemos la oportunidad de cambiarlo con todo esto de internet, y de hecho lo estamos haciendo.

Como conclusión se podría decir que el copyright es un artefacto de monopolio y censura que se inventó a partir de la imprenta y que se ha ido reformando según han ido apareciendo tecnologías nuevas de difusión de cultura, pero no deja de ser un artificio, no deja de intentar poner puertas al campo, porque yo no debería tener la propiedad de ninguna idea desde el mismo momento en el que la comparto con otra persona o simio medio inteligente.

Premios del concurso local de la Universidad de Sevilla del CUSL3

Al final de estas jornadas se han entregado los premios a los proyectos participantes de la Universidad de Sevilla en el CUSL3. Hemos expuesto cuatro proyectos y todos hemos recibido un premio.

Proyecto más educativo: pyrubik
Proyecto más innovador: meshias
Segundo mejor proyecto: unimail
Mejor proyecto: geco

Por parte de la Universidad de Sevilla se inscribieron inicialmente alrededor de 30 proyectos, pero como suele pasar en estos casos al final solo llegan los que realmente tienen un objetivo. Muchas ideas se habrán quedado en el camino y espero que se motiven para futuras ediciones porque es una oportunidad genial para tener una motivación extra a la hora de comenzar o participar en un desarrollo.

Lo más importante del Concurso no es llevarse un premio, sino el camino, lo que se aprende, la gente que conoces, la de errores que cometes durante el desarrollo y de los que aprendes muchísimo, es toda una experiencia que hay que vivir.

Hay que hacer las cosas bien, sino se puede, hay que intentar hacer las cosas bien, si tampoco se puede, hay que hacer las cosas mal, si tampoco pues haces las cosas fatal, pero lo que JAMÁS se debe hacer es no hacer nada, porque en ese momento estas cerrando todos los posibles caminos que llevan al éxito. Es mucho mejor fracasar mil veces que ni siquiera intentarlo, así que valor y al teclado.

Estoy deseando que llegue la fase final del CUSL porque tengo muchísimas ganas de volver a encontrarme con gente que desarrolla porque le gusta, tengo ganas de volver a hablar con gente que sabe muchísimo más que yo para aprender y también con gente que está empezando para poder enseñar. El flujo de conocimiento es el clímax de las relaciones sociales, produce los avances y es lo que nos diferencia como especie de todas las demás. No pongamos barreras al conocimiento, no dejemos morir nuestras ideas.

Hay algo en lo que he pensado en varias ocasiones, y es que a todo el mundo se le ocurren geniales ideas, y ¿a dónde van las ideas que no se cuentan y caen en el olvido? No podemos permitir que ninguna idea se pierda, quizás creas que no tienes tiempo, pero no puedes esperar que el tiempo venga a ti, búscalo y comparte.

Crea, comparte, copia, modifica y distribuye.