Pourquoi Donald Trump est-il crédible ? Je veux dire, pas crédible pour vous ou moi. Mais pourquoi est-il crédible pour pratiquement 50% des américains ? Après tout, n’a-t-il pas échoué à tenir plusieurs de ses promesses, comme supprimer l’Obamacare, fermer les frontières à toute immigration et construire un mur à la frontière mexicaine financé par le Mexique ? N’a-t-il pas été pris plusieurs fois en flagrant délit de mensonge, ou tout du moins n’a-t-il pas une vision très approximative de la réalité ? Alors, qu’est-ce qui alimente la crédibilité de Trump ?

C’est son style de communication. Trump défend sans aucun complexe les valeurs identitaires de son électorat. L’exactitude des faits n’est que secondaire. Son audience accepte de « suspendre son esprit critique » car elle a envie de croire et d’adhérer aux valeurs communiquées par Trump.

Contrairement à ce qu’on lit parfois ce n’est pas une question de niveau d’éducation ; une partie de l’électorat de Trump est très intelligent et bien éduqué. Ce qui compte ici, ce n’est pas le QI, c’est l’Ego. L’Ego est l’image d’elle-même que chaque personne se construit ; et les valeurs identitaires sont une part très importante de cette image. Pour l’électorat de Trump, c’est l’adéquation du discours à leurs valeurs qui prime sur l’exactitude des faits et le côté rationnel. Vous pouvez penser qu’il est impossible que près de 50% de la population américaine partage les valeurs de Trump. Et pourtant si vous regardez bien, c’est le cas. Et si vous regardez bien les personnes qui en Europe soutiennent ou ont soutenu Donald Trump pendant un temps, ce sont des personnes qui se reconnaissent dans ses valeurs et s’y identifient.

Il serait facile de se moquer des électeurs de Trump et de leur « manque » de sens critique. Et je le ferais volontiers si les électeurs de l’autre côté, moi y compris, ne fonctionnaient pas exactement de la même manière. Ainsi Hillary Clinton n’a pas du tout perdu l’élection à cause de ses problèmes d’email, mais parce que elle n’a pas su assez incarner les valeurs des électeurs démocrates. Ce qui lui a été fatal c’est que pour toute une partie de son électorat Bernie Sanders a mieux incarné leurs valeurs qu’elle. Et le jour J une partie de ces personnes ont préféré s’abstenir plutôt que d’aller voter. Pire, un nombre non négligeable ont voté pour Trump.

Que l’on soit de gauche ou de droite, démocrate ou républicain, vert ou rouge, nos valeurs occupent une part très importante dans notre processus de décision.

C’est pourquoi Trump reste crédible tant que son discours reste crédible vis-à-vis des valeurs de son électorat, et non vis-à-vis des faits. Ce qui peut tuer Trump, c’est de déclarer du jour au lendemain que l’Obamacare est finalement un plan génial et qu’il faut le maintenir coûte que coûte. Ou de dire que le mur à la frontière du Mexique est une connerie. Ça, ça va le décrédibiliser, car c’est déclarations seraient contraires aux valeurs identitaires de son électorat.

Notre Ego s’accorde assez bien du fait de s’identifier à des valeurs que nous ne respectons absolument pas en pratique ; ou plus exactement il va réussir à tordre la réalité pour qu’elle s’accorde avec l’image qu’il s’est construit de nous-mêmes. C’est pourquoi certains Nazis étaient à la fois des pères exemplaires et des monstres de barbarie. Un des grands drames de l’humanité est que notre Ego s’accorde très bien de ses contradictions, aussi horribles soient elles, tant que l’image qu’il a construit de nous-mêmes reste conforme aux valeurs auxquelles il s’identifie.

Maintenant, peut-on changer cela ? Peut-on agir d’une manière ou d’une autre sur l’électorat de Trump pour le faire changer de camp ? Oui et non.

Non, car une partie de son électorat a des valeurs trop ancrées et trop éloignées des valeurs démocrates pour changer de camp. Même si le GOP se retrouve à l’agonie, cet électorat votera toujours pour lui… ou pour un autre parti qui porte mieux les valeurs dans lesquelles cet électorat se reconnaît.

Oui, car une autre partie de son électorat a des valeurs qui sont à cheval entre les valeurs défendues par Donald Trump et celles défendues par le camp démocrate. Si les démocrates parviennent a donner une incarnation plus forte de ces valeurs et à les rendre dominantes dans le fil narratif, ils peuvent s’imposer.

