Archives de catégorie : Informatique

chtioblogue is dead

Finalement chtioblogue s’arrête, l’arrêt des pages persos orange lui a été fatal. Il n’aura finalement quitté Orange qu’un mois après mon départ à la retraite. C’est une page du web en France qui se tourne 🙂 quand Ajax n’était pas encore Ajax mais les premiers balbutiements de xmlhttprequest et que json n’était pas encore un standard.

Le temps béni des newsgroup où les passionnés apprenaient en commun les bases du développement web et s’échangeaient des trucs, des expérimentations, le temps d’IE4 🙂 et d’autres dinosaures.

Donc sur ma feuille de root 🙂 il va y avoir le nettoyage de mon site, je ne pense plus que quiconque n’ait besoin d’utiliser les SSI ou les applets Java. Même PHP commence à être une désuétude.

Le temps est venu à une séparation en deux mondes la partie gestion des cloud et des chaînes d’intégration continue qui sont d’une complexité qui croît, et la partie développement applicatif qui se simplifie, même si pour moi le lowcode n’est pas encore tout à fait là.

Pour les besoins du boulot j’avais fait un kit de maquetage à partir de jtable.org qui permettait de créer des sites aussi complexe qu’un CRM sur le principe description des tables en json pour l’affichage et pour le reste utilisation des Views, Proc et Trigger de mysql .. l’identité de l’utilisateur étant propagée dans la base mysql. Entre les deux juste un peu de glue php pour faire la liaison avant le serveur web. Je pense que je n’étais pas trop loin de la vérité. Là je commence à m’intéresser à GraphQL et Dgraph pour voir si on ne pourrait pas aller plus loin dans la simplification du principe, mais honnêtement c’est assez hard à ingurgiter.

Molotov sur Linux (Debian 11) ça marche très bien

Et oui, sur mon vieil Acer j’ai installé Molotov par l’appimage fourni sur le site. Et je dois dire que ça fonctionne mieux qu’avec mon windows 10. Plus rapide, plus stable et meilleur qualité d’image.

Le seul bémol c’est qu’il faut réussir à ne pas être interrompu par xscrennsaver.

Donc j’ai rajouter un petit heartbeat simulant régulièrement la frappe au clavier.  Pour l’instant il n’est pas très beau et je veux en changer un peu le mode de fonctionnement ne serait-ce que pour le fun. Mais là je viens de faire un visionnage pendant une heure, nickel, un plaisir.

Dès que j’arriverai à un résultat sympa je le rajouterai à ce post.

Problème AHCI avec carte PCIe ASM1061 et Debian11

Lors du passage en Debian11 et donc en Kernel 5 j’ai rencontré un problème de non reconnaissance de mes disques durs connectés sur la carte PCIe, avec des temps de boot très longs.

En faisant dmesg j’avais pu déduire que c’était à l’inscription du module ahci que se déclenchait l’erreur, le kernel n’arrivait pas à calibrer les disques et donc à les reconnaîtres.Après avoir jouer avec les paramètre de libata et de libahci et sans succès, j’ai constaté que dans dmesg le module AHCI prenait des niveaux d’interuption qui me semblaient un peu élevés par rapport à la plage d’interruptions fournie par le bios.

Cette constatation m’a amené à me dire que le problème était peut être de ce côté et en cherchant sur le Net je suis tombé sur des articles citant des problèmes avec d’autres cartes Sata PCIe, sans aucun rapport avec la mienne. Donc j’ai tenté le paramètre noapic qui m’a gentiment planté puis le paramètre pci=nomsi. et ça a fait l’affaire.

Ce paramètre désactive un mode avancé de gestion des interruptions qui est probablement mal reconnu soit de ma carte PCIe soit par l’Apic de mon PC.

un lien citant la solution : https://forum.ubuntu-fr.org/viewtopic.php?id=1638921 ou https://askubuntu.com/questions/1104219/what-does-pci-noaer-or-pci-nomsi-mean.

Ce qui confirme qu’il ne faut jamais baisser les bras, si on ne comprend pas aujourd’hui on comprendra plus tard.

connexion simplifiée d’un casque audio bluetooth sur Debian 11

On trouve beaucoup de documentation sur la connexion bluetooth d’un casque sur le web mais c’est assez touffu et si vous essayer d’appliquer toutes les recettes et bien ça ne marche pas.
Après pas mal de manip j’ai fini âr désinstaller tout ce que j’avais tenté et je suis parti du plus simple :

 sudo apt install blueman bluez-firmware

Et ça suffit 🙂

Et j’admide de plus en plus ma debian avec lxqt sur mon vieux PC c’est propre net et je peux regarder Molotov dessus (qui d’ailleurs fonctione mieux que sous windows et notamment avec un son et un volume de meilleur qualité). Prochaine étape voir comment éviter que xsceensaver n’interrompe le visionnage.

Comment j’ai drastiquement réduit le temps de réponse d’un count(*) sur une View Mysql

Après des années à ne pas comprendre pourquoi le count(*) était aussi long sur ma base à partir du moment où je la comptais à partir d’une View, j’ai drastiquement accéléré la requête. Quand je dis drastiquement je suis passé d’une dizaine de seconde à du quasi instantané et la consommation mémoire de la base a chu. L’analyse me montrait que le count(*) de la table principale de la view se faisait sur l’index alors que le count(*) sur la view déclenchait un full scan.

