Kamelot Blog

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 29 juillet 2010

jeu
29
juil '10

PHP-FPM (FastCGI Process Manager)

PHP-FPM est disponible dans le dernier php (5.3)... mais qu'est-ce-que c'est ?

PHP-FPM (FastCGI Process Manager) est une alternative à PHP FastCGI avec toute une série d'amélioration.

Principalement utile pour les sites à fort taux d'utilisation.

Plusieurs VHosts avec un UID/GID différent et des PHP.ini différents.

FPM permet de faire tourner plusieurs VHosts avec un UID/GID différent et des PHP.ini différents.

Support de l'upload accéléré

Statistique de base

similaire à mod_status d'apache.

Redémarrage de secours en cas de destruction accidentelle de l'opcode

Un header d'erreur

une config style

[ini]
 fastcgi.error_header = "HTTP/1.0 550 Server Made Big Boo"

... provoquera l'envoi de cette erreur au lieu d'en "200 tout va bien" avec une page blanche.

amélioration de la gestion des processus en cas de graceful stop/start

En pratique ca permet de prendre en compte une nouvelle config qui nécessite un redémarrage sans interrompre ce qui avait commencé avec l'ancienne configuration.

Journalisation des scripts lents

avec

[xml]
    <value name="request_slowlog_timeout">5s</value>
    <value name="slowlog">logs/slow.log</value>

donnera

[log]
 Sep 21 16:22:19.399162 pid 29715 (pool default)
 script_filename = /local/www/stable/www/catalogue.php 
 [0x00007fff23618120] mysql_query() /srv/stable/common/Database/class.MySQLRequest.php:20 
 [0x00007fff23618560] getResult() /srv/stable/common/Database/class.Facade.php:106 
 [0x00007fff23618aa0] query() /srv/stable/common/mysite.com/ORM/class.UsersMapper.php:99 

Journalisation de Stdout & stderr

fastcgi_finish_request()

une fonction spéciale pour clôturer la connexion avec le client, mais continuer un traitement php à découvrir en détail ici

Autres points

  • PHP-FPM est compatible avec ZendOptimizer

à lire aussi

Notes

[1] Qui, le temps de rédiger et publier cet article, a déjà été retravaillée. C'est la magie wikipedia

vendredi 23 octobre 2009

ven
23
oct '09

oAuth, authentification tiers

Qu'est ce que OAuth?

logo

OAuth permet aux utilisateurs de donner, à une application ou un site "consommateur", l'accès à des informations personnelles sur un site "fournisseur" de service.

OAuth permet de gérer ces autorisations sans avoir besoin de donner son identité. (Wikipedia)

An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications. (oauth.net)

Ressources trouvées avant investigation

-- Edit -- suite à la question pertinente d'Hervé j'ajoute ceci

Extrait de Différences entre identification, autorisation et authentification

Identification : OpenID

Dans le cadre d'OpenID, l'identification permet uniquement de dire : cette URL est à moi et peut me représenter. Les providers proposent maintenant d'autres services mais la base c'est uniquement ça, aucune couche de confiance si ce n'est l'assurance d'avoir une URL derrière. Après si vous liez votre OpenID à votre page personnelle, vous ajoutez forcément un certain crédit à votre OpenID car vous garantissez l'appartenance de la page en question.

Il y a aussi des initiatives pour ajouter cette couche de confiance auprès de tiers dits de confiance (Etat, banques, etc) mais c'est une autre histoire.

Autorisation : OAuth

L'autorisation consiste à laisser l'accès ou pas à une donnée, que ce soit avec des tokens (comme OAuth), avec des URLs cachées, bref ce que vous voulez en fonction de la criticité de la donnée en question.

Aucune notion d'identité derrière ça, du moment qu'il a les clés on le laisse passer.

Ici aussi, il y a des initiatives pour combiner l'autorisation et l'identification, reste à voir comment prendre en compte l'ergonomie au passage.

jeudi 20 août 2009

jeu
20
aoû '09

mon checkout ne fonctionne pas via cron

J'ai mis en place un serveur de développement avec un script qui checkout le code.

Pour ce faire j'avais fait un script shell qui fait tout mes checkout générait quelques infos de logs.

Ce script appelé régulièrement par cron devait garder mon serveur de test synchrone.

Problème...

quand j'appelais ce script en direct tout fonctionnait correctement, mais le cron lui ne mettait jamais à jour.

Je me suis alors décidé de regarder les mails envoyés par cron et j'y ai vu ceci

 svn: Can't convert string from 'UTF-8' to native encoding

