Ideenquelle

Posts

Tempor est exercitation ad qui pariatur quis adipisicing aliquip nisi ea consequat ipsum occaecat. Nostrud consequat ullamco laboris fugiat esse esse adipisicing velit laborum ipsum incididunt ut enim. Dolor pariatur nulla quis fugiat dolore excepteur. Aliquip ad quis aliqua enim do consequat.

Widefrog

Le programme ne semble plus être suivi par son développeur. La base du programme est là. Il ne reste plus qu’à mettre à jour les services à utiliser. Ceci dit, c’est bien écrit comme programme, notamment pour son design pattern.

Generateur Blog

Ce blog est propulsé par hugo.

La version précédente utilisait hexo. C’était bien et fonctionnel. J’avais un goût de trop peu. Je sais que je voulais un générateur statique de site web.

Bref, j’ai repéré deux outils : hugo et astro. Aucun des deux ne cochent toutes les cases. J’ai finalement opté pour hugo car il avait un côté moins lourd. Par contre, astro a une documentation du tonnerre de façon générale et nettement mieux organisée que celle de hugo.

Authentification sur un serveur

J’ai trouvé deux possibilités :

  1. A l’entrée du server Web
  1. A l’entrée des applications

Pas encore super clair dans ma tête. Car il me semble qu’il faille est préférable encore en plus avoir un OIDC (OpenID Connect). Cela peut se faire avec Pocket ID OAuth.

Magasins de bois

Pas évident detrouver des magasins quand on ne les connait pas. Donc une petite liste sans prétention, accessible aux particuliers

Haie mitoyenne

Que mettre comment arbuste pour une haie mitoyenne qui :

La question des haies est revenue sur la table depuis quelques années au travers de grands plans pour en replanter. Il existe donc des guides établis pour la plupart des régions.

Personellement, j’ai gardé les espèces suivantes :

Reste à voir quelle coupe appliquée. L’idée est, a priori, d’avoir une haie mitoyenne. Et bon, je présume que mon voisin appréciera d’avoir une haie taillée (moi, pas forcément).

QR Code

