K3 Blogue 2.0 | Marketing Internet, E-Commerce, E-Communauté, Web 2.0
K3Media dit Bye Bye à l’année 2008 !!!
Bruno Caillé, le 18 décembre 2008 à 3:47 dans Programmation, Technologie, Tendances, Web 2.0
C’est avec fierté que l’équipe de K3 voyait sa dernière réalisation être lançée lundi dernier lors de la mise en ligne du portail du Bye Bye 2008, fruit de son récent partenariat avec la société Radio-Canada. Dans son constant souci d’évoluer et de donner de nouvelles possibilités d’interactions a sa clientèle, de nouvelles technologies ont été utilisées dans ce projet, allant jusqu’à permettre aux utilisateurs de communiquer directement avec Louis Morissette et Véronique Cloutier via leur webcam!
Entièrement conçue en Flex, le langage dernier cri d’Adobe permettant de créer des documents Flash dynamiquement en utilisant toute la puissance des outils d’Adobe (des filtres Photoshop aux capacités 3D de Flash), “l’enregistreuse via webcam” télécharge en temps réel le contenu vidéo sur notre nouveau serveur média. Le format et la qualité vidéo et sonore sont étonnants si vous êtes pourvu d’une connexion a fort débit.
Les interactions au niveau du serveur de base de données de même que le processus de modération se font via notre robuste système de gestion de contenu, K3Soft.
Nous vous invitons donc a partager avec nous ce a quoi vous voulez dire “Bye Bye” durant les prochaines semaines!!
Tags associés: Flash, Flex, Internet, k3softLaissez un commentaire
Les outils de l’assurance qualité (définitions, utilisation et but)
Eric Marquis, le 31 octobre 2008 à 1:23 dans Blogue, Divers, Gestion des connaissances, Marketing Internet, Programmation, Ressources, Stratégie, Technologie, e-Learning, ÉducationCe billet est un peu “bourrage de crâne ”, mais nécessaire à la compréhension de l’assurance qualité ainsi que ses différentes étapes et type de validation. Je résume en seulement quelques lignes, les 7 techniques de contrôle de la qualité et la nuance entre une Revue et un Audit.
Dans mon prochain billet, je vais placer ces techniques sur le cycle de vie d’un projet. Quand devrions-nous faire quelle validation.
Bonne lecture
Revue:
Définition: Processus ou réunion formelle durant lesquels sont présentés à des membres d’un projet, des gestionnaires, des utilisateurs ou des clients, un ou plusieurs résultats du travail afin d’obtenir des commentaires ou une approbation.
Audit:
Définition: Examen méthodique et indépendant en vue de déterminer si les activités et résultats satisfont aux dispositions préétablies, mises en œuvre effectivement et permettent l’atteinte des objectifs (ISO)
Lecture croisée (walkthrough):
Définition: Revue durant laquelle un concepteur ou programmeur organise une rencontre avec plusieurs membres de l’équipe de développement ou autres, pour commenter et identifier des problèmes dans un extrait de code ou de conception écrite.
Utilisation: Lorsqu’un contrôle léger est requis, auto validation du développeur, formation informelle de nouveau personnel.
But: Formation, partage de connaissance, évaluation du développement, Appréciation du style, Identification des erreurs.
Revue par les pairs (Inspection):
Définition: Évaluation technique formelle basée sur l’examen visuel d’un produit de développement qui est examiné en détail par une personne ou groupe autre que le créateur afin de détecter des erreurs, incohérences ou non-conformités.
Utilisation: Contrôle rigoureux du travail, éliminé tôt et efficacement les anomalies Plus couteuses, mais très efficaces.
But: Identification des erreurs, formation, évaluation du développement.
Revue technique (Technical review):
Définition: Évaluation systématique d’un produit logiciel par un groupe d’experts qualifiés, examinant la convenance par rapport à l’intention, des exigences et normes.
Utilisation: Évaluation de convenance, conformité avec les exigences du client.
But: Approbation et fermeture officielles de tâche.
Inspection qualité (Quality inspection):
Définition: Évaluation indépendante de la conformité aux normes, ententes contractuelles et autres critères.
Utilisation: S’attarde sur les exigence que sur l’aspect technique.
But: Découverte des points faibles de l’organisation, rapidité d’intervention et peu coûteuse, uniformité des contrôles, amélioration continue. Cette dernière donne une impression de “police” et les non conformités ne sont pas toujours prises en charge.
Acceptation de module (Module acceptance):
Définition: Évaluation qui a pour but de s’assurer de la qualité de la préparation, de l’exécution et des résultats des tests, avant la promotion ou la publication d’un module. L’acceptation de module est en somme un audit, mais appliqué uniquement au niveau des tests.
Utilisation: En fin de projet, validation complète du produit
But: “Go” ou “no go” d’un projet. Cette dernière donne une impression de “police” et les non conformités sont prises en charge et adressés immédiatement.
Technique analytique (Technical analytic):
Définition: Évaluation technique formelle réalisée par l’intermédiaire d’un outil automatisé.
Utilisation: Outil de validation technique automatisé par contre ce n’est pas toujours très fiable.
But: Validation de plusieurs transactions en même temps ou à répétition (Load testing).
Test de santé (Sanity testing, Sanity Check):
Définition: Test d’un système ou d’une composante afin de s’assurer qu’il répond à ses spécifications ou identifier les différences entre les résultats attendus et obtenus.
Utilisation: En fin de projet, validation sommaire du produit une fois disponible à tous.
But: dernière validation une fois l’application lancée.
Tags associés: Assurance Qualité, conformité, Internet, logiciels, planification stratégique, Ressources, test, validation1 commentaire
Démystifier l’assurance qualité
Eric Marquis, le 29 septembre 2008 à 4:09 dans Marketing Internet, Programmation, Ressources, Stratégie, e-Learning, Économie Web, ÉducationVendredi dernier j’ai eu la chance de suivre une formation au Crim (QUA416). Je vous le recommande fortement, pas nécessairement cette formation spécifique, mais le Crim en générale.
Au cours de mes prochains billets, je vais vous expliquer les grandes lignes de cette formation.
Définitions de l’Assurance qualité:
Ensemble des actions préétablies et systématiques mises en oeuvre dans le cadre du système qualité, démontrées en tant que de besoin, pour donner la confiance appropriée en ce qu’une entité satisfera aux exigences de la qualité (1)
Le contrôle est un acte technique permettant de déterminer la conformité d’un produit. Pour effectuer un contrôle sur un produit, il faut au préalable en déterminer les caractéristiques et choisir les limites à l’intérieur desquelles le produit est conforme. Il faut que ces limites soient connues par le « contrôleur » qui effectuera le contrôle.
Il implique également qu’a l’issu de l’acte technique de contrôle, une décision soit prise en ce qui concerne la conformité : produit conforme, produit non-conforme qui doit être rebuté, produit non conforme pouvant être retouché, produit non-conforme pouvant être accepté en dérogation. (2)
Les outils utilisé pour pratiquer des revues et audits qualité, chaque outil a ces avantages, ces coût et ces responsables:
- Liste de vérification
- Lecture croisée (walkthrough) – Contrôle statique léger en groupe de mêmes secteurs
- Revue par les pairs (Inspection) – Contrôle statique structuré et profond en groupe diversifié.
- Revue technique (Technical review) – Contrôle statique structuré de haut niveau incluant le client
- Audit (Audit) – Contrôle statique indépendant structuré et profond axé sur le processus
- Inspection qualité (Quality inspection) – Contrôle statique indépendant structuré, profond et rapide axé sur le produit.
- Revue par le responsable
- Acceptation de module (Module acceptance) – Contrôle statique indépendant structuré, profond et rapide axé sur les tests logiciels.
- Technique analytique (Technical analytic) – Contrôle statique ou dynamique complexe réalisé par un outil automatisé.
- Test de santé (Sanity testing) – Contrôle dynamique structuré et profond axé sur la validation des fonctionnalités.
Tout le monde gagne à avoir un suivie “Qualité” en continu sur son projet. Si une erreur trouvée au début du projet coute 1$ son coût (en temps et en ressources) est exponentiel si elle est découverte seulement à la fin.

