URL Rewriting sous NGINX

nginx

Suite à mon post sur l’installation de NGINX avec le support de PHP5, il est intéressant de voir comment faire ce qu’on fait le plus souvent avec un .htaccess sous Apache : de l’url rewriting.

Read more…


Utiliser localStorage sur tout les navigateurs

LocalStorage

Introduction

Avec l’arrivée d’HTML5, de superbes nouvelles techniques trop cool ont débarqués. LocalStorage en fait partit. LocalStorage permet de stocker sur la machine de l’utilisateur, dans une sandbox accessible uniquement par le site qui crée les données, des données pour ensuite les lires / éditer / supprimer.

“Tu veux dire comme des cookies ?”

Pas vraiment non. LocalStorage s’affranchit des limites des cookies ( 4kb max de donnée, chargement a chaque fois des données même si on ne s’en sert pas). De plus, puisque les cookies ont longtemps été utilisé pour espionner les gens, de plus en plus les désactivent dans leur navigateur, ou les efface. Du coup on perd les données enregistrés par effet de bord à cause des annonceurs peu scrupuleux (mais bon c’est leur boulot après tout). LocalStorage ne connaît pas ce problème.

Read more…


Installer NGINX avec PHP5

nginx

Je me suis récemment plongé dans la problématique d’installer un serveur avec nginx et PHP (en plus d’un SGBD très light, exit mysql donc). Ici je me suis concentré sur le fait d’utiliser fastCGI pour spawn le service PHP5 et forwarder les requetes faites à NGINX pour des fichiers PHP vers fastcgi_php. Attention , ce n’est pas la solution la plus efficace mais c’est celle que j’ai testé en premier. Je devrais publier bientot un tuto pour php5-fpm d’ici quelques temps.

Read more…


Récupérer les coordonnées GPS depuis une adresse

map-tooltips

Petit snippet de code afin de récupérer des coordonnées GPS depuis une adresse. Le code va aller interroger Google Maps et récupérer le résultat le plus probant, et retournera ses coordonnées GPS, très pratique dans le cadre de custom metabox WordPress :)


WordPress Flickr Manager 3.0.1

2336546045_b6c5915920_b

WordPress Flickr Manager, dont j’avais déjà fait un portage / correction ici, n’est plus disponible sur les dépôts WordPress depuis peu. Pire la dernière version qui a jamais été disponible publiquement était la version 2.X alors qu’une version 3.0 & 3.0.1 sont sorties.

Comment faire pour récupérer la dernière version me dirais vous ? Simple :

  1. Rendez vous sur le dépot miroir sur github
  2. Téléchargez le plugin via le bouton « ZIP » ( ou cliquez ici)
  3. Désactivez le plugin dans wordpress
  4. Ecrasez les fichiers en envoyant le tout avec votre logiciel de FTP favori
  5. Réactivez le plugin

Voila, normalement le plugin conserve toute les options y compris la connexion à l’api flickr. Cette mise à jour apporte le support avec les dernières versions de WordPress mais aussi de nouveaux modes d’affichage des images (y compris la méthode native WordPress), mais aussi la possibilité de mettre un lien vers la photo flickr d’origine, le partage des photos sur les réseaux sociaux, …


Sélectionner des données dans des arbres en jQuery

jstree

Le besoin du jour rencontré dans le cadre de mon travail chez absolu payment est d’avoir une méthode de sélection multiple de donnée dans une liste, depuis un arbre de données.

Ne pouvant utiliser <optiongroup> puisque bien que le W3C encourage les user agents à supporter une version imbriquée (nested) en pratique aucun navigateur ne supporte cela à ce jour, impossible donc d’avoir une balise autre que <option>.

Découverte après quelques recherches du très bon plugin intégré plus ou moins à bootstrap, chosen, malheureusement celui ci se base sur une implémentation à base de <optiongroup> et l’on retombe vite sur les mêmes problématiques.

