Archive

Archive for the ‘Uncategorized’ Category

Checklist para editores de contenidos SCORM

November 14, 2014 1 comment

Si trabajas sobre la elaboración de contenidos multimedia interactivos con el estándar SCORM 1.2, y que para hacerlo usas herramientas de generación de contenido (Lectora, Captivate, Xerte, eXe Learning, etc) hay algunas cosas que deberías saber para mejorar la compatibilidad de tus cursos en la mayoría de plataformas.

Estas reglas son genéricas y la idea es darte un checklist práctico que puedas verificar con cada elemento.

Cambia el lesson_status a “incomplete” primero

Sabías que, en SCORM, si no cambias el status, el elemento se queda en “not attempted” todo el tiempo hasta que termines este paso (el “SCO”), y cuando sales de ahí, si no enviaste ninguna llamada a LMSSetValue(‘cmi.core.lesson_status’, ‘…algo…’), la plataforma (si realmente respeta SCORM 1.2) tiene la obligación de ponerte al alumno un status de “completed”?

O sea… aun cuando el alumno sale en el medio, sin terminar este paso, se pondrá a “completed”, solo porque el contenido no expresó bien su intención. Cuidado con esto!

Usa “passed” para evaluaciones

Si el elemento (SCO) que el alumno está viendo es un ejercicio, una prueba, un examen o cualquier tipo de evaluación que conlleva un score (cmi.core.score_raw), y si el alumno obtiene los resultados mínimos esperados, deberías darle un status de “passed”. Si no los obtiene, un status de “failed”.

Es importante no darle “completed”, ya que la plataforma podría desear mostrar el resultado de manera distinta si es un ejercicio o un paso de teoría.

Usar “completed” para la teoría

Si a cambio el elemento (tipo “sco”) no es una evaluación, entonces al terminarlo el alumno debería obtener un status de “completed”. A menos que sea solo un documento opcional (tipo “asset”). En este caso se puede usar “browsed”.

Nuevamente, el punto no es que sea prohibido usar “completed” para evaluaciones y “passed” para documentos, sino que el LMS podría decidir mejorar su presentación en base a estos datos.

Usar mastery score, max y min para evaluaciones

El LMS no puede suponer ningun valor para cmi.core.score.min, cmi.core.score.max y cmi.student_data.mastery_score. Es decir que si el almuno toma un sco de evaluación y logra “90” puntos, el LMS no sabe si esto es “sobre 100”, “sobre 20” o “sobre 1000”. Por lo tanto, el LMS no puede decidir si este resultado fue suficiente o no. El LMS depende enteramente de lo que le envia el SCO.

Existe una excepción a esta regla: si un mastery_score fue definido dentro del imsmanifest.xml para este elemento (sco), o fue pasado a través de un LMSSetValue(‘cmi.student_data.mastery_score’, …), entonces el LMS puede decidir que este “90” es superior al mastery_score, y por lo tanto que el alumno recibe un status “passed”.

Lo mejor siempre es mandar un LMSSetValue(‘cmi.core.lesson_status’, …), pero si el alumno se va antes del final, debe haber un mecanismo de respaldo. Estos datos permiten que se genere este mecanismo.

BeezNest

BeezNest es una consultora especializada en e-learning que provee soluciones y capacitaciones según los requerimientos de sus clientes. Si tiene alguna necesidad de resforzamiento o un proyecto complejo de integración que tenga algo que ver con el e-learning o la gestión del conocimiento, no dude en contactarnos en ventas@beeznest.com

Categories: Spanish, Uncategorized

MySQL error: SQLSTATE[HY000]: General error: 126 Incorrect key file

November 11, 2014 Leave a comment

If you ever get this kind of error:


SQLSTATE[HY000]: General error: 126 Incorrect key file for table '/tmp/#sql_3aef_0.MYI'; try to repair it

without an internet connection… you are in a bad place :-)

The error message is very unclear about the issue. The problem is actually (most of the time) that the partition that holds the /tmp folder is too small to store a temporary table (for a big permanent table).
This triggers an error at building the temporary table (or part of it) and shows you this error.

To fix, edit you /etc/mysql/my.cnf file (or rather /etc/mysql/conf.d/local.cnf if you’re clean) and locate (or add) the tmpdir directive. Change it from /tmp to /var/tmp, for example, and restart MySQL.

Fixed!

If you’re using local.cnf, don’t forget to add the [mysqld] line before the setting itself.

Categories: English, Uncategorized

Quick PhoneGap setup on Ubuntu

September 5, 2014 Leave a comment

(tested on Ubuntu 14.04)

Install NodeJS

Go to https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager to get the following instructions updated:

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install nodejs

Install PhoneGap

sudo npm install -g phonegap
sudo npm install -g cordova

If some part of the output of this (xcode, etc) gives error messages, I recommend uninstalling (sudo npm uninstall phonegap) and trying again, to avoid weird dependency issues later on.

The Cordova installation seems not to be mandatory, although you will need it if you start installing Cordova plugins.

Create a PhoneGap app

phonegap create my-app
cd my-app
phonegap run android

This last line is to run it as an Android app (but you can also do that in other environments).

