Sauvegarde et dramatisation d’une prise de bec avec le développeur de Ghostwriter, le thème utilisé sur le présent blog et dont je suis très content au demeurant.

En cause, l’utilisation d’un CDN (Content Delivery Network, un service de contenus centralisés dans des fermes de serveurs et distribués « gratuitement » : polices, icônes, images, etc) pour servir la police Open Sans depuis Google Fonts et le set d’icônes Font Awesome depuis MaxCDN (comprendre : depuis les serveurs de sociétés commerciales n’ayant pas vocation philanthropique sans qu’au minimum ça leur rapporte un quelconque bénéfice).

Subodorant un problème relatif à la vie privée, j’ai conscienscieusement proposé d’intégrer ces deux polices au thème, contribution à l’appui après quelques essais infructueux. Je pensais à des sous-modules Git, les sous-modules permettant de gérer un dépôt Git comme un sous-répertoire d’un autre dépôt Git.

Si cette solution simplifie la mise à jour des paquets (git submodule foreach git pull origin master et c’est chichement plié), elle n’est ni propre ni légère de mon propre aveu, puisqu’elle intègre des fichiers inutiles et qu’elle exige de le part du webmestre quelque connaissance en interfaces en ligne de commande afin de déployer le thème en question.

Sans même avoir vérifié la chose, j’accordai que cette solution aurait peut-être rendu le téléchargement du dépôt dans une archive incohérent et incomplet (sans le contenu des sous-modules), ainsi proposai-je de travailler à une solution plus propre et plus légère (chose faite), corrélativement moins fainéante.

I’d like to keep the theme as simple as possible for people to use and I think using git submodules would make things overly complicated for non technical/git users.

M’étant vu opposé un impératif de « simplicité » pour ne pas troubler le chaland, je me suis beaucoup amusé à imaginer quelque webmestre ayant installé node.js et son outil npm, sachant utiliser curl et unzip, ayant édité un fichier de configuration avec vim, nano ou un autre éditeur de texte en interface en ligne de commande, bref, j’imaginais quelqu’un étant parvenu à déployer Ghost qui perdrait subitement tous ses moyens face à git submodule init --update --recursive (la commande pour initialiser les sous-modules Git).

Ghost deploy

Par contre, ce qui me fit bondir et servit de ferment à la prose suivante fut l’argument relatif à la vie privée.

To me the benefits of the saved resources outweigh the privacy issue.

Le bénéfice en ressources informatiques l’emporterait sur les questions de vie privée.

J’ai bien évidemment intégré le patch au fork que j’entretiendrai jusqu’à résolution du problème (c’est à dire du différend), et je n’ai remarqué aucune surcharge hors-norme du serveur ; l’augmentation de la consommation de ma bande passante est tout à fait modérée. Gageons qu’un contrôle adéquat de la mise en cache fait effet, ce sur quoi je n’ai absolument aucun contrôle quant à des contenus obtenus via un CDN ce qui, j’estime, devrait inquiéter n’importe quel administrateur.

Si ces contenus sont sur mon propre serveur, un lecteur n’aura pas à attendre qu’une requête CORS soit réalisée. Si mon site répond dès la première poignée de main, les polices viendront de suite après. Se rendre dépendant de l’utilisation d’un CDN, sans même intégrer de solution alternative au cas où ce dernier lâcherait ou serait injoignable, est à mon sens un parti pris occidental et bourgeois (un bon débit, l’assurance d’une connexion stable et non filtrée). Cela exige une confiance en la non-modification des contenus liés (rien ne m’assure qu’un petit malin ne viendra pas insérer du code malicieux dans le script que je n’ai pas sur mon serveur et dont je ne peux pas vérifier l’intégrité).

Qui n’a jamais vu un site changer de gueule en cours de chargement parce que les polices venaient enfin d’être chargées ? C’est le genre d’effet que je veux éviter. Mieux : le temps de chargement de la page indiqué par GTMetrix a même diminué d’au moins une demie seconde, ce qui est un effet secondaire tout à fait appréciable.

I don’t really feel that using fonts loaded from a CDN poses a large enough privacy issue for this to be a concern.

