Journal Débugger un problème de performance avec strace

Posté par  . Licence CC By‑SA.
33
1
sept.
2024

Journal un peu rapide orienté debug de perf et découverte de strace.

J’héberge une instance privée d'Invidious. C’est un frontal alternatif pour Youtube qui permet notamment de suivre des chaînes sans avoir de compte Google, et d’accéder à Youtube avec du code libre. C’est pas mal, en attendant que tout le monde se mette à PeerTube.

Depuis des mois, il y avait une latence aléatoire au chargement des pages, des vidéos, de tout. Parfois tout s’affichait (…)

Journal Fin d’OCSP chez Let’s Encrypt : quid ?

Posté par  . Licence CC By‑SA.
Étiquettes :
75
14
août
2024

Récemment, Let’s Encrypt a annoncé leur intention d’arrêter prochainement leur service OCSP, et cette annonce a été partagée sous la forme d’un lien sur LinuxFr.

Cette annonce mérite démystifications, explications et est l’occasion de parler un peu de ces concepts, en particulier pour celles et ceux qui ne seraient pas familiers avec OCSP ou même comment toute cette infrastructure de confiance fonctionne. Je l’avais un peu fait dans un commentaire complètement buggué, et on m’a suggéré d’en (…)

Journal Fusionner deux profils signal-desktop pour retrouver ses conversations

Posté par  . Licence CC By‑SA.
54
18
avr.
2022

Me revoilà pour un journal un peu technique. On part à l’aventure et on va notamment parler de Signal, de SQL, SQLite, de son extension fts5 (vite fait) et de SQLCipher (variante de SQLite capable de chiffrer les bases de données, découverte à l’occasion), et de fusion de deux bases de données Signal pour reconstruire un historique complet et « réparer » un profil Signal un peu moisi.

Généralités sur Signal

Signal est une application de messagerie instantanée chiffrée de (…)

Journal Simuler un clic avec libevdev et uinput

Posté par  . Licence CC By‑SA.
70
2
sept.
2021

Préambule

Samedi 7 août, 14h UTC+2 : une pluie de tous les enfers se déchaîne. Il pleut tout l’après-midi, mais c’est la tempête surtout pendant une demi heure. Le sol est inondé. Les gens courent, l’imper sur lequel je comptais jette l’éponge, mon téléphone pas étanche dans la poche de l’imper pas étanche est mouillé et c’est le drame : il ne s’allume plus.

Dimanche 8 août. Le téléphone refonctionne (son module wifi et Bluetooth démarre bien quand bon lui (…)

Communiquer avec le serveur depuis un navigateur Web : XHR, SSE et WebSockets

112
18
avr.
2021
Internet

Dans cette dépêche, nous allons faire un tour d’horizon de différentes manières de communiquer avec un serveur depuis une application Web, avec un petit peu d’histoire, avant de rentrer plus profondément dans le fonctionnement des WebSockets, que nous allons démystifier. Nous digresserons ensuite à propos de la gestion (problématique) des requêtes longues et de HTTP 2 avec Apache, et nous discuterons d’une manière de limiter la casse. La dépêche contient quelques morceaux raisonnables mais l’absurdité est latente.

Supposons que nous ayons une application Web qui a besoin de recevoir des évènements du serveur pour voir si quelque chose s’est passé. À tout hasard, un jeu de société en ligne. Ce jeu a besoin d’envoyer les coups des joueurs et joueuses, et de recevoir les coups des autres.

Le serveur ne peut pas contacter le navigateur. Celui-ci est peut-être derrière un pare-feu, et de toute façon il n’y a pas de méthode pour cela. Le modèle du web, c’est une requête HTTP de la part du navigateur, et le serveur sert cette requête. Et puis, à la base, une requête = un chargement de page.

Mais des techniques sont apparues pour abuser de ce modèle, puis les standards se sont mis à intégrer des méthodes pour mener ces abus en toute sérénité.

Journal Trivabble s'offre un nom de domaine

Posté par  . Licence CC By‑SA.
Étiquettes :
30
12
mar.
2021

Pour celles et ceux qui ne connaissent pas, Trivabble est un jeu libre en réseau où il faut aligner des mots en lignes ou en colonnes sur une grille dont certaines cases sont spéciales et faire un max de points possible. Vous connaissez probablement le principe. Rythme effréné et doses d’adrénaline garanties. Bref, ça a été présenté ici dans cette dépêche et dans les articles qui ont suivi.

Préambule

Que ne serait un bon journal sans son intro totalement (…)

Journal FOSDEM 2021 : c'est ce weekend !

Posté par  . Licence CC By‑SA.
Étiquettes :
23
1
fév.
2021

Salut lecteur, lectrice,

FOSDEM 2021, c'est ce weekend (les 6 et 7 février) et ça, vous le saviez peut-être déjà grâce à la dépêche parue plus tôt dans la soirée. Et si vous n'aviez pas percuté, eh bien ce journal est là pour vous, avec l'info dans le titre pour accrocher le regard des gens qui parcourent leurs flux RSS et qui ouvrent sélectivement les nouvelles.

Mais au fait, qu'est-ce que FOSDEM ?

Pour celles et ceux qui ne (…)

Journal Piano Quick & Dirty

Posté par  . Licence CC By‑SA.
Étiquettes :
24
10
oct.
2020

Il y a 5 ans, j'ai voulu apprendre un chant que ma chorale avait fait l'année avant que je les rejoigne. À ma disposition, il y avait la partition, mes souvenirs auditifs et pas d'enregistrement. Ma voix n'était pas la voix principale de ce chant donc ça peut être un peu contre intuitif à apprendre. J'ai donc reproduit la partition sur MuseScore pour la jouer.

Je n'ai pas d'instrument non plus et avoir quelque chose pour jouer des notes rapidement (…)

Journal Réception d'un MMS difficile

Posté par  . Licence CC By‑SA.
74
4
oct.
2020

Incipit

Un alignement de planètes quelconques (ou un alignement quelconque de planètes, comme vous préférez) a rendu impossible une réception de MMS sur le téléphone que j'utilise, un vieil appareil bas de gamme sur Android 6 abandonné par la personne à qui il appartient (c'est pour donner le contexte, rendre les choses concrètes et augmenter le nombre de mots, mais ça n'a pas du tout d'intérêt pour la suite).

