Planet Libre

Renault : La sécurité, l'obsolescence et la maintenance des systèmes embarqués

Il est assez banal de dire que de plus en plus d'équipements modernes sont connectés au réseau. Cela apporte de nouvelles fonctionnalités, la possibilité d'améliorer le produit même une fois vendu par des mises à jour mais aussi des problèmes de confidentialité et de sécurité.

Les systèmes embarqués sont particulièrement concernés par ces problématiques, que les industriels traitent parfois mal et dont les consommateurs sont rarement dans le vrai également.

C'est de cette problématique dont on va parler.

Obsolescence programmée ?

Ce terme revient souvent dans ce genre de discussions. Que l'abandon du support d'un produit, comme par exemple l'absence d'une mise à jour Android, ou que justement la mise à jour de trop rend le système trop lent (cas de certains iPhone) serait une pratique digne de l'obsolescence programmée.

Globalement c'est faux. L'obsolescence programmée est une pratique supposée où un constructeur fragilise **volontairement** son produit afin de nécessiter un remplacement régulier pour augmenter ses ventes.

Le mot clé est donc l'aspect volontaire. Qui est difficile en réalité à constater. Et certains oublient aussi l'aspect de l'équilibre entre le prix et la qualité. Un produit bas de gamme va minimiser la qualité des matériaux par exemple pour que cela coûte moins cher au client. Il est donc normal que le produit dure moins longtemps. Cette question du compromis dans la réalisation du produit est l'essence même du travail d'un ingénieur et de la création de différentes gammes de produits, on ne peut assimiler cela à de l'obsolescence programmée qui consiste en un sabotage.

Je ne vais pas m'étendre beaucoup sur le sujet, il y a trois articles de blog (ici, et là-bas) qui traitent bien de la question de l'obsolescence programmée qui reste une pratique à priori confidentielle. Mais le célèbre reportage d'Arte sur le sujet a mis en lumière cette pratique avec de mauvais exemples et certains le voient du coup... partout.

En tout cas on ne m'a jamais demandé de saboter mon propre produit, et aucun de mes collègues ou connaissances non plus. ;-) Par contre il arrive que certains bogues ne soient jamais corrigés, faute de temps ou de ressources financières pour les traiter.

De la question du progrès logiciel

Certains produits, comme nos ordinateurs ou téléphones portables, peuvent vivre des années sans problèmes. Et ces outils à usage assez génériques peuvent exécuter du logiciel conçu bien après la réalisation du produit.

Mon ordinateur portable personnel actuel date de 2011, il est passé de Fedora 16 à 27, de Windows 7 à 10, de Firefox 7 à Firefox 56, de GNOME 3.0 à GNOME 3.26, de Linux 3.1 à Linux 4.14, etc.

Ce sont des millions de lignes de code ajoutées depuis, le Web a beaucoup grossi entre temps avec du JavaScript devenu omniprésent et des sites devenant de plus en plus des applications complètes. Le contenu multimédia s’alourdit, passant du 720p à 4K pour les vidéos ou les photos. Le chiffrement s'est généralisé également dans les communications ou le stockage.

J'ai constaté peu à peu un ralentissement de ma machine, la consommation de la mémoire a monté (j'ai du rajouter 4 Gio récemment) alors que mon usage, fondamentalement n'a pas changé.

Ce phénomène n'a rien de nouveau, cela suit la loi de Wirth.

C'est un phénomène naturel. Les logiciels évoluent pour ajouter des fonctionnalités (pour répondre à des besoins des utilisateurs). Il est impossible de proposer du logiciel plus moderne tout en espérant une consommation en ressource identique indéfiniment. Soit il faut utiliser un produit qui n'évoluera plus fonctionnellement (cas de beaucoup d'outils simples et légers), ou alors il faudrait beaucoup de ressources financières et humaines pour maintenir plusieurs déclinaisons du logiciel dans le temps. Ce que l'on abordera plus tard.

Ce que la loi de Wirth n'explique pas ou mal, c'est que l'évolution du matériel se produit de manière globale, mais localement un produit a un matériel plutôt figé. Si le matériel évolue mais que les logiciels n'exploitent pas cette puissance supplémentaire, ce serait du gâchis. Donc la consommation des programmes évoluent pour bénéficier de ces ressources disponibles. Et forcément cela se fait au détriment des machines qui accusent d'un certain âge. Cela est encore plus visible sur les téléphones qui ont fait un saut de performances spectaculaire en très peu d'années.

Certains veulent exploiter la machine le plus longtemps possible (donc disons 10-15 ans) tout en bénéficiant de ces évolutions. Ce n'est pas possible sans concession. Il faut faire des choix, en payant cher des produits pour les maintenir longtemps, en renonçant partiellement à ce progrès, en changeant de machine ou renoncer à des usages. Typiquement, aller sur le Web avec une machine de 2002 doit être possible, mais cela ne doit pas être une expérience très agréable en dehors de quelques sites très légers.

Et pour un téléphone bas de gamme, conçu pour être tout juste capable de lancer les applications populaires de l'époque, ne peut pas soutenir la charge d'une mise à jour des dites applications sur le long terme.

Et après toute cette explication, comment associer cela à de l'obsolescence programmée alors que cette lourdeur progressive provient de logiciels extérieurs à la conception du matériel ? Ce n'est pas Intel qui a rendu Firefox plus lourd avec le temps. :-)

La sécurité

La sécurité est devenue depuis quelques années un sujet de premier plan pour tout un nouveau panel de produits. Avec une connexion accessible depuis Internet, il devient possible d'essayer d'infiltrer ces produits qui peuvent être accessibles non stop pendant des années et sans maintenance active (il n'y a pas un administrateur système pour surveiller le réseau domestique d'un particulier).

Du coup, pour combler les failles, il devient nécessaire de mettre à jour le produit. Parfois changer l'outil interne, ou le protocole employé (le MD5 n'est plus un moyen fiable pour vérifier l'intégrité d'un fichier ou d'un certificat).

Du coup pour améliorer la sécurité, on doit les faire évoluer. Ce qui peut nous faire revenir sur le point précédent où le logiciel devient trop lourd pour le matériel considéré ce qui rend compliqué la conciliation des deux.

L'autre problème est... le coût. Quand on achète un produit type téléphone, un réfrigérateur connecté, un modem ou autre, nous achetons le produit à un prix fixe, parfois très dérisoire car très bas de gamme. Sauf que d'assurer une maintenance sur 10-15 ans, cela coûte très cher. Car il devient nécessaire de maintenir plusieurs versions du logiciel (suivant l'âge du matériel et de ses successeurs à maintenir), de tester chaque mise à jour sur chaque produit, tester son déploiement, corriger les éventuels ratés auprès des clients, communiquer auprès d'eux (manuels explicatifs, mise à jour d'un site Web possiblement en plusieurs langues, courriers / courriels envoyés en nombre).

Admettons que pour maintenir un modèle d'un téléphone portable pendant 15 ans il faut une équipe de 10 personnes à temps plein (ce qui n'est pas irréaliste car cela demande beaucoup de travail pour corriger la moindre faille ou les bogues découverts, sachant que le logiciel dépend également du lieu vendu pour des raisons de contraintes légales). En admettant qu'ils ne sont pas mal payés (et qu'il leur faut du matériel adéquat), cela peut revenir par employé à un coût annuel pour l'employeur d'environ 100 000€. Donc 1 million d'euros par an. Sachant qu'un modèle lambda d'un téléphone peut être vendu auprès du million d'unités au total, cela reviendrait a un coût de 10-15 millions d'euros rien que pour la maintenance une fois le produit vendu. Pour des téléphones à 100€, cela représente 10% du budget global du produit ! Ce n'est clairement pas négligeable. Et je ne parle pas des cas de produits moins vendus qui méritent pourtant la même maintenance.

Le Libre comme solution ?

Certains pensent qu'un produit embarqué, s'il est fait avec du logiciel libre, il est aisé de le maintenir pour proposer des mises à jour du produit pendant des années après l'abandon par son constructeur. La réalité est plus complexe.

Pour les projets assez puissants pour accueillir un système d'exploitation Linux (cas des téléphones par exemple), le système est rarement compilé de zéro à la main. Pour gagner du temps, il existe des solutions comme Yocto ou buildroot (et ses déclinaisons OpenWRT ou ptxdist) pour compiler l'ensemble des logiciels (dont le noyau) pour notre système afin d'obtenir une image qu'on pourra installer sur la cible. Je les présenterais dans un autre article.

Seulement, chaque processeur ou plateforme a ses spécificités. C'est pourquoi, les concepteurs des puces (Qualcomm, Texas Instrument, Broadcom, Freescale / NXP et autres) fournissent les solutions citées plus haut avec les changements nécessaires pour exploiter la plateforme. Très souvent le noyau Linux et le chargeur de démarrage U-Boot accueillent une grande liste de correctifs maison (plusieurs centaines).

