Le marketing autour de Facebook Home. Mieux connecter les personnes ?

Standard

Facebook Home, c’est quoi ?

Facebook a annoncé le lancement de Facebook Home le 4 avril 2013 après de nombreuses rumeurs autour d’un possible “Facebook Phone”. Facebook Home n’est en réalité qu’une application à télécharger qui modifie votre smartphone en profondeur (écran de verrouillage, menus etc.). L’objectif annoncé de Facebook Home est de placer les personnes au coeur de votre téléphone, et non les applications comme Mark Zuckerberg l’expliquait lors de cette présentation :

“Quand on décide de parler à quelqu’un, ce n’est pas l’application que l’on utilise pour le faire qui est importante. C’est la personne avec qui on souhaite parler.”

Les vidéos de présentation de Facebook Home

Le marketing mené par Facebook autour de son nouveau produit Facebook est assez surprenant. L’entreprise a opté pour une stratégie plaçant le mobile fortement en avant depuis quelques mois et la campagne menée autour de Facebook Home confirme cette volonté. Nouveauté pour le lancement d’un produit Facebook, le lancement a été accompagné de nombreuses vidéos de présentation. Comme pour les précédentes nouveautés on retrouve une page de présentation du produit (www.facebook.com/home) mais je vais m’attarder sur les vidéos associées au lancement de Facebook Home. Je vais vous présenter rapidement les différentes vidéos et m’attarder plus longuement sur la dernière (en tout cas pour le moment) nommée “Facebook Home Dinner”.

La vidéo la plus diffusée
La vidéo la plus mise en avant par Facebook présente le principal avantage annoncé de Facebook Home : il permet d’être connecté encore plus rapidement aux personnes qui nous intéressent. Elle a été diffusée lors de la conférence de présentation du produit et est mise en avant sur la page dédiée. Elle a également été relayée par Mark Zuckerberg sur son compte personnel et par la page Facebook de Facebook sur Facebook (ah ah). On y retrouve tout un tas de personnes, très heureuses et un produit qui leur simplifie la vie. C’est le type de vidéo classique de Facebook : très centrée sur les personnes, Facebook est présent mais toujours pour mieux connecter les personnes.

L’avion
Une personne dans un avion sur le point de décoller jette un rapide coup d’oeil à son téléphone. Il reste connecté à la vie de ses amis en naviguant sur son écran de verrouillage. Ceci est matérialisé par l’irruption dans l’avion de ses amis pratiquant l’activité qu’ils avaient partagé sur Facebook (ce processus sera utilisé dans les autres vidéos).

Le lancement de l’application
Le lancement de l’application s’est fait le 12 avril 2013. Dans cette vidéo, on retrouve Mark Zuckerberg qui vient remercier les équipes d’ingénieurs qui ont travaillé sur Facebook Home. Nouveauté très surprenante pour Facebook, la situation est tournée en dérision encore une fois par les irruptions des amis de l’ingénieur qui jette un coup d’oeil à son téléphone avec Facebook Home. On a pour la première fois un ton comique dans une vidéo de présentation de produit Facebook, chose tout à fait inhabituelle !

Le dîner
Dans cette vidéo, on retrouve une adolescente qui participe à un dîner de famille. Ennuyée par les conversations, elle jette un coup d’oeil à son smartphone pour se distraire et retrouve tout de suite ses amis grâce à Facebook Home (encore une fois, ses amis font irruption dans la pièce).

C’est cette vidéo que je trouve vraiment limite. Je dois avouer que j’avais beaucoup apprécié les autres : très bien réalisées, rigolotes, vraiment jolies. Mais cette vidéo ravive ma peur initiale : a-t-on vraiment besoin d’être toujours sur son smartphone, dans ce cas dans un monde baigné par Facebook ?

L’hyperconnexion

Je trouve que cette dernière vidéo montre le plus la situation dans laquelle sera utilisée Facebook Home : pour se distraire volontairement, s’évader voire même s’effacer de ceux qui nous entourent. Je suis personnellement très sensible à ces problématiques, ayant déjà étudié le phénomène du technostress l’année dernière. Facebook veut pousser ses utilisateurs à une immersion quasi totale de ses utilisateurs dans ses produits (et il n’y a aucun mal à vouloir faire ceci, c’est tout à fait logique). Reste le problème de l’utilisation de ce nouveau produit.

J’avais beaucoup aimé un projet de photographie qui s’intitule “We never look up”. Un photographe rassemble sur un Tumblr des photos de gens utilisant leur smartphone, tablette ou ordinateur dans n’importe quelle situation. Vous pouvez trouver les photos ici : weneverlookup.tumblr.com. Je trouve que ces photos illustrent bien ce problème déjà existant et qui va inévitablement s’aggraver dans les années à venir.

