[Avancé] clés GPG et cyptage asymétrique

gpg

Je vais essayer d’être aussi concis que possible, mais je vais devoir faire une brêve introduction à la cryptographie. Pendant des siècles, la cryptographie a été à clé unique. Par exemple si je prend cet article et que je décide de décaler chaque lettre de l’article de 6 lettres dans l’alphabet, j’aurais alors a=f, b=g, c=h et ainsi de suite. Bien sûr le moyen de décodage est totalement symétrique, il suffit de faire l’inverse. Ca vaut pour cet exemple ultra simple, et vaut également pour tout un tas de codes compliqués, comme le code symbolique de Louis XIV ou la machine enigma. A chaque fois on prend un message original, on le triture de manière plus ou moins complexe pour le coder, et celui qui le reçoit doit connaitre le procéder de codage (la clé) et l’inverser.

Mais le défaut énorme de ce type de codage, c’est qu’il faut que l’émetteur et le récepteur se rencontrent au moins une fois pour convenir de la clé. Dans le monde d’aujourd’hui où des gens se parlent d’un bout du monde à l’autre, ce n’est pas trop faisable. Heureusement le cryptage asymétrique a été inventé: au lieu d’une seule clé, il y en a deux, une publique, et une privée. Et là ou c’est très fort, c’est que ce qui est crypté avec la clé publique ne peut être décrypté que par celui qui possède la clé privée et vice versa.

L’intéret est énorme: Il suffit que chacun donne sa clé publique dans un catalogue ouvert à tous, et tout le monde pourra lui envoyer des messages cryptés sans l’avoir rencontré au préalable. Et lui, il peut utiliser sa clé privée pour crypter ses messages et les signer. Ca permet de garantir l’authenticité du message. Si marc reçoit un message de paul et qu’il veut être sûr que c’est bien paul qui a envoyé le message, il utilise la clé publique sur le message signé par paul avec sa clé privée, et si quelqu’un a essayé de se faire passer pour paul il sera tout de suite repéré puisqu’il ne connait pas la clé privée de paul et n’a donc pas pu signer le message.

Bien sûr tout ça est extrêmement simplifié, et vous trouverez sans doute bien plus de détails sur les sites dédiés au cryptage Asymétrique, au chiffre RSA et à GnuGPG. En tout état de cause, voici une application directe: Une clé gpg est la clé publique d’un éditeur de logiciel. Celui-ci utilise sa clé privée pour signer ses logiciels, et nous pouvons utiliser la clé publique pour vérifier que les logiciels que nous trouvons sur internet viennent bien de lui et pas d’un quelconque pirate qui aurait bidouillé le logiciel pour y introduire un malware.

Ce procédé est très connu dans le monde de Linux, et en particulier dans les distributions issues de Debian, il est utilisé pour garantir l’authenticité des paquets non issus des dépots officiels.

Songbird : le logiciel idéal pour écouter les WebRadios

songbird600

Je ne sais pas si vous appréciez d’écouter des Web Radios, mais moi j’aime beaucoup. Ce qui passe sur la FM n’est pas inintéressant, mais je trouve que c’est trop commercial et formaté, avec un quart d’heure de pub toutes les demi heures pour certaines. Et puis on ne trouve pas de tous les genre. Tandis que le Web est bourré de petites Web Radios sympas, avec très peu de pub, et un répertoire de genre bien plus varié et bien moins commercial que ce qu’on trouve sur la FM. Reste à trouver un bon logiciel pour en profiter…

Après quelques essais, j’ai été séduit par Songbird. Ce logiciel a plus d’un tour dans son sac. D’abord il est gratuit et open-source. Il a des liens de parenté avec Mozilla, il est multi plateforme, idéal pour ceux qui jonglent entre Windows et Linux, et puis il a une interface conviviale, un classement des web radios par genre, un plugin qui affiche un résumé sur la vie de l’artiste dont le morceau est joué, et en plus il bouffe très peu de CPU, ce qui est idéal, c’est pas tous les média players qui peuvent s’en vanter ;) .

Le site est en anglais, mais rassurez vous, vous pouvez l’obtenir en français (cf la capture d’écran ci dessus, vous pouvez cliques dessur pour la voir en taille normale ;) ). Bonne écoute :) .

Quelques liens utiles pour programmer sereinement en java

