SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Implementación
24 de abril de 2013
Antonio Cañas Vargas, acanas@ugr.es
Centro de Enseñanzas Virtuales de la Universidad de Granada
¿Quiénes crean SWAD?
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
13 años de SWAD
Inicios: 1999-2003
1º PID: 2003-2004
2º PID: 2005-2006
3º PID: 2006-2008
CEVUG: 2008...
Libre: 2010...
UNA: 2012...
Servidores
2004-2006
Pentium 4 HT
RAM 2 GB
2 HD 160 GB
2007-2008
Core 2 Duo
RAM 4 GB
2 HD 500 GB
2009-2010
Core 2 Quad
RAM 4 GB
2 HD 146 GB
2 HD 1 TB
2010...
2 Xeon Quad
RAM 24 GB
4 HD 146 GB
4 HD 500 GB
SWAD, software libre
● FLOSS (Free/Libre/Open Source Software)
● Software con licencia copyleft que garantice
derechos de uso, copia, modificación y redistribución
● Free software (libre, ≠
freeware)
● 1983, centrado en la libertad
de los usuarios
● GPL, GFDL
● Open source
● 1998, centrado en el modelo
de desarrollo cooperativo
SWAD, software libre
http://www.youtube.com/watch?v=tAql6_urM4I
SWAD, software libre
21/01/2010
¿Por qué liberarlo?
● Motivos éticos
● Motivos prácticos
● Necesidad de
colaboradores
● Mejora del código
● Difusión
Pasos para liberar SWAD
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%)
Programas
swad A. Cañas
CGI: c; base de datos: mysql
prado (no liberado) A. Cañas
c; base de datos: mysql
fotomaton D. J. Calandria
c++, OpenCV de Intel
foto_mediana/foto_promedio D. J. Calandria
c, OpenCV de Intel
chat D. J. Calandria
servidor: c++; cliente: Applet Java; protocolo IRC
SWADroid (app Android) J. M. Boyero, A. Aguilera, H. Rodríguez
cliente: Java
iSWAD (app iOS) D. Montesinos
cliente: Objective C
CGI+MySQL+XHTML+CSS+Ajax
● 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 a la
salida estándar
Módulo principal: escrito en C
● Aprox. 150 000 líneas de código
● 55 .c; 58 .h; 1 .py; 1 .js; 2 .css
Módulo principal: escrito en C
● 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/
● SOAP: gSOAP
http://www.cs.fsu.edu/~engelen/soap.html
Base de datos
http://swad.ugr.es/database/img/swad_database.jpg
90 tablas
Complementos
● Es posible desarrollar complementos (plugins)
que pueden ejecutarse en otros servidores o en
móviles. Ejemplo: SWADroid
http://swad.ugr.es/ws/
● Los complementos interactúan con el programa
swad a través de un servicio web SOAP con
varias operaciones o funciones descritas en el
WSDL:
http://swad.ugr.es/ws/swad.wsdl
● ¿Implementar también REST?
¿Cómo colaborar?
● Si no quieres/no sabes programar:
● Aspectos legales
● Traducción: http://swad.ugr.es/translation/
● Manuales: http://swad.ugr.es/wiki/
● Diseño gráfico
● Administración de titulaciones
● Difusión
¿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
● Lo más fácil es desarrollar complementos u otros
módulos independientes del programa swad
● Ejemplos:
● Servicios para smartphones (ampliar SWADroid, versión para iOS)
● Pizarra

Más contenido relacionado

Similar a SWAD: implementación

¿Qué es Hardware Abierto? - v2.0
¿Qué es Hardware Abierto? - v2.0¿Qué es Hardware Abierto? - v2.0
¿Qué es Hardware Abierto? - v2.0
Leonardo J. Caballero G.
 
Taller livetrackingandroid
Taller livetrackingandroidTaller livetrackingandroid
Taller livetrackingandroid
santiagohiguera
 

Similar a SWAD: implementación (20)

La plataforma educativa libre OpenSWAD.org
La plataforma educativa libre OpenSWAD.orgLa plataforma educativa libre OpenSWAD.org
La plataforma educativa libre OpenSWAD.org
 
SWADroid VI Hackathon CUSL
SWADroid VI Hackathon CUSLSWADroid VI Hackathon CUSL
SWADroid VI Hackathon CUSL
 
SWAD FLISOL 2013
SWAD FLISOL 2013SWAD FLISOL 2013
SWAD FLISOL 2013
 
Odroid 13-es-201501
Odroid 13-es-201501Odroid 13-es-201501
Odroid 13-es-201501
 
Inside SWAD (el interior de SWAD)
Inside SWAD (el interior de SWAD)Inside SWAD (el interior de SWAD)
Inside SWAD (el interior de SWAD)
 
Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013
 
Python vs Java (NotBarraLibreCamp)
Python vs Java (NotBarraLibreCamp)Python vs Java (NotBarraLibreCamp)
Python vs Java (NotBarraLibreCamp)
 
