Spip, un exemple pour le logiciel libre ?

Petit rappel sur Spip

Comme indiqué sur le site du logiciel, SPIP est un système de publication pour l'Internet qui s'attache particulièrement au fonctionnement collectif, au multilinguisme et à la facilité d'emploi. C'est un logiciel libre, distribué sous la licence GNU/GPL. Avec les années, SPIP a grandement évolué mais à toujours garder deux de ses spécificités : sa modularité et extensibilité via tout un écosystème de plugins et son systèmes de templates (les fameux squelettes).

Pourquoi Spip ?

Les premières version de SPIP sont sortie en 2001. Pour information, Dotclear qui était le moteur de référence avec l'avènement des blogs est sorti en 2002, Wodpress, est sorti en 2003. Lorsque j'ai commencé l'informatique, il y a 14 ans, je devais faire un Intranet pour une PME, c'était mon sujet de stage de fin d'année. Ma professeur de TD, libriste convaincue, m'avait conseillé d'utiliser SPIP. Et j'ai donc découvert SPIP à ce moment là ; je l'ai utilisé pour ce qui allait devenir ce blog, et pour différents sites que j'ai fait par la suite. Et je suis resté fidèle à ce logiciel.

Pourquoi est-ce un exemple pour le logiciel libre ?

Je suis donc sous Spip depuis 2004 et depuis le début, je fais le suivi des montées en version. Par montée de version, je parle de la mise à jour vers des versions correctives et de mises à jour (corrections de bugs) et vers des versions majeures (avec ajout de fonctionnalités, modifications de la base de données). Au cours de toutes ces migrations, Je n'ai jamais eu de soucis. J'ai toujours testé sur un site de test, copie / miroir de mon blog pour anticiper les problèmes qu'il pourrait y avoir (plugin non compatible...).

Toutes ces montées en version, qu'elles soient mineures ou majeures se sont déroulées sans soucis.

Chaque nouvelle version mineure apporte son lot de corrections de bugs et de faille de sécurité, chaque version majeur est plus riche en fonctionnalité, mais n'a pas forcément plus de complexité. La logique et les interfaces restent les mêmes, évoluent, se modernisent un peu, mais sans grand bouleversement, on reste dans la continuité.

Spip possède tout un écosystème de plugin. Je n'utilise pas énormément de plugins et tout ceux que j'utilise sont rapidement rendus compatibles par la communauté. La communauté est petite, ne fait pas de bruit, mais est belle et bien là.

Spip est documenter, bien documenter et en français https://programmer.spip.net/ tant pour le système SPIP en lui-même que pour les plugins...

Autant de critères qui en font un logiciel de qualité et de référence pour moi.

Une communauté bien présente ?

En un temps où les réseaux sociaux se sont depuis bien longtemps accaparé le temps de disponibilité des gens, le forum est encore actif avec des messages publiés les jours précédents et même quelques minutes avant au moment de la rédaction du présent billet de blog.

On a un message toutes les quelques semaines sur le blog officiel de SPIP Blog.spip.net

Et le code source (logiciel libre oblige), évolue lentement mais sûrement avec des commits réguliers comme en atteste le dépôt https://core.spip.net/projects/spip/repository

Conclusion

Spip, c'est une petite communauté, le logiciel ne fait pas grand bruit, mais reste efficace. Et par le présent billet, je voulais remercier toutes ces personnes qui ont participé ponctuellement ou qui œuvrent pour SPIP au quotidien.

Sauvegarder simplement avec Ubuntu ?

Dans le cadre des sauvegardes, il y a la théorie et les bonnes pratiques... A ce sujet Sauvegarde la règle des 3-2-1 et Qu'est ce que je dois sauvegarder ? Mais généralement les sauvegardes, on sait qu'il faut les faire, on remet toujours ça à plus tard...

Il y a des solutions techniques, efficaces, mais complexes, du script utilisant Grsync à des solutions comme Borg en passant par des BackupPC... Pour le code, il y a les serveurs Git...

Dans le présent article, je voudrais parler d'une solution simple de sauvegarde de document bureautique. Je travaille assez régulièrement à la rédaction de document bureautique (de type documentation à livrer à un client). Et pour faire mes sauvegardes (je travaille sous Ubuntu d'où le titre), j'ai deux façons de faire.

Nextcloud, uns solution simple