Une recherche sur le web m'a permi de trouver cet article et la lumière fut.

Ce qui se passe c'est que sur le svn il y avait dans un sous-répertoire des noms de fichier contenant des caractères utf8 !!!.

un set en console m'indiquait LC_CTYPE=en_US.UTF-8 mais pas en cron.

Solution

Dans mon script appelé par le cron, J'ai juste ajouté

export LC_CTYPE=en_US.UTF-8

à mon script et tout à fonctionné correctement

mardi 8 avril 2008

mar
08
avr '08

Nouvelle release de SimpleTest : 1.0.1

Perrick annonce une nouvelle release de SimpleTest : 1.0.1.

Une occasion pour moi de dire comme je suis content d'enfin l'utiliser réellement dans mes développement. Sur le projet claroline, la sauce n'a jamais pris. Maintenant pour skynet, on utilise la pratique du "écrire le test puis le code" et c'est vrai que sur le premier jet ca parait fastidieux, mais quel confort ensuite. J'ai même pris le réflexe d'écrire un test dès qu'un bug est trouvé.

Pour ceux qui s'intéressent à ces techniques : Test Driven Development

samedi 10 novembre 2007

sam
10
nov '07

World Usability Day : le feedback

A voir : Les videos de Arnaud Grégoire (Katch'a!)

Avec Mathieu et Sebastien (de Claroline), je suis allé au World Usability Day, organise par (entre autres) Hugues, mon ancien collègue de l'UCL. (papa du nom "claroline" justement).

A l'entrée nous avons ete accueilli par Baptiste Campion et Anne-Sophie Collard (de l'UCL), comme sur la première vidéo et Hugues Peeters (Emakina). Sur la vidéo c'est Ploum (Mister Ubuntu Belgique) et son acolyte Benjamin du louvainLinux qui sont accueilli par Baptiste, Anne-Sophie, et Pierre Fastrez (UCL et chef d'orchestre de cette soirée).

Entrée dans la salle, exploration des visages connus : au pif une dizaine d'Emakina dont vinch, d'autres blogueurs dont ploum, Michael Villar, xMonkeyMosherx, Madame Monique Mozilla Brunel, des têtes UCL et 5 Skynet. J'étais vraiment agréablement surpris par la présence de ces 5 collègues. Ca fait du bien de voir concrètement que la problématique d'usabilite et ce qui va avec : ergonomie, simplicité, l'accessibilité, efficacité,... ) est prise en considération dans la boite ou l'on travaille. En effet ce sont des notions qui passent (beaucoup) trop souvent en second plan des préoccupations de nos (je ne parle pas de skynet) responsables.

J'ai oublie mes notes au boulot, je compléterai donc ce post lundi.

  • La première présentation de Sacha Kocovski qui nous a montre comment il a travaille en prenant en exemple l'évaluation de deux sites web des hôpitaux Erasme et Brugmann par l'utilisation de tests utilisateur. Il nous a montre des questions types, des façons de faire, quelques définitions.
  • David Geerts(KUL), a présenté "personas 2.0". Si j'ai bien compris cette présentation en anglais, c'est la création dans un premier temps d'un personnage virtuel ayant une présence réelle sur le web, avec une vie sociale, un caractère,... qui représente l'utilisateur type de mon application. Et ensuite une déclinaison matérialise de cet utilisateur sous diverses formes : un poster, une postiche, un mug, ... pour que tous les acteur du développement de l'application puissent recentrer sans cesse leur travail sur cet utilisateur type.
  • Jean-Marc Hardy a fait la présentation qui aura apparemment le plus plu, et j'en suis. Il est parti des critères de Scapin et Bastien mais pour les contenu au lieu du contenant.
  • Jean Vanderdonckt nous montre pour la 4eme présentation, 2 cas dans le thème officiel de cette année : "les services de santé".

On le voit sur la 2eme vidéo. Une application inter-hôpitaux pour l'échange d'information d'un patient en cas d'urgence. L'autre cas présentant l'intégration de l'informatique dans la vie d'un service d'urgence répartissant les interactions avec PC pocket, PC normal et écran digital géant.