Serions-nous donc totalement conditionnés par notre Ego et ses valeurs ? Serions-nous incapables de raisonnement critique lorsque nous choisissons un candidat ? Et bien heureusement et malheureusement pas tout à fait. Une question en particulier va activer notre sens critique, ou plutôt une forme de sens critique. Mais j’expliquerai cela une autre fois.

Le logo est l’âme d’une startup. Son image, le reflet de son âme et de ses valeurs. Aussi je vais poser une question importante, vitale, essentielle :

Êtes-vous sûr d’avoir le bon logo ?

A-t-il la bonne forme ? A-t-elle l’air moderne, dans l’air du temps ? Faut-il choisir l’harmonie du cercle ou la brutale efficacité du carré ? Lequel s’affichera mieux sur l’écran d’accueil d’un iPhone ? Et d’un téléphone Android ?

Et la couleur alors ? La nuance de bleu choisie est-elle la plus efficace ? Peut-être que l’orange aurait plus d’impact ? Le rouge va-t-il être perçu comme percutant ou trop agressif ? Les couleurs offrent-elles un contraste suffisant pour les mal voyants ? La mode est-elle aux dégradés ou aux aplats ?

Plus important encore, la police de caractères. N’avez-vous pas utilisé une police de caractères trop utilisée ? Connaissez-vous son histoire ? Peut-elle être lue à distance ? Peut-être qu’une police personnalisée, construite sur mesure, serait plus adaptée ?

Vous voulez connaître le vrai secret pour faire un bon logo ?

Le secret du logo c’est que les gens normaux n’en ont rien à foutre.

Ces histoires de forme, de couleur, d’histoire de polices ? 99,99% des gens n’y connaissent rien et s’en contrefichent. Les Startups efficaces développent le meilleur produit possible, trouvent des clients, gèrent leur cash flow et ne perdent pas de temps sur cette connerie de logo.

La semaine dernière, quelqu’un a tweeté cette image1.

Storytelling Is Dead My Ass

Sincères condoléances, sans autre forme de procès et sans aucune autopsie le storytelling est déclaré mort et enterré. Par contre, c’est sûr, les affirmations gratuites sont bien vivantes, elles. Désolé pour ce monsieur, mais le storytelling est bien vivant, en pleine forme, et le sera tant qu’il y a des humains sur terre.

La preuve ? Chaque fois qu’un nouveau film est réalisé, le storytelling est vivant. Chaque fois qu’un livre est publié, le storytelling est vivant. Chaque fois qu’une histoire est racontée, le storytelling est vivant. Chaque fois qu’un bon orateur donne une présentation TED, le storytelling est vivant. Déclarer le storytelling mort pour créer un effet d’annonce est sans aucun doute provocant et attire l’attention —d’ailleurs cela a attiré la mienne— mais c’est tout simplement faux.

Le storytelling ne va pas disparaître car il est une partie intégrante de ce qui fait de nous des êtres humains. Depuis l’aube de l’humanité, depuis que nous avons acquis la capacité de communiquer et d’échanger par la parole, le storytelling a été présent. Pour simplement raconter des histoires, mais aussi pour transmettre notre savoir et nos valeurs morales. Même aux heures les plus sombres de l’humanité il y aura toujours des personnes pour raconter des histoires extraordinaires.

Le jour où le storytelling disparaîtra sera le jour où l’humanité disparaîtra.


  1. Le storytelling est mort, vive le storymaking [return]

Ah comme tout serait simple si vous aviez un super pouvoir pour votre Startup. Tel un de ces héros de Hollywood, vous pourriez vous en servir pour sauver le monde et accélérer votre développement. Et bien, j’ai une bonne nouvelle et une mauvaise nouvelle. La bonne, c’est que vous avez bien un super pouvoir. La mauvaise, c’est que vous préféreriez ne pas l’avoir.

Ce super pouvoir, c’est le don d’invisibilité.

Personne ne voit votre Startup. À force d’évoluer dans l’univers des incubateurs, des investisseurs, des conférences high tech et de la French Tech, on finit par avoir l’impression que l’on est connu. Malheureusement, c’est une illusion. Cet univers est comme un univers parallèle. Dès qu’on le quitte, on n’existe plus. La Startup devient un être immatériel incapable d’interagir avec l’univers normal. D’ailleurs je parie que même votre mère ignore ce que vous faites.

Pour réellement se développer et accoucher de licornes, l’univers des Startups françaises doit réussir à se débarrasser de son don d’invisibilité. Comment ? Déjà en arrêtant de penser français. Imaginez-vous à la place d’un américain. Pour lui, une startup qui réussit en France c’est insignifiant. C’est comme si pour vous je vous disais qu’il y a une super Startup qui réussit en Malaisie. Vous vous en fichez comme de l’an 40. Pour une Startup du vieux continent, s’imaginer Européenne est le mini minimum pour vraiment décoller. En dessous de ce niveau, elle sera perçue comme une réussite locale, et restera invisible sur la scène internationale.