Jusqu’à présent, je vous ai présenté le java à ma façon, parce que je trouve que la manière dont mes collègues le présentent n’est jamais suffisamment pédagogique. Il faut toujours commencer par les bases, sauf que celles-ci sont toujours tellement évidentes pour le professionnel, qu’en général il en zappe une partie. N’étant dans le java que depuis un an et demi, je me souviens encore très bien de mes débuts, et de mes difficultés d’alors. Cependant il est inutile de réinventer la roue en vous exposant l’intégralité des finesses de ce vaste sujet, ce qui prendrait un temps considérable, et serait totalement inutile puisqu’il existe d’excellents tutoriels sur la toile.

Dans le cadre de mon travail, je suis un intégrateur, c’est à dire que je reprend des bouts de logiciels qui existent déjà, et j’ajoute un ciment qui me permet de les liers entre eux dans un but novateur d’interaction entre tous ces bouts de logiciels. Entre 80% et 90% du code que je manipule existe déjà! C’est le principe de base de la programmation moderne. On reprend ce qui a déjà été fait, on ajoute juste ce qui manque. Et bien je me propose de faire de même dans le cadre de ces tutoriels. Je vais donc vous inviter à puiser abondamment dans des sites comme ceux qui suivent:

Qui sont des références absolues du petit programmeur, même s’il y a de nombreuses autres sources d’informations sympathiques à trouver sur le web ;) .

Tant que nous y sommes, voici un certain nombre de sites dont vous aurez rapidement besoin pour vous faciliter la programmation:

  • javadoc online vous renseignera très utilement sur toutes les classes existantes et leur usage.
  • findjar.com vous aidera à retrouver les librairies qui vous manquent, ce qui provoque ces agaçantes erreurs de “ClassNotFoundException”.
  • java examples contient des centaines de petits bouts de code qui illustrent telle ou telle fonctionnalité de java, une vraie mine d’or pour comprendre comment marchent les choses :) .

Il y a aussi java source.net, mais a priori, vous n’en aurez pas besoin tout de suite ;) . Voila pour les liens utiles. Alors bouquinez bien, potassez bien, et à bientôt pour quelques éclaircissements sur certains points chauds :D .

Compiler et exécuter un fichier java.

vaisseau_java_2-compil

En complément à mon article précédent, voici comment faire pour compiler et tester mon exemple:

  • D’abord, récupérez le code source sur mon pastebin.
  • Ensuite, vous allez avoir besoin d’un outil de compilation. Sous Ubuntu, faites un petit
    sudo apt-get install gcj” pour l’installer (sachant que si vous travaillez depuis un ordinateur de votre école ou université, le paquet est probablement déjà installé, et vous pouvez sauter cette étape.
  • Ensuite, la procédure est simple: “javac monfichier.java” pour compiler (avec le ‘c’ de compilateur à la fin).
  • java monfichier arguments” pour  lancer l’exécution (sans le ‘c’ cette fois ci, sans le “.java”, et les arguments, c’est en option, ça correspond au “String [] args”, l’argument de la fonction main qui est appelée pour lancer le programme).

Dans notre cas, procéder comme sur l’illustration de ce billet, je pense que c’est assez explicite ;) .

Introduction à la programmation Objet (2)

vaisseau_java_2

Dans mon exemple d’hier, je vous donnais les clés de la compréhension des fondamentaux de l’orienté objet. Nous gagnons aujourd’hui un petit peu en complexité. Cette classe est la même que celle d’hier, mais enrichie par l’arrivée de différentes nouveautés.

  • Comme vous pouvez le remarquer, il est possible d’initialiser les attributs de la classe à l’extérieur du constructeur. C’est une facilité qui permet d’apporter de la clarté dans le code, car comme ça seuls les champs qui doivent varier sont initialisés dans le constructeur.
  • Vous remarquez également que nous avons ici deux constructeurs, la chose est rendue possible par le fait que les deux ne prennent pas le même nombre ni le même type de paramètres. Ce n’est d’ailleurs pas réservé aux constructeurs, c’est le cas de n’importe quelle fonction. Par exemple vous pouvez avoir une fonction chargerPreferences(String nomFichier) et une fonction chargerPreferences(FileReader fichier), étant entendu que la première va ouvrir le fichier spécifié puis faire appel à l’autre. Et dans le cas présent, vous remarquerez qu’effectivement le constructeur qui prend le plus de paramètres fait appel au constructeur simple par le biais du mot clé “this”. Ce mot clé permet soit de désigner le constructeur de la classe s’il est utilisé comme fonction, soit de désigner une instance de la classe. Bien sûr il n’est pas obligatoire de lier les constructeurs, on aurait pu recopier le premier dans le deuxième, et éviter le renvoi. Mais en règle général en programmation, on évite de dupliquer le code tout simplement parce que s’il y a une modification à faire, on aime bien n’avoir à la faire qu’une seule fois.
  • Vous remarquerez enfin l’apparition du mot clé “static”. Ce mot clé permet de désigner une fonction ou un paramètre comme indépendant d’un objet particulier, mais au contraire commun à tous les objets de la classe. C’est un peu l’analogue d’une variable globale. Vous pouvez créer 100 vaisseaux, tous de nom, de couleur et de nombre de canons différents, mais si vous modifiez la variable nombre de vaisseaux, tous seront affectés, parce que c’est une variable dite “de classe et non d’instance”, c’est à dire qu’elle ne s’applique pas à un objet particulier de la classe, mais à l’ensemble de ces objets.
  • et puis il y a la fonction public static void main(String args). Comme vous le remarquerez, cette fonction est “static”, donc ne s’applique pas à un objet particulier mais à l’ensemble de la classe. En particulier, par convention, ce nom et cette signature de fonction désignent le bout de code qui doit être appelé pour lancer le programme.
  • Que dire d’autre, System.out.println() est une fonction qui permet d’afficher la chaine de caractères spécifiée à l’écran. On peut concaténer deux chaines de caractères avec des ‘+’. Il est également possible de concaténer des entiers avec une chaine de caractères, et comme vous le voyez, si jamais ça sort de l’écran, on peut étaler sur plusieurs ligne, le programme s’en fout du moment qu’il y a bien le point virgule à la fin de l’instruction ;) .

Je sens que vous êtes légèrement perdus, donc je vais faire un bref rappel sur les variables:

  • On appelle variable d’instance un attribut qui décrit une caractéristique d’un objet de la classe. Chaque objet de la classe possède cet attribut (couleur, nombre de canons, nom…) mais il peut être différent en fonction de l’objet. On y accède en utilisant le nom de la variable suivit d’un point et du nom de l’attribut, par exemple vaisseau1.couleur pour obtenir la couleur du vaissau1 ou encore vaisseau2.nombre_de_canons pour obtenir le nombre de canons du vaisseau2.
  • On appelle méthode d’instance une méthode (fonction) qui peut s’appliquer à une instance (un objet) particulier de la classe, exemple accelerer(), que  l’on applique à un objet particulier, par exemple vaisseau1.accelerer() pour faire bouger le vaisseau1.
  • On appelle variable de classe une variable qui ne dépend pas d’un objet de la classe, mais qui est commun à tous les objets. Ces variables sont repérées par le mot clé “static”. Exemple, nombre_vaisseaux est une variable de classe. Si on la modifie, elle change pour tous les objets. On peut y accéder par le nom de la classe suivit d’un point et du nom de la variable, par exemple VaisseauSpatial.nombre_vaisseaux permettrait d’y accéder depuis une autre classe,
  • de même qu’une autre classe pourrait lancer la méthode main par l’instruction VaisseauSpatial.main(args); En effet la méthode main elle non plus ne s’applique pas à un objet particulier, mais comme toutes les méthodes statiques, elle s’applique à manipuler des objets de la classe.

J’espère avoir été suffisamment compréhensible. Ce que je raconte est un peu dur à suivre, parce que malgrès tout je suis obligé d’introduire peu à peu le vocabulaire de base du programmeur java. Enfin vous avez l’exemple du code source pour comprendre, et en extrapolant un peu par rapport aux autres langages vous devriez avoir les outils pour piger le truc. Je précise que j’ai utilisé le logiciel très connu Eclipse pour programmer ma classe. Ceci dit vous n’en avez absolument pas besoin pour débuter. N’importe quel éditeur de texte basique comme Notepad++ sous Windows, et Gedit sous Linux vous permettrons d’avoir le minimum de coloration syntaxique sans avoir besoin de passer par des choses plus compliquées. Disons que c’est pour moi une habitude et un outil de travail. Je consacrerai sans doute prochainement un article aux environnements de développement.

Pour finir, voici ce que l’on vois lorsqu’on lance ce programme:

vaisseau_java_2-exe

Comme vous le voyez, le main a été appelé, il a déclaré deux vaiseaux qui ont été construits d’après ses spécifications, et il leur a appliqué quelques méthodes d’instance. La variable nombre_vaisseaux a bien été incrémentée deux fois, autant de fois que des vaisseaux ont été construits (elle n’a été initialisée q’une seule fois lors du premier appel de la classe).

Introduction à la programmation Objet

Je me rappelle encore de mon premier cours sur le java. Le prof a expliqué en un quart d’heure ce qu’était une classe, et ce qu’était une instance, et a passé l’heure suivante à employer à tout bout de champ des expressions comme “variable de classe”, “variable d’instance”, méthode et constructeur, de sorte que tout le monde s’est retrouvé instantanément largué, parce que le temps de se rappeler de ce qu’est un constructeur, le prof était déjà passé à autre chose. On va essayer d’être un peu plus simples.

Le principe de la programmation objet, c’est que dans tout programme, on manipule des objets. Par exemple un jeu de simulation de combat spatial contiendra des vaisseaux, des canons, des projectiles, un espace 3D, etc, tous ces objets interagissant entre eux. Le principe de la programmation objet, c’est de rassembler dans un même bout de programme (la classe) tout ce qui se rapporte à un objet particulier, à savoir: ses caractéristiques (les attributs), par exemple la couleur du vaisseau, son nombre de canons ou sa vitesse, et les actions qu’on peut effectuer avec cet objet (les méthodes), par exemple accélérer, ralentir, etc. On y ajoute aussi un bout de code qui explique comment faire pour créer un nouvel objet. Voici un exemple qui illustre mon explication:

vaisseau_java

Ce qu’il faut retenir, c’est que cette classe décrit comment tous les objets de type VaisseauSpatial seront. Mais il peut y en avoir plusieurs. Chaque fois que l’on va vouloir créer un nouveau vaisseau, on va appeler la fonction/méthode qui porte le même nom que la classe: c’est le constructeur. L’appel de cette fonction réserve la place en mémoire pour stocker un nouveau vaisseau spatial, initialisé comme le dit le constructeur. Par exemple, dans un autre programme, on pourra trouver la séquence suivante:

VaisseauSpatial vaisseau1 = new VaisseauSpatial();
VaisseauSpatial vaisseau2 = new VaisseauSpatial();
vaisseau1.couleur = “jaune”
vaisseau2.accelerer();

Qu’est-ce qui se produit exactement? Eh bien deux objets décrits par la classe précédentes et stockés dans les variables vaisseau1 et vaisseau2 sont créés. La couleur du vaisseau1 ne nous plait pas, donc on la change, et on demande au vaisseau2 d’accélérer un peu. Vous remarquerez la manière dont on s’y prend pour accéder à tout ce qui se rapporte à un objet: on met le nom de la variable, un “.”, et le nom du paramètre (attribut) ou de la fonction (la méthode) qu’on veut appeler sur cet objet.

Je n’en dirai pas plus pour aujourd’hui, nous avons vu l’illustration de base du concept, il restera encore à voir comment l’utiliser, c’est un chouia plus complexe, mais pas tant que ça.

Explorez, débuggez, et améliorez votre compréhension des pages Web avec Firebug

firebug

Maintenant que nous avons commencé à nous intéresser au contenu des pages Web, il est temps de vous présenter cette petite merveille qu’est l’extension Firebug de Firefox. Elle a plusieurs fonctionnalités intéressantes.

  • D’abord elle permet de savoir instantanément quelle section du code correspond à quelle partie de la page, car en passant le curseur sur telle out telle section du code, le morceau correspondant de la page web est bleuté.
  • Ensuite elle organise le code de façon agréable et intuitive par section que l’on peut développer ou réduire en cliquant sur la croix correspondante si le besoin s’en fait sentir.
  • Par ailleurs pour chaque section du code html, il est possible d’observer le code de présentation CSS qui lui est associé.
  • Enfin elle permet d’éditer la page Web à sa sauce et d’observer instantanément le résultat. A noter que dans ce cas là, les changements ne sont pas enregistrés et que dés que l’on rafraichira la page elle retrouvera sa présentation d’origine.
  • Et plein d’autres fonctionnalités utiles que je ne détaillerai pas plus avant car elle correspondent à un usage plus avancé..

Changez la présentation des sites Web que vous visitez

google_dark_blue

Je ne sais pas si ça vous est déjà arrivé en allant sur un site internet de vous dire quelque chose comme “Sympa ce site! Mais quel dommage que sa présentation soit si moche!“. Sachez alors que vous avez une autre alternative que de choisir entre supporter le visuel désagréable du site et ne plus aller dessus. En effet, il existe une petite extension de Firefox qui s’appelle Stylish, et qui va vous permettre de remplacer la feuille de style CSS fournie par le site Web par une feuille de style plus à votre gout.

Pour ce faire, vous avez plusieurs possibilités:

  1. Regarder sur userstyles.org si quelqu’un n’a pas déjà développé une feuille de style plus sympathique pour le site Web en question, pour cela repérez l’icone de Stylish en bas à droite du navigateur (elle ressemble à une feuille blanche avec un pinceau) et son nom apparait lorsque vous passez la souris dessus. Cliquez alors dessus, puis cliquez sur “Trouver des styles pour cette page“. Un fois que vous avez trouvé votre bonheur, il doit y avoir quelque part sur la page un bouton “load in Stylish” qui vous permettra de profiter du script :) .
  2. Demander sur le forum de userstyles.org si quelqu’un n’aurait pas la gentillesse de bien vouloir vous en créer une (par contre il faut savoir parler anglais),
  3. Apprendre un minimum de langage CSS, ce qui n’est pas dur du tout, pour refaire le design du site en question à votre sauce, en vous aidant des conseils disponibles sur le forum. Vous pouvez à ce sujet consulter mon billet Si vous souhaitez réaliser votre propre feuille de style CSS ;) .

Par exemple pour des gens qui comme moi vont souvent sur internet la nuit, les pages Web écrites comme dans les livres en noir sur blanc, ça pique un peu les yeux à la longue. C’est pourquoi, nous avons tendance à rechercher des choses écrites plutot en couleur claire sur fond foncé, qui fatiguent bien moins les yeux. Je reviendrai dans un article ultérieur sur toutes les manières de transformer l’affichage de son ordinateur dans ce but, mais vous avez déjà un aperçu dans l’illustration de ce billet de l’un des résultats de cette démarche avec l’aide du script Stylish Google Web Search – dark blue redesign.

Introduction aux feuilles de style en cascade CSS

css

Introduction

Comme vous le savez sans doute, derrière chaque page Web que vous visitez se cachent un certain nombre de lignes de code écrites dans divers langages. Pour vous en convaincre, il vous suffit pour ceux qui utilisent Firefox d’utiliser la combinaison de touche ctrl+U, ce qui aura pour effet d’afficher le code source de cette page de mon blog.

A l’origine, lorsqu’une page web était construite, on insérait dans son code source à la fois le code de mise en page, et le code correspondant au contenu utile, de même que lorsque l’on écrit un document, on se préoccupe à la fois de ce que l’on y écrit, et de sa mise en page. Mais depuis et avec l’avènement du Web 2.0, il est apparu utile de décorréler ces deux approches.

  • D’une part parce que à chaque site Web correspond un design, et qu’il est inutile que le code brut de présentation soit stocké en dur à 100 endroits différents si le site Web fait 100 pages, alors qu’il suffirait de le stocker quelque part et de le coupler avec le code de contenu de la page lorsque celle-ci est demandée par un utilisateur.
  • D’autre part parce que si un jour on éprouve le besoin de changer le design du site, cela signifie qu’il va falloir modifier chacune des 100 pages manuellement l’une après l’autre, et je ne vous parle même pas des sites Web qui contiennent des dizaines de milliers de pages…

Tandis que si on sépare le code caractérisant le contenu d’une page Web de celui qui concerne sa présentation, on se débarasse de ces inconvénients. Le jour où l’on souhaite changer le design de son site Web, il suffit de modifier le fichier qui caractérise la présentation de l’ensemble des pages du site, et l’ensemble du site change, je ne sais pas si vous voyez la puissance du truc.

Et je pense que vous aurez deviné où je veux en venir. Le code décrivant le contenu d’une page Web, c’est du HTML, et le code caractérisant sa présentation, c’est du CSS.

Présentation du CSS

CSS signifie Cascading Style Sheets  (=feuilles de style en cascade). Vous avez un extrait de feuille CSS dans l’illustration de ce billet. Le principe est simple:

  • Pour chaque balise placée dans le code HTML d’une page, le navigateur va regarder si quelque chose est dit à propos de cette balise dans la feuille de css qui lui correspond. Si non, il va adopter le comportement par défaut. Si oui, il appliquera les modifications spécifiées dans la feuille de style.
  • Les balises peuvent être des balises HTML standard, par exemple body, ou des balises artificielles inventées par le créateur du site internet, ça pourrait être cadrecentral, ou n’importe quoi d’autre. Bien sûr il faut alors qu’elles aient été préalablement  insérées dans le code source suivant une syntaxe particulière.
  • Les paramètres qui peuvent être changés vont de la police utilisée, sa taille et sa couleur à la présentation générale de la page et aux images utilisées.

