Archives de catégorie : Logiciels libres

alarme de détection de mouvement maison

J’ai bricolé une alarme de détection de mouvement basée simplement sur la webcam de mon PC. Le principe est le suivant, un logiciel sur le PC détecte tout mouvement avec la webcam, fait une courte vidéo de l’évènement qu’il place dans un répertoire. Ensuite un script détecte le rajout d’un fichier et envoie un mail automatique. Dans le même temps, le répertoire où se trouve les fichiers vidéos est rendu accessible sur internet.

Pour le logiciel de détection de mouvement, j’ai utilisé motion qu’on trouvera par ici. Pour l’installation je suis parti des sources, il suffit de taper successivement

    autoreconf -fiv
    ./configure
    make
    

Puis en tant que root

make install

J’ai dû installer également le package lib64microhttpd-devel même si je ne me sers pas du serveur web httpd local. Le fichier de configuration se trouve par défaut sous /usr/local/etc/motion, il faudra renommer le fichier motion-dist.conf en motion.conf. Personnellement je n’ai fait que changer la variable target_dir pour indiquer le répertoire d’accueil des vidéos. Sur ma configuration, ce répertoire est un partage réseau qui se trouve physiquement sur mon serveur Dell PowerEdge.

Sur le serveur, j’ai rendu le répertoire accessible via le web en configurant apache avec restriction d’accès en rajoutant également une règle au firewall shorewall. Pour que le serveur soit visible d’internet, j’ai utilisé les services gratuits de no ip qui permet de nommer votre serveur sur internet avec un nom compréhensible et de rediriger les requêtes vers l’adresse IP fournie par le fournisseur d’accès. Sur le routeur de mon réseau, j’ai enfin rajouté une redirection vers le port d’apache.

Pour terminer j’ai créé un script basé sur le package inotify-tools et mutt pour envoyer un mail dès qu’un nouveau fichier fait son apparition.

#!/bin/bash
inotifywait -m /var/httpd/webcam -e create -e moved_to |
    while read path action file; do
        echo "Le fichier '$file' est apparu dans le répertoire '$path' via '$action'"
	echo "Webcam : nouveau fichier" | mutt -s "Un nouveau fichier vidéo a été créé" -- maildenvoi
    done
    

Dans la pratique, on reçoit le mail qui signale la création d’un fichier et on va visualiser ensuite le fichier sur internet.

Tout cela n’est pas très écolo et monopolise 2 ordinateurs, il faudra que j’optimise tout cela sur une seule machine, et pourquoi pas tenter l’expérience Rasbperry.

Randonnées et applications compatibles cartes ign

Grand amateur de randonnée l’été, pendant longtemps je me suis contenté de cartes papiers, par la suite une montre GPS me permettait d’analyser ma trace en temps différé avec des logiciels dédiés comme ceux présentés dans cette page. Il m’a paru utile d’aller plus loin et de pouvoir visualiser en temps réel ma trace sur un fond de carte IGN et tant qu’à faire de pouvoir suivre une trace téléchargée préalablement sur mon mobile android, trace qu’on aura récupéré sur un des nombreux sites dédiés à la randonnée. Il existe un certain nombre d’applications dédiées à la randonnée, certaines libres mais en revanche des applications officiellement compatibles aux cartes IGN, il y en a que 3 comme indiqué par cette page d’IGNrando, aucune n’est libre. Par dépit ou défaut, j’ai choisi iPhiGénie sur la base de sa réputation et de ses fonctionnalités. En parallèle, j’ai souscrit un abonnement à IGNrando pour la modique somme de 20,98€ annuelle qui me permet l’accès au catalogue complet, le prix est donc très abordable et bien inférieur à celui de l’achat de cartes spécifiques.

Pour les fonctionnalités d’iPhiGénie on pourra se référer au manuel (qui est un brin désordonné). On retrouve les fonctionnalités classiques comme l’import de traces GPS, l’affichage sur un fond de carte puis suivi de la trace téléchargée et enregistrement de la trace réalisée avec des outils de distance et de vitesse et d’export. J’ai placé le mobile dans un sachet transparent étanche qui pendouille autour du cou, à portée de main pour le consulter régulièrement et vérifier si je suis bien sur le bon chemin. Ci-dessous en vert la trace à suivre, en rouge la trace réalisée.

