PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
SWAD FLISOL 2013
1. 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
acanas@ugr.es
2. 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?
11. 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
15. 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
17. Antonio Cañas Vargas
Servidores en la UGR
2004-2006
Pentium 4 HT
RAM 2 GB
2 HD 160 GB
Fedora 3
2007-2008
Core 2 Duo
RAM 4 GB
2 HD 500 GB
Fedora 6
2009-2010
Core 2 Quad
RAM 4 GB
2 HD 146 GB
2 HD 1 TB
Fedora 10
2011-2013
2 Xeon Quad
RAM 24 GB
4 HD 146 GB
4 HD 500 GB
CentOS 5.7
1999-2003
Servidor
compartido
18. 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
19. 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
20. 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...
21. Antonio Cañas Vargas
Software libre
● Software con licencia copyleft que garantice
derechos de uso, copia, modificación y
redistribución
Free software
centrado
en la libertad
Open source
centrado 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/
23. 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
24. 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/
25. 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
26. Antonio Cañas Vargas
Crear software libre
● Anima a programar mejor
@psicobyte_ explica las bondades del software libre. Foto: A. Cañas
27. 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
28. Antonio Cañas Vargas
Crear software libre
● Da libertad y seguridad a los usuarios
http://www.gnu.org/philosophy/
29. 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.”
Antonio
Cañas
30. 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.”
Antonio
Cañas
31. 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!”
Daniel
Calandria
32. 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.”
Daniel
Calandria
33. 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 Miguel
Boyero
34. 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”
Antonio
Aguilera
35. 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.”
Helena
Rodríguez
36. 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.”
Diego
Montesinos
37. 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
38. 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)
39. 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
40. 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
41. Antonio Cañas Vargas
¿Cuánto trabajo hay detrás?
● iSWAD (D. Montesinos)
● https://github.com/diegort/iSWAD
● Licencia BSD
● 200-350 horas
42. 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
43. 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
45. 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?
46. Antonio Cañas Vargas
Pasos para liberar el núcleo
1. 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%)
47. 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
...
49. 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
50. 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
51. 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)
52. Antonio Cañas Vargas
Muchas gracias
¿Preguntas?
Antonio Cañas Vargas
@acanasvargas
acanas@ugr.es
@swad_ugr @SWADroid @iSWAD @OpenSWAD