J'ai un dossier "De travail" synchronisé avec un Nextcloud. Et je m'efforce de faire tout le travail de rédaction (les documents en cours d'écriture et de modification) dans ce dossier. Ce système de synchronisation n'est pas vraiment une sauvegarde, mais c'est mieux que rien car cela permet d'avoir un double du document et si l'option est bien activée sur le serveur, d'avoir différentes versions du document archivées (on a un historique des versions antérieures). Toutefois cette solution a pour inconvénient de solliciter le réseau à chaque enregistrement du (des) fichiers et on se repose alors sur la confiance que l'on a dans le serveur Nextcloud et les sauvegardes qui en sont faites.

L'outil de sauvegarde intégré dans Ubuntu

Ubuntu est fournie par défaut avec un outil de sauvegarde. Il suffit de chercher "Sauvegarde" tout simplement pour lancer le logiciel. Je dispose d'un disque dur externe que je branche régulièrement et c'est sur ce dernier que sont alors faites les sauvegardes.

Ce logiciel, appelé Deja Dup, a l'avantage d'être assez paramétrable, mais de façon simple :
- dossier à sauvegarder, dossier à ignorer
- sauvegarde tous les jours ou toutes les semaines,
- durée de conservation : 6 mois, un an, indéfiniment...

L'espace disque disponible est pris en compte, on peut protéger les données par un mot de passe (à utiliser pour la restauration des données. Et attention à ne pas oublier ce mot de passe sinon on ne peut plus récupérer ses sauvegardes).

Restauration ?

Sauvegarder, c'est bien. Mais il faut toujours tester les restorations des sauvegardes. Car une bonne sauvegarde est une sauvegarde que l'on peut restaurer. Restaurer ? C'est une autre façon de dire "récupérer des données sauvegardées". Voir à ce sujet Sauvegarde et restauration

Ayant supprimé par mégarde un fichier, j'ai donc eu avoir recours à ma sauvegarde et valider que cet outil faisait bien les restauration de façon correcte.

On appuie sur le bouton, on définie la date, le dossier où rétablir la sauvegarde (le dossier d'origine ou un autre dossier), le mot de passe. On restaure tout le contenu de la dernière sauvegarde. Il faut donc le faire dans un dossier dédié si on ne veut récupérer qu'un fichier et non l'état du dossier sauvegardé à un instant donnée (celui de la sauvegarde). Et c'est là une des limites de cette solution : on ne peut pas restaurer un seul fichier ; on doit restaurer tout une sauvegarde. Pas très pratique. Mais c'est déjà mieux que pas de sauvegarde du tout.

Yunohost – Usage depuis le réseau local

Configuration du réseau : mon PC portable et mon serveur Yunohost sont branchés tout deux derrière la Freebox, qui crée un réseau locale entre ces deux machines. La Freebox est configuré en routeur, son IP publique est associée au nom de domaine du serveur Yunohost et la configuration NAT fait que toute entrée depuis l'extérieur (via l'IP publique), sur le bon port, est redirigée vers le serveur Yunohost.

Dans son message sur le forum Yunohost, Koantig a une configuration similaire et s'inquiète de l'usage du nom de domaine quand on est en local

Le hic, c'est que tout ça passe par internet, alors que tout est local. J'aimerais faire en sorte que si je suis sur le réseau local, les requêtes ne passent pas par internet.

Et arrive à la conclusion qu'il faut associer l'IP locale de la machine au nom de domaine dans le fichier /etc/hosts.

Sa solution marche, mais dans le cas où on déplace la machine (cas d'un PC portable par exemple), il faut penser à enlever cette ligne.

Est-ce que ça sort vraiment sur Internet ?

Pour le vérifier, si je fais depuis mon réseau local un "traceroute mondomaine.fr", on voit qu'on s'arrête au premier routeur, qui a pour IP l'IP publique de la Freebox. On ne sort donc pas de la Freebox et d'Internet. Certe la Freebox va refaire du transfert NAT et changer les paquets pour les retransferer à la machine Yunohost, ce qui est une étape de plus contrairement à l'usage directement de l'IP locale (dans ce cas les fonctions de routeur et de NAT de la Freebox ne sont pas sollicités)

Sur le réseau local, derrière ma Freebox, ma Freebox sait que si une machine local demande l'IP publique correspondant à Yunohost, elle doit rediriger le trafic vers mon Yunohost. La Freebox fait une redirection NAT en interne, mais ça "ne sort" pas sur Internet.

Est-ce qu'on perd du temps ?
Si je fais
ping IP locale, j'ai :

64 bytes from IP Locale: icmp_seq=1 ttl=64 time=0.303 ms
64 bytes from IP Locale: icmp_seq=2 ttl=64 time=0.314 ms
64 bytes from IP Locale: icmp_seq=3 ttl=64 time=0.306 ms
64 bytes from IP Locale: icmp_seq=4 ttl=64 time=0.273 ms
64 bytes from IP Locale: icmp_seq=5 ttl=64 time=0.269 ms

Soit 289 ms de moyenne.

Si je fais ping IP publique, j'ai :

64 bytes from IP Publique: icmp_seq=1 ttl=64 time=0.253 ms
64 bytes from IP Publique: icmp_seq=2 ttl=64 time=0.488 ms
64 bytes from IP Publique: icmp_seq=3 ttl=64 time=0.488 ms
64 bytes from IP Publique: icmp_seq=4 ttl=64 time=0.253 ms

Soit 370 ms de moyenne.

C'est effectivement "un peu plus lent" (vu qu'on fait le routage et la redirection NAT avec l'IP publique), mais ce n'est pas suffisament sensible.

Meet-Up Yunohost – Présentation du projet et comment contribuer

Meetup le mercredi 17 janvier 2018

Suite à mon appel pour un lieu pour un Meet-up Yunohost, Un Meetup Yunohost ? Appel pour aider ce projet, nous avons un local et une date ! L'entreprise Nbs-system nous accueillera donc le mercredi 17 janvier à 19h00 pour un meet-up de présentation de Yunohost et de comment on peut contribuer au projet.

Je remercie Emmanuel Seyman (Fedora-fr, Parinux...) Au programme : un "meet-up" (pour le buzz word) de présentation de Yunohost et de comment on peut contribuer au projet et l'occasion de se rencontrer autour de ce projet :).

Le lieu : Nbs-system, au 8 Rue Bernard Buffet, Paris 17 ème, Métro Brochant (ligne 13)

Pour s'inscrire, merci de saisir un pseudo sur le Framadate suivant : https://framadate.org/meetupyunohost

Présentation du Meetup

YunoHost est une distribution basée sur Debian GNU/Linux composée, essentiellement, de logiciels libres, ayant pour objectif de faciliter l'auto-hébergement. YunoHost facilite l'installation et l'utilisation d'un serveur personnel. Autrement dit, YunoHost permet d'héberger sur sa machine et chez soi son courrier électronique, son site web, sa messagerie instantanée, son agrégateur de nouvelles (flux RSS), son partage de fichiers, sa seedbox et bien d'autres… Le nom YunoHost vient de l'anglais Y-U-No-Host ("Why you no host ?"), signifiant « Pourquoi ne pas t'héberger ? ». Il s'agit d'un jeu de mot issu du mème internet "Y U NO".

Yunohost c'est le système qui fait tourner la Brique Internet, mais pas que... Framasoft dédie une journée de temps de l'un de ses salariés durant laquelle, chaque semaine, du travail est fait pour packager les applications des différentes applications Degooglisons Internet pour les rendre disponibles au sein de YunoHost.

L'objectif de cette soirée est de faire une présentation du projet Yunohost, de ses objectifs et de pourquoi et comment contribuer au projet.

Yunohost, deux ans après

Un petit billet rapide, en attendant le retour des billets techniques les prochaines semaines (et prochains mois).

Début décembre 2015, suite à une discussion avec l'ami Solarus lors du Capitole du libre de Toulouse, je me décidais enfin à franchir le pas de l'autohébergement. Je débutais donc l'année 2016 en publiant 2016 année de l'autohébergement ? au sein duquel j'expliquais le début de mon aventure sur le sujet. Depuis nombreux sont les billets que j'ai publié tagué et Yunohost, écrit au fur et à mesure des mois et de mon apprentissage et appropriation du système.

De la plupart de mes services hébergés sur les serveurs de Framasoft dans le cadre du projet Degooglisons, je suis passé à du tout auto-hébergé pour tout ce qui concerne mon propre besoin en terme de cloud. D'un Raspberry et carte SD, je suis passé à une machine de type mini-pc de récupération, avec 2 Go de mémoire et un processeur Intel Atom, une machine de faible consommation électrique, qui a presque 10 ans mais qui tourne toujours et convient parfaitement à mes besoins.

J'ai suivi et je suis les évolutions des différents projets autres, comme CozyCloud, mais je suis et je reste fidèle à Yunohost qui correspond vraiment à ce dont j'avais besoin. Ca marche, c'est stable (ça reste une base Debian stable et donc par définition, c'est stable). Je n'ai jamais réinstallé ma machine qui tourne depuis plus d'un an et demi et ma machine tourne H24. Je l'ai déjà redémarré (mise à jour du kernel), éteinte volontairement (ou involontairement comme dans le cas d'une coupure de courant prolongée).

