avr 19

Quelques études


En premier lieu, voici encore deux études qui nous montre tout l’intérêt d’optimiser son site et de charger toujours plus vite. Après les déclarations de Google, les études d’Amazon et d’autres, ce sont maintenant des études beaucoup plus directement orientées ROI qui voient le jour.

Une première étude de TRAC (reporté par alerte site) avec un business case « avant optimisation » et « après optimisation » montre des résultats spectaculaires sur le site de Supreme School Supply. Vous pourrez retrouver l’intégralité de l’article ici et les slides ici.

En passant le temps de chargement des pages de 4,5 secondes en moyenne à 2,5, les résultats ont été fulgurants :

  • 46 % de pages vues en plus
  • 40 % de temps passé en plus sur le site
  • 12 % de diminution du taux de rebond
  • 74% d’augmentation du panier moyen
  • 219% d’augmentation du CA

Encore plus complète, l’étude suivante est aussi très suprenante. (Vous pourrez la retrouver ici)

L’étude est basée sur des chiffre provenant de Google analytics et Sitecatalyst. Au final cela donne des chiffres très pertinents, l’un m’a marqué :

  • Les 42,6% des visites qui ont été servies le plus rapidement ont réalisées 75% des ventes

Sur l’autre analyse menée avec Google Analytics et des custom variables, ils ont pu mettre en parallèle la latence (le temps de chargement) et la quantité de business généré. Dans cette seconde étude, ils remarquent que 70% des revenus sont réalisés par les pages chargeant entre 0 et 3 secondes en moyenne.

Le défaut de l’étude est sa faible profondeur en terme de nombre de visiteurs / tests mais le principe de fond est bon, il serait très intéressant de pousser l’expérience sur un grand site, sur le long terme pour avoir une étude très complète.

Donc plus que les résultats qui peuvent être imprécis sur une faible volumétrie, c’est la méthode qui me semble excellente.

écrit par Philippe Humeau \\ tags: , ,

avr 14


teaser_bargento_v2_CS3 par nbs-system

écrit par Philippe Humeau \\ tags: , ,

avr 12

Bon, après maintes tentatives de faire des gros articles de synthèse, j’ai 20 brouillons et ca fait deux mois que je n’ai pas publié. Du coup, retour aux sources et aux bonnes pratiques, un petit article simple pour se remettre en jambes.

Firefox, on l’aime ou pas, mais on ne peut pas le quitter


Et personnellement, je suis de ceux qui n’aime pas. J’ai toujours trouvé ce browser lent, insupportable dans sa méthode de mise à jour et blindé de memory leaks. Bon après, il ya une position de principe et au bureau, on lance pas un troll par ci par là, on en a un élevage.

Alors forcément, les browsers et leurs capacités, c’est un sujet récurrent. J’utilise Opera comme navigateur pour certains aspects comme la légèreté, le groupement de tab, le cache hyper efficace, même en cas de restart du browser et les back qui évite de perdre un post au complet.

Chrome à la maison car il est rapide et agréable, simple comme on aime. et … Firefox, car je n’ai pas le choix. Le nombre et la qualité des extensions font de ce browser une plateforme professionnelle incontournable.

Depuis la version 4, c’est  un peu différent. Le navigateur s’est beaucoup amélioré, notamment en performances, ca devient presque un plaisir de bosser avec.

Les extensions, la force incontournable de Firefox


Et c’est bien le sujet de ce post. La capacité incroyable de Firefox de s’étendre. Alors maintenant qu’on vit de nouveau ensemble avec ce navigateur, parlons de ses extensions incontournables, selon moi.

SENSEO

Surveiller sa SEO dans une page précise en tapant une expression directement, c’est possible. Ca s’appelle SenSEO et c’est juste incontournable. Simple, efficace, on en rêvait, sensationnal SEO l’a fait.

Il analyse et fournit les conseil en une fois, c’est tellement beau…

FIREBUG

Forcément, si je n’avais droit qu’à une extension, je prendrai celle-ci. It’s the mother of all extensions ;) Ca permet de vérifier tout ce qui touche à une page web ou presque, des composants chargés aux timings, du javascript au contenu du DOM, tout sur tout ou presque et en plus de nombreuses autres extensions s’appuient dessus. Indispensable, légendaire, une partie du succès de Firefox repose sur ce seul plugin qui a su se rendre indispensable aux développeurs.

YSLOW & Pagespeed

Yslow et Google page speed reviennent souvent dans mes articles. GTmetrix.com permet d’avoir les deux en ligne, se sauver et comparer les résultats mais la version extension est pratique aussi. Pagespeed.googlelabs.com permet aussi de faire l’analyse en ligne avec les liens vers la DB de connaissance Google Labs, toujours utile.

Bref, les deux plugins analysent vos pages à la recherche d’axes d’amélioration et croyez moi, avant d’obtenir le saint Graal (100%/100%) vous avez quelques nuits blanches en vue. Mais les deux fournissent une tripotée d’informations utiles en terme d’optimisation.

WAPPALYZER

Alors ? En un coup d’oeil, c’est un magento ou un prestashop ? Derrière c’est un Nginx ou un Apache ? Tout ca et plus en survolant le plugin de votre souris, c’est possible. Wappalyzer vous donne toutes ces indications car il monitore vos pages chargées et analyse le contenu et les réponses du serveur pour déterminer tout cela pour vous. Simple mais dramatiquement utile.

Et hop, je vois que mon site est servit par un Apache, utilise Jquery a le tag Google Analytics et tourne sous WordPress. La classe ! (bon pour le cas de mon site, je le savais déjà :) )

NAGIOS CHECKER

Sur l’exemple du dessus, vous voyez un N noir avec NBS 47 en Jaune et NBS 3 en rouge. Ce sont les alertes Nagios de nos sondes de supervsions. L’avantage c’est qu’on a pas à être en permanence sur la page Nagios, on peut juste avoir le plugin et en passant la souris au dessus, voir ce qui se passe en alerte et en informations :

PS : 3 services en erreur et 47 en warning, ca peut paraitre beaucoup mais sur 650 sites, ce n’est pas énorme en fait. En l’occurence 2 sites ont dépassés 90% de disques alloués et 1 est en charge critique sur son Mysql. Les autres ont des warning divers, charge CPU/RAM etc.

Bar WEB DEVELOPPER

C’est un outil utile. Nettoyage des cookies pour un site ou pour tous, entourer les frames ou les titres H1/H2, détailler les scripts, forms, images, CSS, tout y est. C’est une formidable toolbox, très légère et très très complète. Must have si vous développez, tout aussi indispensable que Firebug, c’est dire !

GOOGLE TOOLBAR

Nous voila au dernier mais il est toujours aussi utile et appréciable, ne serait-ce que pour les raccourcis vers les services Google ou encore le PageRank. La vieille bar est toujours aussi agréable et discrète, utile et configurable.

Pour les alergiques à Firefox


Beaucoup de Bookmarklet (petit Javascript que vous cliquez quand vous êtes sur une page Web pour lancer une autre page ou un autre service) font un bon boulot. Les Yslow et Pagespeed peuvent s’utiliser depuis le Web.

Les bookmarklet, c’est tout simplement génial. Le site ici en référence un paquet, parmis lesquels j’ai fais un raccourcis sur : URL shorten, Download as PDF,  German to English, GTMetrix test, etc…

écrit par Philippe Humeau \\ tags: , , , ,

nov 16

logo swissgento HD web

Swissgento, 1er salon dédié à la plateforme MAGENTO et au e-commerce, le 22 Novembre 2010 à Genève

Vous n’avez pas pu assister au Bargento 5 ? Séance de rattrapage avec le salon Swissgento ! Dernier événement francophone de l’année …

BY Connect est heureuse de vous annoncer la première édition du plus grand rassemblement franco suisse autour de la solution e-commerce MAGENTO : le SWISSGENTO, qui se tiendra le lundi 22 Novembre 2010 prochain au centre des conventions de l’hôtel Ramada encore de Genève (La Praille).

Entrée gratuite de 9h à 18h, avec un espace stands et 14 conférences.

Liste des exposants, programme complet des conférences et inscriptions visiteurs gratuites en ligne sur le site www.swissgento.com

Un salon local

Venez  rencontrer  au travers de conférences, et de stands, les acteurs majeurs Suisses Romands et de France frontalière spécialisés sur la plateforme Magento, ses extensions ou plus généralement dans le e-commerce !

Des entreprises à votre écoute

ALTIMAX                          MAGENTO INC                                SMILE
BEEZUP                              MAGENTO ACADEMY                  VIRTUA
COBWEB                             MAISON DU LOGICIEL                ZEND TECHNOLOGIES
CROSS AGENCY              MIURA CONSEIL                            INTUITIV TECHNOLOGY
CS2                                       NBS
DIGILINX                          NET DESIGN
DOTBASE                           LA POSTE SUISSE (POSTFINANCE)
DREDD                                 PYKSEL / CAMPTOCAMP
EMAILVISION                 SECUVAD

14 conférences gratuites, un programme riche et varié

Pour explorer Magento et les thématiques principales du e-commerce, découvrir des cas concrets, des expertises métiers, des témoignages clients :

  • CROSS AGENCY : E-Commerce mobile & réseaux sociaux, quelles opportunités avec Magento ?
  • BEEZUP : Booster votre CA en exportant vos produits sur les réseaux
  • SECUVAD : Fraude en ligne : faut-il avoir peur de vendre à l’international ?
  • EMAILVISION : Intégration entre Emailvision et Magento pour gérer vos campagnes d’email marketing de fidélisation.
  • DREDD : SEO avec Magento : Optimisation et astuces.
  • MIURA CONSEIL: Vendre 34 000 produits en 11 langues avec Magento.
  • NET DESIGN : Réussir son projet e-Business en adaptant MAGENTO à ses besoins.
  • VIRTUA : Performances Magento : Solutions efficaces et accessibles
  • PYKSEL / CAMPTOCAMP : Connecteur OpenERP / Magento : un cas réel.
  • SMILE : Comment faire de Magento sa plateforme e-commerce.
  • ZEND : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.
  • « MEET MAGENTO ! » : Présentation des différents programmes de partenariats avec Magento. Meeting privé réservé aux prestataires, agences web … Par Michel Goossens (VP Europe MAGENTO INC)
  • QUADRA INFORMATIQUE : Méthodes d’interfaçage de Magento avec un système d’information externe
  • HERVE BLOCH : Conférence privée de clôture autour des « 7 Péchés Capitaux du Marketing Digital »

