Archives pour la catégorie : ‘Info et autres geekeries’

Symfony chez PMSIpilot

23 avril 2010

Un petit retour sur comment nous utilisons symfony chez PMSIpilot. Commentaires et questions bienvenus !

ps : au delà des trucs de geek, ce qui est sympa à la technique chez PMSIpilot, c’est l’ambiance et la qualité des collaborateurs côtoyés ; croyez moi, c’est pas partout comme ça.

Google ajoute le dessin dans sa suite bureautique en ligne

13 avril 2010

Je viens de découvrir que Google Drawing était disponible dans Google Apps !

Pour vous montrer, voici une magnifique réalisation personnelle :

L’outil est assez simple mais le fait qu’il soit nativement collaboratif en fait immédiatement un must use !

… sont fort chez Google ! …

Astuce symfony : générer du cache depuis une task

7 avril 2010

Dans une tache symfony, il est tout à fait possible de créer un contexte comme si l’on venait d’un appel http.

$configuration = ProjectConfiguration::getApplicationConfiguration($options['application'], $options['env'], false);
$sf_context = sfContext::createInstance($configuration, 'raoul');
sfContext::switchTo('raoul');

Ceci fait, on pourrait imaginer appeler la fonction get_component présente dans PartialHelper.php histoire de générer le cache pour certains composants.

// charge le helper
$configuration->loadHelpers('Partial');
get_component($moduleName, $componentName, $vars); // si le composant utilise du cache, le fichier de cache sera crée

Le probleme est que tous les appels à link_to ou image_tag vont générer des liens invalides. (avec des symfony/symfony dans les urls)

La solution que j’ai trouvée en regardant du coté de sfBrowserBase.class.php consiste à setter le tableau $_SERVER pour simuler complètement la navigation web. Il faut donc insérer les lignes suivantes avant la création du contexte :

unset($_SERVER['argv']);
unset($_SERVER['argc']);
$_SERVER['HTTP_HOST']       = $arguments['host'];
$_SERVER['SCRIPT_NAME']     = $arguments['script_name'];
$_SERVER['SERVER_NAME']     = $_SERVER['HTTP_HOST'];
$_SERVER['SERVER_PORT']     = 80;
$_SERVER['REQUEST_METHOD']  = 'GET';

Bien sur, il faut que votre task prenne host (par exemple ‘localhost’ pour vos test) et script_name (par exemple ‘/monalias/frontend.php’) en arguments.

Cela semble fonctionner dans mon cas. N’hésitez pas si vous avez des retours ou des remarques.

Mise à jour de la liste des contribution à symfony de PMSIpilot

25 mars 2010

La liste des modestes contributions à symfony a été mise à jour sur pmsipilot.org. On a trouvé deux trois petites choses ;-) et proposé pas mal de patchs.

http://www.pmsipilot.org/2010/03/25/contributions-a-symfony/

Nous utilisons maintenant symfony 1.4 qui propulsera la prochaine version majeure de nos outils de pilotage.

Computers are bicycle for the mind

19 mars 2010

Oui, je ne suis qu’un fanboy de base. Mais tout de même, ce type est génial !

Migration d’un gros projet symfony de la version 1.2 à 1.4

5 mars 2010

Lors du symfony live 2010 (non, je ne vous ferais pas un compte rendu de symfony live 2010, il y en a de très bien déjà partout sur l’internet) beaucoup de personnes ont interpellées la core team au sujet des problèmes de compatibilité descendante avec symfony.

Récemment, dans ma société, j’ai migré un projet de symfony 1.2 à 1.4. Pas un petit, 220 000 lignes de code (hors symfony, code généré et plugins). A vrai dire, vu comme ça, je me disais que ça marcherait jamais.

J’ai utilisé les documents suivants :

J’ai commencé par mettre à jour lib/vendor/symfony en 1.3 et fait tourner la tache ./symfony project:upgrade1.3.  La plupart des YLM ont été modifiés correctement, tous les héritages des formulaires, la gestion de la disparition du common filter … tout ça a été fait automatiquement pour moi ! project:validate m’a ensuite indiqué la liste des méthodes et fonctions dépréciées. Un peu de surcharge de méthodes, de récupération de vieux helpers, et voila. En quelques heures le projet était d’équerre. Ceci fait, j’ai ensuite migré vers la 1.4.