Dans un premier temps j’ai réécrit la view pour passer de jointures à gauche en étoile à des jointures en cascade, au passage un jointure à gauche est devenu une jointure normale. Cette modification améliorait un chouia le temps de réponse mais pas de manière transcendante.

Puis je suis tombé sur un article qui expliquant que l’opimiseur Innodb lors d’un count(*) n’utilisait pas le primary index, la répartition de celui-ci n’étant pas optimal, s’il y a un secondary index c’est celui-ci qui est utilisé sinon l’optimiseur cherche à déterminer quelle est la meilleur colonne pour le count(*).

Je n’y croyais pas mais effectivement le rajout d’un index « qui ne sert à rien mais sur une colonne petite » (dans mon cas le code postal) a suffit pour obtenir un temps de réponse canon pour le count(*) sur ma table de plus de 2 millions d’enregistrement.

Un grand Merci à Aaron Francis pour son éclairant article Is COUNT(*) slow in MySQL?

Gdrive c’est sympa ….quand ça marche

J’utilise Google Drive pour partager des vidéo d’une caméra. Au début ça fonctionnait super, pas de soucis. Mais peu à peu j’ai eu de plus en plus souvent le message « impossible de lire la vidéo ». et toutes les manip que Google propose consiste à supprimer le compte ou le cache sur l’appareil. Mais lorsque tous les appareils sont concernés ?

Ca me rappelle un strip de Dilbert https://dilbert.com/strip/2019-12-10

Et bien c’est que le problème est en amont. A noté que lors des téléchargement il faut parfois s’y prendre à plusieurs fois et qu’une fois la video téléchargés on peut effectivement la visionner. Donc le problème est bien dans Google Drive probablement des saturations soit réseau soit disque. Donc 15Go gratuit mais ça ne donne pas l’envie de payer pour plus.

 

Petit complément sur mon mobile j’ai ajouter VLC et sur Drive j’utilise la fonction ouvrir avec et là je peux lire la vidéo. Donc le pb est bien dans les applications google drive et peut être dans les traitements effectués par google au moment du dépôt des video. Le problème semble m’avoir touché le 19 décembre au matin.

mise à jour du 11 janvier.

Le problème de visualisation des vidéos semble corrigé .. mais maintenant c’est le délais d’affichage sur le Drive des fichiers transmis qui est long très long trop long. Et encore plus long sur les ressources partagées. il faut des heures voir des demi-journées pour retrouver les fichiers déposés.

Cron, sssmtp, Orange et Gmail

J’avais remarqué que les mails de cron émis par ssmtp vers mon compte gmail ne fonctionnait plus. Plus exactement les mails partaient sans anomalies mais n’arrivaient jamais. Sur mon VPS je suis passé à Exim et là après le bon réglage des SPF c’est nickel.

Dans le cadre de l’installation d’un raspberry sur un clé 4g il fallait oublier la configuration du SPF et revenir à une solution plus légère. Sur le net il y a pas mal de documentation concernant cette configuration mais toutes ne fonctionnent pour ce qui est du relais des messages du cron. La clé pour avoir un bon entête consiste au bon positionnement de Full Name de root, du revaliases de ssmtp et du passage à No de FromLineOvewwrite dans ssmtp.conf.

ce qui donne chez moi

pi@raspicam:~ $ more /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=monmail@domain.tld
 
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.orange.fr:465
useTLS=YES
authUSER=lemail@orange.fr
authPASS=lepass
 
# Where will the mail seem to come from?
rewriteDomain=orannge.fr
 
# The full hostname
hostname=raspicam
 
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=NO
 
pi@raspicam:~ $ more /etc/ssmtp/revaliases
# sSMTP aliases
#
# Format:       local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:monmail@orange.fr:smtp.orange.fr:465
pi:monmail@domain.tld:smtp.orange.fr:465
 
pi@raspicam:~ $ grep root /etc/passwd
root:x:0:0:raspicam,,,:/root:/bin/bash

la modification de du full name se fait pas sudo chfn -f ‘le pseudo’ root

Un peu de downtime (passage de stretch en buster)

Et oui le passage dans la nouvelle version stable de Debian ne s’est pas fait sans douleur 🙂

Mais elle me permettra de soumettre à fail2ban le flux ipv6.

La source du problème a été les modification de lighttpd notamment le changement de noms des helper en perl. Le deuxième problème était lié à des nouveau contrôles dans le lighttpd.conf livré.

Les réglages de la section parseopts sont visiblement trop contaignants et sont incompatible avec l’url rewiting que j’utilise.

Serveur d’impression raspberry pi zeroW et Livebox

Et hop

Je viens de mettre en service un nouveau serveur d’impression à base d’un raspeberry pi zero w, avec les câbles  alim boitier et carte SD j’en ai pou approximativement 30€.

Au niveau de la configuration il suffit de rajouter à la raspbian le paquet p910nd. Mettre à jour le fichier /etc/default/p910nd

# Printer number, if not 0
P910ND_NUM=""
# Additional daemon arguments, see man 8 p910nd
P910ND_OPTS="-f /dev/usb/lp0 -b"


# Debian specific (set to 1 to enable start by default)
P910ND_START=1

Enfin presque p910nd ne fonctionne pas en ipv6 et windows10 cherche à imprimer en ipv6, il faut donc au niveau de la livebox ou du pi fixer une adresse ipv4 fixe et utiliser cette adresse ip au lieu du nom du serveur.