Informations Pratiques

Le salon se tiendra le lundi 22 Novembre 2010 au centre des conventions de la Praille (Hôtel Ramada Encore de Genève), 10/12 route des jeunes à Carouge.

Entrée gratuite de 9 h à 18 h. Inscriptions en ligne sur www.swissgento.com

écrit par Philippe Humeau \\ tags: ,

oct 29

Ca faisait longtemps que je n’avais pas écrit, si je reprend la plume c’est pour parler d’un sujet qui me tient à cœur tant les dégâts causés peuvent être importants, cet article ne vas pas me faire que des amis, le constat que je dresse est clair : il y a beaucoup (trop) de prestataires incompétent sur Magento.

En effet à l’Academy nous avons une position transverse, nous voyons passer beaucoup de projets e-commerce, soit par le prestataire, soit par l’e-commerçant, aujourd’hui il est incontestable que Magento est une plateforme très demandée et on le comprend, confier la réalisation de son site à un prestataire est un choix vital et il doit être fait sérieusement.

Soyons clair, je vais être particulièrement sévère car il y a sur le marché des prestataires qui sont incompétents ou sans scrupule voire même les deux, cet article n’a pas vocation à faire de la délation mais j’espère y donner suffisamment de bons conseils pour que vous puissiez trier le bon grain de l’ivraie. Cet article a donc un but « éducatif » afin que ceux qui en ont besoin puisse faire le meilleur choix. Je ne serai peut être pas exhaustif mais je fais de mon mieux.

Etat des lieux sur les prestataires Magento aujourd’hui

La demande Magento est telle que le besoin en nombre de prestataire est fort, je constate à mon grand regret que les meilleurs prestataires ne peuvent pas assumer toutes les demandes qu’ils reçoivent, en grande partie car les bons développeurs Magento sont une denrée extrêmement rare. Pour certains Magento est vu comme un eldorado, la plateforme est gratuite, la demande est forte, ca peut se vendre cher donc c’est très rentable, c’est un principe valable si les clients n’en font pas les frais.

Or Magento n’est pas si simple que ça mettre ne œuvre, j’ai vu passer des prestataires incapables de configurer la solution de paiement ou le mode de livraison, le système multi-boutique est pratiquement impossible à cerner correctement sans formation pourtant son implication dans le paramétrage d’une boutique est vital, d’un autre côté la gestion du catalogue n’est pas toujours maîtrisé non plus ce qui peut donner lieu à des pertes de fonctionnalités.

A l’incompétence fonctionnelle peut s’ajouter l’incompétence technique, le système de template qui régit le design dans Magento se retrouve sous-exploité, souvent les templates sont achetés via un revendeur de template, ça peut être un choix mais il y a toujours de la personnalisation à faire et si les compétences manque on se retrouve avec un site dont l’ergonomie laisse à désirer, dont l’aspect visuel est contestable et surtout avec un prestataire incapable de répondre à des demande de modifications simples.

Au dernier niveau se trouve l’incompétence sur les développements, celle qu’on détecte le plus facilement car le design étant plus facile d’accès techniquement on peut masquer plus facilement un problème de compétence, en revanche sur les développements à réaliser on remarquera vite que le prestataire est incapable de fournir le livrable et un audit du code fait par un tiers de confiance montrera rapidement toutes les faiblesses de celui-ci.

Pire encore dans certains cas les caches ne sont même pas activé, l’accès à l’admin n’a pas été sécurisé et le cron de Magento n’a pas été programmé, ce sont pourtant des points élémentaires vitaux à mettre en place, à tel point qu’un bon prestataire Magento le mettra en place d’office sans même que vous ayez à le demander.

Votre responsabilité dans le choix du prestataire

Pour les petits nouveaux qui veulent démarrer une activité e-commerce sachez que le choix du prestataire est de votre responsabilité, mais en tant que professionnel sachez aussi que personne ne pourra vous aider si vous vous faîtes rouler, en effet les lois très protectrice envers les consommateurs sont sans pitiés dans l’univers professionnel, vous êtes un pro donc vous êtes sensé savoir ce que vous faîtes.

Un contrat est un engagement de votre part et de la part de votre prestataire, lisez le bien, faîtes vous conseiller, comparez, bref ayez une attitude professionnelle dans votre choix de prestataire. En cas de problème avec celui-ci vous serez le premier à être embêté et cela peut vous conduire à une impasse qui peut ruiner vos chances avant même de commencer concrètement votre activité, ne négligez pas cette étape.

Les résultats

Pour rentrer dans du concret voici les résultats que j’ai pu observer, je vous assure que ça donne à réfléchir :

Le projet accumule les retards sur la date de livraison prévue, de manière générale des retards sont systématique sur un projet informatique. Les raisons en sont souvent une sous-estimation des temps de réalisation qui peut être du à l’inexpérience ou à des difficultés qui n’ont pas ou mal été anticipé, mais le retard est toujours exacerbé par l’incompétence.
Le retard est d’ailleurs le premier facteur d’alerte des sociétés qui réalisent qu’elles n’ont peut être pas choisit le bon prestataire. Le problème avec les retards c’est qu’on s’en rend compte quand il y en a, mais pas tout de suite car le prestataire trouvera toujours une excuse, à ce stade le projet étant déjà engagé on fait rarement marche arrière, mais quand le projet à 1 an de retard (je ne plaisante pas) et qu’il n’est toujours pas prêt à être livré c’est là que le déclic se produit, trop tard malheureusement, 1 an de perdu.

Ensuite le site livré ne correspond pas à votre demande, c’est un élément qui est difficile à qualifier car malheureusement le porteur de projet a aussi souvent du mal à exprimer précisément sont besoin ou peut être fluctuant, ce que je constate c’est que lorsqu’il y a incompétence le prestataire aura tendance à rejeter la faute sur l’incapacité technique de la plateforme (en l’occurrence Magento) à répondre à vos besoins. Soyons pragmatique si c’était vrai le prestataire aurait du/pu vous en informer dès le départ et vous aider à choisir la plateforme adaptée, connaissant Magento je sais que la plateforme à très peu de limite technique et cet argument est souvent fallacieux.

Même livré le site est difficile voire impossible à exploiter, problème de performances, fonctionnalités demandé non-conforme à vos besoins et donc inutilisable, design qui fonctionne mal sur certain navigateurs, tva qui n’a pas été paramétré correctement. En bref le site est livré mais inutilisable ou la qualité n’est pas celle que vous attendiez, soyez particulièrement attentif au fait que malgré toutes ses qualités le simple fait d’avoir Magento ne garanti pas d’avoir un site de qualité, pour parler crûment : il est possible d’avoir un site merdique avec Magento. Ne limitez donc pas votre confiance dans le seul fait que Magento est un bel outil, comme tous les outils c’est celui qui le manipule qui fait que la réalisation sera ou non de qualité.

Les conséquences

Les conséquences de ses résultats sont généralement sans appels :

Surfacturation par le prestataire lié aux rallonges de temps et de développement non prévu initialement, j’ai vu des projets faire du x2 ou du x4 peut être même plus, les sociétés s’étendent rarement sur l’argent qu’elles perdent.
Abandon total ou partiel du travail réalisé, donc perte du temps et de l’argent investi.
Fortes chances d’entrer en litige avec le prestataire, donc frais d’avocats et quantité d’énergie dépensée pour un contentieux dont on se passe allègrement

Comment bien choisir son prestataire ?

Nous voici dans le vif du sujet, il n’y a malheureusement pas de moyen 100% fiable de ne pas se tromper mais voici des recommandations qui vous permettrons normalement de vous aider à faire le bon choix.

1. Maitrisez votre sujet : quand vous allez voir un prestataire il vaut mieux avoir une idée la plus précise possible de votre besoin, même si le prestataire peut avoir un rôle de conseil vous devez toujours être capable de vous forger une opinion objective par vous même de ce que vous dis votre prestataire, concrètement au mieux vous connaissez Magento, ses possibilités et ses points faible plus vous serez capable d’identifier le prestataire qui s’y connais réellement de celui qui vous vends la plaquette commerciale. Finalement cet élément vous permettra d’éliminer facilement les opportunistes qui font du Magento parce que c’est à la mode du véritable expert qui vous parlera de Magento de manière bien plus précise et fiable. De plus ca vous évitera de vous faire facturer des fonctionnalités qui sont native à la plateforme, un commercial un peu trop gourmant n’hésitera pas à mettre sur la facture la gestion de produits virtuel parce que vous l’avez demandé sans savoir que c’était natif. Je défend mon bout de gras là-dessus mais une formation AVANT de voir des prestataires n’est jamais un investissement inutile si vous êtes sûr de vouloir travailler avec Magento, bien au contraire.

2. Comparez les offres : ça parait évident mais il y en a qui ne le font pas, il va donc falloir faire les magasins pour trouver le vêtement à votre taille. Pour le prestataire c’est pareil, comparer vous permettra de mieux vous rendre compte des disparités de niveau entre les différents prestataires, on ne se forge pas un avis sans points de repère si vous ne connaissez pas de bons prestataire il va falloir les mettre à l’épreuve, le conseil précédent est indispensable pour bien pouvoir comparer car si vous connaissez rien à Magento vous allez avoir du mal à repérer ceux qui sont compétents, surtout s’il n’y a aucun prestataire compétent dans votre liste comparative.