Au final, on peut s’interroger sur la réelle volonté du produit annoncée : mieux connecter les personnes. De toute évidence, lorsque l’on se connecte “mieux” avec une telle application, on se connecte moins bien avec notre environnement. Ces problèmes sont très délicats et j’espère vraiment qu’un jour nous trouverons un moyen de proposer une technologie saine d’utilisation.

Pour aller plus loin

Pour aller plus loin sur le sujet, je vous encourage à lire les nombreux articles qui parlent de Facebook Home sur les blogs spécialisés (TechCrunch, Mashable par exemple).

Sources de Facebook :

Les poissons d’avril sur le web

Standard

Comme tous les ans à l’occasion du 1er avril, de nombreux sites web font tout leur possible pour faire les meilleurs poissons d’avril. Une excellente initiative qui permet de bien rigoler !

Voici une sélection des poisons d’avril que j’ai pu trouver aujourd’hui sur le web :

Google

Twitter

SoundCloud

Skype

VDM

LDLC

OVH

Hadopi : rapport sur les moyens de lutte contre le streaming et le téléchargement direct illicites

Standard

Hadopi
Dans le dernier rapport de la comission Hadopi, Mireille Imbert-Quaretta explique comment elle compte lutter contre le streaming illégal et les sites de téléchargement direct. Après l’échec du sanctionnement des utilisateurs prévu par les précédentes lois, ce rapport fait le point sur la situation actuelle du téléchargement illégal et prévoit de s’attaquer aux intermédiaires techniques plutôt qu’à l’utilisateur final.

Impliquer les intermédiaires techniques dans la lutte contre le téléchargement illégal

Citons le rapport, page 23 :

Les intermédiaires techniques jouent un rôle dans la diffusion de contenus illicites à
travers les mécanismes d’accès à Internet, de transmission de contenus et de
navigation sur Internet. Ces intermédiaires sont principalement les
fournisseurs d’accès à Internet (FAI), les hébergeurs techniques, les registraires de
noms de domaines, les moteurs de recherche et les éditeurs de logiciels de sécurité
ou susceptibles d’être utilisés par l’internaute pour accéder aux contenus.

Passons donc en revue les différents intermédiaires techniques que veut impliquer Hadopi dans la lutte contre le téléchargement illégal.

  • Les fournisseurs d’accès à Internet (FAI). Hadopi indique que les FAIs sont capables de mettre en place divers types de blocages pour limiter l’accès au contenu jugé sensible ou non respectueux de la loi. Ces blocages peuvent être de plusieurs sortes : blocages par URL, par adresse IP ou par nom de domaine. La commission indique bien que n’importe quel blocage, quel qu’il soit, ne sera jamais totalement efficace et qu’il pourra toujours être contourné compte tenu des particularités de l’Internet. Toutefois, ces blocages ne sont pas écartés : leur mise en place pourrait “néanmoins contribuer à une réduction globale des violations du droit d’auteur en ligne”.
  • Les moteurs de recherche. Les moteurs de recherche permettent à l’internaute de trouver le contenu associé à leur recherche. Ainsi, ils sont à même de mener l’internaute vers un site proposant des contenus illicites. Cette recherche est parfois facilitée par les suggestions proposées par les moteurs de recherche qui orientent alors plus rapidement l’internaute vers une solution illégale (par exemple “Autocomplete” proposé par Google). La commission Hadopi préconise donc plusieurs solutions : un déférencement total des sites hébergeant des contenus illicites, une censure des suggestions automatiques sur certains termes ou noms de site ou bien une baisse du référencement de certains sites pour limiter le trafic vers ceux-ci.
  • Les hébergeurs techniques. Les hébergeurs techniques sont ceux qui mettent à disposition des infrastructures (par exemple des serveurs) pour héberger des sites web. Hadopi rappelle que lorsqu’un hébergeur reçoit une notification indiquant qu’un site utilisant son infrastructure héberge du contenu illicite, il n’a en principe pas la possibilité de retirer le seul contenu ayant été signalé. Le seul moyen de réponse qu’ait un hébergeur de contenu étant la coupure totale de l’accès au serveur, ce qui est manifestement disproportionné. La commission compte donc sur la seule pression que peut exercer un hébergeur sur son client pour retirer le contenu illicite mis en ligne.
  • Les registraires de noms de domaine. En faisant une demande à un registraire (une organisation gérant les noms de domaine), il est possible de rerouter des requêtes. Pour rappel, c’était cette technique qui avait été utilisée par le FBI pour rerouter les requêtes destinées à MegaUpload vers une page du FBI. Problème : les registres des noms de domaines sont propres à chaque pays et la France n’a donc autorité que sur les “.fr”. Pour complément, ce sont les États-Unis qui ont le contrôle du “.com” (top level domain le plus utilisé pour les actes illicites).
  • Logiciel ou navigateur. Hadopi envisage l’installation d’un plugin fonctionnant dans un navigateur ou encore un logiciel à télécharger pour pouvoir opérer un filtrage. Problème : qui serait assez fou pour télécharger un tel plugin ou logiciel ?
  • Les systèmes d’exploitation. Devant l’échec de la mesure précédente, Hadopi envisage d’intégrer des outils qui pourraient servir à du filtrage dans les systèmes d’exploitation. Avantages selon la commission : cette mesure affecterait énormément de monde et il y aurait peu d’acteurs à convaincre (quelques entreprises se partagent la grande majorité du marché). Problème de taille : il faut réussir à convaincre ces entreprises et respecter les réglementations étrangères. Sans mentionner qu’il sera toujours possible de trouver des systèmes d’exploitation libres de mouchards sur Internet pour celui qui le voudra.