Je cherche une solution pour générer des QR-Code facilement, et idéalement pour pouvoir faire des paiements plus simplement. En Belgique, il existe une solution via PayConiq/Bancontact Pay, sauf qu’elle est réservée aux profesionnels (et que c’est payant.

J’avais déjà cherché il y a quelques mois. J’ai refait une recherche et bim ! bam ! j’ai trouvé un moyen

Pour générer un QR-Code de paiement, ifaut:

BCD
001
1
SCT
BIC_BANQUE
NOM_DESTINATAIRE
IBAN_COMPTE
EUR20
COMMUNICATION

En sachant que le “EUR20” correspondant à un montant de 20 EUR et qu’il est possible de laisser vide.

Borg : How-to

Le post est construit au fur et à mesure. Je développerai essentiellement dans le cadre familliale.

Tout d’abord, un bon backup devrait suivre :

J’aimerai rajouter la notion de “crypté” mais cela peut poser des soucis par rapport à la facilité d’utilisation. Malgré une documentation même poussée, l’utilisation (et surtout la récupération) peut s’avérer difficile. En effet, si toute la documentation suppose l’utilisation d’une console/ligne de commande, il faut se souvenir que la plupart des personnes n’aiment pas cela. Même s’ils se lancent dans la ligne de commande, les documentations oublient très régulièrement que tout le monde est loin de maitriser les outils. Je suis moi-même confronté à cette problématique (je comprends et utilise la ligne de commande mais ne comprends pas les explications données dans un README car l’auteur suppose que je connaisse l’utilisation d’un outil (npm/uv/… pour en citer certains)).

Enfin ssh

Et voilà, enfin, l’authentification ssh partout uniquement via clés. En soi, cela n’a pas pris tant de temps que cela. Il faut juste le bon guide et appliquer.

Celui de DigitalOcean est assez bien fait.

Chaque jour, je peux

Chaque jour, je peux choisir de modifier mon blog. C’est assez amusant. Demain, il ne sera peut-être plus coloré. Après-demain, il prendre une teinte noire.

Bref, je suis chez moi. Je teste. J’expérimente. J’apprivoise.

Couvres-sols à l'ombre

En remplacement du gazon traditionnel, je cherche un couvre-sol qui supporte le piétinement (voir même le passage de la voiture).

J’ai retenu les espèces suivantes :

Il en existe d’autres. Dans mes critères :

Accéder à un disque dur sans Samba depuis Windows

Je souhaitais accéder à un disque situé sur un serveur Debian depuis un PC sous Windows. Vu que je ne souhaite pas prévoir un accès dans le temps, j’ai écarté la solution Samba.

J’avais une solution entre deux ordinateurs sous Debian avec sshfs. J’aurais pu faire de même avec Windows. Mais … il y a toujours un mais (sinon je n’écrirai pas !) les limitations imposées par le sysadmin font que je ne peux pas installer les applications pour utiliser SSHFS Pour mémoire : il faut installer WinFsp et SSHFS-Win

Compression de vidéos via ffmpeg

Tout d’abord, les vidéos dans le cadre d’archive familliale, je n’y crois pas. Nous sommes bombardés d’activités en tous genres que nous n’avons pas le temps de regarder des photos (déjà les sauvegarder et les trier sont parfois des missions impossibles).

Dans un soucis de garder quand même quelques archives familliales, je regarde pour faire un backup selon la règle 3-2-1. Cela risque de tourner à 3-3-1 mais c’est une autre discussion. Pour minimiser l’espace de disque dur et suite à un shaarli, j’ai passé la collection de vidéos à la moulinette ffmpeg pour réduire les vidéos et avoir un seul codec (c’est un effet collatéral).

Monter un disque via WebDav

  1. Créer un dossier où sera monté le disque : sudo mkdir /mnt/dav
  2. Installer davfs2 sudo apt install davfs2
  3. (re-)Configurer le paquet pour autoriser son utilisation par des utilisateurs moins privilégiés : sudo dpkg-reconfigure davfs2
  4. Editer ~/.davfs2/secrets pour ajouter les identifiants au disque via WebDAV :
  1. Ajouter une ligne dans /etc/fstab selon le modèle suivant : https://<WebDAV URI> /mnt/dav/ davfs user,noauto,file_mode=600,dir_mode=700 0 1
  2. Relancer systemd systemctl daemon-reload
  3. Ajouter son utilisateur au groupe davfs2 sudo usermod -a -G davfs2 username (Je pense même que sudo usermod -a -G davfs2 $USER devrait fonctionner si on veut s’ajouter soi-même).
  4. Déconnecter et (se) relogger (pour que l’ajout au groupe soit effectif).
  5. C’est tout ! Il est possible d’utiliser mount /mnt/dav/ sans soucis.

Pratique si vous souhaitez accéder (temporairement) à votre kDrive d’Infomaniak.

Fournisseur aluminium

On m’a renseigné deux fournisseurs dans les alentours de Bruxelles pour de l’aluminium Aludan : Ils font plus que de la simple vente (découpe, assemblage, …). hobby alu : Ils font juste de la vente.

Pas trop loin, pas juste à côté. Il n’y a plus qu’à trouver un fournisseur d’acier, s’équiper et … s’y mettre.

today

Aujourd’hui, le modèle de père pour nos enfants est encore mal défini et illustré. Oui, il y a milles et une façon d’être père.

Même si quelques (timides ?) nouveaux modèles sont à l’écran, le changement se fera lentement.

Sanitaire

Parce que je cherche toujours des adresses pour trouver ce qu’il me faut :

today

Envie de rien, envie de tout. Mais surtout de rien.

L'homme et l'oiseau

Il s’agit du magazine édité par la Ligue Royale Belge pour la Protection des Oiseaux (LRBPO). J’ai reçu un exemplaire lors d’un achat chez eux.

Je ne suis pas assez fan ni convaincu pour m’abonner. Par contre !

Par contre, c’est agréable à lire. Il y a de l’espace, du vide. Les photos sont là pour être vues (en même temps, quand on parle animaux, il vaut mieux avoir de jolies photos). Le texte n’est pas spécialement aéré. La typographie est assez commune.

Modification hexo

Je viens d’effectuer quelques changements sur le blog, propulsé par hexo. J’avoue que cela m’a pris un peu la tête.

Nouveau layout

Par défaut, hexo prévoit trois layouts.

Il est possible de prévoir de nouveaux layouts. Pour cela, il faut créer un fichier .md dans le dossier /scaffolds. Pour faire simple, un copier/coller de post.md vers link.md permet d’avoir un bon départ :

widefrog

widefrog est un programme permettant de télécharger des vidéos sur des plateformes de streaming. Intrinsèquement, il ne s’agit pas de piratage car widefrog n’outrepasse pas les accès demandés par les services. Autrement dit, si vous souhaitez récupérer des vidéos sur auvio.be (lié à la télévision belge francophone), vous devez avoir un compte sur le site et avoir une IP belge. widefrog permet donc juste de récupérer les vidéos facilement. widefrog est diffusé sur le forum de videohelp.

NativeMindExtension, LLM maison

NativeMind est une extension pour Chrome & Firefox qui permet d’utiliser Ollama dans son navigateur. L’avantage : tout est dans le navigateur. Rien ne passe par le cloud.

Naturellement, la rapidité dépend du modèle de Ollama qui est pris et de votre machine.

On n’a rien sans rien.

goaway, alternative à PiHole

Juste pour information : il existe une alternative à PiHole : goaway. C’est écrit en Go, récent et graphiquement très similaire à PiHole (du moins la page de garde).

Deployer hexo en FTP

J’utilise le moteur hexo pour mon blog statique. Je n’ai pas d’avis sur le côté NPM (si ce n’est que c’est encore un truc à maintenir à jour). Je ne l’utilise pas ailleurs.

hexo propose une ligne de commande pour déployer le blog sur Git, Heroku, Netlify, via Rsync, … et FTP. Mon hébergeur propose cette solution (oui, c’est un module de base que j’ai actuellement).

La documention présente comment faire. Les données doivent bien être rajoutées dans votre _config.yml. A priori, c’est tout en bas). Vous pouvez après générer et déployer en une commande : hexo generate --deploy ou hexo deploy --generate. Si vous êtes un gros flemmard (comme moi), vous pouvez également rajouter une ligne dans votre crontab (pour rappel, crontab -e pour le modifier):

