| |
mar 16
Je souhaitais approfondir MongoDB depuis un petit moment déjà. Et bien qu’il y ai suffisamment de ressource sur le site officiel, la lecture d’un ouvrage papier a toujours été pour moi un luxe lors des mes découvertes techniques.
MongoDB
Pour commencer,
C’est un serveur de base de donnée NoSQL stockant les données sous forme de Document.
Contrairement à d’autres serveurs NoSQL comme Redis qui ne permet un acces aux données que par une clé unique, MongoDB permet d’acceder à un ou plusieurs Document via un système de requête pouvant utiliser des indexes.
MongoDB c’est aussi un déploiement Haute Disponibilité simplifié par la Réplication, une répartition des données – Sharding – possible pour les projets d’envergures, du Map/Reduce et du stockage de fichier via GridFS.
Bref, c’est une mine d’or pour les technophiles.
Le livre
Ce livre s’adresse à ceux souhaitant découvrir MongoDB, voici les différents chapitres
- A database for the modern web
- MongoDB through the JavaScript shell
- Writting programs using MongoDB
- Document-oriented data
- Queries and aggregation
- Updates, atomic operations, and deletes
- Indexing and query optimization
- Replication
- Sharding
- Deployment and administration
Il s’agit d’un ouvrage écrit en Anglais dans un registre légèrement plus soutenu que les autres livres techniques Anglais. Heureusement il ne s’agit pas d’un roman, on comprends donc assez facilement les messages que souhaite faire passer l’auteur.
Dès les 50 premieres pages, j’ai été convaincu par cette « nouvelle » technologie !
J’avais énormément de question sur la structure d’un projet MongoDB et la migration depuis un SGBDR.
C’est là que les exemples sont très parlant et illustrent les problématiques qu’un développeur rencontra à coups sûr. On trouve réponse à de nombreuses questions concernant la conception d’un projet avec MongoDB.
La partie qui m’a un peu déçu concerne le Sharding sous MongoDB.
Je m’attendais à une fonctionnalité simple à mettre en place alors qu’en fait, cela implique quelques contraintes sur les indexes, et alourdit de maniere significative l’administration.
Au final, c’est moi qui avait un mauvais jugement, le Sharding étant une fonctionnalité tellement excellente pour les entreprises disposant d’un jeux de données colossale qu’il ne fallait pas s’attendre à une simple commande CLI. De grands pouvoirs impliquent de grandes responsabilités !
Pour conclure
MongoDB a un avenir plus que certain au sein de nos SI. Il manque encore un peu de maturité à ce projet pour qu’il puisse s’imposer face à MySQL. Mais un jour on utilisera les SGBDR uniquement lorsque l’on aura des contraintes liées aux transactions ou à une propriété dédiée des nos SGBRD.
Pour aller un peu plus loin