Voilà les solutions techniques envisagées par la commission Hadopi pour lutter contre le streaming et le téléchargement direct illicites. Le rapport présente également des idées à appliquer au niveau des intermédiaires de paiement et des acteurs de la publicité, qui rémunèrent les sites hébergeant ou pointant vers du contenu illicite.

Je vous recommande la lecture de ce rapport (un petit peu long : 151 pages certes, mais seulement 46 pages de véritable rapport) qui est disponible à l’adresse : www.hadopi.fr/sites/default/files/page/pdf/Rapport_streaming_2013.pdf.

Interview : “Quelle est l’utilité d’un Hackathon”

Standard

Facebook Engineering

Photo : l’équipe de Facebook Engineering au travail.

Récemment une journaliste du journal La Tribune (journal économique et financier Français) m’a contacté pour me poser quelques questions à propos du Hackathon auquel j’avais participé en décembre 2012 en rapport avec le thème de “l’innovation participative”.

Avec mon ami Merlin NIMIER-DAVID nous avons répondu aux questions que cette journaliste nous a posé. Voici le compte-rendu complet de notre échange :

Que cherchiez-vous en participant à cet événement ?

En participant à ce Hackathon, nous cherchions avant tout à nous amuser entre amis développeurs. Nous nous connaissions tous dans notre groupe et nous avions l’habitude de travailler ensemble, autour de projets très sérieux. Le Hackathon était une excellente occasion pour nous de laisser libre court à notre créativité et coder sans avoir de restrictions (pas de cahier des charges, de réunions, de longues phases de test) pour se concentrer sur notre corps de métier : le code que nous écrivons en équipe. C’était une excellente occasion pour se pencher sur de nouveaux défis, découvrir de nouvelles techniques, le tout dans un temps limité !

Nous cherchions également à rencontrer d’autres personnes évoluant dans le même milieu que nous pour voir leurs façons de travailler, leurs idées, leurs habitudes. Il est toujours très intéressant de confronter son travail avec des personnes extérieures et compétentes. C’était par ailleurs l’occasion de créer de nouveaux liens, de se faire de nouveaux amis, et pourquoi pas de chercher du monde à recruter !

Qu’en retirez-vous de plus positif ? Et de négatif ?

Notre plus grande fierté était d’avoir réussi à créer un produit fonctionnel au bout de 28 heures, en équipe. Il était également important pour nous de présenter notre projet aux autres équipes, notre point de vue à propos de celui-ci et d’échanger avec les autres équipes autour de leurs projets.

Les échanges étaient très constructifs durant toute la durée du Hackathon et il était très courant de voir les équipes aller voir ce que faisaient les autres et discuter avec eux durant ces 28 heures. Ceci permettait d’avancer, tous ensemble !

Je pense que c’est cet échange qui est le point le plus positif de l’événement.

Le point le plus négatif était peut-être… De devoir retourner en cours le lendemain ! C’est dur de revenir à “la réalité” après 28 heures de pure concentration, sans sommeil.

Participe-t-on d’abord à ce type d’événement pour « le jeu » ou pour gagner ?

Je pense que les équipes participent avant tout à ce type d’événement pour le jeu, et non dans l’objectif de gagner. Les gens participent pour la bonne ambiance qui règne (locaux mis à disposition, repas et boissons offerts, animations proposées) et pour le défi que représente l’événement (difficulté, créativité, longueur, fatigue).

