Flux RSS

mardi 9 novembre 2010

Le projet 42framework

Après plusieurs mois de silence, je reviens écrire sur le blog pour vous présenter un des projets que je mène actuellement.
Ce projet est un framework PHP, nommé 42framework. J'en avais déjà parlé ici même mais le projet a bien évolué depuis cette petite présentation.

42framework est développé avec PHP 5.3 et repose sur une architecture HMVC, version "améliorée" de MVC.
Si vous voulez en savoir plus, je vous invite à visiter le blog du framework, où j'ai écrit une présentation plus complète.
Vous pouvez également télécharger le framework sur github.

Voilà, un billet très court pour relancer un peu le blog, que j'ai mis à jour par la même occasion (notamment la page A propos). Je n'avais rien écrit depuis un moment ici, mais sachez que j'ai publié plusieurs articles, sur le blog du framework et sur le site du laboratoire RIA de Supinfo, dont je suis membre. Je vous invite à y jeter un oeil ;).

Partager ce billet :

samedi 21 août 2010

Flattr, enfin une alternative à la publicité ?

Flattr, la plateforme de micropaiement créée par l'un des fondateurs de The Pirate Bay, est récemment sortie de sa phase de beta. Il est à présent possible de s'y inscrire sans invitation. J'ai donc profité de l'occasion pour l'installer sur le blog.
Petite explication du "concept" et de l'utilité qu'il pourrait avoir.

Lire la suite...

Partager ce billet :

samedi 7 août 2010

Migration du blog

Bonjour à tous !

Cela fait un petit moment que je n'ai pas posté d'article sur ce blog. Je suis actuellement en stage et je n'ai pas vraiment le temps pour m'occuper du blog.
Cependant, j'ai quand même réussi à le migrer sur un nouveau serveur. Au programme, changement de thème et améliorations en tout genre (la coloration syntaxique est enfin là :D).
Le blog devrait encore changer un peu dans les prochaines semaines, le temps d'installer tout ce qu'il faut et de personnaliser le tout.
De nouveaux articles devraient également arriver.

J'espère que les changements vous plairont, n'hésitez pas à donner votre avis !

A bientôt.

Partager ce billet :

samedi 12 juin 2010

Projets de groupe SUPINFO 2010

Ces dernières semaines ont été plutôt chargées. En effet, dans le cadre de mes études à SUPINFO, j'ai participé au développement de deux projets de groupe.

Le premier est un jeu de VideoPoker, développé en langage C avec la bibliothèque SDL. Je vous invite à visiter le site web mis en place pour l'occasion pour plus d'informations : VideoPoker

Le second est un jeu de casse-brique, développé en Assembleur. Vous pouvez trouver une description plus détaillée ici : BreakWarrior

Je profites également de ce petit article pour remercier mes camarades qui ont participé à ces projets : Mickael, Gael, Aymeric et Pierrick.

Partager ce billet :

mercredi 19 mai 2010

PHP et MongoDB

Aujourd'hui, un article présentant l'utilisation de MongoDB avec PHP.
L'installation de MongoDB et du driver PHP correspondant ne seront pas traités. La documentation sur le site officiel est assez claire et l'installation très simple. Si toutefois vous rencontrez des problèmes, je pourrais répondre à vos questions dans les commentaires.
--> Guide d'installation de MongoDB
Dernier point avant de commencer : ceci est une traduction de l'excellent article publié sur le blog de dealtaker.com, intitulé "PHP & MongoDB Sitting in a Tree: Part 1", avec l'aimable autorisation de son auteur.
Tout au long de l'article, nous verrons les différences d'utilisation entre MongoDB et MySQL pour les opérations les plus courantes. C'est parti !

Lire la suite...

Partager ce billet :

mardi 18 mai 2010

Courte introduction à NoSQL et MongoDB

Aujourd'hui, je vais vous présenter la base de données MongoDB.

Elle fait partie du mouvement NoSQL, qui a commencé a émerger il y a environ un an. Je vais donc commencer par expliquer le but de ce mouvement puis je parlerais de MongoDB en particulier.

"Not only SQL"

NoSQL signifie "Not only SQL". Ce mouvement vise à promouvoir les différentes bases de données "alternatives" aux SGBDR (Système de Gestion de Base de Données Relationnelle) classiques tels que MySQL, PostgreSQL, Oracle, etc...
La différence principale entre ces bases est la notion de "relationnel" et tout ce que cela implique (schéma des tables notamment), bien moins présent (voir même pas du tout) dans les bases NoSQL.
Le mouvement n'est pas très connu pour l'instant, il compte pourtant dans ses rangs quelques uns des plus grands acteurs du Web actuel, comme Google, Amazon, Twitter, Facebook, Digg et bien d'autres.
Pourquoi toutes ces entreprises ont-elles fait le choix de migrer leurs données vers des systèmes NoSQL ?
S'il y a un point commun entre ces différents sites, c'est le fait qu'ils bénéficient d'un très fort trafic et par conséquent, qu'ils doivent traiter une masse de données gigantesque. C'est là que les bases de données NoSQL entrent en jeu.
En effet, ces bases ont l'avantage d'être extrêmement souples dans leur représentation des données et bénéficient, en général, d'une grande "scalabilité" qui leur permet d'encaisser des montées en charge importantes.

Il existe de nombreuses bases de données NoSQL. On peut citer par exemple Cassandra, utilisée par Facebook, Twitter et Digg, HyperTable, similaire à BigTable qui est utilisée par Google, SimpleDB, utilisée par Amazon ou encore le Projet Voldemort, utilisé par LinkedIn
On peut cependant les regrouper en quatre grandes familles :

  • Clé-Valeur
  • Orientée graphe
  • Orientée colonnes
  • Orientée document