Mais... Je fais les mises à jour. Je teste les packages dans une machine virtuelle avant (Voir Yunohost, Clonezilla et Virtualbox & Yunohost, Virtualbox, Interfaces réseaux). Je sais revenir en arrière. Je fais et j'ai testé la restauration de mes sauvegardes... Je ne bidouille pas ma machine de production.

J'ai déjà eu des coupures de courant, je n'ai pas de corruption majeure mais ce n'est pas une carte SD dedans. Mon mini PC tient la route est solide, le matériel est éprouvé et supporté depuis longtemps par Linux. Il n'a rien d'exotique et a été conçu pour tourner en continue (c'est le genre de mini-PC qu'on branchait derrière un écran, il a d'ailleurs le format VESA).

J'avais écris différents billets dont celui sur l'élitisme de l'auto-hébergement je vous y renvoie pour plus de détails, mais je continue de penser que l'auto-hébergement reste quelque chose destiné à des personnes s'y connaissant et ayant le temps d'apprendre (La preuve est le fait que j'ai une VM de recette, que je ne fais pas modifications directement sur ma machine finale, je fais des sauvegardes etc.).

Mais l'initiative de CHATONS, le Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires continue son petit bonhomme de chemin. Je pense que cela reste la solution viable pour le grand public, pour celles et ceux qui n'ont pas, comme moi, la possibilité d'avoir du temps, l'envie d'apprendre etc. car ils ou elles ont plein d'autres choses à faire (et à juste titre). Car le plus important, que ce soit via soi-même ou via un CHATONS, c'est d'avoir un cloud respectueux de ses données personnelles.

Logiciel de gestion des tâches – Task Coach

Via le billet La thèse chez moi (ou : mes premières méthodes de travail), j'ai découvert le logiciel Task Coach.

Task Coach c'est quoi ?

Task Coach est un logiciel libre et est un gestionnaire de tâches permettant d'organiser facilement son travail en le découpant en tâches et sous-tâches. Les tâches peuvent être classées par catégorie et un outil permet de comptabiliser le temps passé sur chaque tâche.

Il présente tout une liste de fonctionnalités qui sont listées ici, sur la page de la Framakey par Framasoft. C'est assez complet.

Le site officiel de Task Coach http://taskcoach.org/

Je l'ai installé pour le tester rapidement, c'est assez complet et donc complexe pour mon besoin simple d'avoir une sorte de Todo-liste. Je verrai si je prends le temps de me pencher sur l'usage du logiciel de façon plus approfondie, car….

Tasks pour Nextcloud, une alternative

Actuellement, l'application que j'utilise au quotidien, c'est l'application Tasks pour Nextcloud. L'avantage qu'à celle-ci est qu'elle s'intègre dans Nextcloud, permet donc un accès à sa liste de tâches depuis n'importe quel machine disposant d'un navigateur et surtout une synchronisation avec l'application "Tâches" via DavDroid sur un smartphone Android ou LineagesOS. Du coup, je peux saisir différentes tâches depuis mon smartphone que j'ai tout le temps à porter de main, et quand je suis devant mon PC, je peux dépiler ma todo-liste et faire les différentes choses auxquelles j'avais pensé (comme rédiger différents billets de blog sur différents sujets).

Conclusion

Donc pour l'instant, je n'utilise par Task Coach. Mais si c'était le cas et je commençai à l'utiliser de façon régulière, je rédigerai alors très probablement un billet sur le sujet.

Ubuntu – Unity – Afficher les heures de plusieurs zones géographiques

Je travaille sous Ubuntu comme OS professionnel et j'ai besoin d'interagir avec différents collaborateurs qui se trouvent sous différents fuseaux horaires. J'utilise Unity comme environnement de bureau par défaut. J'ai donc l'heure et la date afficher en haut droit de chaque écran (je travaille avec plusieurs écrans). Comme je suis amené à cliquer régulièrement pour afficher le calendrier associé, pour voir des numéros de semaine ou repérer quel jour tombe quelle date (sans avoir à passer sur la fenêtre de Thunderbird dans lequel j'ai mon agenda avec Lightning), dans ce calendrier, j'ai donc ajouté différentes localisations liées à différents fuseaux horaires. Exemple en image :

Ainsi à tout moment je sais si je peux contacter mon collaborateur, savoir s'il est susceptible de me répondre (si on est ou non dans sa plage horaire de travail). Et ce, sans avoir à faire appel à ma mémoire pour le nombre d'heure de décalage et à faire un peu de calcul mental pour la différence horaire. C'est là l'inconvénient ;)

Pour faire comme moi, il faut aller dans le paramétrage et de cliquer sur le bouton "Choisir des emplacements" pour ajouter les heures de différents lieux.

Un Meetup Yunohost ? Appel pour aider ce projet

Présentation du Meetup