Bien évidemment chaque équipe fait de son mieux pour réaliser le meilleur projet, mais le véritable but est d’avoir réussi à se surpasser et à réaliser un projet dont l’équipe est fière.

Enfin, personnellement, je pense que pour les développeurs, la reconnaissance de ses “semblables” est très importante. Les collègues savent pertinemment discerner ce qui a été difficile à concevoir et les endroits où des efforts importants ont dû être fournis.

Avez-vous le sentiment de faire partie d’une nouvelle génération de développeurs prêt à prendre des risques, à chercher de son côté sans être payé, seuls, AVANT de se faire repérer par une grande entreprise ou organisation ?

Je ne pense pas que le métier de développeur soit un métier dans lequel on se retrouve par hasard. L’immense majorité des développeurs que je connais ont tout d’abord cherché à bidouiller de leur côté avant de se lancer dans un apprentissage plus classique, scolaire.

C’est pourquoi je pense que la génération actuelle des développeurs est prête à prendre des risques : à monter des projets de son côté, sans entreprise, seul ou entre amis.

L’argent est loin d’être le seul attrait du développeur. Je pense que celui-ci cherche à créer un produit utile à lui-même et à ses utilisateurs, bien construit techniquement et qui aura une certaine notoriété dans la communauté. On ne voit pas souvent les développeurs comme des personnes créatives, et pourtant, je pense fortement le contraire. Écrire du code demande une compréhension de l’utilisation du produit, du rapport qu’aura l’utilisateur avec le produit. Sans parler de la créativité lors de la rédaction du code en lui-même : c’est loin d’être un exercice se faisant automatiquement !

C’est pourquoi de nombreux développeurs cherchent une certaine estime, une reconnaissance de leur travail, au-delà du côté technique pur.

Participez-vous régulièrement à de tels concours ? Comptez-vous le faire à nouveau ?

Malheureusement de tels événements ne sont pas organisés très régulièrement en France pour le moment, encore moins en Normandie. Toutefois je pense que les entreprises commencent à réaliser peu à peu l’intérêt de tels événements pour leurs entreprises. Aux États-Unis par exemple il est très commun que des entreprises organisent des Hackathons internes pour stimuler la créativité de leurs équipes et ainsi privilégier la création de nouveaux produits, qui peuvent être repris en tant que projet à part entière par la suite. Les écoles et universités organisent également de tels événements pour faire parler d’elles et montrer ainsi que leur enseignement est efficace et amène à la création de projets intéressants.

Je pense que ce type d’événement sera bien plus répandu dans quelques années. Ce qui est sûr, c’est que nous y participerons de nouveau, chaque fois que l’occasion se présentera. C’est une expérience très formatrice, un gain d’expérience énorme et de très bons moments. Pourquoi s’en priver ?

Si vous en aviez la possibilité participeriez-vous à un hackathon organisé par Facebook ?

Facebook organise souvent des Hackathons internes et des Hackathons ouverts aux participants extérieurs, dans le but de déceler de futurs recrues. Facebook est une entreprise très attachée à ce concept, cette philosophie du “hacker”. C’est un concept très profondément ancré dans la culture de l’entreprise.

Si nous en avions la possibilité, bien évidemment nous participerions à un hackathon organisé par Facebook. Toutefois, nous ne sommes pas sûrs que nous aurions des chances de finir “bien classé”. Mais je suis certain que l’expérience que nous aurions vécue serait tellement enrichissante que ceci ne nous importerait vraiment pas.

Suivre des clics à l’aide de Google Analytics

Standard

Google Analytics
Google Analytics est un puissant outil d’analyse des visites sur un site web. Si vous ne l’utilisez pas encore, je vous le recommande vivement : les données fournies par Google Analytics vous seront extrêmement utiles.

Dans quel cas utiliser des événements ?

Une fonctionnalité avancée de Google Analytics qui est très intéressante à utiliser est celle de la gestion des événements. Je ne suis néanmoins pas encore un expert avec cette fonctionnalité, c’est pourquoi je vous présenterai seulement la gestion des événements provenant d’un clic d’un utilisateur. Imaginons : vous avez un site avec une page d’inscription. Vous avez un lien vers cette page dans votre menu, un autre dans un article de votre blog et un dernier dans votre footer. Quel lien est le plus cliqué ? Si vous faites un changement de design dans votre footer, le lien dans le footer sera-t-il cliqué plus souvent ?

La gestion des événements proposé par Google Analytics va vous permettre d’avoir des réponses à ces questions.

La fonction _trackEvent()

