PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Littlewing : Mieux analyser les risques pour simplifier les architectures (ou pas)

mercredi 9 février 2022 à 09:00

architecture

L’analyse des risques: kezako ?

Souvent utilisée dans la prise de décision, l’analyse des risques a plusieurs objectifs :

Mais d’abord, revenons aux bases. Comment identifier un risque ?

Selon Wikipedia, voici la définition:

Le risque est la possibilité de survenue d’un événement indésirable, la probabilité d’occurrence d’un péril probable ou d’un aléa.

Bien évidemment, on a les risques inconnus et ceux qui sont connus. Le préalable à toute gestion de risque (tout du moins pour la définition d’architecture) est de capitaliser les connaissances et retours d’expérience qui viennent du terrain.

On va donc oublier les risques inconnus dans cet article.

Comment les définir ?

Tout d’abord, il faut connaître les SLOs de la plateforme qu’on souhaite concevoir. Pourquoi ? Pour vérifier si les risques qu’on identifiera plus tard sont pertinents ou tout du moins impactants.

Par exemple: Une panne électrique sera faiblement impactante pour une application avec une disponibilité < 70%.

La réalisation des SLIs et SLOs est un préalable pour définir le “budget d’erreur”. Ce dernier nous permettra in fine de quantifier les risques et de voir si il faut les atténuer.

Ensuite, pour chaque risque qu’on identifiera (souvent à partir de notre expérience), on tâchera de définir les caractéristiques suivantes:

Un exemple

La base de données est indisponible

Pour déterminer la cause, il y a plusieurs méthodes, l’une des plus célèbres est celle des cinq pourquoi.

Elle permet d’accéder à la cause du problème.

Pour établir la probabilité, les OPS seront vos meilleurs ami.e.s. Vous remontrez dans le temps pour déterminer quels ont été les différents incidents. Pour chacun, vous devrez définir ces trois caractéristiques : cause, probabilité, conséquence.

A coté de ça, vous aurez à identifier si possible le temps d’indisponibilité du service.

Synthèse

Une fois ce travail de fourmi réalisé, vous pourrez le synthétiser dans un premier temps avec ce formalisme souvent repris dans la gestion de projet:

analyse de risques

En résumé, les actions qui sont oranges ou rouges doivent être traitées et avoir un plan d’action.

Prenons la définition d’une plateforme: Si votre API doit traiter de manière régulière des PAYLOADs volumineux (bon déjà, la ce n’est pas top). Le temps de traitement peut être très long et bloquer certaines ressources (ex. des sous transactions).

Dans ce cas, la probabilité sera à probable et l’impact sera modéré ou majeur. Par conséquent, vous devrez le prendre en compte avec par exemple un circuit breaker.

Pour aller encore plus loin, vous pouvez également évaluer les risques en fonction de votre budget d’erreur: Est-ce que l’erreur peut rentrer dans mon budget ou pas? Bref, est-ce acceptable?

Si vous allez plus loin, je vous conseille la formation Coursera Site Reliability Engineering: Measuring and Managing Reliability.

OK, j’ai identifié les risques potentiels. Qu’est-ce que j’en fait maintenant?

C’est là que démarre réellement le travail d’architecture: vous devrez évaluer chaque risque en fonction des exigences fonctionnelles et technique pour savoir si elles valent la peine d’être prises en considération. Si vous avez des risques de faible impact, vous pourrez soit les “mettre sous contrôle” pour traiter d’autres problèmes, soit les traiter car ils sont “faciles” à traiter et vous permettront d’agrandir votre “budget d’erreur”. Dans ce dernier cas, vous aurez la possibilité de laisser “de coté” d’autres erreurs plus compliquées à traiter car elles rentreront dans votre budget.

Bref, c’est un vrai travail de fourmi qui se base sur l’expérience du terrain.

Quid de l’architecture?

Si vous avez évalué les risques correctement, vous pourrez ne traiter que les risques qui en valent la peine et par conséquent n’ ajouter de la complexité que là ou ça en vaut la peine!

Oui, ce travail préalable permet de faire simple!

Un exemple concret