Facteur de coût relatif pour la correction d’erreur au différent stade du cycle de vie du projet: généré vs corrigée.
Ce qu’il faut retenir, la même erreur produite durant la même phase d’un projet, mais découverte en cours de route génère aussi des économies en temps et en développement.
Tags associés: Assurance QualitéLaissez un commentaire
Xulrunner : une alternative ouverte a Adobe Air pour vos widgets
Bruno Caillé, le 12 juin 2008 à 4:46 dans Logiciel libre, Programmation, Technologie, Tendances, Web 2.0
Les possibilités du web débordent maintenant du simple concept de posséder votre site. De plus en plus, afin d’accroitre votre présence web, plusieurs outils sont a votre disposition. Parmi ceux-ci, une tendance lourde est à aller chercher votre audience là ou elle se trouve a l’aide de widgets, prolongeant l’impact de votre site. Selon le public visé, ces widgets peuvent etre utilisé dans les environnements iGoogle, Netvibes, MySpace ou encore carrément s’imbriquer dans votre Dashboard Mac Os X.4+ ou le volet de Windows Vista.
Toutefois, si vous désirez une application web capable de fonctionner sur tout les système d’exploitation récents possibles (Linux compris), a source ouverte et offrant un large éventail de possibilité, XulRunner est pour vous.
Xulrunner est basé sur Xul, le langage natif des logiciels de la fondation Mozilla (Firefox, Thunderbird…). Grossièrement, développer une application en Xul est tout comme construire une instance de Firefox sur votre bureau et en faire ce que l’on veut. Et les possibilités sont tres grande. D’un widget parallèle a votre site, il serait possible de convertir votre contenu en une des très populaires extensions pour Firefox ou Thunderbird. Tout demeure une question de concept. Si les gens sont intéressés a votre contenu ou que vous leur donner une valeur ajouté, ils seront sujets à l’ajouter à même leur systeme d’exploitation ou leur fureteur. XulRunner nous donne cette possibilité.
K3 Média vient tout juste de mettre la touche finale a une batterie de widgets pour un des portails de l’Équipe Médias Numériques de Transcontinental Médias comprenant une application Xul (voir le bouton “Votre PC”). Parmis les fonctionnalités de cette dernière, notez :
- La capacité de détecter la présence d’une connexion internet et d’afficher un message pertinent en cas contraire. L’application est meme suffisamment intelligente pour se reconnecter seule si elle détecte le retour d’une connexion active.
- La capacité de glisser l’application partout sur votre bureau sans avoir a saisir une barre de titre typique “windows”.
- Toutes les capacités web et la sécurité reconnues du navigateur Firefox.
- Une interopérabilité entre les plateforme Mac, Linux et Windows. (seule une installation PC de la version Xul figure dans la page, mais ceci pourrait ultimement changer)
Les possibilitées de XulRunner sont très grande et nous planchons actuellement sur l’ajout de fonctionnalités reliés au “system tray” et au système de fichier pour intégrer le widget encore plus en profondeur dans le système d’exploitation de l’usager. Paralèlement, il nous sera également possible de faire des widgets aux formes non-orthodoxes (autres que rectangulaires) ou avec des coins arrondis utilisant la même technologie.
À cet effet, K3 Média est en ligne avec Flickr qui vient d’opter pour XulRunner au lieu du payant Adobe Air pour son application Uploadr. Richard Crowley de Flickr vante les mérites de Xulrunner sur tous ses concurrents. Parmis les avantages notables :
- Facilité d’importer du code externe
- Possibilitées accrues d’ajouter du code concernant l’application comme tel et non du javascript concernant seulement le contenu.
Flickr (appartenant à Yahoo!) se joint donc aux Joost et Songbird qui développaient déjà sous Xul.
Tags associés: adobe, Application, audience, firefox, google, Internet, K3média, linux, logiciels, mac os x, Mozilla, TI, vista, Web, Widget, windows, xp, Xul2 commentaires
Facebook : ménage de printemps ou chute d’un empire annoncée?
Bruno Caillé, le 30 mai 2008 à 4:45 dans Facebook, Média sociaux, OpenSocial, Programmation, Web 2.0Une bonne façon de mesurer la solidité d’une communauté, c’est en comptabilisant l’activité des gens qui y travaillent. Or Facebook serait en grave difficultée à ce chapitre.
Nombreux sont les gens qui développent des applications Facebook. Ces gens prendront tôt ou tard le chemin du forum des développeur de la dite plateforme. Ils échangeront, poseront des questions, aideront d’autres développeurs, lanceront des débats, communiqueront avec les gens de Facebook afin d’assurer la pérénité de la plateforme, son bon fonctionnement continu, etc… K3Média fait parti de ces développeurs. Or Jesse Farmer, un blogueur États-Uniens, à collecté les données provenant du forum de Facebook et a analysé son activité des derniers mois. Les résultats sont sans équivoques. La plateforme est délaissée par un grand nombre de créateurs. Un trop grand nombre? Le géant serait-il menacé?