HTTPS en domaine local

Sécurité un jour, sécurité toujours ! Enfin, c’est ce que j’ai essayé de mettre en place. Mon navigateur est configuré par défaut pour forcer le mode HTTPS, y compris sur mes domaines locaux.

Sauf que je n’ai pas de certificat sur mon serveur personnel.

Go ! pour en installer un. Le résultat qui apparait est d’utiliser Let’s encrypt soit directement soit via certbot. Cela semble bien fonctionner … pour autant que vous nommiez vos domaines locaux avec des extensions existantes (.com, .eu, …).

Monter un disque dur externe automatiquement

  1. Installer les paquets nécessaires
sudo apt update
sudo apt install exfatprogs
  1. Identifier le disque dur externe
lsblk

La commande va vous renseigner tous les devices et leur correspondance dans le système. Imaginons pour la suite que ce soit /dev/sdb1

  1. Créer le dossier où le disque dur sera accessible Généralement, cela se fait dans un dossier dans /mnt ou dans /mediaavec la commande mkdir (il faut probablement rajouter un petit sudo car de base, vous n’avez pas accès en écriture).
  2. Trouver le UUID de votre disque : sudo blkid /dev/sdb1 vous renvoie une sortie similaire à : /dev/sdb1/ : LABEL="TOSHIBA EXT" BLOCK_SIZE="512" UUID="62E69DEDE69DC1A9" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="1473b688-909f-4c28-a09f-07146df2ca87" Vous aurez besoin du UUID pour l’étape suivante.
  3. Préparer le montage automatique via /etc/fstab/ sudo nano /etc/ftsab Ajouter la ligne suivante (en adaptant au besoin les paramètres trouvés au point précédent : UUID=62E69DEDE69DC1A9 /mnt/mondisquedur ntfs defaults,rw,uid=1000,gid=1000,umask=0002 0 0
  4. Tester le processus avec sudo mount -a. Il se peut qu’il faille relancer systemctl avec sudo systemctl reload-daemon et puis tester le processus.

Source

Update automatique

Comment automatiser les mises à jour sans (trop) se prendre la tête ?

  1. S’en passer et faire comme si de rien n’était : non, ce n’est pas une possibilité.
  2. Mettre en place un crontab : oui mais on peut faire mieux
  3. Utiliser un paquet prévu pour cela : unattended-upgrades

Allons-y pour la dernière possibilité. Commençons par l’installer : sudo apt-get install unattended-upgrades. Configurons le paquet : sudo dpkg-reconfigure unattended-upgrades. Cochez “Yes” et confirmez.

nginx ou nginx Proxy Manager

J’ai tenté d’installer nginx. J’y suis bien arrivé. C’est simple et facile. ** A condition que votre port 80/443 ne soit pas déjà utilisé par un autre service**

Sauf que … je souhaitais une interface graphique (parce que, même si je suis Geek, je me connais : je ne le suis que par phase).

Donc j’ai repéré nginx Proxy Manager (NPM de son petit nom à ne pas confondre avec NPM, le gestionnaire de paquets Node.js). Pour cela, il faut Docker. La méthode proposée est la suivante :

qBittorent

  1. Installer qBittorent Il existe deux versions : une version GUI local (qbittorrent) et une version Web GUI (qbittorrent-nox). Pour installer, il faut invoquer sudo apt-get install qbittorrent ou sudo apt-get qbittorrent-nox

  2. Lancer qBittorrent Cela se fait en utilisant une des commandes : qbittorent ou qbittorrent-nox

  3. Lancement de qBittorent à chaque redémarrage Pour permettre le lancement de qBittorent à chaque (re-)démarrage du système, il faut le renseigner comme un service.

    1. Dans les explications que j’ai suivies, il préconise de créer un nouvel utilisateur. J’avoue ne pas avoir compris pourquoi. sudo useradd -r -m qbittorrent L’argument -r est utilisé pour signaler que nous voulons un utilisateur système. L’argument -m est utilisé pour créer son répertoire parent/propre.
    2. Il faut rajouter l’utilisateur au groupe qbittorrent juste créé : sudo usermod -a -g qbittorrent $USER L’argument -a est utilisé pour ajouter un attribut à l’utilisateur. L’argument -G est utilisé pour signaler que c’est sur un groupe que l’on travaille.
    3. Maintenant, nous pouvons créer le service en créant le fichier suivant /etc/systemd/system/qbittorrent.service (il faut le créer en tant que sudo) :
Description=qBittorrent
After=network.target

[Service]
Type=forking
User=qbittorrent
Group=qbittorrent
UMask=002
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target
Personnellement, j'ai d'abord lancé `qbittorrent-nox` et configuré tout dans l'interface via mon utilisateur. J'ai donc modifié l'user pour mettre le mien.

1. Il faut démarrer le service nouvellement créé : `sudo systemctl start qbittorrent`
1. Il est possible de vérifier le status du service : `sudo systemctl status qbittorrent`
1. Pour permettre que le service s'active à chaque démarrage, il faut activer le service : `sudo systemctl enable qbittorrent`
  1. Modifier le port pour accéder Si besoin, modifier le port auquel accéder à GUI Web (utile si vous avez de multiples services). Personnellement, je l’ai mis sur 49152.

Docker

Pourquoi Docker ?

Pourquoi pas Docker ?

  1. Installation de Docker curl -sSL https://get.docker.com | sh sudo usermod -aG docker $USER Pour avoir les privilèges, il faut se reconnecter/redémarrer la session SSH.

Serveur DLNA

Nous avons une vieille télévision : elle date de 2010. Elle est smart. Sauf que … Avec le temps, les applications smart ont disparu, faute de support des éditeurs de logiciels (RTBF, Arte, …).

Elle possède toute de même une fonctionnalité qui est native : DLNA. Il s’agit de lire des données (vidéo, audio, photo) sur le réseau. Pour cela, il faut un serveur qui émet les données. Chez nous, notre box Internet permet cela nativement pour les supports USB qu’on y insère. Pas pratique si on souhaite modifier régulièrement ce que l’on regarde.

Pi-Hole

PiHole permet de filtrer les requetes depuis le réseau vers l’extérieur. Le routeur Internet ne sert plus qu’à se connecter au réseau. Tout ce qui est DNS (= savoir où se trouve Google.com sur le réseau) et l’attribution des adresses IP sur le réseau (=DHCP) est géré par Pi-Hole.

  1. Installation Le site de Pi-Hole renseigne la méthode pour installer Pi-Hole. https://docs.pi-hole.net/main/basic-install/ donne la commande suivant : curl -sSL https://install.pi-hole.net | bash à lancer dans la ligne de commande en tant que sudo.

ESP32 & Logging

Cela fait un petit temps que j’aimerai mieux logger toute une série d’informations sortants de mes programmes. Je n’ai pas encore passé le cap en Python. Cela va venir, j’en suis certain.

Pour l’ESP32, j’ai malgré moi passé le cap en étudiant le code de

Faire tourner une pompe 3V

J’ai trouvé deux petites pompes à eau alimentable en 3V3. La première ne fonctionne pas. Dommage. J’attends le retour du vendeur. La deuxième fonctionne parfaitement.

J’ai mis un peu de temps à trouver le bon circuit. La plupart des schéma partent du principe d’une alimentation externe en 12V étant donné que la pompe tourne en 12V également. Personnellement, je n’ai pas besoin d’une grosse pompe dans mon cas. Je veux donc trouver un circuit qui fonctionne en 3V3. Le soucis est que les GPIO ne fournissent moins de 100 mA. Or une pompe cela nécessite plus.

LED clignotante

J’ai parcouru différents tutoriaux pour débutants pour l’Arduino (ou l’ESP32). Généralement, nous y retrouvons une explication théorique sur l’électricité (les électrons, le sens “naturel” et “conventionel”, la loi d’Ohm, … ) puis des montages simples : une LED, un bouton, …

Globalement, c’est assez similaire.

Toutefois, j’ai bien aimé celui de ESP32I/O où les exemples sont un peu plus nombreux. Il propose notament de faire clignoter une LED tout en faisant tourner le script pour d’autres fonctions (voir LED Blink without delay)

Où acheter ?

Où acheter son matériel ?

Etant belge, je regarde sur les sites BE, FR, NL et internationaux. Je ne les ai pas tous testés (loin de là).

Locoduino recensait d’autres sites en 2014. Certains n’existent plus; d’autres ont évolués. Á vérifier.

Idées de projets

Vous avez un Raspberry ou Arduino/ESP32 ? Vous manquez d’idée ? Vous avez déjà réalisé tous vos projets personnels et aimé le défi ?

Voici mes idées de projets :

D’autres projets sans que ce soit spécifiques à un Raspberry/Arduino :

Installation Raspberry Pi

Et voilà, c’est reparti. Après une petite erreur de manipulation sur des droits de fichiers (genre su et sudo), me revoici derrière le clavier.

À mon programme:

e-Paper Waveshare Pico

Premier projet : faire tourner un e-paper. Pourquoi ? Parce que cela a l’air. C’est assez bête; je l’avoue.

Ni une, ni deux, j’achète le modèle suivant : Pico e-Paper 2.66B. Il arrive assez vite. Toutefois, je le laisse de côté car d’autres activités m’occupent.

Le temps passe et quelques semaines mois après, je m’y intéresse enfin. Quel malheur ! C’est une version Pico (et non une version simple). Pas de chance car je n’ai pas de Pico. Est-ce qu’il fonctionne ? Après moultes hésitations, je décide de le connecter en suivant le tableau de connexion repris sur le wiki.

Post 3

Occaecat aliqua consequat laborum ut ex aute aliqua culpa quis irure esse magna dolore quis. Proident fugiat labore eu laboris officia Lorem enim. Ipsum occaecat cillum ut tempor id sint aliqua incididunt nisi incididunt reprehenderit. Voluptate ad minim sint est aute aliquip esse occaecat tempor officia qui sunt. Aute ex ipsum id ut in est velit est laborum incididunt. Aliqua qui id do esse sunt eiusmod id deserunt eu nostrud aute sit ipsum. Deserunt esse cillum Lorem non magna adipisicing mollit amet consequat.

Post 2

Anim eiusmod irure incididunt sint cupidatat. Incididunt irure irure irure nisi ipsum do ut quis fugiat consectetur proident cupidatat incididunt cillum. Dolore voluptate occaecat qui mollit laborum ullamco et. Ipsum laboris officia anim laboris culpa eiusmod ex magna ex cupidatat anim ipsum aute. Mollit aliquip occaecat qui sunt velit ut cupidatat reprehenderit enim sunt laborum. Velit veniam in officia nulla adipisicing ut duis officia.

Exercitation voluptate irure in irure tempor mollit Lorem nostrud ad officia. Velit id fugiat occaecat do tempor. Sit officia Lorem aliquip eu deserunt consectetur. Aute proident deserunt in nulla aliquip dolore ipsum Lorem ut cupidatat consectetur sit sint laborum. Esse cupidatat sit sint sunt tempor exercitation deserunt. Labore dolor duis laborum est do nisi ut veniam dolor et nostrud nostrud.

Post 1

Tempor proident minim aliquip reprehenderit dolor et ad anim Lorem duis sint eiusmod. Labore ut ea duis dolor. Incididunt consectetur proident qui occaecat incididunt do nisi Lorem. Tempor do laborum elit laboris excepteur eiusmod do. Eiusmod nisi excepteur ut amet pariatur adipisicing Lorem.

Occaecat nulla excepteur dolore excepteur duis eiusmod ullamco officia anim in voluptate ea occaecat officia. Cillum sint esse velit ea officia minim fugiat. Elit ea esse id aliquip pariatur cupidatat id duis minim incididunt ea ea. Anim ut duis sunt nisi. Culpa cillum sit voluptate voluptate eiusmod dolor. Enim nisi Lorem ipsum irure est excepteur voluptate eu in enim nisi. Nostrud ipsum Lorem anim sint labore consequat do.