Blog de Yoan De Macedo http://yoandemacedo.com/blog Les articles du blog de Yoan De Macedo Infopreneurs, proposez un paiement fractionné  pour vos formations http://yoandemacedo.com/blog/nfopreneurs-proposez-un-paiement-fractionne-pour-vos-formations Préparer une formation et la vendre sur le web est un travail conséquent. Il n'est pas rare de vendre un tel travail 150, 200 euros ou plus.

Ce n'est pas une somme énorme pour se former et acquérir de nouvelles connaissances  / compétences.

Toutefois, pour un internaute n'ayant pas l'habitude de payer pour se former, 200 euros peut être un frein.

Proposer un paiement fractionné à vos clients peut être un excellent levier pour développer vos conversions. Payer 200 euros sur 5 mois par exemple permet au client d'étaler son paiement. Son investissement a un impact beaucoup plus faible sur son budget mensuel. 

J'ai développé un module woocommerce pour ajouter cette possibilité.

Vous pouvez acheter le module en vous rendant sur cette page.

]]>
Premier retour d'expérience sur la vente d'un plugin WordPress http://yoandemacedo.com/blog/premier-retour-dexperience-sur-la-vente-dun-plugin-wordpress Vendre son propre produit est une envie souvent présente lorsqu'on propose de la prestation de services. J'ai fait plusieurs tests et j'ai finalement décidé de tenter l'aventure des modules WordPress en commençant par un plugin lié au e-commerce.

Une de mes questions était la suivante : "peut-on encore aujourd'hui décider de vendre des plugins et en vivre ?". Avant d'aller plus loin, sachez que je n'ai pas encore la réponse me concernant mais certains sont encore récemment passés d'un modèle "agence" vers un modèle "produit". Je vous propose de lire un article à ce sujet.

Concernant mon retour d'expérience, je n'ai (pour l'instant) pas beaucoup communiqué sur ce premier produit à part sur ce blog. Mais, rien qu'avec cette petite communication, j'en vends régulièrement. Alors, clairement, ça ne suffit pas et ma principale activité est toujours la prestation de services. D'ailleurs je ne dis pas qu'il faut absolument passer d'un métier de prestation de services à la vente d'un (ou plusieurs) produit(s). Tout dépend ce que l'on souhaite (et ce qu'on aime) faire. Personnellement, pouvoir dissocier revenu et temps passé et ne pas seulement "vendre du temps" est quelque chose qui me questionne depuis longtemps et j'ai clairement envie de m'orienter progressivement vers la partie produit. Pour cela, j'ai encore besoin d'expérimenter, de trouver d'autres produits mais ce premier retour est positif.

Je vais donc ressortir le même conseil que j'ai lu (et entendu maintes fois) et que j'ai pourtant mis beaucoup de temps à suivre : il ne faut pas attendre et tester rapidement. Sinon, on hésite, on tatonne, on ressasse et on ne passe pas à l'action.

]]>
Détecter la mise à jour d'un plugin WordPress http://yoandemacedo.com/blog/detecter-la-mise-a-jour-dun-plugin-wordpress Si vous développez des modules WordPress, il est probable qu'entre deux versions d'un plugin, vous souhaitiez modifier la base ou réaliser un traitement particulier. WordPress ne dispose pas de mécanisme à ma connaissance permettant de détecter le changement de version d'un plugin. Il n'y a pas de hook pour ça.

Il est donc nécessaire de réaliser son propre système afin de résoudre ce problème.

Tout d'abord, il suffit de mettre en place une constante dans votre code définissant la version actuelle. De mon côté mes plugins sont des classes avec un squelette du type (je vous passe les headers de WP) :

    class MonPlugin(){

        /* Mes attributs */

        public function __construct(){
            register_activation_hook( __FILE__, array($this, 'install'));

            /* Je déclare ici les connexions aux autres hooks ... */

        }

        public function install(){
            /* Je réalise ici ce qui doit être fait à l'activation du module */
        }

        public function methode1(){

        }

        public function methode2(){

        }

        /* etc ... */
    }

Imaginons maintenant que dans ma version 1.0, je ne dispose pas d'une table dans la base de données dans mon plugin mais qu'une table soit nécessaire pour la 1.1. On ne pas utiliser la methode install() puisque qu'elle n'est appelée qu'à l'activation du plugin. Si l'utilisateur remplace le répertoire du plugin puis le désactive et le réactive à nouveau, c'est bon. Mais il ne fera peut-être que remplacer le répertoire. Dans ce cas, aucun traitement ne sera réalisé.