Qu'est ce que le projet #Yunohost ? En quoi est-il facile de se créer un #cloud personnel et de passer à l'autohébergement ? Quelles sont les contraintes ? Comment et pourquoi doit-on décentraliser Internet ? Quel est le rapport avec #Framasoft et #DégooglisonsInternet ? Et avec la #BriqueInternet ? Comment s'approprier ce projet et contribuer ? Comment packager une application ?

Durée : 1h30 de présentation suivie des questions

Objectif de date : courant janvier 2018.

Présentation de Yunohost

Je parle assez régulièrement de Yunohost sur ce blog, pour le reste je vous renvoie sur le site Internet http://yunohost.org/. Toutefois, en quelques mots et en résumé, Yunohost c'est le système qui fait tourner la Brique Internet, mais pas que. Yunohost est une surcouche à Debian mais reste du Debian (ce sont juste des scripts en plus). Framasoft dédié une journée de temps d'un de ses salariés durant laquelle, chaque semaine, du travail est fait pour packager les applications (ajouter des scripts shell simples qui permettent une installation et configuration des applications dans Yunohost).

Ce dont j'ai besoin ?

Je recherche actuellement lieu pour accueillir le meetup le temps d'une soirée. Il n'y a pas de budget pour cette soirée, le lieu doit donc être gratuit et je compte sur la bonne volonté des participant.e.s pour apporter un petit quelque chose à grignoter. Le lieu doit être facile d'accès (idéalement sur Paris) et mettre à disposition un vidéo-projeteur (ou un système de projection équivalent) et une connexion à Internet.

Remarque : le lieu d'accueil pourra faire sa promotion (principe du meetup).

Aider le projet ?

Si votre entreprise peut accueillir ce meetup, si vous voulez m'aider à trouver un lieu d'accueuil, si vous voulez m'aider à accueillir les personnes lors de cette soirée, vous êtes le.la bienvenu.e et je vous invite à me contacter.

Foire aux questions

Je compléterai cette série de questions en fonction des retours et demandes que je recevrai. Date de dernière mise à jour : le lundi 27 novembre 2017

Pourquoi ne pas le faire au sein de ton entreprise ?

Ce projet est un projet personnel et sera fait sur mon temps personnel et d'un commun accord avec mon employeur, je souhaite séparer mes activités professionnelles de mes activités personnelles.

Pourquoi un meetup et pas...

L'appellation meetup est le buzzword à la mode et l'objectif est d'organiser une soirée qui regroupera des personnes de la communauté Yunohost tout comme d'attirer des personnes ne connaissant pas le projet mais ayant l'habitude de participer aux événements regroupés sous l'appellation Meetup.

Est-ce que je peux parler lors de cette soirée ?

Pourquoi pas. Le support de présentation du meetup est quasiment réalisé et est prêt et je suis plus sur la demande d'aide sur l'organisation du projet en lui-même que sur le contenu.

Comment on s'inscrit ?

Faites signe et je mettrai en place une liste de diffusion par mail. Et pour l'inscription, je lancerai très probablement un framadate.

Conférence Du pseudonymat au pseudonyme

le samedi 18 novembre, j'ai donc donné une conférence au le Capitole du libre à ENSEEIHT de Toulouse.

Le titre : "Du pseudonymat au pseudonyme..." Pendant près de 15 ans, depuis mes débuts sur Internet, j'ai toujours fait de la gestion de mon identité numérique, séparant mon identité civile, Jérôme, de mon identité numérique, Genma, sous laquelle je tiens un blog. Ce pseudonymat a été maintenu malgré une activité publique plus importante au travers de différentes participations à des événements et des conférences, même si l'étanchéité entre ces deux identités était assez poreuse... Avec mon nouvel emploi, le choix d'outer ce pseudonymat et de passer au pseudonyme a été fait ? Pourquoi ? Dans quel but ? Quelles conséquences sur ma vie professionnelle, le fait que mon employeur sache que je suis Genma ? Le tout sur fond de retour d'expérience avec des réponses à des questions tells que quels sont les pièges rencontrés et à éviter dans le cadre du pseudonymat ? Ou encore en quoi le pseudonymat est-il différent de l'anonymat et du pseudonyme ?

J'avais fait un billet résumé précurseur de cette conférence (Voir à ce sujet Du pseudonymat au pseudonyme, où je m'explique en détail sur ce choix, les conséquences... )

Le support de la conférence est accessible en ligne :

Pour voir le support en plein écran, cliquez ici.

Yunohost – Pourquoi les ports 80 et 25 sont ils toujours utilisés ?

Telle est la question que l'on trouve, en anglais, sur le forum de YunoHost.

La question est légitime car ces deux ports, ne présentent pas, par défaut, de connexion sécurisé. Pour avoir une connexion avec du chiffrement, il faudra passer par une connexion en httpS (et le port 443), ou en ImapS (et le port 993).

Une explication est donnée en anglais, par ljf, Groupe Core Dev (développeur du projet). Je la cite et je la traduit ci-dessous, la diffusion de l'information en langue française pouvant être utile au non anglophone.

