MyFacebookSpace

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 30 juin 2010

Installer ejabberd sous Mac OS X depuis le repository Git

Tout est dans le titre, l'idée est de pouvoir installer depuis les sources afin d'avoir un environnement de developpement de modules ejabberd "up and running" :)

Dans les pré-requis il faut évidemment disposer d'erlang et de Git sur sa machine.

A titre personnel j'ai éprouvé des difficultés a compiler Ejabberd avec la version Erlang de macports ainsi qu'avec une version d'Erlang compilé spécialement pour ma machine.

As always la solution la plus simple était en fait la meilleure : j'ai installé Erlang via l'excellent Homebrew, et comme vous allez le voir dans la suite de ce post, cela permet de réaliser une installation simple et efficace d'un environnement de développement autour d'Ejabberd.

Versions utilisées dans ce tutorial : 

Erlang : R13B04

Ejabberd : 2.1.4

Lire la suite...

lundi 28 juin 2010

Erlang : shell, supervisor et propagation des erreurs
















Une petite note au cours de mon apprentissage d'Erlang sur la propagation des erreurs.

C'est un complément au chapitres 5 et 6 de cet excellent livre.

Le problème en résumé : 

Il s'agit d'un serveur hello world, dont la mise en oeuvre est assuré par l'utilisation des behaviour supervisor et gen_server du framework Erlang/OTP.

Le serveur propose du stockage clé/valeur et de la recherche sur les clé.

Volontairement pour tester l'aspect "supervisor" de notre serveur, une erreur dans la logique applicative (sur la fonction "retrieve/1") a été crée afin de produire un crash et de vérifier si le processus supervisor effectue correctement sa tâche :)

Pas de souci sur la mise en oeuvre de cet exemple mais comme le fait remarquer l'ouvrage pour bien tester ce comportement il faut prendre une précaution particulière : 

Démarrer le supervisor et lancer une fonction cliente du serveur depuis 2 shell erlang différents.

La raison est simple, voici ce qu'il se passe si le démarrage du superviseur et l'appel a une fonction cliente sont effectués depuis le même shell :

L'erreur coté serveur va provoqué un crash du processus effectuant l'appel client (shell:eval).

Le processus shell:eval propage l'erreur jusqu'au supervisor (lui aussi linké à notre shell:eval, car il a été lancé via la ligne de commande).

Le supervisor avec trap_exit a true va recevoir le signal EXIT mais il ne gère que les signaux EXIT correspondant au Pid du serveur hellosrv).

Il va se terminer,ne nous permettant pas de le tester (et verifier s'il a bien redémarré le serveur hellosrv).

Le processus shell:eval se termine et un nouveau processus shell:eval est créé.

voici les liens entre processus qui expliquent ce comportement :

Un comportement simple mais qui juste avec le livre, n'est pas forcement évident à comprendre dans les moindres détails ;)

vendredi 2 mai 2008

Tomcat 6 avec l'apache portable runtime

Installer Tomcat 6 est couvert dans de nombreux tutoriaux.

Dans ce post, je vais couvrir l'installation de tomcat 6 avec l'Apache Portable Runtime, ce qui permet au serveur tomcat d'utiliser des librairies natives pour gérer le SSL ou pour servir des fichiers statiques par exemple.

Lire la suite...

mercredi 23 avril 2008

Open SSL : Générer ses certificats


Vouloir établir une connexion sécurisée entre un internaute et un site web lors d'un formulaire demandant par exemple des coordonnées banquaires ou un login / mdp est un besoin fréquent.

Pour ce faire, il faut chiffrer les données transmises entre le navigateur du client et le serveur web.

Lire la suite...

jeudi 17 avril 2008

Installer un annuaire ldap

Voici un petit guide d’installation open ldap sous ubuntu (7.04 version dédibox, mais ce qui suit  fonctionne sur les versions 7.10 et 8.04)  vous permettant d’installer un annuaire ldap pour, par exemple, gérer un référentiel d’utilisateurs et faire du single-sign-on entre différentes applications.


Lire la suite...

Hébergement et DNS


Mettre à disposition d'une communauté de personnes un site web n'est pas forcément aussi compliqué qu'il y parait.

Le but de ce post, contrairement à d'autres posts sur mon blog n'est pas d'être exhaustif techniquement et de vous guider pas à pas mais juste de vous donner une idée claire sur les étapes qui mènent jusqu'à la mise en ligne d'un site web.

Le commencement, c’est évidemment de disposer d'une machine pour héberger le site web et dans un second temps, de faire en sorte qu’un internaute puisse accéder à votre machine en tapant une url du type http://www.mondomaine.com dans son navigateur web préféré.

Enfin il faudra bien sur ensuite installer des logiciels et recourir le plus souvent à du développement pour réaliser votre site web.

Lire la suite...

Talend : Un exemple de composants customisés

Après avoir introduit Talend dans le post précédent, on enchaîne avec la présentation de composants customisés.

Ce post va vous fournir les ressources pour utiliser 2 composants dédiés à l’utilisation du framework Log4J au sein de Talend Open Studio.

Un des composants initialise le framework (à l'aide d'un fichier XML) et l'autre sert à générer un log avec le niveau souhaité et le l’objet logger (au sens log4j) souhaité.

Cela fait suite à mes diverses missions pour Talend ou assez régulièrement il fallait distinguer un flux de logs fonctionnels et un flux de logs techniques.

Les composants Log4J permettent de répondre simplement à la mise en place de logs fonctionnels (comptes- rendus, suivi d’avancée, etc...), les logs techniques étant couvert par les composants classiques talend, et l'AMC (un outil d’analyse de logs techniques officiel Talend).

Voici quelques informations sur les composants que j'ai mis à disposition sur l’écosystème talend (http://www.talendforge.org/ext/index.php) :

Commençons par le plus important : les icônes :D

Lire la suite...

- page 1 de 2