Nous allons utiliser le hook plugins_loaded qui est appelé au chargement du plugin. Nous réaliserons ici le traitement nécessaire pour vérifier la version et la mettre à jour si nécessaire. Il est donc indispensable d'avoir une constante dans le code pour stocker la version en cours (celle du plugin disponible sur le serveur) et la version connue par WorPress (stockée en base).

    class MonPlugin(){

        const PLUGIN_VERSION = '1.1.0';

        /* mes attributs */

        public function __construct(){
            register_activation_hook( __FILE__, array($this, 'install'));
            add_action('plugins_loaded', array($this, 'load_plugin'));  

            /* Je déclare ici les connexions aux autres hooks ... */

        }

        public function install(){
            /* Je réalise ici ce qui doit être fait à l'activation du module */
        }

        public function load_plugin(){

                if(self::PLUGIN_VERSION != get_option('monplugin_version')){
                    /* La version a changé */
                    /* On réalise les traitements nécessaires en fonction des versions ... */

                    update_option('monplugin_version', self::PLUGIN_VERSION);
                }
        }

        public function methode1(){

        }

        public function methode2(){

        }
        /* etc ... */
    }

Si la version en base n'est pas la même que la constante définie dans le code alors on réalise un traitement particulier puis on met à jour la version dans la base. Avec cette méthode, vous pourrez traiter les mises à jours de vos plugins lorsqu'ils ont besoin de traitement entre deux versions.

Si le mécanisme n'était pas présent dans la première version, ce n'est pas très grave puisque l'appel à get_option('monplugin_version') ne vous retournera rien. Vous pourrez alors fixer la version manuellement car le plugin est forcément antérieur à l'ajout du mécanisme.

De mon côté, j'ai poussé le système un peu plus loin en appliquant des patchs à la chaîne. En effet, il est possible qu'un traitement soit nécessaire entre la 1.0 et la 1.1 mais aussi entre la 1.1 et la 1.2 et la 1.2 et 1.3. Que faire si un utilisateur passe directement de la 1.1 à la 1.3 ? Il ne faut pas appliquer les changements de la 1.3 seulement mais tous les changements précédents. Je définis donc les changements entre 1.0 et 1.1, 1.1 et 1.2, 1.2 et 1.3 et j'applique tous les patchs nécessaires entre la version installée et la nouvelle.

]]>
Pourquoi je ne m'intéresse pas vraiment au bitcoin ? http://yoandemacedo.com/blog/pourquoi-je-ne-minteresse-pas-vraiment-au-bitcoin On m'a plusieurs fois demandé si j'avais des bitcoins, si je m'intéressais au sujet. Je n'ai jamais acheté de Bitcoin et je n'ai pas l'intention d'en acheter pour l'instant (ni une autre cryptomonnaie par ailleurs).

Clairement, l'idée derrière les cryptomonnaies me plaît. Le fait d'avoir des monnaies décentralisées, une éthique différente est un sujet forcément intéressant surtout pour un informaticien passionné par le web. Cependant, je n'aime pas ce qui se passe actuellement et ce dont on entend parler. On met rarement la cryptomonnaie en avant pour des projets de qualité mais surtout pour l'argent que récolte ceux qui l'échangent. Pour l'instant, je n'entends que "levée de fond", "le bitcoin vaut 10 000$", "le bitcoin vaut 12 000$" ... mais pas grand chose de très novateur. D'ailleurs la volatilité de cette monnaie ne me rassure pas.

Le problème, c'est que j'ai l'impression qu'il se passe plus ou moins la même chose que dans la finance traditionnelle mais avec encore moins de règles. On pourrait aussi parler de la consommation électrique nécessaire pour "miner" cette monnaie. C'est assez inquiétant. Cependant, je ne connais pas à fond le sujet, loin de là et c'est peut-être un ressenti dû aux articles qui circulent sur le sujet qui pointent beaucoup le côté spéculatif. J'attend de voir des projets vraiment intéressants utilisant la blockchain et les cryptomonnaies avec une éthique derrière. Ils sont probablement déjà là et encore méconnus.

Le jour où je pourrai utiliser une monnaie différente dans ma vie quotidienne, pratique, et avec un vrai projet derrière, je verrai les choses diféremment.

]]>
Calmer la pompe à dopamine http://yoandemacedo.com/blog/calmer-la-pompe-a-dopamine J'ai commencé la méditation fin 2013. J'en ai parlé à plusieurs reprises sur ce blog.