Port 25 is necessary to send email to other unsecured smtp (if we close this port, some mails couldn't be delivered.


Port 80 is needed by let's encrypt for the ACME challenge, by some YunoHost setup without internet connexion ( in Africa or Asia) which users need to be able to access page without warning, by some website which users are under the "TLS intermediate config" (not so old android device, XP...). In general application packagers make choice or not to redirect port 80 to HTTPS. Sometime just one part of the app (web administration) force https.

A new settings system has been introduce to be able to let more option to the yunohost administrator, but for now, there are no settings developped to let the admin to be able to configure it.

Traduction libre

Le port 25 est nécessaire pour envoyer un courriel à d'autres serveurs smtp qui eux ne sont pas sécurisés (si ce port est fermé, cela aura pour conséquence que certains mails ne puissent être livrés.

Le port 80 est nécessaire pour le challenge ACME de Let's Encrypt, et pour des cas d'installation YunoHost sans connexion internet (en Afrique ou en Asie) pour lesquelles les utilisateurs ont besoin d'accéder à la page de connexion sans avoir un avertissement, pour des mises à dispositions d'applications pour des utilisateurs qui n'ont pas accès au niveau de configuration nécessaire pour une connexion TLS (vieux appareil Android, XP ...). En général, les packageurs d'applications choisissent ou non de rediriger le port 80 vers HTTPS. Par défaut, une seule partie de l'application YunoHost (la partie administration Web) force une redirection vers https.

Un nouveau système de paramétrage a été introduit pour être en mesure de laisser plus de latitude à un administrateur yunohost, mais pour l'instant, il n'y a pas d'interface de développer permettant à l'administrateur d'être en mesure de le configurer.

Lifehacking – Trois écrans : réel confort, luxe ou superflu ?

Il y a quelques temps j'écrivais un billet Ubuntu et trois écrans ? Oui c'est possible dans lequel j'abordais le cas d'un ordinateur portable sur lequel il y avait une carte graphique Intel intégrée au processeur (de la gamme Intel Core i5), deux sorties (une VGA et une HDMI) et le fait que l'on pouvait avoir au final 3 écrans pour une seule et même machine.

Dans l'entreprise dans laquelle je suis, nous avons une place dédiée à un bureau, mais il nous arrive de travailler en mobilité (en réunion, mais pas que. Nous pouvons travailler debout, affalé dans un canapé...). A mon bureau, j'ai deux écrans de grande taille (23 pouces). Et avec le temps, je l'avoue, j'ai pris goût à ce confort d'avoir 3 écrans. Il y a le fait que les écrans sont sur-élevés et donc à hauteur d'yeux (ce qui est mieux quand, comme moi, on passe de nombreuses heures devant un écran).

Chez moi, j'ai aménagé mon environnement de travail / bureau personnel afin d'avoir la place et j'ai également deux écrans (de taille plus modeste, 21"), que je peux brancher à mon ordinateur professionnel pour les fois où j'ai besoin de travailler en dehors des heures de bureau. Je retrouve ainsi le confort que j'ai pour mon post de travail.

Avoir 3 écrans pourrait sembler à l'encontre du lifehacking vu qu'en multipliant les écrans on ajoute des sources de distraction potentielles. Dans mon cas, c'est au contraire une augmentation de ma productivité. Et qui dit productivité dit Lifehacking, d'où le titre et le classement de ce billet.

J'ai le confort d'avoir 3 écrans et donc de pouvoir disposer mon espace de travail numérique comme bon il me semble. Par conséquence Ces 3 écrans me permettent : d'avoir mon fichier de suivi / todo ouvert en permanence dans un coin, et de le remplir / de saisir mon suivi des pomodoros. (cf mes différents billets sur le sujet) Ou quand je dois travailler à une présentation, sur différents documents en parallèle, j'abuse des deux grand écrans avec la fonction de Unity qui permet de découper un écran en deux part égale... J'utilise Unity avec Ubuntu, je ne suis pas passé comme certains de mes collègues sous des Window Manager plus austère et plus complexe comme i3 par exemple.

Sur la fenêtre de l'écran du portable, la plus petite, j'ai un explorateur de fichiers (Nautilus) dans lequel j'utilise les onglets. En arrière plan, j'ai mon navigateur Firefox qui tourne en tâche de fond : accessible en basculant dessus via la combinaison de touches ALT+TAB, pour faire une recherche, caché pour ne pas me distraire. Quand j'ai besoin d'avoir une page (par exemple un tutoriel) affiché en permanence, Firefox bascule du petit écran sur un des grands écrans en face de moi.

D'avoir éventuellement Thunderbird ouvert et visible en permanence, ce qui me permet de voir les mails arrivés. Et je ne traite pas les mails de suite, mais je les dépile / regarde :
- soit il y a une urgence, et je repanifie donc la tâche du prochain pomodoro pour traiter cette urgence, répondre à ce mail (par exemple).
- soit il corresponde à une information fournie, à un projet ou autre et c'est dans une phase de "gestion / mise à jour de la todo et classement des mails", au cours d'un pomodoro dédié, que ce mail sera traité.
Sur le sujet de Thunderbird, voir Lifehacking et la gestion des mails

Bref, tout ça pour dire qu'une fois l'organisation de son environnement de bureau sur 3 écrans faites, avec ses petites habitudes, on gagne vite en réactivité et productivité. Et c'est un peu ça le lifehacking : s'organiser pour gagner du temps.

Virtualbox comme outil dans le cadre de formations

Etant amenés à faire des formations à des client sur différents logiciels, je souhaiterai partager ici plusieurs astuces que nous avons mis en place au sein de mon équipe et que nous réutilisons dans le cadre de formation professionnelle que nous sommes amenés à préparer et donner à des clients. Je profiterai de ce retour d'expérience pour partager des astuces, des conseils, des pratiques qui ont été testées et validées en situation sur le terrain hostile des réseaux d'entreprises...

Nous utilisons également ces VM (VM = Virtual Machines ou Machines virtuelles, soit les machines virtualisées, les systèmes invités dans Virtualbox, le système hôte étant la machine physique qui fait tourner le le logiciel Virtualbox) pour nos différents projets dans le cadre de l'appropriation d'une nouvelle technologie (on ne peut pas tout savoir), de veille ou de la réalisation de P.O.C. (Proof of Concept) rapide.

Dans ce billet, quelques éléments / retour d'expérience. Je ne détaille pas, des connaissances sur le fonctionnement de Virtualbox (ou d'un environnement de virtualisation en général) sont un prérequis.

Pourquoi choisir Virtualbox ?