Cela est bien, car nous n'avons pas à développer nous même les pilotes pour exploiter les fonctions du processeur (notamment pour la couche graphique) et dans l'essentiel cela reste du code libre. Cependant ces correctifs sont gros et souvent… mal réalisés. Faute de temps et de ressources, les constructeurs ne cherchent pas à concevoir des correctifs qui finiront dans le projet officiel. Leur but est que cela fonctionne avec le noyau fourni aux développeurs / intégrateurs. Du coup nous nous retrouvons avec un noyau et un chargeur de démarrage figé, car Linux évolue très vite et il est très difficile de porter ces correctifs pour une autre version. Et comme cela est trop souvent trop mal fait (utilisation d'une pile logicielle différente que celle du noyau pour une fonction donnée, comme le SPI ou le réseau par exemple, code spaghetti avec lien fort entre le tronc commun et leur pilote, etc.) il est difficilement imaginable de porter cela sur le noyau officiel directement.

Pas mal de personnes essayent pourtant de porter le nécessaire sur le noyau officiel. Mais cela demande beaucoup de temps (aujourd'hui le support du téléphone N900 est quasiment complet, mais il aura fallu 8 ans après sa sortie !) et c'est souvent au prix de fonctionnalités partielles (performances graphiques ou réseaux plus faibles, gestion de l'énergie douteuse). Sans collaboration du fondeur, c'est une tâche globalement vouée à l'échec étant donné le rythme de sortie des composants. Puis le fabricant de la puce bosse déjà sur la plateforme suivante. Ils n'ont pas le temps, ni l'envie, de s'attarder sur un produit qui n'a plus d'avenir.

Et même dans le cas où ce serait possible, il y a des sacs de nœuds dans l'architecture du système. Si vous souhaitez profiter par exemple des dernières tablettes Wacom sur votre machine, il faudra un noyau récent. En admettant que vous avez un noyau LTS un peu ancien comme la 3.4, il faudra rétro-porter cette fonctionnalité. Cela signifie récupérer le pilote mais souvent d'autres commits sur le sous-systèmes des périphériques entrées. Mais le noyau ne fait pas tout, il faut également que l'interface graphique propose de quoi configurer et exploiter le matériel. Donc par exemple en récupérant du travail effectué sur les versions récentes de GTK+ et de GNOME. Cela peut donc représenter beaucoup de travail, sur beaucoup de composants, et il faudra tester bien sûr du bon fonctionnement, de la sécurité et de la maintenance de tout ceci.

Bref, l'aspect libre peut aider bien sûr à maintenir un produit plus longtemps. D'ailleurs les initiatives du genre OpenWRT, CyanogenMod / LineageOS permettent de maintenir à jour certains produits embarqués plus longtemps que le support officiel du constructeur. Mais cela se fait souvent au détriment de certaines fonctionnalités matérielles.

Solutions ?

Je pense que la solution ne peut se passer de l'aide des industriels, qui eux-mêmes ne peuvent pas se permettre à un coût fixe d'une maintenance complexe sur une très longue durée. Imposer légalement une durée minimale de support conduirait à une hausse de prix d'achat inévitable de tous ces biens.

Une autre solution serait d'évoluer vers une tarification en tant que service. À savoir payer pour une durée de maintenance souhaitée. Si l'utilisateur souhaite 10 ans de maintenance, il le pourra, au prix d'un abonnement ajusté en conséquence. Je pense que c'est la seule solution, notamment pour les produits vendus à un volume moyen ou faible, d'avoir une maintenance dans le temps à la hauteur, sans rendre le produits inutilisable ou trop cher à l'achat.

La solution libre et gratuite me semble difficilement possible. Il suffit de voir qu'aucune distribution purement communautaire gratuite pour x86 n'arrive à gérer une maintenance de plus de 5 ans. Pourtant la plateforme est plus simple et plus standard. Donc aller au delà me paraît difficile. Car ce n'est pas une tâche aisée, ni très passionnante. Il faut en effet du savoir faire du matériel et beaucoup de temps.

Après bien entendu, les constructeurs ont leur part à jouer, en s'impliquant d'avantage dans le noyau officiel (qui pourrait lui également avoir une politique plus adaptée à ces besoins, en ayant une API interne plus stable). Il faut également réduire la surface d'attaque au maximum, n'offrir l'accès au réseau que lorsque la plus valu est réelle. Ce genre de décisions aideraient à avoir une meilleure sécurité dans le temps de ces plateformes.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Carl Chenet : Gmail : l’insideuse censure

Cet article expose comment gérer une newsletter et l’étude de son traitement par Gmail m’a permis de constater une insidieuse censure effectuée par ce service en ligne.

Contexte

Les lecteurs réguliers de ce blog le savent, je suis l’auteur du Courrier du hacker, une newsletter hebdomadaire résumant l’actualité francophone du Logiciel Libre et Open Source.

E-mail Submit

J’ai récemment lu beaucoup d’articles sur les newsletters, afin de savoir davantage dans quoi je m’engageais en créant la mienne. Un thème récurrent de ces articles est les interactions avec Gmail, le service web – gratuit (tiens donc) pour le grand public – offert (haha) par Google pour envoyer, recevoir et gérer « ses » courriels.

Gmail, le service de courriels de Google

J’ai fini par m’interroger de la récurrence de ce thème dans les articles parlant des newsletters que je lisais et j’ai poussé l’investigation, jusqu’à tomber sur la statistique ci-dessous.

 

Pourcentage des utilisateurs de Gmail dans les abonnés au Courrier du hacker

J’ai dû la lire plusieurs fois pour y croire. 43% des abonnés du Courrier du hacker sont des utilisateurs de Gmail. Et il s’agit d’un public libriste. Je vous laisse imaginer la même statistique sur un ensemble de clients de messagerie plus « grand public ».

Pourquoi Google vous offre Gmail

Petit rappel de comment se rémunère Google : Gmail lit les courriels de ses utilisateurs (de la correspondance privée donc, que les conditions d’utilisation des services Google signées entre l’utilisateur et Google rend caduque), les analyse, enregistre et catégorise tout ce qu’il peut de ses utilisateurs jusqu’à l’intime (santé, orientation sexuelle, origine ethnique, croyances religieuses) afin de fournir plus tard de la publicité ciblée aux annonceurs et partenaires et tenir au passage toutes ces informations à la disposition du gouvernement américain sur toutes les personnes ayant un compte Google dans le monde).

Extrait des condition d’utilisation de Google. Il reconnaît donc bien utiliser des informations sensibles de ses utilisateurs. Pourquoi sinon les stocker ?

Ce « deal » n’est clairement énoncé nul part. Pourtant l’enjeu est une part gigantesque de la vie privée, par exemple le droit à ne pas voir sa correspondance privée étudiée par les ingénieurs de Google et avoir sa vie privée revendue au plus offrant en pièces détachées.

Si c’est gratuit, c’est vous le produit

Le problème

Concernant la newsletter, j’ai également appris en lisant ces articles que les e-mails des nouvelles newsletters tombaient en général les premiers temps (nous verrons cela) dans l’onglet Promotions de l’interface web de Gmail. Pardon ? Quelle promotion ? Si vous ne la connaissez pas, en voici un exemple.

Les 3 onglets sont visibles. Par défaut l’onglet présenté est l’onglet nommé « Principale ».

Vous devinez la suite : en tant que rédacteur d’une newseletter, c’est une catastrophe de voir son courriel arriver dans un autre onglet que « Principale », les deux autres n’étant que très rarement consultés, voire considérés comme contenant du spam.

Mon premier réflexe a bien sûr été de guider via un petite guide les nouveaux abonnées à ma newsletter pour qu’ils puissent accéder au contenu auquel ils ont souscrit. Mais j’aurais de la chance si 1% des nouveaux abonnés suivent ce guide.

Pour information et par curiosité, regardons ce que contient l’onglet « Promotions ».

Ouais, on voit le genre, et donc c’est dans cet onglet qu’arrive ma newsletter à laquelle la personne s’est pourtant abonnée d’elle-même… Merci Google.

 

La censure de Gmail

Voilà donc ce que j’ai appris à cette occasion, c’est que Gmail ne fait pas que vous échangez un service minime contre votre vie privée. Il s’enfonce encore davantage dans la honte en pratiquant la censure.

Pourquoi cette censure ? Ma newsletter n’est envoyée qu’à de personnes qui ont fait la démarche de s’abonner. Les gens peuvent se désabonner immédiatement. Les courriels envoyés représentent donc un trafic garanti sans spam transmis avec l’autorisation explicite des abonnés.

Mais Gmail n’est pas d’accord, ça n’est pas suffisant pour lui, en opposition avec plus de 35 ans d’utilisation de pratiques communes des utilisateurs de l’e-mail. Au lieu d’acheminer simplement les courriels jusqu’aux différents destinataires,  il applique des filtres à sa discrétion pour pratiquer une pure et simple restriction directe à ses utilisateurs de la liberté de communiquer.

Ajoutons que l’abonné à la newsletter ne recevant pas son e-mail, son premier réflexe va être de maudire non pas Google… mais le rédacteur de la newsletter.

Ray Tomlinson, considéré comme l’inventeur et précurseur de l’utilisation de l’e-mail, décédé en 2016. Source Wikipedia

Quelle raison peut invoquer Google pour cette censure ? Réduire le spam pour ces utilisateurs ? Réduire le risque d’hameçonnage ou de propagation de virus informatiques ? Tout cela en censurant des correspondances légitimes ?

Messieurs les fondateurs de Google sont déjà dans le futur, dans le transhumanisme, tout ça, mais la solution technique au spam est de supprimer une partie du trafic légitime ? Franchement, pas besoin d’intelligence artificielle, d’apprentissage automatique (machine learning) et autres technologies vendues comme incroyables pour en arriver à ce résultat, pour le moins décevant. Ou peut-être que l’incapacité technique n’est pas vraiment en cause ?

Transhumanisme, intelligence artificielle… mais le spam reste un problème ?

Ou peut-être que le grand public n’a pas besoin des newsletters, que c’est pour notre bien et pour éviter les conséquences du spam que ce trafic est stoppé, pour le bien de l’utilisateur de Gmail.

Attendez, restriction de liberté, de la liberté de communiquer contre davantage de sécurité, ça me rappelle quelque chose que nous connaissons à bien connaître en France. Cette infantilisation intéressée, un néo-paternalisme qui visent à échanger les libertés peu à peu contre un faux sentiment de sécurité.

Les Google Groups, les newsletters à la sauce Google

En rédigeant cet article m’est revenu en tête l’existence de ce service moche et restreint que sont les Google Groups, une newsletter à la sauce Google, à la mode il y a quelques années. Avec un peu réflexion, on peut imaginer un lien obscur entre la promotion de ce service par Google et la pénalisation des newsletters traditionnelles par leur outil Gmail.

Les Google Groups, l’échange d’e-mails de groupes à la sauce Google

Il s’agit donc aussi d’une censure intéressée bassement mercantile, du placement de produit au forceps par la restriction de libertés utilisées quotidiennement par les échanges d’e-mails sous forme de newsletters depuis 35 ans.

Quelles alternatives ?

Devant tant de cynisme et d’utilisation de méthodes liberticides, vers quelles alternatives se tourner ?

  • une liste d’hébergeurs associatifs
  • le projet ProtonMail, offrant du stockage chiffrée de vos données, inaccessibles à l’opérateur du service
  • tous les fournisseurs de services de courriel dont les conditions générales n’incluent pas l’exploitation de vos données personnelles ni de restrictions d’accès aux courriels de certains de vos correspondants légitimes
Conclusion

Comme nous l’avons vu, Gmail est un service faussement gratuit, à éviter absolument, une machine à débiter votre vie privée en tranches revendues au plus offrant et – c’est l’objet de cet article – censurant au passage vos correspondances afin de s’assurer de votre emprisonnement au sein du système de services interconnectés que Google a mis en place.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Miamondo : Openbox : minimalisme et légèreté.

Bonjour

C’est en installant Vipper sur mon vieil ordinateur portable que j’ai véritablement découvert Openbox. J’en avais entendu parler mais sans m’y intéresser plus avant. Contrairement à Xfce, MATE, GNOME et Consorts, Openbox n’est pas un environnement de bureau mais un simple gestionnaire de fenêtres ce qui explique son extrême légèreté. Sur les conseils d’un posteur, j’ai commencé à éditer le fichier ~/.config/openbox/menu.xml pour créer un menu principal à ma sauce (en bas à gauche).

viperr_menu

Je l’ai traduit en allemand et je n’ai gardé que les fonctionnalités que j’utilise réellement. Je dois reconnaître que j’ai pris plaisir à modifier la configuration d’Openbox. J’ai eu le sentiment de me coucher moins con. Du coup, je me suis dit :

« Pourquoi n’essaierais-tu pas d’installer Openbox sur Volgor, ton fidèle ordinateur de bureau, en lieu et place de l’environnement Xfce? »

À core vaillant, rien d’impossible, je me suis lancé dans ce nouveau chantier en installant au préalable le gestionnaire de fenêtres susnommé:

sudo aptitude install openbox

Puis en supprimant tout ce qui ressemblait à Xfce :

sudo apt-get purge xfce*

Petit reboot et le résultat magique de cette manipulation radikale s’est affiché devant mes yeux de grand enfant toujours prompt à s’émerveiller à la moindre nouveauté :

Capture d'écran de mon nouveau bureau

" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&h=408?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&h=408?w=840" src="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&h=408" alt="Capture d'écran de mon nouveau bureau" width="657" height="408" srcset="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&h=408 657w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=150&h=93 150w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=300&h=186 300w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=768&h=476 768w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=1024&h=635 1024w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png 1242w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px">Capture d’écran de mon nouveau bureau

Un écran tout gris… Ah ben oui, je vous avais prévenu! Openbox est un gestionnaire de fenêtres minimaliste, pour ne pas dire austère, voire même ascétique! Cela dit, Keine Panik! En effectuant un clic droit sur ce bureau déprimant, on accède à un embryon de menu qui va nous permettre de continuer notre progression. Ce menu principal correspond très exactement au fichier : ~/.config/openbox/menu.xml

.config est un dossier caché dans votre répertoire personnel (le point signifie « caché »). On accède aux dossiers cachés en pressant les touches Ctrl+h. Vous pouvez faire le choix de modifier directement à la main ce menu.xml (Ce n’est pas bien compliqué) ou bien d’installer obmenu qui est l’interface graphique vous permettant d’effectuer cette opération de modification. Profitez-en également pour installer obconf qui est le gestionnaire de configuration des fenêtres.

sudo aptitude install obmenu

sudo aptitude install obconf

Voici donc mon menu dans la langue de Jérôme Boateng :

Menü_035

À ce stade, nous avons donc :

  • un fond d’écran tout gris,
  • la possibilité d’ouvrir un menu en effectuant un clic droit,
  • la possiblité de modifier ce menu grâce à obmenu ou bien manuellement.
  • la possiblité de configuer les fenêtres grâce à obconf, en entrant simplement la commande obconf dans un terminal.

C’est un peu spartiate… Installons donc nitrogen, un outil fort simple d’utilisation, lequel va nous permettre de décorer ce bureau tristounet d’un magnifique fond d’écran.

sudo aptitude install nitrogen

Auswahl_036

C’est déjà mieux mais il manque une barre de tâches. Pour cela, nous allons installer l’outil tint2 : sudo apt-get install tint2. Là encore, vous pouvez le configurer à la main en éditant le fichier ~/.config/tint2/tint2rc ou bien vous pouvez le configurer grâce à une interface graphique qui apparait en entrant dans un terminal la commande tint2conf. La configuration de la barre de tâches est l’opération qui m’a demandé le plus d’énergie. j’ai galéré un peu, notamment pour « accrocher » le menu principal à la barre de tâches (en bas à gauche, avec l’icône me représentant). Le menu se déroule grâce à un outil un peu spécial qui s’appelle xdtool et qui simule des événements du clavier et de la souris. Dans ce cas précis, il simule l’événement clavier super + space (touche window + barre d’espacement).

Au final, voici ce que ça donne (j’ai finalement opté pour un fond d’écran Debian…) :

Menü_037.png

Pour que la barre de tâches apparaisse à chaque démarrage, il convient d’entrer cette commande dans le fichier ~/.config/openbox/autostart :

tint2 &

Si vous souhaitez lancer d’autres applications au démarrage, il suffit d’entrer les commandes correspondantes toujours suivies de l’esperluette &. Voici le contenu de mon fichier autostart qui lance la barre de tâches, le fond d’écran et mon agenda personnel que j’avais programmé en python l’année dernière.

# These things are run when an Openbox X Session is started.
# You may place a similar script in $HOME/.config/openbox/autostart
# to run user-specific things.

# Lance tint2
tint2 &

# Lance le fond d’écran
nitrogen –restore &

# Lance mon agenda personnel et ouvre ce dernier au jour courant
/home/ordinosor/Documents/agendrier/agenda.py &

desktop 1_039.png

En guise de conclusion, je dirais qu’on peut très bien se contenter d’un gestionnaire de fenêtres et se passer d’un environnement de bureau. Outre la légèreté, vous prendrez plaisir à configurer votre bureau et à le voir prendre forme petit à petit.

Tschüss!

 

 


Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Full Circle Magazine FR : Voici le numéro 126

Bonjour !

L'équipe du FCMfr (AE, Bab et d52fr) est heureuse de vous présenter le numéro 126, celui d'octobre 2017, avant la parution du numéro 127 en anglais. Comme d'habitude, vous pouvez le lire ou le télécharger sur notre page NUMÉROS ou l'obtenir directement en cliquant sur l'image ci-dessous.

issue126fr.png

Outre l'article de couverture qui vous détaillent différentes façons d'écrire sous Linux, vous avez des tutoriels (tmux, Inkscape, FreeCAD, et un nouveau chapitre sur LaTeX à la place du Python, car Greg est toujours un peu souffrant). Il y a également trois critiques sur : Pop!_OS (le système d'exploitation maison de System76, la DSL2 (qui est vraiment plus rapide que l'ADSL) et Pac-Man 256 qui ne coûte pas cher, mais vous rendra accro si vous n'y faites pas garde. Les bonnes choses habituelles sont là aussi (Courriers, Q. et R. (avec une longue partie sur comment Gord fait des sauvegardes en utilisant rsync), C&C et, bien entendu, les Actus.

Profitez-en bien !

N'OUBLIEZ PAS L'UBUNTU PARTY. Voici l'annonce « officiel »:

L'association Ubuntu-fr organise la vingt-cinquième Ubuntu Party parisienne qui se déroulera le week-end des 25 et 26 novembre 2017. Nous aimerions vous y voir.

Cet événement permet de présenter au grand public et aux professionnels la distribution GNU/Linux Ubuntu. Nous développerons des animations autour des thèmes Internet et la vie privée, ainsi que de la culture et l'art libre.

Il y aura une quarantaine de conférences, d'ateliers, de démonstrations et de cours. Le programme complet est disponible sur http://www.ubuntu-paris.org/

Elle aura lieu comme d'habitude au Carrefour Numérique de la Cité des sciences et de l'industrie de La Villette au 30, avenue Corentin-Cariou dans le 19ème arrondissement. Pour plus de détails http://www.cite-sciences.fr/fr/infos-pratiques/acces/ . Bien entendu, l'accès est libre et gratuit.

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #46

Pour la 46ème semaine de 2017, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Angristan : Auto-héberger les polices Google Fonts sur WordPress

Auto-héberger les polices Google Fonts sur WordPress

Je m'était promis de le faire avec mon changement de thème cet été, et c'est désormais le cas : les polices de ce site ne sont plus servies par Google Fonts. Pourquoi ne pas utiliser Google Fonts ? C'est simple : d'une part le gain en performance n'est pas intéressant : je n'ai pas un serveur en mousse, il est tout à fait capable de servir des fichiers de quelques KB, et avec HTTP/2 et le multiplexage des requêtes HTTP, ça n'a aucun impact sur les performances de servir ça depuis le même domaine. Mais c'est surtout l'aspect vie privée, qu'il est difficile de ne pas évoquer dès que l'on touche à un service Google, puisque chaque visiteur va devoir télécharger quelques fichiers depuis les serveurs de Google. Et donc on a presque un service similaire  : avec votre adresse IP et votre user-agent, Google va pouvoir vous suivre sur tous les sites qui utilisent Google Fonts et donc exploiter ces donnée à des fins commerciales par exemple. Bref ça pue, ça apporte pas grand chose, alors ça dégage. Je vous invite donc à éviter ce genre de CDN, et à lire cet article de Pepper & Carrot : "My fight against CDN libraries" . Lorsque j'avais hébergé mes polices en local il y a environ 2 ans pour mon précédent thème, j'avais tout téléchargé et modifié le CSS à la main... Une plaie, d'où le fait que j'ai procrastiné à faire ce changement depuis août :D google-webfonts-helper Grâce à Mastodon, j'ai redécouvert un service : google-webfonts-helper. Hyper pratique, il facilite grandement la vie lorsque l'on souhaite migrer de Google Fonts vers un hébergement local, mais en ayant exactement les mêmes fonctionnalités et sans se prendre la tête. Il se présente sous la forme d'un site web, où le retrouve les polices présentes sur Google Fonts. Ensuite, on peut télécharger et installer la police en 4 étapes :
  • On sélectionne le charset
  • On sélectionne le ou les styles
  • On copie le CSS avec les font-face
  • On télécharge un fichier ZIP contenant les polices.
Le CSS est adapté aux fichiers présents dans l'archive, si bien que vous n'aurez probablement rien à changer. Si besoin on peut quand même changer le chemin des polices dans le CSS dynamiquement directement sur le site afin de gagner du temps. Auto-héberger les polices Google Fonts sur WordPress Auto-héberger les polices Google Fonts sur WordPressUtilisation avec WordPress Pour info vous pouvez utiliser google-webfonts-helper avec n'importe quel site web, mais je vais expliquer ici la démarche à suivre dans le cas d'un site WordPress. Quelles polices sont utilisées par le thème ? Un petit tour dans les sources d'une page utilisant Google Fonts et c'est joué. Dans mon cas, le CSS Google Fonts était celui-ci : https://fonts.googleapis.com/css?family=Lato:400,300italic,700|Source+Sans+Pro:400,400italic J'ai donc ici 2 polices avec leurs styles. Le CSS est généré dynamiquement via les paramètres passées dans l'URL. Récupération des polices sur google-webfonts-helper Ensuite, allez sur google-webfonts-helper, et récupérez le CSS et les polices pour chacune des polices. Les styles correspondent aux paramètres de l'URL, sachant que 400 c'est regular. Aussi, si vous avez des doutes, vous pouvez tout sélectionner, au final les polices vraiment utilisées sont définies dans du code CSS différent, et un font-face non utilisé ne sera pas téléchargé par le client. Création d'un thème enfant Pour la suite, vous allez avoir besoin d'un thème enfant. Je ne vous fait pas un tuto, il en existe des pelletées sur Internet. Ajout des polices sur le serveur Créer un dossier dans votre dossier de thème enfant, et mettez dedans tous les fichiers de police ainsi que le fichier CSS contenant toutes les @font-face pour toutes vos polices Désactivation des polices Google Fonts du thème parent Avant d'ajouter nos polices locales, il va falloir désactiver l'ajout des polices Google Fonts dans le thème parent. Pour cela, recherchez la fonction PHP correspondante dans le fichier functions.php de votre thème parent. Chez moi, elle ressemble à ça : /** * Load google fonts. */ function nisarg_google_fonts() { $query_args = array( 'family' => 'Lato:400,300italic,700|Source+Sans+Pro:400,400italic', ); wp_register_style( 'nisarggooglefonts', add_query_arg( $query_args, '//fonts.googleapis.com/css' ), array(), null ); wp_enqueue_style( 'nisarggooglefonts' ); } add_action( 'wp_enqueue_scripts', 'nisarg_google_fonts' ); Ce qui m'intéresse ici c'est cette ligne : wp_enqueue_style( 'nisarggooglefonts' ); C'est le nom de notre CSS dans le système de style WordPress. Ensuite, dans votre functions.php de votre thème enfant, ajouter une fonction comme celle-ci, en mettant bien le nom du style pour wp_deregister_style(). // Remove Google Fonts function remove_google_fonts() { wp_deregister_style( 'nisarggooglefonts' ); } add_action('wp_print_styles', 'remove_google_fonts' ); Ensuite on ajoute notre style à nous, content les font-face de Google Fonts, mais pointant sur nos fichiers locals dans le dossier fonts du dossier de notre thème enfant : wp_register_style( 'angristan-fonts', get_stylesheet_directory_uri().'/fonts/fonts.css' ); wp_enqueue_style( 'angristan-fonts' ); Et voilà ! Ca peut paraître un peu complexe à première vue, mais en fait c'est très logique et très simple, surtout si vous êtes habitué à WordPress. Nous voilà avec un site un peu plus propre :) [caption id="attachment_5294" align="aligncenter" width="640"] Aucune requête externe sur la page d'accueil :)[/caption]

L'article Auto-héberger les polices Google Fonts sur WordPress a été publié sur Angristan

Gravatar de Angristan
Original post of Angristan.Votez pour ce billet sur Planet Libre.

Articles similaires

NumOpen : Intégration d’un poste GNU/Linux dans un domaine Windows

Il y a quelques années, j’avais administré un petit parc de 100 postes dans une PME industrielle. Pour être tranquille avec les virus, ne plus avoir à ré-installer 1 à 2 postes Windows par mois et ne plus avoir la moitié des fichiers vérolés par des vers dans les dossiers partagés en réseau, j’avais remplacé 80% des postes Windows par des postes GNU/Linux.

C’était facile, tous ces postes utilisaient Mozilla Firefox, Mozilla Thunderbird, LibreOffice et se connectaient à un serveur Windows TSE pour accéder aux logiciels de gestion. Rien d’autre de particulier. Par précaution, j’avais ré-installé tous les postes Windows restants : CAO, anciennes applications DOS/Windows sans contrat de support que j’avais virtualisées avec VirtualBox, logiciels d’acquisition/transmission de données et de pilotage d’appareils industriels. J’en avais profité pour faire le ménage dans les pourriciels et pour rappeler les consignes de sécurité (clé USB, pièces jointes, téléchargement…).
Les droits d’accès étant gérés par un serveur Windows 2003, je ne m’étais pas cassé la tête à intégrer les postes GNU/Linux dans le domaine, j’avais juste mémorisé sur chaque poste les accès aux dossiers partagés et créé localement sur chaque poste un utilisateur/mot de passe identiques à ceux enregistrés dans l’annuaire Active Directory.
C’était moche mais ça marchait et comme c’était trop complexe à l’époque pour intégrer un poste GNU/Linux dans un domaine Windows, je ne m’étais pas plus cassé la tête.
J’ai de suite eu un gain de temps disponible considérable, plus aucun utilisateur planté ou ralenti, plus de redémarrages des postes nécessaires, plus d’ordinateurs à ré-installer régulièrement. J’ai gagné facilement 2 jours de temps libre par semaine et j’ai pu tranquillement travailler sur l’intégration des logiciels de gestion et sur l’amélioration de la sécurité et du parc informatique.
Au passage, la connexion au serveur Windows TSE depuis un poste GNU/Linux marchait très bien avec Remmina, on perdait juste la possibilité d’écrire des caractères spéciaux (par exemple diamètre ∅) avec la combinaison de touches ALT+xxx. Mais c’est maintenant possible de faire cela avec un logiciel libre tel que WinCompose.
En lisant par hasard un article sur l’outil realm pour intégrer facilement un poste GNU/Linux dans un royaume Kerberos, j’ai eu l’envie de tester cela, ce que je n’avais pas fait à l’époque.
J’ai installé Linux Mint MATE et un serveur Windows 2008 dans 2 machines virtuelles avec VirtualBox et j’ai commencé à tester cela. Avec l’aide d’un membre de l’association Graoulug, nous avons intégré la machine GNU/Linux dans le domaine Windows et nous avons monté automatiquement un dossier Windows partagé lorsque l’utilisateur GNU/Linux ouvre une session.

Si vous souhaitez faire des essais, une documentation détaillée est disponible, elle a déjà été testée par une autre personne avec un serveur Windows 2012 et avec un NAS Synology.
N’hésitez pas à apporter vos commentaires, critiques, suggestions, corrections etc.

Gravatar de NumOpen
Original post of NumOpen.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : 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.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Tom : Installation d’un serveur Debian 9

Salut les amis.

Hier, j’ai réussi à avoir un serveur Kimsufi avec 2 To de HDD pour le prix d’un serveur avec 1 To. à 10€ par mois je vais pas regarder trop les performances pures et dures du serveur, sachant que ce serveur sera pour remplacer mon vieillissant Kimsufi qui n’a qu’un disque de 512 Go (que je pense reconvertir en serveur de Backup) … Ce nouveau serveur servira de serveur web, serveur de cloud privé, seedbox, serveur GIT, de test pour docker … enfin un peu tout.

Plutôt que de simplement migrer facilement mon serveur Debian 8 vers le nouveau, je vais réécrire ici les procédures d’installation from scratch, mais je pense que ceci aboutira à l’utilisation d’un script post-install … Oui car on est flemmard ou on ne l’est pas !

Partitionnement

La grande question du partitionnement

Alors pour expliquer rapidement.

Un / de 20 Go, suffisant.

/home qui fait pour l’instant 1 To, je vais stocker les fichiers de ma seedbox 😀

/var/log qui fait 5 Go (oui j’ai eu une fois une appli verbeuse, qui m’a généré tellement de log que j’en ai perdu mon serveur … Je préfère donc toujours mettre mon dossier de log dans une partition à part et quelle reste isolée du reste du système … Les logs ça grossi vite 🙂

Et le reste ?? Et bien le reste je vais voir. Est ce que j’agrandis mon /home ? est ce que je dédie une partition à autre chose ? Je ne sais pas … de toute façon c’est du LVM donc je verrai avec le temps ! 😉

Premier Démarrage Création d’un compte utilisateur

Pour commencer, si vous n’avez pas de compte perso, ajoutez en un, si vous en avez un passez cette étape

Je vais donc me créer un compte sur le serveur et définir son mot de passe.

useradd -m -G sudo tom passwd tom

Maintenant il va falloir personnaliser mon environnement de travail (logiciel, bashrc …)

Pour commencer, c’est personnel, je vais importer mon bashrc et mon env shell. Pour cela j’héberge sur GitHub les fichiers nécessaires

cd /tmp # On installe git si pas encore installé sudo apt install git git clone https://www.github.com/SckyzO/bashrc cd bashrc # Copie dans le home directory de l'utilisateur cp .bashrc .dircolors $HOME # Copie dans le home directory de root sudo cp .bashrc .dircolors /root # On delete :) rm /tmp/bashrc

Mise en place des dépôts

Nous allons ajouter les dépôts « contrib » et « non-free » ainsi que le rétro-portage Backports

vi /etc/apt/sources.list

# Les dépôts officiels Debian Jessie : deb http://httpredir.debian.org/debian/ stretch main contrib non-free #deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free # Debian Jessie, mises-à-jour de sécurité : deb http://security.debian.org/ stretch/updates main contrib non-free #deb-src http://security.debian.org/ stretch/updates main contrib non-free # Debian Jessie, mises-à-jour "volatiles" : deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free #deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free # Debian Jessie, dépôt de rétro-portages ("backports") : deb http://httpredir.debian.org/debian stretch-backports main contrib non-free #deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free

Mise à jour système

apt-get update && apt-get upgrade && apt-get dist-upgrade

Installation des programmes Divers

apt-get install man manpages-fr manpages-fr-extra manpages-fr-dev bash-completion curl locales fortunes nano python-pip wget zip unzip bzip2 linux-kernel-headers screen ca-certificates fortune-mod lsof strace sudo tree coreutils htop ccze vim-runtime vim-common vim-nox vim vim-syntastic vim-addon-manager vim-runtime build-essential subversion autoconf screen g++ gcc ntp curl git unrar unzip mediainfo ffmpeg

Je ne vais pas rentrer dans les détails des programmes installés. C’est mon environnement

Ajout de mon MOTD Dynamique

Pour ceux qui ne savent pas, je vous renvoie vers le lien suivant :

Création d’un MOTD dynamique : dynmotd

 

Un peu de Sécurité

Sécuriser son serveur SSH, c’est quand même la base. Par défaut la configuration est bien pour une utilisation locale. Mais sur internet, mieux vaut prendre quelques précautions.

Perso, je change le port de connexion par défaut, cela évitera quelques petits soucis (mes amis les bots …), et je n’autorise pas la connexion SSH à l’utilisateur root (non sans déconner !!)

Il vous faudra éditer le fichier /etc/ssh/sshd_config

Changer le port par défaut (évitez de mettre un port compris en 1 et 1024 …)

[ . . . ] Port 1234 # (mettez le port que vous souhaitez) [ . . . ] Protocol 2 [ . . . ] PermitRootLogin no [ . . . ] # Cette variable permet uniquement aux utilisateurs listés après la variable AllowUsers de pouvoir se connecter en ssh (Fonctionne aussi avec AllowGroups) AllowUsers username1 username2 AllowGroups groupe1 groupe2

Voila le principal est fait. J’écrirai un autre article à destination de la sécurité sur un serveur Linux (ssh, fail2ban, port-knocking …)

Et Ensuite ?

Et bien ensuite va s’en suivre plusieurs articles, pour l’installation, configuration de plusieurs soft. Je pense à terme faire pas mal de docker. Je reviendrai dessus dans les jours prochains.
Pour l’instant on va s’installer « normalement » une petite seedbox sur le serveur. Je vous présenterai cela par la suite.

 

Et vous vous installez aussi votre Debian comme ceci ?

Gravatar de Tom
Original post of Tom.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : Cheminement d’un power user : De Windows à GNU/Linux

La première fois que j’ai croisé le mot power user, c’était chez Sebsauvage il y a plus de 10 ans.

La définition en Français « Utilisateur intensif » étant trop pauvre, je vais citer la version Anglaise de Power user : « A power user or experienced user is a computer user who uses advanced features of computer hardware, operating systems, programs, or web sites which are not used by the average user. A power user may not have extensive technical knowledge of the systems they use and is not capable of computer programming or system administration, but is rather characterised by the competence or desire to make the most intensive use of computer programs or systems ».

« Un power user peut ne pas avoir une connaissance technique approfondie des systèmes qu’il utilise et n’est pas en mesure de programmer ou d’administrer des systèmes informatiques, mais se caractérise plutôt par la compétence ou le désir d’utiliser le plus intensivement possible les programmes ou systèmes informatiques ». J’aime beaucoup cette définition car elle renvoie moins au niveau de l’utilisateur (débutant, expérimenté, etc.) qu’à son désir, son but : Utiliser le plus intensivement possible les programmes ou systèmes informatiques.

Cela me caractérise bien dans mon usage de l’informatique, bien mieux que sysadmin ou ingénieur ou administrateur systèmes et réseaux. Je ne me définis pas par un niveau mais par un désir, rechercher la manière la plus efficace d’utiliser les outils à ma disposition.

Frustration et impuissance

J’avais expliqué dans La quête mon parcours de Windows à GNU/Linux. L’élément déclencheur a été une terrible frustration : Être sysadmin, passer sa journée sur Windows Seven et ne pas pouvoir paramétrer ses outils exactement comme on le désire. J’étais au final impuissant devant ce système d’exploitation qui me limitait énormément.

Windows a beau proposer la plus large logithèque de tous les systèmes d’exploitation, on est limité et on n’y peut rien. Le système est conçu et vendu pour être utilisé par des centaines de millions de personnes, il n’est pas possible d’assurer un support, de proposer une expérience commune et cohérente si on laisse trop de possibilités et de choix aux utilisateurs.

Windows offre une base commune et solide aux débutants, professionnels, particuliers, etc. Microsoft en faisant cela s’adresse à une majorité écrasante d’utilisateurs mais se coupe totalement des usages différents ou plus pointus : Power users, curieux, bidouilleurs, hackers, « alter ».

Écosystème et culture

J’ai appris et compris que les mots à utiliser pour caractériser Windows et GNU/Linux n’étaient pas les mêmes. Windows amène une base commune et cohérente, GNU/Linux propose de faire des choix : systèmes d’exploitation (Debian, Ubuntu, ArchLinux, Fedora…) et bureaux (Gnome, KDE, XFCE, Mate…) entre autres.

Windows est finalement grand public même si il est relativement souple, GNU/Linux est exigeant car il impose à l’utilisateur de faire ses propres choix, de réfléchir à son usage, à ce qu’il veut, de comprendre et apprivoiser son système d’exploitation, de prendre ses responsabilités.

Windows est un système d’exploitation composé d’un seul bloc développé par Microsoft, GNU/Linux est un écosystème d’outils, de projets, de développeurs. systemd est majoritairement développé par Red Hat, Debian par le projet Debian, Gnome par le projet et la fondation Gnome, OpenSSH par quelques développeurs de OpenBSD.

Le support sur Windows sera assuré par Microsoft, par le technicien/sysadmin à votre boulot, par le voisin qui s’y connaît un peu. Sur GNU/Linux peu de distributions proposent du support autre que sur IRC, dans la documentation, dans les forums, avec d’autres personnes plus expérimentées. C’est une culture différente, on est bien moins assisté sur GNU/Linux que sur Windows, on est bien plus les mains dans le cambouis et à la recherche d’aide sur GNU/Linux. On est davantage sensible à l’entraide, aux tutos, aux gens qui développent sur leur temps libre, aux gens qui informent, qui dépannent. Aux gens qui sont là et qui font tout simplement.

La confiance est une question centrale qui nous habite car quand on enlève la relation commerciale et pécuniaire, il ne reste que les hommes, leur savoir faire, leur savoir être.

Compétences et responsabilités

Je suis chez moi à présent sur GNU/Linux. J’ai sculpté de toute pièce mon environnement informatique, celui qui me correspond au mieux, un système à mon image. Linux respecte l’utilisateur parce qu’il lui redonne le choix et les clés de son informatique. Windows se contente de masquer la complexité et de faire « les bons choix » à la place de l’utilisateur : « Pour tout résoudre, cliquez ici ».

Le problème demeure humain. Si l’utilisateur ne veut pas faire l’effort de comprendre et apprivoiser l’informatique alors il se rendra dépendant d’un tiers comme Microsoft qui entretiendra cette dépendance et en tirera ces revenus.

Dit autrement Windows est une béquille pour la majorité de ses utilisateurs, Linux est une prothèse bionique pour ceux qui se donnent la peine de l’apprivoiser et c’est définitivement l’utilisateur qui choisit entre dépendance ou pouvoir. Évidemment un grand pouvoir implique de grandes responsabilités… et pas mal de compétences.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

mozillaZine-fr : Belle réaction à la sortie de Firefox Quantum

Cette sortie a suscité beaucoup de réactions dans les médias geek et même dans les médias généralistes. Beaucoup ont reconnu que Firefox est enfin redevenu rapide. On peut se douter que certains médias généralistes n’ont pas fait d’essai comparatif poussé mais ils ont au moins manifesté un bel intérêt pour l’exploit réalisé par Mozilla et ses contributeurs. Pour fêter ça, signalons cette belle réaction d’un utilisateur de Twitter qui déclare :

C’est incroyable : en quelques années, Mozilla a inventé un langage de programmation et réinventé un navigateur moderne avec ce langage, et apparemment ça a réussi. Développer du logiciel à partir de rien, c’est une chose. Mais ce qu’ils ont fait avec Firefox, c’est sans précédent.

it's incredible that in the span of a few yrs mozilla invented a PL and re-invented a modern browser with it, and apparently *succeeded*. hacking greenfield is one thing, but what they did with firefox is unprecedented

— Alan (@alandipert) November 16, 2017

Ceci n’est qu’une réaction. Le plus important reste à observer : la courbe des parts de marché. On peut déjà constater que Firefox est légèrement repassé au-dessus de la barre des 6% sur StatCounter. Ce n’est pas rien compte tenu de la difficulté de compter les utilisateurs de Firefox. Pour la première fois depuis des années, cette fichue courbe remonte ! Parions que ce frémissement est annonciateur d’une belle remontée.

Gravatar de mozillaZine-fr
Original post of mozillaZine-fr.Votez pour ce billet sur Planet Libre.

Articles similaires

Ilphrin : Utiliser la Fetch API en JS avec du Symfony 3

Ça faisait longtemps n’est-ce pas? ;)

Après cette absence de deux mois sans article, et encore plus sans sujet un peu technique, je reviens pour vous parler un petit peu du projet sur lequel je travaille. Dans ce projet j’ai eu à utiliser la Fetch API de JavaScript pour faire des requêtes AJAX dans un fichier JavaScript servi par un serveur en Symfony 3. C’était pas facile, mais j’y suis arrivé!

Le projet

Tout d’abord un peu de contexte. Dans le cadre de mes études, je dois réaliser un projet d’une durée de 2 ans avec un groupe de 6 étudiants (moi compris). Nous avons carte blanche sur le sujet du projet, mais celui-ci doit être validé par une série de présentation devant des jurys afin de vérifier la possibilité de transformer ce projet en startup.

Notre projet s’appelle Playficient. Nous avons constaté et rendu compte grâce à des statistiques que 20% du temps de travail (en moyenne) est perdu à cause de diverses raisons. L’une des raisons principales, et le fait de passer d’un outil informatique à un autre. De nombreux logiciels ont été crée dans le but de réduire le nombre d’outils utilisés au travail (le principe de synchronisation avec une API, ou de “Connecter” son compte Facebook, ou encore utiliser IFTTT).

Nous pensons créer un outil similaire, orienté pour les entreprises (PME/TPE et Startups précisément), qui ont un contact fort avec l’environnement informatique. Mais nous voulons aussi aller plus loin, notamment en intégrant les principes de la Gamification avec de motiver les travailleurs, mais aussi de conseils intelligent avec une IA afin de permettre aux utilisateurs de s’améliorer chaque jour sur leurs processus de travail. Pour rentre tout ça un peu plus corsé, nous voulions ce projet personnalisable, avec un système de module qui peuvent s’ajouter ou se supprimer selon le bon vouloir des utilisateurs, comme des extensions d’un site Wordpress ou le navigateur Firefox (Texte subliminal: passez à la version 57!)

(Lien du site vitrine à venir si vous voulez jeter un oeil, ou même nous faire des retours, ce qui serait vraiment gentil! =D)

Hey, tu parlais pas d’un article technique?

Effectivement il serait temps que j’en parle. Pour facilement gérer un système de module, nous sommes partis sur un développement serveur en PHP Symfony 3 avec son fonctionnement en Bundle, dont 2 personnes s’occupent principalement. Toute la partie “Front-End” est gérée par Symfony sous forme de Templates et d’Assets:

  • Un Template est une page HTML avec une syntaxe Twig qui est réutilisable, et customisable par des remplacements de variables et diverses fonctionnalités telles que des boucles ou des conditions
  • Un Asset est un fichier qui sert à fournir un supplément à un template, comme du code JavaScript, une image, du CSS, etc.

Un Template sert donc pour créer une base de page à réutiliser, ou pour créer une page spécifique à une Route bien définie. Mais on ne trouvera dans un Template que le code HTML et des balises Twig(si on est un minimum propre). Donc les Templates ne nous intéressent pas si on veut faire du JavaScript.

À l’inverse les Assets sont bien plus intéressants, puisque c’est grâce à eux que nous allons pouvoir donner au client son fichier JavaScript. Sauf qu’on a un problème: On ne dispose pas de la syntaxe Twig des Templates pour remplacer des valeurs cotées serveur dans le JavaScript.

Et cela pose problème notamment lorsque l’on a besoin de récuprer l’URL d’une Route.

FOSJSBundle à la rescousse

Comme je le disais précédemment, Symfony fonctionne pas système de Bundle, un peu comme les packages en JavaScript, ou les Gem en Ruby. Ces bundles servent de dépendances à un projet, et on peut en trouver des centaines déjà existants grâce à la communauté florissante de Symfony.

FOSJSBundle est un Bundle qui va mettre à disposition de notre code Javascript, une librairie appelée Routing pour récupérer l’URL d’un Route.

Voici comment on s’en sert:

const url = Routing.generate('route_name', {vos parametres}, urlAbsolueBool);

La fonction va nous retourner l’url correspondant à une route donnée en paramètre, exactement ce qu’il nous fallait!

Maintenant il reste à gérer la requête en elle-même. Prenons un cas d’utilisation (au hasard, ce sur quoi j’ai travaillé aujourd’hui). Nous sommes l’utilisateur X, connecté sur Playficient et possédent le module Gestionnaire de tâches. Nous avons une liste de boites, chacune correspond à une tâche et peut contenir un nombre indéfini de sous-tâches. Nous aimerions pouvoir faire un “drag’n drop” d’une sous-tâche, pour la changer de boite. Lorsque nous faisons cela, nous avons besoin de dire au serveur que nous voulons supprimer la tâche de son ancienne position, et la rajouter dans sa nouvelle position.

Pour cela, nous allons du côté de JavaScript faire une requête AJAX. Il existe plusieurs méthodes, la plus récente est l’utilisation de la Fetch API dont nous allons nous servir ici. La Fetch API fonctionne avec deux objets et une méthode:

  • Request: C’est l’objet qui définit la requête. On va y définir l’URL, les paramètres, la méthode, si nous sommes en CORS, etc.
  • Response: C’est l’objet qui définir la réponse. On reçoit cet objet à la résolution de la Promise d’une requête.
  • fetch(): Cette fonction prend en paramètre un objet Request, et d’autres paramètres pour la résolution de la requête. Cette fonction renvoie une Promise

Maintenant que vous en savez un peu plus, on va voir le code correspondant à une requête pour supprimer la sous-tâche de la boite dont elle faisait partie:

const url = Routing.generate('task_remove', { taskId: 1, parentId: 2, }); const request = new Request(url, { method: "GET" }); fetch(request) .then((response) => { console.log("Nous avons supprimé la tâche!"); }) .catch((error) => { console.error(`Erreur lors de la suppression: ${error}`); });

OK? Tout est bon? Lançons le serveur et faisons la manipulation… Voici ce que la console Firefox nous ressort:

GET http://localhost/task/2/1/remove 302 Found GET http://localhost/login 200 OK "Nous avons supprimé la tâche!"

Et malheur, lorsque nous rechargeons la page la tâche est toujours présente!

Rapidement, on se rend compte que deux requêtes ont été faites: Une pour effectivement supprimer la tâche, et un autre sur la page de connexion…étrange. Je ne vais pas passer par quatre chemin et expliquer très rapidement pourquoi on a été rédirigé et pourquoi la vraie requête ne s’est pas faite.

Nous sommes toujours l’utilisateur X, et connecté en tant que tel, le serveur à besoin de savoir au nom de qui nous faisons la requête. C’est à cette fin que sont utilisés des cookies dans Symfony. D’une page à une autre, l’utilisateur se balade avec un cookie qui lui permet de rester connecté tant qu’il ne clique pas sur “Déconnecter”.

Nous avons donc besoin dans notre requête de récupérer ce cookie et de l’envoyer, mais comment faire? En fait, c’est très simple avec l’API Fetch et Symfony, c’est un simple paramètre à l’objet Request, pour envoyer ce que l’on appelle les “Credentials”:

const request = new Request(url, { method: "GET", credentials: "same-origin" });

Relançons la requête:

GET http://localhost/task/2/1/remove 200 OK "Nous avons supprimé la tâche!"

Et voilà le tour est joué!

Utiliser la Fetch API, et du JavaScript en Symfony, est assez facile mais seulement quand on a compris comment le faire. (J’ai passé 3 jours à chercher comment avoir les routes en JavaScript, et à comprendre cette erreur de credentials pourtant assez simple)!

Je travaillerais à la traduction de cet article en anglais pour un peu plus de diversité (et pour travailler mon Anglais!). Je vais probablement profiter de mon séjour à Québec et de mon projet de fin d’études pour écrire un peu plus d’articles techniques. D’ailleurs, en ce moment j’essaie de créer un plugin pour Talk du CoralProject, quand ce sera fait j’aurais surement un article à écrire sur le sujet ;)

D’ici là bonne continuation à chacun et chacune

Gravatar de Ilphrin
Original post of Ilphrin.Votez pour ce billet sur Planet Libre.

Thuban : Mes extensions sous Firefox 57

Avec la sortie de l'excellent Firefox 57, et puisque certains semblent manquer de certains addons, je peux me vanter de disposer de tous les addons dont j'ai besoin. En voici la liste :

  • Cookie AutoDelete : supprime les cookies qui ne sont plus utilisés.
  • Decentraleyes : Télécharge en local les scripts javascript ou les polices hébergés utilisés sur certains sites, et souvent hébergés "gentiement" par google comme autre moyen de pister les visiteurs. C'est en local, plus besoin de dire à google qu'on est sur tel ou tel site.
  • FoxyProxy Basic : parce que au boulot il y a un proxy.
  • Grammalecte : car je fais des fautes.
  • Smart HTTPS : pour passer sur du https si possible
  • uBlock Origin : bloque les ressources externes aux sites, bloque les pubs, indispensable !
  • Vim Vixen : ajoute des raccourcis claviers à la vim : je ne peux pas m'en passer.

Vous avez d'autres suggestions ?

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

yeKcim : GNU nano

nano est un éditeur de texte ncurses facile à prendre en main (les raccourcis les plus utiles sont affichés), il fait moins peur que vim ou emacs lorsque l’on débute. Ces derniers sont puissants et très pratiques une fois configurés et/ou pris en main. Mais il arrive que l’on soit sur une machine qui n’a pas emacs, qui n’a pas notre config de vim,… il est alors très intéressant de connaître la base de nano. Voici les raccourcis dont j’ai personnellement besoin.

Raccourcis Base
  • F1 pour afficher l’aide
  • ctrl+x Quitter
  • ctrl+o Enregistrer
  • ctrl+k Couper la ligne courante vers le presse-papiers
  • alt+t Couper tout ce qui est après le curseur (jusqu’à la fin du document)
  • alt+6 Copier la ligne courante dans le presse-papiers (penser à maintenir maj). Ce raccourci étant innaccessibe, ma config ajoute alt+' pour copier
  • ctrl+u Coller le presse-papiers
  • alt+u Annuler la dernière opération
  • alt+e Refaire la dernière opération annulée
Recherche
  • ctrl+w Rechercher une chaîne ou une expression rationnelle
  • alt+w Recommencer la dernière recherche
  • alt+↑ / alt+↓ Rechercher la prochaine occurrence en avant/arrière
  • alt+r Remplacer une chaîne ou une expression rationnelle
  • alt+g Aller à la ligne et à la colonne indiquées
Navigation
  • alt+] Aller à ([{ correspondant
  • ctrl+espace ⇔ ctrl+→
  • alt+espace ⇔ ctrl+←
  • ctrl+a ⇔ home
  • ctrl+e ⇔ end
  • alt+\\ ⇔ ctrl+home
  • alt+/ ⇔ ctrl+end
  • ctrl+y Monter d'un écran
  • ctrl+v Descendre d'un écran
  • alt+( Aller au début du paragraphe
  • alt+) Aller à la fin du paragraphe
Utile
  • alt+a Marquer le texte depuis la position du curseur (maj+←↑→↓ fonctionne aussi directement)
  • alt+3 Commenter/décommenter la ligne courante ou les lignes marquées (penser à maintenir maj). Ce raccourci étant innaccessibe, ma config ajoute alt+* pour commenter
  • ctrl+c Indiquer la position du curseur
  • alt+d Statistiques du document
  • alt+→ / alt+← Passer d’un fichier à l’autre (si plusieurs fichiers ouverts)
  • alt+b Sauvegarde automatique (on/off)
Indentation
  • alt+} / alt+{ Indenter/Désindenter la ligne courante ou les lignes marquées
  • alt+i Activer/Désactiver l’indentation automatique
  • alt+q La touche tabulation ajoute des espaces au lieu de \\t (on/off)
Interface
  • alt+h Activer/Désactiver la Touche « Début » intelligente
  • alt+o Utiliser 1 ligne de plus pour l'édition (commutateur)
  • alt+s Défilement progressif/par bloc
  • ctrl+alt+$ Affichage automatique sur plusieurs lignes (on/off)
  • ctrl+alt+# Afficher/Cacher les numéros de lignes
  • alt+x Afficher/Cacher les raccourcis principaux
  • alt+c Afficher/Cacher la position du curseur
Texte
  • alt+p Afficher/Cacher les blancs (espace, tabulation)
  • alt+y Activer/Désactiver la coloration syntaxique
Configuration

Sur un nano non configuré, il me "suffit" alors de faire : alt+h, alt+i, alt+s, ctrl+alt+$ pour obtenir la configuration qui me convient. Pour activer cela directement, mon fichier de configuration ~/.nanorc (généré à partir d’un cp /etc/nanorc ~/.nanorc) :

set smarthome # équivaut à alt+h # set morespace # équivaut à alt+o set autoindent # équivaut à alt+i set smooth # équivaut à alt+s set softwrap # équivaut à ctrl+alt+$ # set casesensitive # recherche sensible à la casse quel raccourci clavier ? # set linenumbers # équivaut à ctrl+alt+# set matchbrackets "(<[{)>]}" # plus d’utilités pour alt+] set tabsize 4 # tabulation de 4 au lieu de 8 set tabstospaces # espaces au lieu de tabulation bind ^S savefile main # ctrl+s sauvegarde bind M-B cutwordleft main # alt+b supprime le mot précédent le curseur bind M-N cutwordright main # alt+n supprime le mot suivant le curseur bind ^Q exit main # ctrl+q quitte bind M-* comment main # les alt+num ne sont pas pratiques alt+* pour commenter bind M-' copytext main # les alt+num ne sont pas pratiques alt+' pour copier ## To include all existing syntax definitions, you can do: include "/usr/share/nano/*.nanorc" ## Paint the interface elements of nano. set titlecolor brightwhite,blue set statuscolor brightwhite,green set numbercolor cyan set keycolor cyan set functioncolor green ## In root's .nanorc you might want to use: # set titlecolor brightwhite,red # set statuscolor brightwhite,red # set numbercolor magenta # set keycolor brightmagenta # set functioncolor magenta Dans Tilix, nano pose quelques difficultés

alt+(↑←↓→0123456789) permettent de basculer d’un terminal à l’autre (pavage), il est donc impossible d’utiliser les raccourcis correspondants de nano :

  • alt+→ / alt+← Passer d’un fichier à l’autre (si plusieurs fichiers ouverts)
  • alt+↑ / alt+↓ Rechercher la prochaine occurrence en avant/arrière

Pour les raccourcis alt+num, il est possible d’activer capslock mais ce n’est pas idéal, surtout que ceux-ci sont vraiment utiles :

  • alt+6 Copier la ligne courante dans le presse-papiers
  • alt+3 Commenter/décommenter la ligne courante ou les lignes marquées

Pour résoudre ce désagrément, une solution simple consiste à ajouter la touche super à ces raccourcis clavier de Tilix : Remplacer alt+(0123456789↑←↓→) par alt+super+(0123456789↑←↓→)

Conclusion

Deux points m’énervent dans nano :

  1. La coloration syntaxique : lorsqu’il y a des \\" parmi des ", c’est vite illisible et il n’y a pas de couleur pour les espaces et tabulations (je pourrais regarder comment améliorer cela avec https://github.com/nanorc/nanorc peut-être).
  2. les raccourcis claviers sont "originaux" sans que je ne puisse comprendre la logique.

Si un gros fichier de configuration est nécessaire et que je dois apprendre de nouveaux raccourcis clavier, autant apprendre vim et ainsi jouir d’un logiciel puissant dont l’ergonomie est maximale (au détriment de l’intuitivité). Il est peut-être temps pour moi de commencer l’apprentissage…

Gravatar de yeKcim
Original post of yeKcim.Votez pour ce billet sur Planet Libre.

alterlibriste : Installation de Android-x86 sur laptop

On s’amuse comme on peut.

Le besoin est venu du fait que mon fils avait un jeu sur sa tablette et ça l’énervait quand son frêre ou moi nous y jouions et débloquions des niveaux. Alors, je me suis dit qu’il devait bien y avoir moyen d’installer des apk sur PC.

Ca n’a pas été si facile que cela en fait. La plupart des émulateurs sont pour Windows. Il existe quelques projets pour Linux comme Anbox ou Slashlik mais certains à base de snap pour Ubuntu et je n’ai rien réussi à faire tourner sous Debian. Le projet le plus intéressant et le plus vivant restait Android-x86 sachant que RemixOS qui devait faire passer tous les PC sous Android s’est arrêté il y a un an. J’ai donc opté pour la 7.1rc2 disponible.

Android-x86 fonctionne comme une distribution, on l’installe sur une clé et on peut tester en live, ça déménage, mais la partition en principe persistante n’a pas fonctionné chez moi donc ne voulant pas installer dans un premier temps, je suis parti sur la virtualisation et là c’est beaucoup moins fluide. Une fois que je suis (difficilement) parvenu à installer le jeu souhaité (un truc qui a plus de 5 ans sans 3D), c’était injouable tellement ça saccadait.

Sur mon laptop, il y avait une partition de libre (pour rappel, je prévois toujours deux partitions pour une distribution afin de pouvoir tester ou mettre en place avant une bascule) donc je me lance. Ca tourne sauf qu’au redémarrage, pas d’Android dans le Grub et les update-grub n’y font rien. En cherchant un peu, il faut se taper le paramétrage du grub à la main. La doc datant de la version 4.4, je la recopie avec les mises à jour nécessaires car certains paramètres manquaient et empêchaient le démarrage.

Editer en root le fichier /etc/grub.d/40_custom
Et pour mon laptop asus, j’y ai collé ceci (pour la partition sda3):
menuentry "Android-x86" {
set root='(hd0,3)'
linux /android-7.1-rc2/kernel quiet root=/dev/ram0 androidboot_hardware=asus_laptop androidboot.selinux=permissive acpi_sleep=s3_bios,s3_mode SRC=/android-7.1-rc2
initrd /android-7.1-rc2/initrd.img}

Autre problème, le clavier est en qwerty, un peu casse-pied même si Android n’est pas un outil de productivité, il me permet malgré tout de taper ce billet de blog. Idem, voici donc la doc honteusement repompée de ce site :

Par défaut le clavier est QWERTY, pour le passer en AZERTY français il faut télécharger les fichiers ici : http://code.google.com/p/eee-qwertz/ et renommer azerty_internal.idc en AT_Translated_Set_2_keyboard.idc copier les fichiers du zip dans :
/system/usr/idc/AT_Translated_Set_2_keyboard.idc
/system/usr/keychars/azerty.fr_FR.kcm
/system/usr/keylayout/azerty.fr_FR.kl

Alors, après avoir fait mumuse quelques temps sur ce système, qu’en dire ? Pleins de jeux ne fonctionnent pas, ils crashent ou ne bootent pas ; c’est probablement un problème de compatibilité matérielle. Malgré tout, cela permet de tester des applications que l’on souhaite utiliser sur sa tablette ou son futur smartphone. Aussi incroyable que cela puisse paraître, je suis toujours sur FirefoxOS mais le jour où le marketplace qui devait fermer en avril sera vraiment fermé, il faudra songer à changer. De toutes façons, je devrai changer un jour et actuellement, il n’y a plus que deux alternatives et même les systèmes dérivés (LineageOS, ResurectionRemix) ou communautaires (UBports, Replicant, rires dans la salle) ne sont disponibles que sur un nombre très restreint de téléphones généralement plus en vente.

Je ne peux pas dire que je sois totalament fan d’Android ; ça tourne plutôt bien et c’est assez bien foutu mais il y a Google dans tous les coins que l’on passe son temps à désactiver et toujours la sensation qu’il nous regarde par dessus l’épaule pour pomper tout ce qu’il peut. Après, il y a énormément d’appli mais il faut faire un sérieux tri entre le Premium, le gratuit truffé de pubs et le bon vieux propriétaire. F-Droid fait le job pour s’approvisionner en applis libres mais l’offre n’est pas beaucoup plus étoffée que sur FirefoxOS. Aptoid permet d’éviter le GooglePlay mais il y a à boire et à manger.

La seule lueur à l’horizon, c’est Librem qui a réussi son pari de financer un téléphone libre pour 2019 mais à un prix un peu rebutant. A part ça, on peut dire que jusque là, le libre n’a pas encore réussi à trouver sa place dans les appareils mobiles qui sont pourtant les plus sensibles au niveaux des données personnelles qu’ils contiennent et dont on devrait vraiment avoir le contrôle.

Gravatar de alterlibriste
Original post of alterlibriste.Votez pour ce billet sur Planet Libre.

Articles similaires

Remi Collet : Fedora 27: changements dans httpd et php

La configuration du serveur HTTP Apache et de PHP a été modifiée dans Fedora 27, voici quelques explications.

1. Bascule du serveur HTTP en mode event

Depuis l'origine de la distribution, le serveur utilise le MPM prefork.

Pour des raisons évidentes de performance, il a été décidé de suivre les recommandations du projet et d'utiliser event par défaut.

Ce changement est aussi nécessaire pour bénéficier du support complet du protocole HTTP/2 via mod_http2.

2. Le problème de mod_php

Le module mod_php est uniquement supporté quand le MPM prefork est utilisé.

Dans la documentation PHP on peut lire :

Avertissement : Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2.

Et effectivement, quelques rapports de bugs signalent des plantages dans cette configuration.

Il n'était donc pas raisonnable de conserver mod_php par défaut.

De plus ce module a d'autres limitations ennuyeuses :

  • intégré au serveur web, il partage son espace mémoire, pouvant entrainer des problèmes de sécurité
  • une seule version peut être chargée
3. Utilisation de FastCGI

Depuis plusieurs années nous avons travaillé à rendre l'exécution de PHP aussi flexible que possible, dans différentes configurations, fonctionnant sans changement de configuration :

  • httpd + mod_php
  • httpd + php-fpm (lorsque mod_php est désactivé ou absent et que le serveur php-fpm fonctionne)
  • nginx + php-fpm

L'utilisation de FPM est devenu la configuration par défaut recommandée pour une exécution propre de PHP :

  • support de multiples serveurs web (apache httpd, nginx, lighttpd)
  • isolation du frontal pour la sécurité
  • dorsaux multiples
  • architecture micro-services
  • fonctionnement en container (docker)
  • multiples versions de PHP
4. FPM par défaut

Depuis Fedora 27, mod_php ZTS (multi-thread) est toujours fournit, mais n'est plus activé, c'est donc FastCGI qui sera utilisé par défaut.

Pour ne pas casser les configurations existantes lors de la mise à jour, ou obtenir un serveur opérationnel dès l'installation, nous avons choisi de mettre en place quelques solutions, probablement de manière temporaire

  • Le paquet php a une dépendance optionnelle sur php-fpm qui permet son installation par défaut
  • le service httpd a une dépendance sur le service php-fpm qui permet son démarrage automatique
5. Problèmes connus 5.1. Modification de la configuration

Lors d'une modification de la configuration, ou de l'installation d'une nouvelle extension il est désormais nécessaire de redémarrer le service php-fpm.

5.2. Fichiers de configuration

Avec mod_php, il est habituel d'utiliser les directives php_value ou php_flag dans la configuration du serveur Apache ou dans un fichier .htaccess.

Il est désormais nécessaire soit d'utiliser les directives php_value ou php_flag dans la configuration de du pool FPM, soit d'utiliser un fichier .user.ini dans le dossier de l'application.

6. Revenir sur mod_php

Si vraiment vous souhaitez rester (temporairement) sur mod_php, cela reste possible :

  • Revenir en MPM prefork dans le fichier /etc/httpd/conf.modules.d/00-mpm.conf.
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #LoadModule mpm_worker_module modules/mod_mpm_worker.so #LoadModule mpm_event_module modules/mod_mpm_event.so
  • Activer le chargement du module dans le fichier /etc/httpd/conf.modules.d/15-php.conf. Attention, les rapports de bug dans cette configuration ne seront pas acceptés.
# ZTS module is not supported, so FPM is preferred LoadModule php7_module modules/libphp7-zts.so

Dans ce cas, le paquet php-fpm pourra être désinstallé.

7. Conclusion

Fedora 27 utilise désormais une configuration moderne et conforme aux recommandations des projets. La sécurité et les performances sont améliorées.

Tout changement provoque inévitablement quelques petits problèmes et quelques grincement de dents, mais nous essaierons de prendre en compte les difficultés et d'améliorer ce qui doit l'être dans les prochaines mises à jour et dans les prochaines versions de Fedora.

Je prévois de mettre à jour ce billet en fonction des retours.

Gravatar de Remi Collet
Original post of Remi Collet.Votez pour ce billet sur Planet Libre.

Articles similaires

Yannic Arnoux : Un blog plus statique

Un échange avec Bruno Adelé, qui fut l’initiateur du projet CaCause à une époque (déjà 5 ans) où les blogs statiques n’avaient pas d’autre alternative que Disqus, a titillé mon intellect. Bruno envisage de migrer son blog vers Hugo et d’utiliser le gestionnaire de commentaires staticman dont la particularité est de soumettre les commentaires par des pull-request GIT.

Cela m’a rappelé le projet Pecosys qui avait une approche similaire : les commentaires étaient partie intégrante du blog, publiés dans GIT sous forme de fichiers au format Markdown et convertis en HTML par le moteur de blog Pelican. La complexité de mise en oeuvre de Pecosys (un dépôt GIT privé, un e-mail dédié, un plugin spécifique pour Pelican) ont eu raison du projet. Deux ans plus tard, je codais Stacosys en simplifiant un peu les pré-requis système. Entre temps, des alternatives crédibles à Disqus avaient vu le jour comme Isso notamment. Stacosys est donc resté un projet personnel et depuis, il gère les commentaires de ce blog.

Dans Stacosys, les commentaires ne font plus partie des sources du blog. le navigateur Web du lecteur communique directement avec Stacosys via une API REST et une instance de Stacosys peut être partagée entre plusieurs sites par des requêtes CORS. Stacosys stocke les commentaires dans sa base de données et il ne fait plus de GIT. Contrairement à Pecosys (PElican COmment SYStem), Stacosys n’est pas lié à un moteur de blog particulier, il est facilement intégrable dans une page HTML par un peu de JavaScript.

Architecture actuelle Stacosys

Au vu de mon utilisation mono-site de Stacosys je me suis demandé si je ne pourrais pas revenir à une génération des commentaires en pages statiques. Cela apporte plusieurs avantages :

  • une plus grande rapidité de navigation : au lieu d’ajouter les commentaires à la page en asynchrone par JavaScript, ils font partie de la page
  • la capacité à supporter plus d’utilisateurs simultanés car le serveur HTTP ne sert que des ressources statiques
  • plus de sécurité sur mon serveur grâce une surface d’attaque réduite : plus besoin d’une application HTTP REST accessible sur Internet

L’idée n’est pas réécrire Stacosys mais de pouvoir l’utiliser dans les deux cas de figure : mono-site et multi-site.

Le moteur de blog Hugo fournit une solution technique élégante à travers les data templates. Il s’agit de récupérer de l’information pendant la construction du blog pour enrichir les pages avec une information dynamique (qui peut changer à chaque build). On peut lire des fichiers JSON sur disque, ou mieux, faire des requêtes HTTP pour récupérer du JSON.

Ca tombe bien, Stacosys fournit une API REST qui renvoie du JSON :-) Ni une ni deux, j’ai adapté mes modèles pour que Hugo interroge Stacosys pendant sa phase de build et génère les articles en incluant les commentaires en fin de page.

Voici le template Hugo des commentaires qui utilise la fonction getJSON pour récupérer les commentaires de la page en cours :

<div id="stacosys-comments"> {{ $restParam := (printf "/comments?token=%v&url=%v" .Site.Params.widgets.stacosys_token .URL) }} {{ $resp := getJSON .Site.Params.widgets.stacosys_url $restParam }} {{ range $resp.data }} <hr> <div class="inline"> {{ if isset . "site" }} <a href="{{ .site }}"> {{ end }} <img src="http://www.gravatar.com/avatar/{{ .avatar }}.jpg" style="float:left; margin-right:10px" height="32" width="32"> {{ if isset . "site" }} a> {{ end }} <span class="title">{{ .author }}span> <span> - {{ .date }}span> div> <p> {{ .content | markdownify }} p> {{ end }} div>

et un exemple de données renvoyée par Stacosys :

{ "data": [ { "author": "Bruno", "avatar": "b97a3605714350fdad083394c974a9b4", "content": "Ça donne effectivement envie de se laisser convaincre par un Librem. Le seul problème c'est que c'est déjà limite si j'ai un téléphone mobile et payer un tel prix alors que je pourrais pratiquement avoir un nouvel ordinateur au même montant, ça ne donne pas trop envie. Quand mon téléphone actuel cessera de fonctionner, peut-être que je choisirai plutôt de ne pas en racheter.", "date": "2017-10-01 20:03:46" }, { "author": "Yax", "avatar": "308a3596152a79231f3feedc49afa4ef", "content": "Je comprends c'est pas mon budget téléphone non plus. Une alternative acceptable c'est le reconditionné de téléphones éprouvés et connus pour être bien supportés par les ROMs communautaires. Ça fait un peu d'écologie en prime.", "date": "2017-10-01 22:20:37" } ] }

Il reste une interaction entre le serveur HTTP et Stacosys pour poster des commentaires via le formulaire mais on n’a plus besoin que Stacosys ait son nom FQDN propre et soit exposé sur Internet.

Le nouveau système ressemble à ceci :

Nouvelle architecture Stacosys

Les sources complets sont sur mon Github.

C’est en place depuis le début de la semaine et je suis ravi du résultat. Combiné avec un Firefox Quantum pour la navigation ça roxe du poney !

Gravatar de Yannic Arnoux
Original post of Yannic Arnoux.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : 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.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Littlewing : Installation de la Debian 9 sur un LENOVO Thinkcentre m700.

Après avoir eu une alerte sur mon PC équipé d’Ubuntu que ma partition / était presque pleine, je me suis mis dans l’idée de redimensionner les partitions avec GPARTED.

Bon ça a échoué … Heureusement j’avais fait quelques backups :). Pour faire simple, j’ai tout réinstallé.
J’en ai profité pour revenir à mes premières amours : Debian ! Je n’ai pas pu l’installer avant la version 9 car la version du noyau était trop ancienne pour l’architecture de mon PC LENOVO Thinkcentre m700.

 

La procédure d’installation est décrite ici.

Tout fonctionne bien ( carte son, vidéo, réseau, …) . Pour le support du WIFI, il faut ajouter les firmwares propriétaires ( voir ci-dessous).

Voici ce que j’ai fait post installation :

Localisation

J’ai eu un problème. Le clavier était en QWERTY alors que j’ai bien spécifié AZERTY pendant l’installation.

La documentation Debian est disponible ici.

Voila ce que j’ai fait

# apt-get install console-data # loadkeys fr-pc # dpkg-reconfigure console-data # dpkg-reconfigure keyboard-configuration # service keyboard-setup restart # udevadm trigger --subsystem-match=input --action=change Divers

Voici une liste de paquets / logiciels que j’installe régulièrement:

# apt-get install ttf-mscorefonts-installer easytag tuxguitar-jsa htop frescobaldi gparted grsync ntfs-config chromium autofs openjdk-8-jdk openjdk-8-jre Lilypond

Lilypond n’est pas dans Stretch. J’ai donc utilisé l’installeur pour l’installer.

# sh lilypond-2.18.2-1.linux-64.sh Spotify

Il faut télécharger au préalable le package libssl1 et l’installer.

# dpkg -i libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb

Et lancer les commandes :

# echo deb http://repository.spotify.com?utm_source=rss&utm_medium=rss stable non-free | tee /etc/apt/sources.list.d/spotify.list # apt-get update # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys # apt-get update # apt-get install spotify-client Atom

J’ai téléchargé le paquet depuis le site d’atom et lancé la commande

# dpkg -i atom.deb Firefox 57

Les dernières versions de firefox ne sont pas dans le repository alternatif

# cp ~/Téléchargements/firefox-57.0.tar.bz2 /usr/local # cd /usr/local # tar -jxf firefox-57.0.tar.bz2 # ls # rm firefox-57.0.tar.bz2 # chown -R :users firefox # chmod a+x firefox/firefox # mv /usr/lib/firefox-esr/firefox-esr /usr/lib/firefox-esr/firefox-esr_orig # ln -s /usr/local/firefox/firefox /usr/lib/firefox-esr/firefox-esr Droits utilisateur

J’ai ajouté les droits cdrom floppy users bluetooth à tous les utilisateurs

Autofs

J’utilise autofs pour les connexions nfs et cifs. La documentation est décrite dans cet article.

Firmware WIFI

Pour faire fonctionner le wifi. Il faut ajouter les firmwares non libre ( il faut ajouter le repo non-free).

# apt-get install firmware-iwlwifi VirtualBox

 

# vi /etc/apt/sources.list.d/virtualbox.list

Ajout du repository

deb http://download.virtualbox.org/virtualbox/debian?utm_source=rss&utm_medium=rss stretch contrib

Et lancer les commandes

# wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc?utm_source=rss&utm_medium=rss -O- | apt-key add - # apt-get udpate # apt-get install virtualbox-5.2

 

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Gestionnaire de fenêtres qui aide à se concentrer : cwm

Fervent utilisateur de dwm depuis longtemps, j'ai toujours eu du mal à passer à autre chose. Les habitudes sont ancrées, tout est à portée de main, c'est simple... C'est une retrouvaille avec un vieux copain du forum debian-fr sur obsd4a (coucou eol ;) ) qui m'a donné envie de consacrer un peu de temps à un gestionnaire inclus par défaut dans OpenBSD : calm window manager ou cwm.
Il me semble qu'il s'agit là d'une belle réussite très bien pensée. L'équilibre entre fonctionnalités, ergonomie et part de configuration laissée à l'utilisateur est trouvé. Pour ma part, ça m'aide à être efficace et plus concentré.

Par contre, on ne va pas se mentir, quand on vient de gnome, ça peut être déroutant au début. Cela dit, si ça vous tente, je vous propose de faire un petit tour de ce gestionnaire de fenêtre (disponible aussi sur les distributions GNU/Linux) pour découvrir sa façon d'être. On tentera d'utiliser autant que possible les composants livrés avec OpenBSD par défaut.

Découverte et configuration

Sous OpenBSD, pour lancer une session cwm, je n'ai qu'à mettre dans le fichier ~/.xsession la ligne suivante :

cwm

Une fois la session démarrée, vous avez devant vous un écran tout gris. Beurk. C'est normal cela dit, puisque ce n'est pas au gestionnaire de fenêtres de gérer le fond d'écran. On va y remédier, ne vous en faîtes pas.

Tout d'abord, on va ouvrir un terminal. Pour ça, deux choix s'offrent à vous :

  • Ctrl-Alt-Entrée : pouf, xterm s'ouvre.
  • Alt-? : un menu pour écrire la commande s'affiche, vous pouvez alors écrire le nom de votre terminal favori.

Pour déplacer la fenêtre, un glisser-déposer avec la souris tout en appuyant sur Alt fera votre bonheur.
Pour redimensionner la fenêtre, là aussi plusieurs possibilités :

  • Ctrl-Alt-m : maximise la fenêtre
  • Ctrl-Alt-Shift-[hjkl] : selon la lettre choisie, vous redimensionnez la fenêtre
  • Alt-clic milieu : redimensionnement par glissé déposer.

Pour fermer une fenêtre, appuyez sur Ctrl-Alt-x.

Pour changer de fenêtre, vous avez toujours Alt-Tab, ou bien vous cliquez sur le bureau pour avoir un menu de sélection de fenêtre. On ne s'encombre pas avec une barre d'état, on reste concentré sur son travail :) Vous pouvez aussi appuyer sur Ctrl-/ puis taper le nom de la fenêtre. Si vous ne vous souvenez plus de son nom, appuyez sur Ctrl-a.

Ça semble faire beaucoup de raccourcis, mais ils ont tous une certaine logique et on s'y retrouve vite. Si vous n'aimez pas les raccourcis clavier, sachez que :

  • Un clic-gauche sur le bureau fait apparaître la liste des fenêtres
  • Un clic-droit fait apparaitre la liste des applications définies dans la configuration (vide par défaut)
  • Un clic-milieu fait apparaître la liste des groupes.

Dans la suite, j'écrirai "C" pour "Ctrl", "M" pour "Alt", "S" pour "Shift" et "4" pour la touche "Super" ou "Windows" qui ne sert à rien habituellement. Ces lettres sont celles utilisées dans la configuration.

Une des particularités de cwm est de permettre de :

  • Pouvoir étiqueter une fenêtre (ajout d'un label) afin de la retrouver facilement ensuite (Ctrl-Alt-n).
  • Placer les fenêtres dans des groupes. Ça ressemble aux espaces de travail auxquels vous êtes habitués, ainsi qu'aux tag de dwm.

À partir de ce moment-là, vous voudrez certainement éditer le fichier de configuration ~/.cwmrc afin d'y régler 2-3 choses.
Si vous souhaitez savoir ce que vous pouvez configurer, les pages "man cwm" et "man cwmrc" vous en diront plus.

Via ce lien, vous trouverez mon fichier de configuration si vous voulez regarder ce qui est possible. Rien de très étonnant dans ce que j'ai mis hein.
J'attire juste votre attention sur les éléments de configuration suivants :

Menu clic-droit

command " Web " firefox command " Mail " 'xterm -class "mutt" -fa "Hack:size=10:antialias=true" mutt' command " Files " pcmanfm command " > next " "mpc next" command " < prev " "mpc prev" command "|> toggle" "mpc toggle" command " top " "xterm top"

Avec Alt-Tab, je passe d'un groupe à l'autre rapidement

bind-key M-Tab group-cycle bind-key MS-Tab group-rcycle

Tiling rapide
Pour un arrangement rapide en mode "tiling" des fenêtres, j'utilise Alt-t ou Alt-Return comme dans dwm. M-S-t permet un arrangement vertical. Et ça, ça claque des fesses ! :D

bind-key M-t window-vtile bind-key M-Return window-vtile bind-key MS-t window-htile

à la dwm
Puisque je parle de dwm, j'utilise les mêmes raccourcis pour passer d'un groupe à l'autre et assigner les fenêtres à des groupes facilement. Si vous cherchez les noms des touches, tapes "xev" dans un terminal puis appuyez sur la touche, vous verrez alors son petit nom.

bind-key M-ampersand group-only-1 bind-key M-eacute group-only-2 bind-key M-quotedbl group-only-3 bind-key M-apostrophe group-only-4 bind-key M-parenleft group-only-5 bind-key M-minus group-only-6 bind-key M-egrave group-only-7 bind-key M-underscore group-only-8 bind-key M-ccedilla group-only-9 bind-key M-agrave group-toggle-all # Déplacer les fenêtres dans un groupe bind-key MS-ampersand window-movetogroup-1 bind-key MS-eacute window-movetogroup-2 bind-key MS-quotedbl window-movetogroup-3 bind-key MS-apostrophe window-movetogroup-4 bind-key MS-parenleft window-movetogroup-5 bind-key MS-minus window-movetogroup-6 bind-key MS-egrave window-movetogroup-7 bind-key MS-underscore window-movetogroup-8 bind-key MS-ccedilla window-movetogroup-9

Et tout autour?
Si vous avez bien regardé la capture d'écran au début, vous avez peut-être remarqué une barre tout en haut et des couleurs "solarized". C'est la partie rigolote où je vous montre mes scripts :P

Le fond d'écran
Le fond d'écran est chargé avec qiv au démarrage. En fait, ça tourne entre plusieurs fonds d'écran.
Si vous voulez rester simple, vous pouvez mettre une couleur pleine avec xsetroot (pas besoin d'installer quoi que ce soit) :

xsetroot -solid steelblue

La barre
La barre est un simple conky, dont la configuration est là : conkyrc. Il m'affiche la chanson jouée dans mpd, le nombre de nouveaux mails dans mes boîtes et la date et l'heure.
Mais ce n'est pas tout, tout à gauche, j'ai aussi les numéros des groupes utilisés par des fenêtres. Ça m'évite de les chercher, bien que je pourrais m'en passer.
Pour ça, je fais appel au script suivant :

#!/bin/sh CURGROUP=$(xprop -root -notype _NET_CURRENT_DESKTOP | cut -d'=' -f2) USEDGROUPS=$( for ID in $(xprop -root -notype _NET_CLIENT_LIST | cut -d'#' -f 2); do #echo $(xprop -id "$ID" -notype _NET_WM_DESKTOP WM_NAME) echo $(xprop -id "$ID" -notype _NET_WM_DESKTOP |cut -d'=' -f 2) done | sort -u ) for G in $USEDGROUPS; do if [ $G -lt 10 ]; then if [ $G -eq $CURGROUP ]; then echo -n "\\${color3}$G\\${color} " else echo -n "$G " fi fi done

Ce n'est plus très utile quand on tourne entre les groupes avec Alt-Tab comme configuré plus haut.

Le terminal
J'ai décidé d'utiliser les outils livrés par défaut avec OpenBSD. Donc xterm au lieu de st. Ici, vous trouverez le fichier de configuration pour les couleurs, faire du copier/coller dans le terminal...
Ce fichier doit être chargé au démarrage avec la commande

xrdb -load ~/.Xdefaults

Le démarrage de session
Pour prendre en compte tous ces petits ajouts à chaque démarrage, modifiez le script ~/.xsession ainsi :

#!/bin/sh . ~/.profile # Fond d'écran # ou qiv -z /chemin/vers/fond/decran xsetroot -solid steelblue & # Chargement des options pour xterm xrdb -load ~/.Xdefaults & # Verouillage automatique avec xlock xautolock -time 10 -locker xlock & conky & cwm

Les "&" à la fin sont importants. Ajoutez dans ce fichier tous les outils que vous souhaitez lancer au démarrage de session.

Trouver une fenêtre parmi des centaines
En général je n'ai pas plus de 5 ou 6 fenêtres ouvertes en même temps. Cela dit, si un jour de folie j'en ouvrais des tas, je pourrais facilement les retrouver avec le raccourci M-/. C'est pratique quand on se souvient à peu près de l'application que l'on veut ouvrir. Sauf que quand beaucoup de fenêtres sont ouvertes, on ne se souvient peut-être plus du nom de celle souhaitée. Après avoir appuyé sur M-/, vous pouvez toutes les afficher avec C-a.
C'est chiant.
À la place, j'ai fait un script à base de dmenu :

#!/bin/sh # script to choose a window from list # only use 'xprop' coming with X server and xdotool . ~/.dmenurc P="Fenêtre:" OPTION="$COLORS -l 10 -p $P " W=$( (for ID in $(xprop -root -notype _NET_CLIENT_LIST | cut -d'#' -f2); do echo $(xprop -id "$ID" -notype WM_NAME | cut -d'=' -f 2) "::" $(xprop -id "$ID" -notype WM_CLASS | cut -d'"' -f2) "|" $ID done) | dmenu $OPTION | awk 'END {print $NF}') if [ -n "$W" ]; then xdotool windowactivate $W fi exit 0

Et après ?
Les outils suckless sont très agréable à utiliser avec cwm si vous aimez la simplicité. Par exemple, je n'aime pas trop xlock que je remplace avec slock. Et sans dmenu, je serai perdu. Tous ces scripts sans doute pas très propres me rendent bien service ! :)
Sinon, j'utilise des outils simples : mutt/fdm/msmtp pour les mails, Firefox pour la navigation (eh oui, surf aurait bien besoin d'être mis à jour), pcmanfm, qiv...

Ce gestionnaire de fenêtres porte bien son nom : avec, je me sens plus caaaaalme :)
Je suppose qu'un certain PengouinBSD va me tanner pour faire une page de wiki après cet article, et le pire, c'est qu'il a raison le bougre ;P

Si vous testez cwm, je serais ravi de voir vos astuces/idées/configurations en commentaies ;)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Articles similaires

Pages