Un point important est que iPhiGénie gère le mode offline, ce qui est particulièrement utile quand on se trouve dans un coin perdu. Pour ce faire il faudra veiller en mode online à visualiser la zone de randonnée à différentes échelles, cela aura pour effet de télécharger les cartes qui resteront en cache, sinon vous allez vous retrouver avec un beau “NO NETWORK”. En revanche, iPhiGénie ne filtre pas les points aberrants et les sauts brutaux de plusieurs centaines de mètres contrairement à une montre GPS (du moins ma montre garmin GPS forerunner 310XT). Or dans des zones accidentées, ça arrive fréquemment et ça perturbe fortement le suivi de la trace, dans ce cas il faut revenir aux bonnes vielles méthodes de suivi d’une trace papier en observant l’environnement et ses repères en faisant abstraction de la trace réalisée qui peut être fausse. En conséquence la trace exportée peut comporter des points aberrants qu’il faudra manuellement supprimer pour pouvoir l’exploiter.

Sous le compte IGNrando on peut visualiser et partager ses traces avec la problématique des points aberrants.

Il se trouve qu’IGNrando a sorti sa propre appli entre temps qui porte le nom d’IGNrando’. J’avoue que je n’ai encore pris le temps de la tester.

Passage à mageia 7

J’ai passé trois de mes PC en mageia 7, mon PC principal sous mageia cauldron et deux thinkpad, un X230 sous mageia 6.1 et un X200 sous mageia 5.1. Je renvoie vers l’annonce sur linuxfr qui vante les mérites de cette distribution. Si je devais rajouter une couche je dirais que le côté user friendly n’est pas le facteur le plus déterminant me concernant puisque je suis adepte de la ligne commande et je n’utilise jamais les outils de configuration graphiques. Ce que j’apprécie sur la mageia (et la mandrake/mandriva auparavant) c’est le niveau d’aboutissement de configuration des logiciels en particulier les outils serveurs comme apache, sendmail, openssh, l’automontage et j’en passe, ils sont opérationnels quasi immédiatement. J’ai eu à tester d’autres distributions (dont ubuntu en particulier) et ce n’était franchement pas ça, c’était mal compilé (comprendre il manquait plein de modules) voire il manquait des dépendances et il y a souvent aucun fichier de configuration prêt à l’emploi, le travail de finition était beaucoup plus conséquent.
Au final, mageia me fait gagner un temps fou pour configurer un système, d’autant que les mises à jour sont maintenant particulièrement abouties.

Pour en revenir à la mise à jour, j’ai tapé dans un shell les commandes suivante :

urpmi.removemedia -a
urpmi.addmedia --distrib --mirrorlist 'http://mirrors.mageia.org/api/mageia.7.$ARCH.list'
urpmi --replacefiles --auto-update --auto

Pour le premier, c’est gênant le noyau fourni me donne un beau écran noir avec ma NVIDIA, j’ai dû rester sur un noyau plus ancien de la cauldron, pas de soucis particulier ensuite.
Sur le X230, pas de soucis particulier, si ce n’est la petite modification de SDDM pour virer l’image de fond floue (mais quelle idée !), et remettre en place l’automontage qui a été bizarrement supprimé.
Sur le X200 ça était nettement plus compliqué, j’ai d’abord tenté une mise à jour depuis la 5.1 (soyons fou !), et comme je m’y attendais, ça n’a pas marché, l’installation a planté au milieu et je me suis retrouvé avec un système totalement instable, j’ai dû faire une réinstallation propre. J’aurais pu être pu tenter une mise à jour vers la 6.1, puis vers la 7, mais je ne suis pas sûr que j’aurais gagner plus de temps. Suite à la réinstallation, j’ai dû faire face curieusement à un tas de problèmes. Tout d’abord ce n’est pas SDDM qui est lancé au démarrage pour gérer l’écran de login mais lightdm, en plus je voyais la bannière de login furtivement puis un fond d’écran mageia et pas moyen de se loguer ! Retour en console pour réparer tout ça, virer lightdm, installer SDDM proprement à la place. Sinon KDE/Plasma est totalement cassé, mais c’est pas étonnant j’avais pas fait le ménage dans mon répertoire. Pour XFCE, il faut reconnaitre que ce n’est pas beau, au bout d’une vingtaine de minutes de configuration, on obtient enfin quelque chose de plus sympathique et utilisable. Je dois déplorer également que firefox ne veut pas de mon ancien profil et choisit de repartir d’une version vierge.