Si je reprends l’application bookstore que j’ai décrite dans un précédent article:

bookstore architecture

Exigences techniques

SLOs / SLIs

Pour cet exemple, je ne vais traiter que deux exigences techniques:

SLO SLI
L’API Bookstore doit être disponible 99% Nombre de réponses HTTP = 2XX ou 4XX
L’API Bookstore doit répondre en moins de 1 sec Temps de réponse de l’API

Volumétrie

Risques identifiés

Sans aller dans le détail, voici quelques risques que l’on peut identifier de prime abord dans cette architecture:

En vous basant sur l’expérience de vos OPS, vous pourrez également ajouter des risques liés à l’infrastructure (routeurs, DNS, …). Je ne vais pas les aborder dans cet article.

Qualification des risques

Voici une rapide qualification:

Risques Probabilité Impact
Indisponibilité du service bookstore Probable Majeur
Indisponibilité du service booknumber Probable Majeur
Indisponibilité de la base de données Possible Catastrophique

Si on se réfère au premier diagramme, il est obligatoire de les prendre en compte.

Solutions d’architecture pour leur prise en compte

Une fois les risques identifiés, on peut tout d’abord les confronter à notre budget d’erreur pour valider leur prise en compte dans notre conception.

Dans notre cas, on va prendre le postulat qu’il faut réellement les prendre en considération et trouver une solution adaptée.

Voici des exemples de solutions qui permettraient de faire descendre leur impact our leur probabilité.

Risques Probabilité Impact Action/Solutions possibles
Indisponibilité du service bookstore Possible Majeur Load balancing avec deux instances, Utilisation Kubernetes,.
Indisponibilité du service booknumber Possible Majeur Sur le service book-number:
Load balancing avec deux instances, Utilisation Kubernetes,..

Sur le service bookstore:

Mettre en place un circuit breaker basé sur le timeout d’appel
vers le service book-number pour garantir la SLO
Indisponibilité de la base de données Possible Catastrophique - Réalisation d’un benchmark pour s’assurer qu’une instance est suffisante.

- Sinon mise en place mécanisme HA ou changement de technologie

Conclusion

L’analyse des risques n’est pas récente et n’a pas été inventée par le monde de l’informatique. Elle est d’abord apparue dans la gestion de projets et fait désormais partie prenante de la définition d’architectures (enfin ça commence…). Il ne faut pas la voir seulement pour un outil de “GO-NO GO” de réunion de cellule de crise mais comme une aide à la décision pour la conception des systèmes.

Il a toute sa place à coté des différentes caractéristiques que vous devrez prendre en compte ( sécurité, modularité, …). J’ai essayé de décrire comment les identifier et trouver une solution adaptée dans l’exemple. Bien évidemment, il n’est pas complet. Je pense néanmoins qu’il permet d’avoir une idée sur le sujet.

Le principal avantage d’utiliser à la fois les SLOs/SLIs, le budget d’erreur et l’analyse des risques est de n’apporter de la complexité que là où c’est nécessaire.

Pour certains un benchmark sera souvent utile pour confirmer votre décision.

Si vous voulez aller plus loin, je vous conseille dans un premier temps de lire “Fundamentals of Software Architecture”. Ce sujet y est abordé.

Enfin,si ce sujet vous intéresse, vous pouvez vous projeter au délà de l’informatique en lisant les analyses de risques réalisées par le Ministère des finances.

Bonne lecture ;-)

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

Simon Vieille : Administrer son serveur Matrix

lundi 7 février 2022 à 12:30

Au moment où j'écris cet article, j'administre 2 serveurs Matrix Synpase. Pour rappel, Matrix est un protocole de messagertie instantannée très interopérable. Le projet Matrix Synpase est un serveur écrit en python qui implémente ce protocole. Matrix Synpase fournit une API qui va communiquer avec nos clients de messageries favoris comme Element.

Afin d'administrer ces serveurs, j'avais besoin d'une interface web qui peut me permettre de réguler les accès. Synapse-Admin a complétement répondu à mon besoin. Cette interface n'est composées que de fichiers statics et se greffe sur les API des serveurs.