Nous utilisons Virtualbox et ce pour plusieurs raisons :
- Les machines virtuelles sont portables : nous travaillons sous des distributions Linux différentes selon les collaborateurs, les clients sont sous des OS Microsoft (Windows 7 ou 10). Et le transfert d'une VM d'un environnement à un autre se fait sans soucis (juste le temps de la copie). Les VM sont parfaitement compatibles (si les versions de Virtualbox sont bien les mêmes).
- facilité de transfert et de sauvegarde : les VM sont des gros fichiers qui viennent avec des fichiers de configurations XML. Facile à copier d'une machine à l'autre et donc à sauvegarder (on copie tout le fichier).
- parce que je maîtrise cet outil. Oui je connais KVM (et le fait qu'il y ait une interface graphique si besoin etc. mais je reste fidèle à la facilité de Virtualbox ;)

Prérequis à une formation

Avant d'intervenir en formation en présentielle chez un client, nous demandons comme pré-requis :
- que l'on nous mette à disposition des machines disposant d'un processeur Intel coreiX (X étant un nombre de 3 à 7, l'intérêt est d'avoir un processeur 64 bits, supportant les instructions de virtualisation et donc d'avoir une machine virtuelle performante). Intel ou équivalent chez AMD (que j'avoue ne pas connaître).
- qu'idéalement la machine est un SSD : des machines virtuelles de formation ont des petits jeux de données et ne font que quelques gigas (elles tiennent sur des clefs USB), ce n'est pas ça qui va prendre de la place sur le disque. Et comme un SSD c'est toujours plus rapide et plus de confort pour la virtualisation...
L'astuce de Genma : copier les machines virtuelles de formation sur plusieurs clefs USB. Pour qu'on puisse lancer plusieurs copies le jour J.
- à minima 8 go de RAM : j'ai déjà eu des PC de formation sous Windows 7 64 bits avec 4 giga de RAM, même avec une machine virtuelle à laquelle on affecte que 512 Go à 1 Go de RAM (pour un serveur nginx / php / MySQL), c'est lent. 8 giga de RAM permettent d'être confortable (et de faire tourner 2 VM auxquelles on affecte 2 Giga de RAM chacune), 16 Go c'est idéal.

Configuration réseau

Pour la configuration réseau sous Virtualbox, j'ai fait un billet dédié abordant ce sujet Yunohost, Virtualbox, Interfaces réseaux. Le fait que ce soit Yunohost ne change rien à la philosophie, les explications de mon billet restent et sont valables pour n'importe quel système en tant qu'invité.

L'astuce de Genma : attention à bien penser à faire des reset des adresses MAC à l'installation des VM sur chacun des postes de formation pour éviter des soucis d'IP. En effet, dans le cas d'une connexion réseau par pont sur un réseau fournissant une adresse en DHCP, si la carte réseau virtuelle garde la même adresse MAC (cas d'une copie d'une même machine virtuelle invitée sur plusieurs PC hôte), on se retrouve très vite avec des conflits réseaux...

Il faut anticiper le maximum de problème (on aura toujours des imprévus) d'où une seconde astuce :

L'astuce de Genma : penser à faire valider avant par le client la mise à disposition d'une connexion à Internet et la qualité du réseau (pas de proxy nécessitant une authentification, pas de filtrage par adresse MAC ou autre etc.) Et prendre en compte les informations pour adapter la connexion réseau de la machine virtuelle en conséquence.

Utiliser des points de restauration snapshot

Cela permet que si la personne n'a pas réussi l'exercice, qu'elle puisse repartir d'une machine ayant le résultat et de continuer. Si il y a une mauvaise manipulation, on peut repartir d'une version qui était fonctionnelle. De plus, ces points de restauration / snapshot s'exportent très bien à l'export de la VM (pour sa copie sur clef USB puis sur les PC de formation).

L'astuce de Genma : penser à nommer les points de restauration.

Le luxe étant d'avoir une machine virtuelle par grande phase / partie de la formation (qu'on lance et éteint à chaque fin de grande partie). Mais cela fait autant de machine à maintenir...

Les comptes utilisateurs

Avoir un compte utilisateur et un compte administrateur. Mettre des mots de passe simple (le même pour les deux). L'objectif n'est pas d'avoir de la sécurité mais d'avoir des comptes facile à utiliser

L'astuce de Genma : dans le cas de machine Linux, activer un serveur SSH. Si la machine virtuelle a une IP publique (ou sa machine hôte et qu'on a activé la redirection de port sur la configuration NAT de la machine virtuelle), on peut ainsi facilement accéder à n'importe quel VM via SSH (vu que les comptes sont connus) et aider / débloquer un des participants depuis son propre PC.

Avoir une VM template et maintenir sa VM à jour}

J'ai une VM coquille vide de référence : une installation de Debian minimale de laquelle je peux repartir en la clonant pour répondre à des besoins de formation pour lesquels je n'ai pas encore de VM. Je ne repars pas de zéro comme ça. Et je fais le maintiens / mise à jour de cette VM (tout comme celles plus avancées dans lesquelles il y a un ou plusieurs logiciels dédiés aux formations). Comme ça, je suis les évolutions et montées en version.

Aller plus loin ?

J'avais écrit un billet Jouons avec Ansible et Virtualbox dans lequel, comme le nom l'indique,

On peut imaginer d'automatiser certaines choses avec Ansible et un script. En effet, comme Virtualbox est également accessible en ligne de commandes, on peut imaginer un script qui :
- lance une VM via les commandes Virtualbox
- fait un snapshot /point de restauration de la machine virtuelle
- fait une mise à jour de la VM via Ansible (pour éviter la saisie de mot de passe)
- fait un snapshot /point de restauration de la machine virtuelle (pour conserver la version mise à jour)
- éteindre la machine et passe à la suivante

On lance ça un midi ou un soir et on a toutes ses VM maintenues à jour...

Sauvegardes

Bien évidemment, il faut penser à avoir des sauvegardes de toutes ces machines virtuelles vu tout le travail qu'on aura fait pour les mettre en place. Mais les sauvegardes c'est une évidence, non ?.

Conclusion

Que ce soit pour des VM pour des sessions de formation, pour des POC ou pour des projets, Virtualbox répond parfaitement à mes attentes. Le côté rigueur imposé (comptes connus, mises à jour etc.) permet l'interopérabilité et le transfert rapide à d'autres personnes (collaborateurs ou apprenants de la formation) et permet du gain de temps conséquent. Et vous, un avis, d'autres pratiques ou usages, ou des conseils ?

Yunohost, Virtualbox, Interfaces réseaux

J'avais publié rapidement un billet Yunohost, Clonezilla et Virtualbox expliquant que j'avais fait un clone via Clonezilla de ma machine Yunohost et cloner celle-ci au sein d'une machine virtuelle dans VirtualBox. Dans ce billet, je voudrais aller un peu plus loin et aborder l'aspect configuration et paramétrage réseau.

