13 déc. 2017

Raspberry Pi : Attention à l'alimentation !

Lire la suite...

Il y a quelques mois, j'avais publié un billet sur pbulk. J'avais pris en exemple la configuration mise en place sur un Raspberry Pi 2B. Ce n'était pas une totale réussite, car parfois le Raspberry Pi gelait. Non, pas passer en dessous de 0°C, mais plutôt avoir un système qui ne répond plus. Plus rien, ou presque, la petite carte ne répondant qu'au ping.

On débranche, on rebranche, et ça repart. Jusqu'au suivant. Difficile dans ces conditions de construire presque 1500 paquets logiciels pour mes autres Raspberry Pi. La configuration d'alimentation choisie à l'époque avait pour but de limiter le nombre de prises de courant occupées : un PiHub, accompagné de son alimentation 5V 3,5A. Je pensais que pour 2 Raspberry Pi B+ et 2 2B, cela allait suffire. Finalement non, et non seulement les bulks ne passaient plus et finissaient par corrompre la carte SD, mais en plus l'alimentation a fini par lâcher.

Avant que l'alimentation du PiHub ne lâche, j'avais déjà déplacé le Raspberry Pi 2B dédié aux bulks sur une alimentation dédiée, en utilisant un chargeur de téléphone mobile. Lui aussi ne suffisait pas finalement, puisque j'ai eu quelques gels. Alors que faire ?

Une fois l'alimentation du PiHub hors service, j'ai finalement craqué pour un autre bloc, délivrant cette fois-ci 4,8A au total, mais dont certains ports peuvent délivrer jusqu'à 2A d'intensité. Depuis lors, je construits mes environ 1500 paquets par semaine sans problème depuis plus de trois semaines !

Moralité : il faut bien choisir l'alimentation de ses Raspberry Pi ! Cela peut poser certains problèmes !

Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Si en plus vous avez des remarques, ou des propositions d'améliorations, n'hésitez pas : les commentaires sont là pour ça !

Crédit photo : Teresa Walter/USFWS - Electrial fixtures to control that backup power generator.

12 déc. 2017

En retard !

Lire la suite...

Je n'ai pas tenu le coup. Au moment de la publication de ce billet, 2 billets manquent à l'appel : celui du 9 et celui du 11 décembre. J'aurais pu éviter celui du 11 en publiant ce billet directement, mais je ne vois pas l'intérêt de publier à une heure tardive, autant assumer.

Et donc, qu'est-il arrivé ? Tout simplement, deux choses :

  • je suis arrivé à court de billets écrits à l'avance ;
  • mes journées se sont avérées plus longues et plus remplies que je ne le pensais, oubliant de publier le dernier billet que j'avais en stock.

J'ai donc deux billets à rattraper. Pour quand ? Je ne sais pas. Mais j'ai bien l'intention de les publier d'ici le 24 décembre !

Un autre problème s'est posé à moi durant la publication des billets récemment. Quelque chose que j'arrivais à gérer lors d'une publication hebdomadaire, mais beaucoup plus difficile à maintenir lors d'une publication quotidienne : partager mes billets sur les réseaux sociaux. En effet, j'effectue tout cela à la main, lors de la publication du billet. Pourquoi ? Quelques éléments :

  • les systèmes de partage de billets que j'ai pu tester pour Dotclear ne fonctionnent plus ;
  • hors de question de filer un accès à mes comptes de réseaux sociaux à un acteur tiers comme IFTTT ;
  • je n'ai pas encore cherché ou trouvé un système que je peux héberger moi-même pour publier mes billets sur Facebook, Twitter, Mastodon et Linkedin (et Diaspora en option) ;
  • un billet partagé a plus de visite qu'un billet non partagé sur les réseaux sociaux (oui, j'aime un minimum être lu) ;
  • j'ai, selon les billets, plus de réactions sur les réseaux sociaux que sur les commentaires.

Tant que j'y suis dans les difficultés actuelles, j'ai de plus en plus de mal à trouver des images d'illustration, de préférence dans une licence très permissive : Flickr dispose d'une option "Aucune restriction de droits d’auteur connue" bien pratique.

Malgré tout, je souhaite continuer cette série de billets quotidiens. Qui pour m'encourager ?

Crédit photo : Sergey Kochkarev - Almost 3am.

10 déc. 2017

Trouver des fichiers doublons avec fdupes

Lire la suite...

Il m'arrive d'avoir des fichiers en double : copie à l'arrache au moment de changer d'ordinateur, copie avant de modifier un fichier que je ne modifie finalement pas, sauvegardes diverses... bref, avec le temps, on peut se retrouver avec pas mal de fichiers doublons. Pour moi, c'est principalement de la musique.

Un moyen de repérer ces doublons est d'utiliser fdupes. Ce logiciel vérifie plusieurs attributs pour comparer les fichiers, comme la taille, une somme de contrôle MD5, voire même une comparaison bit à bit. Il suffit de lui donner un répertoire à vérifier, et il fait le travail. Ce répertoire peut très bien être un point de montage distant, comme un export NFS ou CIFS.