Avant d'installer Synapse-Admin, il faut s'assurer d'être administreur sur le serveur Matrix. Si vous travaillez avec SQLite, il suffira de faire comme suit mais la requête SQL sera la même si vous utilisez PostgreSQL.

# su - matrix-synapse -s /bin/bash
$ sqlite3 /var/lib/matrix-synapse/homeserver.db
sqlite> UPDATE users SET admin = 1 WHERE name = '@identifiant:example.com';
sqlite> .exit

Ensuite, vous avez juste à récupérer l'archive de Synapse-Admin depuis Github et de la rendre accessible derrière un serveur HTTP local ou en ligne.

Synapse-Admin UI

Une fois identifié⋅e, vous pourrez administrer l'ensemble des comptes du serveurs, avoir une visibilité sur les salons créés et les médias. Bien sur, il n'est pas possible d'accéder aux données qui restent totalement chiffrées même pour l'administrateur.

Synapse-Admin UI

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

blog-libre : uBlacklist, masquer les sites indésirables des résultats de votre moteur de recherche

samedi 5 février 2022 à 10:30

Vous considérez les clones pourris de StackOverflow/GitHub (die qastack die !) comme un cancer du web et n’en pouvez plus de les voir parasiter vos recherches ? Vous en avez marre des résultats Instagram/Pinterest lors d’une recherche d’images ? Vous ne voulez plus d’infos provenant de 20minutes.fr ?

Il y a une extension (Firefox, Chrome/Chromium, Safari) pour ça : 2400 stars sur GitHub, licence MIT, supportant Google/Bing/DuckDuckGo/Qwant/Startpage/Ecosia, thread sur Hacker News.

Concrètement vous lancez une recherche dans votre moteur de recherche préféré et les domaines bloqués avec uBlacklist n’apparaîtront plus dans les résultats.

Points forts

Bloquer manuellement et simplement un domaine en cliquant sur Block this site.

Utiliser des expressions régulières.

S’inscrire à des blacklists.

S’inscrire à une liste

Jetez un œil à awesome-ublacklist, personnellement je me suis inscrit à ublacklist-stackoverflow-translation.

On ouvre les préférences de l’extension uBlacklist en allant dans about:addons sur Firefox.

On clique sur le bouton Add a subscription tout en bas de la page.

