Python, matplotlib. Installation dans un environnement virtuel avec redirection X11
Sur Ubuntu, un script Python 3 exécutant Matplotlib pour afficher un graphique avec redirection X11 échoue.
Matplotlib a besoin d’un backend graphique. La distribution Python doit être reconfigurée afin de pouvoir utiliser le module tkinter qui interagit avec les fonctionnalités graphiques de Tcl/Tk.
Latex, PgfPlots - Remplissage des aires sous et entre les courbes
Dans certaines circonstances, les aires doivent être mises en évidence.
La librairie
fillbetween
du package PgfPlots, très simple d’utilisation, effectue le remplissage des aires : entre 2 courbes, ou entre une courbe et l’axe des abcisses.
L’aire peut être divisée en segments en fonction des intersections entre courbes afin d’appliquer un style différent de remplissage. MathJax 3 - Méthodes javascript avancées de rendu
Comment rendre les équations MathJax après une entrée utilisateur, une injection de code tex brut ou du contenu ajouté dynamiquement.
2 fonctions simples à connaître avec MathJax 3 pour du contenu plus interactif :
typesetPromise
, tex2chtmlPromise
Latex, PgfPlots - Courbes en coordonnées polaires
Par commodité, les courbes peuvent être définies en coordonnées polaires. Comment afficher les courbes définies en coordonnées polaires avec Latex et le package PgfPlots ?
Diverses techniques possibles de tracé : avec la librairie polar de PgfPlots en degrés ou en radians ou dans un repère cartésien classique.
Javascript - Import de blocs HTML, fetch
Pour des blocs HTML relativement statiques (entêtes, pieds de page…), on cherche souvent une méthode simple pour importer du code HTML à partir de fichiers.
Il existait une méthode simple (
<link rel="import" href="footer.html">
) MAIS cette spécification a été rendue obsolète.
Quelle est l’alternative ? Utiliser la méthode javascript fetch. Latex, package tzk-tab. Tableaux de signes et de variations de fonctions
Comment dessiner de jolis tableaux de signes et de variations pour des publications mathématiques avec Latex et le puissant package tkz-tab ?
Une fois que l’on a compris le mécanisme des trois principales macros à connaître (tkzTabInit, tkzTabLine, tkzTabVar), un tableau de signes et de variations est construit en quelques minutes.
Latex, pgfplots - axes des abcisses avec multiples de pi pour les fonctions trigonométriques
Comment appliquer des étiquettes multiples de pi sur l’axe des abcisses, y compris des fractions, pour les fonctions trigonométriques ?
La définition des propriétés xtick et xticklabels donne le rendu attendu facilement.
Latex, graphiques sur papier millimétré
Dans un document Latex, comment créer des graphiques sur papier millimétré ? Comment automatiser les arrières plans papier millimétré avec une macro Tex ?
Création d’images PNG des schémas dans des documents TeX/LaTex
Dans les publications scientifiques, des schémas sophistiqués sont créés dans des documents Latex avec des packages (circuitikz pour les circuits électriques, chemfig pour les molécules chimiques…).
Comment créer des fichiers images png à partir de schémas dans des documents Latex avec MiKTeX et TexMaker ?
MathJax, Macros et packages. Commandes Tex simplifiées
Non habitué à Latex, en utilisant le langage HTML et la bibliothèque javascript MathJax pour publier du contenu comportant des expressions mathématiques, on est rapidement confronté à des syntaxes lourdes et répétitives.
Pour automatiser, uniformiser et simplifier les commandes Tex, la bibliothèque javascript MathJax supporte les macros Tex. Quelques exemples très concrets pour les débutants qui vont au-delà des exemples "Hello World" pour mettre du texte en gras.
CSS, auto numérotation des éléments : titres, listes, pagination
L’auto numérotation des titres avec Word, OpenOffice… est bien connu depuis des décennies.
Comment y parvenir lors de la publication de pages HTML?
CSS est puissant, CSS peut faire le boulot. Toujours investiguer les fonctionnalités CSS avant de démarrer un développement (Javascript…), souvent CSS est capable de couvrir un besoin et très facilement.
InfluxDB v2, le langage Flux et les bases de données SQL
Grande nouveauté de la base de données time series InfluxDB v2 et de son langage Flux : les passerelles vers les moteurs de bases de données SQL (PostgreSQL, MySQL, Microsoft SQL Server…).
Pour interagir avec des bases de données SQL, 2 fonctions simples :
sql.from
et sql.to
.
Cas d’utilisation et considérations spécifiques sur les conversions des types de données. InfluxDB - Langage Flux, fonctionnalités avancées
Le nouveau langage Flux dans InfluxDB v2 résout un bon nombre de limitations du langage InfluxQL.
Tour d’horizon des fonctionnalités avancées du langage Flux : jointures, pivots, histogrammes, colonnes calculées (map), fonctions d’agrégat personnalisées (reduce).
Dans la plupart des sujets, des cas d’utilisation réels sont abordés : joindre des données lorsque les horodatages diffèrent de quelques secondes, simuler une jointure externe en attendant les nouvelles méthodes de jointure à venir (left, right…), construire des histogrammes sans données cumulatives mais la différence…
InfluxDB v2 : langage Flux, aide-mémoire
Langage Flux d’InfluxDB v2, guide rapide et aide-mémoire (cheat sheet).
Interrogation des données, filtres, windowing, jointures, pivots, histogrammes, map, reduce, sources de données SQL…
Ubuntu - Certificats self-signed avec sa propre autorité de certification
Avec les certificats auto-signés (self-signed), sans autorité de certificats, les erreurs "x509: certificate signed by unknown authority" tombent dès utilisation de lignes commandes pour des besoins très spécifiques (curl…).
Il est tout à fait possible de créer sa propre petite autorité de certificats (CA) pour des certificats auto signés afin de ne pas devoir utiliser les options qui désactivent la vérification complète de la chaîne SSL jusqu’à l’autorité de certificats (curl --insecure, influx --skip-verify…).
InfluxDB - Passer du langage InfluxQL au langage Flux
Passer du langage InfluxQL (SQL-Like) au langage Flux d’InfluxDB v2 est un petit peu déroutant au tout premier abord, mais on acquiert très vite la mécanique.
Un tour d’horizon sur la migration des requêtes InfluxQL existantes vers Flux (filtres, windowing, copie de données…) avec dans la mesure du possible une mise en parallèle des syntaxes.
InfluxDB : Migration vers la version 2, procédure
InfluxDB v2 est sorti officiellement en novembre 2020.
La migration d’un serveur InfluxDB v1.8 vers InfluxDB v2 est assez simple. Ce qu’il faut retenir :
- Une base de données + politique de rétention devient un bucket.
- La rétro compatibilité avec les API 1.x est garantie, mais uniquement pour des users 1.x authentifiés.
- Les continuous queries doivent être migrées en tâches Flux.
- InfluQL est remplacé par le langage Flux.
- Le support natif des protocoles OpenTSDB, Graphite… est retiré, Telegraf doit être mis en œuvre.
MySQL 8, clônage d’instances pour la réplication avec la commande CLONE
Le nombre d’étapes manuelles pour configurer une réplication est élevé en particulier lorsque l’instantané des bases de données du serveur source est effectué.
À partir de MySQL 8.0.17, le nouveau plugin CLONE simplifie le provisionnement des replica.
Quelques limitations à noter, sinon son utilisation est simple et l’opération de clônage peut même être monitorée. Bien pratique pour dupliquer des environnements, au delà de la réplication.
Réplication MySQL 8, binary log file position. Prise en main, démarrage rapide
Prise en main et installation rapide d’une réplication MySQL 8 par position dans les fichiers de logs binaires.
Quelques spécificités MySQL 8 sont abordées :
- changement de terminologie en cours dans les produits MySQL, changement qui impacte gradement la réplication.
- effet de bord du nouveau nouveau plugin d’authentification
caching_sha2_password
. - nouveauté mode "read only" par base de données.
Paramètres régionaux sur Ubuntu (locales), configuration des langues
Dans la plupart des langages de programmation, il est pratique d’utiliser les paramètres régionaux (locales) pour afficher des nombres, des dates… Les paramètres régionaux évitent le développement de fonctions pour formater les données.
L’inconvénient majeur : les paramètres régionaux disponibles dépendent de l’OS. Si le paramètre régional demandé n’est pas installé sur l’OS hébergeant le programme, le formatage échoue ou revient à des paramètres par défaut.
Un rapide survol des paramètres régionaux sur Ubuntu : installation, modification temporaire ou permanente.