Sobre Marc

Ici c'est moi. Fin

De l’apprentissage du web

S’il est une profession libérale, ce doit bien être celle de l’intégration web. Toutes les meilleures ressources, les meilleures pratiques et les meilleurs exemples concrets sont sur la toile, accessibles, bien documenté et facile à trouver.

Utilisant des standards ouverts, tout du web peut être copié, utilisé, décortiqué. Il n’y a aucune raison de ne pas être à la page et au meilleur de ses capacités quand on fait du web «frontend.»

Il est aisé de constaté les limites des développeurs ou les limites de leurs gestionnaires. Quand on tourne les coins rond en web, ça parait!

Dans le monde du logiciel libre, un adage qui circule est que pour faire du bon code il faut avoir vu du bon code. Le bon code est souvent révisé par de pairs, modifié par leurs suggestions, critiqué par la communauté d’utilisateurs et encore modifié avec le temps.

Le processus de création de code est un d’ouverture et d’humilité.

Faites du bon code, il n’y a pas d’excuse pour faire autrement.

(Premier article de blogue rédigé sur mon iPad. Je n’ai pas Antidote, soyez indulgent quand à la qualité du Français ;) )

AuthPuppy pour WordPress à la sauce ZAP

AuthPuppy est chez ZAP depuis presque 2 mois maintenant et je travaille, dans mes temps libres, à finir la migration. Une des raisons qui explique le délai est qu’il n’existe pas de plugin bien documenté et fonctionnel pour AuthPuppy et WordPress.

Celui qui existe est développé par Île sans fil, mais je n’ai pas compris son fonctionnement rapidement et quand j’ai compris, je l’ai trouvé trop compliqué. J’ai donc décidé de faire le mien, qui supporte très peu de scénarios d’utilisation, mais celui qu’il supporte est, selon moi, le plus facile à utiliser.

Mon scénario

Chez ZAP, l’authentification se fait maintenant par l’adresse MAC. Ce qui veut dire qu’il n’est pas nécessaire de supporter la connexion des usagés. De plus, dans l’objectif de réduire la complexité pour l’utilisateur, la page de connexion est standardisée pour tous.

Le plugin ExternalCMS permet une redirection vers n’importe quel lien externe. Naturellement, le meilleur CMS du monde est WordPress, il est donc naturel que ce soit celui qui ait été retenu chez ZAP.

L’utilisation est simple: L’usagé ce connecte sur un point ZAP, est redirigé vers la page de connexion consolidée (la même maudite pour tous) et, quand il a appuyé sur «Naviguer», on y voit la page de contenu du point ZAP.

Tout ce qu’il faut, c’est donc que l’usagé soit redirigé vers une page cohérente, selon son contexte (son point d’accès ZAP).

J’ai donc développé un petit plugin (encore en développement d’ailleurs) qui permet de déterminer et afficher un contexte pour l’usagé. Il s’appelle, tout simplement AuthPuppy ZAP (APZ). Ce qu’il fait est très simple, il s’insère dans blogoption(‘name’) et ajoute quelques fonctions pour les développeurs de thèmes ou de widgets.

blogoption(‘name’)

APZ s’insère quand le développeur essaie d’aller chercher le nom du blogue, dans le thème. Si l’adresse du blogue est une node ID valide pour AuthPuppy, c’est le nom du node qui remplacera le titre du site.

Dans le thème de ZAP, l’acronyme «ZAP -» est aussi retiré, afin de faciliter l’affichage.

Nouvelles fonctionnalités

Pour le moment, APZ introduit une seule nouvelle fonction pour les thèmes: apz_connected_users. Cette fonction permet d’afficher le nombre d’usagé en ligne sur un point d’accès.

Cache et «failover»

APZ inclut l’utilisation obligatoire de Cache_Lite. Cette inclusion permet de diminuer le nombre de requêtes sur le serveur d’authentification, qui est le plus sollicitée dans l’exploitation d’un organisme qui fournit du WiFi. Il y a aussi un failover pour les requêtes HTTP. Si elles échouent, les informations de la node ne sont pas récupérées, sans toute fois affecter le bon fonctionnement du thème.

 

Nous sommes dans le processus de migration vers AuthPuppy chez ZAP Québec et j’écris comment se passe la migration. Je vais le publier une fois que nous serons actifs sur la nouvelle plateforme.

Points on a map

«Points on a map» est une page que j’ai développée en ~1h pour afficher les résultats CSV que l’application SpeedTest génère sous iPhone ou Android.

C’est simple, tous ce qu’il y a à faire c’est copier-coller le contenu de votre fichier CSV dans la boîte de texte et appuyer sur ENTER. Voilà!