Si vous êtes développeur PHP, je vous recommande fortement la lecture du projet Doctrine MongoDB ODM.
Mon point de vue est qu’il s’agit d’un must have sur les projets MongoDB.
Sans parler de la possibilité de faire du mapping vers des POJO, MongoDB ODM permet d’assembler deux collections liés par des références, et je vous laisse découvrir l’intérêt du priming qui ne vous laissera surement pas de marbre.
Commander le livre sur Amazon.
Mots-clefs : Databases, Découverte, Doctrine, Driver, Java, MongoDB, MySQL, PHP, RDBMS, SGBDR, SQL, Transaction
déc 28
Apres avoir installé et configuré correctement votre environnement LAMP sous CentOS 6 vous souhaitez installer APC.
Ce dont vous avez besoin avant de commencer :
- PEAR,
- les interfaces de développement de PHP, Apache & PCRE,
- un compilateur C & l’outil Make.
yum install php-pear php-devel httpd-devel pcre-devel gcc make
Ensuite, on lance la compilation de l’extension APC.
Voici les questions qui vous seront posées, personnellement j’ai utilisé les valeurs par défaut.
Enable internal debugging in APC [no] :
Enable per request file info about files used from the APC cache [no] :
Enable spin locks (EXPERIMENTAL) [no] :
Enable memory protection (EXPERIMENTAL) [no] :
Enable pthread mutexes (default) [yes] :
Enable pthread read/write locks (EXPERIMENTAL) [no] :
On active l’extension PHP
echo "extension=apc.so" > /etc/php.d/apc.ini
Et on redémarre Apache.
Vous pouvez vérifier que vous avez correctement installé APC via phpinfo().
Aussi, n’hésiter pas à utiliser le script PHP d’administration de APC.
Ici, nous le copions dans notre répertoire HTTP.
cp /usr/share/pear/apc.php /var/www/apc.php
Mots-clefs : Apache, APC, Cache, CentOS, Compilation, Optimisation, PHP
mar 31
L’équipe de technique de Konbini recrute !
On recherche un développeur passionné avec des compétences avancées sur le Framework Zend & des connaissances sur le Framework Doctrine 1.2 et/ou 2.
En description de poste, voici l’annonce officielle : vos principales missions seront le développement continu de l’application métier de Konbini ayant pour finalité de développer un écosystème cohérent autour de l’activité de production, diffusion et monétisation de contenus vidéos. Vous participerez également à l’ingénierie et à la mise en place des services des applications client de la plateforme publique de Konbini..
Des connaissances en HTML, XML, CSS & jQuery sont bien évidemment necessaires.
Nous travaillons beaucoup avec les technologies Adobe sur des projets ActionScript 3 pure ou Flex. Si vous avez des notions sur ces langages, vous serez moins perdu lors de nos discutions en pause café
A titre personnel, l’ambiance chez Konbini est tres agréable et vous changera complètement des SSII ou WebAgency. Si vous recherchez une aventure qui sorte de l’ordinaire avec des projets ambitieux, contactez nous !
Lien vers l’offre RemixJobs
Mots-clefs : Annonce, Apache, CDI, Embauche, Emplois, Framework, Linux, PHP, R&D, Recherche, Recrutement, Zend
jan 19
Wikipédia : phpDocumentor est un outil de documentation écrit en PHP. Il est semblable à l’outil de javadoc. Il est sous licence LGPL. Il permet d’aider les développeurs à la documentation de leur code. Il analyse les commentaires de leurs codes.
Pour pouvoir s’en servir, il faut installer PEAR avant tout.
J’utilise WAMP 2.0i avec PHP 5.3 et Apache 2.2.
Installation PEAR avec WAMP
Utiliser l’invite de commande et exécuter go-pear.bat du répertoire d’installation de WAMP.
cd C:\wamp\bin\php\php5.3.0\
go-pear.bat
Si comme moi vous avez un jolie Warning, pas de panique, on va faire autrement
cd C:\wamp\bin\php\php5.3.0\
php.exe -d phar.require_hash=0 PEAR\go-pear.phar
Ensuite, suivez le tutoriel de 6ma.fr à la lettre et tout se passera bien.
Installer phpDocumentor avec PEAR
PEAR est un gestionnaire de librairie, c’est lui qui va se charger de l’installation de PHPDocumentor
Pour cela, exécuter les commandes suivantes
cd C:\wamp\bin\php\php5.3.0\
php PEAR/pearcmd.php install phpdocumentor
Pour utiliser ce petit outil, je vous laissez avec la documentation officiel de PHPDocumentor ainsi qu’un tutoriel pour son utilisation avec Eclipse.
Mots-clefs : Formation, Installation, PEAR, PHP, Tutoriel, WAMP
jan 12
Voici un petit script PHP qui permet de convertir une adresse IP en entier.
127.0.0.1 donne 2130706433
Cela peut-être intéressant pour les systèmes de géolocalisation par IP.
echo ipToDecimal ("127.0.0.1"); //Affiche 2130706433
function ipToDecimal ($_pIP)
{
$aIPDecimale = explode (".", $_pIP);
for ($i = 0 ; $i < count ($aIPDecimale) ; $i++)
{
$aIPDecimale[$i] = fillZero (decbin ($aIPDecimale[$i]));
}
$ipDecimal = fillZero (bindec (implode ($aIPDecimale)), 10);
return $ipDecimal;
}
function fillZero ($_pBinary, $_pLimit = 8)
{
while (strlen ($_pBinary) < $_pLimit)
{
$_pBinary = "0" . $_pBinary;
}
return $_pBinary;
}
Mots-clefs : Convertion, Geolocalisation, IP, PHP
déc 30
L’idée est toute simple, pouvoir synchroniser son projet sur un serveur FTP en utilisant Eclipse.
La raison principale : ne pas devoir lancer un client FTP à chaque fois que l’on souhaite envoyer un fichier PHP.
Mise en condition
Lorsque l’on fait une recherche sur Google, on a le choix entre un Forum qui date de l’an 1902 et WebDAV and FTP Support .