J'utilisais une application dédiée sur mon téléphone qui me servait de compte à rebours avec un petit son en début et fin de séance.

L'application donne tout un tas de statistiques et propose une fonctionnalité spécifique sur laquelle je souhaite m'attarder. Après chaque séance, elle incrémente un compteur affichant le nombre de sessions consécutives réalisées. Si vous manquez une journée, il repasse à zéro.

Il m'est arrivé depuis 2013 de manquer peut-être quatre, cinq séances (je ne sais plus exactement). Bref, le compteur était autour de 1300/1500 il y a quelques jours. Puis, lundi dernier, je vois "1". J'ai raté une session le week-end qui précédait ou j'ai eu un souci avec l'application (j'avoue que je ne sais pas et ce n'est pas très important).

Au moment où j'ai vu ce "1", j'ai ressenti une frustration importante. J'avais "brisé" la chaîne. Cette technique est bien connue et elle est plutôt efficace lorsqu'on souhaite créer une nouvelle habitude. Une fois que le compteur a été suffisamment incrémenté, notre cerveau déteste le voir repasser à 0.

Toutefois, je n'ai pas apprécié ce ressenti. La méditation est un moment qui doit apporter une certaine sérénité. Finalement, j'ai simplement besoin d'avoir une notion de temps pour arrêter la séance quand je le souhaite.

J'ai décidé de ne plus utiliser d'application dédiée pour ça et le compte à rebours natif de mon téléphone conviendra très bien.

Cette histoire ne va pas changer le monde, j'en conviens. Je voulais juste mettre en avant les réactions que peuvent induire une application simplement à travers son design. Se sentir hyper frustré en voyant un compteur se mettre à 0 est-il nécessaire ? Normal ?

Ce phénomène est souvent utilisé pour rendre les utilisateurs addicts à des jeux, des apps diverses. C'est la dopamine générée par le cerveau à travers la stimulation du circuit de la récompense qui explique ces sensations. On pourrait se dire que lorsqu'il s'agit d'une activité bonne pour la santé : méditation, sport, etc ... C'est plutôt positif. Chacun placera le curseur où il le souhaite mais je crois qu'il est important d'en avoir conscience.

On peut aimer la technologie mais aussi en refuser certaines facettes même en étant développeur web. L'arrivée du smartphone a été une véritable révolution avec de nombreux points très positifs.

Toutefois, en prenant du recul, on peut difficilement nier que certains comportements engendrés peuvent aussi être néfastes. Il est, je crois, nécessaire de reprendre le contrôle.

A ce sujet, je vous invite à regarder ce reportage diffusé sur France 2 la semaine dernière.

]]>
Ethique à la Silicon Valley http://yoandemacedo.com/blog/ethique-a-la-silicon-valley Décidément, on ne compte plus les tentatives de rédemption chez d'anciens salariés / dirigeants ayant oeuvré chez un géant de la Silicon Valley.

Cette fois, il s'agit d'un ancien haut placé chez Facebook. (Lire l'article de Usbek & Rica).

Il regrette ce qu'est devenu le réseau social et semble par ailleurs parler du système en général et va très loin dans sa critique.

Pour lui, « les boucles de rétroaction court-termistes stimulées par la dopamine que nous avons créées détruisent la façon dont notre société fonctionne ». Oui il va loin.

Je me demande si cette prise de conscience chez toutes ces personnes est complètement honnête mais si elle l'est, c'est appréciable. J'espère qu'elle aboutira à modifier certains services en donnant au design éthique la place qu'il devrait occuper.

Ces outils ont un pouvoir de plus en plus grand sur nos vies et donc une grande responsabilité.

Personnellement je n'utilise plus les réseaux sociaux depuis longtemps maintenant et franchement ils ne me manquent pas. Il m'arrive de jeter un oeil de temps en temps à une info précise via la colonne dédiée du moteur de recherche Qwant. Clairement, j'ai été accro durant une période et j'ai compris que ce n'était pas bon pour moi. Cet affollement général dans l'utilisation des réseaux sociaux a probablement échappé à leurs créateurs. Certains s'en rendent compte et regrettent. Ce n'est pas une affirmation mais un ressenti de ma part.

]]>
La neutralité du net menacée http://yoandemacedo.com/blog/la-neutralite-du-net-menacee Aimeriez-vous que votre opérateur internet (ou mobile) limite l'accès à quelques sites pour un forfait de base avec un surplus pour accéder à l'ensemble du web ? Que certains services soient plus lents que d'autres en fonction de votre forfait ?

