Le Blog Utux

Parce qu'il n'y a pas que Linkedin pour se faire mousser avec des articles techniques

systemd, c'est bien.

Rédigé par uTux

Systemd est un système d'init "moderne" qui remplace le vieillissant sysvinit. L'init c'est le premier process qui démarre après le boot et qui va "orchestrer" le lancement des services : réseau, logs, ssh ... Mais wikipedia explique cela mieux que moi.

Dire que systemd a provoqué de nombreuses polémiques et levées de boucliers de la part des utilisateurs est un euphémisme, c'est un beau bazar dans lequel des troll s'affrontent au lance-flammes. On lui reproche de nombreuses choses : réinventer l'eau chaude alors que sysvinit marche bien, être monolithique et donc contraire à la philosophie UNIX, être le cheval de troie de Red Hat pour à terme remplacer de plus en plus de composants dans Linux, ne pas être portable sur les autres OS, etc. Je pense que la plupart des critiques sont vraies et que dans quelques années nos distributions ne seront plus GNU/Linux mais SystemD/Linux. Néanmoins il est intéressant d'observer qu'après 6 ans d'existence, systemd s'est imposé partout à l'exception de Gentoo (+et Slackware) et ce n'est pas par hasard.

Je ne vais pas énumérer point par point les fonctionnalités de systemd, je vais me contenter d'en présenter deux aspects que je trouve intéressants : création d'un service et d'un containers (nspawn).

Création d'un service

Avez-vous déjà écrit des scripts d'init pour un logiciel sur Linux ? Moi oui. Et entre sysvinit et systemd, c'est le jour et la nuit. Prenons pour exemple Nginx :

C'est quand même beaucoup plus simple avec systemd puisqu'une grosse partie du boulot est faite nativement, par exemple la gestion du pid et des logs. Pour sysvinit par contre c'est au développeur du script de prévoir tous les cas, de coder la vérification du pid, des logs, bref c'est long et pas forcément utile puisque même sur Windows on ne fait plus ça depuis 20 ans.

Création d'un container

Systemd est très lié à Linux et aux cgroups, il est possible d'isoler des processus dans leur propre contexte, de là à créer des containers avec une application ou un système entier il n'y a donc qu'un pas qui a été franchit. Pour l'exemple on va créer un container ubuntu-server-16.04 à partir d'une image cloud (pour nous épargner les étapes debootstrap qui n'ont pas vraiment d'intérêt dans cet article) :

root@localhost:~# wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-root.tar.gz
root@localhost:~# mkdir /srv/containers/xenial01
root@localhost:~# tar -xf xenial-server-cloudimg-amd64-root.tar.gz -C /srv/containers/xenial01

Note : sur les versions plus récentes de systemd (non disponible sur Debian Jessie), l'utilitaire machinectl permet de télécharger et déployer une image automatiquement. Voir la section Examples de la documentation machinectl.

Puis démarrer un shell dans le container afin de pouvoir créer un mot de passe root :

root@localhost:~# systemd-nspawn -D /srv/containers/xenial01/
Spawning container xenial01 on /srv/containers/xenial01.
Press ^] three times within 1s to kill container.
/etc/localtime is not a symlink, not updating container timezone.
root@xenial01:~# passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@xenial01:~# exit

Maintenant on peut - si on veut - démarrer complètement le container :

root@localhost:~# systemd-nspawn -bD /srv/containers/xenial01/
Spawning container xenial01 on /srv/containers/xenial01.
Press ^] three times within 1s to kill container.
/etc/localtime is not a symlink, not updating container timezone.
systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR
+SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ 
-LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
Detected virtualization systemd-nspawn.
Detected architecture x86-64.

Welcome to Ubuntu 16.04 LTS!

Ensuite la séquence de démarrage s'affiche et il est possible de se loguer, puis d'arrêter le container avec la commande poweroff :

Ubuntu 16.04 LTS ubuntu console

ubuntu login: root
Password: 
Last login: Mon May 23 09:12:29 UTC 2016 on console
run-parts: /etc/update-motd.d/98-fsck-at-reboot exited with return code 1
root@ubuntu:~# poweroff

Si on ne spécifie aucune option au niveau du réseau, le container utilisera l'interface de l'hôte. Attention donc aux services qui écoutent sur les mêmes ports, typiquement SSH, le mieux est encore d'utiliser une interface réseau virtuelle. Je ne rentre volontairement pas dans les détails afin de ne pas faire un article indigeste, mais il est possible d'aller plus loin notamment au niveau des interfaces réseau (bridge, macvlan, veth), des limitations du système (mémoire, cpus...) ou encore de l'intégration avec SELinux. On peut aussi utiliser debootstrap, dnf ou pacstrap pour créer un container (pas besoin d'une image cloud). Pour cela voir la documentation systemd-nspawn et systemd.resource-control (elles ne sont pas si indigestes que ça).

