jonathan-ramier-blog
11 posts
Don't wanna be here? Send us removal request.
Text
Configurer Rabbit MQ
Bien commencer avec Rabbit-MQ
Ce post a pour but de montrer les diverses utilisations des clients Rabbit MQ. Dans cette example
mon host sera rabbit.aramis.com
mon user sera guest
mon mot de passe sera guest
le vhost sera lapinou
le port sera celui par défaut 5672
Trois clients seront indiqués, mais seulement deux seront présentés pour établir la communication avec l'API de RabbitMQ:
Le premier étant (pour les non-geeks) l'interface web de management RabbitMQ.
La deuxième étant la ligne de commande avec l'outil Curl à installer sur votre poste si non installé
La troisième est l'outil rabbitmqadmin propre à rabbit MQ
Installation
Installation de l'interface web de management
# Lister tous les plugins $ > rabbitmq-plugins list # Activer le plugin avec la commande enable et # disable pour la désactivation #(doit être lancée en Super Utilisateur) $ > rabbitmq-plugins enable rabbitmq_management
Installation de rabbitmqadmin
Il faut au préalable avoir installer l'interface web.
# Executer cette commande depuis votre terminal puis sourcer votre bashrc $ > cd /usr/local/bin && { sudo curl -O http://localhost:15672/cli/rabbitmqadmin; sudo chmod +x rabbitmqadmin; sudo sh -c 'rabbitmqadmin --bash-completion > /etc/bash_completion.d/rabbitmqadmin'; cd -; }
Installation de curl
Installer Curl selon votre OS
Utilisation
Connection RabbitMq
rabbitmqadmin
# Se connecter à mon serveur ou autre $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest list vhosts
curl
# Se connecter à mon serveur $ > curl -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/vhosts
Vhosts RabbitMq
rabbitmqadmin
# Lister les vhosts $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest list vhosts # Créer un vhost $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest declare vhost name=aramis # Supprimer un vhost $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest delete vhost name=aramis
curl
# Lister les vhosts $ > curl -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/vhosts # Créer un vhost $ > curl -XPUT -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/vhost/aramis # Supprimer un vhost $ > curl -XDELETE -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/vhost/aramis
Utilisateurs RabbitMq
rabbitmqadmin
# Lister tous les utilisateurs $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest list users # Créer un utilisateur $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest declare user name=de password=de tags="Manager" # Modifier un utilisateur $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest declare user name=de password=de tags="Manager de" # Supprimer un utilisateur $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest delete user name=de
curl
# Lister tous les utilisateurs $ > curl -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/users # Créer un utilisateur $ > curl -XPUT -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/user/de -d '{"password":"de","tags":"Manager"}' # Modifier un utilisateur $ > curl -XPUT -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/user/de -d '{"password":"de","tags":"Manage de"}' # Supprimer un utilisateur $ > curl -XDELETE -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/user/de
Queue RabbitMq
rabbitmqadmin
# Lister toutes les queue $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest list queues # purger une queue $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest purge queue name=elasticsearch # Supprimer une queue $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest delete queue name=elasticsearch # Envoyer un message dans une queue $ > rabbitmqadmin -H rabbit.aramis.com -P 15672 -u guest -p guest publish routing_key=elasticsearch payload='{"index": {"id": "948", "locale": "fr"}}' payload_encoding=string exchange=elasticsearch
curl
# Lister toutes les queue $ > curl -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/queues # purger une queue $ > curl -XDELETE -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/queues/aramis/elasticsearch/contents # Supprimer une queue $ > curl -XDELETE -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/queues/aramis/elasticsearch # Envoyer un message dans une queue $ > curl -XPOST -H "content-type:application/json" -i -u guest:guest http://rabbit.aramis.com:15672/api/exchanges/aramis/elasticsearch/publish -d '{"properties":{},"routing_key":"elasticsearch","payload":"{\"index\": {\"id\": \"948\", \"locale\": \"fr\"}}","payload_encoding":"string"}'
Ce dernier exemple clos ce post. Lors des exemples avec rabbitmqadmin, il n'est pas nécessaire de mettre tout le temps les informations du serveur avec l'utilisateur et le mot de passe, si vous possédez ou si éventuellement vous avez importé celui d'un autre serveur. Pour connaitre les sous commandes de rabbitmqadmin, taper rabbitmqadmin help subcommands dans votre terminale. Pour plus d'information sur ce post visitez les pages réferences suivantes
Api Rabbit MQ Client Rabbitmqadmin
0 notes
Text
Installation de ZF2 Tool
Dans ce billet, je vais présenter l'installation de ZFTools. ZFTools est le fameux utilitaire en ligne de commande de Zend framework. Il permet ainsi donc de générer des modules de recréer un autre projet, lister les configurations de votre projet. Cependant entre l'outil ZFTool du framework 1 et celui du framework 2, certaines fonctionnalités ont été supprimées telles que la génération de controller-Action, de tableGateway et entity. voila encore des choses à faire de ce coté. Mais pour l'instant, installons celui-ci.
php composer.phar require zendframework/zftool:dev-master
Nous allons donc utiliser composer afin d'installer l'outil de ZF2. Une fois celui-ci installé, nous devons nous rendre dans le répertoire vendor, puis lancer la commande
php bin/zf.php
Résultat
ZFTool - Zend Framework 2 command line Tool ------------------------------------------------------------------------------------------------------------------------- ZFTool ------------------------------------------------------------------------------------------------------------------------- Basic information: zf.php modules [list] show loaded modules zf.php version | --version display current Zend Framework version Diagnostics zf.php diag [options] [module name] run diagnostics [module name] (Optional) name of module to test -v --verbose Display detailed information. -b --break Stop testing on first failure -q --quiet Do not display any output unless an error occurs. --debug Display raw debug info from tests. Application configuration: zf.php config [list] list all configuration options zf.php config get display a single config value, i.e. "config get db.host" zf.php config set set a single config value (use only to change scalar values) Project creation: zf.php create project create a skeleton application The path of the project to be created Module creation: zf.php create module [] create a module The name of the module to be created The root path of a ZF2 application where to create the module Classmap generator: zf.php classmap generate [--append|-a] [--overwrite|-w] The directory to scan for PHP classes (use "." to use current directory) File name for generated class map file or - for standard output.If not supplied, defaults to autoload_classmap.php inside . --append | -a Append to classmap file if it exists --overwrite | -w Whether or not to overwrite existing classmap file Zend Framework 2 installation: zf.php install zf [] The directory where to install the ZF2 library The version to install, if not specified uses the last available
Créons dès à présent un nouveau module dans notre projet ZFSqueleton
php bin/zf.php create module EProxy ../
Enjoy ;)
Pour plus d'informations, consulter le site suivant.
1 note
·
View note
Text
Configuration de votre wireless sur votre linux
Voici que mon nouveau mini PC vient d'arriver. j'installe donc un petit ubuntu sans interface graphique et le superflu d'Ubuntu. Voila que la problématique du wifi s'impose, car je pars de from Scratch. Commençons par deux petites installations via la commande apt-get. La première étape étant l'installation de l'utilitaire de recherche point d'accès wifi, la deuxième servant à la gestion des clés wpa
sudo apt-get install wireless-tools wpasupplicant sudo apt-get install wireless-tools wpasupplicant
sudo apt-get install wireless-tools wpasupplicant
Maintenant activez votre carte wifi avec la commande ifconfig
sudo ifconfig wlan0 up
Nous avons maintenant initialisé notre carte WIFI, nous allons effectuer un petit scan de notre réseau à l'aide de la commande IWLIST. J'éviterais toutes pratiques de hack ;) Chercher ensuite votre SSID
sudo iwlist scan
Vous recevrez dont la liste de tous les points d'accès wifi à proximité de vous. Recherchez votre ssid dans la liste, puis tapez la commande suivante :
" wpa_passphrase SSID Password >> file de destination"
wpa_passphrase BBox-280 HSUZ9K82OI6 >> wpa_supplicant.conf
Vous créez un fichier de ce type
network={ ssid="BBox-280" #psk="HSUZ9K82OI6" psk=6023e342c14fbd0ce7fd0a71a2bdfa94a36c663eb853d280d566cf14a306b934 }
Protégez ensuite votre fichier en éditant les droits sur celui-ci afin qu'il ne soit pas modifié ou lu par d'autres personnes. Une fois protégé en droit, lancez cette commande sur votre terminal en root
sudo wpa_supplicant -Dwext -iwlan0 -c Temp/wpa_supplicant.conf
iwlan0 est l'interface
-c et l'emplacement du fichier généré précédemment
Vous serez connecté au wifi cependant si vous avez de la chance vous obtiendrez une adresse ip via le dchp. Si c'est pas le cas, il faut lancer les commandes en root
sudo dhclient -r wlan0 #supprimer l'attribution d'ip cliente faite au server sudo dhclient wlan0 #demander une attribution d'ip cliente au server dhcp
Voila maintenant vous êtes connecté à votre wifi avec une ip attribué.
#commande line#linux#wireless#wifi#ubuntu#debian#iwlist#apt-get#dhclient#wpa_supplicant#wpa_passphrase
0 notes
Link
0 notes
Link
Aujourd'hui, j'essaie de nettoyer le fichier inutile dans mon projet et je commence à rechercher les fichiers en effectuant la bonne vieille commande «ls -l», résultat pas très satisfaisant pour ce que je souhaite effectuer.
Je tombe sur ce fameux lien qui explique l'utilisation de du un petit utilitaire en ligne de commande qui affiche les statistique d'espace disque.
la commande fonctionne sur Mac et Linux
du -h <path/to/dir>
8K ./wp-admin/css 468K ./wp-admin/images/screenshots 1.0M ./wp-admin/images 1.5M ./wp-admin/includes 508K ./wp-admin/js 8.0K ./wp-admin/maint 176K ./wp-admin/network 32K ./wp-admin/user
cette commande effectuera le parcours de toutes l’arborescence fichiers et dossiers/sous dossiers de l'emplacement que vous lui avait indiqué
du -hs <path/to/dir/*>
cette commande effectuera le parcours de toutes l’arborescence fichiers et dossier sans les sous dossiers.
8K ./wp-admin/css 4.5M wp-admin
En effectuant la somme de tous les sous répertoires, on atteint la somme de > 4,1 Mo ;)
0 notes
Text
Un server Web en python
Après beaucoup de recherches, je viens de mettre en place un serveur web avec la puissance de Python. Mon serveur ne permet pas de faire des taches car ce n'est pas le but recherché.
Dans un premier temps, je vous indiquerais que ma version de Python se trouve être le 3.x. C'est ensuite à vous de votre si vous souhaitez utiliser une version inférieure.
Tout dabord, nous allons créer une classe qui hérite de la classe "SimpleHTTPRequestHandler", classe qui hérite de la classe BaseHTTPRequestHandler.
# Ma classe WebServerManager permettra de gérer notre serveur Web class webServerManager (SimpleHTTPRequestHandler) :
Dans cette classe, nous allons « Overrider » deux méthodes qui sont la méthode do_GET afin de gérer les requêtes get et do_POST permettant de gérer les requêtes de type POST.
Commençons par la première méthode, qui est la fonction do_GET (). Cette requête permettra de gérer les ressources envoyé par la requête Get. Nous allons indiquer à notre serveur l'emplacement des fichiers sources grâce à la méthode suivante par rapport aux ressources demandé par le navigateur.
127.0.0.1 - [06/Feb/2013 22:24:25] "GET / HTTP/1.1" 200 -
Dans le log ci-dessus, on retrouve l'ip de notre serveur avec la commande, l'emplacement de la ressource et le code associé à la requête.
def setLocationWebServer (self) : # path_www : variable contenant l'emplacement physique des fichiers web # self.path : Emplacement de la ressource web. Ex :. ressource # Le traitement de cette méthode se chargera de trouver # l'emplacement associé à la ressource demander par le navigateur. path_www = None if self.path == "/": path_www = self.translate_path("www/index.html") else: path_www = self.translate_path("www" + self.path) pass return path_www
La méthode suivante est d'affecter le code erreur associé et le mime du fichier ressource. Si celui-ci est trouvé, le serveur se charge de lire le fichier, dans le cas contraire, il retourne le code erreur 404 File Not Found
def do_GET(self): try : # cherche la ressource associé getPath = self.setLocationWebServer() # afficher une réponse 200 avec le mime type self.send_response(200); self.send_header("Content-type", self.guess_type(getPath)) self.end_headers(); # Lecture et écriture du fichier dans le buffer f = open(getPath, 'rb') self.wfile.write(f.read()) f.close() except IOError: # Si le fichier est introuvable, on envoie la réponse 404 self.send_error(404, 'File Not Found: %s' % self.path) pass
Nous allons lancer notre serveur le port utiliser sera le 8822, vous pouvez le changer comme vous le souhaitez. De plus nous allons déclencher le navigateur web par défaut. L'arrêt du serveur se fera par interruption de commande.
if __name__ == '__main__': try : # initialiser le server sur le port et le manager que vous souhaitez srv = HTTPServer(('', 8822), webServerManager); print("Start server on port 8822") # lancer votre navigateur webbrowser.open("http://localhost:8822/") # démarrer votre serveur srv.serve_forever() except KeyboardInterrupt: print("Stopping server on port 8822") # arrêter votre serveur srv.server_close() pass
0 notes
Text
Pourquoi google n'aime pas mon site ?
Dur de faire partie de l'élite des deux premières pages quand on sait que notre contenu est tout a fait adapter aux mots clés que nous lui avons associés. les mots clés forts sont les mots clés que la plupart des internautes tapent dans le moteur de recherches afin d'avoir votre site en ligne de mire. Sachez que Google n'est pas l'ami des webmaster et des référenceurs, mais plutôt de l'internaute. La philosophie de Google est de satisfaire d'abord la demande de l'internaute par rapport aux requêtes qu'ils ont demandées.
Quels sont les erreurs à ne pas faire ?
Le Spamindexing
Technique qui consiste à rajouter du contenu visible par les bots des moteurs de recherche et invisible par les internaute.
Exemple : Je crée une page html avec un contenu parlant d'écran d'ordinateur à tube, cependant je vais parler de télévision en led, cette rédaction sera ensuite cachée pour parler du sujet principal qui les écrans d'ordinateur avec display none en css En effet grâce, à cette technique, le robot de google rapportait à ses serveurs du contenu qui se trouve sur le site, et place celui-ci en bonne position dans le SERP. L'internaute quand à lui deux choix quand il voit que le contenu du site ne l'interesse pas. Il effectue une nouvelle recherche ( rebond ), ou ferme le média afin de trouver un autre moyen de recherche.
Le Cloaking
Technique légèrement différente de la précédente mais ayant toujours le même but qui est de tromper le bot des moteurs de recherche.
Exemple : Je crée une page html avec un contenu parlant toujours d'écran d'ordinateur à tube cathodique,la encore je vais créer un article sur la même url qui parle de télévision en led. Ensuite, je vais jouer avec le user agent afin de gérer les internautes et les bots vers la page que je désire. rien de plus compliquer cependant ca détruit les informations qu'ont récoltées le bot. Cette acte peu scrupuleux rapportait des place dans l'indexage des moteurs de recherche ramenant l'internaute toujours à ses deux choix qui est le rebond ou l'utilisation d'une autre source.
Le Duplicate Content
Très contenu car la copie de source d'un site à un autre, c'est vraiment pas très jolie à voir et donc Google estime qu'il ne peux pas afficher deux fois le même contenu surtout si ceux-ci ne correspondent pas à la recherche. De nombreux outils permettent de gérer votre contenu afin de verifier qu'il n'y a pas de copie de contenus.
L'utilisation de ses techniques, qu'elles soient intentionnelles ou pas amène à un mauvais référencement de votre site.
0 notes
Text
tutorial Git en SSH

Vous avez installer GIT sur un ordinateur et vous souhaitez l'utiliser comme serveur et y avoir accès sans trop forcer. Utilisez le ssh afin d'atteindre votre serveur mais avant de faire toutes ces manipulation, il faut tout d'abord mettre en place un dépôt git sur votre futur serveur.
server $ mkdir ~/GIT/depot/ server $ cd ~/GIT/depot/ server $ git init --bare server $ cd .git/ server $ cp hooks/post-update.sample hooks/post-update
Rentrons dans le détail en expliquant les commandes que nous avons exécutées :
Nous avons créer un répertoire depot
Nous initialisons ensuite un repository git dans le dossier
copier hook update afin d'effectuer des mise à jour à chaque commit
remarque afin de ne pas avoir une erreur du type [remote rejected], il faut exécuter la ligne suivante sur le serveur à l'emplacement de votre dépôt git
server $ git config --bool core.bare true
Passons maintenant au poste client (le développeur). Vérifiez que vous êtes sur le réseau de votre serveur. Cela serait bête de dire que cela ne fonctionne pas car vos deux postes sont sur deux réseaux différents.
Vous pouvez soit utiliser Eclipse ou la ligne de commande, cela donne la ligne suivante
client $ git clone user@server:~/GIT/depot/.git
0 notes
Text
Error codeSign pendant la création d'IPA
Il se trouve que j'ai rencontré un problème concernant la création d'une IPA sur Xcode 4.5.2. Nous allons procéder à l'archive de notre application, si nous rencontrons une erreur, c'est que le certificat de développement n'a pas été indiquer dans les build settings, vérifier l'option code signing.
Une fois l'archivage finaliser, vous pourrez commencer la procédure de packaging. Au moment du choix de l'identité du développeur, Xcode cherche à trouver le nom du développeur avec le provisioning. Si celui-ci ne fonctionne pas procédez à la manipulation suivante :
sélectionnez l'archive
faîtes un click droit afin de le trouver dans le Finder
Faîtes un click droit sur le fichier et cliquez " afficher le contenu du paquet "
Entrez dans le dossier Application
Créez un répertoire Playload
Déplacer le fichier app dans le répertoire Playload
Compressez celui-ci en zip
Changez l'extension de votre fichier compressé en ipa
Quand j'ai testé cette manipulation, j'ai halluciné cependant elle fonctionne belle et bien.
0 notes
Text
Hello World ! 2/
Créer votre première application Hello World,
Je ne peux que vous rediriger sur ce le site Microsoft en anglais
http://msdn.microsoft.com/en-us/library/windows/apps/hh986964.aspx
sur ce topic vous saurez utiliser :
Créer un nouveau projet Metro en HTML.
Ajouter du contenu de démarrage.
gestionnaire d'évènements (touch, mouve event etc).
Thème black ou light.
Créer un thème personnalisé.
0 notes
Text
Window 8 : release preview 1/
Ce post a été réalisé pendant la version release preview et pourra susciter des changements lors de la version finale.
Bien démarrer sur Windows 8
D'ici quelque mois, ce post sera obsolète ...
Commençons par le téléchargement de Windows 8 (Iso.)
Après téléchargement et installation de l'os, Installons now les dev tools
Bien une fois les installations finies, vous obtiendrez automatiquement votre certificat d'authenticité afin de pouvoir valider et de développer des App pour le Windows Store. Dans le cas ou vous n'avez pas utilisé Visual studio, vous pouvez obtenir ce certificat via le PowerShell.
# Utilisation de powerShell # vérifie et affiche l'état de votre certificat C:\PS> Show-WindowsDeveloperLicenseRegistration # permet l'obtention de votre certificat de développement C:\PS> Get-WindowsDeveloperLicense # révoque votre certificat de développement C:\PS> Unregister-WindowsDeveloperLicense
Ce certificat permet d'indiquer aux utilisateurs que l'App fourni est fiable et ne possède pas de virus ni d'instabilité pour votre système.
Le développement ne se basera pas sur les langages natifs de Microsoft tel que C++ ou VB/C#, nous baserons sur un format Web en HTML5/CSS ainsi que du Javascript.
0 notes