Vous trouverez dans cet article une procédure pas à pas pour ajouter un formulaire de contact dans un site statique Hugo, sans avoir besoin de back-end car nous allons déléguer le traitement des données à Zapier.

J’ai déjà parlé de Hugo, le générateur de sites statiques que j’utilise pour mon blog et le site de ma société. Les sites générés étant statiques, il n’y a pas de base de données ou de scripts serveurs pour gérer un formulaire de contact. Il faut donc trouver une solution alternative. En voici une possible, mais ce n’est pas la seule.

Ce dont vous allez avoir besoin

  • Bootstrap, ou au minimum la librairie de validation de formulaire ; le thème utilisé était basé sur Bootstrap, une librairie qui permet de créer des sites web plus facilement. Si votre thème n’utilise pas Bootstrap, il faudra peut-être bidouiller un peu plus.
  • Un compte Zapier pour créer le Web Hook auquel sera envoyé les données du formulaire
  • Un compte Slack pour pouvoir poster les données du formulaire ; à noter que le gros avantage d’utiliser Zapier est de pouvoir rediriger le contenu du formulaire vers pratiquement n’importe quel support : email, Slack, Google Sheets, Office 365, etc.
  • Un peu de JavaScript (eh oui on ne peut pas toujours s’en passer malheureusement)

Étape 1 : créez un WebHook sur Zapier

Commencez par créer un compte Zapier si vous n’en avez pas encore ; la bonne nouvelle, c’est que c’est gratuit tant que vous n’utilisez pas trop le service.

Cliquez sur le bouton Make a Zap!

Make a Zap!

Dans « Built-in Apps » choisissez « Webhooks ».

Zapier Webhook

Choisissez le type « Catch Hook ».

Zapier catch hook

Passez l’étape optionnelle « Pick off a child key ».

L’étape suivante, « Test Webhooks by Zapier » est importante car elle vous donne l’URL de votre Webhook. Copiez l’adresse du webhook quelque part car nous allons en avoir besoin lorsque nous créerons le formulaire.

Notez que pour l’instant vous n’avez encore jamais envoyé de données au Webhook, par conséquent le test ne marchera pas. Gardez la page web de Zapier ouverte, nous y reviendrons plus tard.

Étape 2 : créez un fichier contact.html dans le répertoire Hugo /partials de votre site

Ce fichier contiendra le code html du formulaire de contact. Ci-dessous vous trouverez l’exemple du formulaire de contact que j’ai créé.

Quel que soit le thème que vous utilisiez, le truc est d’utiliser l’URL du Webhook créé à l’étape précédente comme destination pour les données du formulaire. Pour cela, il faut adapter la ligne <form action = ...>

Dans le code ci-dessous, remplacez https://hooks.zapier.com... par l’URL de votre hook Zapier créé dans l’étape précédente.

Vérifiez également que vous avez method="POST" comme méthode pour le form.

{{ "<!-- Contact Section -->" | safeHTML }}
<section id="contact">
    <div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
           			<h3 class="section-subheading">{{ with .Site.Params.contact.subtitle }}{{ . | markdownify }}{{ end }}</h3>
           			<br>
            </div>
		    </div>
		        <div class="col-md-6 col-md-offset-3 text-left">
		            <form  action="https://hooks.zapier.com/hooks/..." method="POST" name="sentMessage" id="contactForm">
				            <div class="form-group">
				              		<input type="hidden" name="_subject" value="Form sent from page: {{ .RelPermalink }}">
				            	</div>
		                <div class="form-group">
		                    <input type="text" class="form-control" placeholder="{{ with .Site.Params.contact.form.name.text }}{{ .  | markdownify }}{{ end }}" name="name" required data-validation-required-message="{{ with .Site.Params.contact.form.name.warning }}{{ . | markdownify}}{{ end }}">
		                    <p class="help-block text-danger"></p>
		                </div>
		                <div class="form-group">
		                    <input type="email" class="form-control" placeholder="{{ with .Site.Params.contact.form.email.text }}{{ . | markdownify }}{{ end }}" name="email" required data-validation-required-message="{{ with .Site.Params.contact.form.email.warning }}{{ . | markdownify }}{{ end }}">
		                    <p class="help-block text-danger"></p>
		                </div>
		                <div class="form-group">
		                    <input type="tel" class="form-control" placeholder="{{ with .Site.Params.contact.form.phone.text }}{{ . | markdownify }}{{ end }}" name="phone">
		                    <p class="help-block text-danger"></p>
		                </div>
		                <div class="form-group">
		                    <textarea class="form-control" placeholder="{{ with .Site.Params.contact.form.message.text }}{{ . | markdownify }}{{ end }}" name="message" required data-validation-required-message="{{ with .Site.Params.contact.form.message.warning }}{{ . | markdownify }}{{ end }}"></textarea>
		                    <p class="help-block text-danger"></p>
		                </div>
		                <div class="clearfix"></div>
		                <div class="col-lg-12 text-center">
		                    <div id="success">{{ with .Site.Params.contact.success }}{{ . | markdownify }}{{ end }}</div>
		                    <input type="submit" value="{{ with .Site.Params.contact.buttonText }}{{ . | markdownify }}{{ end }}" class="btn btn-primary btn-xl">
		                </div>
                </form>
            </div>
        </div>
    </div>
