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 La « mode » du fonctionnel : pourquoi ?

Python tips & tricks

Depuis quelques temps, je développe pas mal en python et durant mes différents projets, j’ai rencontré tout un tas de petits problèmes ou besoins.

Je me suis donc dis que cela pourrait être intéressant de regrouper en vrac dans un article quelques unes des solutions trouvées. Non seulement cela vous servira peut être un jour, mais en plus, vous aurez peut être des solutions plus simples/adaptées à me proposer ;)

Lire la suite de Python tips & tricks

de PHP / symfony à Ruby / Rails : un an après


J’ai toujours très peu de temps dispo, d’où la fréquence de publication proche du néant depuis pas mal de mois. La faute à un bureau toujours trop sommaire à la maison, les travaux s’éternisant, et le peu de temps libre qui me reste est consacré à quelques projets pour l’instant un peu « top secret » ;)

On pourra remercier Vince au passage qui lui trouve du temps à consacrer à ce modeste blog !

Mais je viens de réaliser que cela allait faire quasi un an que j’avais attaqué Ruby / Rails de manière plutôt intensive et qu’un petit bilan s’imposait donc ! Alors je me lance !

Lire la suite de de PHP / symfony à Ruby / Rails : un an après

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 de De PHP à Ruby : votre premier index.php en Ruby

AW soutien Akibag !

Avant de lire ce petit article, pour ceux qui ne connaissent pas @akibag, je vous propose de faire un petit tour sur le site mais aussi le blog et particulièrement ici et !

Suite à un problème lors de l’impression des séries limitées Bugdroid, Akibag connait quelques difficultés et fait appel à la communauté pour redresser la barre.

Chez AW, puisque nous sommes clients et qu’on aime, nous allons essayer de contribuer un peu avec ce petit message ! Alors si comme nous vous aimez les produits de qualité, made in france et fait par un petit entrepreneur, faites un petit (ou même un gros) geste !

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 de Générer la documentation Symfony2

Symfony Live 2011 : Compte rendu des 2 jours


Nous voilà donc rentrés du 3e Symfony Live, toujours à la Cité Universitaire de Paris, et cette année les 2 jours sous le soleil! Bon le froid était quand même là hein, ça reste Paris :D Voici donc un petit compte rendu des 2 jours pour ceux qui n’étaient pas présents. A noter que cette année, on avait le droit à 2 salles, donc 2 interventions en même temps, il a fallut faire des choix!

Lire la suite de Symfony Live 2011 : Compte rendu des 2 jours

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 de Symfony Live : one more time

jQuery : Rendez vos lignes cliquables!


Petit billet rapide pour une petite astuce jQuery, ca faisait longtemps! Le but ici est simplement de donner la possibilité de cliquer sur un élément parent d’un lien pour l’activer. Et comme j’ai un peu galéré je me suis dit que ca valait le coup de partager le code.

Lire la suite de jQuery : Rendez vos lignes cliquables!

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 de Doctrine2 : au revoir ActiveRecord, bonjour DataMapper !

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+