Si les données sont très précise, l’analyse que l’on peut en tirer peut varier. Je crois que l’on peut dire sans se tromper qu’il s’agit d’un début de défection envers la plateforme. 27% des gens qui envoyaient au moins un article sur le forum par mois en début d’année en sont maintenant réduit au mutisme le plus complet. Facebook aurait-il perdu plus du quart de ses développeurs en quelques mois? Aurait-il aussi perdu plus de la moitié des interventions sur la plateforme?
Jesse Farmer amène une piste de solution en rappelant que Facebook a imposé une limite sur le nombre d’invitations pouvant être envoyées via votre application durant cette période. Cela serait devenu trop difficile d’avoir du succès sur Facebook avec ces nouvelles règles et les développeurs se seraient découragés.
J’apporterais la nuance suivante : oui, les limitations imposées par Facebook ont probablement abbaissé l’activité des développeurs, mais tel était l’objectif. Facebook désirait "nettoyer" sa plateforme d’applications qui forcaient l’envoi de 250 invitations avant d’avoir une simple réponse à un questionnaires… Ces développeurs vont évidemment abandonner la plateforme. Est-ce réellement une mauvaise chose? Je crois qu’il y a encore une place pour du bon développement sous Facebook. Ce que Jesse Farmer oublie de mentionner est que Facebook redéfini la limite d’invitations possibles pour chaque application sur une base régulière selon un algorithme complexe. Si le comportement de l’application est "propre", la limite montera en conséquence. Facebook pourra ainsi délimiter facilement les applications "sales" et les fermer au cas échéant. Tel est le prix à payer pour améliorer l’expérience client.
Je vais donc baser mon explication sur notre propre expérience. Facebook est une plateforme propriétaire nous offrant un canvas sur lequel travailler. Lorsque quelque chose cloche avec la plateforme (je n’ai pas a chercher très loin, il y a quelques semaines de cela, après une de leur mise à jour hebdomadaire), il faut répertorier le cas problématique sur leur Bugzilla, attendre que suffisamment de gens aient votés pour ce bogue afin que Facebook décide de s’en occuper.
Le fardeau de "prouver" qu’il y a un problème du côté de Facebook incombe donc au développeur. C’est à lui de "promulguer" le bogue qu’il vient de répertorier et de faire en sorte que le maximum de gens votent pour lui afin que Facebook daigne se salir les mains. Pendant ce va-et-vient électoral, vous aurez droit au fameux message d’erreur spécifiant que le développeur est en train de corriger un bogue quelconque avec son application. Alors que Facebook est la cause du disfonctionnement! Cela rajoute l’insulte à l’injure!
Les usagers n’ont donc plus accès à l’application, le client non plus et demandera a juste titre quand le tout redeviendra opérationnel et le développeur rage de se trouver dépendant d’une communauté si peu respectueuse de son travail. Voilà pour moi le cercle vicieux dans lequel Facebook s’est sciemment coincé.
Dans le cas cité plus haut, Facebook a pris 8 heures à corriger un problème qu’une de leur mise à jour de la veille avait créée… Je leur ai même offert mon aide à un certain point voyant que cela traînait en longueur et affectait terriblement le fonctionnement d’une de nos applications. Certains diront qu’ils ont reconnu et corrigé le problème. Vrai. Mais 8 heures de "downtime" est innacceptable venant d’une si grosse compagnie. Non contents de ne pas tester suffisamment leur mises à jour hebdomadaire, ils ajoutent au fardeau des développeurs en ayant une vitesse de réaction terriblement lente.
Tout n’est pas noir cependant et Facebook a fini par écouter ses développeurs en nous accordant une plateforme beta qui comprendra les derniers changements à la plateforme avant que ceux-ci ne soient publics. Ceci donnera au moins une chance aux développeurs de vérifier leur installation avant qu’un désastre ne survienne.
Toutefois, Facebook demeure une bête difficile a suivre et a prévoir. Par exemple, nous savons qu’une refonte en profondeur de vos pages de profils est en cours. Elle a été reportée a deux reprises, les changements que l’on nous décrit sont flous ou inconsistants a chaque envois, cette mise a jour ne figure toujours pas sur la beta de Facebook non plus, bref, il est très difficile pour une équipe de développeur d’être efficace dans de pareilles dispositions. Il a d’ailleurs fallu que la communauté de développeurs se mobilisent pour demander davantage de sérieux de la part de Facebook qui a fini par nous donner un accès a la version a venir de Facebook a des fins de tests. Guillaume Brunet a qui je mentionnais justement l’existence de cette
plateforme cette semaine livre ses commentaires sur la prochaine mouture de votre profil Facebook sur son blogue.
Facebook peine donc a demeurer un endroit plaisant où développer. Et personne n’aime se créer des problèmes. Surtout avec la montée de concurrents tels Hi5, OpenSocial et cie…
Car Facebook ajoute de nouvelles langues? Génial! Mais ils l’ont fait sans bien tester leur truc et les problèmes d’encodages pullulent sur la plateforme… Selon la langue de votre profil, leur FBML n’est quelque fois plus interpreté du tout ou le javascript nécessaire au visionnement de la page mal initialisé! Le réel problème de Facebook vient de son manque de rigueur et de son horrible lenteur à répondre. La machine est devenu un monstre, le monstre n’avance plus. Facebook détient l’avantage du nombre, mais technologiquement, son retard se fait de plus en plus sentir de jour en jour. Et le temps passe…
Tags associés: api, Application, Blogue, communauté, Droit, Facebook, google, Internet, javascript, K3média, livre, OpenSocial, php, TI, travail, veille, xp1 commentaire
K3Média de retour de PHP Québec 2008
Bruno Caillé, le 19 mars 2008 à 11:25 dans Logiciel libre, Programmation, Service Web, Technologie, Web 2.0, ÉvénementTrois membres de l’équipe de développement de K3Média représentaient l’entreprise à la dernière conférence PHP Québec ayant eue lieu à Montréal. Jérôme Bascoul, Mathieu Ducharme et moi-même. Ce fut une belle réussite, l’événement faisant salle comble pour la première fois, ce qui démontre encore une fois l’implantation croissante de PHP dans la province.
Dans ce billet, je livrerai une petite synthèse de ma visite au Sofitel. Évidemment, sachez qu’il y a une énorme quantité d’information à notre disposition dans ce type d’événement. Chaque personne vient donc y chercher ce qui lui semble pertinent. En ce qui me concerne, je voulais rencontrer les vrais "pros". Ceux qui travaillent chez MySQL, qui ont les deux mains dans le noyau de PHP, qui produisent les innovations techniques nous permettant de demeurer créatifs et de livrer des applications de qualités. À ce chapitre, je n’ai pas été déçu.
Voici donc, chronologiquement, les détails :
JOUR 1 :
Performance-minded MySQL for PHP Developpers
Jay Pipes
Si la modélisation de base de données vous intéresse, sautez sur le dvd de cette conférence aussitôt qu’il sera disponible. Ou encore, cliquez ici pour en avoir un résumé de l’auteur. Jay Pipes travaille chez MySQL et il ne se contente pas de livrer les astuces éculées sur la bête. Il connaît visiblement le fonctionnement des différents engins (MyIsam, InnoDB…) et décrit en détail le fonctionnement interne d’une requête dans chaque cas. En plus de citer de multiples cas d’optimisation concrets de requêtes SQL ou de structure de données. Par exemple, les avantages à utiliser de multiples engins selon les tables et leur contenu, le partitionnement de données, la détection d’index inutiles, etc… Très intéressant et très pertinent.
Databases and SQL (un)patterns
Lukas Smith
Cela doit être difficile de voir la majorité de ses points se faire couvrir dans la présentation précédente. M. Smith s’est rapidement rendu compte que sa conférence était redondante avec la première et que plusieurs personnes assistaient aux deux, donc il a légèrement modifié sa présentation pour ajouter des éléments comparatifs entre MSQL, PostgreSQL et Oracle. Bien qu’intéressante, cette présentation n’avait pas la même profondeur que la première.
Rich desktop Applications
Raphaël Rougeron
Je ne savais que penser en lisant le résumé de ce séminaire car il semblait concerner des technologies propriétaires, mais il m’a grandement surpris. En fait, il s’agissait plutôt d’un comparatif entre Adobe Air et XulRunner. Clairement, le formateur penchait pour ce dernier, mais a joué le jeu de la description des deux, exemples à l’appui.
Bien que friand des solutions ouvertes, je dois avouer qu’Adobe air, était assez convaincant. Quelqu’un qui a des connaissances en HTML, Javascript, CSS, Actionscript peut recycler un projet, lui ajouter 2 lignes de codes et en faire une application desktop… impressionnant. L’intégration des différents outils d’Adobe n’est rien pour nuire.
XulRunner m’a semblé essouflé par rapport à la solution d’Adobe. Une syntaxe beaucoup plus aride (trop) pour le résultat escompté, lente à l’exécution, une pénétration du runtime très faible, bref alors qu’Adobe nous offre une solution clé en main, nous avons de l’autre côté une solution qui nous procurera de multiples migraines.
Maintenant XulRunner possède de belle qualités. En plus d’être une technologie ouverte, il y est plus simple de créer des composantes réutilisables (XBL) et de mieux moduler notre application. De plus, avec l’arrivée prochaine de Firefox 3.0, le runtime XulRunner sera inclu avec le fureteur. Ainsi, le tiers des internautes l’auront sur leur station et pourraient potentiellement installer des applications l’utilisant. Le rendu du Javascript sera aussi grandement accéléré donc le problème de vitesse devrait se résorber. Il y a donc un avenir pour cette technologie, qui sert déjà de base aux extensions de Firefox de toute manière.
Je crois que M. Rougeron frappe dans le mille en nous conseillant d’ailleurs de débuter par le développement d’une simple extension Firefox avant d’y aller avec la totale application si l’on veut suivre la voie Xul.
Une partie de cette conférence était consacré aux API REST et RESTFull. Très intéressant.
PECL : The PHP Language Workbench
Sebastian Bergmann
Quelquefois, un séminaire nous parle d’un truc et bien que nous savons que nous ne nous en servirons pas, cela nous fait aboutir sur d’autres choses. C’est un peu ce qui c’est passé avec celui-ci.
De toutes les extensions PECL que nous avons vues, je retiens parse_tree qui permet d’aller chercher toutes les informations possibles et inimaginables en format XML sur unr page PHP. Seulement, sans l’intervention d’un fichier XSLT, ces informations sont inutilisables pour un être humain normalement constitué!
Je trouvais l’idée d’aller chercher les informations sur les pages PHP géniale, mais l’utilisation de parse_tree me semble trop complexe pour le gain d’optimisation que nous pourrions en tirer. J’ai donc trouvé une extension PEAR PHP_CodeSniffer qui me permettra d’aller chercher les optimisations possibles aux pages PHP sur nos serveurs. Belle trouvaille.
Breaking the rules
Morgan Tocker
Je suis toujours impatient d’assister à un séminaire de quelqu’un de chez MySQL. Mais, je dois avouer que j’ai été déçu par celui-ci. Je m’attendais à des notions avançées de dénormalisations par un spécialiste, mais il ne s’agissait que de trucs génériques sur comment épargner son serveur mySQL. En résumé, la plupart des astuces pointaient vers un motto : “Enlever des trucs de votre MySQL, il roulera plus vite.” Ne pas utiliser de constraints, de checks, de foreign keys, épargne bien sûr du travail côté base de donnée, mais il en donnera davantage côté PHP… S’agit-il d’un gain réel tant au développement qu’à l’utilisation? Il n’avait aucun chiffre, benchmark test à l’appui. Bref, je ne suis pas convaincu.
JOUR 2
API Design in PHP
David Sklar
Passionnant, cette conférence. Le développement d’API fait appel à de nouvelles problématiques et cet architecte logiciel de chez Ning nous a livré de judicieuses astuces sur la maintenance de leur propre API.
Alors que dans le commun des développement, il est plus simple d’effacer que d’ajouter, la réalité s’inverse dans le développement d’API. Impossible de supprimmer une méthode sans subir des plaintes des usagers qui l’utilisent toujours. Si vous voulez déprécier un truc, vous le laisser actif combien de temps? Cela peut rapidement devenir un casse-tête.
La mentalité de Ning est de prévilégier l’expérience client au-dessus même du développement. Donc, si une façon de faire peut rendre un client plus heureux, malgré une perte d’optimisation, ce choix sera fait. L’idée est que l’usager ne devrait jamais être frustré par l’utilisation de l’API. Je crois qu’il s’agit d’une bonne ligne de conduite puisqu’un API pourrait être ultra-fonctionnel, mais très difficile à utiliser pour l’usager. Son succès en serait donc affecté davantage qu’avec un léger compromis sur les performances.
Aussi, les méthodes aux longues listes de paramètres sont proscrites car cela perd en clarté et en facilité de maintenance. L’utilisation d’un array est recommandée.
De plus, il est recommandé de débuter les noms de méthodes, de propriétés et de namespaces avec un préfixe identifiant clairement l’API (XN est celui de Ning). Ceci fait en sorte que les gens instinctivement n’altéreront pas ces items.
Comme Ning est un API RESTFull, il leur est facile d’inclure le numéro de la version de l’API demandée dans l’URL et de conserver plusieurs branches de l’API. Ainsi, les usagers utilisant des méthodes dépréciées pourront continuer d’utiliser la version voulue sans qu’elle ne soit "traînée" dans les branches futures.
Comme par exemple :
XN/ATOM/1.0/CONTENT…
Aussi, encore plus qu’ailleurs, l’importance est à la documentation détaillée de l’application. PHPDocumentor est une solution largement utilisée. Les tests unitaires sont aussi primordiaux dans ce type d’entreprise. Ning est récemment passé de Simpletest à PHPUnit pour les capacité accrues de ce dernier. Le fait de pouvoir automatiser des séquences de tests et de déclencher une notification à la moindre défaillance permet de déceler plus facilement une coquille qui s’est glissée dans quelque chose qui fonctionnait très bien autrefois, précisément le genre de bogue qui frustre les usagers d’un API. PHPUnit s’est d’ailleurs avéré être un outil fort prisé par plusieurs conférenciers.
Graph-Oriented Programming with PHP
Sebastian Bergmann
Ce séminaire présentait le "workflow engine" d’eZ Systems. Il s’agissait d’une présentation très "high level" et théorique sur le projet de thèse de doctorat de M. Bergmann. Je dois avouer que j’aimes voir des cas concrets et du code me démontrant les bénéfices d’une innovation. Je suis resté sur ma faim.
PHP and memcached – Giving your database server a break
Marc Wandschneider
La mise en cache… Le genre de truc que l’on connait tous sans jamais être parfaitement à l’aise avec tous les dillemmes que cela soulève. Cette formation réponds à plusieurs interrogations concernant une des façon les plus populaires d’accélérer l’accès à vos données, memcached.
À la base étonnemment simple, son concept est de réduire les allers-retours au disque dur, le maillon faible de la chaîne en terme de rapidité pour la lecture d’informations provenant de votre base de donnée. Memcached va utiliser votre mémoire vive qui est immensément plus rapide. Il s’agit tout simplement d’un gigantesque array contenant les informations que vous y déposez. Lors d’une requête, memcached va d’abord vérifier si votre valeur est dans l’array, sinon exécute la requête à la base. Tout simple.
Toutefois, memcached est bourré de trous. Par exemple, comme il ne s’agit que d’un giga-array, zéro sécurité. Aucune authentification possible. Ou si vous voulez barrer une entrée temporairement le temps qu’une transaction se termine, impossible de le faire via ce système. Faites très attention à ce que vous mettez dans votre cache.
L’autre faille est que pour être rapide, memcached doit être installé localement, grugeant des ressources précieuses de votre serveur. Bien sûr, il est paramétrable. Mais, pour être pleinement efficace, plusieurs serveurs doivent être greffé à votre memcached. Facebook a agi de la sorte. Ils ont des dizaines de serveurs dédiés à un memcached. Malheureusement, tous n’ont pas les moyens de Facebook.
Malgré tout, pour stocker de petites données bien choisies ne nécessitant pas de sécurité, memcached peut s’avérer un bon choix. À cela j’ajouterais toutefois le MySQL Query Cache. De cette manière, si jamais la donnée n’est pas trouvée dans l’array de memcached, un second niveau de caching se trouverait plus loin lors de la requête si cette entrée n’a pas subi de modification depuis.
Help! I found a bug in my code!
Derick Rethans
Toujours en version beta, xdebug est une extension PEAR permettant au développeur d’aller quérir davantage d’informations sur une erreur survenue en cours d’exécution ou encore d’optimiser son code.
Vous pouvez personaliser les indications d’erreurs fatales vous parvenant en paramétrant xdebug. Je vous invite à aller chercher le PDF de la conférence pour visualiser les différentes possibilités. Notez bien que le message d’erreur n’est pas nécessairement celui que vous auriez normalement, mais bien celui issu du compilateur PHP, souvent plus complet aux yeux du développeur.
Aussi, parmi les choses intéressantes, avec xdebug, vous serez en mesure d’identifier des écarts de temps, par exemple, combien de temps une fonction PHP a mis de temps à s’exécuter. Vous serez aussi en mesure de retracer les pointes de l’usage de la mémoire.
Comme je suis un visuel de nature, j’ai vraiment adoré l’idée d’activer le "profiling" et d’utiliser KCacheGrind pour visualiser les goulots d’étranglement de la page en un clin d’oeil. Idéal lorsqu’une page semble ramer sans raison.
Who am I? - The age of digital identity
Rob Richards
Ce spécialiste de la sécurité informatique, maniaque du respect de la vie privée sur le web a livré une conférence très intéressante sur OpenId versus les Information Cards (openinfocards pas celles de Microsoft!), Bien que l’on sentait son penchant pour l’une des deux solutions, il a livré une bonne description et une bonne analyse des deux plateforme. Je dois avouer que je ne connaissais aucune de ces technologies avant ce séminaire et j’en ai appris énormément. Bien qu’instructif, il reste encore beaucoup de travail pour que ce genre de techno devienne un standard sur le web. Premièrement, l’accessibilité de la chose. Ce n’est pas demain la veille que la personne plus ou moins “computer literate” va utiliser les information cards. Même le formateur s’y est repris à 5 fois pour que cela finisse par fonctionner! Bref, cela demeure pour l’instant une techno de “geeks”.
Côté sécurité aussi cela pose de nombreuse questions. OpenID est à mes yeux un danger public. Il faut vous procurer un ID auprès d’un fournisseur et vous authentifier chez lui à chacune de vos authentification, transaction sur le web… Je ne tiens pas à ce que Verisign ou quiconque possède de telles informations sur moi. Cela serait cent fois pires qu’un espiogiciels planté sur ma station. Et même si je fais confiance à Verisign, à qui sera-t-elle vendue dans le futur? Où irons mes infos? Un non-sens en terme de sécurité. OpenId a fait exactement ce contre quoi elle lutte. Bref, ils se sont plantés.
Concernant les information cards, cette techno a du potentiel si l’on peut traîner ses cartes avec soi, ce qui n’est pas encore le cas. Cela revient donc à dire que cette techno s’adresse pour le moment à ceux qui sauront héberger leurs identités chez eux afin d’en profiter partout. Un truc de “geeks” vous dis-je! Fort prometteur toutefois. Je retournerai voir où ils en sont l’an prochain.
Tags associés: actionscript, adobe, api, Application, astuces, Blogue, carte, Conférence, CSS, Design, Facebook, firefox, futur, google, Innovation, Internet, javascript, K3média, livre, Montréal, MySQL, Optimisation Web, php, Québec, Ressources, Technologie, TI, travail, Trucs, veille, vie privée, Web, xp, Xul2 commentaires
Étude triennale 2007 sur l’accessibilité des 200 sites web francophones au Québec
Geoffroi Garon, le 4 décembre 2007 à 11:25 dans Programmation, Technologie, Web socialCette étude triennale 2007 sur l’accessibilité des 200 sites web les plus populaires au Québec a été réalisée par l’équipe de AccessibilitéWeb. Cette étude actualise la lecture du portrait de la percée de l’accessibilité sur le web pour les personnes handicapées. Il y a les faits saillants de l’étude en PDF.
Tags associés: 2007, Accessibilité Web, Blogue, php, Programmation, Québec, Sites web, Technologie, TI, WebLaissez un commentaire
Nouveau fureteur : Mozilla sur le point de lancer Firefox 3
Bruno Caillé, le 27 novembre 2007 à 5:10 dans Programmation, Web 2.0Firefox 3 sera disponible fin Décembre / début Janvier (la mouture 2.0.0.10 est sortie hier)
Parmi les aspects intéressant, un "mailto" n’ouvrira plus forcément une application locale, mais pourra être relié à une application web comme Gmail.
Le développement et l’installation d’extensions (XUL) devrait être facilité aussi. Le but étant de faire du fureteur la porte d’entrée de tout les services accessibles à un client. Au lieu d’installer sur le système d’exploitation une suite de widgets Yahoo ou Google, Firefox veut amener les gens à installer seulement l’add-ons qu’ils ont besoin, pouvant même provenir d’une petite compagnie, démocratisant la chose. Ces add-ons peuvent même ultimement interagir ensemble, étant tous sur la même plateforme.
Encore plus intéressant, désormais, Firefox carburera désormais sur SQLite au lieu d’un simple fichier texte. Bookmarks, History, Tags, Stars (nouveau feature de FF3 semblable à Gmail)… dans une base de données… énormément de possibilités!
À quand la première extension Firefox K3?
Un article très intéressant sur le sujet et des extensions Web 2.0
http://www.readwriteweb.com/archives/firefox_add-ons_all_you_need_to_know.php
Une bonne revue de la version beta
http://www.informationweek.com/news/showArticle.jhtml?articleID=204200895
Firefox 3 Beta
http://wiki.mozilla.org/Firefox3
1 commentaire
Conférence PHP Quebec 2007 - Jour 1
admin, le 18 mars 2007 à 11:32 dans ProgrammationJe reviens à peine de l’édition 2007 de la conférence PHP Québec.
J’ai bien aimé la conférence, ce n’était que ma deuxième présence mais
encore une fois j’ai été plus que satisfait de la qualité des
présentateurs ainsi que de l’organisation générale. Donc un gros merci
a l’équipe de PHP Quebec; je ne peux imaginer l’effort necessaire pour
recueillir sponsors, conferenciers, equipement et accomodements et
parvenir a ce que tout fonctionne bien.
Il y avait trois differentes "tracks" de conférence, donc
il fallait à chaque conférence choisir quelle voir et quelles manquer
en se fiant a un petit paragraphe de description. J’aurais bien aimé
savoir à l’avance le public cible et le niveau technique de chacune des
conférences pour éclairer ma décision. Voici donc mon resumé, mes
commentaires et mes opinions…
Filtering Security Problem
Derick Rethans
J’avais bien apprecié la session de Derick l’an dernier sur xdebug (il
en est l’auteur) donc je m’attendais a quelque chose d’assez
intéressant et assez technique. Effectivement, M. Rethans nous a
presenté une extension PHP que je considère que j’aurais dû connaître
depuis bien longtemps, les input filters.
Il s’agit d’un simple framework pour valider les inputs des
utilisateurs (ou autres sources). On apprend que c’est actif par défaut
dans la dernière version de PHP, et donc que c’est super facile à
utiliser. En fait, il ne s’agit que d’aller chercher chacune de ses
variables venant de GET ou POST avec la fonction filter_input(). Il est également possible de performer les validations et de filtrer les variables avec filter_var().
C’est tellement simple à utiliser que j’ai déjà pu en quelques minutes
implémenter ce nouveau module dans K3Soft; il ne suffit que de choisir
le type de filter que l’on veut appliquer ou d’écrire notre propre
filter si ceux fournis par defaut ne conviennent pas. La plupart des
cas d’utilisation ont été pensé, il y a des filtres pour les strings,
les nombres, les email, les adresses IP, les URL…
Unicoding with PHP 6
Andrei Smevski
Cette session avait été donnée l’an dernier et je l’avais manqué.
J’étais donc content de pouvoir me reprendre cette année. Le support
unicode est la grosse nouveaute de PHP 6 et si je me fie a Andrei
Smevski, ils sont dans la bonne direction.
Si j’étais cynique, je dirais "Mieux vaut tard que jamais"… c’est
assez etonnant de savoir que nous avons encore tant de probleme avec
l’affichage multilingue en 2007. C’est présentement possible avec PHP 5
grâce a l’extension mbstring
mais c’est évidemment insuffisant; il faut qu’un tel support soit bâti
dans le core et supporté par toutes les fonctions qui ont à manipuler
des strings.
C’est donc le travail (gigantesque) qu’a completé M. Smevski. Ce n’est
pas terminé, 62% des fonctions du core supportent présentement
l’unicode. Il va également rester la documentation à faire.
C’est donc une très bonne nouvelle de savoir qu’enfin strtoupper() va supporter tous les caractères speciaux, que strlen() va etre garanti de fonctionner même avec des caracteres complexes asiatiques etc…
Andrei termine la session en donnant des exemples tres cool, par
exemple pour faire afficher les alphabats orientatux en latin. Je vais
essayer d’installer une image virtuelle VMWare et y installer le dernier snapshot de PHP 6 pour jouer avec tout ca.
PHP & Design Patterns
Gérald Croës
J’avais quelques inquietudes face a cette session; qu’on allait nous
repeter encore les meme design patterns que l’on connait deja bien,
etc… Finalement, c’etait exactement ca, mais j’ai tout de meme bien
apprecie. En fait, on ne parle jamais assez de design pattern, quand on
y pense, donc c’est bien d’avoir une conference qui nous rappelle les
bonnes pratiques face à ceux-ci.
Ce que j’ai trouvé dommage, c’est qu’encore les meme exemples ont ete
donné pour expliquer le singleton, le factory, le decorator, le builder
etc… Dans tous les ouvrages sur les design pattern, on donne toujours
les mêmes exemples. Pourtant on vante les patterns comme étant des
solutions reutilisables dans plusieurs situations…
M. Croës a répété plusieurs fois un bon point; les patterns ne sont
qu’une piste de réflexion à utiliser (ou pas). Il faut donc pas tenter
de les integrer à tout prix mais plutot simplement s’en servir comme
référence lors de la conception de systèmes.
SOA: Beyond the Hype
Rob Richards
Encore une autre conferencier que j’avais bien apprecie l’an dernier.
Rob Richards semble etre le responsable de tout ce qui touche le XML
dans PHP, j’ai donc ete plutot decu de l’approche non-technique de
cette session.
Si j’esperais apprendre de bonnes techniques d’application d’un systeme SOA (Service-Oriented Architecture), il a plutot discute du cote "management" et "marketing" de cette approche architecturale.
La session a donc porter son focus sur le fait que SOA n’est pas un
système magique qui reglera les problemes existants et qui sauvera
nécessairement beaucoup d’argents a court-moyen terme. Toutefois, avoir
un bon plan et ne pas voir trop gros tout de suite en partant pourront
aider a creer un systeme base sur les services qui va aider
l’entreprise a s’ajuster plus rapidement aux changements des besoins.
À la toute fin, il montre un peu de code qui m’impressionne beaucoup; avec de simples commentaires JavaDoc (phpdocumentor)
il ouvre une classe à plusieurs services en même temps. Je note donc
que je dois assister absolument à la session de Charter Grahams le
lendemain sur l’extension SCA.
10 Random tips for MySQL performance Optimisation
Morgan Tocker
C’est toujours bon d’avoir des commentaires d’un expert sur les facons
d’optimiser ses bases de donnes MySQL. J’ai donc apprecié le format de
cette session qui portait effectivement bien son titre de 10 trucs plus
ou moins aléatoires.
Selon M. Tocker, la plus gros "bottleneck" d’un systeme
est souvent le disque dur, il faut donc prendre ceci en considerations
lorsque l’on optimise notre système. Par exemple, la RAM est moins
souvent un probleme que l’on pense il faut donc utiliser le systeme de
cache des tables MyISAM a son maximum.
Le reste de la conference portait principalement sur la façon d’utiliser les logs (SHOW STATUS)
pour trouver les problèmes potentiels dans le système. J’etais content
d’en apprendre plus sur les avantages et inconvenients des moteurs de
stockages InnoDB et MyISAM.
Laissez un commentaire
Conférence PHP Québec 2007
admin, le 7 mars 2007 à 11:26 dans Programmation
Pour une deuxième année consécutive, j’irai les 15 et 16 mars
prochain à la Conférence PHP-Québec 2007, accompagné de mes deux
collègues de travail Nicolas et Stéphane. Je n’ai eu le temps que de
jeter un très bref coup d’oeil aux conférences mais il semble que cette
année encore l’équipe d’organisateurs à réussi à réunir un nombre
impressionnant de conférencier de qualité et de personnages "important"
dans l’univers de PHP.
Encore une fois, il y aura le dilemme de choisir quelles conférences choisir et quelles sacrifier. Un "beau problème"…
La raison principale pour laquelle je voulais annoncer sur notre blogue la présence de K3 Média à cet évenement est que nous sommes présentement à la recherche de programmeurs web (PHP).
J’invite donc tous ceux d’entre vous qui sont à la recherche d’emploi
d’entrer en contact avec moi. Je serai heureux de vous rencontrer.
D’ici là, vous pouvez envoyer votre candidature à info@k3media.com
N’oubliez pas vos cartes d’affaires / C.V.
Laissez un commentaire