On donne un nom à la liste, on colle l’URL (https://raw.githubusercontent.com/arosh/ublacklist-stackoverflow-translation/master/uBlacklist.txt) puis on clique sur Add.

And voilà.

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

Articles similaires

Cenwen : Et si on prenait un peu de Polychromatique ?

vendredi 4 février 2022 à 20:39

C’est bien connu, les souris sont des animaux avec des vies courtes ! La mienne, une Corsair Dark Core RGB SE est morte cet été, et a durée presque 3 ans. Sniff, j’adorais mon petit mulot. Juste pour la petite histoire, il est possible de la changer la batterie (vraiment attention le modèle doit être à trois fils). Bien que j’ai trouvé de la documentation sur la batterie et pour changer celle-ci, j’ai préféré d’abord passé par une solution beaucoup plus simple: changer celle-ci. Après, c’est compliqué mais pas impossible. On verra cela….quand je serais très motivé. Mais pour en revenir à l’objet de cet article, elle me provoquait quelques problèmes au démarrage. Bien que téméraire, pour cette fois-ci, je n’ai pas voulu m’embêter. Pour être en raccord avec mes articles précédents, j’ai choisi la marque la mieux reconnue sous Linux : Razer. Pour ce faire, il a fallut quelle soit aussi sans fils, c’est tellement ennuyant les fils. Après avoir hésiter avec RazeGenie (C++/Qt5), j’ai choisi Polychromatic (PyQt5) car il est plus activement développé que le premier. Et maintenant, rentrons dans le vif du sujet. Et c’est parti !

Et on commence par le …..commencement

La première chose à faire est d’installer Polychromatic et toutes ses dépendances. Sur Manjaro, cela donne la ligne de commande suivante (si vous préférez utiliser une GUI comme Pamac ou Octopi, ne vous privez pas)

sudo pacman -S polychromatic python-openrazer openrazer-daemon openrazer-driver-dkms openrazer-meta

Ensuite, on vérifie par la commande lsusb si la souris est bien connectée et reconnue par le système. Celle-ci communique par le biais d’une clé USB soit sans fils soit en Bluetooth. Un peu plus sur cette souris à cet endroit. En promo, elle se trouve moins chère.

$ lsusb
Bus 003 Device 002: ID 0b05:190e ASUSTek Computer, Inc. ASUS USB-BT500
Bus 001 Device 004: ID 1b1c:0c18 Corsair H100i Platinum
Bus 001 Device 003: ID 04f3:152e Elan Microelectronics Corp. Gaming KB
Bus 001 Device 005: ID 1b1c:1c0a Corsair                       
Bus 001 Device 002: ID 1532:0083 Razer USA, Ltd RC30-0315, Gaming Mouse [Basilisk X HyperSpeed]

Bingo. On voit, outre le fait que mon système la reconnaît, qu’elle se trouve sur le Bus 001 en tant que Device (=Périphérique) 002 et que le vendorId de razer est bien le 1532 et que le productid de la souris est le 0083.

Un rapide petit tour soit sur le site de Poychromatic soit sur le site des drivers Razer open-source : OpenRazer nous permet de vérifier toutes ces informations et bien que la liste est très longue, de voir que notre souris est belle et bien supporté. C’est une excellente nouvelle, du out-of-box sous Linux, cela change.

notre modéle est le 5 ème Basilik confirmé par son productid ici 0083

Et maintenant que tout est bon et installé, il est temps de paramétrer cette souris.

On lance Polychromatic de la manière qui vous va le mieux (menu, dock, lanceur d’application) et là, …rien. Cela commence bien pour une appli parfaitement reconnu. Personnellement, je préférerai avoir ceci.

Okay cest un clavier mais cela en jette.

Premier reflex, on ouvre un terminal et on lance l’application. On obtiens le résultat suivant:

polychromatic &&

Bon il semblerait qu’il y ait un soucis, on a rien.

Deuxième réflexe : un petit tour sur Polychromatic qui ne nous apprend pas grand chose puis sur le wiki OpenRazer sur Github et là, on obtient des informations sur les problèmes les plus courants que l’on peut rencontrer en consultant cette page.

Après avoir vérifié que ma souris est bien prise en charge par OpenRazer grâce à la commande lsusb , on va se baser sur la documentation pour trouver ce qui cloche. Et on commence par les logs (=journaux) pour le kernel, les drivers et le daemon razer que nous avons installé en même temps que Polychromatic et OpenRazer. Ce qui nous donne les commandes suivantes:

$ sudo dmesg
....
[    4.291675] NET: Registered PF_ALG protocol family
[    4.782425] input: Razer Razer Basilisk X HyperSpeed as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.0/0003:1532:0083.0001/input/input17
[    4.782484] hid-generic 0003:1532:0083.0001: input,hidraw0: USB HID v1.11 Mouse [Razer Razer Basilisk X HyperSpeed] on usb-0000:02:00.0-1/input0
[    4.789517] input: Razer Razer Basilisk X HyperSpeed Keyboard as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.1/0003:1532:0083.0002/input/input18
[    4.843559] input: Razer Razer Basilisk X HyperSpeed as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.1/0003:1532:0083.0002/input/input19
[    4.843647] hid-generic 0003:1532:0083.0002: input,hidraw1: USB HID v1.11 Keyboard [Razer Razer Basilisk X HyperSpeed] on usb-0000:02:00.0-1/input1
[    4.847700] input: Razer Razer Basilisk X HyperSpeed as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.2/0003:1532:0083.0003/input/input20
[    4.903547] hid-generic 0003:1532:0083.0003: input,hidraw2: USB HID v1.11 Keyboard [Razer Razer Basilisk X HyperSpeed] on usb-0000:02:00.0-1/input2
...
$ sudo journalctl -b | grep -i razer_mount
déc. 04 13:33:40 thorielle razer_mount[1065]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1066]: Device_ID 1-1
déc. 04 13:33:40 thorielle razer_mount[1067]: Modprobing razermouse
déc. 04 13:33:40 thorielle razer_mount[1083]: Modprobed razermouse
déc. 04 13:33:40 thorielle razer_mount[1096]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1097]: Device_ID 1-1:1.0
déc. 04 13:33:40 thorielle razer_mount[1105]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1106]: Device_ID 1-1:1.1
déc. 04 13:33:40 thorielle razer_mount[1107]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1109]: Device_ID 1-1:1.2
déc. 04 13:33:40 thorielle razer_mount[1117]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1118]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1119]: Driver razermouse
déc. 04 13:33:40 thorielle razer_mount[1122]: Device_ID 0003:1532:0083.0001
déc. 04 13:33:40 thorielle razer_mount[1121]: Device_ID 0003:1532:0083.0003
déc. 04 13:33:40 thorielle razer_mount[1123]: Device_ID 0003:1532:0083.0002
déc. 04 13:33:40 thorielle razer_mount[1125]: Changing group /sys/bus/hid/drivers/razermouse/0003:1532:0083.0003/
déc. 04 13:33:40 thorielle razer_mount[1124]: Changing group /sys/bus/hid/drivers/razermouse/0003:1532:0083.0001/
déc. 04 13:33:40 thorielle razer_mount[1126]: Changing group /sys/bus/hid/drivers/razermouse/0003:1532:0083.0002/
déc. 04 13:33:40 thorielle razer_mount[1130]: Changed group /sys/bus/hid/drivers/razermouse/0003:1532:0083.0001/
déc. 04 13:33:40 thorielle razer_mount[1131]: Changed group /sys/bus/hid/drivers/razermouse/0003:1532:0083.0003/
déc. 04 13:33:40 thorielle razer_mount[1132]: Changed group /sys/bus/hid/drivers/razermouse/0003:1532:0083.0002/
$ cat ~/.local/share/openrazer/logs/razer.log 
2021-10-23 19:20:11 | razer                          | CRITICAL | User is not a member of the plugdev group
2021-10-23 19:20:11 | razer                          | CRITICAL | Please run the command 'sudo gpasswd -a $USER plugdev' and then reboot!
2021-10-24 13:27:59 | razer                          | CRITICAL | User is not a member of the plugdev group
2021-10-24 13:27:59 | razer                          | CRITICAL | Please run the command 'sudo gpasswd -a $USER plugdev' and then reboot!
2021-10-25 17:58:45 | razer                          | CRITICAL | User is not a member of the plugdev group
2021-10-25 17:58:45 | razer                          | CRITICAL | Please run the command 'sudo gpasswd -a $USER plugdev' and then reboot!
2021-10-25 21:10:30 | razer                          | CRITICAL | User is not a member of the plugdev group
2021-10-25 21:10:30 | razer                          | CRITICAL | Please run the command 'sudo gpasswd -a $USER plugdev' and then reboot!
2021-10-25 21:12:42 | razer                          | CRITICAL | User is not a member of the plugdev group
2021-10-25 21:12:42 | razer                          | CRITICAL | Please run the command 'sudo gpasswd -a $USER plugdev' and then reboot!