Pour la suite, vous devez utiliser Google Analytics et avoir le code de Google Analytics présent sur toutes les pages de votre site. Nous allons utiliser la fonctionnalité _trackEvent pour pouvoir suivre les événements (ici les clics) sur votre site.
La fonctionnalité _trackEvent prend les arguments suivants :

Voici une description de chacun des paramètres :

  • category : string. La catégorie générale de votre événement (par exemple “Page d’inscription”).
  • action : string. L’action pour cet événement (par exemple “Clic”).
  • opt_label : string. La description de cet événement (par exemple “Lien footer”).
  • opt_value : int. Dans notre cas, on n’utilisera pas ce paramètre. On l’utilise dans des cas bien précis, quand on a besoin d’une valeur numérique associée à un événement. Par exemple, dans le cas d’une vidéo, la durée de la lecture jusqu’à ce que l’utilisateur clique sur “Pause” par exemple.
  • opt_noninteraction : boolean. La valeur par défaut est false. Si la valeur est à true, le fait de déclencher cet événement ne sera pas compté comme une interaction. Si vous laissez à false, le déclenchement de cet événement sera bien compté comme une action, et votre utilisateur ne sera donc pas compté dans le taux de rebond (bounce rate).

Mise en place

Maintenant que vous savez comment utiliser la fonction _trackEvent, il faut l’implémenter dans votre code. Voici par exemple ce qu’il faudra écrire dans votre code si je reprends l’exemple initial avec des liens vers une page d’inscription placés à différents endroits.

Vous voyez que peu de choses varient. En effet, la catégorie doit rester la même pour comprendre de quel événement je peux parler, l’action est la même (toujours un clic), seul le label varie selon la localisation du lien. Dans cet exemple, pas besoin d’opt_value et je ne me suis pas soucié de mon taux de rebond sur ces pages.

Où retrouver ces statistiques ?

Une fois votre code mis à jour, vous pouvez retrouver les statistiques de vos événements dans l’onglet “Contenu” puis dans “Événements”. Cliquez ensuite sur le nom de la catégorie de votre événement, puis sur “Libellé d’événement” pour voir la répartition des événements au sein de votre catégorie.

Voici un exemple de résultat qui provient de Teen Quotes :
Google Analytics

Vous voilà en possession de statistiques intéressantes. À vous maintenant de les exploiter au mieux !

Pour aller plus loin, l’aide Google à propos de l’event tracking (en anglais) : dev.google.com/analytics/devguides/collection/gajs/methods/gaJSApiEventTracking.

Conserver les sessions dans les sous-domaines en PHP

Standard

Par défaut, PHP utilise le cookie PHPSESSID pour propager les sessions à travers les différentes pages d’un site. Par défaut, PHP utilise le domaine et le sous-domaine courant pour déclarer ce cookie.

Par exemple, si je me connecte sur www.monsupersite.com, mon cookie PHPSESSID sera déclaré pour la localisation www.monsupersite.com. Les données contenues dans la session ne pourront pas voyager avec le visiteur pour un autre domaine ou sous-domaine. Ceci veut dire que mes données $_SESSION ne seront malheureusement pas accessibles sur forum.monsupersite.com par exemple !

Pour rendre les données de la session accessibles sur tous les sous-domaines de votre domaine principal, il va falloir rajouter une ligne au tout début de tous vos fichiers où une session est susceptible d’être créée. Le plus sage étant encore de l’inclure sur toutes vos pages, immédiatement après l’ouverture de la balise PHP. Il suffit de rajouter ceci :

Ceci aura pour effet de supprimer le sous-domaine. Par exemple forum.monsupersite.com devient .monsupersite.com. Ainsi, toutes les données de la session seront accessibles sur tous les sous-domaines de monsupersite.com !

Les problèmes rencontrés avec Amavis

Standard

Au cours des derniers mois, j’ai rencontré plusieurs problèmes sur mes différentes machines qui ont été causés par Amavis et qui ont été difficile à réparer pour. Dans cet article, je vais vous détailler les problèmes que j’ai rencontré et les solutions que j’ai trouvé pour y venir à bout, en espérant que ceci vous soit utile !

Amavis, c’est quoi ?

Amavis est un filtre pour les emails. Il est open source et est écrit en Perl. Il est souvent associé à Postfix pour l’envoi d’emails qui est très utilisé dans les systèmes UNIX. Amavis peut être utilisé pour :

  • détecter les virus, spam et les erreurs de syntaxe ;
  • bloquer, rediriger ou transférer des emails ;
  • mettre en quarantaine ou archiver des emails ;
  • bien d’autres choses que je ne connais pas…

Amavis et les inodes

