52
Antonio Cañas Vargas Experiencias con software libre: plataforma SWAD y su proceso de liberación 27 de abril de 2013 Antonio Cañas Vargas @acanasvargas [email protected]

SWAD FLISOL 2013

Embed Size (px)

DESCRIPTION

La experiencia de liberación de la plataforma SWAD

Citation preview

Page 1: SWAD FLISOL 2013

Antonio Cañas Vargas

Experiencias con software libre: plataforma SWAD y su proceso

de liberación27 de abril de 2013

Antonio Cañas Vargas@[email protected]

Page 2: SWAD FLISOL 2013

Antonio Cañas Vargas

Sistema Web de Apoyo a la Docencia

http://swad.es/

Es una plataforma web para gestionar asignaturas, estudiantes y profesores, y realizar funciones de apoyo a la docencia y al aprendizaje.

¿Qué es SWAD?

Page 3: SWAD FLISOL 2013

Antonio Cañas Vargas

https://swad.ugr.es/

Page 4: SWAD FLISOL 2013

Antonio Cañas Vargas

Cifras en la UGR (abril 2013)● 4 129 asignaturas● 84 010 estudiantes● 2 881 profesores● 743 GiB en 488 866 archivos● 1 336 034 mensajes enviados● 13 310 431 copias de mensajes recibidas● 1099 foros con 58 578 mensajes● 200 000 páginas generadas al día

Page 5: SWAD FLISOL 2013

Antonio Cañas Vargas

Crecimiento en la UGR

5243 asignaturas4129 con alumnos

Page 6: SWAD FLISOL 2013

Antonio Cañas Vargas

Crecimiento en la UGR2881 profesores

75%

Page 7: SWAD FLISOL 2013

Antonio Cañas Vargas

Crecimiento en la UGR84010 estudiantes

100%

Page 8: SWAD FLISOL 2013

Antonio Cañas Vargas

Crecimiento en la UGR

Page 9: SWAD FLISOL 2013

Antonio Cañas Vargas

Accesos en la UGR

Estudiantes eligiendo grupos

Páginas por minuto

Page 10: SWAD FLISOL 2013

Antonio Cañas Vargas

Accesos en la UGR

Partidos del Mundial 2010

Page 11: SWAD FLISOL 2013

Antonio Cañas Vargas

Claves del éxito en la UGR● Abierta y gratuita● Formación a profesores● Atención al usuario● Masa crítica● Fortalezas del programa

Page 12: SWAD FLISOL 2013

Antonio Cañas Vargas

Abierta y gratuita● Ofrecida desde 2004 para toda la UGR

Page 13: SWAD FLISOL 2013

Antonio Cañas Vargas

Formación a profesores● Talleres por los centros en los primeros años

Page 14: SWAD FLISOL 2013

Antonio Cañas Vargas

Atención al usuario● Miles de consultas atendidas

Aunque no todos están tan contentos

Page 15: SWAD FLISOL 2013

Antonio Cañas Vargas

Fortalezas del programa● Funcionalidad y usabilidad

● Sencillo, tiene lo que necesita la mayoría de profesores

● Fiabilidad y seguridad● Funciona las 24 horas, rápido y sin fallos

● Consume pocos recursos● Núcleo programado en C● 1 servidor → decenas de miles de usuarios

Page 16: SWAD FLISOL 2013

Antonio Cañas Vargas

Page 17: SWAD FLISOL 2013

Antonio Cañas Vargas

Servidores en la UGR

2004-2006Pentium 4 HT

RAM 2 GB2 HD 160 GB

Fedora 3

2007-2008Core 2 DuoRAM 4 GB

2 HD 500 GBFedora 6

2009-2010Core 2 QuadRAM 4 GB

2 HD 146 GB2 HD 1 TBFedora 10

2011-20132 Xeon QuadRAM 24 GB

4 HD 146 GB4 HD 500 GBCentOS 5.7

1999-2003Servidor

compartido