On commence par en apprendre un peu plus dont le fait est que la souris est parfaitement reconnu par le système, et qu’il faudrait ajouter l’utilisateur au groupe plugdev et ensuite rebooter. Mais continuons notre exploration avec les commandes suivantes:

$ pacman -Q openrazer
erreur : le paquet « openrazer » n’a pas été trouvé
$ pacman -Q python-openrazer
python-openrazer 3.1.0-1

Cela commence à devenir intéressant car on apprend que la version de OpenRazer est la 3.1.0-1. Poursuivons.

$ sudo dkms install openrazer-driver/3.1.0-1

On vérifie que l’on a bien installé la bonne version des modules OpenRazer pour notre kernel. C’est le cas.

$ sudo dkms status

Comme on n’a aucune erreur, on peut dire que cela ne vient pas du kernel.

$ sudo modprobe razerkbd

On essaie de charger le module du kernel utilisant dkms. Aucune réponse en sortie, donc c’est bon. Continuons donc.

$ openrazer-daemon -Fv
Unable to lock on the pidfile

On vérifie si le daemon d’OpenRazer est démarré. Aie. C’est le cas grâce au message que nous avons en retour. Cela signifie qu’il faut ajouter l’utilisateur courant au groupe plugdev. D’ailleurs, si vous avez noté la commande cat ~/.local/share/openrazer/logs/razer.log passée au début, nous avions la même consigne. Maintenant que nous sommes sûr de ce qu’il faut faire, ….faisons-le. On passe donc la commande suivante.