Par défaut, Amavis stocke les emails qu’il a détecté comme virus ou spams dans un dossier spécifique. Sous Debian, celui-ci se trouve à /var/lib/amavis/virusmails. Le problème est qu’Amavis ne vide jamais ce répertoire… Ceci peut être très problématique car au fil du temps le dossier se remplit encore et encore et il peut parfois saturer votre quota d’inodes sur votre serveur. En effet, si vous envoyez quelques milliers d’emails par jour depuis votre serveur, il est probable que vous ailliez ce problème un jour ou l’autre. Dans mon cas, le dossier utilisé par Amavis /var/lib/amavis/virusmails comptait plus de 50 000 inodes ! Un problème qui peut complètement saturer votre /var sans que vous compreniez d’où vient le soucis.

Le problème avait été reporté, et malheureusement l’équipe d’Amavis ne veut pas mettre en place une suppression automatique tous les 15 / 30 jours de ce dossier. Personnellement, je ne comprends pas cette logique. Connaissez-vous un administrateur système qui souhaite garder une trace de tout ce qui a été considéré comme “spam” pendant plusieurs années ? Vous pouvez trouver cette discussion à l’adresse suivante : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=569150.

Quoi qu’il en soit, si vous voulez éviter d’avoir ce problème, il va falloir agir. La solution proposée par Thomas Goirand sur Debian me parait être une excellente solution. Il suffit de mettre en place une tâche cron tous les X jours exécutant la commande suivante :
L’autre solution, moins classe, consiste à supprimer le répertoire /var/lib/amavis/virusmailsquand votre nombre d’inodes commence à vraiment augmenter. Vous devrez ensuite exécuter les commandes suivantes :

Bonus, si vous voulez savoir combien d’inodes vous avez dans des sous-répertoires, il vous faut taper la commande suivante :
Ceci risque de prendre un certain temps si vous faites ceci dans un répertoire comptant une longue arborescence !

Quels symptômes pour un problème avec Amavis ?

Les problèmes que vous pouvez rencontrer à cause d’Amavis peuvent avoir des conséquences importantes mais sont parfois difficiles à identifier. Si vous rencontrez les problèmes suivants, il faudra regarder du côté d’Amavis :

  • Aucun email n’est envoyé depuis votre serveur. Les emails s’entassent dans la mail queue.
  • Votre nombre d’inodes est très important alors que votre disque comporte encore beaucoup d’espace.

Dans le premier cas, regardez d’abord au niveau de vos logs de mail si vous pouvez obtenir des informations complémentaires. Si le problème vient d’Amavis, pensez à le désactiver (voir étape suivante). Avant de prendre des décisions radicales, vous pouvez rajouter les emails en attente dans la mail queue et demander à Postfix de les envoyer en tapant les commandes suivantes :

Pour le second soucis, vous pouvez déterminer immédiatement si Amavis est responsable de cette augmentation du nombre de vos inodes. Rendez-vous dans le dossier /var/lib/amavis/ et exécutez la commande indiquée précédemment permettant de voir combien d’inodes comptent vos sous-répertoires.

Désactiver Amavis

Vous aurez beau vous acharnez, parfois il faut mieux désactiver Amavis pour être tranquille. Si vous voulez faire ceci, voici les étapes qu’il vous faudra suivre.

Tout d’abord, il va falloir vous rendre dans le fichier de configuration de Postfix se trouvant dans /etc/postfix/ et se nommant main.cf en commentant une ligne ressemblant à la suivante. Pour ma part, elle indique à Postfix d’envoyer les emails sur localhost en utilisant le port 10024.

Vous pouvez également faire référence à Amavis dans le même dossier, mais dans le fichier master.cf. Il faudra commenter les lignes suivantes :

Parfait ! Il ne reste maintenant plus qu’à recharger les fichiers de configuration de Postfix, rajouter les emails dans la mail queue et tenter de les envoyer à nouveau. Ceci se fait avec les commandes suivantes :

Dernière étape, ne plus démarrer Amavis automatiquement au démarrage. Ceci se fait avec la commande :

Vous voilà débarrassé d’Amavis !

Mon tout premier Hackathon

Standard

Hackhours
Le week-end dernier, j’ai participé à la première version du Hack Hours, un Hackathon organisé par l’Exia.CESI avec mes collègues et amis de Quantic Télécom (Thibaud Dauce, Josselin Lecocq et Merlin Nimier-David). Pour ceux qui ne connaissent pas, le but d’un Hackathon est de produire en un court laps de temps un projet informatique avec une petite équipe. Le week-end dernier, nous avions donc 28 heures pour monter un projet autour du mobile (application web ou native).

Un Hackathon, c’est bien.