Page 18: SWAD FLISOL 2013

Antonio Cañas Vargas

Aún poco éxito fuera de la UGR● Mínima difusión● Ausencia de instalación sencilla● ¿Tarde frente a la competencia?

● Faltan funcionalidades de otros LMS● Liberada en 2010, aún sin forja● Programadores acostumbrados a PHP● Demasiado trabajo para pocas personas

Page 19: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Quiénes lo hemos desarrollado?

Antonio Manuel Aguilera Malagón (SWADroid)

Daniel J. Calandria Hernández (fotos, chat)

Antonio Cañas Vargas (desarrollo, coordinación, admin.)Juan Miguel Boyero Corral (SWADroid)

Adrián Gómez Anaya (WikiSwad)

Diego Montesinos Hervás (iSWAD)

Francisco A. Ocaña Lara (F.A.Q.)Helena Rodríguez Gijón (SWADroid)

...y una larga lista de colaboradores, a los que estamos muy agradecidos

Page 20: SWAD FLISOL 2013

Antonio Cañas Vargas

Un programa con 13 años

Inicios: 1999-2003

1º PID: 2003-2004

2º PID: 2005-2006

3º PID: 2006-2008

CEVUG: 2008...

PRADO: 2009...

Libre: 2010...

UNA: 2012...

Page 21: SWAD FLISOL 2013

Antonio Cañas Vargas

Software libre● Software con licencia copyleft que garantice derechos de uso, copia, modificación y redistribución

Free softwarecentrado

en la libertad

Open sourcecentrado en el modelo

de desarrollo cooperativo

cc by Beatrice Murch http://commons.wikimedia.org/wiki/User:Blmurch

cc by Brian Solis, http://www.briansolis.com/

Page 22: SWAD FLISOL 2013

Antonio Cañas Vargas

Liberación de SWAD

21/01/2010

Page 23: SWAD FLISOL 2013

Antonio Cañas Vargas

Programas liberados● swad A. Cañas

CGI: c; base de datos: mysql

● fotomaton D. J. Calandria

c++, OpenCV de Intel

● foto_mediana/foto_promedio D. J. Calandria

c++, OpenCV de Intel

● swad-ircd (servidor de chat) D. J. Calandria

c++; protocolo IRC

● SWADroid (app Android) J. M. Boyero, A. Aguilera, H. Rodríguez

Java

● iSWAD (app iOS) D. Montesinos

Objective C

Page 24: SWAD FLISOL 2013

Antonio Cañas Vargas

Programar usando software libre● Permite (legalmente) usar software libre de

terceros e incluir código libre escrito por otros

MySQL, OpenCV, SHA, gSOAP, iconos Nuvola, iconos Awesome Font...

● Hay acceso gratuito a buenos manuales

http://dev.mysql.com/doc/refman/5.0/es/

● Y muchísima ayuda de otros programadores

http://stackoverflow.com/

Page 25: SWAD FLISOL 2013

Antonio Cañas Vargas

Crear software libre● Facilita aprendizaje y desarrollo colaborativos

Cuarto Hackathon de proyectos de software libre de la UGR, 13-16/04/2012. Foto: A. Cañas

Page 26: SWAD FLISOL 2013

Antonio Cañas Vargas

Crear software libre● Anima a programar mejor

@psicobyte_ explica las bondades del software libre. Foto: A. Cañas

Page 27: SWAD FLISOL 2013

Antonio Cañas Vargas

Crear software libre● Mejora el código: muchos ojos ven más que dos

Hackathon de SWADroid y SWAD, 25/03/2013. Foto: A. Cañas

Page 28: SWAD FLISOL 2013

Antonio Cañas Vargas

Crear software libre● Da libertad y seguridad a los usuarios

http://www.gnu.org/philosophy/

Page 29: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Con 20 años no veía muy claro que un informático pudiera contribuir al bien de la humanidad. Cuando descubrí el software libre y sobre todo cuando escuché por primera vez a Richard Stallman encontré la oportunidad para un programador de colaborar en la utopía de un mundo mejor.”

