HtmlToText
menu deblan catégories moi futilités de geek le blog trinity cms la toile cms installer sunderland divers développement les cours graphisme le [frigo] les jeux-video informatique musique humour cinéma contact recherche hébergement forge le réseau neutralnetwork (irc) métamoteur (searx) colorisateur de code (#!gist) colorisateur de code (wall) indenteur xml livecoding mes flux amis tux-planet planet libre vtc colmar dr saule in the us djan gicquel romain sibille dotshare.it datalove agence digitale simon vieille it director at zenitude groupe, symfony expert and debian addict rss github linkedin diaspora twitter facebook remote i3-wm ws : ma télécommande pour bureau debian gnu/linux il m'arrive d'avoir besoin de prendre le contrôle de ma machine via mon android (bouger la souris, scroller et taper du texte). j'ai quasiment toujours utilisé l'application pointer host . elle s'appuie sur un serveur java lancé sur ma machine. pour bouger la souris et générer des cliques, elle est très efficace. cependant, l'écriture de caractères a toujours posé problème (chiffres et lettres accentuées erronés). depuis quelques semaines, j'ai envie de jouer avec les websockets et réécrire une appli du genre m'a semblé être un bon exercice. ce que je vais vous présenter est une poc. cette application n'est pas sécurisée et est orientée pour mes besoins. il est cependant très simple de la faire évoluer. voici mon cahier des charges : aucune application ne doit être installée sur mon téléphone utilisation du navigateur web pour le pilotage pouvoir bouger la souris pouvoir générer des cliques pouvoir scroller pouvoir taper des mots pouvoir lancer des raccouris claviers pouvoir gérer le volume du son pour spotify : lancer et mettre en pause la musique, avancer et reculer dans la playlist en cours de lecture pouvoir changer de workspace dans mon gestionnaire de fenêtres i3-wm les outils pour scripter tout ça sont connus : xdotool pour simuler un clavier et une souris (3, 4, 5, 6, 7) : xdotool type "ceci va être tapé" xdotool key enter (touche entrée ) xdotool click 1 (clique gauche) amixer pour gérer le volume (8) : amixer set master 50% (volume à 50%) playerctl pour piloter spotify (9) : playerctl -p spotify next (titre suivant) i3-msg pour piloter i3-wm (10) : i3-msg 'workspace "foo"' (affichage du workspace foo ) websocket est un protocole réseau issu du web qui permet de créer un canal full-duplex entre un client et un serveur. ils peuvent donc communiquer en temps réel dans une connexion tcp. comme à mon habitude et par esprit de contradiction (pas de nodejs), j'ai décidé d'écrire la partie serveur en php 7. la partie cliente est en html 5 avec un peu de javascript. entre le serveur et le client, ce sont des messages textes qui sont échangés. j'ai décidé de les formater en json et seul le client va en envoyer. ils sont toujours sous cette forme : {"type":"un type de message", [données complémentaires]} . voici quelques exemples : {"type":"workspace","value":"1. irc"} {"type":"pointer","click":"left"} {"type":"media","value":"next"} {"type":"volume","value":"down"} {"type":"scroll","value":"up"} {"type":"pointer","x":"-2","y":"3"} {"type":"text","value":"un texte"} on peut aussi envoyer plusieurs messages dans un seul. voici un exemple qui va permettre d'ouvrir urxvt via dmenu que je lance avec win+d : {"type":"messages","value":[{"type":"keys","value":"win,d"},{"type":"text","value":"urxvt"},{"type":"key","value":"enter"}]} ces messages sont générés par le client et sont interprétés par des messagehandler une fois transmis au serveur. en voici un exemple : le code source de l'application est disponible sur deblan/remote-i3wm-ws et la procédure d'installation est simple : pour lancer le serveur websocket, il faut exécuter server/server start (@see restart et stop ). le serveur va écouter sur le port 14598 . concernant la partie cliente, vous pouvez créer un vhost apache/nginx qui pointera sur client/ ou lancer le serveur web built-in de php via php -s 0.0.0.0:15000 -t client/ . il faudra à présent vous connecter au serveur web depuis un navigateur. quelques captures de la partie cliente : je vais essayer de faire une vidéo de démonstration. depuis mon samsung s8, ça fonctionne du feu de dieu et sur un petit iphone 4s, c'est tout aussi fonctionnel (à part l'interface web un peu étriquée). edit 1 dbus-send a été remplacé par playerctl (merci thomas l) le type messages a été ajouté et permet d'envoyer plusieurs messages (cf l'exemple avec urxvt ) et les mises à jour du code edit 2 le code php du serveur a été déplacé dans server/src/resource/server.php server/server est à présent un script shell et permet de lancer, relancer et stopper le serveur websocket ( server/server start|restart|stop ) développement futilités de geek #remote access #i3-wm #php7 #websocket monitordisplay : gérer ses dispositions d'écrans je branche très souvent des écrans externes à mon laptop et je suis un peu lassé de bidouiller xrandr . en effet, ses instructions sont simples mais assez longues et pénibles à écrire. ainsi, j'ai décidé de me faire un outil pour pouvoir configurer des modes d'affichage, pouvoir ajouter plusieurs dispositions et les activer rapidement. comme à mon habitude, c'est un outil en ligne de commande. j'ai décidé d'utiliser php pour une question de pratique pour moi. installation de monitordisplay il faut installer l'interpréteur php (5 ou 7) : maintenant que php est installé, il faut récupérer le projet : configuration monitordisplay va essayer de charger 3 fichiers. chaque fichier peut surcharger la configuration du précédent. voici la liste : /etc/monitordisplay/config.ini $home/.config/monitordisplay/config.ini $home/.monitordisplay je suis le seul utilisateur du laptop donc je vais juste créer le dernier. le fichier de configuration copié contient 2 écrans : laptop et hdmi sont les identifiants "humains" sur lesquels je vais m'appuyer pour réaliser les dispositions. le paramètre name contient l'identifiant technique passé à xrand . resolutionx et resolutiony indiquent la résolution de l'écran. il est possible de configurer plusieurs fois le même écran. il suffit de modifier l'identifiant humain. vous pouvez ainsi prévoir plusieurs résolutions. maintenant, il reste à renseigner des modes d'affichage. en voici trois exemples : tout comme un écran, le mode d'affichage porte un identifiant. il possède également une liste de dispositions ( config[] ) et un indicateur (optionnel) d'écran principal ( primary ). l'ordre des identifiants définie la position, de gauche à droite, des écrans. utilisation pour activer un mode d'affichage (exemple : work ), il suffit de lancer cette ligne de commande : le mode work contient deux dispositions. pour passer à la seconde disposition, il suffit de lancer : -t permet donc de passer successivement d'une disposition à une autre. quand monitordisplay charge un mode ou change de disposition, par défaut, il désactive les écrans non pris en charge. si vous souhaitez outre-passer ce comportement, il suffit de passer l'argument -s . c'est assez pratique quand vous souhaitez initialiser une résolution sur un écran sans désactiver les autres. le code source est disponible sur gitnet et c'est open bar ;) informatique futilités de geek #xrandr #multiscreen let's encrypt - comment se faciliter la vie ? mon serveur web est composé d'un frontend nginx et d'un backend apache. l'ensemble de mes certificats (à l'exception du wildcard deblan.org) est géré par let's encrypt. mon problème jusqu'à aujourd'hui était que lors de la création ou le renouvellement d'un certificat, mon service nginx devait être coupé pour réaliser l'authentification nécessaire à la validation faite par let's encrypt. le service nginx, tel que je l'ai configuré, possède un fichier de configuration unique qui écoute sur le port 80. ce fichier permet : d'indiquer mon backend apache de gérer les problématiques de cache des assets (images, css, javascripts, etc.) vous pouvez remarquer l' i
Informations Whois
Whois est un protocole qui permet d'accéder aux informations d'enregistrement.Vous pouvez atteindre quand le site Web a été enregistré, quand il va expirer, quelles sont les coordonnées du site avec les informations suivantes. En un mot, il comprend ces informations;
%%
%% This is the AFNIC Whois server.
%%
%% complete date format : DD/MM/YYYY
%% short date format : DD/MM
%% version : FRNIC-2.5
%%
%% Rights restricted by copyright.
%% See https://www.afnic.fr/en/products-and-services/services/whois/whois-special-notice/
%%
%% Use '-h' option to obtain more information about this service.
%%
%% [2600:3c03:0000:0000:f03c:91ff:feae:779d REQUEST] >> deblan.fr
%%
%% RL Net [##########] - RL IP [#########.]
%%
domain: deblan.fr
status: ACTIVE
hold: NO
holder-c: ANO00-FRNIC
admin-c: ANO00-FRNIC
tech-c: GR283-FRNIC
zone-c: NFC1-FRNIC
nsl-id: NSL33187-FRNIC
registrar: GANDI
Expiry Date: 21/03/2018
created: 01/04/2008
last-update: 02/02/2017
source: FRNIC
ns-list: NSL33187-FRNIC
nserver: b.dns.gandi.net
nserver: a.dns.gandi.net
nserver: c.dns.gandi.net
source: FRNIC
registrar: GANDI
type: Isp Option 1
address: 63-65 boulevard Massena
address: PARIS
country: FR
phone: +33 1 70 37 76 61
fax-no: +33 1 43 73 18 51
e-mail: reg.afnic-notification@gandi.net
website: http://www.gandi.net
anonymous: NO
registered: 09/03/2004
source: FRNIC
nic-hdl: ANO00-FRNIC
type: PERSON
contact: Ano Nymous
remarks: -------------- WARNING --------------
remarks: While the registrar knows him/her,
remarks: this person chose to restrict access
remarks: to his/her personal data. So PLEASE,
remarks: don't send emails to Ano Nymous. This
remarks: address is bogus and there is no hope
remarks: of a reply.
remarks: -------------- WARNING --------------
registrar: GANDI
changed: 23/08/2016 anonymous@anonymous
anonymous: YES
obsoleted: NO
source: FRNIC
nic-hdl: GR283-FRNIC
type: ROLE
contact: GANDI ROLE
address: Gandi
address: 15, place de la Nation
address: 75011 Paris
country: FR
e-mail: noc@gandi.net
trouble: -------------------------------------------------
trouble: GANDI is an ICANN accredited registrar
trouble: for more information:
trouble: Web: http://www.gandi.net
trouble: -------------------------------------------------
trouble: - network troubles: noc@gandi.net
trouble: - SPAM: abuse@gandi.net
trouble: -------------------------------------------------
admin-c: NL346-FRNIC
tech-c: NL346-FRNIC
tech-c: TUF1-FRNIC
notify: noc@gandi.net
registrar: GANDI
changed: 03/03/2006 noc@gandi.net
anonymous: NO
obsoleted: NO
source: FRNIC
REFERRER http://www.nic.fr
REGISTRAR AFNIC
SERVERS
SERVER fr.whois-servers.net
ARGS deblan.fr
PORT 43
TYPE domain
RegrInfo
DISCLAIMER
%
% This is the AFNIC Whois server.
%
% complete date format : DD/MM/YYYY
% short date format : DD/MM
% version : FRNIC-2.5
%
% Rights restricted by copyright.
% See https://www.afnic.fr/en/products-and-services/services/whois/whois-special-notice/
%
% Use '-h' option to obtain more information about this service.
%
% [2600:3c03:0000:0000:f03c:91ff:feae:779d REQUEST] >> deblan.fr
%
% RL Net [##########] - RL IP [#########.]
%
REGISTERED yes
ADMIN
HANDLE ANO00-FRNIC
TYPE PERSON
CONTACT Ano Nymous
REMARKS
-------------- WARNING --------------
While the registrar knows him/her,
this person chose to restrict access
to his/her personal data. So PLEASE,
don't send emails to Ano Nymous. This
address is bogus and there is no hope
of a reply.
-------------- WARNING --------------
SPONSOR GANDI
CHANGED 2016-08-23
ANONYMOUS YES
OBSOLETED NO
SOURCE FRNIC
TECH
HANDLE GR283-FRNIC
TYPE ROLE
CONTACT GANDI ROLE
ADDRESS
Gandi
15, place de la Nation
75011 Paris
COUNTRY FR
EMAIL noc@gandi.net
TROUBLE
-------------------------------------------------
GANDI is an ICANN accredited registrar
for more information:
Web: http://www.gandi.net
-------------------------------------------------
- network troubles: noc@gandi.net
- SPAM: abuse@gandi.net
-------------------------------------------------
ADMIN-C NL346-FRNIC
TECH-C
NL346-FRNIC
TUF1-FRNIC
NOTIFY noc@gandi.net
SPONSOR GANDI
CHANGED 2006-03-03
ANONYMOUS NO
OBSOLETED NO
SOURCE FRNIC
OWNER
HANDLE ANO00-FRNIC
TYPE PERSON
CONTACT Ano Nymous
REMARKS
-------------- WARNING --------------
While the registrar knows him/her,
this person chose to restrict access
to his/her personal data. So PLEASE,
don't send emails to Ano Nymous. This
address is bogus and there is no hope
of a reply.
-------------- WARNING --------------
SPONSOR GANDI
CHANGED 2016-08-23
ANONYMOUS YES
OBSOLETED NO
SOURCE FRNIC
DOMAIN
STATUS ACTIVE
HOLD NO
SPONSOR GANDI
EXPIRY DATE 21/03/2018
CREATED 2008-04-01
CHANGED 2017-02-02
SOURCE FRNIC
HANDLE NSL33187-FRNIC
NSERVER
B.DNS.GANDI.NET 213.167.229.1
A.DNS.GANDI.NET 173.246.98.1
C.DNS.GANDI.NET 217.70.179.1
NAME deblan.fr
Go to top