Moodle Assignment Feedback Packager

Moodle allows assignments and group assignments to be graded offline. This helps to assign a graded group work to each of its members, but also requires a special naming and formatting of files and csv content. To help, this small web app, helps to generate the offline grading zip and attribute a group grade to all its members. It only requires the initial offline grading worksheet and optionally a feedback file for each group.

Getting the feedback file

  1. The first step it to enable Feedback files and Offline grading worksheet in Moodle assignments ‘settings under Feedback Types.
  2. It is then possible to use Download grading worksheet under View all submissions of the assignment.
  3. This file can then be uploaded to the webapp:

Using the webapp

Screen after uploading a feedback file


  • The first tab Groups helps to add feedback and grades to groups which are then copied to each member shown in the participants tab.
  • On the bottom it is possible to import grades and comments based on the group key.
  • The Feedback files tab allows to upload files if the filename has the name of a group it will be added to the feedback of each group member of this group.
  • Finally, the updated csv file and packaged zip can be downloaded and uploaded to moodle’s assignment.


Are my files send to a server?
No all is done locally in your browser.
Browser’s max size of files is arround 200MB



Firebase SDK for Cloud Functions Migration

In addition to the provided guide by Google.

Here is the changes I had to make in my code for futur reference:

OLD <1.0 NEW< >=1.0
event.params.uid context.params.uid change.after.val() change.ref.remove()
.onWrite(event => { .onWrite((change, context) => {
.onDelete((event) => { .onDelete((snap, context) => {
const object =; object
storage.object().onChange(event => { storage.object().onFinalize((object, context) => {

Using Cheap China Microscope with Micro-Manager on Windows

In order for Micro-Manager to recognize my cheap china microscope, I needed to patch the provided OpenCVGrabber driver.

The original version of the driver always selected the first USB camera available, and did not pass validation of the configuration for the webcam driver from the microscope.

As Micro-Manager is Open Source, I looked into making a patch. The new version which supports camera selection from a dropdown by name. Is available for windows 10 and Version 2.0 beta of Micro-Manger:

  1. Install Version 2.0 beta
  2. Download the compiled mmgr_dal_OpenCVgrabber.dll
  3. Replace it in the folder of Micro-Manager x64 c:\Program Files\Micro-Manager-2.0beta

Status for integration into the application can be followed on the pull request.

Moodle 2 export participants with group information

A small script to export moodle 2 participants with their group information.

Drag the bookmarklet to your bookmarkbar: Moodle Group Export
You can then click it when you are on the moodle 2 > Users > Enrolled users page to get a csv file of the displayed table.


  • Support for a maximum of 1 group by participant
  • Pop-up has to be enabled

Source Code

var script = document.createElement('script');
script.onload = function(){
var separator = ',';
var pattern = /id=(.*)&/;
var csv = [['userid', 'name','idnumber','email','group'].join(separator)];
$('table.userenrolment').find('tr').each(function(index, tr){
    var r = [];
    var $tr = $(tr);
    var a = $tr.find('a');
    var userid = pattern.exec(a[0])[1];
csv = csv.join("\r\n");"data:application/octet-stream;charset=utf-8," + encodeURIComponent(csv));
script.src = '';

Bonita Studio tutoriel vidéo

Durant le cours d’Intégration des systèmes d’information d’entreprise 2011 du Master en Système d’information de HEC Lausanne, j’ai enregistré une série de vidéos démontrant l’utilisation de Bonita Studio sur un cas pratique “Travel Expenses“.

Les vidéos sont disponibles sur YouTube ( et couvres les thèmes suivants :

  • User Experience
  • sous-processus
  • Données & Données complexe
  • Formulaires
  • Messages
  • connecteur REST groovy
  • connecteur mail
  • connecteur MySQL

Le cas Travel Expenses traite la demande, la consolidation et la vérification de notes de frais pour des voyages de collaborateurs.

  • Enoncé détaillé du cas (Exercice de modélisation BPMN) TravelExpensesEnonce.pdf
  • Enoncé du travail pratique (Exercice Bonita) TravelExpensesBonita.pdf
  • Solultion exemple sous Bonita Studio (Fichiers bar)
  • La solution propose:
    • un processus principal TravelManagement ,
    • qui interagit avec un processus TravelBooking ,
    • et qui a également un sous processus ReportExpenses

Ressources supplémentaires

Pour permettre l’échange des données entres processus avec une seule variable, plusieurs objets complexe ont été créés: TravelPlan contient un Hotel et une liste d’Expense. De plus ces objets ont une méthode toHtml et toString pour faciliter l’affichage dans un formulaire Bonita.

JAR: travel_plan_1.1.jar
GrovoyDoc: travelplan/groovydoc/

Groovy Date
formatage de l’objet Date groovy pour le service REST ou la requète SQL

new Date().format('MM/dd/yyyy')
new Date().format('yyyy-MM-dd')

Expedia REST service
Documentation du service REST utilisé:

Dr. Thibault Estier (Enseignant du cours)
Boris Fritscher (Assistant doctorant, préparation du cas et enregistrement des vidéos)
Alexandre Métrailler (Assistant doctorant, préparation du cas)

Nice Videos From Recent Talks

A small selection from videos of recent good talks.

JavaScript: The Language
Nice advanced introduction to JavaScript and the new features of ECMAScript5

more all MIX 11 sessions

CHI 2011
Bill Buxton Shows Us His Favorite Tech
Why we need to remember past gadgets!

Google IO 2011
Java Puzzlers – Scraping the Bottom of the Barrel
The one and only java puzzlers, always informative.

Programming Well with Others: Social Skills for Geeks
Insights on geek vs/and management. You might also be interested in the book “Being Geek

HTML5 Showcase for Web Developers: The Wow and the How
Fun stuff with some chrome specific audio and file api, but also standard CSS3 3D animations.

more All Google IO 11 Sessions

ARDrone SDK 1.6 working windows client binary

Since there does not seem to be an official binary of the windows client sample for controlling the ARDrone. I decided to compile the sample project, which is available in the official sdk. Sadly the process of compiling the sample is not straight forward and requires a lot of tweaking [1, 2]. Nonetheless, I finally managed to compile a version, which is working on windows 7 x64 and is compatible with firmware update 1.5.1 of the ARDrone. It can be downloaded here:

ARDrone1.6Win32Client.exe working binary of ARDrone SDK 1.6 win32 client

You will also need to have an update to date version of the DirectX End-User Runtime [3].