gTurnos is a block for Moodle, which manages the delivery of turns. It considers necessities of teachers and students.
The idea was born by the necessity of computerizing the delivery of turns process for in-class exams at my university. Until now, this process was managed using a list (piece of paper posted in the door) in which the students had to sign up manually. This old process was obviously uncomfortable, and the resulting list was not compact and frequently unbalanced.
gTurnos allows to perform this process by Internet, and always provides compact lists where, as in queue, those users that register first have higher priority.
Como ser mas productivo en el desarrollo de aplicacionesMicael Gallego
Charla impartida en la Universidad Politécnica de Madrid presentando algunas técnicas y herramientas para ser más productivo en el desarrollo de aplicaciones
Slides para la charla sobre Action-Domain-Responder del VLCTechFest 2018.
Action-Domain-Responder (ADR) es un patrón de arquitectura propuesto por Paul M. Jones pensado para sustituir MVC en el desarrollo backend.
Analizaremos MVC a fondo y veremos por qué no es un buen patrón para aplicaciones web y cómo ADR está pensado para suplir todas sus carencias.
Como ser mas productivo en el desarrollo de aplicacionesMicael Gallego
Charla impartida en la Universidad Politécnica de Madrid presentando algunas técnicas y herramientas para ser más productivo en el desarrollo de aplicaciones
Slides para la charla sobre Action-Domain-Responder del VLCTechFest 2018.
Action-Domain-Responder (ADR) es un patrón de arquitectura propuesto por Paul M. Jones pensado para sustituir MVC en el desarrollo backend.
Analizaremos MVC a fondo y veremos por qué no es un buen patrón para aplicaciones web y cómo ADR está pensado para suplir todas sus carencias.
La experiencia de la Red, surge en el 2010 como una respuesta a la necesidad de contar con un sistema organizacional y descentralizado para encaminarlo como una estrategia de gestión pedagógica e institucional.
Publicación de recursos en un aula virtual con MoodleVíctor Barbero
Presentación sobre procedimientos básicos de publicación de recursos y contenidos en un aula virtual basada en Moodle, tratando páginas web, etiquetas y cómo utilizar códigos de incrustación.
Se está planteando el desarrollo del presente proyecto de innovación con la finalidad de incluir a los estudiantes y docentes en el trabajo colaborativo haciendo uso de la plataforma Moodle como herramienta para el aprendizaje colaborativo, donde ambos actores directamente involucrados en el proceso de E—A sean beneficiarios con el uso de estrategias digitales para mejorar sus aprendizajes.
Link de YouTube sobre el Proyecto:
https://youtu.be/lZ-EUedBz2w
Link del Proyecto:
https://github.com/jeffer111/Agenda_Estudiantil
Link Informe Escrito:
https://es.scribd.com/document/331243804/Informe-Agenda-Estudiantil
La experiencia de la Red, surge en el 2010 como una respuesta a la necesidad de contar con un sistema organizacional y descentralizado para encaminarlo como una estrategia de gestión pedagógica e institucional.
Publicación de recursos en un aula virtual con MoodleVíctor Barbero
Presentación sobre procedimientos básicos de publicación de recursos y contenidos en un aula virtual basada en Moodle, tratando páginas web, etiquetas y cómo utilizar códigos de incrustación.
Se está planteando el desarrollo del presente proyecto de innovación con la finalidad de incluir a los estudiantes y docentes en el trabajo colaborativo haciendo uso de la plataforma Moodle como herramienta para el aprendizaje colaborativo, donde ambos actores directamente involucrados en el proceso de E—A sean beneficiarios con el uso de estrategias digitales para mejorar sus aprendizajes.
Link de YouTube sobre el Proyecto:
https://youtu.be/lZ-EUedBz2w
Link del Proyecto:
https://github.com/jeffer111/Agenda_Estudiantil
Link Informe Escrito:
https://es.scribd.com/document/331243804/Informe-Agenda-Estudiantil
A partir de este paso y en adelante el equipo de desarrollo software trabaja para tirar adelante el proyecto. El equipo se reúne con varios depositarios de dominio del problema, e intentan conseguir la máxima cantidad de información posible sobre lo que requieren. Los requisitos se contemplan y agrupan en requisitos del usuario, requisitos funcionales y requisitos del sistema. La recolección de todos los requisitos se lleva a cabo como se especifica a continuación
Estudio de viabilidad
Después de la recolección de requisitos, el equipo idea un plan para procesar el software. En esta fase, el equipo analiza si el software puede hacerse para cubrir todos los requisitos del usuario y si hay alguna posibilidad de que el software ya no sea necesario.
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...David Rozas
Slides from presentation "When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Commons Governance”. Symposium “Mereologies” at Bartlett School of Architecture. University College London (London, 25/04/2019)
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...David Rozas
Slides from presentation "When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Commons Governance” at Surrey Code seminar, Surrey Business School, University of Surrey, Guildford (UK) – 20.03.2019.
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...David Rozas
Slides from presentation "Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de blockchain para la gobernanza procomunal” at GRASIA seminar, Universidad Complutense, Madrid (Spain) – 28.01.2019.
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...David Rozas
Presentation at "Validation rules for blockchain research: International workshop on scholarly blockchain research priorities" - Institute for Information Law, University of Amsterdam (Amsterdam, 04/12/2018).
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...David Rozas
Sildes from presentation at "Science, politics, activism and citizenship". Redes CTS & Catalan Society for the History of Science and Technology (Valencia, 31/05/2018).
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...David Rozas
Slides from presentation "Self-organisation in Commons-Based Peer Production. Drupal: “the drop is always moving” at GRASIA seminar, Universidad Complutense, Madrid (Spain) – 14.02.2018.
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...David Rozas
Slides from presentation "Self-organisation in Commons-Based Peer Production. Drupal: “the drop is always moving” at PhD seminar, Guildford (UK) – 22.11.2017.
More information: https://davidrozas.cc/phd
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...David Rozas
En esta charla se presentarán de manera resumida los hallazgos de un proyecto de investigación centrado en el estudio de los cambios organizativos de comunidades procomún. El caso de estudio es la comunidad de software libre Drupal: un proyecto de gestión de contenidos liberado en 2001 y que actualmente cuenta con más de un millón de personas registradas en la plataforma principal de colaboración. Como resultado de su crecimiento la comunidad de Drupal afrontó, y continúa afrontando, una necesidad constante de escalar su procesos autoorganizativos y de toma de decisiones. Dichos hallazgos se estructuran en tres ejes:
- Estudio de la noción de contribución en comunidades de procomún. Tipologías de contribución y necesidad de enfoques constructivistas.
- Emergencia de dinámicas globales de formalización y descentralización en la toma de decisiones e interconexión entre las mismas.
- Emergencia de gobernanza policéntrica y de sistemas socio-técnicos de contribución con diferentes grados de organicidad afectando sus principales entidades organizativas (e.g. división del trabajo, reglas o herramientas colaborativas).
Drupal: "come for the software, stay for the community". Conociendo la comunidadDavid Rozas
Transparencias de la charla "Drupal: come for the software, stay for the community. Conociendo la comunidad" para la asignatura 'Software Corporativo' en la Universidad Complutense de Madrid (davidrozas.cc/presentations/drupal-come-software-stay-community-conociendo-la-comunidad) el 13 de diciembre de 2016.
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...David Rozas
Slides from presentation "Talk is silver, code is gold? Contribution beyond source code in Free/Libre Open Source Software communities" at European Sociological Association PhD Summer School, Lisbon – 21.06.2016
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...David Rozas
Slides from presentation "Talk is silver, code is gold? Contribution beyond source code in Free/Libre Open Source Software communities" at Sociology PGR Day Conference (Guildford, 27/04/2016).
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...David Rozas
Slides from presentation "Talk is silver, code is gold? Contribution beyond source code in Free/Libre Open Source Software communities" at Surrey PGR Conference - http://www.surrey.ac.uk/pgrconference/downloads/2016_pgr_conference_programme.pdf#page=36 (Guildford, 13/04/2016).
Lightning talk - Affective labour and the notion of contribution in FLOSS com...David Rozas
Slides for lightning talk: Affective labour and the notion
of contribution in FLOSS communities: beyond
source code. Commons Collaborative Economies
11-13 March Barcelona - http://procomuns.net/en/
Directori català de l’economia col·laborativaDavid Rozas
Slides from the presentation "Directori català de l’economia col·laborativa - el caso de directory.p2pvalue.eu" at Commons
Collaborative Economies (Barcelona, 11-13.03.2016) - http://procomuns.net/session/directori-catala-de-leconomia-col%C2%B7laborativa/
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialAMADO SALVADOR
Explora el catálogo completo de cajas fuertes BTV, disponible a través de Amado Salvador, distribuidor oficial de BTV. Este catálogo presenta una amplia variedad de cajas fuertes, cada una diseñada con la más alta calidad para ofrecer la máxima seguridad y satisfacer las diversas necesidades de protección de nuestros clientes.
En Amado Salvador, como distribuidor oficial de BTV, ofrecemos productos que destacan por su innovación, durabilidad y robustez. Las cajas fuertes BTV son reconocidas por su eficiencia en la protección contra robos, incendios y otros riesgos, lo que las convierte en una opción ideal tanto para uso doméstico como comercial.
Amado Salvador, distribuidor oficial BTV, asegura que cada producto cumpla con los más estrictos estándares de calidad y seguridad. Al adquirir una caja fuerte a través de Amado Salvador, distribuidor oficial BTV, los clientes pueden tener la tranquilidad de que están obteniendo una solución confiable y duradera para la protección de sus pertenencias.
Este catálogo incluye detalles técnicos, características y opciones de personalización de cada modelo de caja fuerte BTV. Desde cajas fuertes empotrables hasta modelos de alta seguridad, Amado Salvador, como distribuidor oficial de BTV, tiene la solución perfecta para cualquier necesidad de seguridad. No pierdas la oportunidad de conocer todos los beneficios y características de las cajas fuertes BTV y protege lo que más valoras con la calidad y seguridad que solo BTV y Amado Salvador, distribuidor oficial BTV, pueden ofrecerte.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
1. Proyecto de Fin de Carrera
Autor: David Rozas Domingo
Tutor: José Centeno González
2. Índice:
➔
El problema del reparto de turnos.
➔
¿Por qué Moodle?.
➔
Objetivos.
➔
Algoritmo de reparto de turnos.
➔
Diseño de la aplicación y ejemplo de uso.
➔
Pruebas y estudio del uso de la aplicación en la universidad.
➔
Recursos.
➔
Conclusiones.
2
3. El problema del reparto de turnos
➔
Proceso anterior: colocar una hoja en la puerta de
los laboratorios, y apuntarse manualmente.
➔
Este proceso es:
➔
Incómodo.
➔
Crea listas no compactas y frecuentemente
descompensadas.
➔
Por tanto, se requiere una informatización del
problema.
3
4. ¿Por qué Moodle?
➔
Moodle es un sistema de aprendizaje colaborativo:
➔
Libre.
➔
Comunidad de usuarios y desarrolladores en vertiginoso crecimiento.
➔
Usado en los laboratorios del GSyC.
➔
Por tanto, aunque inicialmente requiere mayor esfuerzo de aprendizaje,
nos ofrece:
➔
Core API muy robusto, con funciones muy testeadas.
➔
Posibilidad de que la aplicación pueda usarse más allá de los laboratorios
de la universidad.
4
5. Objetivos
➔
Los objetivos a cubrir por este PFC son:
➔
Diseñar e implementar una herramienta que gestione automáticamente
el reparto de turnos.
➔
Integrar dicha herramienta en la plataforma Moodle.
➔
Analizar su implantación en los laboratorios:
➔
Diseñar sistema de seguridad del gestor de turnos.
➔
Buscar y analizar métodos de autenticación seguros.
➔
Difusión de la aplicación a la comunidad de software libre:
➔
Internacionalización.
➔
Creación de manuales de uso.
➔
Publicación en el portal Moodle.
➔
...
5
6. Algoritmo de reparto de turnos
➔
Algoritmo que tenga en cuenta tanto las necesidades del profesor como las
del alumno.
➔
Idea:
➔
Se pueden definir N bloques de tiempo.
➔
Los alumnos se inscriben en dichos bloques con preferencia: lo antes
posible, o lo más tarde posible.
➔
Se reordena dinámicamente para cada bloque:
➔
En una sublista P, insertamos todos los que eligieron lo antes posible,
respetando su prioridad al insertar por el final.
➔
En una sublista T, insertamos todos los que eligieron lo más tarde
posible, respetando su prioridad al insertar por el principio.
➔
Fusión de ambas sublistas.
6
7. Algoritmo de reparto de turnos
Array de entrada, ordenado por orden de registro, pero no por preferencias
Creación de dos sublistas ordenadas por preferencias, respetando orden de llegada
Fusión de sublistas, lista ordenada final
7
8. Diseño e implementación
➔
El lenguaje utilizado en Moodle es PHP: interpretado y multiplataforma.
➔
El SGBD es MySQL, el más usado dentro de Moodle.
➔
El diseño se realizó de forma modular, escalando a través de varios
prototipos.
➔
Esquema general de la aplicación:
8
9. Diseño e implementación:
➔
Algunos de estos ficheros son:
➔
block_gturnos.php: clase que hereda de la clase block_list.php del API,
para generar los menús.
Menú de alumno
Menú de profesor
➔
lib.php: librería general de la aplicación, con algunas de las funciones más
importantes como ordenar_lista(), calcular_plazas(), etc.
9
10. Diseño e implementación
➔
vista_previa.php: genera una vista previa de la lista de entrega, sólo
visible por el profesor.
➔
registro_alumno.php: muestra un formulario con los turnos disponibles
para que se registre el alumno.
Formulario de registro de alumno
Vista previa de lista de entrega
10
11. Diseño e implementación
➔
En lo referente a la seguridad de la aplicación, se han utilizado varias
funciones del API de Moodle para evitar el acceso a funciones que no
corresponden a su rol, ataques de inyección SQL, ataques XSS, etc.
➔
El sistema de seguridad es el siguiente:
➔
Si la recogida y el filtrado de parámetros es correcto.
➔
Si tiene los permisos necesarios en este curso.
➔
Si es correcto su rol, y su identificador de sesión concuerda.
➔
Ejecutar acciones.
➔
Si no, redirección manual.
➔
Si no, redirección automática.
➔
Si no, mostrar error.
➔
Dichas medidas se han aplicado a todos los ficheros en los que se requiere
intervención del usuario: visualización, recogida, confirmación y envío de la
información a la base de datos.
11
12. Diseño e implementación
➔
El proceso de instalación y desinstalación es muy sencillo, como el de
cualquier otro bloque Moodle.
➔
Para la instalación, se creó un script SQL que genera las tablas necesarias
en la base de datos al instalarse.
➔
Para el proceso de desinstalación y el borrado de instancias de gTurnos, se
sobreescribieron los métodos de la clase para que ejecuten las sentencias
SQL necesarias al borrar.
Proceso de instalación y desinstalación de gTurnos, a través del panel de administración general de Moodle
12
13. Diseño e implementación
➔
En cuanto a la internacionalización de la aplicación, gTurnos se puede usar
en castellano e inglés.
➔
Igualmente se han traducido el manual de uso y el sitio web.
➔
De esta forma, intentamos que gTurnos se pueda usar más allá de los
laboratorios de la universidad.
Menú de configuración de bloques de turnos del profesor, en ambos idiomas
13
14. Pruebas con diferentes versiones
➔
La aplicación se desarrolló bajo Moodle 1.6.2.
➔
Se ha probado con éxito bajo Moodle 1.6.3 y 1.7 (últimas versiones
a día de hoy).
➔
En Moodle 1.7 aparecen nuevos roles: course_creator (acceso a
modo edición) y non_editing_teacher (rol de profesor, sin modo
edición).
➔
Se realizó un estudio, y gTurnos se adapta correctamente:
➔
Bajo los roles anteriores, cumple la misma función.
➔
Respecto a non_editing_teacher: puede configurarlo y visualizar
la información, pero no puede instanciarlo.
➔
course_creator: puede instanciarlo, pero no visualizarlo ni
configurarlo.
14
15. Pruebas con diferentes versiones
➔
En cuanto al SGBD, no hay ningún problema.
➔
Sí lo hay respecto a PHP:
➔
Versiones anteriores a la 5 no incluyen modificadores de control de acceso
de los atributos.
➔
Por ello, se desarrolló otra versión para versiones de PHP inferiores a la 5.
➔
También se ha probado con éxito en otros sistemas operativos distintos al
que se desarrolló, como Windows XP.
Lanzamiento de versiones diferentes en sourceforge.net gTurnos bajo Windows XP 15
16. Pruebas y estudio de la aplicación
en la universidad
➔
gTurnos requiere autenticación del usuario.
➔
Queremos que Moodle utilice las cuentas de los laboratorios.
➔
Moodle nos ofrece varias alternativas: cuentas manuales, PAM,
servidores LDAP, servidores POP3, etc.
➔
Recomendamos el uso de PAM, mecanismo que proporciona un
interfaz entre las aplicaciones de usuario y diferentes métodos de
autenticación.
➔
Configuramos de forma que el servidor que tiene instalado Moodle
permite el acceso PAM a través de la comunicación con el servidor
LDAP.
➔
El módulo PAM que utiliza Moodle es pam_auth (GPL), que permite
la configuración PAM a través de PHP.
➔
Dicha configuración ha sido probada con éxito. 16
17. Pruebas y estudio de la aplicación
en la universidad
Esquema con el sistema de autenticación recomendado
17
18. Pruebas y estudio de la aplicación
en la universidad
➔
Por último era necesario analizar la seguridad del sistema Moodle en el
acceso, más aun tratándose de las cuentas del laboratorio.
➔
Si realizamos capturas, la información viaja en claro.
➔
Necesitamos utilizar HTTPS, preferiblemente sólo en el logueo, para no
ralentizar en exceso el sistema.
➔
Moodle 1.7 incorpora esta opción, por lo que es la versión que
recomendamos se use en caso de implantación.
Capturas con Ethereal sin y con HTTPS en el proceso de login 18
19. Recursos
➔
Para intentar que el proyecto pueda ser útil más allá de su
uso en los laboratorios:
➔
Manuales de uso en inglés y castellano, incluidos en los
paquetes de descarga.
➔
Proyecto albergado en sourceforge bajo licencia GPL:
https://sourceforge.net/projects/gturnos (más de 200
descargas a día de hoy)
➔
Página web en inglés y castellano:
http://gturnos.sourceforge.net
➔
Proyecto albergado en la sección Modules and Plugins, de
Moodle.org:
http://moodle.org/mod/data/view.php?d=13&rid=571
19
20. Conclusiones y trabajo futuro
➔
Se ha conseguido una solución informatizada al problema de reparto
de turnos:
➔
Modular, segura y multiplataforma.
➔
Integrada en Moodle.
➔
Estable, en fase de producción.
➔
Se ha analizado su implementación en los laboratorios, dando
recomendaciones de uso argumentadas.
➔
En cuanto a posibles trabajos futuros:
➔
Ampliar los SGBD sobre los que puede trabajar: PostgreSQL,
Oracle, Microsoft SQL Server, etc. (nuevas versiones de Moodle).
➔
Implementación como bloque multi-instancia, que permita
trabajar con varios gestores de turnos a la vez.
20
21. Tiempo estimado de desarrollo
Moodle y PHP 25%
Diseño e implementación de gTurnos 25%
Análisis de implantación 15%
Desarrollo de otros recursos para difusión 15%
Memoria 20%
21