Les marqueurs ont deux couleurs: celle de gauche détermine la vitesse d’upload et celle de droite la vitesse de download.

Cliquer sur une bulle vous donne des données plus précises sur les vitesses et le ping.

Pour le moment j’utilise Dropbox pour l’héberger: http://dl.dropbox.com/u/63871/pointsonamap/index.html

L’outil ne garde aucune donnée. Ça pourrait être pratique pour avoir des cartes de couvertures cellulaires, mais pas dans un avenir proche, je n’ai pas le temps.

La question adresse MAC vs compte utilisateur — dans le cas de ZAP

Je suis un «evil genius.» En arrivant sur le CA de ZAP, je pensais pouvoir manipuler les pantins, tirer les bonnes ficelles et inviter les bonnes personnes au restaurant afin de pouvoir retirer l’étape d’identification par nom d’utilisateur au réseau de ZAP Québec.

Quelle ne fut pas ma surprise de voir que l’idée existait au sein de l’organisme. Elle n’avait jamais vu le jour, du, principalement, à des contraintes de flexibilité de WiFiDog, le logiciel qui rend ZAP Québec possible.

Je suis le premier à décrier l’authentification sur Wifidog, parce que ça cause la majorité des maux de tête des usagés.

Utilisation de la MAC, le débat fait rage

Du point de vue ZAPien, l’avantage d’utiliser les adresses MAC sont:

  • Plus de questions sur la procédure de connexion qui cause problèmes aux utilisateurs, commerçants et bénévoles.
  • Moins de pression sur les serveurs (un des problèmes qui viennent avec le succès :P ). On peut mettre les ressources serveur à soutenir plus de connexions et moins de distributions d’images et autre contenu web.
  • Temps de réaction plus rapide pour bloquer les utilisateurs abusifs du réseau, ce qui protège les commerçants contre les factures élevées de consommation de bande passante.

Le gros point de pression est que l’adresse MAC est quelque chose de très facile à cloner ou imiter. Ce qui veut dire, comme l’indique Xavier Jacques Côté sur Twitter, que quelqu’un pourrait utiliser l’adresse MAC d’une personne et monter un dossier délinquant. On peut aussi penser qu’un utilisateur pourrait changer sa MAC pour éviter les limites du réseau—7go de transfert mensuellement.

Il a aussi été soulevé que pour avoir une communauté forte, il fallait une identification des participants. Je pense qu’il n’en est rien, mais je ne vais pas m’aventurer sur ce terrain. J’ai des collaborateurs beaucoup plus compétents que moi pour ces questions. (allez demander à @isatruc)

Il faut savoir que l’identification avec courriel et mot de passe n’est pas parfaite non plus. Outre les gens qui utilisent des mots de passe faibles, on peut facilement se créer un autre compte lorsque notre premier est saturé dans son utilisation. Le blocage par adresse MAC est une mesure de 2e niveau, face à des délinquants plus persévérants.

Le monde n’est pas parfait (omg, je philosophe), il serait probablement plus agréable s’il était géré par des adresses MAC.

Un futur modulaire

Avec l’arrivée d’AuthPuppy en bêta, c’est le moment idéal pour tester l’identification par MAC. AuthPuppy est le remplacement de WifiDog en tant que portail de gestion. Il est construit de manière modulaire, donc on peut facilement retirer l’identification par utilisateur pour une méthode alternative.

Évidament rien ne tout cela n’existe encore. Il faudra trouver des gens pour développer et tester ce projet. Je pense que c’est une avenue intéressante pour ZAP.

Vous pouvez lire le point de vue de Xavier sur la question

Je vous donne tous mes secrets du même coup

  • Parlez-vous;
  • Restez calme;
  • Apprenez à lire;
  • Lisez quand on vous donne un bout de papier;
  • Écoutez les gens quand ils vous parlent;
  • Composure;
  • Arrêtez de me faire chier avec vos enfantillages.

Voilà, c’était pas si compliqué, avouez?

Illusions

It seems people like to believe their imagination over anything else. Given, it creates a sense of psychological stability, but it also creates paranoias, which are, for most, so far from any rational thoughts they mess up any attempt to reason, or challenge, their basic ideas.

So please, use your imagination wisely, don’t let it taint your life to a point where everything will be imaginary. I trust you can do it :P

Je vends une partie de mon geekness

UPDATE: J’ai vendu le tout. Merci!

Je vends mon iPhone 3GS et mon iPad. Woot, ben pour vous au moins :P

Pourquoi?

Demain, ou aujourd’hui, ou peu importe… le vendredi 30 juillet, le iPhone 4 est enfin disponible!

