PROJET AUTOBLOG


De l’épice pour la pensée

Site original : De l’épice pour la pensée

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Mes extensions sous Firefox 57

vendredi 17 novembre 2017 à 21:29

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 :

Vous avez d'autres suggestions ?

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

mercredi 15 novembre 2017 à 09:09

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 :

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 :

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 :

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 :

À 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 ;)

Fin d'expérience avec coinhive

dimanche 12 novembre 2017 à 14:27

Il y a à peu près un mois, j'ai ajouté sur mon site un petit bout de javascript pour intégrer coinhive et proposer aux visiteurs de miner du monero pour moi.
L'idée me semblait intéressante sur plusieurs points et je voulais savoir ce que ça pourrait donner.

Aujourd'hui, cela a fait gagner 0.00418 XMR, soit environ 5 centimes d'euros par mois, alors que certains ont fait tourner leur processeur rien que pour "me récompenser". Par ailleurs, il faut savoir que la somme minimale que l'on peut retirer à coinhive est de 0.5 XMR. On en est très loin donc.
Je met donc fin à cette expérience car :

Alors qu'il avait été annoncé un modèle économique alternatif aux publicités pour récompenser les créateurs, je n'y crois pas du tout (ou alors il faut clairement abuser des ressources des visiteurs). Les dons récurrents via liberapay, les virements bancaires, l'envoi postal d'une carte avec un petit mot sont beaucoup plus efficaces (surtout en terme d'énergie).

Débuter avec duniter (Ğ1) puis héberger un nœud

vendredi 10 novembre 2017 à 08:08

J'avais déjà parlé des cryptomonnaies et je terminais par duniter. Cette dernière est pensée autour d'une philosophie captivante qui correspond davantage à mes valeurs que les autres. Cependant, et je me demande encore pourquoi, je me fourvoyais complètement sur la façon de l'utiliser, c'est pourquoi j'ai envie d'écrire ce petit guide. Entre la version desktop, la version server, le logiciel à utiliser pour échanger des sous, puis les inscriptions à faire alors que je croyais avoir un portefeuille... Bref, il est temps de poser ça à plat comme on dit. :)

Notez que je vais décrire la procédure sous OpenBSD. Avant de vous lancer dans les compilations, vérifiez si un binaire n'existe pas déjà.

1. Avant tout, il faut bien comprendre...
Contrairement aux autres cryptomonnaies, il y a une différence entre le logiciel et la monnaie.
"duniter", c'est le logiciel libre qui permet les transactions.
"Ğ1" est une monnaie disponible via duniter. Il est possible d'utiliser d'autres monnaies, mais c'est cette dernière qui est actuellement la plus utilisée. De plus, c'est libre ! :)
Un troisième logiciel est nécessaire pour échanger de la monnaie. Ce dernier est spécifique à la monnaie utilisée. Ce sera dans l'exemple cesium, mais il en existe d'autres.

Cela peut paraître excessif, mais c'est en réalité toute la force du logiciel libre. Pour résumer :

2. Échanger des Ğ1
Téléchargez et décompressez l'archive de cesium qui est un logiciel nous permettant d'échanger de la monnaie. Je vous conseille la version "-web" qui ne nécessite qu'un navigateur pour s'en servir.

Décompressez l'archive .zip, puis ouvrez le fichier index.html dans un navigateur (Firefox ;) ).

Je vous conseille de suivre la visite guidée très bien faite pour découvrir cesium.

Lors du premier lancement, on vous propose de créer un compte. C'est nécessaire pour être inscrit dans le registre public du Ğ1. Cela vous crée un portefeuille. Si vous n'avez pas de compte, créez un compte "membre" pour pouvoir plus tard participer au dividende universel.
Si on ne vous propose rien, cliquez sur le lien "créer un compte"

Notez bien votre mot de passe, récupérez le certificat de révocation (on ne sait jamais), puis cliquez sur "mon compte" à gauche pour noter votre clé publique et modifier les informations vous concernant.

Vous voilà prêts à échanger des Ğ1 en cliquant sur le bouton "Virement" à gauche :

(bon, il faudra en recevoir avant... ;P )

Voir aussi l'excellent tutoriel suivant : http://www.le-sou.org/inscription-tuto/

3. Participer à l'utilisation des Ğ1 en étant un nœud

Vous pouvez héberger un noeud et participer aux calculs nécessaires aux échanges de Ğ1. Je reprends ici les explications pour OpenBSD (oh le fainéant). Tant qu'à faire, je vous propose une méthode pour, autant que possible, séparer les permissions et faire les choses proprement.
Je vais créer un utilisateur "_duniter" dont le seul rôle sera de faire tourner duniter, afin d'éviter de faire tourner le démon en tant que root.
Ensuite on installe node.
On s'identifie comme _duniter, puis on télécharge et compile duniter.

useradd -m -d /var/duniter
pkg_add node
npm install --global yarn
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
su _duniter
cd /var/duniter
ftp -o duniter.tar.gz https://github.com/duniter/duniter/archive/v1.5.9.tar.gz
tar xvzf duniter.tar.gz
mv duniter-* duniter
cd duniter
yarn

On peut maintenant l'utiliser en suivant les recommandations situées ici.

On indique quelle clé utiliser : je me sert de la même clé que pour mon inscription précédente sous cesium par facilité.

./bin/duniter wizard key
? Modify you keypair? (y/N) y   
? Key's salt ********************************************   (clé publique précédente)
? Key's password *************************************************   (mot de passe du compte précédent)

Configurez ensuite le réseau. Dans le doute, laissez par défaut.

