Tous les articles dans Conception

26 Articles

Dimensionner WordPress pour un fort trafic

Le développeur *star* Ryan Allen d’Envato détaille ici – avec un certain sens de l’humour – les pièges à éviter et des solutions de déploiement pour utiliser WordPress en fortes contraintes.

Devenir riche avec WordPress #2 : Comprendre WordPress

WordPress nécessite de connaitre PHP/MySQL – PHP4 mais attention, la PHP5 arrive dans un an! et quelques notions d’environnement LAMP ou WAMP. A défaut de posséder ces notions, WordPress est un très bon moyen pour les acquérir ! WordPress étant plutôt souple et permissif, il est réellement très simple à prendre en main. Voici les concepts de base à aborder.

Documentation

Surtout, avec l’expérience de publication de WordPress,  il y a de très fortes chances que vous trouviez la fonction utile au bon moment en cherchant dans le codex (la documentation WordPress). C’est un autre point fort de WordPress, la communauté est tellement forte que l’on en oublierai presque la documentation ultra fournie et concise par défaut.

Il faut partir du principe de base (et c’est très confortable) que la fonction que l’on cherche à obtenir existe déjà ! Il faut alors chercher dans les tags, qui sont les fonctionnalités natives de WordPress (remonter les derniers commentaires) et en étudier les attributs (nombre à remonter, sous quel format etc.).
Sinon, se retourner vers les plugins pour une utilisation plus poussée.

Le petit plus consiste à avoir une feuille de référence ou « cheat sheet » qui donne une vue sur toute ses fonctionnalités : voir ici ou encore là.

Créer un site avec WordPress

WordPress est un rêve pour un Webdesigner. Tous les domaines de compétences sont représentés : Projet, Design, Intégration(HTML/CSS), Développement (PHP/SQL/JavaScript)… Il y a suffisamment de tutoriaux selon le domaine à aborder et son niveau – le tout est de s’y mettre!

Si vous souhaitez aller assez loin et faire « propre », je conseillerai ces excellentes vidéos, dont une :

mais là encore, que se soit pour débuter, créer un plugin ou un thème s’intéresser d’abord au CODEX WordPress, plus fourni en anglais !

Pour les plus avancés, un oeil sur la BDD :


Devenir riche avec wordpress #1 : Pourquoi WordPress ?

WordPress est tendance.

source

WordPress est ergonomique.

WordPress a été conçu dès le départ pour la communication avec en ligne de mire les aspects sociaux qui sont aujourd’hui le coeur de la communication sur Internet. Cette « anticipation » et sa communauté sont à l’origine d’une interface ludique pour l’interface de contribution.
[+] - Pourquoi choisir wordpress plutôt qu’un autre CMS?

WordPress est puissant.

WordPress est d’une constante modernité dans son interface comme pour ses fonctionnalités. Très respectueux des normes d’intégration et de programmation, ultra documenté, les technologies JQuery, Ajax, et  HTML5 sont ainsi présentes dans les derniers thèmes et sollicitées par la communauté qui poussent à leur usage.

Rapidement :

  • Gère le multisite et le multilinguisme
  • Une architecture évolutive et extensible
  • Open Source : communauté sans équivalent
  • Autorisations différentes sur différents blogs
  • 10 M de téléchargements à chaque nouvelle version
  • Supporté par une société privée : vision « industrielle »
  • Éprouvée par des dizaines de millions de pages vues par jour

Créer ou refondre un site Internet

Alliance numérique a publié son guide des bonnes pratiques pour créer ou refondre un site web.
Le document (gratuit) vous aidera à identifier les tâches, les profils et se découpent en 5 étapes :

  • La planification stratégique
  • La conception
  • La production
  • La mise en ligne
  • L’exploitation et la maintenance

PDF : créer son site web

En finir (presque) avec les failles de sécurité de PHP

La sécurité des données est souvent considérée au départ  de la conception puis vite sous estimée par les développeurs et même par les clients – il faut y consacrer du temps…

Depuis PHP 5.2.0, l’assainissement et la validation des données sont nettement facilités avec l’introduction de filtrage des données.

