PROJET AUTOBLOG ~ Streisand Effect


Planet-Libre

Site original : Planet-Libre

⇐ retour index

Mise à jour

Import en cours : 12461 fichiers restants
La page devrait se rafraîchir toutes les secondes. Si non, rafraîchissez là manuellement..

Simon Vieille : Bilan tech de l'année 2020

Tuesday 22 December 2020 à 10:00

Cette année très particulière m'a quand même permis de consacrer plus de temps pour le logiciel libre que l'an passé.

Mes efforts se sont naturellement dirigés vers les outils que j'utilise et c'est Nextcloud et son écosystème sur lesquels je me suis concentré.

Mon plus gros projet de 2020 est Custom menu, une application pour Nextcloud qui permet de modifier le menu par défaut en proposant d'autres affichages. Je suis très content du résultat et beaucoup d'administrateurs ont décidé de l'installer sur leur instance. En effet, toutes versions confondues, Custom menu a été téléchargé plus de 102 mille fois et les dernières versions sont installées sur environ 9000 instances.

J'ai réalisé du code pour faire évoluer l'application Forms on y ajoutant de nouveaux types de champ. Cela n'a pas du tout été évident d'échanger avec l'équipe de développement mais j'espère voir arriver ces évolutions dans une prochaine version.

Ensuite, j'ai traduis Analytics en français même si je ne suis pas satisfait. Je vais faire de nouvelles traductions l'année prochaine ! Cette application permet de mettre en graphique des données stockées sur Nextcloud ou accessibles depuis une API. C'est encore relativement basique mais c'est tout de même très pratique.

Même si le développement n'est pas très actif, j'utilise l'application Printer et j'ai proposé du code pour gérer les permissions et réduire les risques d'injection de code.

Dans un contexte très différent de Nextcloud, j'ai apporté un correctif au projet PDNS Manager, une interface web qui permet de gérer les enregistrements d'un serveur Powerdns.

J'ai récemment publié Mail RSS, une application pour transformer des emails en flux RSS. Enfin, un peu plus tôt cette année, j'ai mis en ligne les sources du site web qui permet de monitorer le terrarium de la maison.

Je crois avoir fait le tour de mon activité en espérant poursuivre en 2021 !

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

Articles similaires

genma : Réflexion - une instance Peertube pour mes conférences

Tuesday 22 December 2020 à 09:00

Peertube ?

PeerTube est un logiciel libre, sous licence AGPLv3.0, d'hébergement de vidéo décentralisé grâce à la diffusion en pair à pair, créé en 2015 et soutenu par Framasoft.

L'ambition de PeerTube, c'est d'être une alternative libre et décentralisée aux services de diffusion de vidéos. Le but n'est pas de remplacer, mais de proposer quelque chose d'autre, avec des valeurs différentes, en parallèle de ce qui existe déjà.

Pour plus de détail, voir https://joinpeertube.org/

Ma réflexion personnelle

