Petite découverte aujourd'hui en cherchant un peu par hasard mysql_num_rows dans Google
, puisqu'on peut y voir un petit extrait de code PHP d'une application nommée eNdonesia
(d'ailleurs le fait d'avoir des mysql_query() et mysql_num_rows() perdus au milieu de HTML ne donne pas très envie mais c'est une autre histoire...).
Je savais que la recherche universelle
était en place depuis un moment, mais c'est la première fois que je vois des morceaux de Google Code Search
au milieu des résultats et pourtant des recherches portant sur du code j'en fais régulièrement. En regardant les autres moteurs sur la même recherche, il est amusant de constater que Yahoo!
remonte en dixième place une page
avec le célèbre warning "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result" qui est certes répèter un bon nombre de fois. Les résultats sur Live
sont encore plus surprenants, puisque ce dernier sort une page
du même genre en neuvième position mais chose étonnante, il faut aller en troisième page pour trouver une page de PHP.net
et encore ce n'est pas la bonne ! Google a semble t il encore un bonne longueur d'avance !
Daniel Egeberg publie un dossier plutôt complet sur la sécurité PHP, sous forme d'un PDF de 20 pages. La sécurité PHP passe par le masquage d'erreur, les injections SQL et HTML, les téléchargements de fichiers, et la protection des sessions.
Ce document est à utiliser comme une référence, et si tous les points affichés sont pris en comptes, il sera difficile de trouver une faille dans vos applications. Il manque peut être une section sur les directives de sécurité PHP plus détaillées.
"Dans cet article, je vais vous montrer comment construire un uploader d'images avec Adobe AIR, Javascript et HTML. Mon premier exemple sera le chargement d'un fichier. Puis, en se basant sur cet exemple, nous allons voir comment télécharger un groupe de fichiers. Et je finirais en affichant la liste des fichiers actuellement disponibles sur le serveur, après leur téléchargement."
Jack Herrington s'attaque au problème classique des téléchargements d'images, si populaires auprès des utilisateurs, mais tellement inefficaces en HTML.
Symfony 1.1 est publié en version stable et finale. La liste des évolutions du populaire framework de développement est très intéressantes.
Les classes de formulaires, qui permettent de produire des Formulaires HTML, et de les valider, ont été réécrites et sont documentées (en français). Le système de gestion des tâches a aussi revu en profondeur, l'analyseur YAML réécrit.
Le projet est livré avec un plug-in de compatibilité avec la version 1.0 (sfCompat10), ainsi que 8500 tests unitaires de regression.
Bravo à toute l'équipe pour le travail, et bonne chance à cette version.
Selon une étude indépendante menée par Google Switzerland, IBM Internet Security Systems et CSG ETH Zurich, les utilisateurs de FireFox sont les plus prudents, car ils utilisent la toute dernière version du système (à l'exception de 16% d'entre eux). En fait, les chiffres sont beaucoup plus bas pour Safari, Opera et Internet Explorer. Ces derniers sont 1 sur 2 à ne pas utiliser la dernière mouture du navigateur.
Alors que tout ces navigateurs utilisent un système de surveillance automatique de la dernière version, il y a encore tant d'utilisateurs qui ignorent ces mises à jour. Pourtant, il n'y a qu'un seul clic, sauf si on ne dispose pas des droits pour cela sur la machine.
Les auteurs de l'étude propose au final de mettre une date de péremption sur les navigateurs : meilleur si utilisé avant... Cela rappelle les licences temporaires, mais maintenant, avec une argumentation sécuritaire.
Sheeri Kabral passe en revue MONyog, un moniteur MySQL dédié. Il s'installe en quelques minutes, surveille les requêtes SQL (tentatives de piratage, qualité des requêtes SQL), et produit des graphiques de performances. MONYog se distingue des autres outils de surveillance, comme MySQL entreprise, par l'absence d'agent local : pas besoin d'installation particulière sur le serveur de destination pour le suivre.
MONyog coûte 129 $ US, avec 1 an de support.
Après la sortie récente de Symfony 1.1, Fabien Potencier décrit la feuille de route pour Symfony 1.2, dont la sortie est prévue en octobre 2008.
Les nouvelles fonctionnalités prévues sont les suivantes :
Réécriture complète de l'admin generator, afin de profiter des nouvelles fonctionnalités pour les formulaires et en vue de la rendre plus souple et personnalisable.
Plugins Propel et Doctrine.
Filtrage natif des données.
Intégration de la librairie Swift (solution d'envoi d'email).
Création d'un plugin pour les éléments javascript, en vue de laisser le choix à l'utilisateur pour l'éventuel framework javascript à employer.
Discussion ouverte sur les fonctionnalités nécessaires pour un "deployement task" adéquat.
Il annonce un nouveau management des sorties de Symfony dont la date de sortie sera désormais fixée à l'avance. Notamment celle de la version 1.2 est d'ores et déjà prévue pour octobre 2008, quatre mois selon après la version 1.1. Pour permettre ce type de management, le développement de chaque nouvel élément sera rendu indépendant des autres et attribué à un membre spécifique de l'équipe.
Il est à noter que seul l'ajout du point sur l'admin generator est considéré comme "must-have" pour la version 1.2, les autres seront ajoutés s'ils sont prêts à la date échue.
Lukas Smith est maintenant co-RM (Release Manager), avec Johannes Schlüter, pour faire avancer PHP 5.3. C'est une bonne chose, et PHP 5.3 en a bien besoin. De nombreuses fonctionnalités de PHP 6.0 ont finalement été ramenée en 5.3, et il semble que le code actuel ne soit pas encore bien stable : mon dernier make test sur OSX affichait 13% d'erreurs dans les 6000 tests unitaires (YEAH), et le CLI était inutilisable.
Bonne chance à Lukas, et Johannes. Pour les aider, pas de secret : téléchargez PHP sur la version snaps, et testez leur sur vos applications. Plus on en sait maintenant, moins il y a urat de bugs plus tard.
'Récemment, je cherchais un agrégateur RSS. J'ai été surpris de réaliser la difficulté que j'avais à trouver celui qui me convenait parfaitement. Et, manquant de patience, je me suis penché sur l'idée d'écrire le mien. Dans cet article, je vais vous montrer comment créer votre propre lecteur RSS!
Par Ian Gilfillan
Alex Tomic a testé le proxy MySQL en charge sur EC2 : un proxy et 4 serveurs MySQL. Les requêtes sont réparties sur 4 serveurs MySQL, et distribuées (entrée et sortie) via le proxy. Les résultats montrent que le point critique est entre 4 et 8 threads concurrents : en dessous de ce niveau d'activité, le surcoût de MySQL proxy rend l'architecture plus lente. Une fois ce cap passé, le gain devient plus intéressant, et l'archi proxy est capable de monter en puissance jusqu'à 4 fois la charge nominale de chaque serveur.
Lors du traitement de photos avec Lightroom l'une des étapes essentielles est de supprimer des photos du catalogue lors du tri. Il arrive que la photo soit retirée du catalogue mais se trouve toujours sur le disque. La place disque ainsi perdue devient non-négligeable.
N'ayant pas trouvé de solution sur la toile j'ai écrit un script [PHP][php] qui parcourt récursivement un répertoire et regarde si les fichiers photos existe dans le catalogue de lightroom.
[php]: http://www.php.net Attention : je ne prends aucune responsabilité quand à l'utilisation que vous pourrez en faire, une mauvaise utilisation peut détruire votre catalogue, faites une sauvegarde au préalable.
Limitations : ce script n'interagi qu'avec un catalogue à la fois, si vous avez plusieurs catalogues référençant les mêmes photos sur le disque ce script ne vous sera pas d'une grande aide
Lightroom utilise une base de données SQLite il est donc possible de faire des requêtes sur cette base. Le schéma n'est pas publié par Adobe, si votre catalogue est corrompu ne venez pas vous plaindre
Le script est non destructif, il affiche les informations sur les fichiers et les commandes que vous pouvez executer pour les supprimer.
Sur son blog, Alex Shapovalov propose deux séries de tests comparatifs des CMS Typo3, Joomla!, and Drupal.
En mai 2008, une première série de tests lui avait permis de conclure que Drupal était notablement plus rapide que les autres CMS testés.
De nombreuses personnes lui avaient alors reproché de ne pas avoir fait le nécessaire pour optimiser le résultat de chacun des CMS testé (cache, environnement, ...). Aujourd'hui il propose les résultats d'une nouvelle série de tests en ayant fait les optimisations demandées. Il en conclut que Drupal tire encore une fois son épingle du jeu.
Affaire à suivre. Il ne serait guère étonnant que d'autres séries de tests voient le jour dans les prochains mois.
Ces vidéos sont publiés sur les sites de partagent de vidéo. Ce sont des tutoriels enregistrés, des sessions de conférences, des screencast ou encore des slides de conférences.
N'hésitez pas à nous contacter pour signaler tout media qui mérite d'être ajouté à cette liste.
Les centiles sont une des 99 valeurs qui divise les données triées en 100 parts égales. Le premier centile (abusivement appelé percentile, de la version anglaise), identifie les valeurs le plus basses du groupe. On connaît souvent la médiane, qui découpe le groupe en 2 part de même taille : le concept est similaire.
Roland Bouman publie un article où il arrive à calculer les percentiles sans jointures, sous-requêtes ni variables utilisateurs : il se base sur GROUP_CONCAT, et SUBSTRING pour ordonner le groupe, et en extraire des portions intéressantes. Le tout se fait en une seule passe, et quelques manipulations de chaînes.
C'est un bon truc, mais je crois que je préfèrerai les variables utilisateurs, pour éviter de concaténer des chaînes trop grosses dans group_concat.
Via l'AFUP :
"Yahoo ! a quelque chose à fêter avec vous ! Dans le style "SearchMonkey" !
Vous êtes développeur ? Venez célébrer avec nous le lancement de SearchMonkey. Au programme de la soirée : des démos en live, des goodies, et bien sûr, nourriture et boisson à lavenant !
Lieu : La Cantine - Coworking Paris 151 rue de Montmartre Paris, Île-de-France 75002
Avec SearchMonkey, les développeurs et les webmasters peuvent utiliser les standards du Web sémantique et les données structurées pour améliorer et enrichir les résultats de Yahoo ! Search afin de les rendre plus utiles, plus pertinents et plus attrayants. Venez donc rencontrer léquipe qui a créé le service : vous aurez toute liberté pour leur poser les questions qui vous tiennent à coeur.
Nous espérons vous voir le 10 juillet !"
"Une tâche classique pour tout système d'identification est de stocker et relire des mots de passe. La sécurisation de ces données est critique pour la mise en place d'un système stable et sécuritaire, car s'il y a une vulnérabilité, il faudra que les données se défendent seul contre les pirates qui auraient accès en lecture. Les mots de passe ne doivent jamais (ou très exceptionnellement) être sauvé en clair : il faut toujours compter sur la signature, un chiffrement uni-directionnel, pour protéger ces informations critiques, et au moins gagner du temps."
Par Sean Coates.
Retrouvez les dépêches les plus populaires mois par mois, dans la rubrique 'Le meilleur du mois'.
Vous pouvez aussi découvrir l'actualité PHP et MySQL uniquement à travers les liens publiés sur nexen.net, dans le link blogue : tous les liens y sont recensés, mais pas le billet d'actualité.
Enfin, nous avons un porte-feuille de liens intéressants, dans la boîte à liens. Vous y trouverez beaucoup de PHP et MySQL, mais aussi d'autres petites perles intéressantes.
Bonne lecture!
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.
3 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Joomla et phpMyAdmin
Après quelques années d'absence, la 5ème édition de la VIP aura lieu du 11 au 13 juillet 2008 aux alentours de Lyon.
Cette rencontre sera le lieu de prédilection de la création numérique. La demoparty ou aussi appelé coding party comporte différents concours informatiques dans lesquels les créateurs peuvent s'affronter, s'évaluer, en laissant une grande part de liberté dans la création et l'imagination.
Cette année verra apparaitre une série de conférences accessible pour les visiteurs et les participants, dont une des conférences sera sous le thème de "Qu'est ce PHP ?" le Samedi 12 juillet a 14h00, présente par moi même (christophe Villeneuve)
Cette petite fonction permet de générer une liste déroulante de nombres en une seule ligne de code. Il suffit de lui fournir quelques paramètres obligatoires tels que son nom, la valeur de départ, la valeur d'arrivée, la valeur par défaut et quelques autres données facultatives pour obtenir une belle liste déroulante sexy.
Pour rappel, FirePHP est une extension de Firebug permettant d'aider l'utilisation du PHP en un simple appel.
FirePHP nécessite obligatoirement PHP 5 et se trouve maintenant 100 % compatible avec Firefox 2 et la nouvelle version de Firefox 3 qui vient de sortir.
En plus, Un Wiki et de nouveaux exemples ont été réalisés pour faciliter vos développements.
Vous connaissez peut-être les attaques XSS qui consistent à injecter du code malveillant, et où l'utilisateur est directement victime de l'action du code (boîtes de dialogue, redirections, vols de cookies, etc.) ? Eh bien, ce tutoriel va vous apprendre un autre type de faille radicalement opposé à celui-ci. Il s'agit bien entendu des attaques CSRF.
"comment sassurer que son serveur MySQL tiendra la charge ? 1000 requêtes /s en insertion sont prévues le jour de la sortie de votre prochain service internet : votre serveur sera t-il capable dy faire face ?
Les deux outils présentés aujourdhui permettent de simuler la charge reçue par le serveur MySQL en fonction de différentes paramètres dont le nombre de connexions simultanées et le nombre de requêtes par utilisateurs. Avec de tels outils, vous pouvez par exemple tester mysqlslap sur une de vos requêtes clé, visualiser comment celle-ci réagit sous différentes configurations, et visualiser un score à base de temps dexécution. Une fois ce score récupéré, comparez-le avec celui que vous obtiendriez avec la même requête modifiée par vos soins, avez-vous progressé ?"
Arjen Lentz propose une solution pour éviter les abus de LEFT JOIN :
"Si vous n'avez aucune raison pour utiliser un LEFT JOIN, n'en utilisez pas".
Trop souvent, LEFT JOIN est la jointure par défaut dans les applications, alors qu'un JOIN classique, avec condition de jointure, serait correct et suffisant. Réfléchissez-y, cela fait souvent plus de sens, et moins de travail pour le serveur MySQL.
Log_error() pour MySQL est une fonction utilisateur qui enregistre un message dans le log d'erreur de MySQL. Pour pouvoir l'extraire plus rapidement ultérieurement, un indicateur est ajout à la fin du message.
Pourquoi écrire dans le log d'erreur? Pour le débogage, ou pour simplement enregistrer quelque chose d'important pour votre application.
GlassFish est un serveur d'application, édité par Sun. Il est écrit entièrement en Java, ce qui semble en condamner l'accès à PHP. Pourtant, ce n'est pas le cas. Il existe plusieurs implémentations de PHP en Java, et notamment Quercus. Cette dernière s'intègre dans GlassFish pour faire tourner les scripts, et le résultat semble suffisamment bon pour faire tourner Wordpress directement.
L'une des fonctionnalités phare de MySQL 6 sera la sauvegarde : au lieu de passer simplement par mysqldump, pour exporter les données, puis par mysql (le client en ligne de commande), pour tout réimporter, des commandes SQL seront dédiées à la sauvegarde et la restauration des données :
backup database employees to 'emp2.bkp';
restore from 'emp2.bkp';
Les premiers tests de Guiseppe Maxia affichent des gains de vitesse de 6 fois. La sauvegarde peut même être encore plus rapide si on ignore les index (mais la restauration sera alors beaucoup plus lente).
Jetez un oeil sur la documentation en ligne et les exemples de Guiseppe. Pendant que vous regarderez la doc MySQL, jetez un oeil sur le "MySQL Load Balancer", qui est indisponible maintenant, mais semble programmé pour la version beta.
Pour faire un test rapide de MySQL 6, utilisez donc la mysql sandbox.
"Mes récentes, brèves mais fructueuses, incursions dans l'archipel de Java m'ont permis de pratiquer les patrons de conceptions inversion de contrôle (IoC) et injection de dépendances. Je viens de tomber sur une bibliothèque PHP, Crafty, permettant de faire de l'injection de dépendances en PHP. L'occasion d'en dire 2 mots..."
Par clochix.
Une stratégie de backup complète d’un site web est efficace tant que la taille de ce site web reste raisonnable. Avec un site de plusieurs dizaines de gigaoctets, il devient en effet plus compliqué de rapatrier chez soi la backup du site.
Je ne parle ici que de backup des fichiers propres au site (images uploadées par exemple), pas de sa base de donnée qui doit faire l’objet d’une stratégie de sauvegarde plus poussée.
Jusqu’à présent, en faisant “avec les moyens du bord”, je procédais de la façon suivante pour posséder une sauvegarde perso d’un site web:
Une tâche cron tourne chaque X jours la nuit et met tout le site dans une archive tar.gz
Je télécharge cette archive sur mon PC personnel peu après
Mais voilà, maintenant que le site en question pèse dans sa totalité une vingtaine de giga, même avec une connexion symétrique à 100Mb/s, c’est laborieux. Il faut donc trouver un autre moyen. Ici, la solution s’appelle rsync et permet de posséder une copie du site identique à l’instant de la synchronisation.
Maintenant pour posséder une sauvegarde perso d’un site, je n’ai plus qu’à lancer manuellement ma commande rsync sur mon PC quand celui-ci est allumé afin de rapatrier les nouveaux fichiers crées ou supprimés sur le serveur, et sans devoir télécharger tout le reste qui n’a pas changé. Mon PC étant sous Windows, il serait dommage de se priver de rsync.
Voiçi en 3 commandes comment avoir un mirroir de votre site avec une connexion sécurisée et un PC où effectuer la sauvegarde sous Windows
Prérequis:
une connexion SSH vers votre serveur (nous utiliserons rsync avec SSH, et non en TCP avec le démon Rsync)
Note : il s’agit de double tiret et non de tiret simple
Explications :
Etape 1 :
On crée un utilisateur sur le serveur possédant un vrai shell (pas de /bin/false car rsync doit pouvoir exécuter des commandes shell). Cet utilisateur doit posséder le droit de lecture sur votre répertoire à backuper (par exemple htdocs/), ainsi que ses sous-répertoires. Ici je le place dans les users de mon groupe www qui possèdent le droit de parcourir mon répertoire htdocs et ses enfants.
Etape 2 :
Un password fort à mettre en place pour l’utilisateur. Cet utilisateur aura le pouvoir de se connecter en SSH sur votre serveur et de parcourir vos fichiers. Ici pas de mis en place d’une authentification par clés SSH, nous utiliserons une connexion manuelle avec un mot de passe à entrer manuellement, car ici c’est à vous de lancer le processus de synchronisation quand vous le souhaitez. Pour un tutorial complet sur comment mettre en place un rsync automatique avec utilisations de clés SSH, rendez-vous sur cet excellent tutotial publié sur Howtoforge
Etape 3 :
cwRsync est une version packagée pour windows de rsync et ssh grâce à cygwin. Il vous fournit une fois installé les binaires rsync.exe et ssh.exe dans son dossier \bin.
Voici les arguments utilisés (rsync –help pour toutes les options) :
–verbose
Détails de l’exécution du programme
–progress
Voir l’avancement du téléchargement pendant les transferts
–stats
Des stats sur les transferts (vitesse de transfert)
–compress
Compression des fichiers transférés
–recursive
Parcourir les sous répertoires du dossier à backuper
–delete
Supprimer aussi les fichiers sauvegardés si ils n’existent plus sur le serveur
-e “ssh.exe -p 8000″ ou -e “ssh -p 8000″ ou -e “ssh”
Commande du shell distant à utiliser (ici ssh.exe dans le même répertoire que rsync.exe), suivi des arguments optionnels à lui passer, ici connexion sur le port distant 8000 et pas le traditionnel 22 (le serveur cible n’acceptant pas les connexions SSH sur le port 22 mais sur le 8000)
rsync@monserver.fr:/home/server/htdocs/mondossier
L’utilisateur ssh est ici rsync, on se connecte au server cible server.fr (ou une IP) et on demande de commencer la sauvegarde en démarrant depuis le dossier /home/server/htdocs/mondossier. Extrait du manpage :
“Le transport par shell distant est utilisé à chaque fois que le chemin source ou destination contient un séparateur «:» après la spécification de l’hôte. Le contact direct avec un démon rsync est utilisé lorsque le chemin source ou destination contient un séparateur «::» après la spécification de l’hôte, OU lorsqu’une URL rsync:// est spécifiée”
“/cygdrive/f/Backup/rsync”
C’est la synthaxe à utiliser pour copier les fichiers sur le disque dur F: et dans le dossier Backup/rsync. On ne peut pas indiquer un chemin windows directement comme ‘F:/Backup …’, il faut passer par l’abstraction des disque cygwin (/cygdrive/LETTRE_LECTEUR/VOTRE/DOSSIER)
Une fois la commande lancée, une connexion SSH va se mettre en place, le mot de passe donnée en #2 vous sera demandé et le processus de synchro sera lancé.
Dans un article paru sur le site IBM, Vikram Vaswani propose un tutoriel permettant d'associer l'API Google calendar et l'extension SimpleXML de PHP et/ou la librairie GData de Zend.
Ce tutoriel commence par donner quelques explications sur le format de sortie de l'API Google Calendar et comment récupérer les événements en usant de SimpleXML ou des librairies Zend. Il aborde ensuite les fonctionnalités de gestion et de recherche des événements.
Zend Technologies a annoncé aujourd'hui l'ouverture des inscriptions pour la quatrième conférence annuelle Zend/PHP.
Celle-ci se tiendra du 15 au 18 septembre, à Santa Clara, en Californie. Cette année sera axée sur les améliorations importantes que PHP peut apporter aux nouvelles applications web, à l'avantage de leurs utilisateurs.
L'interface est fluide, et on peut aussi travailler sur des fichiers XML, grâce à SimpleXML.
L'approche est d'autant plus séduisante qu'on peut imaginer une traduction immédiate entre un stockage tableau et un stockage en base (ou en XML, ou en une autre structure). Le langage SQL est alors agnostique, et s'adapte à différentes solutions de stockage, temporaire ou permanant, locale ou distante. Or, c'est souvent le cas : on voit évoluer une variable qui était un scalaire au départ (une seule valeur), puis devient un tableau, puis une table SQL ou un fichier XML, en passant par une inclusion PHP.
Smashingmagazine a lancé un sondage sur les points de conceptions des formulaires Web, et ils en ont tiré un dossier très complet, en deux volets. Tous les aspects de la présentation d'un formulaire sont disséqués : positions des étiquettes, couleur, typographie, gestion des champs obligatoires et des erreurs, etc. Vous en apprendrez beaucoup sur la popularité de vos propres choix.
Le plus important est d'avoir une liste assez complète sur les solutions utilisées et leur rendement : les tooltips et leur positionnement, les méthodes d'affichage d'erreur. Il y a des questions qu'on ne se pose pas, mais parfois à tort.
Evidemment, au final, cela fait beaucoup de travail supplémentaire pour chaque page.
Les slides de présentations de l'architecture Linkedin sont maintenant en ligne, et c'est une excellente source d'inspiration. Par exemple, la totalité des relations de Linkedin sont stockées en RAM, dans une machine appelée The Cloud. Rien en base de données SQL. Il faut 8 heures pour recharger les millions de liens à partir de la base.
Linkedin utilise aussi un système de communication interne push : les informations récentes sont mailées (en interne) à une mailbox, où elles sont immédiatement disponibles. Puis, elles sont mises à jour dans le système, de manière asynchrone.
Je découvre la nouvelle version de PHPTeam. Pour l’instant, le fork de Symfonians est encore un peu brutal, comme, par exemple, le bloc “a propos” mais il y a déjà quelques articles, un super logo et deux offres d’emploi !
Une bonne initiative si elle est suivie d’inscriptions et de contenus.
Bon courage aux développeurs de ce site.
Article original publié sur Glagla Dot Org. Tous droits réservés.
Les helpers sont pratiques pour afficher des images ou créer des liens htmls. Parfois, on désire lier des documents que l’on a uploadé dans un répertoire spécifique ou autre bizarrerie. La classe sfWebRequest de Symfony fourni une méthode bien pratique pour faire ça. Par exemple pour accéder au fichier raoul.pdf dans le répertoire web/uploads/pdf :
Justin Swanhart publie Flexviews, des vues matérialisées pour MySQL, basée sur des procédures stockées. Ce sont des vues qui sont réellement enregistrées sur le disque, et non pas générées à chaque sollicitations. L'avantage est de bénéficier des capacités d'indexation des vraies tables, et l'inconvénient est de devoir faire la mise à jour de la table.
C'est là que Flexviews intervient : avec quelques procédures stockées, Justin a mis en place des outils pour mettre à jour la table. Les méthodes de mise à jour sont COMPLETE, qui remplace la table existante par une nouvelle, et INCREMENTAL, qui est capable de faire une petite mise à jour, sans tout recalculer. Les coûts de mises à jour peuvent être assez élevé, mais les gains de performances pour les lectures sont nettement plus importants.
OK, la date du 8 août 2008 approche à grand pas, puisqu'il ne reste plus qu'un mois avant que PHP 4 soit définitivement et totalement abandonné. Il ne vous reste donc plus beaucoup de temps avant que cette migration soit obligatoire.
Plus que la peur de la fin de PHP 4, c'est les avantages que vous gagnerez à passer à PHP 5 qui doivent vous stimuler : POO, SimpleXML, Web 2.0, Json, espaces de noms, performances, sécurité et stabilité sont au rendez-vous. Les missions de migration que je mène pour nexen Services sont souvent initiées par cette peur, mais se transforment généralement en chasse au trésor : "On peut faire ça en une seule fonction maintenant?".
Bref, passez à PHP 5!
Last week we have presented first findings of our web forms survey. The main objective of the survey was to provide designers and developers with some intuition of how effective web forms are designed; we also presented some guidelines of how an effective and user-friendly web form can be achieved.
A semi-automated, largely passive web application security audit tool, optimized for an accurate and sensitive detection, and automatic annotation, of potential problems and security-relevant design patterns based on the observation of existing, user-initiated traffic in complex web 2.0 environments.
Vous possédez un Mac et vous utilisez Google Document. Voici une application qui vous permettra de rechercher des documents et signets présents sur votre compte Google en utilisant Spotlight. Cette utilitaire se nomme Precipitate, il a été développé par Stuart Morgan de chez Google.
Les version 6.3 et 5.8 de DRUPAL sont disponibles. Ce sont des versions de maintenance pour corriger des failles de sécurités ainsi que des problèmes signalés par l'outil de suivi des bugs.
La version 6.3 inclue également :
Quelques modifications sur l'installeur pour prévenir les problèmes de propriétés des fichiers au niveau des partages
Passage à la version 1.2.6 de jQuery
Amélioration de la compatibilité PostgreSQL
Amélioration des performances des API search, menu et form.
Il est a noter que Views pour Drupal 6 nécessite la version 6.3 pour fonctionner correctement.
La mise à jour des versions existantes de DRUPAL 5 et 6 est vivement recommandée. Pour plus d'information, vous pouvez consulter l'annonce sur le site du projet DRUPAL
Pour ceux qui se lancent sur Symfony, et utilisent une base Oracle, l'OTN publie un article d'introduction pour faire fonctionner ces deux technologies ensemble. Il y a un exemple complet, avec une entreprise et ses employés.
"mylvmbackup est un outil pour réaliser rapidement des copies de sauvegardes de données dans un serveur MySQL. Pour ce faire, mylvmbackup obtient un verrou sur toute les tables, écrit les caches sur le disque, fait une copie LVM du volume contenant les données MySQL, puis libère les tables. Le processus prend alors quelques instants. Lorsque c'est fini, le serveur peu reprendre son fonctionnement normal."
L'ouvrage "Mastering phpMyAdmin for Effective MySQL Management" est recommandé sur le site de Zend.
Ce livre a été écrit par Marc Delisle [ISBN 1904811035]. D'après Cal Evans, ce livre s'adresse aussi bien aux utilisateurs finaux (développeurs et administrateurs de bases de données) qu'aux administrateurs systèmes. Il considère que ce livre est particulièrement intéressant pour :
Les personnes ne connaissant pas encore phpMyAdmin et voulant en tirer le maximum,
Les personnes l'utilisant déjà et voulant savoir ce qu'il peut faire de plus.
Joomla! 1.5.4 [Naiki] est disponible depuis quelques jours. Il s'agit d'une version de maintenance incluant quelques correctifs de vulnérabilités modérées, des corrections de bugs et quelques améliorations.
La version 1.1.1 de wamp MSS (Mobil Storage Server) est enfin disponible !
La version 1.1.1 de wampMSS (Mobile Storage Server) qui est une version modifiée de wamp permet de faire fonctionner un serveur apache, php, mysql sur un périphérique USB
Cette version comprend :
- Apache 2.2.9
- PHP 5.2.6
- MySQL 5.0.51b
- PhPMyAdmin 2.11.7
- SQLiteManager 1.2.0 RC2
Écrit en PHP, orienté objet, implémentant le design pattern Moèle-Vue-Controlleur, doté de nombreuses fonctionnalités et soutenu par Yahoo! : Symfony, le framework web développé par Sensio Labs, à tout pour plaire. L’une des forces de ce framework est la disponibilité de nombreux plugins qui permettent (...)
mysqlsla est un analyseur de log MySQL qui permet d'extraire les informations importantes des logs MySQL. Ces derniers stockent les requêtes brutes, et il est parfois difficile de repérer les requêtes qui sont identiques, à quelques variables ou valeurs près. mysqlsla est alors là pour ça.
Ce problème de requêtes similaire est une raison de plus pour passer aux commandes préparées de MySQL : avec les commandes préparées, la requête est dissociée des valeurs d'exécution, et le stockage dans le log MySQL devient constant : la requête d'un coté, les valeurs de l'autre. Et on peut aussi arriver au même résultat avec les variables MySQL.
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.
10 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Joomla, MyBB, PHP Nuke, V-webmail, Zen Cart, phpMyAdmin, vBulletin et wordpress