septembre 2008 (5)

lundi 22 septembre 2008

Progression du e-learning en entreprise

Un article sur le progrès du e-learning en entreprise.

On n'y apprend pas grand chose (eh, c'est Le Monde Informatique ;), mais ça rejoint la tendance que je perçois : montée du e-learning pour diminuer les coups de formation (un site web avec des doc et exercices coute moins cher que des formations avec des intervenants extérieurs), couplé avec des interventions ciblées.

Le Graal étant un plan de formation qui s'adapte précisément aux besoins et calendriers de l'entreprise.

lundi 8 septembre 2008

Manipuler les images disques de MacOS en ligne de commande

Avant-propos

Pour les utilisateurs venant du monde UNIX, il est indispensable de savoir manipuler en ligne de commande les images disques d'Apple. Il en existe de deux sortes : les traditionnelles (avec leur variations : chiffrées, compressées, etc) et les grossissantes.

Les images disques grossissantes sont des images disques ayant une taille maximale définie à la création. Toutefois, uniquement l'espace utilisé est écrit sur le disque, ce qui permet de limiter l'espace occupé.

Concrètement, une telle image se présente sous la forme d'un répertoire IMAGE.sparsebundle contenant une collection de bandes, un index des données et un fichier de métadonnées sur l'image. Il va de soit qu'il est extrêmement déconseillé d'aller trifouiller au petit bonheur la chance à l'intérieur de ces fichiers.