Moi, non.

Aux États-Unis, le risque est de plus en plus grand. La FCC (commission fédérale des communications américaines) est bien partie pour faire disparaître ce principe de neutralité du net en vigueur jusqu'à aujourd'hui. C'est bien triste.

En Europe, pour l'instant, ce n'est pas le cas et ce n'est pas d'actualité. Toutefois, des opérateurs ont déjà tenté quelques actions un peu obscures à ce sujet. Certaines ont été interdites mais d'autres sont encore en suspens. Au Portugal, par exemple, une récente polémique a vu le jour. Un opérateur propose des forfaits "messagerie" , "réseaux sociaux", "musique" ...

Un précédent encore plus inquiétant a eu lieu en Inde (Voir un article à ce sujet). Heureusement le régulateur a refusé.

Sur le principe, on pourrait se dire pourquoi pas ? Laissons les opérateurs proposer les forfaits qu'ils veulent et si quelqu'un n'utilise le web que pour les réseaux sociaux alors pourquoi ne pourrait-il pas prendre un forfait adapté ? Si on s'arrête là, effectivement pourquoi pas.

Sauf que derrière cette idée se cache de grands dangers. Que se passerait-il si un géant du web offre un forfait aux utilisateurs en donnant accès à l'ensemble de ses propres services et à quelques services partenaires et bloque le reste du web ? Grâce la puissance marketing dont dispose ce géant, il pourrait populariser son offre très rapidement. De nombreux utilisateurs se disant qu'ils n'utilisent finalement pas grand chose sur le net à part les services du géant se diraient : "Ok tant pis pour les quelques sites auxquels je n'aurai plus accès, j'opte pour un forfait gratuit". Ces utilisateurs se retrouveraient donc enfermés dans un "pseudo web". Il serait donc relativement facile de leur afficher les actualités qu'on souhaite leur mettre en avant, la musique qu'ils doivent écouter, les livres intéressants ou pas, etc ... Les algorithmes de classement sur de nombreux services, ont déjà ce pouvoir. Si l'utilisateur est en plus limité à quelques sources d'informations, l'effet est démultiplié.

Je ne parle même pas des difficultés pour de nouvelles entreprises (startups ou autres) qui souhaiteraient se faire une place (sachant déjà qu'aujourd'hui une grande partie de leur trafic dépend des géants) sur la toile (qui n'aurait plus guère ressemblance avec une toile d'ailleurs).

Personnellement, je trouve ça effrayant. C'est le contraire des fondations d'Internet, de son ouverture. J'espère vraiment qu'une prise de conscience aura lieu sur tous ces sujets qui parfois semblent secondaires pour les internautes mais dont les conséquences sont très loin d'être négligeables.

]]>
Grav un CMS sans base de données http://yoandemacedo.com/blog/grav-un-cms-sans-base-de-donnees Ce blog a tourné sous Dotclear, Thelia, Wordpress puis un cms maison à base de Thelia. J'ai enchaîné les htaccess pour paramétrer des redirections afin de sécuriser le référencement, créer plusieurs scripts pour migrer les données d'une base à une autre.

On m'a cité le CMS Grav il y a quelques jours. Je suis allé jeté un oeil à leur site et le concept m'a intéressé. Grav est un CMS Flat File (sans base de données). Je n'avais encore jamais testé ce type de CMS dont on entend de plus en plus parler. Plus que le côté Flat File, la modularité de l'outil, les concepts derrière et la documentation ont vraiment attiré mon attention.

J'ai décidé d'utiliser une fois de plus mon blog pour expérimenter en le passant sous Grav. Par la même occasion, j'ai voulu poursuivre plus loin le côté minimaliste de celui-ci en créant un thème très léger.

J'ai commencé par installer Grav sur ma machine. Une archive à décompresser et c'est fait.

Ensuite, il était nécessaire d'importer mon contenu en provenance d'une base Thelia vers Grav. J'ai développé un script de migration. Cette fois il m'a suffit de créer des répertoires et des fichiers. N'oubliez pas que Grav utilise des fichiers plats. N'ayez pas peur, derrière c'est optimisé, mis en cache etc. D'ailleurs pour publier, vous pouvez utiliser l'interface d'administration ou tout simplement éditer des fichiers textes. Le contenu peut être écrit en utilisant markdown.

L'interface d'administration est simple, propre et agréable à utiliser.