./bin/duniter wizard network
? IPv4 interface trunk0 192.168.1.64  (interface réseau à utiliser)
? IPv6 interface None
? Port 10901
? Remote IPv4 Enter new one
? Remote IPv4 109.190.193.124 (ici, c'est votre [IP publique|http://ipecho.net])
? Remote port 10901
? Does this server has a DNS name? n (répondez "y" si vous voulez héberger le noeud sur un serveur disponible avec un nom de domaine)

Enfin, lancez la synchronisation :

./bin/duniter sync g1.duniter.org 443

Vous pouvez maintenant lancer duniter et participer aux calculs :

./bin/duniter direct_start

ou pour qu'il tourne en arrière plan :

./bin/duniter start

Si vous faîtes tourner ce noeud sur un serveur, veillez à bien ouvrir les ports 10901. De plus, créer un CNAME pour un nom de domaine dédié à duniter sera sans doute pratique.

Afin d'avoir un service à lancer au démarrage sous OpenBSD, vous pouvez créer le fichier /etc/rc.d/duniter_daemon pour gérer le démon avec rcctl.

#!/bin/sh
#
# $OpenBSD: duniter.rc,v 1.0 2017/11/08 17:58:46 Thuban$

daemon="/var/duniter/duniter/bin/duniter"
daemon_user="_duniter"

. /etc/rc.d/rc.subr

rc_start() {
        ${rcexec} "${daemon} ${daemon_flags} start"
}

rc_stop() {
        ${rcexec} "${daemon} ${daemon_flags} stop"
}


pexp="node: duniter.*"
rc_reload=NO

rc_cmd $1

La suite, c'est comme n'importe quel service sous OpenBSD :

Pour avoir des infos sur duniter, vous pouvez lancer :

su -l _duniter -c "/var/duniter/duniter/bin/duniter logs"

N'est-ce point merveilleux ? :

2017-11-09T19:00:19+01:00 - info: Pulling blocks from the network...
2017-11-09T19:00:22+01:00 - info: Block resolution: 0 potential blocks after current#67928...
2017-11-09T19:00:22+01:00 - info: Will pull blocks from the network in 0 min 20 sec
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: ✔ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: POST Peer LFoG1wupku#67905
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: ✘ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - error:  httpCode=400, ucode=2023, message=Peer document already known
2017-11-09T19:00:26+01:00 - warn: Could not reach duniter.fiat-tux.fr:10901
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:27+01:00 - info: ✘ PEER LFoG1wup

Voir aussi la documentation d'installation

Vous pouvez activer l'interface web ainsi.

./bin/duniter plug duniter-ui@1.4.x 
sed -i "s/duniter\//..\/..\/..\/..\//g" node_modules/duniter-ui/server/controller/webmin.js

Cependant, j'ai tenté de modifier le fichier /etc/rc.d/duniter_daemon pour mettre "webstart" au lieu de "start", mais il ne semble pas trouver le module duniter-ui dans ce cas, donc ça ne fonctionne pas. Une histoire de chemin d'accès je suppose :/
Mais vous pouvez toujours lancer le noeud duniter et son interface web après vous être connecté avec le compte _duniter.
Si vous avez activé l'interface web, au lieu d'ouvrir et rediriger des ports sur votre serveur, créez un tunnel ssh ainsi à partir de votre ordinateur de bureau :

ssh -L 9999:127.0.0.1:9220 utilisateur@votreserveur.com

Ensuite, sur votre ordinateur, ouvrez un navigateur à l'adresse http://localhost:9999 pour voir l'interface de duniter :

Une fois le serveur configuré, je vous conseille de désactiver les connexions vers le compte _duniter

# usermod -s /sbin/nologin _duniter

Conclusion
Plus je m'y intéresse, plus je trouve cette alternative intéressante. Le seul, (mais vraiment le seul) point sur lequel je m'interroge, c'est le côté public de toutes les transactions. Je n'ai pas envie de savoir ce que vous achetez, ni de publier publiquement à qui je donne des sous. Par contre, côté vitesse de calcul, rendement énergétique et toute la théorie du Dividende Universel, je suis conquis. Et vous? :)

Utiliser duniter sous OpenBSD

mercredi 8 novembre 2017 à 11:11

Curieux de cette cryptomonnaie, je voulais tester duniter sous OpenBSD. Voici la marche à suivre :

Récupérez une archive de duniter sur github : https://github.com/duniter/duniter/releases/tag/v1.5.9

Ensuite, suivez la procédure suivante ("#" veut dire que c'est à lancer avec les droits super utilisateur, "$" en user normal) :

# pkg_add node
# npm install --global yarn
# ln -s /usr/local/bin/python2.7 /usr/local/bin/python
$ ftp -o duniter.tar.gz https://github.com/duniter/duniter/archive/v1.5.9.tar.gz
$ tar xvzf duniter.tar.gz
$ cd duniter*
$ yarn

On peut maintenant l'utiliser en suivant les recommandations situées ici.

./bin/duniter wizard key
./bin/duniter wizard network
./bin/duniter sync

Et ça tourne...

Vos clés sont dans le fichier ~/.config/duniter/duniter_default/keyring.yml

Je n'arrive cependant pas à avoir l'interface web comme indiqué dans la doc, comme si elle n'existait plus. En fait, la documentation est soit incomplète soit peu à jour, soit sous forme de vidéo ce qui est très peu pratique à mon avis. Il faudra peut-être améliorer ces points pour que duniter soit plus utilisée. La prochaine étape serait de se faire certifier par d'autres utilisateurs, mais là aussi je bloque : où est-ce que ça se passe?

EDIT : suite aux commentaires, pour avoir l'interface web :

./bin/duniter plug duniter-ui@1.4.x
sed -i "s/duniter\//..\/..\/..\/..\//g" node_modules/duniter-ui/server/controller/webmin.js
./bin/duniter direct_webstart

Il semble que les droits administrateur soient requis.

Puis direction https://localhost:9220