Screenshot de XFCE avec un fond xplanetFX et quelques conky

Sinon j’ai installé kdenlive 19.04.2 sur mon X230, j’ai dû adapter notamment la compilation d’OpenCV, la bibliothèque graphique spécialisée dans le traitement d’image temps réel, elle m’a donné du fil à retordre. J’ai rajouté notamment la prise en compte des GPU intel. Pour mon X200 j’ai installé le médiacenter kodi Leia 18.2, l’installation est bien plus simple que sous mageia 5.1. Du coup sur mon site funix j’ai mis à jour les pages correspondantes.

kdenlive 19.04

Le logiciel de montage vidéo kdenlive est sorti récemment dans sa version 19.04, c’est une évolution majeure car elle porte non seulement sur un gros nettoyage du code mais également sur des évolutions sensibles de fonctionnalités et d’ergonomie.

Les anglophones pourront trouver un résumé des modifications par ici, pour les autres voilà ce qu’il en retourne. Ainsi pour le code, pas moins de 60% de ligne de code ont été modifiés. Niveau ergonomie les évolutions portent essentiellement sur la timeline avec la possibilité de pouvoir gérer les images clé sans avoir à passer par les propriétés des transitions. Pour les fonctionnalités on peut maintenant enregistrer de l’audio sur une piste dédiée (génial pour les tutoriels), la fonction inverser une vidéo (revert) se retrouve maintenant dans la timeline et plus seulement dans les sources du projet. On peut cependant déplorer qu’il y ait eu également un nettoyage dans les effets, ceux qu’on pouvait trouver dans les versions antérieures ont été blacklistés et leur nombre s’est sensiblement réduit. En revanche l’effet de motion tracking est censé mieux fonctionner, pour en disposer il faut avoir compiler mlt avec opencv, j’attends encore de pouvoir le tester pour voir s’il y a une amélioration.

Pour la circonstance j’ai rédigé un tutoriel dédié à cette nouvelle version qu’on trouvera par on trouvera encore l’ancien tutoriel pour les versions 18.X et antérieure par ici. A venir un tutorial vidéo quand je trouverai un peu de temps, en attendant le tutorial vidéo portant sur la version 18.X.

Programmer une sauvegarde incrémentale régulière

Mine de rien le cumul des données partagées présentes sur mon serveur Dell PowerEdge T310 approche des 3 To, elles ont beau être installées sur un volume RAID 5, je reste inquiet aux conséquences de la perte de décennies de numérisation de mes données personnelles. Aussi je me suis penché sur un système annexe de sauvegarde incrémentale. L’idée est de faire une copie complète des données une fois, puis régulièrement une copie des seuls fichiers qui ont été modifiés, rajoutés et de supprimer les fichiers de la sauvegarde qui ont disparu des données d’origine. Pour cela j’ai acheté un disque externe de 4To USB qui est connecté par USB à mon serveur Dell.

Le but de la manœuvre est de sauvegarder tous les jours de manière incrémentale les données de /home et de mon répertoire /data à l’exclusion de certains fichiers et répertoires Je me suis largement inspiré du script qu’on peut trouver par ici que j’ai adapté à mes besoins.

Continuer la lecture de Programmer une sauvegarde incrémentale régulière

Passage à PHP7

La dernière version 5.2 WordPress, sur lequel tourne ce blog, impose maintenant une version de PHP au moins égale à 5.6.20 mais la version 7.X est fortement recommandée d’autant que les versions 5.X de PHP ne sont plus maintenues et supportées. On s’expose donc à des risques de vulnérabilités en restant avec une version 5.X. La migration devient donc quasi obligatoire, étant hébergé en mutualisé chez online il est assez facile de basculer en PHP7 comme on peut le voir ici. En revanche il est sans doute prudent de tester avant la compatibilité du site, pour wordpress il existe une extension qui s’appelle PHP Compatibility checker.

Cela donne quelque chose comme cela

Une fois que vous vous êtes rassuré, on peut basculer chez l’hébergeur en php 7.X, j’ai choisi de basculer en version 7.1. J’ai eu droit de mon côté à un beau message

Not Found

The requested URL /fast-cgi-nontexistent/index.php was not found on this server.

C’était sans compter la page citée plus haut qui indique qu’il faut mettre un

AddHandler ${php7} php

