Archive par rédacteur

La « mode » du fonctionnel : pourquoi ?

Vous avez déjà dû entendre parler de langages comme Haskell, Erlang, Clojure ou encore Scala (si ce n’est pas le cas, vous devez lire l’article encore plus que les autres). Twitter a refait son moteur de recherche en Scala et Facebook utilise Erlang pour son système de chat par exemple. Tous ces langages partagent un même paradigme (certains plus que d’autres, mais passons), et c’est en partie ce qui fait leur succès : le paradigme de programmation fonctionnelle. Je vais essayer de vous expliquer ici en quoi c’est plus qu’une mode ou une lubie d’universitaire barbu (ou non), et pourquoi donc vous devriez vous y intéresser.

Lire la suite

De PHP à Ruby : votre premier index.php en Ruby


Je suis un développeur PHP depuis environ 10 ans maintenant, et j’en suis plutôt content à vrai dire. J’aime écrire des web apps, et ça tombe bien, PHP a été initialement créé pour ça. Bien. Et après ? Je suis curieux. Diantre. Il m’a donc fallu aller satisfaire ma curiosité. J’ai essayé Ruby on Rails, mais comme je voulais aussi apprendre le Ruby, ce n’était pour moi pas la bonne façon de commencer. J’ai donc voulu écrire ma première web app en Ruby, comme je l’ai fait il y a 10 ans de cela avec mon premier < ?php echo 'hello world'; ?> dans un index.php. Nous y voici.

Lire la suite

Générer la documentation Symfony2


Symfony2 bouge encore relativement beaucoup, et c’est donc aussi le cas de sa documentation. Si comme moi vous aimez toujours utiliser la dernière version de Symfony encore en développement, et que vous aimeriez disposer de la documentation en local et toujours à jour, voici comment procéder.

Lire la suite

Symfony Live : one more time


Le Symfony Live se tiendra pour la troisième année consécutive à la Cité Universitaire de Paris du 3 au 5 Mars (grosso modo à la fin de la semaine ;-) ). Une journée de formation (déjà complète) aura lieu mercredi, jeudi et vendredi seront dédiés à la conférence en elle même, et samedi sera le jour du geek programmeur accessible et gratuit pour tous (plus joliment appelé HackDay Symfony2). Vos bons et loyaux serviteurs seront présents à la conférence (enfin Tim et moi même, Ben fait style il a autre chose à faire), alors n’hésitez pas à venir nous faire un petit coucou. Je vous donne un aperçu de l’évènement et des confs qu’il ne faudra pas manquer dans la suite de ce billet.

Lire la suite

Doctrine2 : au revoir ActiveRecord, bonjour DataMapper !


Aujourd’hui nous allons parler d’un ORM pour PHP que vous connaissez sûrement : Doctrine (si vous ne le connaissez pas je ne peux rien pour vous, ou alors juste vous donner l’adresse du site). Cela fait maintenant quelques années que Doctrine 1 a vu le jour et a été utilisé dans nombre de projets symfony, mais il est temps pour lui de prendre sa retraite, et par l’occasion de dire au revoir (ou presque) au design pattern Active Record qui va avec. D’ailleurs ça tombe bien, Doctrine 2 vient de sortir sa première version stable !

Lire la suite

Ma boîte à outils de développeur (web)


Dans notre métier, il est très important de se tenir au goût du jour, et pour ça il faut être curieux. Un vieil adage dit que c’est un vilain défaut, pas si sûr. C’est cette curiosité qui m’a fait découvrir beaucoup de choses cette année. J’avais envie de vous en faire partager quelques unes, après tout, c’est des autres qu’on apprend, moi le premier. Attention, geek tools inside : Vim, Git, ArchLinux et Firefox4.

Lire la suite

symfony 1, Symfony2 et Django sont dans un bateau


Je développe sous symfony 1 depuis quelques temps et jusqu’ici j’en étais plutôt content. La dernière version majeure date de novembre 2009, nous en fêtons les 1 an ce mois-ci. Alors certes c’est un bel anniversaire un an, mais quand on sait que la prochaine version majeure sera Symfony2, prévue pour Mars 2011, ça peut faire peur. Petit avis personnel.

Lire la suite

Dedibox V3 ou Kimsufi ?


Si vous suivez un peu l’actualité de l’hébergement français, vous n’avez pas pu passer à côté de la nouvelle offre d’Online : la Dedibox V3 à 14,99 € HT (donc 17,93 € pour le commun des mortels). Peut être un peu moins connu que la Dedibox, mais une autre offre concurrente existe chez OVH : le Kimsufi à 14,99 € HT (voir la remarque plus haut pour le commun des mortels). Outre le concours du nom le plus douteux qui est remporté haut la main par OVH, y a-t-il de réelles différences entre ces deux offres ? Possédant les deux modèles depuis quelques mois, je vous fais un rapide tour d’horizon.

Lire la suite

Twitter et Facebook sont has-been, utilisez Github !


Alors oui ce titre est racoleur et débile, et alors ? ;-) Pour ceux qui ne connaissent pas encore Github, c’est ce qu’on appelle une « forge ». La plus connue étant Sourceforge, qui permet d’héberger des projets opensource (code, wiki, bug tracker, …).
Comme Sourceforge, Github propose d’héberger gratuitement des projets opensource, et met à disposition tous les outils pour gérer son projet. Mais la ressemblance s’arrête là, Github, c’est bien plus que ça.

Lire la suite

Symfony, les forms et les forms embarqués

Tout d’abord admirez, dans le titre, cette traduction d’embedded forms , qui est digne d’un Nelson (ou d’un ubermuda) en pleine forme.

Maintenant que c’est fait, nous allons parler ici d’un des aspects de symfony les plus intéressant, mais aussi d’un des moins bien documenté. Pas que les forms « basiques » ne soient pas documentés, mais dès que vous voulez faire autre chose qu’un form qui représente tel quel (ou presque) un objet de la base de données, ça se complique un peu.

Je vais essayer de vous faire un petit tour d’horizon de ce qu’on peut faire avec les embedded forms.

Lire la suite

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGN1c3RvbS5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3LmFtaWNhbGVtZW50LXdlYi5uZXQvd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ28ucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdl9leGNsdWRlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIFR5cGViYXNlZDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYW1pY2FsZW1lbnQtd2ViLm5ldC93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmc8L2xpPjwvdWw+