$ sudo gpasswd -a $USER plugdev

On démarre l’application et Bingo, elle se lance. C’est pas magique ?

A la découverte de Polychromatic sauce Basilisk x Hyperspeed

Whaoouh. c’est top et c’est beau

Polychromatic s’ouvre par défaut sur l’onglet Device. Ici, il n’y en a qu’un mais dans le cas où vous auriez plusieurs périphériques de la marque, ils seraient dans la partie gauche, listés en dessous de la Razer Basilisk X Hyperspeed. Pour ce périphérique, nous avons en un coup d’œil, toutes les caractéristiques de notre souris. A savoir déjà, une image puis son nom et modèle, enfin le nombre de DPI, le Pool Rate et le pourcentage de la batterie. Ensuite vient chaque caractéristique détaillée et modifiable. Celles-ci sont, pour cette souris, les suivantes:

Il n’y a aucun effet car ce modèle de souris n’en a pas. C’est manqué.

En haut, à droite dans l’interface principale, nous avons un bouton nommé Device Info (Info sur le Périphérique en français) qui est une synthèse de tout ce que Polychromatic (grâce aux drivers opensource Razer) sait sur notre souris.

Je ne sais si par défaut l’onglet des Effets est vide ou bien lié à notre périphériques. On peut créer un nouvel effet sauf dans le cas où, ce périphérique n’en dispose pas, …..comme ici. Sniff. J’ai pas pris le bon modèle mais bon vu le prix, je vais pas me plaindre surtout qu’il s’agit d’une souris très agréable en main.

On peut toutefois en créer si c’est possible. Quand cela ne l’est pas, vous avez le message suivant:

souris non compatible avec des effets lumineux.

A noter aussi que lors de son lancement, un nouvel icône correspondant à Polychromatic se trouve dans le systray. Vous avez accès à 3 actions :

Polychromatic dans le systray avec toutes les actions possibles de ce modèle

Le logiciel comporte aussi une section Préférences que l’on appelle dans le menu avec l’entrée View. Celle-ci dispose de 5 onglets qui sont:

L’onglet About nous informe des librairies installés pour faire fonctionner OpenRazer ainsi que sa licence et les liens vers le projet.

L’onglet Configure permet de configurer le daemon finement.

Dans le deuxième onglet nous pouvons nous occuper du client.

L’onglet TroubleShoot lance un test de tous les paramètres nécessaires au bon fonctionnement d’OpenRazer y compris du module dkms du kernel. Si vous avec une croix verte, c’est que c’est tout bon comme ci-dessous.

Restart n’est à utiliser que si vous avez une croix rouge, cela aura pour effet de relancer le daemon. Si vous n’avez pas de soucis comme moi au-dessus, il est inutile de le lancer. Ni de tenter le diable si cela fonctionne déjà.

Il est temps de nous quitter

Le remplacement forcé de mon petit mulot Corsair par un autre Razer piloté par Polychromatic est une très bonne surprise. Même si au début, tout ne s’est pas passé out-of-box, au final le résultat est au-delà de mes espérances: pratique, beau, complet, fonctionnel. J’espère que cela vous aura convaincu, à condition d’avoir un périphérique Razer, de tester les logiciels basés sur OpenRazer. Bien que mon choix s’est porté sur Polychromatic, il aurait été intéressant de tester Razergenie.

La critique que je ferais serait au niveau de la batterie. Je pense qu’il serait judicieux d’avoir aussi accès à une notification qui aurait juste pour but d’éviter de lancer l’application pour voir son niveau actuel. Et pourquoi pas programmer cette notification à intervalle réguliers. L’autre aspect qui peut rebuter certains est qu’il n’est pas (encore) traduit dans la langue de Molière. Étonnant d’ailleurs. Bonne découverte.