Le chargement de polices depuis un CDN ne poserait pas un assez grand problème de sauvegarde de la vie privée pour être préoccupant.

À cela je réponds que les plus graves problèmes de vie privée sur Internet se retrouvent dans la somme des attitudes les plus bénignes. Si un administrateur ne voit pas de problème quant à l’intégration de contenus centralisés, je ne doute pas que les données de tous les sites qui utilisent telle ou telle police doivent être bien juteuses. Ces informations, recoupées avec les visites des lecteurs n’ayant pas été prévenus qu’un tiers peut aggréger tous les sites qu’ils visitent à cause de la négligence d’administrateurs ou de développeurs, donnent un historique et un profil de métadonnées des lecteurs et des gestionnaires d’un site. Parce que même mon blog est profilé de la sorte. Personne n’y gagne sinon le tenancier du service « gratuit »

Je suis un blogueur, pas un revendeur d’informations personnelles. Je ne suis pas un collabo qui participera au grand profilage des internautes.

Most users that are worried about being tracked will likely be using a browser plugin to prevent it anyway.

Je refuse que seuls ceux qui sont au courant de tels problèmes de traçage par les grosses crèmeries du Web soient les seuls à pouvoir être protégés de ces dernières qui se goinfrent de métadonnées. Il n’y a pas assez de paranoïaques pour que les choses changent, et bien trop d’internautes qui s’en moquent éperdûment ou qui n’imaginent même pas ces problématiques. Si nous ne sommes libres que lorsque tous ceux qui nous entourent sont également libres (Mikhaïl Bakounine), c’est aux webmestres et aux administrateurs d’observer un comportement loyal : ils peuvent changer la donne en refusant de recourir à de tels chevaux de Troie.

Mikhaïl Bakounine

Enfin, ceux qui s’inquiètent de voir leurs métadonnées servir de repas au gros requin ont aussi bien le droit de naviguer sur des sites bien alignés, bien formatés, intégrant les polices et les icônes avec lesquelles les sites sont pensés.

Hébergez vos polices et cessez de recourir aux CDN dont vous ne pouvez pas maîtriser les contenus et donc auxquels vous ne pouvez pas faire confiance. Tout le monde y gagne sauf ceux que nous ne voulons pas voir gagner.

Version originale

I understand that using submodules isn’t the easiest solution to download (I don’t know if an archived repository adjoin them, and I think it doesn’t), and I’m sure it isn’t the cleanest one too, as it includes many unneeded files (maybe dangerous ones); I can work on a cleaner yet lightweight patch without using user unfriendly submodules.

I understand it would be complicated to deploy your theme for those who only know git clone, maybe wget and unzip too, though I barely know more of git myself (see those failed and ugly pull requests I’ve made!). But I don’t understand how one would have installed Ghost if he’s not a technical/git user, at least familiar with command-line interfaces. Are they pre-installed Ghost platforms with web-installable themes yet?

I deployed this patch on my server, and I see no resource overload with a good cache control policy. Anyway, I have absolutely no control on cache control policy in the case of CDN (content delivery network) served libraries and it should bother any webmaster. And if they’re on my own server, one reader won’t have to wait for a CORS call to succeed: if the server respond at first bits, the fonts will be served with no delay.

Furthermore, I think the worst privacy issues are the sum of bening behaviors. One developper will see no arm on his own side if he uses a CDN for the libraries he needs, but the CDN owners will see a big advantage to have the access logs of those loading pages that integrates the incriminated CDN contents. I’m a blog writter, not a personal data reseller. I’m not some kind of quisling.

Besides, I don’t think that only those who are aware of these issues and other not-so-wrong-paranoids have some kind of right to preclude the loading of these contents. There’s not enough paranoids to make a change, and too much of those who won’t lift a finger. Webmasters and developers have to mind their own behavior: they’re those who can make it change.

Furthermore, I think that those who are worried of being tracked (everyone should be worried about it, and not just whine around when they suddenly give a damn about their private life) have also the right of a well aligned, well displayed and well formated website, including fonts, icons, etc.

So I’m suggesting to give the fonts with the theme. I can work on it to make both lightweight and easy to install for the webmasters, and easy to update for you or the contributors.