Si vous n’avez pas encore participé à un Hackathon, je vous y invite vraiment ! Voici quelques raisons qui pourraient vous inciter à franchir le pas :

  • C’est fou. Coder pendant une longue période, avec très peu de pauses avec des amis, c’est vraiment marrant.
  • Vous passerez un bon moment. Généralement, l’ambiance dans ces événements est excellente. À noter que le plus souvent ces événements sont gratuits et que les organisateurs font tout pour vous faciliter la vie : boissons, repas, connexion Internet et parfois matériels sont fourni aux participants !
  • Vous apprendrez énormément. Il est très probable que vous allez avoir à réaliser des choses que vous n’avez jamais faites auparavant, que vos collègues connaissent ou que vous allez découvrir pour les besoins de votre projet.
  • Vous aurez de nouvelles idées. Grâce aux autres groupes, vous découvrirez de nouvelles tendances, de nouvelles façons d’aborder des problèmes. En clair, que du bonus pour votre créativité !
  • Vous rencontrerez des gens. Des développeurs, des designers, des businessmen, des chefs d’entreprise, des étudiants… Chacun vous apportera quelque chose. Une occasion en or pour échanger et faire de nouvelles rencontres !

Comment réussir un Hackathon

Je vais développer dans cette partie les méthodes que nous avons appliqué et qui nous ont semblé être efficaces. Bien évidemment, ceci n’est absolument pas complet et n’est en rien une vérité générale. Toutefois, j’espère que ceci vous sera utile si vous participez à un Hackathon.

  • Restez simple. Lors de la recherche de votre projet, gardez toujours en tête que vous devez trouver une idée simple. Vous n’allez pas pouvoir développer en quelques heures un géant de demain. Demandez-vous ce qui vous manque au quotidien, ce dont vous avez besoin, ce qui est dans les tendances actuelles. Votre projet ne doit pouvoir faire que quelques tâches, mais il doit les faire bien. Et surtout, il doit les faire avant la fin du Hackathon !
  • La conception fait tout. Vous ne devez pas négliger la conception de votre projet. Inutile de foncer tête baissée sur votre ordinateur, à taper frénétiquement les premières lignes de code. Réunissez-vous. Réfléchissez. Écrivez sur un tableau ou sur des feuilles de papier vos idées, la structure de votre code, vos fonctions, décrivez votre interface. Ceci sera votre document de référence, votre objectif sera de coder les fonctionnalités que vous avez identifiées comme importantes pour votre projet. Une fois ceci fait, répartissez-vous les tâches en fonction des compétences au sein de votre équipe.
  • Ne négligez pas la présentation de votre projet. Il est fort probable qu’au terme du temps imparti pour le développement vous devrez présenter votre projet. Ne négligez surtout pas cet aspect ! Vous devez mettre en valeur votre projet, montrer qu’il fonctionne. Ne vous attardez pas sur les détails techniques, parlez plutôt de votre concept, pourquoi ce projet est utile et pourquoi il va plaire. Entraînez-vous avec le reste de votre équipe à cette présentation : définissez ce que vous allez dire, prévoyez une démonstration de votre projet. Priez pour que votre projet ne plante pas pendant la présentation !

Conclusion

Quoi qu’il arrive, si vous avez bien travaillé avec votre équipe, vous vous serez amusé, vous aurez appris, vous serez fiers de votre projet. Ceci aura été bénéfique pour vous ! Vous avez donc tout gagné !

P.S. : nous avons gagné ce Hackathon 😀

Google ouvre les portes de ses datacenters

Standard

Google datacenters

Présentation

Google vient récemment de faire un pas de plus dans la transparence en nous ouvrant les portes d’un de ses datacenters. Salles de réunions, salles de sauvegardes, locaux technique, baies, équipement de refroidissement : tout peut-être visité par l’utilisateur à l’aide de photos, vidéos et même de StreetView. Google nous rappelle ainsi que derrière le monde virtuelle du web se cache une gigantesque infrastructure bien réelle, s’étendant sur d’immenses surfaces et avec des problématiques plus classiques : sécurité des locaux, redondances des équipements, refroidissement du matériel, gestion des pannes, remplacement du matériel.

Google présente ainsi ses datacenters :

Il y a quatorze ans, quand Google était un projet de recherche universitaire, Larry et Sergey ont développé leur nouveau moteur de recherche en s’appuyant sur quelques serveurs bon marché disponibles en magasins, empilés de façon créative. Nous avons grandi un peu depuis cette époque, et nous espérons que vous appréciez cet aperçu de ce que nous avons construit.

On est loin du bricolage que Larry et Sergey ont pu confectionner lorsqu’ils étaient étudiants !