Je fais de l'autohébergement depuis quelques années, je suis pour un Internet décentralisé. Maintenant que j'ai la fibre et donc une bien meilleure bande passante en upload (dans le sens de chez moi vers Internet, la connexion est passée de 1 Mb/s théorique (plutôt 0,8 Mb/s en pratique à 700 Mbit/s avec la fibre, soit 700 fois plus rapide).

Cela fait quelques années que je donne des conférences, certaines d'entre elles ont été filmées et ont été mises en lignes. J'ai donc commencé à récupérer les quelques vidéos qui sont accessibles (sur Youtube, Peertube ou en téléchargement depuis les sites des événements), avant tout pour en conserver une trace (elles peuvent être supprimées à tout moment).

Et je me pose donc la question suivante : est-ce que ce serait intéressant de tout regrouper sur une instance Peertube que je gérerai ? Ma question est plus : si je mets des vidéo de moi sur une instance dédiée, cela ne fait-il pas un peu trop "mise en avant de soi" ?

Mon but est plus de garder ça pour mémoire, de mettre à disposition des vidéos qui ne seront pas vues

J'ai déjà fait quelques tests et la machine que j'utilise permet de faire l'encodage nécessaire à la mise en place des vidéos sur une instance peertube. Il faut que je remette à jour le Peertube, que je fasse les choses proprement mais surtout que je réfléchisse encore sur la pertinence de cette instance.

Enfin à noter que l'année 2020 aura été particulière : les quelques événements où j'ai mes habitudes et qui rythme l'année ont été annulés les uns après les autres et je n'ai donc pas donné de conférences.

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

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

Monday 21 December 2020 à 00:01

Pour la 51ème semaine de l'année 2020, 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 :)

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

Articles similaires

miamondo : Labortablo, une interface de bureau codée en Python sur une base Archlinux/Openbox (2ème partie)

Sunday 20 December 2020 à 01:07

La barre de tâches

Sommaire

1. La boucle

2. Récupérer et convertir les icônes avec xprop

3. Iconifier et déiconifier les fenêtres


Voici le deuxième article sur mon interface de bureau moulé à la louche. Il traite de la barre des tâches. Le processus fonctionne de manière tout à fait satisfaisante mais il m’a vraiment donné du fil à retordre. Cette zone qui se trouve en bas de l’écran, affiche:

Le rôle de ces derniers est triple: iconifier, déiconifier ou bien fermer la fenêtre qui lui est associée. Les boutons sont des valeurs stockées dans un dictionnaire. Les clés de ce dernier sont les identifiants obtenus avec la commande wmctrl -l.

Dans la capture d’écran ci-dessous, on peut constater que trois applications sont ouvertes, mon agenda, chromium et Libre-Office Calc.

  1. La boucle

Toute la difficulté de cette barre de tâches est qu’il faut créer une boucle qui récupère les informations sur chaque fenêtre d’application ouverte et surtout qui affiche l’icône qui lui est associée.

Voici donc le déroulé des opérations:

La boucle commence par exécuter wmctrl -l (voir capture d’écran ci-dessus) et stocke les informations obtenues dans une variable que nous allons baptiser old_running_applications. Cette variable doit être hors de la boucle.

La boucle exécute une nouvelle fois wmctrl -l et stocke les informations dans une variable baptisée new_running_applications. Cette variable se trouve dans la boucle.

Le contenu des deux variables est comparé (en excluant les lignes contenant N/A). Le programme détermine quelles sont les fenêtres ouvertes, il splitte chaque ligne, c’est-à dire qu’il les transforme en liste, pour en extraire le numéro d’identification (par exemple 0x008000007), ainsi que le titre de la fenêtre (par exemple Agenda). Le titre de la fenêtre va s’afficher sur le bouton qui lui correspond.

Si une nouvelle fenêtre a été ouverte, la boucle demande au script taskbar.py de créer le bouton correspondant. En revanche, si une fenêtre a été fermée, elle lui demande de détruire le bouton corespondant. Bien sûr, le script taskbar.py ne s’amuse pas à détruire et à recréer une nouvelle barre à chaque changement. Il ne rajoute ou ne détruit que les boutons impactés par une modification. Puis, en fin de boucle, après avoir effectué les modifications et actualisé la barre des tâches, le script met à jour le contenu de la variable old_running_applications, qui est hors de la boucle.

old_running_applications = new_running_applications

2. Récupérer les icônes avec xprop, puis les convertir au format *.png pour les afficher à la volée

Il s’agit sans aucun doute de la partie la plus délicate. Je dois vous avouer que le titre de l’article n’est pas correct. Je prétends que l’interface de bureau est codée tout en Python, mais il y a tout de même un fichier *.sh. J’ai déniché ce script à cette adresse.

 #!/bin/bash

path=$1
id=$2
xprop -id "$id" -notype 32c _NET_WM_ICON |
    perl -0777 -pe '@_=/\\d+/g;
    printf "P7\\nWIDTH %d\\nHEIGHT %d\\nDEPTH 4\\nMAXVAL 255\\nTUPLTYPE RGB_ALPHA\\nENDHDR\\n", splice@_,0,2;
    $_=pack "N*", @_;
    s/(.)(...)/$2$1/gs' > "$path"/"$id".pam

convert "$path"/"$id".pam "$path"/"$id".png

Il est manifestement l’oeuvre d’un dénommé Stéphane Chazelas. Bien sûr, je l’ai adapté à ma sauce. Il prend deux paramètres en arguments (le répertoire courant et le numéro d’identification). La mission de ce script est d’exécuter xprop et de générer des fichiers portant l’extension .pam. Ceux-ci sont immédiatement convertis en fichiers .png pour être affichés à la volée sur les boutons respectifs. Si l’identifiant de la fenêtre est 0x00800007, alors l’icône qui lui est associé, s’appelle 0x00800007.png.

Ça marche presque à tous les coups. Seule quelques applications résistent et refusent de convertir le fichier *.pam. C’est le cas de Shotwell par exemple. Lorsque cela se produit, elles sont capturées dans une exception.

Le processus xprop prend un peu de temps, si bien qu’il était possible que le bouton affiche seulement le texte et pas l’icône. Afin de remédier à ce problème et être ceinture-bretelles, j’ai modifié le code pour que le processus soit de nouveau lancé à chaque début de boucle. Les boutons qui n’ont que le texte, tentent de récupérer leur icône. Si vraiment, l’icône n’a pas éte convertie au format png, alors le bouton s’affiche quand-même. Tout ce processus est invisible pour l’utilisateur. Il n’y a aucun retard. C’est instantané.

Les fichiers générés par xprop et portant l’extension *.pam, ainsi que les fichiers au format *.png sont conservés provisoirement dans le répertoire courant. Ils sont détruits à l’extinction, au redémarrage ou à la déconnexion, d’une part pour ne pas encombrer le répertoire, et d’autre part pour être certain qu’à la prochaine session, ils ne seront pas réattribués à une mauvaise application. Le cas s’est déjà produit. Le bouton de thunar affichait l’icône de Chromium!

3. Iconifier et déiconifier les fenêtres en utilisant un simple clic de souris

Cette opération est bien moins évidente qu’il n’y parait. Il ne s’agit pas seulement d’alterner la commande d’un bouton pour qu’il réduise sa fenêtre puis qu’il l’agrandisse. En se contentant de faire ça, une fenêtre ouverte mais totalement cachée va d’abord se réduire puis s’agrandir au-dessus des autres, ce qui va donner l’illusion d’un double-clic un peu énervant.

Il faut donc faire en sorte de créer une condition pour que le bouton qui iconifie une fenêtre puisse aussi être celui qui va la passer au premier plan si cette dernière n’a pas le focus. Pour ce qui est de la déiconification, c’est beaucoup plus simple puisqu’on demande juste au bouton d’agrandir et de passer sa fenêtre au premier plan.

C’est la commande xdotool getwindowfocus getwindowname qui se charge de déterminer quelle fenêtre a le focus. Ensuite, selon le cas, c’est xdotool windowminimize qui va iconifier la fenêtre ou bien wmctrl -i -a qui va la placer au-dessus de toutes les autres, et par conséquent la rendre visible.

def iconify_window(self, ID, tb):
    """iconifies the window"""

    self.ID = ID
    self.taskbar_button = tb

    process = subprocess.Popen(['xdotool', 'getwindowfocus', 'getwindowname'], text=True, stdout=subprocess.PIPE)
    for line in process.stdout.readlines():
        if line.strip()==self.taskbar_button['text'].strip():
            subprocess.Popen(['xdotool', 'windowminimize', self.ID], text=True, stdout=subprocess.PIPE)
            self.taskbar_button.bind('', lambda event, ID=self.ID,
                                                  tb=self.taskbar_button: self.deiconify_window(ID, tb))
        else:
            subprocess.Popen(['wmctrl', '-i', '-a', self.ID], text=True, stdout=subprocess.PIPE)
            self.taskbar_button.bind('', lambda event, ID=self.ID,
                                                  tb=self.taskbar_button: self.iconify_window(ID, tb))

Conclusion

Voilà pour ce qui concerne la barre des tâches. Elle fonctionne très bien mais il reste tout de même quelques points d’amélioration.

Ajouter de la transparence et opacifier la barre des tâches au survol de la souris. Malgré la méthode root.attributes(‘-alpha’, 0.5), je n’y parviens pas.

Je souhaiterais également que mes deux écrans affichent une barre de tâches qui corresponde aux fenêtres ouvertes sur chacun d’entre eux. Pour l’instant, les deux barres sont des clônes. Mais j’ai peut-être déjà la solution…

Et pour celles et ceux que ça intéresse, le code est ici:

https://gitlab.com/miamondo/labortablo

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

blog-libre : Windows et l’utilisateur

Saturday 19 December 2020 à 12:00

Bientôt 14 ans que je travaille dans l’informatique. J’ai peu parlé de mon expérience de sysadmin Windows pourtant il s’agit de 10 ans de ma vie. Je n’ai jamais détesté Windows ni Microsoft, je ne suis pas un hater. J’aime l’informatique, Windows fait partie de son histoire.

Aujourd’hui l’informatique

Source

Comment en installant un système d’exploitation bureautique en est-on arrivé à parler de publicité ?

Windows 10 est un très bon « produit »… et une honte absolue dans l’Histoire de l’informatique. À se demander dans « système d’exploitation » qui est exploité…

Client ou utilisateur

La durée du support pour les éditions Famille et Professionnel de Windows 10 est de 18 mois, le client est contraint de suivre le rythme. Windows as a Service.

Vendre un logiciel propriétaire est dépassé, le client peut l’utiliser X années sans repasser par la caisse (mon dieu !), sans envoyer constamment des données personnelles (sacrilège !), le réinstaller voire même abuser de sa licence en l’installant sur plus d’un poste (criminel !). Un service que le client renouvelle fréquemment et qui s’arrête brusquement dès qu’il cesse de payer ou de respecter les conditions d’utilisation, voilà l’avenir ! Le contrôle total de l’utilisation du « produit », aucune échappatoire, à tout moment les règles et conditions du service peuvent changer. L’accomplissement de la logique propriétaire, RIEN DE MIEUX que vendre un service. Qu’une entreprise veuille gagner de l’argent dans un monde capitaliste ok, que sa mécanique de vente aille jusqu’à éteindre tous droits et privilèges de l’utilisateur… Avec un service si tu n’es plus client… tu n’es plus utilisateur.

Microsoft Office n’est pas disponible pour Linux, un choix délibéré de Microsoft nullement une impossibilité technique. L’utilisateur n’est pas au centre de sa stratégie, le client oui. Un logiciel utile pour l’utilisateur mais non rentable n’a aucun avenir, voilà la différence fondamentale entre client et utilisateur.

On s’éloigne d’une logique répondant aux besoins de l’utilisateur pour entrer dans une stratégie où le client est une cible. Le terme utilisateur est devenu un simple outil de communication, bon pour la documentation et la publicité.

Le choix de l’utilisateur : Windows ou Windows ?

Je fais une nette distinction entre ce que propose (ou plutôt impose) Windows et ce que souhaiterait un utilisateur dans l’idéal. Dans l’environnement professionnel il est rare de pouvoir choisir son système d’exploitation et 9 fois sur 10 l’employé est sur Windows. Je doute que la publicité sur Windows soit très appréciée. Une majorité d’utilisateurs ne peut refuser l’utilisation de Microsoft Teams quand son entreprise l’utilise.

La contrainte est forte, les intérêts de l’utilisateur et de Windows divergent.

Lutter contre, construire avec

Windows 10 tu luttes contre. Sitôt installé il faut supprimer les bloatwares, se débarrasser de la télémétrie et des mouchards, désactiver la publicité.

Source

J’entends l’acceptation et la résignation de certains : « Avec Privatezilla le sujet est réglé en quelques clics », « On est déjà pisté de partout avec Android, un peu plus ou un peu moins, ça change quoi ? ». Se faire pister par Google ET par Microsoft n’est pas la même chose. Les informations collectées sur un smartphone ont peu de choses à voir avec celles collectées sur un pc, les usages sont différents et complémentaires comme vos données personnelles…

Dark patterns, anti-fonctionnalités : Il n’est plus possible de créer un compte local lors de l’installation de Windows 10, Microsoft impose désormais la création et l’utilisation d’un compte Microsoft pour ouvrir une session (contournement).

Debian (distribution que j’utilise) tu construis avec… c’est tout en fait. Pas d’installation silencieuse (les « mises à jour » qui remettent ce que tu avais supprimé), de fonctionnalités et outils imposés (Edge, Cortana, OneDrive), de contenus non désirés (il faut vivre une fois la pub sur Windows, magique). On appelle cela le respect de l’utilisateur, indirectement notre confiance grandit envers l’outil.

Bugs

Ma mère s’occupait de la compta de mon père du temps où ils n’étaient pas encore retraités. J’ai naturellement installé du Windows. On attend tous d’un système d’exploitation qu’il fonctionne et nous foute la paix.

Ma mère me dit qu’elle ne peut plus enregistrer aucun mot de passe sur Windows. De mon point de vue le pc est inutilisable, pas inutilisable car il bugue dans tous les sens, inutilisable pour un utilisateur. Rendez-vous compte :

Le pc serait passé par la fenêtre avec moi. Je lance une recherche en Anglais, un article en parle, en creusant on trouve même un article chez Microsoft. Le souci a été remonté en avril, pas de correctif en 6 mois, le client a pudiquement le droit à un workaround (solution de contournement).

Tout système d’exploitation (et plus généralement logiciel) vient avec des bugs. L’important n’est pas vraiment le nombre de bugs, ce qu’on peut réellement juger est la rapidité et la qualité des correctifs. Je bosse depuis 3 ans sur Linux, j’ai utilisé Windows pendant plus de 15 ans dont quasiment 10 ans à travailler dessus. J’ai moins de soucis sur Linux, moins souvent/longtemps/grave.

Évidemment je tire cette constatation de mon expérience personnelle, il est probable que d’autres feront le constat inverse. Je vais toutefois rappeler un détail dans le point suivant.

Smicard et milliardaire

Globalement le Libre manque de moyens notamment d’argent. Certains gros projets reçoivent des dons, quelques développeurs rémunérés par leur entreprise bossent sur : Le noyau Linux, Debian, Ubuntu, Gnome… La majorité des autres projets crèvent la dalle, citons OpenBSD (1, 2, 3, 4) qui développe OpenSSH.

Microsoft : Plus de 150 000 employés dont 40% affectés à l’ingénierie, seconde capitalisation boursière ***mondiale*** de 1 592 milliards USD, 37,2 milliards de dollars de chiffre d’affaires et 13,9 milliards de bénéfices nets au dernier trimestre.

On compare un O.S Linux avec Windows à jeu égal ? Microsoft et Windows devrait atomiser Linux et les distributions Linux, le rapport de force est de 100 contre 1.

Pourtant on compare… ne vous y trompez pas, le simple fait de mettre Linux et Windows côte à côte démontre à quel point Windows se fout de l’utilisateur.

Rien à vendre. Rien à gagner ?

Ce qui sauve les distributions Linux est un grain de sable, une valeur ancrée au plus profond de l’Histoire du logiciel libre et de Linux : L’utilisateur au centre. Tout est fait autour de l’utilisateur, tout est fait pour lui.

Parfois malheureusement c’est insuffisant, les logiciels libres sont souvent moches, peu ergonomique, ces critiques sont justifiées. Nous manquons de moyens et de bras, des graphistes, designers, communicants.

Linux n’a rien à vendre mais comme utilisateurs nous avons tout à gagner à le soutenir.

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