dans le .htaccess à la racine du site, et bien en fait ça ne marche pas ! J’ai un peu galéré pour trouver et pas mal tâtonné, voilà donc ce qui marche chez moi avec un hébergement mutualisé chez online.

RewriteEngine On
RewriteCond %{HTTP:HTTPS} !on
RewriteRule (.*) https://%{SERVER_NAME}/$1 [QSA,L,R=301]
<FilesMatch ^wp-config.php$>
 deny from all
</FilesMatch>
AddType application/x-httpd-php7-1 .php

Pour mémoire les premiers lignes Rewrite sont pour une connexion sécurisée HTTPS, la directive FilesMatch empêche d’accéder au fichier de configuration wp-config. C’est la dernière ligne qui permet de prendre en compte la version 7.1 de PHP.

Cependant j’ai mon extension de galeries photo NextCellent Gallery qui est un fork de la version 1.9.13 de NextGen Gallery qui n’a pas appréciée cette migration. C’est fonctionnel, mais esthétiquement moche avec la non prise en compte du fichier nggallery.css dans le thème Twenty Fourteen. Vu que le développement de NextCellent a l’air totalement stoppé depuis des années, je crains que je vais devoir passer à NextGen et ça risque de ne pas être immédiat et prendre du temps, je me garde sous le coude cette migration et je m’excuse du désagrément visuel. Je suis preneur également de toutes remarques et dysfonctionnements sur les sites du domaine hoarau.org que je n’aurai pas vu.

Passage à mageia 7 cauldron

J’ai voulu installer en compilant la dernière version 19.04 du logiciel de montage kdenlive car c’est une version majeure. 60% du code a été réécrit et elle apporte des grosses évolutions de fonctionnalités et d’ergonomie comme on peut le voir sur le site de kdenlive. Malheureusement ce n’est pas possible sous Mageia 6.1 qui a une version de KF5/plasma trop ancienne. Pour la circonstance je me suis donc résolu à faire une mise à jour vers la version en développement cauldron, future Mageia 7. Je ne suis pas un adepte des versions en développement, mais sans ce fait générateur, j’aurais patiemment attendu la sortie de la version finale.

Je n’ai pas fait une installation from scratch mais une mise à jour à partir de ma Mageia 6.1. Je n’ai pas forcément de très bons souvenirs des mises à jour surtout quand on tune sensiblement son système, j’ai retrouvé à plusieurs reprises un système totalement instable qu’il a fallu totalement réinstallé en partant de zéro, en conservant seulement les partitions de données. A vrai dire à ma grande surprise la mise à jour s’est globalement très bien passée, moyennant quelques reboots réguliers, je me suis retrouvé avec une distribution parfaitement stable et fonctionnelle avec toute mes configurations système perso (client d’authentification LDAP, NFS, etc.). Quasiment rien à retoucher, magnifique !

Je dois juste déplorer 2, 3 détails, parce que sinon ça ne serait pas rigolo, le gestionnaire de connexion SDDM m’affiche mon fond d’écran flou, c’est moche ! Pour ceux qui veulent retrouver une belle image, il faut aller dans le fichier /usr/share/sddm/themes/breeze/Main.qml et au niveau de WallpaperFader au lieu de

visible: config.type == “image”

on met

visible: false

et voilà le résultat

sinon j’ai un popup pénible à chaque login avec rfkill pour les utilisateurs de blueman (pour piloter le bluetooth) qui me demande un mot de passe. Pour le supprimer il faut créer une règle polkit /usr/share/polkit-1/rules.d/blueman.rules qui contient

/* Allow users in wheel group to use blueman feature requiring root without authentication */
polkit.addRule(function(action, subject) {
    if ((action.id == "org.blueman.network.setup" ||
         action.id == "org.blueman.dhcp.client" ||
         action.id == "org.blueman.rfkill.setstate" ||
         action.id == "org.blueman.pppd.pppconnect") &&
        subject.isInGroup("wheel")) {
        return polkit.Result.YES;
    }
});

