[Docker] Votre script Python laisse anormalement la sortie standard vide

Lors de l’exécution d’un programme écrit en Python dans un conteneur Docker, il arrive régulièrement que la sortie standard reste anormalement vide :

$ docker logs my-app
$

La raison est généralement que par défaut, l’interpréteur Python utilise une mémoire tampon pour les écritures vers stdout. Les écritures sont donc différées et cela peut prendre un moment avant de voir apparaitre la moindre ligne d’écriture (selon la verbosité de votre programme).

Une solution est d’utiliser l’option -u lors de l’appel à l’interpréteur Python. Votre Dockerfile devra contenir une ligne ressemblant à ceci :

CMD ["python3", "-u", "my-app.py"]

Et ainsi :

$ docker logs my-app
It works !
$
SysAdmin Docker, Python

[Fedora] Installer de quoi utiliser le Leap Motion

L’utilisation du Leap Motion sur les systèmes GNU/Linux est officiellement supportée mais seul un paquet DEB est fourni. Nous allons donc voir comment le convertir en paquet RPM fonctionnel pour Fedora.

Tout d’abord, vous devez télécharger la dernière version du Leap Motion Setup pour Linux :

wget https://warehouse.leapmotion.com/apps/4143/download -O leap-setup.tgz
tar zxvf leap-setup.tgz
cd Leap_Motion_Installer_Packages_release_public_linux/

Ensuite, nous allons utiliser l’outil alien pour faire la conversion. Si ce dernier n’est pas installé :

# Pour Fedora <= 21
sudo yum install alien
# Pour Fedora > 21
sudo dnf install alien
Read more Logiciel Leap Motion, RPM

Compresser un dossier local à travers un lien FTP

J’ai récemment dû faire une sauvegarde d’un dossier se trouvant sur un serveur distant afin de l’envoyer sur un serveur FTP. Cependant, il m’a été impossible de créer une archive compressée de ce dossier sur le serveur distant car pas assez d’espace libre. La solution a été de ne pas stocker le résultat de la compression en local sur le serveur sur lequel se trouve le dossier à sauvegarder, mais de l’envoyer directement sur le FTP.

Pour ce faire, une fois connecté au serveur FTP depuis le serveur distant en utilisant l’outil ftp :

ftp> put "| tar cvf - folder/ | gzip " folder.tar.gz

folder correspond donc au dossier local à sauvegarder et folder.tar.gz au nom de l’archive compressée qui résultera de ce procédé (placée sur le FTP donc).

SysAdmin FTP, Backup

Quelle est la différence entre chiffrer et coder une information ?

Dans un précédent article, j’avais expliqué pourquoi le mot “crypter” n’a aucun sens en français. Je vais continuer sur ma lancée pour maintenant expliquer la différence entre chiffrer et coder un message.

Lorsque l’on parle de coder un message, on sous-entend l’utilisation d’un code de référence qui va permettre aux personnes le connaissant de transformer le message de notre langue commune à une forme codée et vice versa. Un des exemples les plus connus est le Morse. Toute personne connaissant le Morse est capable de comprendre les messages codés avec ce dernier.

Contrairement aux codes comme le Morse, les algorithmes de chiffrement assurent une confidentialité des messages, que le système cryptographique soit connu ou non. En effet, dans le cas du chiffrement, seule la clé est confidentielle. C’est ce qu’énonce le principe de Kerckhoffs, également repris par Shannon avec sa maxime :

L’adversaire connaît le système

Il est donc évident qu’utiliser un algorithme de chiffrement est bien plus judicieux qu’utiliser un code pour rendre ses données confidentielles.

Culture IT, Cryptologie Kerckhoffs, Shannon, Vocabulaire

[Docker] Développer sur le BLE Micro de Seeed Studio

Le BLE Micro est une petite carte électronique produite par Seeed Studio embarquant le SoC nRF51822 de Nordic Semiconductor. Ce dernier est un module de communication Bluetooth Low Energy (BLE) basé un Cortex M0.

BLE Micro de Seeed Studio

Read more Développement Docker, BLE Micro