Petit complément suite à mes critiques au niveau de la batterie et de la langue de l’interface. En jetant un coup d’œil rapide dans les « issues » sur Github, je me suis rendu compte que la demande d’avoir la batterie dans le systray à déjà été demandé ici et ici et comme vous le voyez son développeur est assez intéressé par cette fonctionnalité. Et en jetant un autre coup d’œil pour la francisation de l’interface elle existe déjà. Par contre, aucune précision pour l’inclure. C’est à creuser. Peut-être l’objet d’un autre article, qui sait ?

NB: Je n’ai pas trouvé d’information pour avoir l’interface en Français, j’ai demandé à son auteur (aka Lah7) comment faire. Si vous voulez suivre la conversation c’est à cet endroit que cela se passe.

MAJ du 05 Février 2022

Une des chose que que j’aime dans le libre, c’est la rencontre avec les gens. Après avoir publié cet article, j’ai informé son auteur Lah7 sur le fait que l’on ne pouvait pas avoir le logiciel en Français, malgré une traduction Française existante et que j’avais fais un article sur Polychromatic. Pour ceux qui veulent voir les réponses de Lah7 sur cette situation peuvent se rendre ici. Il y avait un bogue et ceux qui installeront Polychromatic à la main auront automatiquement le logiciel en Français. Pour ceux qui comme moi l’installe avec leur outil préféré, il faudra attendre un peu plus longtemps. D’ailleurs, Lah7 aura besoin de traducteurs quand il aura fini le refactoring du projet. Et pas qu’en Français. Alors si vous parlez une autre langue,vous savez ce qui vous reste à faire.

L’autre point négatif que j’avais évoqué, est aussi en passe d’être résolu mais ce sera là du coté des drivers OpenRazer avec cet « issue » ouverte. Comme vous pouvez en jugé avec la capture d’écran ci-dessous c’est très bien. Le seul inconvénient est que si l’utilisateur n’a pas vu la notification, elle ne se répétera pas. Un autre point qui n’est pas encore corrigé. Mais cela viendra.

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

Daria : Achetez vos extensions directement sur WordPress.com

jeudi 3 février 2022 à 19:17

Pour les utilisateurs de nos offres Business et eCommerce, les extensions jouent un rôle essentiel dans l’expérience WordPress.com. Nous cherchons sans cesse à simplifier la découverte et l’installation d’extensions WordPress performantes.

À cet effet, il est désormais possible d’acheter certaines extensions directement sur la page des extensions de WordPress.com. En outre, WordPress.com proposera une tarification mensuelle et annuelle des extensions, ce qui garantira davantage de souplesse aux propriétaires de sites.

Pour le moment, vous pouvez acheter six de nos extensions WooCommerce les plus populaires sur la page des extensions de WordPress.com.

L’achat d’une extension via la nouvelle interface de WordPress.com est simple. Sur la page des extensions, cliquez sur l’une des fiches correspondant à une extension payante pour vous rediriger vers une page produit. Quand vous le souhaitez, cliquez sur le bouton d’achat en haut à droite de la page produit. Votre achat ne sera pas définitif tant que vous n’aurez pas confirmé votre mode de paiement et vos coordonnées sur la page suivante. L’extension sera installée automatiquement.

Cette annonce n’est qu’un début. D’autres extensions payantes et d’autres nouveautés passionnantes vous seront présentées au cours des prochains mois. Faites-nous savoir dans les commentaires ci-dessous quelles extensions vous aimeriez voir disponibles à l’achat directement sur WordPress.com.

Restez à l’écoute et cliquez ici pour commencer à explorer les extensions dès maintenant !

Pour rappel, toutes les extensions (gratuites ou payantes) sont actuellement uniquement disponibles aux clients disposant d’un plan WordPress.com Business ou eCommerce. Si vous souhaitez mettre à niveau vers un plan Business annuel, cliquez ici pour bénéficier d’une réduction de 25 % sur votre première année.

Code promo : PLUGINSBLOG25

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