If, for some reason (libraries dependencies, etc) the last line doesn’t work, you can still test your app launching the PhoneGap local server in what I understand is a special independent web mode, by typing

phonegap serve

This will give you the IP that you need to give in the next step.

Test your PhoneGap app

Since recently, PhoneGap offers a PhoneGap “app” that will allow you to run a locally-developed app on your device.

See instructions here http://app.phonegap.com/ (or basically download the “PhoneGap Developer” app).

Installing the Android SDK

Remember the failing “phonegap run android” command above? Well, this was due to the missing Android SDK. To get it, you need to do something like this:

wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz

And then uncompress the file

tar zxvf android-sdk_r23.0.2-linux.tgz

Finally, you’ll have to add the path to some of the subfolders of this uncompressed archive to your PATH system variable:

PATH=”${PATH}:/path-to-android-sdk/tools:/path-to-android-sdk/platform-tools”

export PATH

If you only do this, you’ll have to repeat this action after each reboot (at least when you want to “phonegap run android”).

Categories: English, Uncategorized

Optimiser NFS

Voici quelques pistes pour améliorer les performances de NFS sous Linux (du moins en
environnement peu chargé). On fera directement attention aux points suivants:

1. Performances réelles du serveur

Est-ce que les disques/contrôleurs qu’on utilise sont réellement plus
rapides que le réseau?
Des petits coups de “dd” et de “bonnie” nous le diront.

2. Vitesse du réseau

Est-ce que le réseau est capable de transférer les informations
rapidement entre les clients et le serveur? On utilisera pour cela un
protocole réseau minimaliste, comme FTP par exemple. Mais évidemment, on
pourrait probablement obtenir déjà des informations intéressantes avec
tout autre protocole. Si la vitesse de transfert est déjà mauvaise,
inutile d’aller plus loin.
De même, tracker les erreurs sur l’interface réseau (output d’ifconfig)
sur le client et le serveur est intéressant.

3. Résolution de noms

Si on voit apparaître des délais (freeze) particulièrement quand on
commence à accéder à la ressource réseau, il y a de fortes chances que
ce soit lié à la résolution de noms, du client ou du serveur (les deux
sont importants), et ce dans les deux sens.
Les outils suivants nous y aideront: “ping”, “dig” et “host”.

4. Configuration propre au protocole NFS

De nos jours, on veillera à utiliser NFSv3 au moins, et ce en TCP (et
non pas en UDP, pourtant par défaut sous Linux, à moins d’être sur un
réseau local vraiment “propre” et totalement dédié à NFS).
Pour vérifier cela, on fera des transferts par NFS, et on vérifiera
ensuite ce que l’output de “nfsstat” nous dit à propos de ce qui est
passé (on verra de cette façon la version de NFS réellement utilisée
ainsi que le transport TCP ou UDP, et des erreurs éventuelles).
Ensuite, en fonction du type de données transférées (petits fichiers,
gros fichiers accédés séquentiellement ou de manière aléatoire), on
jouera avec la taille des blocs (“rsize” et “wsize”, ainsi que “sync”,
“async”, etc…).

5. Gestion des locks

Pour garantir la validité des données lors de l’accès en écriture
simultané de plusieurs clients NFS, celui-ci utilise un “lock manager”.
Dans certains cas, ce “lock manager” ne fonctionne pas bien (problème de
communication entre implémentations, …) et peut sévèrement affecter
les performances. Dès lors, il faut être attentif à cela, surtout dans
les environnements hétérogènes (y compris entre les versions d’une
distribution GNU/Linux).

Categories: French, Uncategorized

Monitoring Tomcat with Munin on Debian GNU/Linux

June 20, 2013 Leave a comment

To monitor Tomcat with Munin 2.0 on Debian GNU/Linux (tested on Debian Squeeze with Tomcat6 and Debian Backports), you need the following steps.

First, you need to install package tomcat6-admin which enables the Tomcat Manager app we will be using.

# apt-get install tomcat6-admin

Next, create a user with a manager role in Tomcat, editing /etc/tomcat6/tomcat-users.xml and adding the following two lines in the appropriate list.

<role rolename=”manager”/>
<user username=”munin” password=”Munin” roles=”manager”/>

Restart Tomcat to reread its configuration and enable the newly-installed Tomcat Manager app.

# service tomcat6 restart

Configure the Munin tomcat_* plugins adding a file /etc/munin/plugin-conf.d/tomcat with the following content:

[tomcat_*]
  env.host 127.0.0.1
  env.port 8080
  env.user munin
  env.password Munin

Enable the tomcat_* plugins:

# cd /etc/munin/plugins/; ln -s /usr/share/munin/plugins/tomcat_* .

Restart Munin node:

# service munin-node restart

Enjoy!

Bolsa de Trabajo

May 30, 2013 Leave a comment

(Lima-Perú) Bolsa de Trabajo: Desarrollador PHP

Mayor información:
https://www.beeznest.com/es/bolsa-de-trabajo-desarrolladorphp

Panoramic picture of Miraflores, Lima

Panoramic view of Lima, Peru

Lima, Peru panoramic from 14th floor. See the whole of Lima (including San Lorenzo island and the Andes)

Categories: Spanish, Uncategorized
%d bloggers like this: