XMPP et Java avec Smack : b.a.-ba

Publié dans XMPP | Laisser un commentaire

Après le serveur XMPP et le client XMPP, nous allons nous intéresser d’avantage au côté client en codant quelques bribes de Java pour faire du XMPP. Pour cela, il existe encore une liste de librairies XMPP proposée par XMPP.org, et, comme précédemment, j’ai choisi celle qui m’a été conseillée et qui est développée par Jive Software : Smack !

Pour faire mes tests, j’ai lancé en local un serveur Openfire, sur lequel j’ai créé deux utilisateurs : « Fylhan » et « Test ». J’ai lancé Fylhan sur le client XMPP Spark et je vais utilisé « Test » pour mes tests. (quand je dis que j’ai « lancé Fylhan », je ne parlais pas de moi hein !)

Continuer la lecture

1er décembre : commentaires

Publié dans Avent | Laisser un commentaire

Politique de développement chez IBM, à l’époque en tout cas…

Si après avoir lu uniquement les commentaires d’un programme vous n’en comprenez pas le fonctionnement : jetez le tout !

Joyeux premier décembre !

Logo Git

Faire comme « SVN revert » mais avec Git

Publié dans Geekeries | Laisser un commentaire

Scénario habituel nécessitant l’utilisation d’un svn revert : vous avez modifié un fichier (géré par SVN) sans le vouloir (ou vous avez changé d’avis !) et vous voulez retourner à la version actuellement géré par SVN. Un appel svn revert <nom du fichier> écrasera ce fichier avec la dernière version commitée sur SVN.
On peut faire la même chose avec le gestionnaire de version Git, sauf que cette fois-ci la commande à utiliser est git revert HEAD~<nombre de commit à effacer>, sans oublier de faire un push par la suite. Sam & Max explique ceci très bien dans un billet git revert pour annuler proprement le dernier commit.

Auparavant, j’utilisais git reset --hard <nom du fichier> ! Ou sur Eclipse avec le plugin EGit : clic droit > team > Reset et sélectionner l’option « hard ». C’est un petit peu différent vu que cette fois-ci on revient à la version d’une autre branche (par exemple : la branche sur le répertoire « origin ») alors qu’avec « revert », on reste en local. Mais avec « reset », il est possible de ne toucher qu’un seul fichier !

En fait, il est possible d’aller un peu plus sur ce sujet avec Git, mais un article l’explique déjà très sur Git Community Book : Undoing in Git – Reset, Checkout and Revert.

Anecdote n°4 : Origine du mot b.a.-ba

Publié dans L'anecdote du week-end | Laisser un commentaire

Savez-vous vous quel vient l’origine du mot « b.a.-ba » (que l’on prononce « béaba ») ? Cette petite expression provient de la méthode syllabique d’apprentissage de la lecture (on entend aussi parler de « synthétique » ou « alphabétique »), où l’on apprend à comprendre les lettres et les sons, puis à les assembler en syllabes, qui formeront enfin des mots ! Ainsi les lettres « b » et « a » donne « ba » d’où : « b.a.-ba » que l’on prononce « béaba ».


Pour information, il existe d’autres méthodes d’apprentissage de la lecture, comme la méthode globale, et le choix de la meilleure méthode porte toujours à polémique !

Source

  • Pour le coup c’est au cours d’une recherche Google que je suis tombé là dessus, et c’est Wikipédia qui explique le mieux la chose : Wikipédia B.A.-ba

Un client XMPP : Spark

Publié dans XMPP | Un commentaire

Après le serveur XMPP avec Openfire, place au client XMPP avec Spark !

Un client ? Que… quoi ?

Un client XMPP est le logiciel ou l’outil à la disposition de l’utilisateur pour lui permettre de communiquer avec son serveur XMPP, et donc par cet intermédiaire avec ses contacts. Il en existe plusieurs. Certains sont confinés à un seul serveur (GTalk pour le serveur Google Talk par exemple), d’autres permettent de se connecter à n’importe quel serveur comme Pidgin, Emphaty ou encore Spark ! Et c’est ce dernier que nous allons étudier aujourd’hui. Ce n’est pas très très compliqué à prendre en main, mais l’idée ici est surtout d’en profiter pour mieux comprendre quelques notions d’XMPP.

XMPP.org fournit une liste de clients XMPP : liste de clients XMPP.

Continuer la lecture

Logo Virgo

Let’s work OSGi Virgo on Eclipse

Publié dans Java | 4 commentaires

Virgo se présente comme le nouveau et futur module OSGi pour Eclipse performant et facile à utiliser. En très gros, il offre les fonctionnalités du framework Spring (puisqu’il s’appuie dessus) permettant de gérer convenablement des projets OSGi, et fournit un serveur OSGi (appelé Virgo, anciennement Spring dm Server) utilisant Equinox. N’hésitez pas à visiter le site Web de Virgo pour en savoir plus. Ah oui, et OSGi, c’est un « framework » Java pour gérer des projets Java en s’occupant des dépendances, des cycles de vies, et de tout un tas de choses… Il existe deux implémentations phares de Virgo : Felix et Equinox. Hum, bref, je vous renvoie la page Wikipédia d’OSGi !
Logo de l'alliance OSGiCar ce dont je souhaite bloguer aujourd’hui (du verbe « bloguer » : je blogue, tu bolgues, il/elle/on bluoge, nous bogluons, vous bugolez, ils bolugent), c’est de l’installation d’un environnement Virgo (sur Eclipse, forcément, pas vraiment le choix) !
Continuer la lecture

Futurs articles sur le thème du développement Web

Publié dans Informations | Laisser un commentaire

Le Web et le développement de sites Web est toujours un de mes passes-temps (le tout reste d’avoir du temps), voici donc quelques sujets que j’aimerai aborder sur ce blog dans un futur proche. On verra ce qu’on peut faire 🙂

  • PHP
    • Doctrine, une librairie permettant de gérer sa base de données comme si l’on avait affaire à des objets. Un ORM quoi ! Elle a l’air très puissante et très utile mais je n’ai pas encore réussi à la prendre en main. Utilisé sous Synfony.
    • Twig, un moteur de template particulièrement efficace et facile à prendre en main. Utilisé sous Synfony.
    • Un exemple de structure MVC (avec des controller et des actions, un petit peu à la mode de Struts), l’idée étant de comprendre ce que font des frameworks comme Zend et Synfony.
  • HTML/CSS
    • Quelques tips HTML5
    • LESS, COMPASS et autre « améliorateur » du développement des CSS

Un serveur XMPP : Openfire

Publié dans XMPP | 3 commentaires

Un serveur ? Pour quoi faire ?

Dans un précédent billet où j’ai expliqué les principes d’XMPP, on a vu que dans l’architecture XMPP, pour que deux utilisateurs communiquent entre eux, ils doivent chacun dialoguer avec leur serveur XMPP et ce sont ces serveurs XMPP qui vont s’échanger des messages pour les rediriger ensuite vers leur utilisateur.

Echange XMPP Continuer la lecture

Logo Git

Lier une branche Git locale à la branche remote correspondante

Publié dans Geekeries | Un commentaire

Quel est le problème ?

Imaginez que vous avez créé une branche sur votre reposiroty Git nommée « MaBrancheAMoi ». Et que lorsque vous désirez faire un « pull », Git vous renvoit le message d’erreur suivant :

You asked me to pull without telling me which branch you
want to merge with, and ‘branch.MaBrancheAMoi.merge’ in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. ‘git pull ‘).

Ce qui le plugin EGit d’Eclipse nous traduit généralement par le message d’erreur suivant :

no values for key « branch.MaBrancheAMoi.merge » found in configuration

Cela est dû au fait que vous avez une branche locale, mais Git ne peut pas savoir avec quelle branche en ligne (remote) la lier.

Continuer la lecture

Créer un plugin jQuery

Publié dans Javascript | Laisser un commentaire

Une des grandes forces du framework javascript jQuery est de pouvoir y ajouter des plugins afin d’abstraire ses fonctionnalités favorites (qui ont parfois coûtés pas mal d’heures de réflexions) pour les utiliser simplement dans d’autres projets, ou pour pouvoir les partager avec d’autres.  En général, lorsque l’on prend le temps de transformer des bouts de codes en plugins, on en profite aussi pour étendre leurs fonctionnalités afin de pouvoir les utiliser dans un plus grand nombre de cas.

De manière générale, pour créer un plugin, on utilise le code suivant :

(function($) {
  $.fn.nomDuPlugin = function() {
    // Ici, l'incroyable code du plugin !
  };
})( jQuery );

Continuer la lecture