L’utilisation de PHP sur le web a réellement été boostée avec les logiciels open source comme WordPress, Drupal et Magento ainsi que des applications Web comme Facebook. Les possibilités d’intrusion et d’insécurité pour les données augmentent d’autant plus que les applications où est employé PHP sont variées: sites web dynamiques, applications riche et métier, plates-formes de blogs, systèmes de gestion de contenu et commerce électronique – qui reste un sous-ensemble des autres sur le plan technique.
Il est donc indispensable d’assimiler les méthodes de propreté avec PHP, d’autant que ce nettoyage est grandement facilité avec les dernières versions de PHP. Aussi, avec quelques bonnes pratiques et un peu de qualité il est aisé de se protéger des attaques.

Pour rappel (ou pas), voici les menaces les plus connues (pour les solutions voir la doc et les liens plus bas) :

  • Cross-Site Scripting (XSS) :  la vulnérabilité la plus courante et pourtant la plus simple à prévenir. Le principe est de s’introduire dans un site à partir d’un autre pour déposer et exécuter un code malveillant.
    Un exemple très récent et marquant de cette technique est l’attaque de StalkDaily.com par le ver Mikeyy Twitter qui lançait du javascript via des interfaces Twitter infectées.
    Encore une fois les précautions à prendre avec le filtrage de données – celles passées par les URLs en l’occurrence – restent simples.
  • SQL Injection : Il s’agit d’injecter du code en insérant du script dans le programme initial et de le dévier. Par exemple en passant par un champ de recherche mal protégé, il est possible de casser la requête de recherche pour dévier l’objectif du programme et d’accéder à la base de données – et donc de lire ou de modifier le mot de passe administrateur etc. Là encore, les précautions sont aussi simples qu’efficaces.
  • Cross-Site Request Forgery (CSRF/XSRF) : va permettre à un utilisateur d’activer des actions pour lesquelles il n’a pas les droits. Par exemple, en déposant une image sur un forum qui contient en fait un script, lorsque l’administrateur, disposant de tous les droits va lire cette image, des codes malicieux vont s’exécuter – suppression etc.

Pour résumer, les sites sensibles au CSRF sont ceux qui acceptent les actions sur le simple fait de l’authentification à un instant donné de l’utilisateur et non sur une autorisation explicite de l’utilisateur pour une action donnée.

  • Il existe une variante de l’attaque précédente qui s’applique aux Cookies plutôt qu’aux sessions : le Cross Site Cooking. Les méthodes pour s’en prévenir sont les mêmes.
  • Données « inappropriées » : ce n’est pas vraiment une faille, mais c’est une vulnérabilité en ce sens que l’accumulation de mauvaises données peut faire planter un site – hébergement, base de données, affichage. Par exemple, sur MySpace (c’est dire…) il est possible d’altérer le profil utilisateur en modifiant l’affichage par l’insertion d’hacks CSS et HTML…

exploits_of_a_mom

La doc PHP nous dit qu’il existe deux sortes de filtre : la validation et le nettoyage.

La Validation sert à vérifier si une donnée passe certains critères. Par exemple, passer les critères de FILTER_VALIDATE_EMAIL va déterminer si une donnée est une adresse courriel valide, mais ne va pas modifier la données elle-même.

Le nettoyage va nettoyer les données, par exemple en retirant les caractères indésirables. Par exemple, passer une donnée à FILTER_SANITIZE_EMAIL va faire disparaître les caractères inappropriés dans une adresse courriel. D’un autre coté, la donnée n’est pas validée.

