[NPM] Wrong python executable at install

In case you get an error similar to this when trying to npm install :

Error: Python executable "python" is v3.4.2, which is not supported by gyp.

You should tell npm which executable to use with the following command:

npm config set python python2

If you are on ArchLinux, you’re likely to encounter this problem since the default python is python3. Fortunately, it’s easy to fix.

[POC] Puppet master-agent avec Docker

Petit Proof of Concept réalisé la semaine dernière autour des technologies Puppet et Docker. L’idée consiste à utiliser Docker pour pouvoir facilement déployer un environnement master-slave Puppet et avoir ainsi la possibilité de tester ses scripts de déploiement ou plus généralement, d’étudier et de comprendre le fonctionnement de Puppet avant de passer à une utilisation en production.

Le projet permet donc la création de deux containers Docker, l’un contenant le master et l’autre l’agent. Après création du container master, on peut créer l’agent et lier les deux containers à l’aide du paramètre -link de Docker. On permet ainsi aux deux containers de communiquer entre eux sans avoir à essayer de déterminer leur IP respective à la main. Par la suite, après signature du certificat de l’agent par le master, la configuration décrite dans le fichier site.pp sous le nœud agent pourra être mise en place sur celui-ci.

node  'agent' {
  class { 'apache': }
}

Par exemple, on installe ici apache dans le container de l’agent.

Mes différents tests m’ont également permis d’identifier certains limitations au niveau de Docker:

  • Impossible de modifier le fichier /etc/hosts au sein d’un container.
  • Impossible de modifier les paramètres ulimit dans un container.

Le code est bien sûr disponible disponible sous licence libre sur Github: vvision/docker-puppet-master-agent.

Easily deploy a local MongoDB cluster

When working with MongoDB, it surely comes a time when you want to try to make it scale. First, by adding replica set, then sharding and at least mix it together to create a simple cluster with replication on each shard. Then, you might want to test monitoring or other functionality, so you will need to launch your cluster, configure it.

If everything goes right, you’ll only need to start all your MongoDB instances. Not a big deal, easy to do it at each restart of your computer, just copy paste the right commands. But what if I need a fresh clean cluster to make my test? To answer this question, I wrote a simple script to easily deploy a local mongo cluster composed of one query router, three configuration routers and two shards, each being a replica set composed of one primary mongod and two secondary mongod.

This simple project is on my Github under the name simple-mongo-cluster. The readme describes on which port you’ll find which mongo. The script provides 5 operations: {init|start|configure|stop|clean}. I will quickly describe each of it.

The init operation creates all directories needed to store logs and data. All mongo instances will be started with the start parameter. To configure the cluster, use configure. For the cluster to be configured, you might need to call configure twice, because of shards sometimes not being added at first call. The stop operation is just about shutting down the whole cluster. At last, clean deletes all directories containing the cluster configuration files, data and logs so that you can start a fresh new cluster.

I hope it will help other developers who want to easily test and discover MongoDB cluster possibilities in a local environment as it helps me. If you have any suggestions, just let me know or fork the project, add your script and send me a pull request.

Playstation Mobile: projet RockJetMan

PlayStationMobile_FeaturedImage      Cela fait maintenant depuis plus d’une année et demie que j’ai fait mes premiers pas avec le C# et le PlayStation Mobile. Mon premier projet de jeu : « Cubiq Arcadeum » n’est encore disponible nul part, mais j’espère pouvoir régler l’administratif rapidement pour pouvoir le soumettre à Sony.

J’ai eu une longue période d’inactivité, ici sur Unicoda mais je vais me mettre à poster de plus en plus régulièrement. Entre un CV à rédiger, un projet de logiciel de fouille de données répartie en Java, des TPs de réseaux et autres à coder. Je vous présente :

RockJetMan

RJM001     Un aperçu du travail effectué sur les heures grappillés à droite et à gauche sur les 10 derniers jours ! Pour l’instant le joueur peut se déplacer sur la carte comme bon lui semble, la fonction de collision n’étant pas raccorder au déplacement du joueur. Petite nouveauté sur ce projet ou l’on me prête main forte, car nous sommes à l’heure actuelle deux à coder, ce qui rajoute une petite touche de difficulté ;)

Pour l’instant mon boulot est de transmettre mon savoir faire acquis lors de la programmation de Cubiq Arcadeum à cette deuxième personne. Ainsi que de bosser sur la génération de la carte et son affichage. Cette fois la barre a été fixée un peu plus haute, mais la motivation est là !