En tout cas ce que j'ai retenu :

  1. ° les principes émis par Bastien et Scapin semblent faire l'unanimité (et ils ont été scientifiquement valides)
  2. ° Une moyenne de 40 problèmes d'ergonomie dans une application.
  3. ° Les réparer pendant le développement parce qu'on ne les a pas remarque pendant la conception, peut coûter jusqu'à 30x plus cher
  4. ° Les réparer sur une appli en production parce qu'on ne les a pas remarque pendant la conception ou le développement, peut coûter jusqu'à 100x plus cher. (sans compter le désagrément porte a l'utilisateur quand un changement sera fait.
  5. ° Changer une appli, même pour du mieux ca perturbe l'utilisateur (parfois plus que l'amélioration apportée). Ca je l'ai bien vécu chez iCampus.
  6. ° Un lien doit ressembler a un tiroir transparent
  7. ° une icône n'est pas animée.

... prochaine étape (mais sans moi :( ... Paris web

Je pense vraiment qu'il est intéressant de lire aussi les autres :

vendredi 9 novembre 2007

ven
09
nov '07

World Usability Day

Je viens de rentrer du World Usability Day de Louvain-la-Neuve. Je suis naze. Donc feedback demain :)

J'envoye juste les photos sur flickr Pierre Fastrez

lundi 28 mai 2007

lun
28
mai '07

Livre blanc : tester intelligemment ses applications

Borland sort un livre blanc sur le sujet difficile du test. Quand et comment tester des applications ? Comment tester là où ça fait mal ? Comment tester à partir des exigences ? Bruno de Combiens, chef de produit chez Borland, répond aux questions de TV For It.

Lire la suite...

samedi 12 mai 2007

sam
12
mai '07

Quelles sont les fonctionnalités de réplication MySql les plus souhaitées ?

La question est posée sur http://dev.mysql.com. depuis le 4 mai.

Voici les résultats actuels

Vous pouvez encore participer sur la page développement

En tout cas il y a déjà 2 point qui émergent vraiment.

  • La réplication de plusieurs sources sur un seul slave
  • la vérification d'intégrité à la volée entre un slave et son master.

De l'expérience iCampus ce qui m'aurais bien intéressé c'est

L'initialisation à chaud et sélection des tables

  1. Je choisi un master, j'y choisi des tables (pas forcément toutes)
  2. Je choisi un serveur cible
  3. un marqueur est placé
  4. un dump s'effectue alors que le master reçoit encore des requêtes mais j'ai mon marqueur
  5. une fois le dump terminé, la réplication commence en ignorant tout ce qui est avant le marqueur.

vendredi 24 novembre 2006

ven
24
nov '06

HTML_QuickForm

J'ai déjà trouvé pas mal de tuto sur HTML_QuickForm mais je n'y ai pas encore l'info que je cherche alors je vais la "fabriquer" moi-même.

Lire la suite...

lundi 20 novembre 2006

lun
20
nov '06

iMacros for Firefox

iMacros for Firefox by iOpus Inc. pour Firefox 1.5 - 2.0.0.*

Voilà une petite extention qui devrait pouvoir aider en phase de test. On peut automatiser son firefox en enregistrant et rejouant une suite de manoeuvres

Il y a plus d'informations ici

... à découvrir

lundi 9 octobre 2006

lun
09
oct '06

del.icio.us

mercredi 30 août 2006

mer
30
aoû '06

Technorati Profile

Technorati Profile

dimanche 27 août 2006

dim
27
aoû '06

CDT - Central Daylight Time

La première ligne du log de reconstruction de la doc de PEAR est la suivante :

>>> starting build at: Sun Aug 20 13:20:47 CDT 2006

Je me demandais quel TIMEZONE était représenté par CDT.

Lire la suite...

vendredi 25 août 2006

ven
25
aoû '06

Enigme en mysql

Trouvée sur le A Little Noise
SELECT * FROM theTable;
+----+----------+
| id | data     |
+----+----------+
|  1 | milieu   |
|  2 | premier  |
|  3 | showLast |
+----+----------+

Maintenant trions sur `data`.

SELECT * FROM theTable ORDER BY data;
+----+----------+
| id | data     |
+----+----------+
|  3 | showLast |
|  1 | milieu   |
|  2 | premier  |
+----+----------+

hum??? Peut-être sur le serveur n'a pas compris.

SELECT * FROM theTable ORDER BY data ASC;
+----+----------+
| id | data     |
+----+----------+
|  3 | showLast |
|  1 | milieu   |
|  2 | premier  |
+----+----------+

Que se passe-t-il ? Il assure ne pas avoir switché vers une quelquonque collation inversée.

Voir la réponse ▼

jeudi 24 août 2006

jeu
24
aoû '06

Au cas où un perdu utilise le moteur BDB avec mysql....

MySQL 5.1.12 ne supporte plus DBD.

Il faut faire une migration AVANT de mettre à jour.

Source blog de Peter Laursen

Tags