Il est important de se pencher sur la façon dont les volumes et disques sont attachés sous MacOS. Sans entrer dans les détails, on admettra que les disques physiques sont directement (c'est à dire, sans tampon ou couche tierce) accessibles par les nœuds /dev/rdisk*; ils ont leur contrepartie logique sous la forme /dev/disk*.

Une image disque, étant un volume logique, sera attachée sous la forme /dev/diskXsY, comme si elle était un disque dur. X est alors un identifiant du disque, et chaque partition est associée à un identifiant Y. Chaque partition du disque logique peut alors être montée; le point de montage par défaut étant /Volumes/. Il est bien sur possible d'attacher une image disque sans la monter, afin d'utiliser par exemple des outils travaillant sur les blocs.

Également, MacOS associe à chaque image disque une somme de contrôle permettant de tester son intégrité. Par défaut, des tests (parfois longs) sont effectués. À vous de décider si vous voulez les valider ou bien les ignorer.

La syntaxe des exemples suivants est valable pour MacOS Léopard, et peut-être des versions ultérieures (Jaguar, Panthère et Tigre ont connu des évolutions dans la gestion des images disques; sans parler de Puma et Guépard).

Attacher une image disque

Attache le disque en un nœud /dev/disk* et monte le volume dans /Volumes/. Il est possible d'attacher une image disque sans monter son volume en utilisant l'option -nomount. D'autres options comme -nobrowse ou -private marqueront le volume comme n'étant pas utilisable par les applications (ainsi, le Finder ne l'affichera pas) ou ne notifieront pas le système de l'ajout du disque (pas d'indexation SpotLight).

hdiutil attach IMAGE

Démonter une image disque

Démonte un système de fichiers d'une image disque sans libérer ce dernier. Le nœud /dev/disk* est toujours présent mais le système de fichiers n'est plus monté.

hdiutil umount /Volumes/IMAGE

Démonter et détacher une image disque

Démonter le système de fichiers; le nœud du disque logique est supprimé de /dev/disk*,

hdiutil detach /Volumes/IMAGE

Créer une image disque grossissante

Créer une image disque de taille maximale 500 Go, avec un système de fichier en HFS+ journalisé et sensible à la casse :

  • -size 500G : taille maximale de l'image
  • -fs HFSX : système de fichiers HFS+ sensible à la casse
  • -J : utilisation d'un journal pour le système de fichiers
  • -type SPARSEBUNDLE : le type d'image disque
  • -volname "Sauvegardes" : le nom du volume de l'image disque; il sera utilisé comme nom de point de montage par défaut dans /Volumes/
hdiutil create -size 500G -fs HFSX -fsargs -J -type SPARSEBUNDLE -volname "Sauvegardes" Sauvegardes.sparsebundle

Optimiser la taille de l'image disque

Pour une image disque grossissante, il est possible de demander la récupération de l'espace non-utilisé dans les bandes, pour faire ramener sa taille à celle du volume des données qu'elle contient.

hdiutil compact IMAGE

Formater un volume en HFS

Il est tout à fait possible de formater un volume d'une image disque existante. Il suffit d'attacher l'image disque, et de travailler sur les partitions. On peut utiliser les options suivantes :

  • -J : utilisation d'un journal pour le système de fichiers
  • -s : le système de fichier sera sensible à la casse
  • -v Données" : le nom du volume
newfs_hfs -J -s -v "Données" /dev/diskXXXXX

Connaître les opérations possibles sur les images disques

La commande hdiutil ne se limite pas aux simples opérations de montage et démontage de volumes. Elle permet également de convertir, graver, segmenter et d'une façon générale d'effectuer toutes les opérations possibles sur les images disques. La commande en elle-même intègre une documentation extensive, et son manuel contient des exemples concrets.

hdiutil help et plus précisément hdiutil help COMMAND.

Références

jeudi 4 septembre 2008

La métaphore du porteur de miroir pour les traces modélisées

Une application à base de traces modélisées peut être imaginée telle un compagnon prenant la forme d'un porteur de miroir. Pour observer la trace de son activité, l'utilisateur regarde alors son reflet dans ce miroir. Le porteur obéit aux instructions de l'utilisateur pour modifier le miroir.

  • Ainsi, le porteur peut agrandir ou rétrécir le miroir pour changer la quantité d'éléments reflétés : on fait varier la quantité d'observés collectés par le système à base de traces (SBT).
  • Il est possible de placer des filtres devant le miroir pour ne voir qu'une partie du reflet : on sélectionne des observés précis par des règles de filtrage.
  • On peut ajouter un prisme pour envoyer (une partie de) son reflet à d'autres personnes, et recevoir des reflets provenant d'ailleurs : on réalise un partage de trace, et on construit des traces croisées et conjointes.
  • L'utilisant de lentilles permet de concentrer ou d'élargir des reflets : on ré-écrit la trace en une trace de plus haut niveau, et on crée des observés calculés.

Le vocabulaire du tableau blanc

En préparant la rédaction d'un article, j'ai découvert un problème : je ne sais pas décrire simplement l'activité que l'on réalise sur un tableau blanc; pire, je ne sais pas la nommer.

Il est courant que les noms des outils informatiques deviennent des verbes permettant de décrire ce que l'on fait avec : on « se skype » pour se parler, on « google » une question ou encore on « t'chat » (quel mot horrible !) avec ses amis.

Mais quel vocabulaire emploi-t'on avec le tableau blanc ?

Il existe des termes génériques comme « interagir » qui ne sont pas spécifique à cet outil, contrairement à d'autres (par exemple, « téléphoner » et non pas « téléparler »). Des termes plus scientifiques tels que « cotravailler » sont très laids, et de tout façon imprécis.

Si l'anglais permet de construire sans complexe des néologismes (avec tous les problèmes que cela comporte) comme «to whiteboard », une étude ad Gogulum montre que le terme ne prend pas. La forme française « tableaublancer » est là encore de toute façon très laide.

Un des raisons vient du fait que le tableau blanc est un outil qui permet de supporter une activé, et non pas une activité en elle-même. On utilise un tableau blanc pour partager, créer ensemble, montrer, organiser, etc. Utiliser un tableau blanc dans le simple but d'utiliser un tableau blanc n'a pas de sens. Donc on ne le fait pas, et comme on nomme rarement une non-action...

C'est pour cela qu'on voit fleurir des périphrases comme « pointer sur le tableau » ou bien « déposer sur l'espace partagé » pour désigner ce qui se fait dans l'activité. Mais quand il s'agit de travailler, on parle simplement de « modifier le carré » ou d'« ajouter du texte »; le support de l'activité s'effaçant pour ne laisser place qu'à l'activité elle-même.

Le tableau blanc, un outil innommable condamné au rang de faire-valoir ?

mercredi 3 septembre 2008

Problème d'encodage avec Java sous MacOS X Léopard

Sous Léopard, la machine virtuelle java (JVM) d'Apple se lance par défaut avec l'encodage MacRoman. Si choix est compréhensible au vu de l'histoire des technologies d'Apple, il est toutefois de nos jours rendu obsolète avec le passage à l'unicode. Pire, les développeurs et administrateurs systèmes s'attendent désormais à des outils fonctionnant en UTF-8, ce qui pose donc des problèmes d'intégration.

Pour les systèmes GNU/linux, les différentes JVM travaillent avec l'encodage du système qui est désormais l'UTF-8. Mais la JVM d'Apple se comporte différemment, avec un réglage défini en interne.

Faisons quelques essais avec ce jeu de test.

Commençons avec GNU/linux :

$ uname -a
Linux liristpq.Univ-Lyon1.fr 2.6.27-2-generic #1 SMP Thu Aug 28 17:18:43 UTC 2008 x86_64 GNU/linux

$ java GetEncoding 
Random bytes
encoding: UTF8

$ LC_ALL=ASCII java GetEncoding 
Random bytes
encoding: ASCII

Comme on peut le constater, l'utilisation de l'encodage est dynamique, avec par défaut celui du système.

Regardons maintenant ce que cela donne sur Léopard. Nous commençons par lancer la même commande que pour GNU/Linux, et ensuite nous affinerons manuellement l'encodage UTF-8 avec l'option -Dfile.encoding=UTF-8 :

$ uname -a
Darwin arda.local 9.4.0 Darwin Kernel Version 9.4.0: Mon Jun  9 19:30:53 PDT 2008; root:xnu-1228.5.20~1/RELEASE_I386 i386 i386 iMac6,1 Darwin

$ java GetEncoding
Random bytes
encoding: MacRoman

$ java -Dfile.encoding=UTF-8 GetEncoding
Random bytes
encoding: UTF8

$ LC_ALL=ASCII java GetEncoding
Random bytes
encoding: MacRoman

La différence est flagrante. La JVM d'Apple sous Léopard utilise par défaut l'encodage MacRoman et ne supporte pas la sélection par les locales, ce qui pose de réels problèmes d'interopérabilité.

Une solution simple est d'appeler systématiquement la JVM en spécifiant l'encodage UTF-8, mais elle n'est pas idéal.