node-nolife

node-nolife est une application extrêmement pratique lorsqu'on développe avec NodeJS.

C'est quoi ?

Son but est d'automatiser le redémarrage d'une application en fonction d'une modification sur des fichiers.

J'y vois immédiatement 2 utilisations !

La première consiste à redémarrer une application lorsque l'on modifie un fichier de configuration. Attention, ce n'est pas forcément applicable dans tous les cas ! Par exemple, des problèmes de session peuvent se poser lorsque l'on redémarre une application web alors que des utilisateurs sont connectés. C'est donc un use case que je déconseille.

La deuxième consiste à redémarrer une application lorsque l'on modifie ses sources. Et là nous parlons donc d'une fonctionnalité typique d'un IDE !

Installation

J'ai choisi d'installer node-nolife globalement, puisque cela peut servir pour n'importe quel type de développement.

# npm install -g nolife

A partir de ce moment, nolife est accessible de n'importe quel endroit de la machine.

Utilisation

Enfin, pour l'utiliser :

$ cd my_project
$ node . . node app.js

Ceci permet de scruter tous les fichiers placés dans le dossier my_project (de manière récursive) puis, dès qu'un d'entre eux est modifié, de lancer la commande node app.js (permettant de démarrer mon application).

$ nolife
usage: nolife <dirname_to_watch> <ext,ens,ion,s,to,wa,tch> <program> [param] [...]

Dans mon projet, j'ai créé ce fichier de démarrage :

  1. #!/bin/bash
  2.  
  3. which nolife
  4. if [ $? == 0 ]
  5. then
  6. nolife . . node app.js
  7. else
  8. echo "Auto restart mode is unavailable because node-nolife isn't installed"
  9. echo "Please install node-nolife by typing 'sudo npm install -g nolife' and retry"
  10. fi
NodeJS et SocketIO

J'ai utilisé pour la première fois NodeJS, et plus particulièrement SocketIO il y a quelques jours.

En gros, NodeJS est un framework Web javascript fonctionnant côté serveur. Il dispose nativement de toutes les fonctionnalités de bases : voir ici. Il utilise le moteur javascript de Google : V8 JavaScript Engine.

nodejs-dark.png

Et SocketIO est une extension de NodeJS permettant de profiter facilement des avantages des WebSockets : vous savez, un nouveau truc apparu avec HTML5 et qui permet de mettre en oeuvre une communication full-duplex entre un navigateur et un serveur Web...

socket_io.png

Lire la suite...
Wake On Lan

Comme à mon habitude, je viens tout juste de remettre la main sur une page que j'avais faite et qui est bien pratique pour un certain nombre de personnes : le wake on lan.

C'est ici : WolTool

C'est quoi ?

Le wake on lan fonctionne est un des mécanismes qui permet le démarrage de machine (PC ou serveur) à distance.

Et ça fonctionne comment ?

La plupart des cartes réseau filaires sont en mesure d'écouter un certain nombre de choses même lorsque la machine est éteinte (il faut tout de même qu'elle soit alimentée). Cette capacité a été exploitée pour le Wake On Lan.

Le principe est simple. Pour démarrer une machine compatible wake on lan, il suffit de lui envoyer un paquet dit "magique". Ce paquet doit être envoyé sur le port 9 de la machine à allumer (les ports 0 et 7 sont aussi possibles). Dans mon exemple, le service est fourni par un petit utilitaire Linux du nom original "wakeonlan".

Sans m'étendre sur le sujet, à la réception de ce paquet, un PC éteint est capable de s'allumer... pratique !

Attention toutefois, il faut procéder à quelque vérifications et si besoin configurations : activer le wol (le réveil) de la carte réseau et, si présence d'un routeur, l'association adresse IP / adresse MAC doit être permanente dans la table ARP. Ces informations sont facilement trouvables sur internet... tout comme d'autres pages qui font exactement la même chose que la mienne (quoi, j'ai copié ?).

Menu disparu dans Eclipse

Pour ceux qui ont leur barre de menu qui s'éclipse dans Eclipse (je suis sous Ubuntu 10.10 Netbook edition, mais avec un vrai desktop), voici un script qui arrange le problème :

  1. #!/bin/bash
  2.  
  3. UBUNTU_MENUPROXY=/opt/eclipse eclipse

Mon Eclipse est installé dans /opt/eclipse... ce script peut être placé n'importe où à condition de rajouter Eclipse dans le path si ce n'est déjà fait. Il faut donc faire un truc genre :

# ln -s /opt/eclipse/eclipse /bin
Bash : Prompt personnalisé

Voici un script que j'ai réalisé il y a quelques temps pour personnaliser mon terminal. Il permet d'afficher l'utilisation des disques directement dans la ligne de commande. Certain diront que c'est useless, mais moi qui suis toujours uniquement dans un terminal sur mon serveur, il m'a aidé plusieurs fois, par exemple à voir que si mes requêtes SQL plantent, ce n'est pas que mon serveur est pourri, mais c'est juste qu'il n'a plus d'espace disque ;)

Voici le résultat :

Capture-Terminal.png

Lire la suite...