</section>

Après cette étape, vous devrez bien sûr modifier le code de vos pages pour qu’elles intègrent le formulaire là où vous le souhaitez ; je ne détaille pas cette étape, si vous lisez cet article c’est que vous savez déjà comment faire.

Étape 3 : ajoutez le code JavaScript nécessaire à la validation interactive du formulaire

Vous connaissez déjà mon peu d’amour pour JavaScript, mais dans ce cas-ci c’est la seule solution que j’ai trouvé qui fonctionne. Le code est inséré directement dans la page, mais vous pouvez très bien le mettre dans un fichier sous /static/js/

<script type="text/javascript">
$(function() {

    $("input,textarea").not("[type=search]").jqBootstrapValidation({
        preventSubmit: true,
        submitError: function($form, event, errors) {
            
        },
        submitSuccess: function($form, e) {
    	    e.preventDefault();
    	
    	    var submitButton = $('input[type=submit]', $form);
    	    $.ajax({
    	      type: 'POST',
    	      url: $form.prop('action'),
    	      accept: {
    	        javascript: 'application/javascript'
    	      },
    	      data: $form.serialize(),
    	      beforeSend: function() {
				submitButton.prop('value', 'Please Wait...');
				submitButton.prop('disabled', 'disabled');
    	      }
    	    }).done(function(data) {
				submitButton.prop('value', 'Thank you, we\x27ll get back to you shortly.');
    			submitButton.prop('disabled', false);
    			hj('formSubmitSuccessful');
    	    });
        },

        filter: function() {
            return $(this).is(":visible");
        },
    });

});

 
$('#name').focus(function() {
    $('#success').html('');
});
</script> 

À noter que même sans ce bout de code JavaScript, la soumission du formulaire au Webhook fonctionnera. Par contre c’est moche ; le visiteur sera redirigé vers une page affichant le résultat technique du Webhook, ce qui n’est vraiment pas idéal.

Étape 4 : installez le module JavaScript jqBootstrapValidation

Ce module est nécessaire pour faire fonctionner le code précédent. Vous le trouverez à l’URL suivant :

http://ReactiveRaven.github.com/jqBootstrapValidation/

Copiez le fichier jqBootstrapValidation.js dans le répertoire /static/js/

Étape 5 : finissez de configurer les pages de votre site

N’oubliez pas d’intégrer le code du formulaire et le code JavaScript à vos pages. Sinon évidemment ça ne marchera pas. Selon votre formulaire de contact, il est très probable que vous deviez adapter certains détails du code. Je ne pense pas avoir modifié le code de jqBootstrapValidation mais avec le temps on oublie parfois…

Étape 6 : finissez de configurer Zapier

Je ne vais pas expliquer ce qu’il faut faire ici en détail car il y a des dizaines de solutions possibles, mais vous devrez configurer Zapier pour qu’il envoie les donnée du formulaire vers le canal de votre choix : Papier, email etc. Sans cela les données seront bloquées chez Zapier et pas très utiles.

Au final, l’action Zapier pour Slack ressemble à ceci :

Zapier Slack Action

Pour résumer…

  • J’ai créé un Webhook sur Zapier pour récupérer les données du formulaire.
  • J’ai ajouté le fichier contact.html dans le répertoire /layouts/partials du thème, avec le code du formulaire.
  • J’ai ajouté le code JavaScript nécessaire lors de la soumission du formulaire.
  • J’ai ajouté le fichier jqBootstrapValidation.js dans le répertoire /static/js/
  • J’ai fini de configurer l’action Zapier pour poster les données du Webhook sur Slack.

Voilà, j’espère que cela vous aura été utile. Comme dans tout développement de ce type, difficile de garantir que cela fonctionnera tel quel sur votre site, mais cela devrait déjà être un bon point de départ.