Systemd-nspawn est une alternative intéressante à LXC permettant de gérer des containers thin (on lance uniquement une application) ou thick (on lance tous les services) sans avoir à installer quoi que ce soit.

BONUS : sous debian, ça ne change rien pour les utilisateurs

Si je peux comprendre que beaucoup de gens n'aiment pas systemd et ne souhaitent pas l'utiliser, en revanche je ne comprends pas pourquoi cette grogne est focalisée chez les utilisateurs de debian au point de créer le fork devuan. Parce que si vous êtes utilisateur de debian, systemd ne change rien pour vous. Tout d'abord le boulot est fait par les mainteneurs des paquets, vous n'avez jamais touché à un système d'init de votre vie, et avec systemd vous n'y toucherez pas non plus. Ensuite, si vous faites un peu de sysadmin, là encore rien ne change pour la majorité des opérations.

Voici pour comparer la manière dont on démarre apache :

root@localhost:~# service apache2 start # avec sysvinit
root@localhost:~# service apache2 start # avec systemd

C'est pareil, parce que debian est une distribution pour fainéants (comme moi) très bien foutue. Même chose pour le réseau, ça se gère toujours dans /etc/network/interfaces rien ne change.

Sous Archlinux par contre tout change par exemple le fichier /etc/rc.conf a disparu au profil de fichiers éclatés pris en charge par systemd. Ce n'est pas méchant mais il a fallu réapprendre certaines choses. Malgré une grogne passagère la chose semble avoir bien été acceptée par les utilisateurs, en tous cas ils ne sont pas partis forker leur distribution.

Conclusion

Au final, après avoir lu tant de troll, tant de FUD sur systemd, je trouve que c'est plutôt bien. C'est simple à utiliser et c'est puissant puisqu'on peut imaginer un jour remplacer LXC et cela ouvre plein de possibilités au niveau des serveurs, par exemple avoir des instances apache et nginx isolées dans les containers thin, ou encore des applications portables à la manière de Snap ou xdg-app. Pour 99% des utilisateurs de Linux la transition est transparente puisque prise en charge en amont par les mainteneurs.

Je prends donc le risque d'invoquer une armée de troll dans les commentaires mais moi j'approuve systemd.

Youtube : publicité VS tipeee ?

Rédigé par uTux

Il existe beaucoup de fantasmes sur les revenus des créateurs de vidéos sur Youtube alimentés par exemple par ce type de news : Cyprien, Norman, Squeezie : millionnaires grâce au rachat de Mixicom par Webedia. Et en effet quand on regarde certaines chaînes comme Le Joueur du Grenier qui a actuellement 2 635 000 abonnés, 92 vidéos dont la plupart ont été visionnées plus de 5 million de fois, on voit que le succès est important et que les revenus doivent être confortables. Car oui nous avons grandit dans un monde formaté par la télévision et le cinéma où "le succès" rapporte gros.

Avant d'aller plus loin je précise deux points :

  • Faire des vidéos sur Youtube est parfois un passe-temps mais c'est aussi un métier. Beaucoup essaient d'en vivre. Faire une vidéo de 30 minutes peut nécessiter 1 mois de travail. Donc l'argent gagné n'est pas de l'argent de poche, c'est un revenu.
  • Les Youtubeurs ont une activité légale et se déclarent comme auto-entrepreneur ou entreprise. L'argent ne va pas directement dans leur poche mais passe par les charges et impôts. Il faut donc relativiser les sommes.

Le modèle publicitaire

De plus en plus de Youtubeurs jouent la transparence et expliquent que certes ils arrivent à vivre de leur métier mais qu'il est rare d'atteindre le niveau du smic. Poisson Fécond par exemple dit que pour gagner cette somme (1150€ net) ses vidéos doivent cumuler 3 million de vues par mois. Donc chaque vue rapporte seulement 0,00038 € a son créateur malgré les 30 secondes de pub au début. Et même si vous êtes très fan et que vous regardez 300 vidéos par an, ce qui correspond à 2h30 de publicité, la part du créateur sera de 0,116 € net.

A partir de là, si je regarde les 300 vidéos en utilisant AdBlock Plus ou uBlock Origin, est-ce que je pénalise le créateur ou la régie publicitaire ? De plus 3 million de vues c'est très difficile et même uniquement accessible aux plus populaires. Par contre 1150 € c'est très peu pour vivre surtout quand on sait qu'un auto-entrepreneur ne peut pas prétendre à certaines aides.

Le tip