3. Attention au piège du prix : Ce n’est absolument pas un indicateur fiable, un prix cher ne reflète pas forcément de la qualité (j’ai vu une réalisation de site simple inexploitable avec une prestation à 18k€), à contrario le moins chez est forcément suspect, oubliez le site à 500€ et même à moins de 5k€ sur Magento il peut y avoir anguille sous roche. Les prestataires sérieux n’appâtent jamais le client avec des offres au rabais. Pour vous donner un ordre d’idée sachez qu’en moyenne un développeur indépendant se fait payer entre 350-550€/jour, l’intégrateur 200-300€/jour, un graphiste 300-350€/jour, ça vous donne très vite une idée du prix de votre projet, les prix des agences seront au moins 30% plus cher en raison de leur coûts de structures. Et ça peut être encore plus cher si le développeur est vraiment très bon.
De plus même chez de bons prestataires les prix peuvent fluctuer de manière assez importante selon leur taille, expérience, etc…

4. Les clauses de sorties : cet élément peut être sujet à caution mais en général plus le prestataire est mauvais et plus il cherchera à vous verrouiller par contrat, à contrario un prestataire de bonne foi aura confiance dans la qualité du travail et ne refusera pas des clauses de sorties dans le contrat, de plus en cas de départ assurez vous que votre contrat vous attribue l’intégralité du code source et de la base donnée, car cette semaine encore j’ai vu un client bloqué avec un prestataire pendant 4 ans sans aucune possibilité de récupérer les sources et la base de données, généralement ça signifie l’abandon du site et un site recréer à partir de zéro. Dans cette optique j’ai également constaté que le prestataire refusera de livrer les sources à un audit extérieur, en effet l’audit est un excellent moyen de démontrer un manque de compétences à condition qu’il puisse être réalisé.

5. Rencontrez les prestataires : des évènement comme bargento et le salon de l’e-commerce sont un bon moyen de le faire, surtout que les bons prestataires n’hésitent pas à emmener leurs développeurs avec eux et à les exhiber tous nus à cette occasion. Le piège c’est que c’est très subjectif mais ça permet de rencontrer pleins de prestataires d’un coup à Bargento donc c’est pratique. Toutefois je pense qu’il est utile ne de ne pas tomber dans le piège de la proximité à tout prix, il vaut mieux un bon prestataire à Paris qu’un mauvais dans votre ville, surtout qu’à part cas particuliers les déplacements sont rarement nécessaire pour gérer un projet e-commerce.

6. Vérifier les compétences internes : ce n’est pas toujours facile à faire, mais une agence qui a pris la peine de former toute une équipe à l’Academy est déjà dans une démarche qualité, mais ce n’est pas un pré-requis certaines agence on su obtenir d’excellente compétences, de fait vous pouvez légitimement demander qui sont les personnes qui vont créer votre site. Ce point ne se suffit pas à lui même et doit être combiner avec le point suivant : demander des avis.

7. Demandez des avis : renseigner vous sur le prestataire, contacter ses références, les e-commerçants sont généralement très ouvert pour parler de leur projet (si vous n’êtes pas un concurrent bien sûr), encore une fois Bargento peut être un bon endroit pour recueillir des retours d’expériences ouf aire partager les votre. Demandez nous, à l’Academy nous ne dénigrons personne mais nous aimons parler des prestataires qui ont fait leur preuves techniquement. Surtout diversifiez vos sources, en effet le danger avec les avis c’est qu’ils ont tendances à être subjectif.

8. Le piège du label : je mets un gros warning sur le label « community partner » de l’éditeur (et les autres aussi d’ailleurs mais moins), il ne préjuge en rien de la qualité du prestataire, n’importe qui payant aura le label, sachez qu’aucune vérification n’est faîtes ni sur les compétences, ni sur la manière de travailler et encore moins sur l’éthique du partenaire. Si toutes les bonnes agences Magento ont le label la réciproque n’est pas vraie : toutes les agences qui ont le label ne sont pas bonnes.

9. Bien délimiter le projet : fixer dès le départs qu’est ce qui doit être réalisé, comment et sous quels délais, si possible évitez les modifications à postériori ou ayez conscience qu’elles ralentiront le projet et qu’elles vous seront facturées (ce qui est normal pour le coup), la pierre angulaire de ces limites est le cahier des charges fonctionnel et technique, bien réalisé (en collaboration avec votre prestataire ou par un consultant indépendant qui connait bien la solution) il permet d’éviter les dérives.

10. Vérifier les conditions de validation du livrable : normalement lors de la livraison on passe par une étape de validation du client avec la possibilité d’émettre des réserves. Un prestataire vous garantira également les développements qui auront été réalisés, si un bug passe au travers l’étape de validation et survient dans les semaines qui suivent la mise en production il fera le nécessaire pour le corriger.

Conclusion

Je pense que cet article n’est pas exhaustif car il s’articule principalement sur les compétences du prestataire aussi je vous recommande la lecture des articles suivants qui traitent également de ce sujet :

Comment choisir la bonne agence web pour la création de son site internet ?
Torpille.fr (Retour d’expérience)

écrit par Fabrice Beck \\ tags: , , , , ,

juil 01

Introduction

Q : Pourquoi maitriser le shell ?

R : Parce que ca fait gagner un temps fou, que c’est propre, pêrmbeau, systématique, rapide et quasi illimité en terme de possibilités.

Merci à Adrien Urban de NBS System pour la création de ce support. Il vous sera peut être utile pour dédoubloner un fichier de clients ou de commandes, peut être pour faire certains tris dans vos bases ou fichiers. Les hébergeurs comme NBS System ou d’autres fournissent des accès shell limités, mais qui permettent d’utiliser ces outils (ou une partie d’entre eux).

Ces outils seront d’ailleurs principalement utiles aux développeurs.

UNIX & son copain Posix, leurs vies, leurs œuvres

Voici un cour de shell bash/unix pour les gens qui ne sont pas à l’aise avec, essentiellement les développeurs. Ca fait gagner un temps fou.

C’est volontairement simplifié, le but c’est pas de faire des DEV des SR, c’est juste un manuel de survie, donc les SRS qui balanceront des « ouais mais en fait c’est pas tout à fait ca » :

cat /dev/urandom > /dev/tty_du_srs_en_question 2>&1 &

Il est important de noter que la première partie part du principe de base que les noms/mots/autres sont sans espace ou autres caractères spéciaux. Cet aspect est présente après le reste.

Les concepts de base

Les flux particuliers :

stdin (entrée standard) : ce n’est pas une commande, c’est un FD, file desciptor, spécial qui est le flux d’entrée. C’est le fd 0.
stdout (sortie standard) : celle que l’on utilise 90% du temps, FD, en résumé ce qui s’affiche en retour d’une commande. c’est le fd 1.
stderr : sortie d’erreur c’est le fd 2.

on en reparle après.

Les redirections :

| : celui qu’on appel « pipe » le plus régulièrement, permet de joindre la sortie standard d’une command à l’entrée standard d’une autre.
< : prend son entrée standard à partir fichier
> : redirige la sortie standard vers autre chose, un fichier par exemple ou /dev/null (dans l’espace)
(on peut préciser par exemple 2>&1 qui redirige la sortie d’erreur (2) vers la sortie standard (1))
>> : redirige en mode append, on ajoute les données à la fin du fichiers existant.

Cas concrets :

ls > toto.txt : redirige le contenu de la sortie de ls (les fichiers listés) dans le fichiers toto.txt
ls >> toto.txt : idem sauf que ca ajoute à la fin du fichier. WARNING la première (ls>toto.txt) détruit toto.txt si il existe déjà.
ls > /dev/null : renvoi la liste des fichiers dans l’espace (/dev/null = grosse poubelle géante de taille infinie)
ls | more : liste les fichiers et envoi le résultat à la commande more qui affichera page par page.
less < toto.txt : éjectera toto.txt dans l’entrée standard de less qui sortira un résultat page par page. (ceci dit ca revient au meme que faire directement less toto.txt mais j’avais pas d’exemple en tete)

Wilcards :

Comme sous Windows, on peut utiliser des jokers ou wildcards :

ls * affiche tous les fichiers (ceci dit c’est le comportement par défaut)
ls t?t?.txt : listera titi.txt toto.txt et tutu.txt enfin remplacera ? à la position voulu par n’importe quel lettre.
ls t*.txt : affichera tous les fichiers commencant par t et finissant par .txt
ls tata[1-3].txt affichera tous les fichiers commencant par tata suivi du chiffre 1, 2 ou 3 puis finissant par .txt
ls t[a-i]* affichera tous les fichiers commencant par t, suivi d’une lettre entre a et i
bien sur on combien à l’infini : ls t[1-3]abc?zz.t?t est donc une commande recevable

WARNING : Unix est TOUJOURS « case sensitive ». a n’est pas égal à A.
WARNING : Contrairement a Windows, le remplacement des wildcards est traité directement par le shell, indépendamment du programme appelé. Le programme reçoit donc directement la liste des fichiers qui correspondent, même s’il s’attendait a recevoir une expression qui contenait ces caractères la.

ls T* et ls t* retourneront donc des résultats différents ! C’est une règle valable pour TOUTES les commandes.
INFO : TAB complète dans le shell quand c’est possible, sinon propose des possibilités.

Les amis (commandes) :

ls : liste les fichiers et répertoire

ls liste les fichiers du répertoire courant
ls -l la même chose en mode colonne.
ls -l –color colore les fichiers en fonction de leurs droits et types
-r : récursif

cat : équivalent de type sous windows

cat toto.txt, affiche le contenu de toto.txt
cat toto.txt titi.txt > tutu.txt, concatene toto et titi dans le fichier tutu.txt
cat toto.txt titi.txt >> tutu.txt, concatene toto et titi à la fin du fichier tutu.txt
cat * : affiche le contenu de tous les fichiers du répertoire courant. donc cat * > tutu.txt, copie tout dans tutu.txt