AntonioCañas

Page 30: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“También me animó a liberar SWAD la decepción de ver cómo decenas de miles de líneas de código escritas como parte de mi tesis quedaron en el olvido el día que la leí. No quiero repetir la experiencia de dejar tanto trabajo creado con cariño abandonado en un cajón. Todo padre está orgulloso de sus hijos y quiere verlos crecer libres.”

AntonioCañas

Page 31: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Yo siempre me he sentido en deuda con todos los programadores que de forma altruista han ayudado a mi aprendizaje liberando código de sus proyectos. Yo le debo todo lo que sé de visión artificial a esa gente. ¡Qué menos que yo también haga lo mismo, para que otros puedan seguir aprendiendo!”

DanielCalandria

Page 32: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Otra razón son los principios que me han inculcado mis padres al educarme: me han hecho ver desde muy pequeño que la sociedad se tiene que fundamentar sobre el cooperativismo. Puede que por ello vea el compartir el código como algo totalmente natural, sin plantearme buscar nada a cambio.”

DanielCalandria

Page 33: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Para devolver al software libre una parte de lo recibido.”

“Para facilitar el desarrollo de otros proyectos permitiéndoles consultar y reutilizar el código.”

“Para evitar que el proyecto muera por falta de tiempo.”

“¿Y por qué no?”

Juan MiguelBoyero

Page 34: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Mi trabajo ha sido añadir nuevas funcionalidades a una herramienta que ya era libre, y utilizando otro software que también es libre (ZXing), por lo que mis razones son:

que mi trabajo se ha basado en código libre ya existente

que otros puedan reutilizar mi código”

AntonioAguilera

Page 35: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Porque unos de los pilares del software libre es la cooperación y difusión del conocimiento. SWADroid, que nació dentro de la Universidad pública, debía seguir esta política.”

HelenaRodríguez

Page 36: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“Siempre que he podido he colaborado con la comunidad, ya sea realizando sugerencias o aportando mi granito de arena.”

“Otra razón es que el proyecto pueda ser continuado y mejorado, ya que seguro hay muchas cosas que se pueden hacer mejor.”

DiegoMontesinos

Page 37: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué he liberado mi código?“En tercer lugar, para devolver una mínima parte de todo lo que yo he recibido desde que empecé con la informática. Han sido muchos lo apuros y enredos de los que he salido gracias a código compartido por otros.”Diego

Montesinos

Page 38: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Cuánto trabajo hay detrás?● Núcleo de SWAD (A. Cañas)

● http://swad.ugr.es/source/● 150.434 líneas (3000 páginas)

