Mouahaha.
DETAIL DE VOTRE COMMANDE Date de la commande 02 février 2007 Référence ***** Spectacles commandes 3 places au tarif Normal Prix unique pour DAFT PUNK (PALAIS OMNISPORTS DE PARIS BERCY (PARIS)) le 14 juin 2007 à 20:00
To content | To menu | To search
Friday 2 February 2007
By Geoffrey on Friday 2 February 2007, 14:54 - Ego
Mouahaha.
DETAIL DE VOTRE COMMANDE Date de la commande 02 février 2007 Référence ***** Spectacles commandes 3 places au tarif Normal Prix unique pour DAFT PUNK (PALAIS OMNISPORTS DE PARIS BERCY (PARIS)) le 14 juin 2007 à 20:00
Wednesday 31 January 2007
By Geoffrey on Wednesday 31 January 2007, 22:30 - Ego
Ce soir j'ai fait une petite heure de vélo dans la défense, à la fraiche. C'est assez exceptionnel pour le noter, d'autant plus que je compte bien remettre ça dimanche dans la forêt (oui on a des forêts à Paris, enfin pas loin quoi).
By Geoffrey on Wednesday 31 January 2007, 09:08 - Coding
Les concepts de classes abstraites et d'interfaces sont souvents assez flous quand on débute dans la programmation objet, et on se fourvoie assez souvent sur leur utilisation et leur but. Voila une petite explication qui j'espère sera 1) juste et 2) assez claire pour tout le monde. Si vous pensez que je me fourvoie sur ces 2 concepts de base de la POO, n'hésitez pas à me le faire savoir !
Tuesday 23 January 2007
By Geoffrey on Tuesday 23 January 2007, 00:43 - Ego
La haine, c'est l'amour qui tourne le dos.
Friday 5 January 2007
By Geoffrey on Friday 5 January 2007, 14:15 - Rubrique à brac
Did I ever talk you about Creating Passionate Users ? It's my number one favorite (almost) daily reading: I'm always sure to read something interesting when it pops to life into my google reader :-) Written by the creators of the Headrush books series (published by o'reilly in France under the name La tête la première, I know you know it), the content of this blog is highly valuable for those of us who wants to become smarter and learn how to do (or not to do !) things.
Well, I'm not really used to literate english, so I don't really find my words, sorry for that. Actually, I'm writing this blog entry in english just in case Kathy or Dan show up there :-)
Pour résumer, Creating Passionate Users, c'est vraiment LE blog à avoir dans vos RSS.
Wednesday 3 January 2007
By Geoffrey on Wednesday 3 January 2007, 11:04 - Geekeries
Par exemple, imaginons qu'on récupère une query string, et qu'on veuille l'exploser sur plusieurs lignes, on peut faire:
:s/&/\="\<CR>"/g
le \="" annonce à VIM que la chaine de
substitution sera une chaine a interpréter avant utilisation, et le
\<CR> représente tout simplement le Carriage
Return.
Tuesday 2 January 2007
By Geoffrey on Tuesday 2 January 2007, 09:51 - Ego
Je suis vivant, j'ai repris le travail aujourd'hui après une semaine et demie de repos bien mérité. Et je n'ai pas pris de bonnes résolutions.
Sunday 17 December 2006
By Geoffrey on Sunday 17 December 2006, 16:43 - Coding
Méthode bourrin, je ne sais pas si il en existe une meilleure. Disons qu'on veut annuler la révision 329 (et que c'est la dernière en date):
$ svn update $ svn merge -r 329:328 . $ svn commit -m "cancel 329"
En tout cas chez moi ça a marché.
Tuesday 12 December 2006
By Geoffrey on Tuesday 12 December 2006, 10:39 - Ego
Pour ceux qui ne suivent pas forcément les commentaires des anciens posts, qui ont une wii, et un AP wiifi, voici mon code aMii:
4765 2326 7406 6369
Faites vous connaitre en commentaire (ainsi que votre code aMii) si vous m'ajoutez !
Tuesday 5 December 2006
By Geoffrey on Tuesday 5 December 2006, 16:25 - Ego
Score Game La Défense vient de me prévenir que ma wii m'attendrai vendredi wii décembre à wiit heure du matin. J'irai y faire un tour avant de passer au Starbuck :p
By Geoffrey on Tuesday 5 December 2006, 11:05 - Coding
Firebug 1.0b1 est sorti. Et il est bien (tm).
Wednesday 29 November 2006
By Geoffrey on Wednesday 29 November 2006, 23:09 - Coding
Aujourd'hui je vais vous parler de deux concepts que j'aime beaucoup et que j'ai (re)découverts en travaillant sur mon projet personnel de conquête de l'univers: les Collections d'objets et l'Object Chaining.
Les collections, qui sont peut-être finalement un design pattern connu sous un autre nom, permettent d'executer aisément des méthodes sur plusieurs objets (une collection d'objets quoi). Concrétement, disons qu'on à une classe My_Collection, qui implémente les interfaces Iterator (et Countable tant qu'a faire) de la SPL, ainsi que la fonction magique __call suivante (je vous fait grace du docblock):
class My_Collection implements Iterator, Countable {
public function __call($method, $args) {
$calls = 0;
foreach($this as $item) {
if (method_exists($item, $method)) {
call_user_func_array(array($item, $method), $args);
$calls++;
}
}
if ($calls > 0) {
return $this;
} else {
throw new My_Collection_Exception('Method catched but could not be called: '.$method);
}
}
}
Ce dispositif permet d'utiliser le genre de code suivant (si les objets de la collection le permettent, bien évidemment, et disons qu'ici ce sont des objets représentant des images, supportant les méthodes move et createThumbnail):
# $array contient les objets My_Image
$collection = new My_Collection($array);
$collection->move('/new/path/')->createThumbnail();
Ce qui, comme vous l'aurez deviné, déplacera les fichiers de la collection vers /new/path, puis en créera des miniatures.
Deuxième chose, l'Object Chaining. On vient de le voir en fait, ça consiste à chainer les appels de méthodes grâce à un subtil return $this;, qui retourne donc une référence à l'objet courant. Exemple pratique, dans le Zend Framework, en étendant Zend_View:
class My_View extends Zend_View {
public function assign($spec) {
$args = func_get_args();
call_user_func_array(array('parent', 'assign'), $args);
return $this;
}
}
Ce qui autorise le genre de code suivant (en admettant que vous ayiez une instance de My_View dans le registre):
Zend::registry('view')
->assign('foo', $foo)
->assign('foo', $bar)
->render('template.php');
Et là c'est fort, parceque ça rejoint fortement quelque chose dont je parlais en janvier dernier (le truc qui parle de with), et donc j'en déduis une chose formidable: Le père noël existe, et il m'a entendu. Merci Santa Copain.
Tuesday 28 November 2006
By Geoffrey on Tuesday 28 November 2006, 22:39 - Coding
Une des questions cruciales qui se pose à tout développeur à au moins un moment de sa vie (souvent plusieurs en fait) est le choix d'un environnement de développement. J'en ai testé pas mal, plus ou moins longtemps, et bien que je ne sois jamais complètement satisfait, l'idée de perdre du temps à développer le mien m'indispose. J'ai donc opté pour l'environnement qui me va le mieux: Linux + gVim + Rox-filer.
Note: je ne couvre pas ici les fonctionnalités de débuging avancé, que je n'utilise pas encore, mais pour lesquelles j'ai déjà en tête des solutions qui me conviendront bien mieux que les outils intégrés à un quelconque IDE (je pense fortement à Xdebug).
By Geoffrey on Tuesday 28 November 2006, 13:38 - Le saviez vous ?
Pour ceux:
php5-pdo-mysql a disparuSachez que php5-pdo-mysql a été renommé/fusionné en php5-mysql.
C'était l'info utile (ou pas) du jour.
Friday 24 November 2006
By Geoffrey on Friday 24 November 2006, 20:27 - Coding
Pré-requis: Zend_Controller_RewriteRouter.
Nous allons voir aujourd'hui comment générer automagiquement des URLs à partir des routes définies dans le RewriteRouter, ainsi que les avantages que cela présente. Le Helper que nous allons utiliser nécessite le stockage du routeur dans le registre:
Zend::register('router', $router);
Avant de voir le Helper lui même, un petit Use Case. Admettons que vous développiez une application de gestion de petites annonces, vous aurez à un moment ou un autre à créer un lien quelconque pour, par exemple, créer une annonce, et en voir les détails. Disons que vous ayez des routes route du genre (je zappe les defaults):
announceCreate.route = /announce/create announceDetails.route = /announce/:id/details
L'objectif est de pouvoir créer les liens grâce au code suivant (à partir de la view):
<a href="<?php echo $this->href('announceCreate'); ?>">Créer une annonce</a>
<a href="<?php echo $this->href('announceDetails', array('id' => $announce->id)); ?>">Voir l'annonce</a>
Et comme le Zend Framework est bien fait, c'est très simple à réaliser sous forme de ViewHelper:
class Zend_View_Helper_Href {
/**
* Returns the href to a given route
*
* @param string $routeName
* @param array $args
* @return string
*/
public function href($routeName, $args = array()) {
try {
return Zend::registry('router')->getRoute($routeName)->assemble($args);
} catch (Zend_Controller_Router_Exception $e) {
return '#404';
}
}
}
Tellement simple que pour combler un peu je vous offre le docblock qui va avec ;-)
Là où ça devient très pratique, c'est quand on souhaite localiser les URLs. Par exemple, imaginons que vous souhaitiez françiser les URLs pour, par exemple, améliorer votre référencement. Vous n'avez qu'a définir un jeu de routes fr_FR, par exemple ainsi:
announceCreate.route = /annonce/creer
announceDetails.route = /annonce/:id/details
[routes_en_UK]
announceCreate.route = /announce/create
announceDetails.route = /announce/:id/details
[routes:route_fr_FR]
announceCreate.defaults.controller = announce
announceCreate.defaults.action = create
announceDetails.defaults.controller = announce
announceDetails.defaults.action = details
L'utilisation de l'héritage géré par Zend_Config nous permet ici d'éviter la redondance des defaults.
Elle est pas belle la vie ?
Note: cette fonctionnalitée est prévue pour être builtin plus tard.
By Geoffrey on Friday 24 November 2006, 20:08 - Rubrique à brac
Thursday 23 November 2006
By Geoffrey on Thursday 23 November 2006, 13:40 - Coding
Une petite discussion sur l'optimisation en PHP à lieu en ce moment chez NiKo ! Ce n'est pas souvent que je link directement comme ça, donc dites vous que quand je le fais, c'est que ça en vaut la peine ;-)
By Geoffrey on Thursday 23 November 2006, 11:06 - Ego
En espérant que le père noël ait un bon aggrégateur RSS et qu'il lise mon blog.
Wednesday 22 November 2006
By Geoffrey on Wednesday 22 November 2006, 22:14 - Ego
Pour ceux qui ne suivent que le RSS, le thème nouveau est arrivé ! Il est inspiré du design missunderstood trouvé sur oswd et il pique un peu les yeux. Ayant la flemme de trouver un endroit où caser la sidebar, je l'ai mise en display none.
Des objections ?
Sunday 19 November 2006
By Geoffrey on Sunday 19 November 2006, 21:30 - Coding
L'implémentation du Front Controller du Zend Framework inclue un système bien pratique de plugins, qui va nous permettre de réaliser plus simplement et proprement l'automatisation des vues, initialement embarquée dans une extension de Zend_Controller_Action (ce qui pose quelques problèmes, nottament au lors de l'utilisation de __forward() et _redirect()).
« previous entries - page 6 of 37 - next entries »