Un autre option pour aider nos créateurs de contenus à vivre est de leur faire des dons. Il existe pour cela plusieurs plate-formes, la plus populaire en France étant probablement Tipeee. Et l'idée est intéressante puisqu'on y trouve beaucoup de monde : e-penser, Benzaie, Durendal, Usul et bien d'autres.

Si je fais un don de 1 € via Tipeee, le créateur gagnera 1 € brut donc ~0,77 € net (hypothèse d'un auto-entrepreneur à 22,90%), donc presque 7x plus que 300 publicités sur Youtube !

Si vous vous demandez quel est le modèle économique de Tipeee, c'est assez simple ils prélèvent une commission sur chaque don, Paypal étant plus lourdement chargé : détail disponible ici. La différence avec les plate-formes de financement participatif telles que Patreon ou Ulule est que l'on paie pour soutenir quelque chose qui existe déjà, pas pour financer un projet.

Conclusion

Mince ! La publicité n'est donc pas l'unique modèle économique sur internet, est-ce qu'on nous aurait menti (clin d’œil très appuyé) ? On se rend compte que le reversement aux créateurs est insignifiant alors que la durée des clips promotionnels qui usent notre cerveau est très conséquente ! J'y vois là une raison de plus d'utiliser des bloqueurs de publicité car ils gênent les parasites intermédiaires régies publicitaires et pas vraiment les créateurs de contenus, les vrais, ceux qui nous intéressent et que nous voulons faire vivre.

Le don direct est bien plus efficace et comme nous l'avons vu il n'est pas nécessaire de mettre en jeu de grosses sommes, quelques euros par-ci par-là écrasent déjà le modèle publicitaire, et de loin !

ESET Nod32 usurpe mes certificats SSL ?

Rédigé par uTux

J'ai un ordinateur de gaming sous Windows avec l'antivirus ESET Nod32 (il me restait une licence dans un coin). Et ce matin j'ai remarqué un truc intéressant : ce bougre usurpe l'identité de mes certificats SSL. En effet mon blog, utux.fr, est signé par Let's Encrypt. Or, sur ma machine avec ESET Nod32 installé, voici ce que Firefox affiche :

ESET

ESET installe sa propre autorité de certification dans Windows (ce qui rend l'usurpation possible) et re signe les certificats que vous utilisez. Pourquoi ? Le but des certificats signés c'est pas justement de valider la chaîne de confiance jusqu'au serveur ? D'empêcher des interceptions ? Ce que fait ESET Nod32 est justement ce que l'on cherche à éviter non ? Que se passe-t-il si une porte dérobée est découverte dans Nod32 et permet à des personnes mal intentionnées de signer tout et n'importe quoi sur ma machine ?

Les réseaux sociaux sont-ils des outils de démocratie ?

Rédigé par uTux

Les réseaux sociaux existent depuis plus de 10 ans et leur succès est indéniable. En revanche leur réputation est plutôt mitigée. Gadget inutile pour certains, repaire d'ados qui passent leur journée à partager des vidéos de Maitre Gims pour d'autres, passe-temps quand on a rien à faire au boulot... et c'est sans compter les nombreuses critiques sur la vie privée, Richard Stallman déclare à ce sujet : « Facebook doit être éliminé pour protéger la vie privée ».

Néanmoins les réseaux sociaux sont un formidable outil de communication. Les idées s'échangent, les avis, des groupes ou des mouvements se forment. Lors des révolutions tunisiennes et égyptiennes en 2011, les citoyens les ont utilisé pour organiser les manifestations et tenir au courant le reste du monde des événements graves qui se déroulaient. D'ailleurs l'une des premières mesures de l’Égypte pour enrayer la révolution fut de bloquer Twitter, ce qui montre bien qu'il était gênant.

En France alors que le pays traverse une crise sociale ce sont également les réseaux sociaux qui relaient les informations : manifestations, violences (des deux côtés), mouvements à venir, revendications, la masse en colère est beaucoup plus représentée qu'à la télévision.

En appelant à la "disparition" de Facebook, Richard Stallman ne condamne-t-il pas un excellent outil pour la démocratie ? N'est-ce pas là une idée réactionnaire alors que ce réseau social existe depuis plus de 10 ans ?

Je ne suis pas inscrit sur Facebook ou Twitter car je n'en ai jamais ressenti l'utilité et j'ai toujours été rebuté par les problématiques de respect de la vie privée dont on ne peut nier la réalité. Mais je reconnais leur utilité et leurs qualités et pense que si ils disparaissaient nous aurions beaucoup plus de mal à nous exprimer.

Les jeux vidéo sont-ils trop longs ?

Rédigé par uTux

C'est après avoir visionné la chronique Merci Dorian! - La durée de vie (des jeux vidéo) courant 2015 que j'ai eu envie de parler de ce sujet. J'étais au début assez surpris car on a longtemps reproché aux jeux vidéo d'être trop courts. De plus quand un jeu est bon, c'est toujours bien d'en avoir un peu plus non ? Pas toujours.

La durée de vie, un argument marketing

Tout d'abord il faut savoir que la durée de vie est devenue un argument marketing pour les éditeurs de jeux vidéo. Afin de pouvoir afficher fièrement sur la boite "plus de 200 heures de jeu dans un openworld !" beaucoup meublent au maximum leur contenu de manière artificielle. Dans sa vidéo, Dorian cite la collecte d'objets inutiles et c'est complètement vrai. Le premier exemple qui me vient en tête, c'est Dragon Age Inquisition. Il m'a fallu 100h pour finir le jeu, mais quel ennui... la quête principale est passionnante mais elle tient en une dizaine d'heures, et les 90 autres sont meublées par des quêtes non scénarisées qui consistent à se rendre à pied à l'autre bout de la carte (de la randonnée !) pour aller tuer des mob et ramasser un certain nombre d'objets, les bonnes vieilles quêtes fedex comme on dit.

Il y a heureusement de nombreux jeux dont la durée de vie n'est pas artificielle. Je suis par exemple un très grand fan de Kerbal Space Program, un bac à sable exigeant capable de nous tenir des centaines d'heures alors qu'il n'y a aucun scenario ni aucun objectif, juste une courbe de progression bien étudiée. Et je ne parlerai même pas du très célèbre Minecraft qui lui non plus n'a pas de scenario et aussi une durée de vie illimitée.

90% des joueurs ne voient pas la fin

Autre argument choc cité dans la vidéo, bien que pas officiellement sourcé : seul 10% des joueurs termineraient leurs jeux. On comprend alors le malaise qu'il peut y avoir chez les éditeurs, pourquoi investir dans des jeux longs alors qu'une très grande part des joueurs se contente d'un jeu court ? Je suis très surpris de ce chiffre. Un jeu vidéo c'est comme un film, s'il est bon, pourquoi ne pas le terminer ? D'autant que l'immense majorité ne nécessite qu'une dizaine d'heures ce qui ne représente qu'un ou deux week-end ou quelques soirées. En cherchant un peu, j'entrevois les explications suivantes :

  • Le phénomène a toujours existé mais n'était pas mesurable avant qu'on invente Steam, uPlay et Origin. Nous sommes nombreux à avoir joué à Doom dans les années 90, et pourtant je suis persuadé que très peu d'entre nous l'ont fini. Et quid de tous ces jeux NES aujourd'hui célèbres dans les émissions de retrogaming, réputés pour leur difficulté les rendant impossibles à terminer ?
  • Les joueurs vieillissent et ont beaucoup moins le temps de jouer. Ils sont remplacés par la nouvelle génération, mais peut-être que leurs attentes sont différentes ? Le multijoueur semble être très (trop) important.
  • Les soldes Steam cassent les prix au point que beaucoup achètent des jeux en masse et n'y jouent que quelques heures avant de passer au suivant.
  • Les jeux ne sont pas tous bons ? Par exemple j'ai acheté Tomb Raider (2013) et je n'ai jamais tenu plus d'une heure en raison de la médiocrité du gameplay.

En ce qui me concerne, j'achète peu de jeux, mais je choisis bien. Ainsi lorsque je vois un jeu soldé sur Steam, je ne saute pas dessus mais me pose les questions suivantes : Est-il bon ? Est-ce qu'il va me plaire ? Est-ce que je vais avoir le courage d'y jouer ? C'est ainsi que je me retrouve à n'acheter que 2-3 jeux par an, mais des bons, que je prends le temps de terminer (sauf Tomb Raider 2013, rien n'est parfait). En 2015 j'ai passé 150 heures sur Kerbal Space Program, 130 heures sur The Witcher 3 (deux jeux que je vous recommande fortement d'ailleurs) et 100 heures sur Fallout 4 (c'est un mauvais exemple car le contenu est plutôt meublé, en revanche il vaut le coup si vous avez aimé Skyrim).

Conclusion

La qualité d'un jeu vidéo n'est pas liée à sa durée de vie, et les tentatives de meublage de contenu dans les grosses licences sont plus nuisibles que bénéfiques. Il faut trouver un équilibre entre la durée de vie et l'intensité et je pense que les 10 heures (le standard actuel) s'en approchent, surtout vis à vis des tarifs (50 à 70€).

Baisser la durée de vie au nom des statistiques marketing réduirait encore la qualité globale des jeux vidéos alors que nous sommes dans une situation où les joueurs n'ont déjà plus confiance dans les éditeurs ni les journalistes et déplorent la multiplication des moyens artificiels pour augmenter la rentabilité des jeux.