(Moodle core >1M líneas, 370 contribuidores,

http://www.ohloh.net/p/moodle)● 8000-16000 horas

(teoría de las 10000 horas,

“Outliers. The story of success”, Malcolm Gladwell,

http://en.wikipedia.org/wiki/Outliers_%28book%29)

Page 39: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Cuánto trabajo hay detrás?● Procesamiento de fotos (D. Calandria)

● https://github.com/dcalandria/swad-fotomaton● https://github.com/dcalandria/foto_promedio● 2980 líneas● 1500 horas (muchas de ellas de estudio)

● Servidor de chat (D. Calandria)● https://github.com/dcalandria/swad-ircd● 2976 líneas● 100-200 horas

Page 40: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Cuánto trabajo hay detrás?● SWADroid

● https://github.com/Amab/SWADroid● Liberado antes de la primera línea● 68.620 líneas, 10 contribuidores

http://www.ohloh.net/p/swadroid● J. M. Boyero: 1200-1500 horas● A. Aguilera: 550-800 horas● H. Rodríguez: 500-750 horas

Page 41: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Cuánto trabajo hay detrás?● iSWAD (D. Montesinos)

● https://github.com/diegort/iSWAD● Licencia BSD● 200-350 horas

Page 42: SWAD FLISOL 2013

Antonio Cañas Vargas

Más sobre el núcleo● Escrito en C

● Ventaja: rapidez● Inconveniente: ausencia de funciones de biblioteca

especializadas en web

● Programado desde cero, excepto:● Base de datos: MySQL C API

http://dev.mysql.com/doc/refman/5.0/en/c-api.html● Cifrado: SHA-256 y SHA-512

http://www.ouah.org/ogay/sha2/● Servicio web SOAP: gSOAP

http://www.cs.fsu.edu/~engelen/soap.html

Page 43: SWAD FLISOL 2013

Antonio Cañas Vargas

Más sobre el núcleo● Cada vez que un usuario pulsa en alguna opción, Apache llama a ejecutar el programa compilado swad● Hasta 2000 veces por minuto (30 por segundo)● Normalmente 350 veces por minuto (6 por segundo)

● El programa swad consulta la BD, genera todo el código XHTML de la página, y lo envía

Page 44: SWAD FLISOL 2013

Antonio Cañas Vargas

Base de datos

http://swad.ugr.es/database/img/swad_database.jpg

91 tablas

Page 45: SWAD FLISOL 2013

Antonio Cañas Vargas

Complementos● Es posible desarrollar complementos (plugins) que pueden ejecutarse en otros servidores o en móviles. Ejemplo: SWADroid

● Los complementos interactúan con el programa swad a través de un servicio web SOAP con varias operaciones o funciones descritas en http://swad.ugr.es/ws/

● ¿Implementar REST?

Page 46: SWAD FLISOL 2013

Antonio Cañas Vargas

Pasos para liberar el núcleo1. Escribir el código en inglés (100%)

2. Independizarlo de la UGR (100%)

3. Traducir los mensajes a 9 idiomas (70%)

4. Añadir cabeceras AGPL a los archivos (100%)

5. Publicar el código fuente (100%)http://swad.ugr.es/source/

6. Publicar procedimiento de instalación (100%)

7. Usar sistema de control de versiones git (0%)

8. Subir a la forja GitHub (0%)

9. Automatizar instalación (0%)

Page 47: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Por qué no aún en GitHub?● Tareas pendientes:

● Dedicar más tiempo a mi familia y mi casa● Hacer más deporte● Mejorar mi inglés● Aprender git y subir SWAD a GitHub

...

Page 48: SWAD FLISOL 2013

Antonio Cañas Vargas

Aunque no tengamos forja, ya tenemos forks ;-)

Page 49: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Cómo colaborar?● Si no quieres o no sabes programar:

● Aspectos legales● Traducción: http://swad.ugr.es/translation/● Manuales: http://swad.ugr.es/wiki/● Videotutoriales● Diseño gráfico● Administración de titulaciones● Difusión

Page 50: SWAD FLISOL 2013

Antonio Cañas Vargas

¿Cómo colaborar?● Si quieres programar:

● Hay multitud de mejoras posibles:http://swad.ugr.es/roadmap/● Ejemplos:

● Editor de texto con formato, enlaces, imágenes, fórmulas...● Maquetación con CSS● Mejorar fotomaton

● Lo más fácil es desarrollar complementos u otros módulos independientes del programa swad● Ejemplos:

● Ampliar SWADroid o iSWAD● Pizarra

Page 51: SWAD FLISOL 2013

Antonio Cañas Vargas

El proyecto OpenSWAD.org● SWAD en la nube● Para todo el mundo, gratuito (al menos mientras crece)

● Ya está funcionando en http://openswad.org/, pero...● Legislación sobre protección de datos, ¿quién responde?● ¿Crear empresa, asociación, ONG?● Necesito socios o colaboradores (sobre todo expertos en

Derecho)

Page 52: SWAD FLISOL 2013

Antonio Cañas Vargas

Muchas gracias¿Preguntas?

Antonio Cañas Vargas@[email protected]

@swad_ugr @SWADroid @iSWAD @OpenSWAD