Installation
Soit je suis complètement demeuré, soit je ne sais pas lire… Mais partout où Google m’a porté je n’ai rien trouvé pour installer le plugin FTP.
C’est en regardant la page officiel du plugin SFTP Eclipse que j’ai trouvé ma réponse.
Donc pour installer WebDAV & FTP Support, ainsi que SFTP, voici la procédure honteusement copiée et modifiée JCraft
You need Eclipse SDK 3.3(or higher) to enjoy this software.
- Help > Software Updates > Find and Install…
- Choose Search for new features to install
- Click New Remote Site…, and then put http://eclipse.jcraft.com/ for the URL field.
- Choose SFTP Plug-in, WebDAV & FTP Support, and then click Select Required button.
For Eclipse SDK 3.2, try the Update Site http://eclipse.jcraft.com/3.2/
PS: Si vous pensez que je suis complètement demeuré, merci de ne pas faire de commentaire dessus 
PS2: J’utilisais Dreamwaver pour l’édition de fichier PHP. Et la synchronisation FTP était 100 fois mieux que la solution proposée par les plugins Eclipse.
Mots-clefs : Dreamwaver, Eclipse, FTP, PHP, Serveur, SFTP, Synchronisation, WebDAV
août 07
Cela fait plusieurs mois que l’on cherchait un gestionnaire de projets en ligne.
Nos besoins
Nous sommes des grands consommateurs des outils type CMS, nous souhaitions donc un outil :
- Accessible via Internet
- Gratuit
- Multi-utilisateurs
- Utilisant PHP / MySQL
Sachant qu’il fallait gérer des projets, voici nos attentes vis-à-vis de la gestion d’un projet :
- Ajouter des tâches avec des dates limites
- Attribuer des tâches à des utilisateurs
- Supporter des documents
- Enregistrer des messages
Mots-clefs : ASP, CMS, Entrepreneur, Gestion, Management, Outils, PHP, Planet Libre, Projet, SaaS
mai 04
Suite à l’acquisition d’un serveur dédié chez OVH pour en faire principalement un serveur LAMP. Nous avons cherché à configurer au mieux notre serveur.
Les questions que nous avons eu sont du type : « Où mettre mes scripts PHP ?« , « Comment gérer les partitions systèmes ?« , « Quelles sont les paquets à installer ?« , ou encore « Comment sécuriser son serveur, et quel niveau de paranoïa avoir ?« .
Dans un soucis de professionnalisme, nous avons souhaité confirmer nos connaissances en utilisant Google, des forums et même des livres (C’est pour dire !)
Plusieurs articles verront donc le jour pour répondre à ces questions et par la même occasion centraliser l’information. Voici le plan :
- Système d’exploitation : GNU/Linux Debian
- Apache
- MySQL
- PHP

