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.
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 (…)
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é.
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 (…)
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 (…)
Une nouvelle version de Trivabble, un jeu de Scrabble en réseau présenté ici‑même, vient de sortir.
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 (…)
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 (…)
(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
(…)
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 (…)
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 (…)
Trivabble est un jeu de Scrabble en ligne que j’ai commencé en 2016 pour que les membres éparpillés de ma famille puissent jouer ensemble.
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 (…)
Ivre, je viens de voir que Microsoft va publier une version de Edge pour Linux.
Ça m’a fait à peu près la même impression que recevoir une exception levée de cette manière :
…
default:
throw new Error("BUG: SOMETHING IS HORRIBLY WRONG, THIS SHOULD NEVER HAPPEN!");
}
Je savais que je ne dormais pas assez en ce moment, mais là l’avertissement est sévère !
Bientôt, on pourra lire :
Microsoft développe une version de Cortana (…)