Le 18 mai entre 17h et 18h30, nous fêterons ça à Évry (Essonne) à Télécom SudParis, avec la participation de Nicolas Dandrimont en guest star, pour présenter le projet.
Attention, inscription gratuite par avance en contactant les organisateurs, compte-tenu des contraintes de sécurité pour l’accès au site (vigipirate).
I’m a big fan of org-mode (see previous posts), and I’ve started maintaining (sic) my professional webpage(s) with it.
But I’ve also recently tried and publish some more Semantic/Linked Data aware documents too (again, previous posts).
Ideally, I think my preferred workflow for publishing articles or documents of some importance, would be to author them in org-mode, and then publish them as HTML5 including RDFa meta-data and annotations. Instead, I’ve more frequently been doing conversions of org-mode to LaTeX, in order to submit a printable version, and later-on decided to convert the LaTeX to HTML5+RDFa…
But one of the issues is how to properly embed the RDF meta-data inside the org-mode documents, so that the syntax is both compact and expressive enough.
I doubt there’s a universal solution, given that RDF tends to be complex, and graphs may not project easilly along a mainly linear structure of an org-mode document, but anyway, there seems to be possible middle grounds that are practically good enough.
I’ve tried and implement a solution, which reuses the principles set by John Kitchin in Extending the org-mode link syntax with attributes, i.e. implementing an HTML exporter for a particular custom link type, which will convert the plist-like syntax to some RDFa constructs.
The nice thing about org-mode, and its litterate programming babel environment, is that it allows to embed the code of the links exporter inside the org document, avoiding to dissociate the converter from the document’s source, making it auto-complete.
Next step will probably be to author a paper (or convert back a “preprint” of mines) with org-mode, in order to provide Linked Research meta-data.
Stay tuned for more details, and in the meantime, I welcome any improvement to the org/babel/elisp setup.
Edit: I’ve recorded a webcast to provide a bit more details, available on YouTube : https://youtu.be/OyI3DVqllx4
J’ai traduit en français les transparents de l’appel pour une “Linked Research” (que j’ai traduit par “recherche reliée”) de Sarven Capadisli originellement en anglais
L’objectif est d’inciter (entre autre actions) à la publication d’articles académiques sous une forme exploitable aussi bien par les humains que par les machines, et permettant ainsi d’embarquer dans le document des méta-données additionnelles.
I intend to make the extra effort of republishing my own research papers as Linked Research, i.e. in a form readable by humans (HTML5), but also embedding meta-data (as RDF) for machine processing.
You’ll notice the menu which helps select different style sheets for preparing clean printable versions, not far from the LaTeX output usually converted to PDF.
I hope this will pave the way to more Linked Research, and less opaque publications.
The only hassle at the moment is the conversion from LaTeX to HTML5 which I’m doing manually, in Emacs + nxml-mode.
Update: Check the preprint links in my publications page, for more papers.
Designing a virtual laboratory for a relational database MOOC
Olivier Berger, J Paul Gibson, Claire Lecocq and Christian Bac
Keywords: Remote Learning, Virtualization, Open Education Resources, MOOC, Vagrant
Abstract: Technical advances in machine and system virtualization are creating opportunities for remote learning to provide significantly better support for active education approaches. Students now, in general, have personal computers that are powerful enough to support virtualization of operating systems and networks. As a conse- quence, it is now possible to provide remote learners with a common, standard, virtual laboratory and learning environment, independent of the different types of physical machines on which they work. This greatly enhances the opportunity for producing re-usable teaching materials that are actually re-used. However, configuring and installing such virtual laboratories is technically challenging for teachers and students. We report on our experience of building a virtual machine (VM) laboratory for a MOOC on relational databases. The architecture of our virtual machine is described in detail, and we evaluate the benefits of using the Vagrant tool for building and delivering the VM.
TOC :
Introduction
A brief history of distance learning
Virtualization : the challenges
The design problem
The virtualization requirements
Scenario-based requirements
Related work on requirements
Scalability of existing approaches
The MOOC laboratory
Exercises and lab tools
From requirements to design
Making the VM as a Vagrant box
Portability issues
Delivery through Internet
Security
Availability of the box sources
Validation
Reliability Issues with VirtualBox
Student feedback and evaluation
Future work
Laboratory monitoring
More modular VMs
Conclusions
Bibliography
Alario-Hoyos et al., 2014
Alario-Hoyos, C., Pérez-Sanagustın, M., Kloos, C. D., and Muñoz Merino, P. J. (2014).
Recommendations for the design and deployment of MOOCs: Insights about the MOOC digital education of the future deployed in MirÃadaX.
In Proceedings of the Second International Conference on Technological Ecosystems for Enhancing Multiculturality, TEEM ’14, pages 403-408, New York, NY, USA. ACM.
Armbrust et al., 2010
Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I., and Zaharia, M. (2010).
A view of cloud computing.
Commun. ACM, 53:50-58.
Billingsley and Steel, 2014
Billingsley, W. and Steel, J. R. (2014).
Towards a supercollaborative software engineering MOOC.
In Companion Proceedings of the 36th International Conference on Software Engineering, pages 283-286. ACM.
Brown and Duguid, 1996
Brown, J. S. and Duguid, P. (1996).
Universities in the digital age.
Change: The Magazine of Higher Learning, 28(4):11-19.
Bullers et al., 2006
Bullers, Jr., W. I., Burd, S., and Seazzu, A. F. (2006).
Virtual machines – an idea whose time has returned: Application to network, security, and database courses.
SIGCSE Bull., 38(1):102-106.
Chen and Noble, 2001
Chen, P. M. and Noble, B. D. (2001).
When virtual is better than real [operating system relocation to virtual machines].
In Hot Topics in Operating Systems, 2001. Proceedings of the Eighth Workshop on, pages 133-138. IEEE.
Cooper, 2005
Cooper, M. (2005).
Remote laboratories in teaching and learning-issues impinging on widespread adoption in science and engineering education.
International Journal of Online Engineering (iJOE), 1(1).
Cormier, 2014
Cormier, D. (2014).
Rhizo14-the MOOC that community built.
INNOQUAL-International Journal for Innovation and Quality in Learning, 2(3).
Dougiamas and Taylor, 2003
Dougiamas, M. and Taylor, P. (2003).
Moodle: Using learning communities to create an open source course management system.
In World conference on educational multimedia, hypermedia and telecommunications, pages 171-178.
Gomes and Bogosyan, 2009
Gomes, L. and Bogosyan, S. (2009).
Current trends in remote laboratories.
Industrial Electronics, IEEE Transactions on, 56(12):4744-4756.
Hashimoto, 2013
Hashimoto, M. (2013).
Vagrant: Up and Running.
O’Reilly Media, Inc.
Jones and Winne, 2012
Jones, M. and Winne, P. H. (2012).
Adaptive Learning Environments: Foundations and Frontiers.
Springer Publishing Company, Incorporated, 1st edition.
Lowe, 2014
Lowe, D. (2014).
MOOLs: Massive open online laboratories: An analysis of scale and feasibility.
In Remote Engineering and Virtual Instrumentation (REV), 2014 11th International Conference on, pages 1-6. IEEE.
Ma and Nickerson, 2006
Ma, J. and Nickerson, J. V. (2006).
Hands-on, simulated, and remote laboratories: A comparative literature review.
ACM Computing Surveys (CSUR), 38(3):7.
Pearson, 2013
Pearson, S. (2013).
Privacy, security and trust in cloud computing.
In Privacy and Security for Cloud Computing, pages 3-42. Springer.
Prince, 2004
Prince, M. (2004).
Does active learning work? A review of the research.
Journal of engineering education, 93(3):223-231.
Romero-Zaldivar et al., 2012
Romero-Zaldivar, V.-A., Pardo, A., Burgos, D., and Delgado Kloos, C. (2012).
Monitoring student progress using virtual appliances: A case study.
Computers & Education, 58(4):1058-1067.
Sumner, 2000
Sumner, J. (2000).
Serving the system: A critical history of distance education.
Open learning, 15(3):267-285.
Watson, 2008
Watson, J. (2008).
Virtualbox: Bits and bytes masquerading as machines.
Linux J., 2008(166).
Winckles et al., 2011
Winckles, A., Spasova, K., and Rowsell, T. (2011).
Remote laboratories and reusable learning objects in a distance learning context.
Networks, 14:43-55.
Yeung et al., 2010
Yeung, H., Lowe, D. B., and Murray, S. (2010).
Interoperability of remote laboratories systems.
iJOE, 6(S1):71-80.
I’ve been working on setting up a Docker container environment allowing to test the RuneStone Interactive server.
RuneStone Interactive allows the publication of courses containing interactive Python examples, and while most of the content is static (the Python examples are run innside a Python interpreter implemented in JavaScript, hence locally in the JS VM of the Web browser), the tool also offers an environment allowing to monitor the progress of learners in a course, which is dynamic and is queried by the browser over AJAX APIs.
That’s the part which I wanted to be able to operate for test purposes. As it is a web2py application, it’s not exactly obvious to gather all dependencies and run locally. Well, in fact it is, but I want to understand the architecture of the tool to be able to understand the deployment constraints, so making a docker image will help in this purpose.
The result is the following :
a container image which allows to test web2py over Apache (with mod_wsgi) on Debian (see it on github : olberger/docker-web2py-debian)
a container image (reusing the previous one) which allows to test runestone (see it on github : olberger/runestone-web2py)
Now, it’s easier to test the writing of a new course (yet another container above the latter one), and directly test for real.
While docker seems quite cool, let’s face it, participants to the MOOCs aren’t all using Linux where docker can be available directly. Hence the need to use boot2docker, for instance on Windows.
Then we’re back quite close to the architecture of the Vagrang VM, which relies too on a VirtualBox VM to run a Linux machine (boot2docker does exactly that with a minimal Linux which runs docker).
If VirtualBox is to be kept around, then why not stick to Vagrant also, as it offers a docker provider. This docker provider for Vagrant helps configure basic parameters of docker containers in a Vagrantfile, and basically uses the vagrant up command instead of using docker build + docker run. If on Linux, it only triggers docker, and if not, then it’ll start boot2docker (or any other Linux box) in between.
This somehow offers a unified invocation command, which renders a bit more portable the documentation.
Now, there are some tricks when using this docker provider, in particular for debugging what’s happening inside the VM.
One nice feature is that you can debug on Linux what is to be executed on Windows, by explicitely requiring the start of the intermediary boot2docker VM even if it’s not really needed.
By using a custom secondary Vagrantfile for that VM, it is possible to tune some parameters of that VM (like its graphic memory to allow to start it with a GUI allowing to connect — another alternative is to “ssh -p 2222 docker@localhost” once you know that its password is ‘tcuser’).
I’ve committed an example of such a setup in the moocbdvm project’s Git, which duplicates the docker provisioning files that our students had already published in the dedicated GitHub repo.
In order to move on, I’ve applied a clever trick by proposing a project to students of ours (3rd year engineering school end-of-classes project of the ASR major).
The project was addressing several needs :
a functional need: being able to monitor what happens inside the VMs run on the participant’s side, so that MOOC labs aren’t performed in a black box;
a non functional need: investigate the potential benefits of docker, compared to Vagrant.
The students (François Monniot and Alexis Mousset) have worked very well, and we have a few apps in the result, that allow us to assemble a POC in order to complete our evaluation.
In following posts, I will describe some of these components and will present some ideas and maybe results on the technology’s potential. The impatient reader may directly browse their code on GitHub, starting from the dedicated site.
I havent’ found much details online on how to perform a Moodle course mirror that could be browsed offline using httrack.
This could be useful both for backup purposes, or for distant learners with connectivity issues.
In my case, there’s a login/password dialog that grants access to the moodle platform, which can be processed by httrack by capturing the POST form results using the “catchurl” option.
The strategy I’ve used is to add filters so that everything is excluded and only explicitely mentioned filters are then allowed to be mirrored. This allows to perform the backup connected with a user that may have high privileges, while avoiding to disappear in loops or complex links following for UI rendering variants of Moodle’s interface. Continue reading →
Cette BoF s’inscrivait dans la continuité des présentations du thème Enseignement / Recherche de la conférence.
Environ 40 participants ont pris sur leur temps de pause (merci aux organisateurs de nous avoir fourni des sandwiches de façon prioritaire) pour partager des éléments de retour d’expérience.
Voici quelques éléments qui m’ont semblé intéressants, qui pourront peut-être vous intéresser, qui ont été abordés durant la BoF, ou que j’ai collectés dans les présentations de la matinée (j’ai un peu délaissé l’amphi de l’après-midi, pour aller discuter avec quelques connaissances aussi présentes à la conf) :
enseignement :
deux environnements assez populaires : IPython notebooks, et Sage. Le deuxième éventuellement intégré avec le premier (SageCell). Les deux permettent d’avoir une interface Web qui semble offrir un certain avantage pour une population d’apprenants “génération FaceBook” qui trouve facile de rentrer du texte dans des zones de saisie d’une page Web (contrairement à des environnements type ligne de commande ou éditeurs plutôt effrayants). Avantage de disposer de LaTeX ou de texte (et plus) et de code dans un même document.
Même si Matlab reste assez utilisé dans certains labos (poids du legacy), l’enseignement semble pas mal passer à IPython, même si certains inconvénients existent parfois (plantages des kernels avec MatPlotLib, par ex.).
Les notebooks permettent de rendre la programmation vivante : le prof tape le code : montre les erreurs, les typos, etc. Rend le
processus plus accessible.
Côté notation des devoirs, corrections deux solutions en environnements MOOC avec de nombreux apprenants :
le LaTeX embarqué dans des Notebooks IPython amène certains à s’y intéresser alors qu’ils n’y viendraient pas naturellement (“elle
est belle ta formule, t’as fait ça comment ?” : double clic, et hop 😉
On commence à croiser des Notebooks IPython en matériel supplémentaire pour des publications académiques
Nous venons de lancer la première édition du MOOC sur les bases de données relationnelles de Télécom SudParis. Au programme, de la théorie (algèbre relationnelle), de la pratique (dans SQLite dans les navigateurs basés sur WebKit, et plus tard dans PostgreSQL dans une box Vagrant basée sur Debian (voir post précédent)), des contenus et logiciels libres (autant que possible) et pas mal de rush pour finaliser tout ça dans le Moodle.
On débute avec plus de 800 inscrits à la fin du premier jour (y compris les 180 étudiants ingénieurs de 2ème année de Télécom SudParis, qui suivront le cours présentiel en parallèle du MOOC, et collaboreront avec les apprenants externes pour les travaux personnels).
Il est toujours possible de s’inscrire : le gros du travail commence en semaine 2 (qui commence lundi 15/09 à 00h00 heure de Paris).
We’ve chosen to use Vagrant and VirtualBox which are used to build, distribute and run the box, providing scriptability (reproducibility) and making it portable on most operating systems.
The VM itself contains a Debian (jessie) minimal system which runs (in the background) PostgreSQL, Apache + mod_php, phpPgAdmin, and a few applications of our own to play with example databases already populated in PostgreSQL. Continue reading →