J'avais dans mes affaires un Launchpad Mini de chez Novation,
qui était inutilisé. C'est un instrument de musique utilisé
avec des logiciels tels que Ableton Live. L'instrument se
présente comme une grille de cases pouvant être pressées et
allumées dans différentes couleurs. On peut utiliser cet
instrument pour lancer des boucles musicales à la simple
pression d'une case.
Étant un "simple" instrument interfacé en MIDI, il peut être
utilisé de différentes manières, véritable bonheur pour un
développeur inventif.
Le but est ici d'afficher le statut de pipelines Gitlab sur
le Launchpad en temps réel, et de pouvoir relancer les pipelines
à la simple pression d'un bouton. Ainsi, on peut avoir une
vue globale du statut de ses derniers pipelines sur un lot
de projets.
Le code peut être trouvé ici.
Les enregistrements DNS TLSA sont très utiles mais très peu
connus ou utilisés en pratique. Ils sont notamment pratiques
pour mettre en application la RFC 6698.
Le DANE (DNS-Based Authentication of Named Entities) permet
en utilisant les enregistrements TLSA et avec le DNSSEC
(Domain Name System Security Extensions, RFC 4033)
d'ajouter une sécurité supplémentaire, en ajoutant l'empreinte
des certificats de sécurité utilisés pour un site ou une application
donnés, aux enregistrements DNS. Cela permet de vérifier que
le certificat fourni est bien celui annoncé par le serveur
DNS. Ce projet permet de mettre à jour automatiquement et immédiatement,
en utilisant l'API de OVHCloud sans passer par une librairie,
les enregistrements DNS TLSA de mon infrastructure, en surveillant
les certificats générés par mon reverse-proxy (NGINX).
Ce projet a été fait en une semaine en Rust. Le but étant
la rapidité, aucun test unitaire n'est fourni. Le code se trouve
ici.
J'ai participé au challenge "Advent Of Code" dans
son édition 2021, trouvable
ici, et j'ai obtenu toutes les étoiles de cette année.
Tous les jours, à la manière d'un calendrier de l'Avent un peu
particulier, un défi en deux parties est publié, et ce du premier
au 25 décembre. Le but est de faire les deux parties des défis.
De manière simplifiée, nous suivons une histoire globale,
véritable fil rouge du calendrier. Le site dispense un sujet,
une consigne, un jeu de données en général assez fourni,
et pour aider au développement et à comprendre le sujet,
un jeu de données réduites est aussi fourni pour tester nos
algorithmes et hypothèses.
Ce projet est fait en Rust, et est trouvable ici.
Mon serveur principal est actuellement une tour, issue de
nombreuses mises à niveau au fil du temps. Tout d'abord constitué
de pièces d'occasion obtenues au fil du temps, il est désormais
composé d'une majorité de pièces neuves. Il héberge grand nombre
de mes services et projets, en plus de servir pour d'autres
tâches annexes, telles que servir à faire fonctionner des jeux
vidéos à distance, ou encore exécuter différentes tâches pour
mes pipelines CI/CD.
En ce moment, il a pour processeur un
AMD Ryzen 5 3600,
ainsi que 32 Go de RAM, cadencés à 3200 MHz. Pour le stockage,
ce serveur a pour média de démarrage un SSD NVMe (PCIe3x4)
de 512 Go. Il est aussi doté d'une carte graphique NVIDIA GTX 970
disposant de 4 Go de VRAM.
À son arrivée dans cette configuration,
elle me servait pour faire de l'encodage et du transcodage de
fichiers multimédias à la volée, mais dernièrement elle me
sert surtout pour faire fonctionner des applications qui ont
de forts besoins en ressources graphiques, telles que des jeux
vidéos, dans une machine virtuelle.
Il dispose aussi d'un SSD 1 To de chez Crucial au format
SATA pour héberger la machine virtuelle à qui est passée la
carte graphique. Cette carte graphique n'est indisponible pour
l'hôte que le temps que la machine virtuelle est allumée. En
effet, à l'amorçage de cette VM, la carte graphique est automatiquement
détachée, puis rattachée à son arrêt.
Enfin, ce serveur dispose aussi d'un RAID de différents
disques pour du stockage supplémentaire.
Actuellement, la machine qui me sert à donner vie aux différentes
idées qui pourraient me venir en tête est un Lenovo ThinkPad T14s
de première génération, dans sa variante AMD.
En terme de spécifications, cet ordinateur portable est
équipé d'un processeur AMD Ryzen 7 4750U,
étant développeur, il n'est pas rare que je doive compiler des
projets de taille et de langage variés, et les 8 coeurs de ce
processeur font très bien ce travail.
Concernant la RAM, j'ai choisi de doter mon ordinateur de
32 Go de RAM, au format DDR4, cadencés à 3200 MHz. Il m'arrive souvent
de manipuler des machines virtuelles et cette quantité de RAM devrait
pouvoir couvrir mes besoins pendant un moment.
En terme d'écran, j'ai choisi une dalle 1080p basse consommation
avec une surface matte, et une luminosité de 400 nits. Le T14s étant
un 14 pouces, 1080p suffisent largement pour mon cas d'utilisation,
et les 400 nits de luminosité me permettent d'utiliser cette
machine en conditions de forte luminosité ambiante. Le clavier
rétroéclairé me permet de travailler dans des conditions de
basse luminosité. Un ordinateur parfait pour rester productif
et mobile.
Pour le stockage, il est équipé de 512 Go fournis par un
SSD NVMe (PCIe3x4). Je suis très loin de les utiliser dans leur
totalité mais cette taille me permet de manipuler et
travailler localement sur des projets parfois lourds, et je
ne souhaite pas que ma machine de travail soit l'élément limitant
de mon flot de travail.