Pour ceux qui ont l'intention ou la possibilité de partir en Californie en mi-septembre, profitez-en pour visiter la Zend Conférence annuelle qui est un des événements les plus importants de l'année autour de PHP.
Pour ceux qui ont l'intention ou la possibilité de partir en Californie mi-septembre, profitez-en pour visiter la ZendConf annuelle qui est un des événements PHP importants de l'année. Elle aura lieu du 15 au 18 septembre 2008 à Santa Clara et réunira des leaders commerciaux, des experts, des développeurs PHP et des responsables IT de tous les coins du monde pour trois jours de présentations. Le sujet de cette année est « High Impact PHP ».
Cette année, Zend communiquera autour des innovations concernant la création, le déploiement et la gestion des applications qui augmenteraient la performance et la simplicité de PHP. Les sujets abordés seront :
Proposé par Marie MINASSYAN
J’ai récemment lu le “grand dossier” de SVM intitulé “les mafias attaquent le web”.
Il est constitué grosso modo d’un historique croustillant bien fourni en anecdotes (le premier virus sur secteur de boot pour IBM provenait du Pakistan, deux frères faisant la promotion de leur boutique d’informatique ; les deux premiers antivirus ont été écrits par le même type (!) recruté par McAfee puis Norton ; perso, je me souviens encore avec émoi du serveur de mail exchange de ma boite paralysé par Melissa et “I Love You”). Suivi d’un état des lieux mondial de la cyber-criminalité. Puis pour finir mille et une astuces pour protéger son ordinateur.
Sans surprises, c’est sur cette dernière partie que je me suis un peu échauffé. Bon ok, sous windows XP SP2 il faut un pare-feu, mais sous Vista il y en a déjà un et gnagnagna … Et si une partie de la réponse à la menace virale était la diversité ? Malheureusement, pas un mot sur le Mac ou Linux dans le dossier de SVN. :-(

Article original publié sur Glagla Dot Org. Tous droits réservés.
While the download itself didn’t work when I tried, I was able to extract some screenshots, from the frontpage but also the YouTube videos.
(categories: )
Just to let you know that the m/m music library now contains more than 3000 tunes carefully selected for you hearing pleasure ! And that’s just the beginning…
(categories: library music 8bit)
Chrome : Google lance son navigateur open source par Neteco.com
La rumeur était fondée ! Google a confirmé lancer le 2 septembre 08 la version bêta de son propre navigateur web open source : Google Chrome. Ce matin, seul le comic book de présentation, dévoilé dès lundi par le dessinateur McCloud sur blogoscoped, est accessible à tous.
symfony | Web PHP Framework | Blog | New in symfony 1.2: Customize the Web Debug Toolbar
The symfony web debug toolbar is one of the developer best friend. It is always conveniently accessible in the browser when using the development environment. It gives you everything you need to know about the current page and ease the debugging of your applications. Until now, all the information available in this toolbar were hardcoded. But as of symfony 1.2, the web debug toolbar is entirely configurable.
(categories: php web blog symfony framework debug)
AgencyTool Web Design Dashboard
Welcome to AgencyTool.com, The Nation’s Premiere Directory for Finding Quality Website Design and Website Development Agencies
The definitive resource list for designing, developing, marketing & maintaining websites
Article original publié sur Glagla Dot Org. Tous droits réservés.
La version 2.11.9 de phpMyAdmin vient de sortir. C'est une version de maintenance qui apporte quelques corrections très mineures.
- bug #2031221 [auth] Lien vers le numéro de version au démarrage
- bug #2032707 [core] PMA ne démarre pas si 'init_set()' est désactivé
- bug #2004915 [bookmarks] Les requètes enregistrées de plus de 1000 caractères ne s'affichent pas
- bug #2037381 [export] lors de l'export, 'replace' ne fonctionne pas
- bug #2037375 [export] l'utilisation de 'DROP' nécessite 'IF EXISTS'
- bug #2045512 [export] Problème de gestion du type 'Numbers' dans le cas d'un export vers Excel.
- bug #2074250 [parser] variable non définie 'seen_from'
changelog
Télécharger
Proposé par Jules Texier
Sur le blog du projet Hyla, on peut trouver un article comparant les fonctionnalités de 10 applications de gestion de fichiers en ligne.
L'article est disponible à l'adresse suivante : http://blog.hyla-project.org/index.php/post/2008/08/27/Les-applications-php-de-gestion-de-fichiers
On y voit comparé toute sorte de fonctionnalités comme le support de l'ajout multiple, de la copie, du déplacement mais aussi du support UTF8, des galeries photos...etc...
À lire, pour se donner un avis
Proposé par hugo
*I N V I T A T I O N *
Soirée MySQL Community
Vendredi 19 septembre 2008 à PARIS
Afin de lancer l'association officielle des utilisateurs francophones de MySQL, LE MUG.FR vous accueille autour d'un Happy Hour.
Ce RDV festif permettra à l’ensemble des développeurs de la communauté open source d’échanger autour des aspects techniques de MySQL, de rencontrer les utilisateurs et experts, de participer à la création de
l'association, de suggérer vos idées, d'en devenir membre...
*/Au programme :/*
· Annonce du lancement LE MUG.FR
· Présentation technique : mise en place d'une architecture répartie, optimisation des performances.
Retour utilisateur : MySQL chez Yahoo!
· Networking
Cette rencontre aura lieu *de 18h00 à 22h30*
*LA CANTINE*,
151 rue de Montmartre,
Passage des Panoramas
12 Galerie Montmartre - Paris 2^ème
(Metros : Grands Boulevards ou Bourse)
-- Buffet convivial et Networking --
//PAF : GRATUIT/
*Venez nombreux !*
*** *RSVP – Inscriptions _avant le 16 septembre_ à* :
vloquet@alx-communication.com
Pour tout renseignement, tel. : 06 68 42 79 68
Proposé par hello
Le Zend Framework 1.6 vient de sortir en version finale.
Il intègre maintenant un support Dojo version 1.1.1 (sans empêcher l'utilisation d'autres technologies AJAX), un support complet de SOAP Web services et plus de tests unitaires sur les contrôleurs. Cette version a été entièrement développée avec une méthodologie basée sur Scrum, ce qui permet un développement plus agile. D'autres modifications apportées sont :
Proposé par Marie MINASSYAN
Le nouveau numéro de PHP solution vient de sortir,de nombreux sujets sont traités.
En plus dans les actualité, un compte rendu du Barcamp 2008 organisé par AFUP... Pour plus de détails, cliquez ici
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.
![]() |
A mort les inclusions! (1483 hits) |
![]() |
10 design de tableau en HTML (1371 hits) |
![]() |
Les 12 nouvelles règles de travail (1318 hits) |
![]() |
Ne faites pas d'erreurs en PHP (1146 hits) |
![]() |
5 navigations originales pour le Web (1105 hits) |
![]() |
Rasmus Lerdorf : PHP frameworks? Réfléchissez bien avant. (1097 hits) |
![]() |
7 principes pour du code CSS propre et optimal (1062 hits) |
Voila, c'est fait, PDO Admin vient d'être mis à votre disposition avec son site internet sur le lien http://pdoadmin.hello-design.fr
PDO Admin, qu'est ce que c'est ?
Il s'agit d'une interface réalisée en PHP et vous permettant d'administrer l'ensemble de vos bases de données comme les formats MySQL, Dblib, Firebird, ibm, informix, odbc, oracle, PostgreSQL, SQLite.
IL se trouve par défaut déjà en multilangue et les fonctions de sauvegardes (exportation).
L'aide et l'assistance se trouvent directement sur le site de PDO ADMIN
L'application va bien sur évoluer pour en faire plus.
Un grand merci à Benjamin Brisson et à Olivier Dasini pour leurs participations aux projets.
Mon fils, mon héros, a deux ans aujourd’hui.
Il peut être content !!!!!
Article original publié sur Glagla Dot Org. Tous droits réservés.
A l’instar de beaucoup, j’écope d’une chaine me demandant de décrire mes conventions de codage. Je code régulièrement du PHP, CSS, Javascript et autre HTML, je vais donc me contenter de ceux ci (pour le reste, Perl, Java, shell … je ne suis pas vraiment à la page … on est si vite largué de nos jours).
L’intérêt d’utiliser des conventions de codages reste l’homogénéisation du code dans un projet. Comme NiKo, on pourrait résumer qu’il faut utiliser les normes du projet dans lequel vous travaillez. Toutefois, voici mes modestes habitudes.
Grosso modo je fais à peu près comme tout le monde (et c’est tant mieux). J’ai tendance à utiliser lowerCamelCase pour les noms de classe en les préfixants par catégorie (un peu comme le @package de PHPDoc) à l’exception des classes du modèle ou j’utilise UpperCamelCase. A la réflexion cela peut venir de l’époque ou, en PHP, on n’utilisait des classes que pour coder la partie modèle de MVC et ou PEAR recommandait UpperCamelCase.
Je mets un point d’honneur à faire en sorte que le minimum vital de PHPDoc soit respecté, en particulier les @return et @param qui aliment l’autocomplétion des éditeurs de code.
A noter que le projet phpcs permet de contrôler assez facilement des standards de codage PHP. (à mettre en oeuvre pour tous les projets d’envergure, phpcs est très dynamique et mérite que l’on s’y attarde).
J’utilise les mêmes conventions que l’oncle Tom (quel beau prénom !).
Pas grand chose à dire si ce n’est que j’ai rencontré peu de projets ou il m’a fallu faire beaucoup de Javascript très spécifiques. A mon avis ce genre de travail nécessite des compétences excessivement pointus que malheureusement peu de développeurs désire acquérir.
Bon, personne n’en a vraiment parlé, et je trouve que pourtant il y a des choses à faire de ce coté. Pour les langages précédent, si votre code est bien structuré et découpé, même sans quelque chose de très homogène au niveau de la façon de coder, il sera tout de même facile de l’exploiter. Dans le cas de HTML on ne coltine souvent de gros paquets de codes indigestes.
Pour ma part, j’indente le code un peu au pif. La seule convention que j’utilise, je l’ai piqué à mon collègue beauminou. Elle consiste à indiquer les fermetures de tags importants afin de plus facilement s’y retrouver dans l’imbriquation du DOM. Par exemple :
<div id="raoul"> tout plein de code ici</div> <!-- #raoul -->
Si certains ont des idées pour améliorer ça, n’hésitez pas à m’en faire part !
Et comme les-chaines-j’ai-du-mal celle ci ce brise ici ;-)
Article original publié sur Glagla Dot Org. Tous droits réservés.
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.9; MySQL 5.0.67 (communauté) , 5.1.26 et 6.0.6.
Les mises à jour sont recommandées vers ces versions.
5 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Invision Power Board, PHP Nuke, Zen Cart et e107
Voilà un petit script utilisant mysqlhotcopy pour sauvegarder vos bases de données MySQL (tables MyISAM).
Au début, j’utilisais mysqlhotcopy avec le script minimaliste ci-dessous :
#!/bin/bash user='user' pass='pass' dirname="hotcopy_`date +%d`.`date +%m`.`date +%y`@`date +%H`h`date +%M`" mkdir "/home/server/backup/sql/$dirname" mysqlhotcopy --user="$user" --password="$pass" --regexp=".* /home/backup/sql/$dirname
Ce script copie les fichiers binaires des bases de données du serveur correspondant à la regexp “.” (match toutes les bases de données) dans le répertoire daté du jour.
Cependant, il faut faire attention à la manières dont fonctionne mysqlhotcopy. Lorsque la commande ci-dessus est lancée, mysqlhotcopy semble placer un verrou sur toutes les tables de toutes les bases de données (verrou de type FLUSH TABLES WITH READ LOCK). Ensuite se fait le backup une à une vos bases.
Le problème qui se pose c’est que si vous possédez des bases de données de tailles très variables, le temps nécessaire pour backuper les grosses bases de données est très important, alors que le backup des petites bases est instantané. C’est à dire que vos petites bases peuvent subir un verrou de longue durée si elles ont le malheur de se trouver après quelques grosses bases.
La solution est d’utiliser le script suivant (version avec tar du dossier) qui ne vas locker qu’une seule base à la fois
#!/bin/bash user='user' pass='pass' dirname="hotcopy_`date +%d`.`date +%m`.`date +%y`@`date +%H`h`date +%M`" mkdir "/home/server/tmp/$dirname" #/home/server/mysql/ est le répertoire data de MySQL et est à changer selon votre configuration for database in `/usr/bin/find /home/server/mysql/* -type d -printf "%f\n"` do mysqlhotcopy --quiet --user=$user --password="$pass" $database /home/server/tmp/$dirname done tar -czf /home/server/backup/sql/"hotcopy_`date +%d`.`date +%m`.`date +%y`.tar.gz" /home/server/tmp/$dirname rm -rf /home/server/tmp/$dirname/
Trac est un système (wiki+bug tracker) open source de gestion de projet développé en Python et sous licence BSD.
La multiplication des clients et des projets pour une entreprise du web pose un problème de suivi efficace de ces projets. Les reporting de bug par mail atteignent rapidement leur limite (pas d’organisation, pas de partage aisé de l’information dans l’équipe, tendance à l’oubli ;o …), un outil tel que Trac apporte une solution efficace de gestion du suivi de projet et de reporting des problèmes.
En effet il existe notamment Mantis et BugZilla. Pour avoir installer et tester les trois, ma préférence va tout de suite à Trac qui possède une réalisation par défaut beaucoup plus soignée que Mantis. BugZilla manque lui aussi de clarté dans son interface, et se retrouve de fait bien moins agréable à utiliser que Trac.
Pour vous faire une opinion propre, voici quelques liens et screnshots :
http://landfill.bugzilla.org/bugzilla-3.2-branch/show_bug.cgi?id=1
http://trac.edgewall.org/ticket/7316
http://trac.edgewall.org/report/1
L’installation de Trac est bien documentée mais requiert un peu d’attention car il faut faire les étapes dans l’ordre et ne rien oublier. Je vous la détaille pour une installation sous Slackware 12.1 (mais marche aussi pour n’importe quel Linux)
slackpkg install python
ou sous Debian par exemple :
aptitute install python2.5
“Easy Install is a python module (easy_install) bundled with setuptools that lets you automatically download, build, install, and manage Python packages.”
$# wget http://peak.telecommunity.com/dist/ez_setup.py $# chmod +x ez_setup.py $# python ez_setup.py (en root)
easy_install Genshi (en root)
$# wget http://www.sqlite.org/sqlite-amalgamation-3.6.2.tar.gz $# tar xvf sqlite-amalgamation-3.6.2.tar.gz $# cd sqlite-3.6.2 $# ./configure --enable-threadsafe (cf http://trac.edgewall.org/wiki/PySqlite) $# make $# make install
“PySqlite is a Python binding for the SQLite light-weight database engine, which is Trac’s default DatabaseBackend.”
Package pour Debian, Gentoo, Ubuntu … :
http://oss.itsystementwicklung.de/trac/pysqlite/wiki/PysqlitePackages
Pour Slackware :
http://www.slacky.eu/index.php?option=com_content&task=view&id=6094&Itemid=65
$# wget http://ftp.edgewall.com/pub/trac/Trac-0.11.1.tar.gz $# tar xvf Trac-0.11.1.tar.gz $# cd Trac-0.11.1 $# python ./setup.py install (en root)
Ensuite direction :
curl -O http://downloads.php.net/johannes/php-5.3.0alpha2.tar.bz2 bunzip2 php-5.3.0alpha2.tar.bz2 tar -xf php-5.3.0alpha2.ta cd php-5.3.0alpha2 ./configure make make test
Utiliser l'ensemble des bases de données avec une seule interface, maintenant c'est possible avec PDO Admin.
Elle est réalisée en PHP et vous permettant d'administrer l'ensemble de vos bases de données comme les formats MySQL, Dblib, Firebird, ibm, informix, odbc, oracle, PostgreSQL, SQLite.
Une application à décrouvrir sur http://pdoadmin.hello-design.fr
Proposé par Overdose
Il y a 10 ans je travaillais sur des site intranets devant remplacer des programmes Unix et des macros Excel 4 exécutant diverses séries de calculs simples.
L’équipe avais une formation de Bac+2 a Bac+5 et des compétences en SQL Oracle, Perl, Visual Studio et langage C. Fort d’une première expérience en milieu universitaire, j’avais convaincu tout le monde qu’au lieu de fabriquer des clients lourds windows on pourrait simplement démarrer un petit intranet pour ces outils.
On a donc commencé avec PHP3 et honnêtement on faisait n’importe quoi. PHP3 n’était pas l’idéal en terme de réutilisation de code. On a allègrement mélangé la couche contrôleur et présentation. La couche métier était balbutiante. On ne connaissait pas grand chose à HTML. Pas une ligne de Javascript n’a été écrite. Le travail sur l’aspect visuel à consommé une part considérable du budget pour un résultat visuellement pitoyable.
Après le temps de développement et de validation de cet intranet, on va voir la DSI pour lui présenter notre travail.
- “Bon, ça casse pas des briques mais ça marche. Vous pouvez déployer tout ça et on jette les macros Excel 4.”
- “OK, on envoi un mail avec l’adresse web des outils.”
- “Ah c’est tout … Mais çà c’est vraiment super dis donc !”
Et voilà ! Sur ce point tout simple le client léger, malgré tous ces défauts, a gagné. Aujourd’hui, en entreprise, la plupart des nouvelles applications conçues sont sur le mode client léger. C’est tellement évident que dans la plupart du temps, on ne se pose même plus la question. Les véritables besoins nécessitant la création de clients lourds (accès direct au matériel de l’ordinateur : ports séries, fichiers systèmes) sont peu fréquents ou des contournements ont été trouvés (accès à une webcam via un plugin flash par exemple). L’ergonomie et l’accessibilité des applications en client léger est aujourd’hui maximale (Ajax, Flash …) et le temps de déploiement (des applications et des correctifs) est imbattable.
Oubliez donc le client lourd !
D’ailleurs G$ l’a bien compris avec Google Chrome.

Notes :
On parle également de client riche (RDA). Cela correspond à une application de type client lourd mais utilisant des protocoles standards permettant d’utiliser l’infrastructure Internet (des web services par exemple).
Article original publié sur Glagla Dot Org. Tous droits réservés.
La Web TV consacrée à PHP...
L’édition de septembre 2008 du magazine PHP TV est en ligne. PHP TV est une Web TV consacrée à la technologie PHP. L'emission numéro 2 vient de sortir avec comme sujets :
* News : requêtes préparées, PDO et le wiki de PHP
* Reportage : le premier barcamp français sur PHP
* Débat : les espaces de noms (namespaces)
* Interview : Arnaud Limbourg, président de l’AFUP
L’émission numéro 1 du mois de juin se trouve toujours disponible sur le meme site
http://www.phptv.fr/septembre-2008
Proposé par hello
The Pencil Project’s unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use.
(categories: free storyboard)
PHPTV | La web tv consacrée à PHP !
J’en ai pris plein la tête dans les 20 premiers commentaires de ma dernière brève sur Google Chrome mais je reste tout de même sur mes positions. Je vais essayer d’expliquer pourquoi plus en détail, sans tomber dans la paranoïa, car il y a pas mal d’incompréhensions et c’est à mon avis important que chacun sache ce qui est en train de se passer actuellement pour l’avenir du Web afin de pouvoir agir de manière responsable. Ce ne sont que des réflexions personnelles dans la continuité de ma définition du GWeb et je ne vous demande pas d’y adhérer, juste d’y réfléchir.
Magazine PHPTV - Septembre 2008 | PHPTV
# News : requêtes préparées, pdo, wiki de php
# Reportage : le PHP Camp !
# Débat : les namespaces
# Interview : l’AFUP
Le futur de JavaScript encore incertain - OCTO talks !
Après bientôt une décennie de réflexions, le comité en charge de standardiser le langage JavaScript semble avoir trouvé une position commune parmi les initiatives qui visaient à le faire évoluer. Quelles sont les nouvelles orientations prises pour ce langage ?
(categories: octo javascript)
Polémique sur la confidentialité de Google Chrome, Multimédia - NouvelObs.com
Google s’arrogeait "une licence permanente, irrévocable, mondiale, gratuite et non exclusive permettant de reproduire, modifier et distribuer" n’importe quel contenu que l’internaute aurait envoyé via son navigateur.
(categories: google licence chrome)
Crise des "subprimes" : si vous n’avez toujours rien compris… | Rue89
C’est un témoignage venu de l’intérieur du système financier. Greedy boy, trader, démonte, pour Rue89, la mise en place de bulles spéculatives liés à aux prêts immobiliers à risque (les « subprimes ») qui ont commencé à exploser l’an dernier aux Etats-Unis, et qui plombent aussi les résultats des banques européennes
(categories: subprimes)
Royal Pingdom » Billion-dollar Web acquisitions that crashed and burned
By the end of the nineties the Web had risen to become a huge factor in the world economy, and we were at the height of the dot-com bubble. Billion-dollar acquisitions of Web companies were not uncommon.
This article lists billion-dollar Web acquisitions that never delivered on their promise. Some companies and services dwindled away into obscurity, some were sold for significantly less money than they were bought for, and some just crashed and burned.
Many of these brands are still in use today, though they don’t have the luster they once had.
(categories: )
Article original publié sur Glagla Dot Org. Tous droits réservés.
Une version 2.0.1 de Dotclear est disponible au téléchargement depuis quelques jours.
Parmi les principales améliorations, on trouve par exemple :
Pour plus d'information, vous pouvez consulter l'annonce sur le site Dotclear.
La distribution Gentoo Linux a développé une réputation d'excellence pour la qualité de sa documentation.
De l'installation à la mise en place d'un serveur MySQL en passant par l'étape de la configuration système, Gentoo vous propose
une multitude de guides permettant de devenir vire familier avec votre système et d'en exploiter toutes les possibilités.
Pour en savoir
href="http://www.linuxidentity.com/fr/index.php?name=News&file=article&sid=43">plus
Proposé par oxy

via Gizmodo
Article original publié sur Glagla Dot Org. Tous droits réservés.
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.
Sur le site Developper Shed, Alejandro Gervasio propose deux nouveaux tutoriels sur le framework PHP CodeIgniter pour la validation des formulaires.
Récemment sont sortis les quatrième et cinquième parties d'une série de tutoriels consacrés à CodeIgniter. La série comporte désormais les tutoriels suivants :
Cette série devrait théoriquement comprendre neuf parties, affaire à suivre si vous souhaitez débuter avec le framework CodeIgniter.
Lemug.fr est une nouvelle association française regroupant les utilisateurs de MySQL.
Elle organise une rencontre où elle présentera ses objectifs le 19 septembre de 18h à 22h30 à La Cantine dans le dixième arrondissement de Paris.
Deux sujets abordés seront :
- la mise en place de la réplication avec MySQL ;
- l'utilisation de MySQL chez Yahoo.
Le tout sera suivi d'un buffet.
Pour participer à cette réunion il faut s'inscrire avant le 16 septembre ici. Pour plus d'informations sur Lemug.fr consultez son site.
Proposé par Marie MINASSYAN
Allez hop, la RC3 du Zend Framework est sortie (il y a 2 jours).
J'en profite pour faire un peu de pub pour zftalk, un chan IRC sympa.
Au fait, j'ai mis en ligne le package pear de la 1.0 RC2 du Zend Framework hier, avec un peu de retard donc, puisque j'étais occupé à imiter les oiseaux :)
Dernière ligne droite avant les premières 1.0 RC, la beta 0.9.3 du Zend Framework est sortie, et son package est disponible sur le channel PEAR PHPMafia.
If you're wondering how much of a hassle it would be to migrate your app / codebase to php5, try the following command line (after having installed the php5-cli package of course):
find . -name "*.php" -exec /usr/bin/php5 -l {} \; | grep -v 'No syntax errors'
It'll show you all the files with syntax errors in it.
Je suis un peu triste parce que je voulais m'atteler à cette tâche, mais bon il faut croire que j'ai trop lambiné :)
A quick post to show how one can easily implement a findByField wrapper in Zend_Db_Table:
/**
* Implements a simple findByField wrapper
*/
public function __call($method, $args) {
if (preg_match('/^findBy([a-zA-Z0-9]+)$/', $method, $parts)) {
$field = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $parts[1]));
if (!in_array($field, $this->_cols)) {
throw new Zend_Db_Table_Exception(sprintf('\'%s\' field not in row', $field));
} else {
$db = $this->getAdapter();
$where = $db->quoteInto($db->quoteIdentifier($field).' = ?', $args[0]);
return $this->fetchAll($where);
}
}
}
What it does is basically trapping any non-existant method call and check if the corresponding field exists, after converting CamelCasing to underscore_notation (eg: FooBar becomes foo_bar).
Sometimes you have to pass an object data to another object, or to another layer of your application (who said controller/view ?), while ensuring that the receiving entity will not be able to run business code encapsulated in your class. In the Zend Framework, several objects provide a toArray method, but that is not always sufficient as sometimes you'd like to keep with the $object->varname syntax.
That is where the Transfer Object arrives. While the preceding definition is not exact (that's not the real purpose of the Transfert Object in the J2EE spirit), This is the most common use that PHP Developers can make of it nowadays I think. So I came up with a very light implementation of a concept which I hope can prove useful for any folks getting by there.
See also:
UPDATE
A new version of this component is available.
I have a new version of my pagination component which solve the issue previously pointed out by Guy. This update comes along with a subclassed version of Zend_Db_Table which allows counting and specific columns selection respectively via the fetchCount() and fetchCols() methods. Btw, the fetchCols() method is very hackish at the moment, and I'll certainly end up with rewriting it using a plain Zend_Db_Select statement.
As always, any comment is appreciated. I'm thinking of subclassing the Rowset class to fill it with pagination info getters like getPageCount(), getNextPage(), etc, like in Symfony for those knowing, instead of relying on a getPaginationInfo() method. Future improvements will also include more view helper magic.
Also, I came up with a small new Riskle_Pattern namespace which I use to implement commonly used patterns, such as the Proxy Pattern. I'm not yet sure of the pertinence of this thing, so any comments are yet again very much appreciated on this topic :-)
While the Zend Framework's manual is somewhat quite good, it lacks a feature that make it a really good manual: search. I find it very frustrating to not be able to make a simple search and therefor having to browse through the extensive TOC to find what I'm actually looking for. Here enters the very handy Google co-op service which allows creation of custom search engines based on Google's indexes. It do not takes more than five minutes to setup a simple search engine, thus providing search capability to the manual :-)
And as a good news never comes alone, I also made the OpenSearch plugin for it.
UPDATE
I made a simpler url to remind of: http://zend.riskle.com/search/ and updated the opensearch thing to use that url.
Yesterday I came up with a small pagination component for the Zend Frameworks. It implements the Proxy pattern around a Zend_Db_Table object, and overloads the fetchAll method. The main problem I encountered here was to retrieve the total number of rows for the table. I'm using a Zend_Db_Select query for now, but I'll have to improve that. The component also features a view helper to draw the pagination links.
You'll find the code for the component and the view helper on my SVN.
And here is how it is used in the controller:
public function indexAction() {
$urls = new Riskle_Db_Table_Paginate(new Urls, $this->_getParam('page'));
$this->view->urlsList = $urls->fetchAll(null, 'datetime DESC');
$this->view->paginationInfos = $urls->getPaginationInfos();
}
The view helper takes paginationInfos as an argument:
echo $this->paginate($this->paginationInfos);
UPDATE
As pointed out by Guy, the _getPageCount method does not actually takes care of the $where condition, thus rendering the class inefficient as getting the real totel number of items. This issue will be adressed in an upcoming version of the class :-)
UPDATE
There's an updated version of this component available.
This is a simple controller plugin for the Zend Framework which enable RESTful behaviour. It basically adds the HTTP method name to the action name, so that the URL http://example.com/foo/bar will be dispatched to FooController::barGetAction on a GET, FooController::barPostAction on a POST, etc.
Here is the actual code:
<?php
class My_Controller_Plugin_Rest extends Zend_Controller_Plugin_Abstract {
/**
* Defines the format of the REST action name
* Quite useless atm as the dispatcher will strip
* any non alpha character
*/
protected $_nameFormat = ':action:method';
/**
* Rewrites the action according to the http method
*/
public function preDispatch() {
$request = $this->getRequest();
$restActionName = $this->_translateSpec($this->_nameFormat, array(
'action' => $request->getActionName(),
'method' => $request->getMethod(),
));
$request->setActionName($restActionName);
}
/**
* Inject values into a spec strings
*
* Allowed values are:
* :action => the action name
* :method => the http method
*
* @param string $spec
* @param array $vars
* @return string
*/
protected function _translateSpec($spec, $vars = array()) {
foreach($vars as $key => $value) {
switch($key) {
case 'action':
case 'method':
$$key = $value;
break;
default:
break;
}
}
$replacements = array(
':action' => $action,
':method' => $method,
);
$value = str_replace(array_keys($replacements), array_values($replacements),$spec);
return $value;
}
}
Still, i'm not completly satisfied with this plugin. Plugins certainly allows for powerful control over what's going up in the dispatch process, but the dispatcher itself enforces a set of rules on actions naming (eg, you can't have a _ in it, it is stripped at dispatch time). Thus, I'm wondering on the pertinence of writting a custom dispatcher (read My_Controller_Dispatcher_Rest) instead of just a plugin, which would enable far more possibilities.
Btw, in case you're wondering, the plugins is used like this;
$frontController = Zend_Controller_Front::getInstance(); $frontController->registerPlugin(new My_Controller_Plugin_Rest);
Easy heh ?
Also, I'm not convinced that this plugin is the way to go in matter of RESTful functionnality. I'm still wondering if it would not be better to have urls mapped to a single controller, replacing actions with http methods (that is, http://example.com/foo/bar would map to FooController::getAction, etc).
Any opinions around ?
So you're making your own view helper and you need, for a reason, to access the running $view instance. Don't worry, all you have to do is implement a setView() method which will be called on your helper's instantiation, with the $view as argument:
class My_View_Helper_SpecialPurpose {
protected $_view = null;
public function setView($view) {
$this->_view = $view;
}
}
And voila !
La version 2.6.2 de Wordpress, corrigeant une faille de sécurité, est disponible au téléchargement depuis quelques jours.
Cette version permet de corriger une faille de sécurité permettant de changer facilement le mot de passe de l'administrateur et que cette mise à jour est vivement recommandée.
Il est à noter que les failles de sécurité corrigées ont été évoquée par Stefan Esser, dans les articles suivants :
Ces problèmes sont susceptibles d'être présents sur de nombreuses applications PHP/MySQL, pour plus d'informations n'hésitez pas à consulter ces deux articles.
L’application Dropbox passe en version publique. Dropbox est l’application idéale pour partager sans efforts des fichiers entre vos différents ordinateurs. Jettez simplement un fichier dans votre “drop box” (un répertoire prédéfini) et il sera répliqué automatiquement sur toutes vos machines. Le tout fonctionnant sur Windows, Mac et Linux (j’ai testé pour vous !).
Article original publié sur Glagla Dot Org. Tous droits réservés.
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.9; MySQL 5.0.67 (communauté) , 5.1.26 et 6.0.6.
Les mises à jour sont recommandées vers ces versions.
7 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Horde, Invision Power Board, Joomla, WordPress et vBulletin
Ce que l’on remarque, c’est que ce n’est pas vraiment la concurrence qui est au cœur des problèmes de Microsoft; c’est le fait que des nouvelles sociétés ont donné l’envie aux utilisateurs d’essayer de nouvelles technologies et de payer pour, s’il le faut. Les consommateurs de la génération -Y se rendent compte qu’ils n’ont plus besoin de Microsoft. Des sociétés comme Facebook, Apple et Google ont changé les habitudes de consommation, surtout celles des jeunes.
(categories: google microsoft apple)
Official Google Docs Blog: Presentations turns 1
Presentations is nearing our first birthday, and we’re unveiling a slew of new features that will make your presentations pop.
(categories: google google docs presentation)
3 millions d’Euros pour CodaSystem, l’expert des photos certifiées
La société française, Coda System va annoncer un tour de table de 3 millions d’Euros avec le fonds d’investissement Seventures. J’avais rencontré son fondateur en Corée il y a quelques mois et avait été très intéressé par leur service proposant une technologie de certification de photos prises à partir de votre appareil mobile. Ce qu’ils appellent le Shoot and Proof.
(categories: photos shoot and proof)
Check include hierachy
(categories: )
symfony | Web PHP Framework | Blog | symfony Camp 2008 - Day 1
After lunch, Dustin Whittle talked about the "Lessons learned at Yahoo" and Fabian Lange gave some tips on "symfony performance". That was enough for symfony. So, Jonathan Wage came on stage to talk about Doctrine.
(categories: php web blog symfony framework)
History of the browser user-agent string
History of the browser user-agent string
(categories: user-agent history)
10 Principles of the PHP Masters - NETTUTS
With PHP’s widespread adoption,it’s almost too easy to find a script or snippet to do exactly what you need. Unfortunately, there’s no filter as to what is a "good practice" and what’s, well… not so good when writing a PHP script. We need trustworthy sources, who have proven they have a solid grasp on the best practices of PHP.
We need PHP masters to show us the best principles to follow for high-grade PHP programming.
Article original publié sur Glagla Dot Org. Tous droits réservés.
Lors de la ZendCon PHP conference à Santa Clara (Californie), Zend a annoncé une collaboration étroite avec Adobe, dans le but d'accélérer le développement d'applications internet riches (RIAs) utilisant PHP et le framework Flex Open Source.
Le point clé de cette collaboration est l'intégration du support du format AMF (Action Message Format) dans le Zend Framework. Cette intégration permettra une meilleure communication entre les composants du Zend framework côté serveur et les composants du framework Flex Open Source1 côté client.
De plus, Zend et Adobe prévoient d'identifier conjointement les points de liaison entre les deux produits et d'effectuer leur mise en œuvre de façon à optimiser le workflow des développeurs et de réduire les temps de développement.
Dans le but de fournir l'interopérabilité de leurs produits et de définir les meilleurs pratiques pour leurs clients, les deux sociétés ont notamment mis en place sur leurs portails respectifs une zone dédiée à ce projet. Celles-ci comporteront articles, livres blancs, séminaires et cours en ligne, ..., pour les entreprises utilisant PHP, Zend Framework, Zend Platform en association avec Adobe Flex, Adobe Flash Player et Adobe AIR. Ces zones sont d'ores et déjà accessibles aux adresse suivantes : http://devzone.zend.com/tag/Flex et http://www.adobe.com/devnet/flex/
Andi Gutsman, directeur technique et co-fondateur de Zend, estime qu'une collaboration étroite avec Adobe permettra aux clients de Zend de se distinguer en délivrant des produits et des services plus performants et plus fiables.
Pour plus d'informations, lire l'article correspondant sur le site de Zend
1 Flex est un framework Open Source permettant de créer et de mettre à jour des applications web efficaces se déployant à l'identique sur la plupart des navigateurs, postes de travail et systèmes d'exploitation, en utilisant le player Flash® ou le moteur d'exécution AIR™ d'Abode®.
Dans un article paru sur le site IBM, Vikram Vaswani explique comment développer une application PHP en utilisant Picasa Albums Web.
L'article commence par aborder les fonctionnalités offertes par Picasa Albums web, avant d'expliquer comment utiliser son API pour manipuler les données stockées avec PHP dans une application web. Il explique notamment comment récupérer les photos et leurs métadonnées, ajouter, modifier et supprimer des photos, et effectuer des recherches par mots clés dans les données des utilisateurs de Picasa.
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.
Alter Way (le groupe qu’Anaska à rejoint) vient de signer une très belle affaire via l’entité Solinux : l’installation et le pilotage à distance de quelques 80 000 compteurs à gaz intelligents .
Une bonne partie du développement est basé sur PHP et PostgreSQL.
Encore une utilisation « hors web » de notre techno préférée dans un cadre critique. Tous les détails dans le CP officiel ci-dessous :
Le groupe Alter Way, intégrateur de solutions Open Source et acteur majeur du Libre en France, annonce la signature d’un contrat stratégique avec le GAELD (Groupement d’Achat des Entreprises Locales de Distribution), dans le cadre de la modernisation des compteurs d’énergie.
En adoptant une technologie à code ouvert (dont PHP et postgreSQL) dans un domaine jusqu’alors réservé aux solutions propriétaires, le GAELD s’assure ainsi la maîtrise de l’évolution de sa plate-forme et la pérennité de ses équipements.
A l’occasion de la future mise en place des nouveaux compteurs intelligents, et suite à un appel d’offre européen, le groupement d’achat GAELD (réunissant la Régie d’électricité de LOOS, le Gazelec de Peronne, Energies et Services de Creutzwald, Energies et Services de Lavaur) a retenu le groupe Alter Way via sa filiale régionale Solinux, spécialiste de l’infogérance des systèmes et de l’intégration de solutions Open Source.
Solinux aura en charge le développement applicatif et l’infrastructure réseaux qui permettront à terme la gestion automatisée à distance de plus de 80 000 compteurs du constructeur américain Echelon, et sera responsable de son infogérance globale. En adoptant une technologie à code ouvert (dont PHP et postgreSQL) dans un domaine jusqu’alors réservé aux solutions propriétaires, le GAELD s’assure ainsi la maîtrise de l’évolution de sa plate-forme et la pérennité de ses équipements.
« Nous avons souhaité avoir un logiciel à la carte adapté à nos spécificités. La solution proposée par Solinux du groupe Alter Way nous a séduits par : l’adaptation précise de l’offre par rapport au cahier des charges, le fait d’être propriétaire des sources et l’engagement fort de toute l’équipe Alter Way », explique Michel Fruchart, Directeur du Gazelec et coordinateur du GAELD.
Ce projet intégrera de nombreuses innovations technologiques, dont l’objectif principal est d’ajuster la consommation d’énergie. Il permettra en outre la télérelève des indices de consommation d’électricité, d’eau et de gaz, et intégrera les fonctionnalités liées aux applications domotiques.
« Notre appartenance au groupe Alter Way nous donne la possibilité de conduire des projets de grande ampleur. Nous sommes ravis de pouvoir apporter des solutions alternatives sur des marchés jusqu’alors réservés au monde propriétaire, d’autant plus que nous serons les premiers en France au coté du GAELD à déployer un parc de compteur AMM (Automated Meter Management) », déclare Arnaud Duhamel, associé du groupe Alter Way en charge de Solinux.
« Ce contrat confirme la compétitivité technique et économique des solutions Open Source proposées par notre groupe. Nous sommes aujourd’hui l’alternative crédible et pérenne aux acteurs traditionnels », ajoutent Philippe Montargès et Véronique Torner, fondateurs et dirigeants du groupe Alter Way.
La version 1.1.2 de Symfony est disponible au téléchargement depuis hier. Elle corrige un bon nombre de bugs répertoriés dans les versions précédentes, notamment ceux des structures des formulaires et des lignes de commandes.
Parmi les mises à jour disponibles dans cette version, on trouve notamment :
Pour plus d'information :
Proposé par Marie MINASSYAN
Lors de la quatrième ZendCon PHP conférence, à Santa Clara (Californie), Zend a annoncé de nombreux partenariats et mises à jour de produits soulignant l'importance croissante et la maturité de PHP.
On peut noter que, selon Harold Goldberg, la participation croissante de grandes entreprises comme Adobe, IBM et Microsoft souligne l'intérêt des solutions PHP.
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.9; MySQL 5.0.67 (communauté) , 5.1.26 et 6.0.6.
Les mises à jour sont recommandées vers ces versions.
5 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Horde, WordPress et phpMyAdmin
Pour sauver un développeur, c’est simple, mettez à niveau votre navigateur ! via
Comme quoi, le temps passe …
Article original publié sur Glagla Dot Org. Tous droits réservés.
La version 1.1.2 de wamp MSS (Mobile Storage Server) est disponible !
wampMSS (Mobile Storage Server) est une version modifiée de wamp qui 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.67
- PhPMyAdmin 3.0.0-rc2
- SQLiteManager 1.2.0 RC2
rendez-vous sur http://www.uni-d.net
Proposé par UNi
Royal Pingdom » The computer infrastructure behind the Large Hadron Collider
CERN seems to be well-equipped to handle the data from the gigantic particle accelerator when you take a look at their data center.
(categories: LHC cern data center)
symfony | Web PHP Framework | Blog | symfony 1.1.2 released
(categories: php web blog symfony framework)
Seesmic’s newest feature: layoffs
j’espère qu’il reste encore des $ a claquer n’importe comment ;-)
good luck seesmic
(categories: )
life of Ike - The Big Picture - Boston.com
photo prises après l’ouragan ike
(categories: )
Royal Pingdom » The Web back in 1996-1997
To give you some perspective, in 1996…
* Google.com didn’t exist yet.
* In January 1996 there were only 100,000 websites, compared to more than 160 million in 2008.
* The web browser of choice was Netscape Navigator, followed by Microsoft Internet Explorer as a distant second (Microsoft launched IE 3 in 1996).
* Most people used dial-up Internet connections with mighty speeds ranging from 28.8Kbps to 34.4Kbps. Highly modern 56Kbps modems would arrive in 1997.
* People had only recently started to switch from 640×480 to 800×600 screen resolutions.
Article original publié sur Glagla Dot Org. Tous droits réservés.
Voici une offre qui pourrait intéresser certains. La société PMSIpilot recrute des développeurs PHP/Symfony.
Les pré-requis sont les suivants :
Le tout afin de venir renforcer une équipe développant et maintenant des logiciels dans le domaine médical.
Les conditions de travail ainsi que les perspectives (gestion de projets, chef de produit, commerce …) sont très bonnes. Si vous êtes intéressé vous pouvez me contacter aux coordonnées que vous trouverez sur mon cv et je ferais suivre, ou bien directement via le site de pmsipilot.
N’hésitez pas à diffuser cette information.
Article original publié sur Glagla Dot Org. Tous droits réservés.
Voici une offre qui pourrait intéresser certains. La société PMSIpilot recrute des développeurs PHP/Symfony.
Les pré-requis sont les suivants :
Le tout afin de venir renforcer une équipe développant et maintenant des logiciels dans le domaine médical.
Les conditions de travail ainsi que les perspectives (gestion de projets, chef de produit, commerce …) sont très bonnes. Si vous êtes intéressé vous pouvez me contacter aux coordonnées que vous trouverez sur mon cv et je ferais suivre, ou bien directement via le site de pmsipilot.
N’hésitez pas à diffuser cette information.
Article original publié sur Glagla Dot Org. Tous droits réservés.
Ce cours d'instruction est au sujet de HTML_Template_Sigma de la poire et comment l'employer.
Table des matières :
HTML_Template_Sigma est un paquet de PEAR, un moteur templating très bien fourni.
Les moteurs de Templating ont le but de séparer le HTML du PHP dans vos fichiers PHP.
Ceci maintient le code propre et lisible.
Ceci vous permet également d'éditer facilement le HTML sans devoir passer en revue par tous le contenu de vos fichiers PHP à la recherche du code de HTML.
HTML_Template_Sigma a beaucoup de fonctionnalités, comme des variables de remplacement, des boucles et encore beaucoup d'autres.
HTML_Template_Sigma peut être installé de beaucoup de différentes manières. La manière la plus facile est le gestionnaire de paquet de PEAR.
(L'accès root est requis ) Cela nécéssite que la dernière version du manager de paquet de PEAR soit installé.
Allez dans le shell et executez:
$ pear install <package>
Remplacez par le nom du paquet que vous souhaitez installer.
Le gestionnaire de paquet de PEAR télécharge et installe alors le paquet indiqué.
Une autre manière d'installer un paquet hors connection est de placer paquet dans le répertoire de PEAR.
Executez alors la commande suivante :
$ pear install <file>.tgz
Ceci installe le paquet (téléchargé en .tgz) sans devoir avoir une connexion internet.
Pour installer le paquet manuellement, mettez le paquet dans /includes/
Employez le code suivant pour dire à PHP où rechercher le paquet :
[php]
<?php
ini_set ('include_path', '/var/www/ www.example.com/includes/'. PATH_SEPARATOR. ini_get ('include_path'));
?>
Maintenant nous avons placé notre include_path, nous pouvons simplement faire un require() de notre paquet comme ceci :
[php] <?php require_once 'HTML/Template/Sigma.php' ; ?>
Après l'installation de HTML_Template_Sigma, lu ci-dessus voyons la façon de l'utiliser.
Dans cette étape du tuto on verra l'utilisation de base de HTML_Template_Sigma.
Nous examinerons :
''Les fichiers template Les fichiers gabarit sont habituellement placés dans ./templates/ ou ./skin/, mais cela n'importe pas vraiment.
Ci-dessous vous trouverez un exemple de template:
[html]
<html>
<table border>
<!-- BEGIN row -->
<tr>
<!-- BEGIN cell -->
<td>
{DONNEES}
</td>
<!-- END cell -->
</tr>
<!-- END row -->
</table>
</html>
cela représente le commencement d'une boucle.
Chaque fois que cette boucle est analysée, elle analysera ceci.
Vous devez finir chaque boucle avec (remplacez par le nom de votre boucle)
{DONNEES} est une variable de remplacement.
En assignant une variable dans votre fichier PHP, vous pouvez l'employer aimez ceci.
Regardons maintenant notre dossier de PHP : (L'exemple de HTML_Template_Sigma qui est venu avec le paquet)
[php]
<?php
require_once "HTML/Template/Sigma.php";
$data = array (
"0" => array("Stig", "Bakken"),
"1" => array("Martin", "Jansen"),
"2" => array("Alexander", "Merz")
);
$tpl = new HTML_Template_Sigma("./templates");
$tpl->loadTemplatefile("main.tpl.htm", true, true);
foreach($data as $name)
{
foreach($name as $cell)
{
// Assign data to the inner block
$tpl->setCurrentBlock("cell");
$tpl->setVariable("DATA", $cell);
$tpl->parseCurrentBlock("cell");
}
// Assign data and the inner block to the
// outer block
$tpl->setCurrentBlock("row");
$tpl->parseCurrentBlock("row");
}
// print the output
$tpl->show();
?>
J'expliquerai maintenant le code au-dessus du peu par le peu, ainsi vous aurez une idée pourquoi et comment elle est employée. require_once « HTML/Template/Sigma.php » ;
Sans ceci, le sujet d'ensemble ne fonctionnera pas.
Nous devons avoir besoin du paquet de POIRE.
[php]
$data = array (
"0" => array("Stig", "Bakken"),
"1" => array("Martin", "Jansen"),
"2" => array("Alexander", "Merz")
);
Assignez un choix de données.
Nous faisons une boucle par ceci plus tard.
$tpl = nouveau HTML_Template_Sigma (« . /templates ») ; Ceci lance la classe de HTML_Template_Sigma et place le chemin aux calibres. $tpl->loadTemplatefile (« main.tpl.htm », vrai, vrai) ; Chargez un fichier gabarit appelé main.tpl.htm. foreach ($data comme $name) { foreach ($name comme $cell) { // assignent des données au bloc intérieur $tpl->setCurrentBlock (« cellule ») ; $tpl->setVariable (« DONNÉES », $cell) ; $tpl->parseCurrentBlock (« cellule ») ; } // assignent les données et le bloc intérieur au bloc externe de // $tpl->setCurrentBlock (« rangée ») ; $tpl->parseCurrentBlock (« rangée ») ; }
Nous faisons une boucle par les données, assignons les variables utilisant setVariable et analysons des blocs de boucle utilisant le setCurrentBlock () et le parseCurrentBlock (). copie de
[php] // le rendement $tpl->show () ;
Ceci produit le calibre à l'écran. Si vous voulez renvoyer le calibre à la place, employez :
[php] $template = $tpl->set();
J'espère que vous avez appris beaucoup de PEAR et HTML_Template_sigma en lisant ce cours d'instruction.
Soyez sûr d'employer HTML_Template_Sigma dans vos propres projets !
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.
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.9; MySQL 5.0.67 (communauté) , 5.1.26 et 6.0.6.
Les mises à jour sont recommandées vers ces versions.
7 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, MyBB, SquirrelMail, ming et phpMyAdmin
The Joy of Tech comic… laughter is the best tech support.
android phone vs iphone !!!
(categories: android iphone comics)
on ne manque pas d’humour chez Microsoft !
(categories: microsoft blue screen)
Article original publié sur Glagla Dot Org. Tous droits réservés.
Encore une fois ces quelques lignes ont simplement pour objectif de vous donner quelques conseils pratiques dans l’exercice de choix d’un prestataire.
Voici les points à vérifier dans la démarche de choix d’un prestataire. Ce choix est pratiqué hors d’un contexte “cahier des charges”, dans lequel, bien sur, la capacité du prestataire à répondre au mieux à ce dernier, prime.
Cet article fait partie de la série : Acheter des prestations informatiques.
Vous pouvez demander une liste de références à votre prestataire, avec des personnes à contacter ; il y a fort à parier que toutes ces références seront excellentes. Un bon acheteur doit, selon moi, connaitre au préalable l’éco-système de prestataires gravitant autour de lui. Un bon moyen pour faire ça est d’être en contact avec vos pairs dans des sociétés similaires à la votre et de leur demander leur avis. Solliciter également l’ensemble de votre réseau de relations.
Cette petite enquête peut vous donner des informations intéressantes avec des remarques de ce genre :
- “ce sont de bons techniciens mais ils ont mal compris notre problématique métier”,
- “au final, ils ont fait exécuter le projet par des stagiaires”,
- “la méthode qu’ils ont proposé était vraiment claire et structurante”,
- “la méthode qu’ils ont proposé m’a coûté beaucoup et le résultat final est décevant”,
- “le projet est une réussite mais quelle rigidité ! A chaque fois que nous évoquions une dérogation minime au cahier des charges initial ils répondaient : avenant, avenant, avenant …”.
Elle peut permettre également de repérer les spécialistes intéressants dans la société avec lesquels vous pouvez demander à travailler.
Un prestataire va être motivé par plusieurs éléments :
- Le budget de votre projet est il significatif ? (en dessous de 3K€ pour de la réalisation, seules de très petites sociétés, des sociétés à l’étranger, ou des indépendants seront motivés)
- Peut-il espérer trouver de la récurrence chez vous ? (cela peut contrebalancer le point plus haut)
- Le projet est il risqué (technologiquement ou commercialement) ou est ce parfaitement dans ses cordes ?
- Désire t’il développer son activité vers le projet que vous pourriez proposer ? (un peu difficile à savoir)
- Votre projet pourra t’il lui offrir une référence pertinente lui permettant de gagner d’autres marchés ?
La motivation du prestataire dépend biensûr de la conjoncture. En période difficile (comme le premier trimestre 2008) pour les prestataires, ces derniers seront plus enclin à accepter des projets moins motivant.
Vous pouvez enfin, tout simplement, demander au prestataire d’expliciter les raisons de sa motivation (et faire le tri dans la langue de bois).
Un point important est d’accorder le chiffre d’affaire et les effectifs du prestataire à la taille de votre projet. A priori, un prestataire faisant un très gros CA sera plus rassurant. C’est la garantie d’autres clients et retours d’expériences qui enrichiront son travail. Toutefois vous désirez également être un client important pour lui, qu’il prenne en compte vos exigences, vous fournisse le meilleur personnel et fasse le maximum pour garantir votre satisfaction.
Ma préconisation sur ce point est que le budget estimé de votre projet représente entre 3 et 10% du chiffre d’affaire de la société ; vous serez alors dans une situation confortable.
Des références dans le même métier que le votre peuvent largement jouer en faveur d’un prestataire.
Toutefois, des références dans des contextes similaires sont plus importantes. C’est simple, pour un projet de BI dans une administration publique, choisissez plutôt un spécialiste de la BI qu’un spécialiste des administrations publiques. Un prestataire avisé dans un domaine spécifique pourra vous fournir une foule de conseils sur votre situation particulière. N’oubliez pas que, si vous avez la “tête dans le guidon”, de son coté, il a l’opportunité de vous comparer avec de très nombreux cas concrets.
Il est impératif de mettre des noms derrière des projets. Au final, ce ne sont pas des références ni une méthodologie d’enfer (toutes les SSII en sont dotées) mais bien des “personnes” qui vont réaliser votre projet.
Un bon prestataire vous fournira des cv. Toutefois, le plus efficace est d’organiser dans le processus de sélection, une rencontre avec l’équipe prévue pour votre projet. Il faut également vous assurer que ce dernier mette effectivement cet effectif en place.
Vous pouvez également estimer la réputation des personnes proposées en les googlant ou en estimant leur réputation sur des réseaux sociaux comme Viadeo ou Linkedin.
Comme pour tout choix, il peut être utile d’envisager le pire et donc un arrêt brutal de la collaboration avec le prestataire. Quel impact cela aura t’il ? Un autre prestataire pourra t’il reprendre le projet ? Trouverez-vous facilement un autre prestataire de ce type ? Les retards et les dépassements de budget vont ils mettre en péril votre activité ?
Un coût de retour en arrière important devrait vous amener à prendre encore plus de précautions dans votre choix.
J’espère que vous percevez cela à travers ces quelques lignes. Dans tous les cas, n’hésitez pas à vous entourer et prendre un maximum de précautions. Toutefois, et j’en reparlerais plus tard, la confiance est la base même d’un bon business ; si vos premières expériences sont concluantes avec un prestataire, n’hésitez donc pas à lui lâcher la bride, cela sera d’autant plus bénéfique pour les deux partis.
Article original publié sur Glagla Dot Org. Tous droits réservés.
Acheter des prestations en informatique #4 - Choisissez correctement vos prestataires informatiques
Je vous invite à découvrir le nouveau numéro de PHP Solutions.
Dans ce numéro :
Flash et PHP, Créer un module pour Joomla!, Flyspray – bug killer, Application PHP et sécurité.
En plus :
Asterisk et PHP, Spiders – optimisez votre référencement, Manipulation en PDO, Performance des applications Web, Le programmateurs d'événements.
Sur le CD joint au numéro :
Ac3Folders : version complète d'une valeur de 17,99 $,
Database Restyle – Application : version valable jusqu'au 22 avril 2009.
En exclusivité, nous vous présentons le cours vidéo sur Flash et PHP, entièrement en français !
Visitez le site :
http://www.phpsolmag.org/fr
Proposé par Lucas Bartoszewicz
La version 1.1.3 de Symfony, corrigeant une régression introduite par la version 1.1.2, est disponible au téléchargement.
Cette version de maintenance corrige essentiellement une importante régression dans la commande cache:clear pouvant affecter tous les projets migrés depuis symfony 1.0.
Cette version apporte également la correction de quelques autres bugs mineurs.
Pour plus d'informations, consulter l'annonce sur le site du projet symfony.
Proposé par Carine Reignault
Pub hilarante pour 13eme rue.
Article original publié sur Glagla Dot Org. Tous droits réservés.
La version 3.0.0 de phpMyAdmin vient de sortir et est disponible au téléchargement.
Elle nécessite au moins la version 5.2 de PHP et 5.0 de MySQL. Cette version présente une liste de corrections, de modifications et de nouveautés, parmi lesquelles:
Proposé par Marie MINASSYAN