Au passage, si parfois lorsque vous avez des ennuis de connexion internet, vous chargez des pages présentées très bizarrement, c’est souvent que seul le code html a été chargé, mais pas la feuille de style CSS correspondante. A titre d’illustration, voici à quoi ressemble ce blog sans sa feuille de style:

blog_sans_css_400

Conclusion:

Voila, comme je prévois de faire bientôt un ou deux articles en direct lien avec la notion de feuille de style CSS, grâce à ce billet vous  saurez ce que c’est. Vous pouvez également consulter l’article de Wikipédia qui s’y rapporte ;) .

IRC : l’ancêtre et le concurrent d’MSN

capture d'écran du populaire client mIRC.

capture d'écran du populaire client mIRC.

Dans le cadre des tutoriels sur le Web 2.0, nous allons évoquer aujourd’hui tout ce qui est discussion par messagerie instantanée:

Alors avant de rentrer dans les détails, rappelons le principe d’un logiciel de discussion instantanée (=chat en ligne): Tous les utilisateurs se connectent à un même serveur internet. Ils peuvent alors y écrire des phrases qui seront vues instantanément par tous les autres utilisateurs. On peut trouver des chats sur divers sites internet. Mais l’usage le plus répandu est de loin le très célèbre MSN.

Le principe de ce dernier est le suivant: chaque utilisateur dispose d’un logiciel installé sur son ordinateur que l’on va appeler client de messagerie. Dans la plupart des cas, il s’agira du célèbre MSN Messenger de Microsoft, mais il peut également s’agir d’une alternative libre comme Pidgin, Gaim, Amsn, etc. L’utilisateur a une liste d’amis dont il sait s’ils sont ou non connectés, et peu choisir d’engager alors un chat avec eux. En général, ce sont plutôt des conversations à deux personnes, mais il est également possible de créer des petits salons entre amis. Et puis en fonction des clients, on peut ajouter pas mal de fonctionnalités, comme par exemple le couplage avec la webcam de l’utilisateur.

En parallèle, il y a  IRC qui est un peu l’inverse d’MSN. Ici, il n’y a pas de liste d’amis. On peut par contre trouver un annuaire des canaux de discussions, afin de rejoindre celui dont le thème nous convient. Il y a des canaux privés, mais également de nombreux canaux publiques. Dans le cadre d’IRC, ce ne sont pas des discussions à deux personnes, même s’il est possible d’en ouvrir en privé, mais bien plus souvent des salons sur lesquels des centaines de personnes peuvent être connectées en même temps (mais ils ne parlent pas tous en même temps bien sûr). Ainsi, alors qu’MSN est plutôt dédié aux conversations privées, IRC a une dimension bien plus communautaire.

Par exemple sur réseau irc://irc.freenode.net, on peut trouver un canal #ubuntu-fr où il y a des gens connectés à toute heure pour discuter d’Ubuntu, proposer leurs problèmes, ou y répondre. L’ennui avec IRC, c’est qu’il n’est pas toujours simple d’installer un client et de le configurer. Je prévois d’expliquer dans un prochain tutoriel comment utiliser Chatzilla, qui est un client libre qui s’installe sous forme d’extension Firefox. En attendant, voici les commandes qui manquent le plus souvent quand on commence avec IRC (toutes ces commandes sont à taper dans la barre de discussion qui est en général en bas du client de messagerie.):

  • /attach AdresseDunReseau: pour se connecter à un nouveau réseau IRC. Exemple: pour se connecter au réseau freenode, taper: /attach irc://irc.freenode.net
  • /join #NomDeCanal: pour se connecter à un canal de discussion particulier du réseau en cours. Exemple: en supposant que vous veniez de vous être connectés sur Freenode, et que vous vouliez rejoindre le canal #ubuntu-fr, tapez /join #ubuntu-fr
  • /attach AdresseDunReseau/NomDeCanal: Combinaison des deux précédents. Par exemple: /attach irc://irc.freenode.net/ubuntu-fr
  • /nick NouveauPseudo: pour changer le nom par lequel vous êtes identifié par les autre utilisateurs. Exemple: si je suis connecté sous le pseudo AldiansBlog, et que je veux désormais m’appeler FirefoxFan, je vais taper /nick FirefoxFan

Liens Wikipedia: MSN Messenger, IRC, Messagerie Instantannée