Je ne vais pas décrire ces différentes familles dans cet article mais si vous voulez en apprendre plus sur les bases de données NoSQL, je vous conseille la lecture de cet article : Tour d’horizon des bases de données NoSQL

MongoDB : {name:"mongo", type:"DB"}

Passons maintenant à MongoDB. Cette dernière fait partie des bases de données orientées document.
MongoDB enregistre les données dans des documents. Chaque document est l'équivalent d'une ligne dans une table MySQL. Ensuite, les documents sont regroupés en collections, équivalent des tables de MySQL. Cependant, différence fondamentale avec MySQL, MongoDB est "schema-less", c'est-à-dire qu'il n'y a pas de schéma de table. Deux documents appartenant à une même collection peuvent être totalement différents.
Imaginons que nous voulions stocker une fiche de renseignement sur les membres de notre site. Avec MySQL, il faudrait créer une table "profil" avec les champs qui vont bien : nom, prénom, adresse, téléphone, etc...
Imaginons maintenant que certains de ces champs ne soit pas obligatoire. Notre table contiendrait alors un grand nombre de champs ayant pour valeur null par défaut, car ils n'ont pas été remplis par les membres. Ces champs ne servent à rien en l'état, pourtant, ils prennent de la place dans la base de données.
Avec MongoDB, il suffirait de définir ces champs uniquement lorsqu'ils sont remplis. Par exemple, un membre aurait une fiche contenant uniquement son nom, son prénom et son adresse et un autre membre, ayant rempli sa fiche, aurait, en plus de ces champs, son numéro de téléphone et son adresse email définis dans la base de données.
On voit là la flexibilité du système.

MongoDB embarque également un système de requête avancé, ce qui lui permet de se démarquer des autres systèmes NoSQL de type clé-valeur avec lesquelles il est impossible d'effectuer des requêtes fines.
Les requêtes se font à l'aide de tableaux. Par exemple, si je veux récupérer uniquement le document ayant une valeur de "pseudo" à "johndoe", je ferais un tableaux comme ceci :
array('pseudo' => 'johndoe');
C'est un exemple très simple, je ne montre même pas les fonctions à utiliser pour communiquer avec la base de données. Ce sera l'objet d'un prochain article.
Ce système permet de coller au plus près des données. En effet, lorsque l'on veut enregistrer des données dans la base, ce sont des tableaux du même type que l'on utilise.

Pour résumer, on pourrait dire que MongoDB bénéficie un peu du meilleur des deux mondes. La souplesse et les performances des bases de données NoSQL avec la précision d'un système de requête pouvant rivaliser, dans la plupart des cas, avec le SQL.

Voilà, j'espère avoir réussi à piquer votre curiosité au sujet des bases de données NoSQL et MongoDB en particulier. Si vous voulez plus de renseignements, je vous recommande la visite du site officiel de MongoDB.

Pour aller plus loin :

Partager ce billet :

dimanche 25 avril 2010

Présentation de mon projet de framework

Je donne un peu des nouvelles, étant donné que je n'ai pas encore écrit d'article depuis le lancement du blog.

Le projet de framework avance bien, j'ai une base opérationnelle et je suis en train d'implémenter de nouvelles fonctionnalités.

Je vais détailler un peu ce projet, mais j'en reparlerais plus en détail lorsque la première version sera en ligne.

Donc, ce framework est développé en PHP 5.3 et se base sur une architecture MVC (Modèle-Vue-Controlleur) assez classique. Il intègrera un système "d'extension" qui permettra d'implémenter de nouvelles fonctionnalités. En effet, je souhaite développer un outil léger et performant, donc toutes les fonctionnalités utiles, mais pas forcément indispensables, que peut intégrer un framework seront dissociées du coeur.

Le coeur donc, intègrera des mécanismes de mises en cache (avec prise en charge de Memcache notamment) et un système de gestion d'une architecture "multi-serveurs" permettant de déporter, par exemple, la base de donnée sur un serveur séparé (ou plusieurs), d'avoir plusieurs serveurs web frontaux ou encore des serveurs de cache (avec Memcache), mais le framework fonctionnera tout de même sur une architecture plus classique avec un seul serveur, si besoin.

Pour la couche Modèle, en plus de l'intégration de PDO pour communiquer avec une base de donnée, le framework prendra en charge, nativement, la base de donnée MongoDB, qui fait partie du mouvement NoSQL.

Pour finir, je voudrais préciser ce que j'ai prévu de faire avec ce framework.

Je me suis lancé dans le développement de ce framework pour avoir une base solide pour un site que je souhaite développer depuis un petit moment. Puis j'ai décidé de le distribuer sous licence libre, je pense que cela ne peut être que bénéfique au projet. En tout cas, je n'ai pas du tout l'intention de concurrencer les frameworks existant, ils sont très utiles et intègrent des fonctionnalités bien plus avancées que celles que je pourrais développer. Si j'ai choisi de ne pas utiliser l'un d'entre eux c'est parce que je n'en ai pas trouvé qui corresponde complètement à ce que je voulais faire et parce que je voulais approfondir mes connaissances en PHP.

D'ailleurs, si vous êtes intéressé par les fonctionnalités que j'ai décrit plus haut, vous pouvez jeter un oeil à RBS-Change, un framework et un outil de publication très complet, qui est le seul, il me semble, à intégrer une gestion "multi-serveur". Il est de plus devenu open source récemment alors profitez-en.

Voilà, je vais essayer d'écrire un peu plus d'articles dans le futur. Je vais parler notamment de MongoDB, qui est une très bonne alternative à MySQL par exemple.

En espérant que mon projet vous intéressera.

Partager ce billet :

mercredi 17 mars 2010

Ouverture du blog


Lire la suite...

Partager ce billet :