Autre option plus ou moins satisfaisante, passer par des select boxs multiples, générés dynamiquement, avec un plugin jQuery très bien fait. Possible mais écarté du fait de l’encombrement que va vite prendre cette solution si l’on veux pouvoir sélectionner plusieurs éléments.

Après quelques recherches supplémentaires, je tombe sur le plugin jstree qui permet de manipuler un arbre de données (typiquement ce que j’ai en termes de structure de données et qui semble parfaitement convenir à mes besoins, d’autant que celui ci supporte :


SocialSharePrivacy , plugin jQuery

socialshareprivacy

Précédemment je vous ai parlé des problématiques de cookies qui surviennent ses derniers temps en Europe. Et nous avons découvert quelques solutions pratiques, généralistes.

Cependant, on peut aussi voir la problématique d’un point de vue confidentialité. En effet, comme on l’as vu , les réseaux sociaux comme Google+, Twitter & Facebook tracent notre activité via les boutons de partage. Et en tant que distributeur de contenu, éditeur de site, etc … nous souhaitons peut être permettre à nos lecteurs de faire le choix de se faire “fliquer” ou non; de ne pas leur imposer cela par défaut.

Dans cette optique, j’ai découvert récemment le plugin jQuery SocialSharePrivacy qui permet d’afficher une version désactivée des boutons Twitter, Facebook & Google+ , que l’utilisateur pourra activer via un interrupteur. A ce moment là le (ou tous) “vrai” bouton de partage est chargé et l’utilisateur peut l’utiliser comme d’habitude. De plus un cookie est enregistré pour se rappeler du choix de l’utilisateur d’activer tel ou tel bouton de partage sur votre site (oui sinon ça deviendrais vite chiant). Et comme c’est une action utilisateur qui déclenche l’enregistrement du cookie, les nouvelles restrictions que l’on à vu précédemment ne s’appliquent pas. Elle est pas belle la vie ?

Bon donc voila, je vous faire découvrir le plugin mais vous vous rendez compte que tout est en allemand. Comme la licence est une MIT, je me suis dit que je pourrais faire un fork en anglais / français et le proposer librement, sous cette même licence. Mais bon, seulement si certains d’entre vous y manifestent un intérêt certains, sinon … Donc n’hésitez pas à me dire si cela vous intéresse en commentaire.

EDIT : Apparement il existe deja une version anglaise sur github


Histoire de Cookie

4342155360_1ba2135858_z

En application de la directive européenne 2009/136/CE transcrites dans plusieurs pays européens (dont la Grande-Bretagne, la France & le Luxembourg) il va être obligatoire de demander à l’internaute sont consentement pour stocker tout cookies qui aurait pour autre finalité que stocker les préférences linguistiques, la mémorisation d’un mot de passe, la résolution d’une video visionné en ligne, un cookie flash ou la mémorisation d’un panier d’achat.

Concrètement la commission européenne souhaite limiter les possibilités de stocker des cookies tierce partie ; qu’ils soient de réseaux sociaux (via la bouton twitter, like de Facebook, +1 de Google, …) ou de régies publicitaires (doubleClick, AdSence, …) et oblige donc les éditeurs de site internet de demander expressément à l’internaute d’autoriser l’implantation de cookie. Ce choix étant mémorisé via un cookie … Comble de l’ironie non ? Surtout quand on pense aux nombreux internautes qui ont pris la bonne habitude de supprimer leurs cookies à la fin de leur session de surf & qui devront donc encore et toujours reconfirmer leur choix …

Solution Coté Éditeur

Il existe deja des scripts comme cPrompt pour afficher un message à l’internaute, stocker la réponse dans un cookie s’il n’as pas déjà répondu et afficher les éléments qui vont stocker des cookies dans son navigateur s’il l’autorise. Cependant cela souffre de graves problèmes d’UX. Qui n’as jamais pesté lorsqu’il arrive sur un site et se mange une pop-up / disclamer avant d’accéder au contenu ?

Solution Coté Navigateur

Il y a aussi un autre problème selon moi, ce réglage devrait être le fait du navigateur, pas de l’internaute. Pleins de navigateurs permettent deja de choisir entre :

  • Accepter tout les cookies
  • Accepter les cookies du site mais pas les cookies tiers
  • Refuser tout les cookies

Et en plus ils gèrent des listes d’exception. Il suffirait donc de revoir un peu l’interface qui permet de jouer avec ses réglages, comme en facilitant la possibilité d’ajouter des exceptions à la volée.

Responsabilité des services tiers

Et concernant les cookies tiers, il me semblerais juste que ce soit au service tiers de requérir l’autorisation de l’internaute de placer des cookies. Cela permettrais de ne pas requérir sur chaque site l’implantation de cookies tiers d’un même service tiers, mais aussi de simplifier l’application de la loi.

Mini FAQ

Cette loi est elle donc mauvaise ?

En soit non, c’est une belle avancée dans la protection de la vie privée des internautes, il est juste regrettable de voir que sur l’autel de la sécurité on sacrifie l’expérience utilisateur (et qu’une fois de plus on préfère légiférer plutôt qu’éduquer un minimum les gens).

Qu’encoure t on ?

Dans les pays où le délais impartit à l’application du dispositif, comme la Grande Bretagne, il vous en coutera £500 000 d’amende. En France comptez €300 000 , mais rassurez vous le délais de mise en place n’est pas encore dépassé.

Est ce applicable ?

Personnellement je pense que non. Comme toute lois qui tente de contraindre les Internets, il ne faut pas oublier que le cadre des lois est difficilement mondial, alors que les Internets le sont. Contraindre une partie des Internet n’as pas de sens en soit et est quasi impossible.

Est ce contournable ?

Je crois entrevoir une possibilité de contournement de la loi, via notamment ce qui est appelé un « cookie flash ». En effet Flash gère lui même ses cookies dans un espace sandboxé en dehors du navigateur. Ainsi si vous supprimez les cookies de votre navigateur, les cookies flash persistent. Ce n’est pas la seul technologie qui fait cela, Silverlight en fait autant, Java aussi il me semble. Quoi qu’il en soit en autorisant les cookies flash, il suffira aux éditeurs de passer sur ce genre de solutions pour contourner la loi, ou sur bien pire.

Plus d’infos

Credit Photo


Fedora : Rhythmbox et fichiers audios

rb-auto-playlist

Depuis mon installation fraiche de Fedora je n’ai jamais réussis à lire des fichiers audio avec rhythmbox. Pourtant GStreamer est bien présent. Jusque maintenant j’utilisais VLC mais ce dernier à décider de ne plus fonctionner de manière optimum. Je me suis donc penché sur mon pb de codec non présent bien que GStreamer m’assurais le contraire

Read more…


scrollTo() jQuery sans plugin ?

2378867408_4cc90791d6_z

Aujourd’hui j’ai eu besoin de me passer du (apparemment seul) plugin qui permet de faire un .scrollTo(position) en jQuery pour la simple et bonne raison qu’il plante avec ma méthode de détection de Chrome et du numéro de version.

(oui j’arrive à détecter chrome / safari indépendamment et leur version, et non « webkit »)

Ni une ni deux quelques recherches sur internet et me voilà qui bricole un script jQuery natif, qui n’utilise pas de plugin et qui permet de lancer un scroll de l’utilisateur pour l’amener à une position précise de la page, le tout avec une animation.

Voici donc ce que cela donne, j’ai volontairement zappé la structure de la page dans ce code, puisque c’est simplement pour vous montrer comment j’ai procédé, de même qu’il ne faudra pas oublier d’initialiser jQuery & jQuery UI et de faire tourner le bout de code après un $(document).ready() hein ;)

Voir la démo sur JSFIDDLE

 

 

Crédit Photo