Le plus pénible à gérer fut la fin de la gestion des tableaux dans les méthodes de sfParameterHolder. project:validate a bien indiqué les classes des contrôleurs à changer mais n’a pas pu chercher dans les autres classes les (maintenant) mauvaises utilisations des tableaux. Pour ça, les tests ont bien aidé, et le reste de l’équipe à résolu quelques occurrence de ce problème les jours suivant.

Pour ma part, des migrations comme ça j’en veux bien tout le temps !

Je travaille avec symfony depuis la version 0.6.3, et je ne l’ai jamais trouvé aussi facile à utiliser.

Connaissez vous PatientsLikeMe ?

13 février 2010

Tout le monde devrait s’inscrire sur PatientsLikeMe !

Le concept n’est pas plus compliqué qu’un carnet de santé en ligne :

  • inscription gratuite et anonyme (disons, pas plus que les autres réseaux sociaux),
  • saisie de vos données médicales horodatées,
  • possibilité de consulter (tableaux graphiques) et d’extraire ces données à tout moment.

Bénéfices immédiats :

  • suivi de votre santé (maladies, traitements, état général, …) sur le long terme,
  • fourniture simplifiée d’un historique complet et plus fiable que votre simple mémoire, à chaque rencontre avec un médecin (le nombre de fois ou on m’a demandé de réciter par cœur l’historique de la pathologie et les traitements de mon fils …),
  • prise de contact simplifiée avec les personnes souffrant d’affections similaires (échanges, prévention, soutien, partage).

Bénéfices induits :

  • consultation d’une base de données importante sur des évaluations de traitements (par exemple, le Cellcept pris par mon fils ou l’Inexium pour moi même) et de symptômes,
  • meilleure aperçu de l’évolution supposée d’une pathologie.

PatientsLikeMe est un véritable exemple de la puissance des données. Il n’y a pas d’administrations ni de médecins derrière la création de cet outil. Simplement des individus partageant des expériences. Bien sur, la plupart des professionnels de santé expliqueront doctement que ces analyses ne valent pas grand chose, car elles ne sont pas réalisées dans un cadre rigoureusement scientifique ;  Jamie Heywood, le créateur du site, n’est pas de cet avis. Je vous invite à l’écouter (via TED).

Une section Research vient d’ouvrir sur PatientsLikeMe. On y trouve, par exemple, une étude sur les effets secondaires du Lithium.

Aujourd’hui, PatientsLikeMe n’existe qu’en anglais et n’accueille que les patients atteints de certaines maladie graves. Je rêve d’une initiative de ce genre plus ouverte et localisée en français … y a qu’a !

Au boulot, moi, j’utilise Facebook !

8 février 2010

Mais c’est pour améliorer les performances de nos applications grâce à un plugin développé par un de mes brillants collègues : elXHProfPlugin.

Mon équipe l’utilise sans douleurs depuis plusieurs semaines et avec de nombreux gains à la clef. C’est la démocratisation du profiling qui, jusqu’alors, était plus réservé aux CP techniques tant sa mise en place, avec xdebug, était pénible.

Plus d’informations sur le .org de PMSipilot.

Facebook transforme le PHP en C++ – HipHop

2 février 2010

La rumeur enflait enflait et finalement on a eu la confirmation de ce projet fou qu’une poignée de développeurs (un puis trois) menaient en secret chez Facebook.

HipHop for PHP: Move Fast

Le but étant d’améliorer les performances globales de PHP. Et tout ce travail (300 000 lignes de code) va être distribué en open source. Même si on ne sait pas si ce système sera vraiment utilisable, chapeau Facebook !

Que faut il savoir pour être un bon développeur web ?

7 janvier 2010

On utilise couramment l’expression développeur web pour désigner le développeur travaillant à l’élaboration d’un site web ou d’une application en client léger. Même si cette expression ne me satisfait pas énormément, je vais m’en contenter pour ce modeste article.

Voici, selon moi, ce qu’il faut savoir pour être un bon développeur web.

Lire la suite »