On peut aussi s’en service pour écrire dans un fichier :

cat > test.txt, redirigera donc l’entrée standard vers test.txt, on tape ce qu’on veut au clavier puis à la fin on tape CTRL+d ce qui interrompt la saisie et stock le contenu dans le fichier. Très pratique pour creer un fichier rapidement. Si on veut écrire à la fin d’un fichier existant : cat >> test.txt

cut : coupe ce que l’on récupère en fonction d’un délimiteur précis

imaginons que le fichier toto.txt contienne :
abc.def.ghi test 123
zzz.aaa:bbb_456

pour afficher uniquement un des blocs séparé par un des séparateurs (en l’occurence . ou  »  » ou _) : cat toto.txt | cut -f 1 -d « . »

donnera en sortie :
abc
zzz
-f c’est le champs (field) et -d le séparateur.

donc pour obtenir uniquement 456 :
cat toto.txt | cut -f 3 -d « _ » par contre la ligne « abc.def.ghi test 123″ ne contenant pas d’underscore, n’a pas de troisièmes champs… et seule une ligne vide sera affiché, mais on verra plus loin comment éviter ca.

grep : affiche la pattern recherchée parmis des fichiers ou un flux

ls -l | grep toto.txt ne retournera que les lignes avec toto.txt parmis tout le résultat du ls.

cat toto.txt | grep « henri » n’affichera que les lignes du fichier toto.txt qui contiennent « henri »

cat toto.txt | grep « henri » | grep -v « IV » n’affichera que les lignes du fichier toto.txt qui contiennent « henri » mais pas celle contenant « IV »

le -v exclue le mot qui suit.
l’option -r fait un grep récursif,
l’option -i ignore la case (plus de distinction majuscule/minuscules),
l’option -n  affiche egalement les numeros des lignes : grep -nri henri . | grep -v « IV »

sortira tous henri de tous les fichiers du répertoire courant et des sous répertoire, peut importe que ce soit henri ou HENRI ou HeNrI, sauf les ligne contenant également « IV ». Chaque ligne aura le nom du fichier, le numero de la ligne, ainsi que le contenu de la ligne en question.

les options -A et -B sont pratique, c’est After et Before.

donc grep -A 2 -B 3 henri toto.txt sortira toutes lignes avec henri mais aussi les 3 lignes précédentes et les 2 lignes suivantes.

find : trouve des fichiers à partir d’un chemin précis et permet d’executer une commande dessus

find a plein plein d’options, je n’en montrerai ici que deux qui sont classiques et utiles
find . -name « *.txt » -print : trouvera récursivement tous les fichiers avec l’extension .txt à partir du répertoire courant « . »
find . -name « *.txt » -exec rm ‘{}’ \;

bon celle là elle est un peu funky en terme de synthaxe, mais :

le {} désign la liste de ce qui a été retourné par find et le -exec y applique une commande. En l’occurence rm qui efface les fichiers.

donc cette ligne de commande trouvera à partir du répertoire courant et dans tous les sous répertoire les fichiers avec extensions .txt, et les effacera.

find . -exec grep -q www.nbs.fr ‘{}’ \; -print

Afficher tous les fichiers contenant www.nbs.fr.On pourra ensuite y appliquer un autre traitement, par exemple avec sed pour remplacer www.nbs.fr automatiquement par www.nbs-system.com.

Note, il existe aussi l’option -iname qui fait comme -name, mais sans tenir compte de la case des noms de fichier.

locate : trouve des fichiers à partir d’une DB générée la nuit

le système linux, en général, fait tourner régulièrement un programme qui met à jour le contenu d’une base stockant tous les fichiers de toutes les partitions.

l’avantage par rapport à find c’est qu’au lieu de chercher en live, on a un « cache » donc ca va beaucoup plus vite.

locate *.txt donnera la localisation de tous les fichiers .txt partout sur le système instantannément sans faire la recherche. Le défaut c’est que si vous avez un nouveau fichier depuis le dernier uptade de la base, il ne sera pas montré. Pour forcer l’update de la base en live : updatedb

Note: afin d’eviter certain probleme de droits sur la base, il est conseille de ne pas lancer updatedb a la main directement. Le script (emplacement sous debian) /etc/cron.daily/find le lance avec les bons arguments.

sort : permet de trier un flux

Trie les lignes…

cat dictionnaire.txt | sort > dictionnaire_trié.txt
cela va trier par ordre alphabétique le dictionnaire « dictionnaire.txt » et écrire le résultat dans dictionnaire_trié.txt
-r ca le fera à l’envers (reverse), la commande est simple mais elle a pas mal d’options différentes à apprécier :)

uniq : permet de rendre unique les données qui sorte d’un flux

Supprime des lignes identiques qui se suivent…

cat fichier_plein_de_doublon.txt | sort |
uniq > fichier_dédoublonné_et_classé.txt

si le fichier contient :
titi
titi
toto
tutu
tata
tutu

ca donnera :
tata
titi
toto
tutu

sed : permet de remplacer des strings par d’autres dans un flux ou des fichiers

sed est un couteau suisse du traitement des flux. Il est capable de faire énormément de choses. Nous allons voir une toute petite partie de sed, la partie la plus utilisée.
sed permet surtout de remplacer une chaine par une autre
sed s/www.nbs.fr/www.nbs-system.com/g index.html

Affiche le contenu de index.html en remplacant toute les occurrence de www.nbs.fr par www.nbs-system.com

La syntaxe de base est s/chaine d’origine/chaine a mettre/options ou :
-        Le s au debut signifie substitution
-        Le / qui separe les differentes partie peux etre en fait n’importe quel caractere. Il faut le prefixer d’un backslash (\) si on souhaite utiliser le caractere en question ailleur.
-        La chaine d’origine est en fait une regex, tout comme les recherches avec grep.
-        Les options peuvent contenir:

o       g – remplace toutes les occurrences sur une meme ligne.
o       i -Cela permet de faire une recherché de chaine sans tenir compte de la case
o       p – affiche la ligne s’il y a eu une substitution

On a un code dans lequel il y a des requetes SQL qui n’ont pas tenu compte de la case des noms de tables ou de champs (mysql sous windows a tendance a s’en foutre de la case) et on veux le faire passer sous unix.

Dans un premier temps, on affiche uniquement les lignes qui changent (option -n pour ne pas afficher par defaut, et le p de la substitution), de facon a verifier que cela ne fait pas de betises :

sed -n ‘s/MaJoLiE_tAbLe/majolie_table/igp’ fichier.php

Une fois que la substitution s’effectue correctement :

mv fichier.php fichier.php.old &&
sed ‘s/MaJoLiE_tAbLe/majolie_table/ig’ fichier.php.old > fichier.php

A noter que l’on a plus ni le -n, li le p, de façon a bien afficher tout le fichier d’origine.

Les regex, explications complete :

  • X                 un caractere de base correspond a lui-meme
  • .                 le point correspond a n’importe quel caractere (comme ? en shell)
  • ^                 S’il est place au debut correspond au debut de ligne.
  • $                 s’il est place en fin, correspond a la fin de ligne
  • [aoeuiA-Z]   Les classes de caracteres. N’importe quel caractere qui correspond (voyelle en misucule, ou une majuscule)
  • [^0-9]         un caractere qui n’est PAS un chiffre
  • [0-9]*         * correspond a 0-n fois ce qui precede. Ici, rien ou une suite de chiffres.
  • S\?              \? Correspond a 0 ou une fois ce qui precede. Ici, rien ou un S.
  • \(abc\)        Les \(…\) permettent simplement de faire un groupe.

Par exemple : \(ta\)\* correspond a rien, ou une suite de ta.
-        X\|Y            correspondra X ou Y. Attention, il faut utiliser des () pour limiter l’etendu.

Dans la chaine de remplacement, le caractere & sera remplace par l’ensemble de la chaine d’origine (pratique pour la conserver, mais la commenter). D’autre part, \n ou n est un chiffre sera remplace par le texte correspondant au neme groupe (les parentheses).

Des exemples concrets :