Et rajouter les utilisateurs concernés dans le groupe wheel. Sinon sous XFCE j’ai perdu la transparence de mon tableau de bord, j’ai galéré pour la remettre en place, le curseur pour régler la transparence ayant disparu dans la configuration. En fait c’est devenu bien plus compliqué (voir par là https://docs.xfce.org/xfce/xfce4-panel/preferences/transparent-panel ) comment faire simple…

cela donne un bureau qui ressemble à cela avec un dock cairo en bas.

Il me reste à remettre à jour mes fichiers conky qui agrémentent mon bureau, ils sont tous cassés avec la mise à jour de conky et bien sûr installer kdenlive, cela fera l’objet d’un prochain post.

Modifier le genre des films dans kodi

Pendant longtemps j’ai utilisé l’extension WiMM qui permettait de changer le genre des films pour le mediacenter kodi.

C’est assez pratique car les scrapers qui récupèrent automatiquement les informations d’un film sur internet classent parfois certains films de manière assez fantaisiste, ainsi le dessin animé “la belle et la bête” va se retrouver dans le genre Fantastique alors que je préfère qu’il soit seulement dans le genre Animation. Aussi il est souvent utile d’avoir à modifier le genre pour pouvoir choisir plus aisément ensuite les films en les sélectionnant par le genre. Or depuis le passage à la version 18 Leia l’extension WiMM ne marche plus, il s’avère qu’elle n’est plus maintenue, son fork plus récent WiMM-ng ne l’est pas davantage. J’ai bien essayé de modifier le code de ce dernier pour le rendre compatible mais sans succès.

J’ai donc regardé ce qu’il pouvait exister comme alternative. A vrai dire, il existe des solutions si vous utilisez kodi sans l’utilisation d’une base de données partagée contenant les informations des films, c’est à dire que kodi se base sur les fichiers .nfo qui décrivent le film et sur des fichiers images fanart et poster contenant l’affiche du film. La première alternative s’appelle MediaElch.

En plus de pouvoir modifier le genre, vous pouvez à peu près tout modifier, accessoirement MediaElch peut être utilisé comme lecteur multimedia comme alternative à kodi.

Autre alternative, toujours dans le cas de l’utilisation de fichiers .nfo, tinyMediaManager qui est basé sur java.

Il permet également de tout modifier, en revanche les outils de recherche sont plus limités que MediaElch.

Maintenant si vous utilisez une base de données, les choses se gâtent, à vrai dire je n’ai pas trouvé d’alternative simple à WiMM. J’en suis pour l’instant réduit à modifier directement dans la base de données avec des requêtes SQL avec phpMyAdmin.

C’est sûr qu’on a fait mieux niveau convivialité mais c’est toujours mieux que de taper des requêtes SQL dans un shell. Avec phpMyAdmin on peut facilement sélectionner tous les films d’un genre particulier, et éditer ensuite les films qui ne sont pas dans la bonne catégorie en modifiant le genre.

J’en ai profité du coup pour mettre à jour la page kodi sur le site funix en détaillant l’installation des logiciels cités plus haut et leur utilisation.

Bureau linux avec xfce

J’ai modifié légèrement mon bureau sous l’environnement graphique XFCE sur mon thinkpad x230, en y faisant tourner xplanetFX qui permet d’avoir la planète en fond d’écran avec une image en temps réel de la progression des nuages et de la limite jour/nuit et quelques conkys de visualisation de paramètres système et autres. J’utilise le dock cairo, le gestionnaire de fenêtres est xosemite-xfce, les icônes Yosemite-icons et le thème général du bureau xosemite-gtk, le tout donne un petit look MacOS, on pourra les trouver (et de nombreux autres thèmes pour XFCE) par . Voilà ce que ça donne

Pour xplanetFX attention il faut récupérer l’archive .deb et l’installer avec alien pour une architecture rpm, car l’archive rpm fournie est incomplète. L’installation est assez simple, il faut lancer xplanetFX –gui.

Continuer la lecture de Bureau linux avec xfce

justifier des paragraphes avec wordpress

Depuis la mise en place de l’éditeur Gutenberg dans les versions récentes de WordPress, il n’est plus possible de justifier du texte. Dans les versions précédentes il y avait un bouton, puis le dit bouton a disparu mais on pouvait encore justifier du texte avec la combinaison de touche ALT+SHIFT+J. Maintenant avec l’éditeur Gutenberg, il n’est plus possible de justifier. Les raisons évoquées sont liées à une histoire de lisibilité et visiblement certains développeurs font de la suppression du justifié une vraie croisade, il y a quoi lire les échanges ici.

En fait il y a un moyen simple de remettre en place le mode justifié, il faut aller dans les pages de configuration du thème wordress que vous avez choisi puis dans CSS additionnel il faut rajouter :

.post { text-align: justify; }

et systématiquement tous les posts seront en justifié, that’s all folks !