Presentación Proyecto Fin de Carrera SWADroid
Presentación Proyecto Fin de Carrera SWADroidPresentación Proyecto Fin de Carrera SWADroid
Presentación Proyecto Fin de Carrera SWADroid
 
Estándares Web y Accesibilidad en Colombia
Estándares Web y Accesibilidad en ColombiaEstándares Web y Accesibilidad en Colombia
Estándares Web y Accesibilidad en Colombia
 
¿Qué es Hardware Abierto? - v2.0
¿Qué es Hardware Abierto? - v2.0¿Qué es Hardware Abierto? - v2.0
¿Qué es Hardware Abierto? - v2.0
 
Android
AndroidAndroid
Android
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
inicios en java
inicios en java inicios en java
inicios en java
 
Introducción a android
Introducción a androidIntroducción a android
Introducción a android
 
Seminario UX
Seminario UXSeminario UX
Seminario UX
 
Mapeando peru: Presentación Suite gvSIG
Mapeando peru: Presentación Suite gvSIGMapeando peru: Presentación Suite gvSIG
Mapeando peru: Presentación Suite gvSIG
 
Presentacion Arduino PDF
Presentacion Arduino PDFPresentacion Arduino PDF
Presentacion Arduino PDF
 
Arduino PDF
Arduino PDFArduino PDF
Arduino PDF
 
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
 
Taller livetrackingandroid
Taller livetrackingandroidTaller livetrackingandroid
Taller livetrackingandroid
 

Último

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Último (20)

Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 

SWAD: implementación

  • 1. Implementación 24 de abril de 2013 Antonio Cañas Vargas, acanas@ugr.es Centro de Enseñanzas Virtuales de la Universidad de Granada
  • 2. ¿Quiénes crean SWAD? 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
  • 3. 13 años de SWAD Inicios: 1999-2003 1º PID: 2003-2004 2º PID: 2005-2006 3º PID: 2006-2008 CEVUG: 2008... Libre: 2010... UNA: 2012...
  • 4. Servidores 2004-2006 Pentium 4 HT RAM 2 GB 2 HD 160 GB 2007-2008 Core 2 Duo RAM 4 GB 2 HD 500 GB 2009-2010 Core 2 Quad RAM 4 GB 2 HD 146 GB 2 HD 1 TB 2010... 2 Xeon Quad RAM 24 GB 4 HD 146 GB 4 HD 500 GB
  • 5. SWAD, software libre ● FLOSS (Free/Libre/Open Source Software) ● Software con licencia copyleft que garantice derechos de uso, copia, modificación y redistribución ● Free software (libre, ≠ freeware) ● 1983, centrado en la libertad de los usuarios ● GPL, GFDL ● Open source ● 1998, centrado en el modelo de desarrollo cooperativo
  • 8. ¿Por qué liberarlo? ● Motivos éticos ● Motivos prácticos ● Necesidad de colaboradores ● Mejora del código ● Difusión
  • 9. Pasos para liberar SWAD 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%)
  • 10. Programas swad A. Cañas CGI: c; base de datos: mysql prado (no liberado) A. Cañas c; base de datos: mysql fotomaton D. J. Calandria c++, OpenCV de Intel foto_mediana/foto_promedio D. J. Calandria c, OpenCV de Intel chat D. J. Calandria servidor: c++; cliente: Applet Java; protocolo IRC SWADroid (app Android) J. M. Boyero, A. Aguilera, H. Rodríguez cliente: Java iSWAD (app iOS) D. Montesinos cliente: Objective C
  • 11. CGI+MySQL+XHTML+CSS+Ajax ● 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 a la salida estándar
  • 12. Módulo principal: escrito en C ● Aprox. 150 000 líneas de código ● 55 .c; 58 .h; 1 .py; 1 .js; 2 .css
  • 13. Módulo principal: escrito en C ● 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/ ● SOAP: gSOAP http://www.cs.fsu.edu/~engelen/soap.html
  • 15. Complementos ● Es posible desarrollar complementos (plugins) que pueden ejecutarse en otros servidores o en móviles. Ejemplo: SWADroid http://swad.ugr.es/ws/ ● Los complementos interactúan con el programa swad a través de un servicio web SOAP con varias operaciones o funciones descritas en el WSDL: http://swad.ugr.es/ws/swad.wsdl ● ¿Implementar también REST?
  • 16. ¿Cómo colaborar? ● Si no quieres/no sabes programar: ● Aspectos legales ● Traducción: http://swad.ugr.es/translation/ ● Manuales: http://swad.ugr.es/wiki/ ● Diseño gráfico ● Administración de titulaciones ● Difusión
  • 17. ¿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 ● Lo más fácil es desarrollar complementos u otros módulos independientes del programa swad ● Ejemplos: ● Servicios para smartphones (ampliar SWADroid, versión para iOS) ● Pizarra