Je change pour le iPhone4. Du coup la semaine prochaine je change pour le iPad 3G, parce que je suis rendu là, c’est tout.

Est inclus

  • iPhone 3GS (la boîte, pas d’écouteur), avec fils
  • iPad (case inclus), avec fil et adaptateur 10W

On peut le voir?

Oui! sur Flick

Combien?

Je sais, mais je ne le dis pas, j’attends les offres. Vous pouvez commenter le trhead Facebook, laisser un commentaire sur comment vous joindre ou m’envoyer un mail @ mjsdesign#gmail.com.

Plus de 2 ans dans une startup

Depuis 2008 je roule ma «boss» avec MA14. MA14 c’est une startup, ok elle n’est plus très startup, sauf que pas mal tout est nouveau, il faut donc découvrir comment faire les choses.

Partir un projet, tout le monde a ses conseils. J’en ai entendu/lu une tonne et après 2 ans je me sens prêt a faire quelques commentaires sur la chose.

Ce qui semble avoir marcher pour MA14

L’énergie

On est «upbeat», c’est toujours comme ça. Ce n’est pas dans le plan d’affaires, c’est juste que quand on rencontre des gens on est motivé, c’est amusant.

Déjeuners et parties

Tous nos mandats sont venus de contacts. On est pas très performants au niveau des appels d’offres publics, du moins, pas encore. Nous n’avons pas de plateforme faite maison pour établir notre notoriété, comme un CMS ou un outil d’intelligence d’affaires. Ce que nous avons c’est une idée, un concept qui est agnostique aux technologies. Notre meilleure arme, dans ce cas, c’est d’en parler. Beaucoup de déjeuners, diners, soupers, 5 à 7, événements en tout genre.

Ne faut pas se tromper, tout ce réseautage est plutôt amusant, les gens sont intéressants, et ça a comme effet de garder la business en vie. Un de nos meilleurs mandats est venu d’un déjeuner, très médiocre (qualitativement parlant), dans un événement plate. ;)

La «passion»

Ok c’est «cheesy» et ça fait «edgy» et prétentieux. Il faut donc préciser un peu la chose. La passion c’est l’idée de toujours vouloir trouver une meilleure solution. C’est tannant, la pression est élevée, et, disons-le, ça prend du temps, mais pour une startup, livrer des mandats solides semble une clef.

Faut élaborer un paragraphe de plus. Ce que je j’entend par la passion c’est la capacité à s’engueuler durant un brainstorm, durant la prod, durant la préparation pour la livraison, la capacité à remettre en cause ses idées pour une meilleure et mettre les efforts pour livrer l’idée meilleure, peu importe quoi. Je ne pense pas que vais pouvoir faire ça encore bien des années, mais tant que je peux, je vais le faire, parce que ça donne des meilleurs projets et des sites web dont je suis plus fier.

La camaraderie

À l’époque de @LaurentLaSalle, la camaraderie c’était ce qui nous motivait à 2 h 30 du matin. Pouvoir rire de la situation et partager le moment intense de non-sommeil. Aujourd’hui  c’est encore ce qui fait notre force. La camaraderie nous permet de nous tolérer durant nos moments de confrontation ;) .

Et un peu de prétention…

Ne faut pas se le cacher, mais faut l’utiliser avec parcimonie. Personne ne veut travailler avec des gens qui n’ont pas confiance en leurs moyens. Dans un mandat, il faut savoir mettre des limites, mais il faut aussi savoir les repousser. Repousser c’est ce qui fait le plus peur, parce que l’inconnu ce n’est pas quantifiable.

Avec un brin de prétention, on peut trouver des mandats qui sont des défis, mais qui vont être livrés, serait-ce par peur de l’appréhension de l’échec.

J’ai assez parlé

Voilà, je n’en ai surement pas dit assez en en disant trop, mais c’est la vie. La prochaine fois j’écrirai sur les angoisses et les déceptions, ça intéresse toujours plus les gens :P

Réponse @FelixGenest

(Pour référence: http://felixggenest.tumblr.com/post/866932492/concours-trouver-ou-je-derape)

Je pense justement que le problème est que tu essaies d’accéder à un serveur MySQL qui n’est pas localhost. Si c’est le cas, ton serveur MySQL doit être configuré pour accepter les connexions externes. Normalement, il ne l’est pas, c’est une mesure de sécurité de base.

P.S.: Est-ce que tu utilise une classes PHP pour gérer ta connexion SQL? Sinon, tu devrais :P #bonnepratiques ;)

P.P.S.: Si c’est pas ça ton problème, dis-le dans les commentaires, je fouillerais plus en profondeur.