Introduction aux bonnes pratiques LAMP.
Les raisons qui nous poussent à sécuriser notre serveur sont évidentes, et l’utilisation de normes aussi. De nombreuses personnes laissent à désirer la configuration de leur serveur en faisant confiance aux paramètres par défaut. Ce n’est pas forcement un tord car parfois, il vaut mieux ne rien faire que faire mal. Mais quitte à ne rien faire, prenez un serveur mutualisé ou demander nous 
Un serveur en production que l’on n’a pas configuré, qui s’arrête sans raison ou qui ne fonctionne pas correctement peut s’avérer être un vrai calvaire pour l’administrateur qui s’en occupe.
On ne sait rien, on a tout à apprendre
Commencer par vous dire que vous ne savez rien et vérifier par étape vos connaissances.
On devient trop facilement un vieux grigou qui croit tout savoir et qui ne fait que des conneries.
Si l’on est venu à écrire cette article, c’est que nous avons commencé par nous dire « Bon, nous voulons un serveur LAMP, comment procéder ? Je ne suis plus sûr de… » Et c’est d’ailleurs grâce à ce genre de question que l’on apprend pleins de nouvelles choses. Car d’un lien hypertexte à un autre, on en apprend des choses.
Vraiment, ne soyez sûr de rien, vérifiez toujours à deux fois vos connaissances.
Utilisation de machine virtuelle
Pensez à avoir une machine virtuelle ayant le plus de caractéristiques communes avec votre serveur dédié.
Lorsque vous souhaitez ajouter un paquet ou faire une modification même la plus simple, effectué là sur votre machine virtuelle.
Optez pour les mêmes conditions d’accès au prompt.
Il est fort probable que vous utilisiez un accès SSH pour vous connecter sur le dédié, faite de même pour votre machine virtuelle. L’exemple qui donne raison à cette bonne pratique, c’est l’ajout d’une règle au firewall qui bloque l’accès SSH. Résultat vous n’avez plus aucun accès à votre serveur dédié et vous devrez dans de nombreux cas réinstaller le système.
Ne pas bruler la corde par les deux bouts
Commencez par le début, et profitez du temps que vous avez avant de mettre en production pour effectuer vos réglages. Car ce n’est pas une fois en production qu’il faudra faire de belles gaffes.
L’utilisation d’une VM – Virtual Machine – est ici mise en avant. Car en production, vous pourrez faire vos testes sur la VM sans risquer d’avoir des erreurs 404.
De plus, si vous avez installé en parallèle votre dédié et votre VM, vous aurez une configuration réellement identique l’une pour l’autre, ce qui vous permettra d’assurer encore plus au niveau de vos tests.
Être à jour
Vous pensez que je vais vous parlez de votre machine ? Et bien non, pas encore, cela viendra dans le chapitre approprié sur votre Système d’exploitation GNU/Linux 
Le sujet de cette sous-partie, c’est vous. Nous avons commencé par dire que vous ne saviez rien. Vous devez donc vous tenir informé sur l’ensemble des logiciels de votre machine.
Je ne dit pas que vous devez suivre une formation pour administrateur système expérimenté.
Mais vous devez au moins faire l’effort de vous abonner à un flux RSS sur la sécurité de votre distribution, de ces nouveaux paquets, des failles sur PHP ou sur les applications hébergées.
Postscriptum
Les articles ne sont pas encore écrit, si vous souhaitez avoir des explications sur la configuration Linux, Apache, MySQL ou PHP. N’hésitez pas à le demander dans les commentaires.
C’est avant tout pour moi un moyen de mettre au clair mes idées, de savoir comment je vais configurer le serveur et surtout d’avoir un post-it amélioré.
Mots-clefs : Apache, CMS, Conseils, Infogérance, MySQL, PHP, Serveur, Tutorial
jan 03
Ceux qui me traite de geek ne peuvent pas comprendre.. Ce matin, sous la douche m’est venu une idée, pourquoi ne pas compiler le code php ?
En effet, j’utilise Drupal depuis quelques semaines maintenant, et je m’appercois qu’il nécessite plus de temps à l’affichage que pour des sites plus simples. En effet, quand on connai un peu le code du CMS, on comprend vite qu’il fait appel à de nombreux traitements, que se soit des inclusions, ou de simple vérification de condition.. au final, on obtient quelques choses de plus lent qu’un site classique.
J’ai donc été faire un tours du coté de google, et j’ai découvert eAccelerator, et Zend Optimizer.
Le principe étant que le code php est interprété par votre serveur à chaque demande de visiteur. Durant cette interprétation, le code est analysé (syntaxe, grammaire..) puis compiler pour être exécuter (on parle quand même d’interprétation, même si on est bien loin de l’interprétation HTML de votre navigateur).
Le petit eAccelerator se propose de conserver en mémoire vive le code compiler pour le réutiliser si un utilisateur souhaite consulter à nouveau la page.
Quand à Zend Optimizer; il me semble qu’il compile le code et ensuite une machine Zend permet de ‘exécuter.
Deux avantages à cette solution, optimisation dans certain cas de la vitesse d’exécution, et chiffrement du code source vu qu’il est transformé en byte code.
Article connexe : Javascript et PHP sont-ils des sources de ralentissements ?
Edit 11 Janvier 2010 : Roadsend à développer un compilateur PHP qui fournit du Bytecode exécutable directement par votre système d’exploitation.
Il existe une version Unix, FreeBSD et Windows.
Mots-clefs : Compilation, Idée, Optimisation, PHP
|
|
Commentaires récents