Étape suivante : créer mon thème. Grav utilise le langage de templating Twig que je n'avais jamais approfondi jusque là. C'était donc le moment. C'est relativement simple. On pourrait discuter de l'intérêt d'un langage de templating. J'ai échangé avec le lead developer de Grav à ce sujet. Finalement Twig est bien pratique. L'héritage de template, notamment, est très utile.

J'avais besoin d'un champ supplémentaire pour mes contenus. Après avoir jonglé avec la doc et parcouru quelques posts sur le forum de Grav, c'était fait. J'ai pu découvrir de nouveaux concepts implémentés dans l'outil par la même occasion. Franchement, c'est bien pensé et puissant.

Mon blog tourne désormais avec le CMS Grav. J'ai envie d'étudier cette application plus précisément et de créer quelques plugins. J'ai encore pas mal de documentation à lire et de tests à faire.

J'ai décidé d'ouvrir un blog dédié à ce sujet ainsi qu'une newsletter. Pour vous abonner, c'est ici. Si vous voulez découvrir un nouveau CMS, je vous conseille vraiment de l'essayer.

]]>
Piwik http://yoandemacedo.com/blog/piwik J'ai décidé d'installer Piwik.

Ceux qui me connaissent depuis longtemps savent que le logiciel libre me passionne. Toutefois, je ne suis pas fermé au logiciel propriétaire lorsqu'il est de qualité (même si je préfèrerai qu'il soit libre bien entendu). Je travaille sous Mac OS X par exemple que j'apprécie beaucoup. Il n'est en revanche pas impossible que je retourne à Linux prochainement côté "Desktop" (car j'utilise toujours Linux côté serveur).

Mais, j'ai utilisé de plus en plus d'outils propriétaires dans le "cloud" par facilité mais aussi parce qu'ils sont souvent très bien réalisés, il faut le dire.
Cependant, des alternatives libres pour la plupart de ces outils existent et elles sont bien souvent excellentes aussi.

Il faut parfois sacrifier un peu de confort mais j'ai décidé de migrer certains services vers des alternatives ouvertes pour reprendre davantage la main sur mes données personnelles.

J'ai donc décidé d'utiliser Piwik comme outil de statistiques sur ce blog.
Si vous n'avez jamais entendu parler de cette application, c'est un outil analytics libre très pratique et puissant.

N'ayant pas besoin de suivre précisément les utilisateurs ici, j'ai décidé de ne pas utiliser le tracker déposant un cookie sur le navigateur de l'utilisateur.

Si vous souhaitez découvrir Piwik, c'est par ici.

]]>
Qwant http://yoandemacedo.com/blog/qwant J'ai fait de Qwant mon moteur de recherche par défaut. Rien de tel pour se faire une idée du produit. Je n'ai absolument pas essayé de comparer le résultat de requêtes avec d'autres moteurs de recherche. Bien entendu ce ne seront pas forcément les mêmes. Il sera peut-être moins pertinent dans certains cas, meilleur dans d'autres. Je ne cherche pas à réaliser ce genre de comparatif.
Si je trouve rapidement l'information que je cherche et que la qualité de la réponse mon convient, c'est ce que je demande ;)

Et franchement, je suis très agréablement surpris. Le moteur fonctionne très bien. J'apprécie beaucoup les raccourcis proposés : les qwick.
En tapant &php array_map dans ma barre de recherche, j'arrive directement sur la page qui présente la fonction array_map sur le site de PHP par exemple. Des qwick, il y en a plein. Pour Wikipedia, le bon coin, la Fnac ..

Depuis un moment, je ne suis plus les réseaux sociaux pour différentes raisons. J'en ai déjà parlé sur ce blog.
Sur plusieurs requêtes réalisées avec Qwant ces derniers jours, je me suis retrouvé à lire la colonne "Social" sur la droite (sur la version desktop) qui proposait des informations intéressantes. Au départ la présentation en 3 colonnes peut sembler déroutante. A l'utilisation je trouve que c'est une très bonne idée.

Je ne sais pas encore si Qwant restera mon moteur de recherche par défaut, j'ai encore besoin de le tester mais c'est plutôt bien parti.

Tester des alternatives aux services qu'on utilise quotidiennement mérite le détour. Certains se diront : mais pourquoi ?
Ce qui m'a donné envie d'essayer Qwant par exemple, c'est parce que c'est un produit français et que j'apprécie la notion de respect de la vie privée que l'outil met en avant.

]]>