Dans mon cas, j'ai décidé de lancer la commande suivante :

fdupes -R -s -S /Volumes/nils/ | tee -a ./fdupes.log

J'ai choisi de renvoyer la sortie de fdupes dans tee et de conserver un fichier de log. Pour les options :

  • -R permet une recherche récursive ;
  • -s permet de prendre en compte les liens symboliques ;
  • -S montre la taille.

Voici un exemple de la sortie, pour un fichier :

3178172 bytes each:
/Volumes/nils/Musique/laptop/Serge Gainsbourg - Histoire de Melody Nelson/02 - Ballade de Melody Nelson.mp3
/Volumes/nils/Musique/laptop_old/Serge Gainsbourg - Histoire de Melody Nelson/02 - Ballade de Melody Nelson.mp3

Une dernière fonctionnalité intéressante est celle de laisser fdupes gérer l'effacement des fichiers doublons, mais je préfère d'abord vérifier qu'il n'y a pas d'erreur.

Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux !

Crédit photo : Pascal - Day 341.

8 déc. 2017

Python : 3 outils pour analyser son code

Lire la suite...

Suite à mon billet blogmas make : automatiser quelques tâches avec un Makefile, une discussion intéressante a suivi sur Mastodon, où Dashie me signalait sa préférence pour pylint pour analyser la validité de son code Python. Je saisis donc l'occasion, non pas d'argumenter pour mon choix, ou celui de Dashie, mais plutôt d'énumérer quelques possibilités pour qui souhaite avoir un code lisible, et se conformer à des conventions de style de code.

Exit pep8, bonjour pycodestyle !

Et là, les choses deviennent très drôles, car je voulais commencer par parler de pep8. Je lance donc la commande pep8 dans mon code Python :

nils@dalaran-wifi:~/fabfile$ pep8 *.py
/opt/pkg/lib/python2.7/site-packages/pep8.py:2124: UserWarning: 

pep8 has been renamed to pycodestyle (GitHub issue #466)
Use of the pep8 tool will be removed in a future release.
Please install and use `pycodestyle` instead.

$ pip install pycodestyle
$ pycodestyle ...

  '\n\n'

Donc, pep8 est obsolète, il faut utiliser pycodestyle. Heureusement, celui-ci est disponible dans pkgsrc :

nils@dalaran-wifi:~$ sudo pkgin av|grep codestyle
py27-codestyle-2.3.1 Python style guide checker
py27-pep8-1.7.1      Python style guide checker (obsolete, use py-codestyle)
py34-codestyle-2.3.1 Python style guide checker
py34-pep8-1.7.1      Python style guide checker (obsolete, use py-codestyle)
py35-codestyle-2.3.1 Python style guide checker
py35-pep8-1.7.1      Python style guide checker (obsolete, use py-codestyle)
py36-codestyle-2.3.1 Python style guide checker
py36-pep8-1.7.1      Python style guide checker (obsolete, use py-codestyle)

Bon, là aussi le message est clair : pep8 c'est fini, faut changer de crèmerie.

flake8 l'aggrégateur

Un autre outil dont j'avais entendu parler, c'est flake8. Celui-ci est assez intéressant, car c'est justement une combinaison de plusieurs outils : pep8, pyflakes, mccabe, et potentiellement d'autres via des plugins.

pylint, qui fait tout, sauf le café

Pylint ne fait pas que vérifier la conformité par rapport à des standards ou styles de code, il permet aussi de faire de la détection d'erreur, de proposer du refactoring de code et de faire des diagrammes UML via Pyreverse. Entre ça, et l'intégration à un environnement de développement ou à un système d'intégration continue, le moins qu'on puisse dire, c'est que pylint est très complet !

En conclusion : faut tester !

Je n'ai pas encore eu le temps de me faire un avis. Je compte bien sûr tester tout cela, dès que je remet le nez dans du code Python !

Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux !

Crédit photo : Pascal - Study in Pink.

7 déc. 2017

Paris Open Source Summit 2017 - jour 2

Lire la suite...

Ce billet arrive un peu tard, mais ces deux jours du Paris Open Source Summit 2017 furent assez remplis : entre des visiteurs sur le stand LinuxFr.org, les personnes sur les autres stands, et les tirages au sort pour faire gagner des livres, je n'ai pas eu le temps de m'ennuyer !

Quelques photos de ces deux jours de salons :

Affiche LinuxFr.org sur le stand

L'urne utilisée lors des tirages au sort

Les mains innocentes de Tris

Le mégaphone, avant le tirage au sort du premier jour

LinuxFr.org à bord d'une Tesla Model X

Une peluche PHP sur le stand de l'AFUP

La mouette OpenOffice sur le stand LibreOffice

Le retour du mégaphone pour le tirage au sort du deuxième jour

Quelques autocollants sur le stand de Framasoft

A l'année prochaine pour une nouvelle édition du Paris Open Source Summit !

Propulsé par Dotclear