Remarque :
- Par YunohostProd, je désignerai la machine / serveur sur laquelle j'ai mon Yunohost que j'utilise tous les jours ;
- Par YunohostTest, je désignerai le clone / la machine virtuelle dans VirtualBox.

Mon besoin

Mon besoin est donc d'avoir une machine de test, aussi proche que possible de ma machie de production. L'avantage de la machine virtuelle est de pouvoir jouer avec et faire des tests, revenir en arrière très facilement via les snapshots.

VirtualBox - Quelles cartes réseaux ?

Cet environement de test est testé essentiellement sur deux types de réseaux : chez moi, derrière une Freebox. Et sur un réseau d'entreprise.

Sur chacun des machines virtuelles (que j'utilise dans VirtualBox, indépendamment du fait que ce soit une instance Yunohost), je crée à minima deux cartes réseaux :
- une carte eth0 en mode NAT : l'accès Internet de la machine hôte est alors partagé, je peux faire des mises à jour etc. La machine virtuelle voit Internet mais n'est pas vu du réseau local (elle est derrière un NAT qui est géré par VirtualBox).
- une carte eth1 en mode Réseau Privé hôte sur vbonet0 : la machine est visible et voit la machine hôte et réciproquement. Cette interface réseau me sert pour me connecter en SSH depuis ma machine hôte sur la machine virtuelle.

A ces deux interfaces réseaux, j'en ajoute une troisième :
- une carte eth2 en mode Accès par pont (Bridge). Cette interface est uniquement valable dans le cas où le réseau permet à la machine virtuelle d'avoir une IP dédiée (fixe ou via le DHCP). En entreprise (par exemple), là où les IP sont souvent associées aux adresses MAC, il n'est pas possible d'avoir une IP dédiée pour les machines virtuelles de test ; je désactive donc cette interface. De chez moi, quand je suis connecté sur le réseau de la Freebox, j'active cette carte eth2, ma machine virtuelle a donc une IP dédiée sur le réseau local.
Remarque : vu que via cette interface, la machine hôte voit également la machine virtuelle étant donné qu'elles sont sur le même réseau local, je pourrais désactiver l'interface eth1 quand je peux activer eth2.

Qui voit quoi ?
- via la carte en NAT : la VM a accès à Internet pour les mises à jour derrière un NAT. Elle est invisible du réseau local et de la machine hôte, à moins de faire des redirections de port ;
- via la carte Réseau privé : accès à la machine hôte et réciproquement ; la VM est également visible des autres machines virtuelles situées dans le même réseau privé.
- via la carte Réseau Accès par Pont : comme la machine virtuelle a accès au réseau local et sa propre IP sur le réseau, elle est visible des machines du réseau local en accès direct.

Configuration réseau - DHCP par défaut Pour chacune des interfaces réseaux de ma machine virtuelle, je reste en DHCP par défaut. Je pourrais lui affecter des IP fixes, mais je peux savoir facilement (c'est indiqué au lancement de Yunohost) les différentes adresses IP associées aux différentes interfaces réseaux ; le bail DHCP étant assez long - la machine garde toujours les mêmes IP pour les différentes interfaces.

Connexions à la VM Yunohost

Les connexions Yunohost se font de deux façons :
- par un navigateur pour l'accès aux différentes applications dans Yunohost ;
- par SSH

Sur ma machine hôte (un Linux), pour me simplifier la tâche et Yunohost utilisant les noms de domaines qu'ont lui a associé plutôt que les IP, quand je lance ma machine virtuelle, je pense à modifier le fichier /etc/host

monyunohost.fr 192.168.0.100

avec :
- monyunohost.fr : mon domaine yunohost
- 192.168.0.100 : l'IP du réseau privé affecté par VirtualBox à la machine virtuelle (interface eth1).

Et ainsi, en allant sur https://monyunohost.fr, je peux faire ce que j'ai à faire.

Reste à faire

- Du routage avancé Tout le trafic passe par défaut - est routé via l'interface eth0, celle qui est donc Naté. Cela ne pose pas de soucis pour tout ce qui sort. Mais pour ce qui entre, il est nécessaire de passer par la carte eth1.
=> Il faut que je vois les possibilités de ce côté.

- Mise en place d'une synchronisation Prod vers Recette Je peux très facilement cloner la machine virtuelle YunohostTest pour avoir une machine pour les tests et une machine "Sauvegarde".
J'aurai donc une seconde machine virtuelle, YunoBackup, qui aura une interface eth2 avec une IP du réseau sur lequel se trouve la machine YunohostProd. Les deux machines se voient. Mon idée est de mettre en place un système (un script) qui au démarrage de la machine virtuelle de Sauvegarde (YunoBackup) va se connecter en SSH à ma machine de production, et se synchroniser (à base de Rsync) pour récupérer les principaux changements.
Autre possibilité : récupérer les sauvegardes et les restaurer au sein de cette machine YunoBackup (un bon moyen de valider la procédure de sauvegarde / restoration). Toujours via un script.
=> Je note ça dans ma todo liste de projets personnels. A suivre.

Lifehacking – TinyTask

Ayant à automatiser un certain nombres de tâches faite de façon graphique (des clics divers et variés au sein de différents logiciels en environement Windows), j'ai donc cherché un logiciel qui me permettrait de faire 500 fois la même chose. Et j'ai trouvé. Ce logiciel, c'est TinyTask. Disponible ici gratuitement ici (graticiel, logiciel non libre) https://www.vtaskstudio.com/tinytask.php

Remarque : la tâche nécessitait des actions en mode graphique au sein de différents logiciels, rien qui ne pouvait être automatisé par un script quelconque.

On l'installe, c'est léger. On le lance. On clique sur enregistrer. On exécute la séquence d'action que l'on souhaitera faire de manière répétitive. Cette séquence pouvant être au sein de différentes fenêtres. Et ça enregistre une macro qu'il est possible de rejouer un certain nombre de fois.

Quelques astuces :
- Ça marche bien dans une machine virtuelle (dans laquelle on a un Windows) ce qui permet de continuer à travailler à côté de ça sur la machine hôte. Sans cette astuce, on ne peut pas utiliser sa machine le temps que la tache se déroule. Une VM à lancer sur un second ou troisième écran pour garder un œil dessus. Car...
- Le logiciel plante parfois, donc on lance les répétitions par lot de 20 en gardant un œil dessus.
- Il faut penser à revenir sur la bonne fenêtre de départ à la fin de la séquence (en remettant le focus dessus). Car il semblerait que le logiciel enregistre les clics, la position de la souris et les saisies claviers, mais si on est sur la fenêtre d'un logiciel sans que l'on est le focus dessus, le clic se fait dans le vide et ça décale alors toute la séquence de la macro enregistrée.

Ce logiciel m'ayant bien dépannée (la tâche répétée 500 fois durait une minute à chaque fois une fois la séquence bien optimisée pour être sûre qu'elle marche comme je veux).

Je suis preneur d'un logiciel équivalent et aussi simple sous GNU/Linux Ubuntu. Par aussi simple, je ne veux pas d'un logiciel pour lequel il faut créer un script dans un langage dédié. Je voudrais un logiciel qui fasse la même chose que TinyTask.

Lifehacking – Mes astuces pour faire ma veille ciblée

Dans le présent billet, je voudrais présenter deux astuces pour faire ma veille ciblée. Un autre billet, en cours de rédaction, abordera plus en détail le cas des fils RSS et l'usage d'un agrégateur. Un précédent billet Le combo gagnant pour optimiser sa veille présentait mon cycle de veille quotidienne : lecture en direct (au sein de l'agrégateur) ou lecture plus tard (via Wallabag), conservation du lien (Shaarli). Cette veille recoupe un tous les domaines qui ont un intérêt pour moi.

Le présent billet se focalise sur une veille ciblée. Par veille ciblée j'entends le fait de faire une recherche sur une thématique donnée, pour avoir un état des lieux ou un état de l'art à un instant t. Cela m'est utile dans le cadre de la préparation de mes projets professionnels, pour me remettre à jour ou au contraire découvrir un nouveau domaine.

Rq : chacune de ces astuces est complémentaire des autres.
Rq2 : ces conseils marchent très bien pour faire une veille ciblée sur un sujet technologique ou un logiciel libre particulier, mais sont probablement efficace dans d'autres cas.

Moteurs de recherche

Je n'évoquerai que brièvement la recherche par mot clef judicieusement choisi au sein de différents moteurs de recherche, avec classement par date pour trouver les publications les plus récentes. Cela semble une évidence. C'est ainsi que font la plupart des personnes qui affirment faire de la veille (et auxquelles je pose la question suivante lors des entretiens de recrutement : "faites vous de la veille et si oui, comment ?".

Journal du Hacker

Je suis abonné via le fil RSS au Journal du Hacker (pas encore à la newsletter - Le Courrier du hacker : le point après (déjà) 5 numéros et les leçons retenues).

Là encore, je profite de la fonctionnalité de moteur de recherche incluse sur le site et je fais une recherche par mots clefs, que je trie par date. Cela me permet de retrouver des liens vers différents billets de blog au sein desquels le sujet d'intérêt a été abordé. Et je profite donc du présent billet pour remercier tous les membres de la communauté qui prennent le temps de saisir des articles d'intérêt et d'ajouter des tags pertinents.

Attention toutefois : le Journal du Hacker ne référencie (par choix éditorial, cf https://www.journalduhacker.net/about) que des articles en langue française, et exclue donc de facto toute la richesse du monde anglophone (dont on pourra profiter via les moteurs de recherche).

Rq : les articles les plus pertinents des gros blogs et sites comme Linuxfr.org sont généralement ajoutés dans le journal du Hacker, cela me fait gagner un temps certain en n'ayant pas à chercher sur ces sites (vu que si un article correspond à ma thématique d'intérêt, il ressortira dans le résultat de recherche du Journal du Hacker).

Slideshare

Slideshare est le site où l'on retrouve bon nombre de supports divers et variés de présentation, de conférences... Là encore, le site dispose d'un moteur de recherche interne, je fais une recherche par mots clefs. Et je peux ainsi retrouver des supports qui me permettent d'avoir des retour d'expériences, des états des lieux, des introductions sur différents sujets d'intérêts.

Là encore, la date est importante, ainsi que le numéro de version pour les logiciels présentés (il faut bien avoir en tête quelle est la dernière version d'un logiciel avant d'étudier 80 slides sur une API d'un logiciel qui est désormais dépréciée avec la dernière version en date...)

Youtube

Complémentaire de Slideshare, YouTube permet d'avoir les conférences et le discours autour du support mais aussi de trouver des tutoriels, des vidéos de démonstration et de fonctionnement des logiciels. YouTube étant le site incontournable pour la vidéo, la mode étant à ne plus faire de l'écrit mais des vidéos, YouTube peut être une bonne source pour avoir un aperçu d'un sujet (par chance les logiciels sont un sujet moins polémique et moins soumis à controverse que d'autres, mais il ne faut toutefois pas en oublier son esprit critique).

Les réseaux sociaux

Il m'arrive également de poser une question précise et ciblée, généralement en anglais pour faciliter la visibilité (les personnes susceptibles de répondre techniquement sachant l'anglais, même dans le cercle francophone). Là encore, je regarde qui me répond (est-ce une personne que je connais, de confiance ou un expert du sujet qui intervient suite à la diffusion au sein du réseau social de mon message).

Faire appel à sa mémoire

Je fais également appel à mémoire. J'essaie de me rappeler si je n'ai pas récemment lu ou passé tel ou tel sujet sur tel ou tel site que je suis (et je recherche dans mon Shaarli), si je ne connais pas une personne spécialiste de la dite technologie et avec laquelle je serai en relation via les réseaux sociaux (je lui demande alors quelques conseils et ressources pour bien démarrer sur le sujet).

Autres

Je pourrais également chercher sur des sites comme Medium ou autre, mais je pars du principe que si l'information se trouve sur ces derniers et est accessible librement, elle aura été référencée et donc trouvée via l'astuce du moteur de recherche.

Conclusion

N'hésitez pas vous aussi à partager en commentaire vos astuces pour faire votre veille sur le logiciel libre, je suis preneur d'autres astuces qui pourraient m'aider à être encore plus efficace sur le sujet, lifehacking oblige.