Des options sont éventuellement utilisées par la validation et le nettoyage, pour adapter leur comportement à des besoins spécifiques. Par exemple, avec l’option FILTER_FLAG_SCHEME_REQUIRED pour filter une URL, il faut indiquer le protocole utilisée (tel que http://).

Pour les sources et les différentes techniques c’est ici :

[+] – La documentation PHP – what else?…

[+] – Listing et applications des filtres

[+] – Tutoriaux et démonstrations

Réaliser le site d’un groupe de musique : #1 WordPress ou Drupal ?

J’ai débuté la réalisation du site d’un artiste musicien et ami – et  guitar hero s’il en est – Bob, pour présenter ses projets aussi divers que variés. Je vous propose de suivre la conception de cette réalisation.

Après avoir brièvement lister ses besoins, s’est posé le choix de la plateforme : WordPress ou Drupal. Je sais que dans les deux je trouverai tout ce qu’il me faut pour développer le coté rich media (sons, vidéos, portfolio) et web 2.0 (mySpace & facebook, notations & commentaires… ).

music-word-drupal

Première étape : regarder ce qui se fait…

Mais à la question du design et de son intégration, la réponse est moins évidente – surtout par rapport au temps que je dois y consacrer. J’ai commencer un benchmark de sites en axant ma recherche sur le design de site musicaux utilisant Drupal, dans un premier temps. Je vous en fait profiter…

Utiliser WordPress comme CMS

Il y a certains points qu’il faut absolument penser avant de se décider à concevoir un site Web où WordPress serait utilisé comme CMS.
Devlounge a publié « Les choses à considérer lors de l’utilisation de WordPress comme un CMS », cet article doit absolument être lu par quiconque voulant utiliser WordPress comme CMS.
En substance :

  1. Lister les besoins pour déterminer ceux qui seront natifs, via plugins ou codés (hack) – certainement le cas pour des modules métiers.
  2. Lister les traductions nécessaires (surtout le Back Office) et les comparer à celles disponibles.
  3. Etablir une méthode pour garantir que les modifications ne seront pas écrasées à la mise à jour du noyau – et il faut pouvoir mettre à jour.
  4. Dresser une checklist de tests de compatibilité pour vérifier l’intégrité suite à une mise à jour.
  5. Analyser le type de contenu et sa proportion statique/Dynamique – utilisation de liveWriter.
  6. Conceptualiser la présentation pour la faire correspondre à un thème et à ses widgets.
  7. Réfléchir à la structure des permaliens – et du même coup aux catégories…

Quelques articles utiles :

  1. WordPress CMS Part 2: Theme Implementation
  2. How to Use WordPress for a Portfolio Site – Part 1 & Part 2
  3. How to use WordPress to run a magazine, news website
  4. Un article en français, histoire de.

A lire également, pour aller plus loin :

  1. (via) 101 Techniques for a Powerful CMS using WordPress
  2. Five Ways to Familiarize Clients with WordPress
  3. Don’t mess with my Toot Toot
  4. Using WordPress as CMS
  5. WordPress as a CMS (screencast)

Exemple d’utilisation sur le codex wordpress.

CMS jungle : Drupal, Joomla, EzPublish, Typo3, WordPress… WTF ??

Plutôt que de refaire un énième benchmark, intéressons-nous de manière pragmatique et basée sur l’expérience de l’intégrateur, du développeur, du chef de projet et sommes toutes faites, celle l’utilisateur – la mienne en fait…

drupalTous ces CMS PHP sont Open Source et par définition « gratuits », avec quelques innovations pour EzPublish.
Tout d’abord, pour combattre les idées reçues, un tableau comparatif de la présence ou non des fonctionnalités ne sert à rien. Tout simplement  parce que je ne connais pas une seule fonction qui ne se retrouve pas chez l’autre : version mobile, e-commerce, génération PDF de la page, édition en front office, gestion multilingue, gestion multi-sites, workflow, fonctionnalités web 2.0 en tout genre…  Si la possibilité n’est pas native, elle existera sous forme de plugin qui y pourvoira et les communautés respectives sont de toute façon très actives.

eZpublish

Rendons compte, il est des CMS qu’il vaut mieux éviter, parce qu’ils sont obsolètes et/ou franchement complexe à maitriser sur bien des aspects. Typo3 et eZ Publish sont très séduisants sur papier et ont tout pour convaincre les DSI. Mais pour la configuration (déploiement, duplication…), la personnalisation graphique ou technique est un vrai cauchemar pour le développeur/intégrateur qui n’est pas certifié – et encore.  Une fois en place les performances sont au rendez-vous, mais bonjour les sueurs pour mettre en place ou intervenir sur des évolutions…

joomla

Joomla et Drupal sont très en vogue. Malgré une ergonomie discutable de son back-office, Joomla séduit rapidement les contributeurs, là où les développeurs pencheront pour Drupal. Tous deux ont une architecture modulaire et des performances très honorables. Seul le système de template demande un peu d’entraînement (mais reste digeste si l’on compare à typoScript ou eZ Template…). Drupal apparait plus flexible et plus simple en contribution pour les sites à gros volume.

Le plus simple à appréhender pour le développeur et l’intégrateur selon moi est WordPress. Depuis la version 2.7 les fonctionnalités sont très abouties. Il n’y certes pas de génération (de base) de type smarty mais… c’est tant mieux ! Un intégrateur HTML/CSS trouvera très vite ses marques et le codex Template utilisé par les développeurs est d’une puissante simplicité. Le back-office de WordPress est très orienté publication au sens Weblog, toutefois ses fonctionnalités CMS ne sont plus en reste, même s’il faut continuer de lui préférer Joomla ou Drupal pour un site avec des règles métiers complexes. En résumé, il est possible de faire ce que fait l’un avec l’autre. Avant de choisir un CMS, il faut dresser les compétences de ceux qui vont réaliser le site comme de ceux qui vont l’utiliser. Puis mettre en exergue les coûts de formation et de maintenance.

wordpress

Sur la flexibilité et la personnalisation, c’est au cas par cas, mais Drupal semble le mieux loti -pur ressenti. Mais encore une fois WordPress s’en sort très bien aussi avec en prime une vitesse de déploiement inégalée. Enfin une dernière remarque, ces deux CMS sont d’excellents back-offices pour une interface riche type Flex ou Flash grâce notamment à des services très poussés (XML-RPC).

http://fr.youtube.com/watch?v=N96eSZP-jpQ

En marge des CMS Open Source, on pourra s’intéresser à ELGG, pour qui souhaite recréer un facebook – nb : et un langage de template de plus…ou Magento pour qui souhaite recréer Amazon.

Programmer pour iPhone : les mains dedans.

Avec la sortie de l’iphone deuxième du nom et dans les 300 000 téléchargements de son SDK, nombreux sont ceux qui souhaitent développer leurs propres applications… Par où commencer ?

  1. Acheter un iPhone.
  2. Acheter un MAC.
  3. Télécharger la suite de logiciels
  4. Acheter la licence qui vous correspond.
  5. Se former à l’objective-C.
  6. Ajouter les tests d’interface avec le multi-touch framework (vidéo ci-dessous)

Et oui, c’est un métier…

[+] – Par où commencer ?

Livre : Ergonomie web

Je viens de terminer la lecture de l’ouvrage Ergonomie Web publié par Eyrolles. L’avantage du livre est qu’il traverse les points intéressant chaque profil (chef de projet, concepteur, designer, intégrateur, webmaster…) et qu’il regroupe un ensemble conséquent de règles de bon sens à appliquer pour l’ergonomie web, présentées par une multitude d’exemples illustrés par des captures de sites internet.

Ergonomie Web : livre

Une mise à jour serait aujourd’hui peut-être nécessaire, de nouveaux sites présentant des interfaces intéressantes depuis la publication – mais tout va si vite dans ce domaine…
Il serait également à propos de compléter le sommaire sur les interfaces riches et mobiles, mais les méthodes et les règles sont bien là. A recommander donc.

[+] – Extraits du livre

Architecture Youtube : point de secret

Adobe a publié un article sur l’architecture à concevoir pour des applications telles que Youtube ou MySpace. Au programme : serveur FMS, serveur d’encodage et plateforme PHP.
Il faudrait aussi s’intéresser (en bon geek) aux ressources matérielles; en bon chef de projet, aux coûts d’une telle structure et, pour le webdesigner, à l’ergonomie cliente qui se contente trop souvent du succès de l’application sans en exploiter toutes les possibilités (du player notamment). Post à suivre…

Architecture Youtube, myspace

Adobe met en avant ses produits avec le découpage suivant :

  • In Adobe Flex, display video thumbnails of videos
  • In Flex, select a video file from the user’s local hard drive
  • In Flex and PHP, upload the file to the web server
  • In PHP and with Carbon Coder, transcode the video
  • In PHP and Flex, wait until the file is encoded
  • In Flex and with Adobe Flash Media Server, update the video thumbnail list
  • In Flex and with Flash Media Server, enable the user to click on a thumbnail and play it in the video player
ouvrir