Le présent livre a pour finalité de fournir un ensemble de connaissance de départ pour les nouveaux utilisateurs de Dojo. Il se base sur http://dojo.jot.com/WikiHome/Tutorials/HelloWorld.
Notes.
Il est important que la version 0.4.0 ou supérieure soit utilisée. Elle peut être trouvée à cette adresse :
http://download.dojotoolkit.org/release-0.4.0/ 
Initialiser Dojo.
Créer l'arborescence suivante :
 - HelloWorldTutorial/
 |---- js/
 ---- dojo/
télécharger la dernière version de dojo et la décompresser dans le répertoire HelloWorld/js/dojo/
Vous devriez alors avoir la structure suivante : ('..' indique qu'il y a plus de répertoire)
 - HelloWorldTutorial/
 |-- js/
 -- dojo/
 -- build.txt
 -- CHANGELOG
 -- demos
 -- ..
 -- dojo.js
 -- dojo.js.uncompressed.js
 -- iframe_history.html
 -- LICENSE
 -- README
 -- src/
 -- ..
Pour commencer.
Nous allons maintenant créer une page html de base qui servira à appeler toutes les fonctionnalités de Dojo que nous utiliserons par la suite.
 <html>
 <head>
 <title>Dojo: Hello World!</title>
 <script type="text/javascript" src="js/dojo/dojo.js"></script>
 </head>
 <body>
 </body>
 </html>
Créer un bouton gadget.
Nous allons créer un bouton gadget ("widget" en anglais, c'est ce terme qui est utilisé par Dojo) avec le texte "Hello world". Dans ce cas ci, trois option sont disponible (mouseOut, mouseOver, et mouseDown), qui enrichissent considérablement l'expérience de l'utilisateur !
La première chose à faire est de demander à Dojo de charger le module correspondant.
Dans l'en-tête (<head> jusqu'à </head>), placer la section correspondante :
 <script type="text/javascript">
 // Charge le code de Dojo relatif aux fonctions de chargement des widgets
 dojo.require("dojo.widget.*");
 // Charge le code de Dojo relatif au bouton gadget
 dojo.require("dojo.widget.Button");
 </script>
Le premier dojo.require instruit dojo d'inclure les fonctions widget (gadgets) (Attention cela ne charge pas tout les widgets!) ; c'est les lignes d'instructions du second dojo.require qui charge le bouton. Si vous oubliez la deuxième ligne, vous aurez un bouton en HTML.
Après avoir fait ces changements, insérer ce code suivant à l'intérieur des balises <body> et </body>
 <button dojoType="Button" widgetId="helloButton">Salut tout le monde!</button>
L'élément clé à percevoir ici est le dojoType. Le type est ici un bouton, mais nous pourrions mettre un input à la place.
Le widgetId identifie le bouton. Il peut être remplacé par simplement id .
Pour mettre plusieurs bouton avec la même phrase, il faut copier cette ligne et changer l'id.

Programmation Bash/Interactions avec le système de fichiers

Fichiers et répertoires.
Créer.
Création d'un fichier.
Pour créer un fichier texte, le plus simple est d'utiliser l'éditeur de texte vi. Pour créer un fichier vide, il suffit d'utiliser la commande codice_1. La commande codice_2 permet de recenser le contenu d'un répertoire.
Exemple :
Création d'un répertoire.
Pour créer un répertoire, utiliser la commande codice_3.
Exemple :
Déplacer et renommer.
Pour déplacer un objet du système de fichier, utiliser la commande codice_4.
Exemple :
Pour renommer un fichier, il suffit de le déplacer vers un autre nom de fichier.
Exemple :
Copier.
Pour copier un fichier, utiliser la commande codice_5 comme suit :
Pour copier un répertoire, utiliser l'option codice_6.
Supprimer.
La commande codice_7 détruit un fichier. Attention, ce fichier ne pourra pas être récupéré ou difficilement. 
Exemple :
Pour supprimer un répertoire, utiliser l'option codice_6. Pour forcer la suppression, utiliser l'option codice_9
Lister.
Pour lister tous les fichiers du dossier courant et de ses sous-dossiers on peut utiliser codice_10. Toutefois le formatage du code est ordonné par sous-dossier. Pour avoir une seule liste de fichiers et sous-dossiers triés, il faut donc formater ce résultat avec "awk" :
ls -R | awk '
NF&&f{ print s"/"$0 }'
Déplacements dans un système de fichier.
L'organisation, les chemins.
Il faut toujours se souvenir que du point de vue d'un système de type UNIX, tout est fichier. Cela signifie que, pour le système, les périphériques - disques durs, écrans, imprimantes etc... - sont représentés par des fichiers. Les répertoires sont eux aussi des fichiers, d'un type particulier, puisqu'il "contiennent" d'autres fichiers. Le lecteur comprendra donc qu'il est important de maîtriser les notions de bases concernant la manipulation de fichiers.
Les fichiers d'un tel système sont organisés sous forme d'une arborescence dont la racine est représentée par le slash : codice_11 C'est par ce signe que débute tout chemin absolu menant à un fichier, sous réserve, bien entendu, de son existence. Pour indiquer un nœud dans ce chemin, une bifurcation, on utilise comme séparateur le slash.
Exemple :
Ce chemin mène à un fichier baptisé "rapport.tex" qui se trouve dans un répertoire "latex", lui-même dans le répertoire "aniko", inclus dans "home" qui est un répertoire directement accessible depuis la racine. Cette organisation permet une grande souplesse, puisqu'il est aisé de détacher une partie de l'arborescence pour la greffer ailleurs. En outre cela permet de compartimenter clairement l'organisation du système, puisque par le jeu de différents droits sur les fichiers, tous ne sont pas lisibles, modifiables ou exécutables par tous les utilisateurs.
Les commandes codice_12 et codice_13.
La commande codice_12, i.e. "common directory" (répertoire courant), permet de se déplacer dans le système de fichiers. La commande codice_13, i.e. "present working directory", affiche l'endroit où l'on se trouve actuellement dans le système de fichiers.
Exemple :
Des symboles sont utilisés pour représenter les répertoires couramment utilisés :
"Monter" une ressource dans le système de fichiers.
Les systèmes de fichiers Unix ne comprennent, comme nous le décrivons plus haut, qu'une seule arborescence logique. La racine de cette arborescence est nommée codice_11. Il est possible d'intégrer sous cette arborescence tout type de périphérique : souris, disque dur, lecteur dvd, ou clé usb. La commande codice_19 permet d'insérer une ressource dans cette arborescence. 
Exemple :
Cette commande permet de monter la ressource identifiée par le système comme codice_20 dans le répertoire codice_21. Il s'agit probablement d'une partition de disque dur dont le format est ext3. Cela signifie que pour accéder à cette ressource il suffit d'aller dans ce répertoire.
Exemple :
Cette commande permet de monter le répertoire codice_22 du système de fichier du serveur distant codice_23 dans l'arborescence de la machine à travers le réseau en utilisant NFS.
Exemple :
Cette commande permet de monter une clé usb.
Umount :
Cette commande permet de démonter le lecteur monté sur /home/sidonie/cle.