Afficher toute les lignes commençant par une lettre minuscule
grep ‘^[a-z]‘
Ajouter un premier argument a toute les appels d’une fonction : sed ‘s/ma fonction(/&1, /g’

Commenter tous les appels a la fonction prettylog (ne doit pas avoir de () dans les arguments:
sed ‘s#prettylog([^()]*)#/* & */#g’

remplacer les fonction log_database(, log_engine( par log(« database »,  ou log(« engine », :
sed ‘s/log_\(database\|engine\)(/log(« \1″, /g’

Bien evidement, on reste dans l’optique du : sed ‘s/…/…/g’ fichier1 > fichier2

tail : permet de voir la fin d’un fichier

tail toto.txt, affiche (par défaut) les 10 dernières lignes du fichier toto.txt

si vous avez à faire à un fichier qui change et qui grossit (genre fichier de log) et que vous voulez le suivre en continu :

tail -f toto.log : la commande ne s’arretera pas et continuera à vous montrer le fichier au fur et à mesure qu’il grossit.

head : permet de voir le début d’un fichier

comme tail mais pour montrer les lignes du début du fichier. (pas la peine d’essayer head -f)

chmod : permet de changer les droits d’un fichier ou répertoire

les droits sont cumulables, il existe read, write, execute. On va simplifier tout ca, mais il existe trois groupes à qui appliquer ces droits : le propriétaire du fichier, le groupe du fichier (généralement le groupe auquel appartient le propriétaire du fichier (voir chown)) et le propriétaire du fichier en lui même.

read vaut 4
write vaut 2
execute vaut 1

  • chmod 400 toto.txt donne les droits en lecture à root. chmod 444 toto.txt donne les droits en lecture à tout le monde.
  • chmod 555 c’est chmod 444 + chmod 111 soit les droits en lecture et en éxecution à tout le monde.
  • chmod 777 c’est lecture, écriture, exécution à tout le monde. (4+2+1 pour le propriétaire, le groupe et les autres).
  • chmod 000 enlève tous les droits à un fichier (notez que root bypass de toute façon ces droits)

Droits généralement utilisé :

600 – fichier normal, en lecture/ecriture uniquement pour son proprietaire
644 – pareil, et lecture pour les autres
700 – executable, en lecture/ecriture/execution uniquement pour son proprietaire
755 – pareil, et lecture/execution pour les autres

Note : un repertoire doit etre executable pour pouvoir aller dedans

Les droits peuvent egalement etre donner sous forme de modifications.

u – user
g – group
o – other
a – all

r – read
w – write
x – execute
X – execute si déjà present quelque part

chmod u+rw,go-w+rX

Ajoute les droits de lecture ecriture au proprietaire, enleve les droits d’ecriture au groupe et aux autres, leur donne le droit de lecture, ainsi que le droit d’execution si c’est un executable.

chown : permet de changer le proriétaire d’un fichier ou répertoire

Pour changer le proprietaire d’un fichier, il est necessaire d’etre root.

chown philippe:www-data toto.txt donne la propriété du fichier à philippe et l’affilie au groupe www-data.
chown xxx:yyy fichiers : xxx = user, yyy = groupe.

Donc si je veux donner la propriété et les droits à philippe et à tous les membres du groupe admin :
chown philippe:admin toto.txt

et avec un chmod 640 toto.txt je donne tous les droits de lecture/ecriture à philippe, la lecture au groupe admin, et aucun droits aux autres.

WARNING : un fichier en 777 est dangereux, tout le monde peut y écrire, a éviter en Web.
le truc classique en web qui passe (presque) dans tous les cas :
chown -R www-data.www-data *
chmod -R go-w+rX *

le -R dans ces commandes les rends récursives sur tous les fichiers et sous répertoires.

touch

touch crée un fichier vide s’il n’exite pas et change la date / heure à l’heure actuel si il existe.
touch toto.txt crée un fichier de toto.txt de 0 octets s’il n’existe pas et lui donne date/heure
au moment auquel commande est lancé s’il existe. Il existe d’autres options pour fixer une
date/heure précise entre autre.

mv / rm :

mv : c’est move.
mv toto.txt titi.txt renome toto.txt en titi.txt (attention, l’écrase s’il existe)

Note : mv permet egalement de renomer un repertoire, ou de deplacer plusieurs fichiers/repertoire vers un repertoire de destination.

rm toto.txt : efface le fichier toto.txt.
rm -r le fait récursivement. rm -f force l’effacement sans poser de question…

comme dans la plupart des commandes, on peut cumuler les switchs :

rm -rf * : efface récursivement tous les fichiers et répertoires situé sous le répertoire courant sans poser de question.

WARNING : guess why…

Lorsque vous utilisez mv ou rm de facon interactive, et que vous n’etes pas certain a 200% de votre ligne de commande (par exemple si c’est un via des variables, ou de l’expansion, …), utilisez l’options -i. Elle vous demandera confirmation avant d’écraser de façon irrémédiable des informations.

less / more :

Comme le dit régulièrement notre directeur technique, less can more. Donc less peut faire tout ce que fait more et plus.

Techniquement c’est bien aussi de connaitre more qui est en général plus utilisé dans les scripts ou les unix plus anciens (la ou il n’y a pas less)

less toto.txt va afficher le contenu (si il est en ascii, sinon en binaire il met un warning) du fichier toto.txt et bien sur ca se pipe :

grep henri toto.txt | less

pendant l’execution de more ou less vous pouvez appuyez sur / vous allez pouvoir rechercher dans le texte le mot qui vous intéresse.

echo :

echo affiche ce qui est en paramètre. echo est utile pour signaler quelque chose à l’utilisateur dans un script par exemple

(echo « Hello World »). echo peut aussi afficher le contenu d’une variable par exemple : echo $a ou encore se substituer à un ls en faisant echo * ou même à écrire dans un fichier echo YO > toto.txt.

la commande accepte beaucoup de switch, voir le manuel. (man echo)

man : les manuels des commandes

man ls
man awk (il fait mal à la tête celui la)

etc…

souvent sont aussi donné des références à d’autre man en pied de page du man.

par ailleurs man -k keyword recherche les pages de manuel qui parle de « keyword ».

Il existe plusieurs catégorie de man (1 à 8) de mémoire qui sont plus ou moins spécialisés. Généralement les commandes sont en man 1 (ce qui est le mode par défaut).

si vous voulez le man plus orienté programmation C d’une chose précise : man 3 sigpause man 2 c’est plus orienté sur les syscall. Bref vous c’est plutot le 1 donc man [commande].

Par défaut man vous affiche son contenu avec un pager (less), pendant l’exécution de man, vous pouvez donc appuyez sur / vous allez pouvoir rechercher dans le texte le mot qui vous intéresse également.

sudo / su : des commandes qui permettent de passer ou de lancer des commande en tant que Super Utilisateur (root quoi)

Arreter apache… : sudo apachectl stop

va prendre les droits root temporairement pour stopper apache, si vous êtes habitilité par le fichier sudoers à la lancer cette commande.

si c’est le cas, il vous suffit de retaper le mot de passe de votre utilisateurs sur le système pour lancer la commande.
su : permet de passer root en tapant le mot de passe du compte root de la machine.
sudo -s : permet de passer root, sans connaitre le mot de passe de root, si on y est autorisé par le fichier sudoers.

WARNING : root à TOUS les droits sans aucune limite de portée. Si vous demander au système d’écrire de la merde dans la ram, il le fera sans broncher, tout comme si vous lui demander de s’effacer lui même.

wc : compte les caractères, lignes ou les mots

wc -l toto.txt compte le nombre de ligne du fichier toto.txt
cat toto.txt | wc -l ca revient au même.
-m ou -c pour les charactères
-w pour les mots

awk : permet d’appliquer un traitement avancé de formatage à un flux ou d’un fichier

awk est un langage avec un synthaxe à part entière, pas simple de surcroit. C’est très puissant et très pénible. Personnellement je m’en sers que pour une chose, reformater une sortie standard.

Pour l’exemple, un fichier contenant :

tcpmux         1/tcp # TCP port service multiplexer
echo           7/tcp
echo           7/udp

les séparateurs de colonnes sont des tabulations (il y en a 2)… La joie…

Je veux afficher la colonne 1 et la colonne 3 en admettant que mes séparateurs sont des tabulations :

cat toto.txt | awk -F « \t » ‘{ print $1 $3 }’

le -F « \t » c’est pour dire que tabulation est le séparateur de champs. print $1 $3 affiche la premiere valeur et la 3°, selon ce séparateur.

bon le résultat est que j’ai :
tcpmux1/tcp
echo7/tcp
echo7/udp

si je veux y ajouter des espaces pour rendre ca lisible :

cat toto.txt | awk -F « \t » ‘{ print $1 «       » $3 }’

Évidemment, ca peut se séparer selon un autre séparateur, par exemple le « / » :

cat toto.txt | awk -F « / » ‘{ print $1 «      » $2 }’

retour de la commande :

tcpmux         1    tcp    # TCP port service multiplexer
echo           7    tcp
echo           7    udp

il a enlevé le séparateur au passage et l’a remplacé par 4 espaces.

Pour le moment c’est flou mais le jour où vous en aurez besoin, awk vous sauvera la vie ;-)

Dans le doute, man [nom de la commande]. Tous les admins lisent les mans, meme les SR/CQ expérimentés. Ca sert à rien de connaitre par coeur tous les switchs (options) d’une commande, le man est donc une référence régulièrement utilisée par tous.

Bash – gestion des commandes :

& : laisse un processus s’executer en tache de fond, et vous permet de continuer a travailler sur le shell

Genre find ca peut être long, donc mettre un find qui redirige son résultat dans un fichier et le laisser en tache de fond c’est parfois une bonne idée :

find /var/www -name ‘*.php’ > ~/find.log 2> ~/find.err &
fg / bg : met un processus en foreground (fg) ou background (bg).
fg %n : n étant le numéro du job si vous avez mis plusieurs jobs en background.
jobs : liste les jobs (en background ou suspendu)

Lorsque vous etes en train d’executer une commande, Contrôle-Z la suspend.
Foreground – repasse une commande suspendu ou en background au premier plan
Background – pareil que de l’avoir lancee avec &, la tache continue en fond.

ps aux : liste tous les processus

Une commande a un code de sortie. Ce code est presque toujours correspondant a la facon dont le processus c’est termine. Si ca c’est bien passé c’est 0 sinon c’est autre chose.

&& : permet de linker deux commandes, et de n’exécuter la deuxième que si la première a échouée.

rm toto.txt && echo « ok fichier effacé »

« ok fichier effacé » s’affichera que si le fichier toto.txt a été effacé.

|| : Inversement, ||  permet de n’executer la deuxieme partie que si la premiere n’a pas fonctionner.

rm toto.txt || echo « Erreur lors de la supression du fichier »

; : le point virgule est un délimiteur permettant d’enchainer les commandes mais sans vérifier que le retour de la précédente s’est bien passé. ls *; echo titi > toto.txt; cat toto.txt enchaine les 3 commandes.

export : plusieurs fonction, mais on va surtout utiliser export pour exporter une variable. (La rendre visible pour des programmes que vous lanceriez apres)

export a= »toto » (stock toto dans a, et exporte a)
ou export a=’ls’   (stock le retour stdout de la commande ls dans a et exporte a)

‘commande’ : c’est la quote (‘) inverse (alt-gr 7 sur un azerty, la touche au dessus de tab sur un qwerty). backquoté une commande ou expression force son évaluation, et utilise sa sortie standard a l’endroit de la commande.

a=ls stock ls dans a. Si on veut stocker le résultat d’une commande ls dans a :
a=’ls’

Quoting

\ : n’interprête pas le caractère suivant le backslash. utile pour plein de truc.

exemple : « cd mon truc » ne marche pas. Il faut taper « cd mon\ truc » pour que l’espace entre mon et truc ne soit pas perçu par la commande comme étant deux paramètre distincts.

Il est également possible d’utiliser, de façon complètement équivalente :

cd mon\ truc
cd mon » « truc
cd « mon truc »
cd ‘mon truc’
cd mon’ truc’ »

«  : double quotes. Entre double quotes, il n’y a pas de separation de mot, les variables ($a), double quotes, backquotes et backslash sont interprété. A utiliser de facon generale lorsque l’on utilise des variables, et que l’on ne veux pas avoir de separation de mot, ou de risque d’expansion. Essayez les commandes suivantes :

a=*
echo $a
echo « $a »

‘ : simple quotes. Entre simple quotes RIEN n’est interprete. Un autre simple quote met fin a la sequence sequence. Il n’y a AUCUN moyen de backslashe un simple quote dedans. Tres pratique quand on veux une chaine avec plein de double quotes, $ et autre qui reste exactement tel quel.

for : super important. Un exemple concret vaut mieux qu’un long discour. Je veux appliquer un traitement à tous les fichiers .txt du répertoire courant pour les renommer en .old :

for i in *.txt ; do mv -i « $i » « $i.old » ; done

on prend une variable i pour faire une boucle sur les mots que represente * (l’ensemble des fichiers du repertoire), ensuite on applique (do) avec $i qui est en fait une des valeurs de *, et on finit par done.

TRESSSS pratique…

Autre cas, d’utilisation : for ((i=0 ; i < 10 ; ++i)) ; { echo $i ; }

Affiche les chiffres.

Generalites

/etc/init.d/ :

c’est ici qu’on stock les scripts lançant ou stoppant les démons du système.

Par exemple sur apache :
/etc/init.d/apache start
/etc/init.d/apache stop
/etc/init.d/apache restart

pareil pour mysql et plein d’autres démons, la plupart accept stop, start, restart.

généralités :

–help donne de l’aide sur une commande
-v : en général rend la commande « verbose » (affiche plus d’info sur son execution)
-q : en général rend la commande quiet

C’est quasi toujours vrai pour –help pour -v et -q c’est fréquent mais pas systématique.

faire un script :

un script bash commence toujours par (sur sa premiere ligne) :

#! /bin/bash

C’est ce qui permet au système de savoir qu’il faut utiliser bash pour interpreter ce script.

un script de base :

cat > script_de_base.sh (on met « .sh » à la fin en général pour savoir que c’est un script bash mais c’est pas obligatoire)

#!/bin/bash

echo $1

(Contrôle-D pour finir)

ensuite on le rend exécutable: chmod +x script_de_base.sh
puis pour le lancer : ./script_de_base.sh toto

vous noterez le « ./ » au début c’est pour signaler qu’on lance le fichier depuis le répertoire courant « . » puisque, par sécurité, le répertoire courant n’est pas intégré à la variable PATH.

ca affichera $1 qui vaut en l’occurrence toto puisque $1 $2 $3 $4 etc… sont les paramètres dans l’ordre sur la ligne de commande, $0 étant le nom du programme en lui même, ici : ./script_de_base.sh

pour se faciliter la vie on met en général le path standard des binaires utiles dans le début du script :

PATH=/bin:/usr/bin:/sbin:/usr/sbin

et puis un commentaire sur ce qu’il fait le machin, c’est mieux pour les copains et les lendemains de cuites.

Quelques exemple de synthaxes un peu évoluées et utiles :

grep die *.php | grep -v « // » | grep -v « /\* » | grep -v « \*/ »

ca devrait vous retourner le nom des fichier php, avec le contenu après un : qui contienne un die mais qui n’est pas commenté (sur la ligne elle-meme).

si vous voulez tous les effacer :

Pour ne garder que les fichiers qui correspondent

grep die *.php | grep -v « // » | grep -v « /* » | grep -v « */ » |
cut -f 1 -d « : »

donc si on assigne le contenu de cette commande à une variable et qu’on fait une boucle dessus :

a=’grep die *.php | grep die | grep -v « // » | grep -v « /* » | grep -v « */ » |
cut -f 1 -d « : »‘

On commence par verifier qu’on a le bon resultat escompter avec un echo, histoire de ne pas effacer n’importe quoi : for i in $a; do echo $i; done

une fois que c’est bon : for i in $a; do rm -f $i; done

sinon ca passait bien aussi avec un find :-)

Allez, une autre, on reformat un CSV :

le contenu original du fichier ORIGINAL.CSV :

toto:1:2222:toto is a star:20
titi:2:2222:bruno en str:4
tititt:2:2222:bruno en str:4
tutu:3:1122:denis b:8
tata:4:1112:thibault loves printers:12
tata2:4:1112:thibault loves printers:12
tata42:4:1112:thibault loves printers:12

on veut le sortir avec des séparateur qui soit des ; et pas des : et seuls les champs 1 et 5 nous intéressent et seul les tata* et titi* nous sont utiles :

Avec awk :
cat ORIGINAL.CSV | awk -F « : » ‘{ print $1 « ; »  $5 }’ | grep t[ai]t[ai] > FINAL.CSV

Pareil, mais avec cut :
cat ORIGINAL.CSV | cut -d: -f 1,5 –output-delimiter « ; » | grep t[ai]t[ai] > FINAL.CSV

Redémarrer apache et mysql en une ligne en ignorant l’affichage normal et d’erreur (pas conseillé), mais au moins en ne démarrant mysql que si apache s’est bien lancé :

{ /etc/init.d/apache restart && /etc/init.d/mysql restart ; } > /dev/null 2>&1

écrit par Philippe Humeau \\ tags: ,

juin 03

Pourquoi un site de E-commerce se doit de charger en moins d’1,5 seconde ?

Tout simplement parce que Google possède plus de 90% de part de marché et que ses dirigeants ont décidé d’inclure la vitesse de chargement parmi plus de 200 facteurs pris en compte dans le référencement naturel.

Certes, ce nouveau facteur ne sera pas plus important que la pertinence du contenu, mais il va petit à petit monter en puissance.

Cette transformation est logique, nos environnements de travail et personnels sont de plus en plus connectés, toutes les générations travaillent maintenant sur Internet, pourquoi devrions nous attendre, dans une société où l’instantané à pris le pouvoir ?

Depuis que l’homme est équipé de pouces opposables, d’une connexion ADSL et d’une culture Internet, il est impatient.

Pourquoi cette limite d’1,5 seconde ?

Quand votre site charge en moins de 1,5 seconde, il est plus rapide que 90% des autres sites actuellement connus de Google. Il est donc difficile à ce jour d’infliger une lourde pénalité à ceux chargeant en plus d’une seconde et demi.

Par contre, si vos pages charge en moins d’1,5 seconde, il peut vous favoriser, de la même façon que si votre site est très propre en terme de HTML ou bien conçu en terme de mots clefs. A l’avenir, ce facteur va se renforcer puisque les sites vont en tenir compte et charger plus vite.

1,5 seconde, c’est le temps que Google a choisi comme référence.

Dans les graphiques mis à disposition par Google, la délimitation est claire :

graph_temps_google
À moins d’1,5 seconde, vous êtes dans la zone verte, vous êtes rapide. Au-dessus d’1,5 seconde, vous êtes dans l’équipe rouge, vous êtes lent. Nous vous y trompez pas, aucun mot, aucun chiffre chez Google n’est utilisé par hasard. Le temps d’1,5 seconde découle de plusieurs études précises, parmi lesquelles nous pouvons déjà citer celle-ci ou celle-ci.

Et quand le mot « Lent » est choisi par Google, il a un sens fort.

Que perd-on précisément ?

De très nombreuses autres  études ont été menées et elles sont toutes formelles, être lent, c’est vendre moins, décourager l’utilisateur, freiner son business.

Les études donnent parfois des résultats différents. Certaines annoncent 2,8% de perte de chiffre d’affaire pour 1 seconde de plus de chargement, -4,3% de CA pour 2 secondes.

Amazon avait déjà fait le constat auparavant : 0,1s de plus de temps de chargement en plus leur coutait 1% de chiffre d’affaire.

Eric Schuman (Microsoft) et Jake Brutlag (Google), ont réalisé une étude et fait une conférence à ce sujet également. Il en ressort le même principe de fond mais certaines subtilités supplémentaires apparaissent. Entre une page qui charge en 50 ms et un autre en 2 secondes, le revenu par clic baisse de 4,3%, la satisfaction baisse de 3,8% et le temps avant le clic suivant augmente de 3,1s.

business & chute

Les dirigeants de Google ont d’ailleurs la volonté   exprimée de faire passer l’internaute de la page   de recherche au site de destination de la manière  la plus fluide possible. Le chargement, le  changement de monde, doit être le plus  imperceptible possible, « comme si l’on  tournait la page d’un livre ».

La publicité en ligne (SEM) et notamment les adwords sont également moins efficaces lorsque le site est lent, comme vous pouvez le lire dans l’aide de Google ici.

Phil Dixon de Shopzilla a pour sa part constaté, en passant le temps de chargement de son site de 7s à 2s :

  • 25% de pages vues en plus
  • 7 à 12% de ventes en plus

A l’inverse, quand le temps augmente, l’image de marque se dégrade elle aussi car les utilisateurs se plaignent et parlent entre eux, d’autant plus depuis l’avènement des réseaux sociaux.

Pourquoi ces pertes ?

Le cerveau humain a plusieurs « rythmes ».

cerveau

  • De un à cinq dixième(s) seconde : C’est la limite à laquelle nous estimons inconsciemment avoir une action immédiate sur ce que l’on manipule. Word, MacOS ou Windows ou encore l’interface d’un téléphone doivent réagir dans cette zone pour être apprécié. Le cerveau interprète, commande, reçoit, comme si l’outil utilisé était un prolongement du corps qu’il contrôle directement.
  • De cinq dixièmes à 1 seconde : La perception se modifie, nous n’avons plus l’impression de contrôler « directement ». Le cerveau assimile l’information et n’a plus l’illusion de pouvoir contrôler l’interface comme il contrôlerait un membre du corps.
  • De 1 à 5 secondes : C’est le temps habituel de chargement des sites. L’internaute l’accepte en générale relativement bien. Si un chargement doit durer plus de 5 secondes, il est intéressant d’occuper l’espace visuel de l’internaute pour garder son attention (une petite hélice, une barre de chargement, un pourcentage). Garder l’attention plus de 10 secondes sans occuper un des sens est illusoire.
  • À partir de 10 secondes : Le cerveau n’attend plus la réponse et vagabonde. Le site visité n’a plus l’exclusivité de l’attention de l’internaute. Celui-ci se demande s’il ne va pas aller sur un autre site concurrent, s’il a payé ses impôts, si le webmaster lui envoie les pages par la poste ou à dos de hamster, bref, la vente ne se fera probablement pas.

L’âge de l’internaute et sa culture internet changent la donne.

Les adolescents qui n’ont jamais réellement connus l’attente avant d’avoir un résultat, tout au moins sur l’informatique. Le temps à laquelle la réponse est reçue, après que la demande ait été envoyé, est d’une importance colossale mais il doit être d’autant plus réduit que le potentiel acheteur est jeune.

Une grand mère attendra 20 secondes la page Web du site avec les gentils dauphins pour réserver ses vacances. Hugo, du haut de ses douze ans, au delà de la deuxième seconde, il se demande si les pages du site lui sont acheminé par pigeons voyageurs ou à dos de hamster.

Comment mesurer le temps de chargement ?

Vous pouvez mesurer la rapidité de chargement de votre site avec ces deux extensions Firefox :

Ou avec ce site

Il est également possible de suivre l’évolution de la vitesse de chargement de son site dans les outils Google appelé « Webmaster tools ». Si vous n’avez pas de compte, créez en un et si vous en possédez déjà un, allez dans l’onglet Labo puis dans « Performances du site ».

Pourquoi les sites ne chargent pas plus vite ?

Avec le matériel toujours plus puissant et les connexions toujours plus rapides, la question se pose en effet.

Les sites qui ont vus le jour il y a dix ou quinze ans chargeraient très rapidement aujourd’hui, bien plus rapidement qu’à l’époque. Les connexions vont plus vite, nous sommes passés à l’ADSL du coté de clients et aux connexions très haut débit du côté des serveurs.

Alors avec de tels progrès, pourquoi un site prend-t-il toujours 4 à 20 secondes pour charger ?

Les machines ont évolué des deux coté également. Les ordinateurs sont plus puissants et les serveurs ont vus leurs capacités de traitement multiplié par plus de 1000. Par contre, la vitesse de la lumière n’a pas progressé. Elle met toujours plusieurs dizaines de milliseconde à traverser l’atlantique, de même, les connexions internet ont aussi une limite de progrès, tout comme les protocoles qui soutiennent internet. Tous ces facteurs font que l’ensemble a progressé de manière non homogène.

Un serveur 1000 fois plus rapide de nos jours est également 100 fois plus sollicité qu’avant. 3000 visites par jours il y a 15 ans, c’était un « grand site », aujourd’hui, c’est un trafic modeste.

Composition du temps de chargement d’une page

Le temps de chargement d’une page est composé de plusieurs facteurs :

  • L’initialisation de la connexion et la résolution du nom de domaine
  • Le temps d’interprétation des scripts php / asp
  • Le temps de chargement des éléments par le réseau
  • La recherche des informations en bases de données
  • Le formatage d’une sortie en HTML
  • Le délai d’interprétation et d’affichage du navigateur

C’est un résumé puisque le temps est en fait découpé en plus de sous sections mais nous entrerions dans trop de détails.

Il y a quelques années, j’avais proposé le schéma suivant, résumé lui aussi :

latence-2

Les performances des connexions et du matériel ont donc évolué mais au final, les programmes aussi. Les sites web modernes n’ont plus rien à voir avec ceux d’il y a quinze ans et ils ont apportés une souplesse sans égale au E-commerçant.

Gestion de catalogue avancée, page dynamique et agréable à regarder, outils d’administration poussés, les sites modernes sont définitivement plus efficaces. Cette efficacité a été apportée, notamment, par des langages de programmation plus évolués dont PHP et par l’usage de base de données, dont Mysql.

De plus les langages ont évolué vers de l’objet ce qui les a aidé à devenir plus flexibles et efficaces mais en contrepartie, toutes ces améliorations ont un coût en terme de performances.

Ces complexités et améliorations fonctionnelles additionnées nécessitent donc plus de puissance. Les graphismes et photos plus lourds ont, eux, demandé plus de vélocité à nos connexions.

Il faut également prendre en compte que la qualité du code source généré est inégale. Deux sociétés peuvent réaliser le même site et l’un sera optimisé tandis que l’autre sera lent, c’est une question de capacité technique et d’expérience. De la même façon tous les sites ne sont pas à égalité devant le temps de chargement, de part leur conception ou même leur usage.

Sur un site comme Amazon, 90% du surf se fait depuis  le moteur de recherche et il se doit d’être rapide sur ce point. Sur un autre site ce sera la « vitrine » virtuelle et son agencement qui déclencheront les ventes et ces deux approchent n’ont pas le même coût en terme de temps de chargement.

La technologie également joue énormément et enfin la capacité de l’infogérant à optimiser votre infrastructure et son usage.

La vitesse n’est pas tout

La disponibilité du site et la réactivité de l’infogérant en cas de soucis sont également des facteurs majeurs de succès.

Bien que l’ingénierie informatique et la programmation Web ne soient plus des secrets maîtrisés par un très petit nombre, les sites sont devenus de plus en plus complexes et les accidents peuvent arriver.

Sur un serveur, un disque dur, une barrette mémoire ou un autre élément technique peut céder. Du côté du site web, un élément logiciel peu avoir un défaut ou engendrer une erreur. Dans les deux cas, un internaute peut accepter un court délai d’indisponibilité mais ceci ne doit pas se prolonger.

Une interruption de plusieurs heures pendant les soldes peut être problématique, les ventes de fin d’année ou une animation commerciale. La perte de chiffre d’affaire et d’image de marque peut devenir très sensible.

Un infogérant spécialisé dans le E-commerce et une Web Agency sont des alliés précieux dans l’exploitation d’un site commerçant.

En conclusion

La rapidité de chargement joue donc 3 fois :

  • sur l’expérience utilisateur
  • sur le référencement naturel
  • sur l’efficacité de la SEM (mots clefs sponsorisé dans les moteurs de recherches)
  • sur le chiffre d’affaire généré

Il est donc clair que ce facteur est critique pour un site de E-commerce.

Philippe Humeau, NBS System, hébergement et sécurité du E-commerce.

écrit par Philippe Humeau \\ tags: , , , , ,

mar 22

Voici le compte rendu de la réunion du CAB (Community Advisory Board) de ce jour.

Nouvelles sur le Community Advisory Board

En premier lieu, on a plutôt parlé du CAB en lui même. Un portail sera fait pour présenter les membres du CAB, ce qu’ils font pour la communauté et comment les joindre. C’est en cour de création et ce portail devrait sortir d’ici quelques semaines.

Site de Varien

Le site de Varien a été victime d’un Botnet qui a ralentit encore plus les temps de réponse du site qui n’est déjà pas connu pour sa vélocité. Le site déjà seul faisait dans les 300 requêtes SQL pour une connexion, ca a été corrigé et il est en cour d’optimisation. De plus des captcha ont été mis en place sur les formes qui ont été victimes des spams. Bref, sale temps pour le site, ca vient avec la popularité visiblement.

Le site devrait donc être plus rapide prochainement.

Un agrégateur de Blogs et de Forums

Varien (qui s’appelle maintenant Magento Inc, il va falloir s’y faire), Magento Inc donc se prépare à lancer un agrégateur de Blogs. Celui-ci lira les RSS des différents Blogs & Forums pour aider à retrouver l’ensemble des posts au même endroits.

L’idée parait sexy en tout cas et ca fera une belle bade de connaissances.

Des snapshots toutes les semaines

Maintenant, des releases régulières de Magento seront mises à disposition sur le SVN, avec les releases notes !
Ça aide :)

Des évènements communautaires aux US

En fait la France et l’Allemagne sont des pays assez à part dans le monde pour Magento car nous sommes les deux seules communautés à avoir créer un évènement spécial pour Magento.

Varien souhaite faire la même chose aux US pour animer sa communauté locale. En Europe, pour l’Angleterre

Les méritants iront aux US !!!

Les gens qui s’impliquent dans Magento et qui contribuent seront peut être invités aux US pour aller à Los Angeles. Varien a décidé de faire une élection des personnes qui fournissent une aide continue à Magento et les veinards seront invités dans les locaux de Los Angeles.

Community Roadmap

La roadmap de la communauté nous sera dévoilée prochainement par Yoav qui n’a pas pu venir au CAB meeting de ce jour mais qui nous donnera le nécessaire prochainement.

La levé de fond

Magento est maintenant prêt à se lancer à grande échelle avec ses 22,5 M$. Je me suis permis de demandé à Koby les grandes directions qui seraient prises par Magento, les voici :

- SAAS : Le Software As A Service est une direction de fond. Varien étudie sa future architecture et travaille sur le déploiement automatisé et la customization. C’est LE grand pas majeur, ca va être difficile pour ceux qui lançaient cela de leur coté ou qui ont des solutions déjà, comme powerboutique.

- Magento Light Edition : ca se confirme, une solution intermédiaire entre la CE et la EE va voir le jour.

- Magento connect et la communauté : Une partie des fonds ira aussi au développement de Magento Connect et de la communauté, ce qui est le plus important.

- Mobile : Deuxième axe majeur de développement, le E-commerce mobile. C’est une voie majeure et Varien s’y jette en force, avec des moyens.

Roy annoncera un lancement de Produit / Service during Bargento 4 !
Ca sera une grosse nouveauté en tout cas.

Voici le planning des prochaines réunions du CAB

  • 22/03/2010
  • 19/04/2010
  • 17/05/2010
  • 21/06/2010
  • 19/07/2010
  • 23/08/2010
  • 20/09/2010
  • 18/10/2010
  • 22/11/2010
  • 20/12/2010

écrit par Philippe Humeau \\ tags: , ,

mar 02

Les apérogentos, ca prend !!!

L’apérogento, un concept qui fait des  petits. En gros, Bargento, c’est le gros rendez-vous, bi ou tri-annuel, plusieurs centaines de personnes (~500 au prochain), très business mine de rien. Mais il y a de la place en région pour que les acteurs des tissus locaux se rencontre et discutent entre eux.

Apérogento c’est en région, « c’est arrivé prêt de chez vous », avec des passionnés, en format plus court, plus léger et des petits groupes. Pour stimuler tout cela, Wikigento, Bargento et Fragento se proposent d’aider les bonnes volontés à créer des Apérogento.

Attention cependant, coder du Magento à 2 grammes, ca ne marche pas forcément, il suffit de voir ce dessin sur le « Balmer Peak Effect » de XKCD.

xkcd

Mais dans le principe, c’est bonne ambiance et bon enfant, on commence avec un accroc : Nico !

Nicolas Trossat pour Toulon :) nous dit :

La communauté autour de Magento ne cesse de grandir, et il semble intéressant de pouvoir mettre en place des réunions plus locales et informelles que les Bargento, qui vont croissants mais qui sont Européens et Parisiens.

Je vais donc essayer de mettre en place un format pour réunir les acteurs de Magento en région PACA : e-commerçant, prestataires, freelance, designer, curieux, et accessoirement quelques alcooliques pour mettre un peu d’ambiance…

L’idée de ce billet serait d’abord de définir un format en fonction des motivés et des intérêts des uns et des autres. En fonction du nombre de personne, nous pourrons soit organisé une soirée informelle à Marseille ou Toulon, soit faire des apéro plus petit dans chaque ville (Aix, Marseille, Toulon, Nice) avec l’avantage que c’est proche pour tout le monde.

Je peux proposer également de mettre en place une formule plus complète, à l’image du Cirvad (www.cirvad.com) dont j’ai fait partie un temps (Alain, ca ne te choque pas si je reprends un peu du concept? ) :

L’idée est toujours de voir d’autres personnes et de se faire une bonne bouffe, mais avant, on bosse 2h en atelier! Le but est de partager les expériences des uns et des autres autour d’une thématique défini à l’avance. Ca peut être de partager des retours autour de l’emailing, de l’utilisation d’un module Magento, du 3DS, etc… bref, au lieu de juste boire un verre, on travail 2h ensemble pour mieux se connaitre et améliorer nos connaissances.

Si ce format plait, je propose de l’organiser dans le coin de St maximin/Brignoles. L’avantage est que c’est centrale: Aix->35min, Toulon->45min, Marseille->50min, Nice->1h10min. Ca peut être fait en journée ou le soir selon les préférences… L’autre avantage est que c’est là ou j’habite, et pour une fois, c’est pas moi qui bougerait

Bref, vous pouvez laisser un post ici pour me donner votre avis/disponibilité, ou m’envoyer un mail a nicolas.trossat -a- boutik-circus.fr

Jean François Galano pour Lyon

Si vous avez la volonté d’aider Jean François à organiser un évènement Lyonnais, je tiens à votre disposition les coordonnées de Jean François mais il est motivé pour organiser un apérogento en région Lyonnaise.

Vous pouvez déjà le contacter à : jf.galano[at]muira-conseil.com

Pour Lille, Strasbourg et Nantes et Toulouse ?

You know who you are.

You can do it !

Pour Strasbourg et Lille, Quadra informatique pourrait peut être y aller ? Nantes, Napta ou Altran ? Lille on a Insitaction aussi qui pourrait participer ? Que toutes les bonnes volontés se manifestent, on va vous aider !

écrit par Philippe Humeau

fév 23

Alors me voila de retour sur Paris, après une semaine de mauvais temps dans un pays où la dernière fois où il a plu devait être en 1912… Du coup, je me remet en jambes avec quelques news du milieu Magento :

Sortie de la 1.4 CE

Bon, finalement c’est fait, la 1.4 de Magento est sortie. Vous pouvez la trouver ici et un compte rendu complet des nouveautés ici sur Fragento.

Donc après plusieurs mois d’absence, on va enfin pouvoir tester la bête en terme de performances et de sécurité. Je suis en tout cas rassuré que Varien n’ait pas mis de coté la CE plus longtemps car cela devenait politiquement problématique.

Bargento en régions = Apérogento ?

Gabriel et moi travaillons étroitement avec SeL et Varien à l’animation de la communauté Magento en France mais nous n’avons pas le temps de tout suivre ou de tout faire. J’ai appris avec surprise et joie que de nombreux évènements s’organisaient en région, des apérogentos notamment et je trouve cela super.

Vu de Paris, on ne peut pas beaucoup aider à cela me disais-je mais finalement j’ai revu mon jugement. Déjà, apéro ou autres horaires, on peut éventuellement passer faire un bonjour, ca nous fera plaisir, même si ca n’aide en rien les organisateurs :)

Par contre, on peut fournir un peu de logistique aux organisateurs ! De la visibilité en annonçant ca sur Wikigento, Bargento (et probablement Fragento même si je n’en ai pas encore parlé à Gabriel) voir même en faisant poster par Varien un billet avec un espèce d’agenda sur le blog FR.

Ensuite, j’ai des bases de données  assez complète de la sphère Magento en France, ca pourrait permettre de faire un petit mailing pour les organisateurs pour pousser la chose.

Bref, si vous voulez faire un Apérogento en région, comme à Lille, Toulouse et Lyon où on m’en a déjà parlé, je suis tout à fait prêt à donner un coup de main mailing et de la visibilité pour les organisateurs ! Il suffit de me contacter : philippe[at]wikigento.com

Des plugins sympas pour Magento

Déjà Cocorico, un plugin Français pour commencer. La communauté est active, les idées fusent et les modules émergent. La société Xhéos m’informe, par l’entremise de Michaël Thieulin, que l’extension AMF service permet une intégration complète de modules Air/Flex dans le core de Magento.

Le protocole AMF s’invite donc dans le core de Magento et permet également des traitements de plus grands volumes de manière plus efficace. Faire communiquer du Flash sur le front office avec votre Backoffice, c’est partit avec AMF Webservice.

Dans la série on s’y intéresse : les plugins de performances.

L’incontournable Fooman Speedster qui concatènent les JS et les CSS pour réduire leur taille et optimiser le transfert n’est plus seul en piste puisqu’en ce moment plusieurs initiatives visent à optimiser les transferts, les requêtes, les compilations. Où se situe l’avenir ?

Dans mon idée, vous le savez, sur la compilation du PHP.

Un langage interprété ne sera jamais aussi rapide qu’un compilé. En attendant que les initiatives en ce sens (dont une très prometteuse dont je vous reparlerai) voient le jour, des plugins visent à améliorer les temps de chargement.

Bien que je n’ai pas eu encore l’occasion de les essayer, Delorum propose des Magento lignthing hyper megaspeed modules (je vais essayer de benchmarker cela). J’ai vu une autre société proposant des modules similaires à la vente mais l’URL ne me revient pas (EDIT : ah si en fait c’est ici, magento Booster). Si  vous en avez, postez en commentaire, on fera un petit benchmark pour voir qui donne quoi !

Dans les facteurs externes pouvant améliorer les performances de la bête (qui ne cesse de progresser dans son core, reconnaissons le) le moteur de recherche SolR de l’apache consortium vous donnera des recherches de la plus grande rapidité, même dans des catalogues énormes comme dans le c as du Furet du Nord (réalisé par Smile, hébergé et optimisé par NBS System). Toujours dans les « externes » (même si Zend a un unified installer avec Magento), Zend Server améliore les performances avec son Full Page Cache et ses différents mécanismes.

La vitesse comme facteur de ranking Google

Matt Cutts de Google a expliqué en novembre dernier que Google avait une forte pression interne en ce moment, notamment de l’un de ses fondateurs, pour intégrer la vitesse de chargement d’une page comme facteur de ranking.

C’est l’avènement d’une chose que l’on suspectait tous et Google l’officialise quelque part en laissant l’info filtrer publiquement. Le plus étonnant en fait c’est que ce facteur était déjà probablement pris en compte depuis des mois d’après nos tests, sans que Google ne le dise.

La question qui subiste est donc de savoir si pour posséder un bon référencement naturel il faut avoir une page qui se charge vite ou une page qui se charge plus vite que les autres. La deuxième option me parait un peu radicale par contre il y a fort à parier que les sites lents à charger se verront sanctionner dans le référencement naturel puisque, dixit un fondateur du géant, « passer de la recherche au site doit se faire aussi naturellement que tourner une page d’un livre ».

Un Bargento International

Ok on y est, on passe au dessus du gouffre et on verra bien comment ca va se passer… Bargento devient international. En gros, on invite nos copains européens qui n’ont pas la chance d’avoir un évènement local à Paris pour venir échanger avec nous tous.

La décision a été complexe à prendre, le cafouillage de dates vient en partie de là mais Bargento va en ressortir plus grand, plus fort et plus beau. Avec des fournisseurs de solutions et de compétences de tous horizons, des plugins que vous ne soupçonniez même pas, des clients des quatre coins de l’Europe !

Venez donc faire la fête internationale avec nous le 28 mai 2010, plus d’info prochainement sur Bargento.fr

écrit par Philippe Humeau