En général ça fonctionne, mais là, non : je reçois un (…)

Journal Psychologie d'un parseur Javascript

Posté par  . Licence CC By‑SA.
13
9
sept.
2020

(attention : beaucoup de suppositions, peu de vérifications dans ce journal. Lisez pour le cheminement plus que pour le résultat…)

Un constat choquant

De manière tout à fait intéressante en Javascript :

++ ++ i;

Donne l'erreur suivante dans Node (V8):

SyntaxError: Invalid left-hand side expression in prefix operation`

Et, dans Firefox (SpiderMonkey):

SyntaxError: expected expression, got '++'

Alors que :

i ++ ++;

Donne l'erreur suivante dans les deux moteurs (à quelque chose près) :

SyntaxError: Unexpected
(…)

Journal MPRIS-Sync : Regardez des films ensemble par internet

Posté par  . Licence CC By‑SA.
47
5
juil.
2020

J’ai voulu regarder une série avec ma sœur, parce que c’est quand même bien sympa de s’entendre mutuellement rire pendant les épisodes.

Sauf que problème, on n’habite pas dans la même ville. Comment alors regarder en même temps, facilement, une série ensemble, sans trop de décalage avec possibilité de repasser une scène qui nous a particulièrement amusé ?

Je n’ai pas trouvé de solution libre permettant de diffuser facilement, sans gros décalage, depuis un ordinateur vers un autre ordinateur sur (…)

Journal LineageOS 17.1 (Android 10), F-Droid et géolocalisation Wifi et GSM avec microG

Posté par  . Licence CC By‑SA.
27
20
juin
2020

J'ai un téléphone sous LineageOS et la version 17.1 (Android 10) est maintenant disponible pour mon téléphone. J'utilise F-Droid et microG.

Contexte

F-Droid est un magasin d'applications libres. J'utilise ça et pas autre chose. De plus, n'installant pas les fameuses GApps (services Google), je n'ai pas le Play Store, le service de communication utilisé par plein d'applications qui utilise le cloud Google (GCM - Google Cloud Messaging / Firebase), et le service de géolocalisation Google utilisant les antennes Wifi et (…)

Journal Restaurer l’historique de zsh

Posté par  . Licence CC By‑SA.
Étiquettes :
13
25
déc.
2019

Il y a quelques jours, mon historique zsh a apparemment été vidé, peut‑être à cause d’une fausse manip dont je parlerai peut‑être. Je crois avoir rempli mon $HOME complètement, et ça n’a peut‑être pas plu à zsh.

Mes shells n’enregistraient donc plus les nouvelles commandes dans le fichier .zsh_history, et surtout, ce fichier est devenu vide. Or, je tiens à mon historique ! Il y a un tas de commandes que je rappelle simplement en tapant leurs premières lettres (…)