Sur Internet

La réplication de bases de données MySQL

Standard

La réplication de bases de données

Bases de donnéesLa réplication de MySQL permet de partager des informations entre des bases de données afin d’être certain que le contenu des différentes bases de données soit exactement le même. La réplication SQL est généralement utilisée pour pouvoir supporter une charge plus importante en répartissant la charge sur plusieurs serveurs, contenant les mêmes bases de données. La réplication peut également être utilisée comme système de sauvegarde ou comme système de fail-over.

Le fail-over

Le fail-over s’utilise dans un environnement où il est nécessaire d’avoir une haute disponibilité. Les équipements de fail-over prennent la relève lorsque l’équipement principal rencontre une panne. Ceci permet d’assurer une continuité de fonctionnement des services, alors qu’une panne est survenue.

Mise en place d’une réplication MySQL

Thibault HENRY a écrit un excellent article il y a quelques jours sur la procédure à suivre permettant la mise en place d’une réplication MySQL entre deux serveurs, à l’aide de PHPMyAdmin. C’est très rapide à faire et il suffit de rajouter seulement quelques lignes de configuration sur son serveur. La mise en place est expliquée pour deux serveurs mais peut se généraliser sans problème à n serveurs. Comme je ne pense pas faire mieux que lui, je vous invite à lire son article.

Réplication “classique”

Prenons un modèle à deux serveurs. On nomme S1 le serveur maître et S2 le serveur esclave.

Dans un modèle de réplication classique, les bases de données du serveur S1 sont recopiées, en temps réel sur le serveur S2. Dans un tel modèle on pourrait imaginer une répartition des charges suivantes :

  • Les requêtes de lecture se font sur S2.
  • Les requêtes d’écriture se font sur S1.

Ou encore :

  • S1 est le serveur de production. En temps normal, toutes les requêtes arrivent vers lui.
  • S2 est utilisé comme serveur de sauvegarde ou comme serveur de fail-over.

Réplication circulaire

Pour le modèle de la réplication circulaire, voici un schéma qui sera plutôt parlant :
Réplication circulaire

Dans ce modèle chaque serveur est à la fois maître et esclave. Comme disait Maxime VALETTE dans son article de présentation de l’infrastructure SQL de VDM :

Cette configuration a l’avantage de bien fonctionner derrière un load balancer puisque chaque serveur a le droit d’écriture. C’est donc transparent pour le développeur qui n’a qu’à renseigner l’IP du load balancer dans sa connexion à MySQL et travailler comme s’il n’avait qu’un seul serveur.

L’inconvénient est un inconvénient de taille. Comme les requêtes s’exécutent comme dans une ronde, si un serveur plante, toute la ronde est cassée et plus rien ne se réplique. Il faut donc avoir du bon matériel, et au cas où ça arrive quand même, agir très vite.

Éviter l’arrêt de la réplication MySQL

Si vous regardez vos fichiers de log ou directement dans PHPMyAdmin, vous allez remarquer que votre réplication s’arrête relativement régulièrement, pour des erreurs diverses et variées. Les deux erreurs qui reviennent souvent (et qui peuvent être ignorées) sont les suivantes :

  • L’erreur 1062. “DUPLICATE ENTRY FOR…” qui se produit sur un INSERT, lorsque vous tentez d’insérer des données déjà existantes ou avec le même ID.
  • L’erreur 1053. “Query partially completed on the master (error on master: 1053) and was aborted.” qui est déclenchée lorsque le serveur maître s’arrête, redémarre ou que les tables ont été verrouillées sur le serveur maître (par un exemple pour un dump).

Ces deux erreurs provoquent l’arrêt de la réplication MySQL sur le serveur esclave. Ainsi, tant que vous n’avez pas ignoré ces erreurs (soit automatiquement, soit en ignorant les n prochaines erreurs qui surviendront avec une requête SQL), la réplication ne reprendra pas. Ainsi, vous aurez des bases de données différentes avec des informations de retard sur votre serveur esclave.

Les deux erreurs précédentes ne sont pas d’une grande gravité (un duplicate n’est pas dramatique) mais peuvent nuire au bon fonctionnement de la réplication. La meilleure chose à faire est donc de les ignorer automatiquement, afin qu’elles ne causent pas d’arrêt de la réplication. Il suffit de rajouter dans le fichier /etc/mysql/my.cnf la ligne suivante :

slave-skip-errors=1062,1053

Pensez à redémarrer votre serveur ensuite afin que les modifications soient prises en compte.

Si vous voulez ignorer d’autres erreurs, il suffit de rajouter les codes d’erreurs à la suite !