Planet Libre

Benoît Boud@ud : La planète Archlinux (partie 1)

Bonjour, Mon fidèle Kompüteur tournait depuis plusieurs années sous Debian. La solidité et le sérieux de cette distribution ne sont plus à démontrer. De fait, Volgor ne s'est jamais retrouvé en arrêt cardio-respiratoire. Nul besoin de défibrillateur pour le ramener à la vie après une mise à jour toxique. Debian est une distribution que je [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

Carl Chenet : Débuter avec Git partie 6 : une fusion de branches échoue

Aujourd’hui pour continuer cette série d’articles sur débuter avec Git, nous allons démystifier une situation qui provoque un stress important auprès des nouveaux utilisateurs de Git : lorsqu’une fusion de branches échoue.

Il arrive malheureusement qu’une fusion de branches échoue. Ce cas se présente surtout dans l’utilisation collaborative de Git, où différentes personnes interviennent en même temps sur le code.

En effet Git est un outil très bien conçu, mais il ne prendra jamais une décision à la place de ses utilisateurs. Or, si la même partie du code est modifiée par deux utilisateurs différents, qui a raison ? Qui a tort ? Qui Git doit-il croire ?

Mise en place du conflit de fusion

Nous allons tout d’abord créer un fichier README.md dans un nouveau dépôt Git avec un titre et deux sections.

$ mkdir fusion-echoue $ cd fusion-echoue/ $ git init . Initialized empty Git repository in /tmp/fusion-echoue/.git/ $ vi README.md $ cat README.md # README ## installation apt-get install whatever ## use whatever param1 param3 param3 $ git add README.md && git commit README.md -m "add README.md" add README.md 1 file changed, 9 insertions(+) create mode 100644 README.md

Nous créons maintenant une branche dédiée à l’ajout d’une nouvelle section pour indiquer la licence du projet dans le README.md.

$ git checkout -b new-license Switched to a new branch 'new-license' $ vi README.md $ git commit README.md -m "license section" license section 1 file changed, 3 insertions(+)

Jetons un oeil à l’état actuel de notre fichier sur a branche new-license:

# README ## installation apt-get install whatever ## use whatever param1 param3 param3 # license BSD Un code, deux choix différents

Pendant ce temps, dans la branche master, un développeur semble avoir fait un choix différent au niveau de la licence.

git checkout master Switched to branch 'master' $ vi README.md $ git commit README.md -m "license section - use gpl" [master bf15ff3] license section - use gpl 1 file changed, 3 insertions(+)

Voici l’état actuel du fichier sur la branche master.

# README ## installation apt-get install whatever ## use whatever param1 param3 param3 # license GPLv3 Une fusion destinée à échouer

L’événement-déclencheur du drame va être la volonté de supprimer la branche créée auparavant et de réintégrer son code dans master. Pour cela, rien de plus simple, nous utilisons git merge comme vu dans l’article précédent.

$ git merge new-license Auto-merging README.md CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result.

Oups, le CONFLICT en majuscule nous annonce que Git a rencontré un conflit en tentant de fusionner la branche new-license dans la branche master.

La dernière phrase est très claire : résoudre les conflits est un préalable indispensable à continuer la fusion.

Résoudre le conflit… ou pas

Si vous avez déjà rencontré ce problème en utilisant Git, vous avez sûrement éprouvé ce sentiment : la grosse panique. Vous vous voyez déjà accuser des pires manipulations par vos collègues et de casser l’outil de travail commun. DU CALME, PAS DU TOUT.

Avant de céder à la panique, repassons la commande git status.

$ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") (use "git merge --abort" to abort the merge) Unmerged paths: (use "git add …" to mark resolution) both modified: README.md

La sortie de la commande est très claire : un simple git merge –abort vous fera revenir à la situation précédant le git merge. Voyons cela.

$ git merge --abort $ git status On branch master nothing to commit, working tree clean

Voilà, vous pouvez vous détendre et ranger votre lette de démission. Tout va bien se passer.

Résouder le conflit

Nous allons maintenant tenter de réellement résoudre notre conflit. Avant cela, nous devons prendre conscience de la tâche qui nous attend.

$ git merge new-license $ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") (use "git merge --abort" to abort the merge) Unmerged paths: (use "git add …" to mark resolution) both modified: README.md

La sortie de la commande git status nous indique qu’un seul fichier pose problème par la mention sur la dernière ligne both modified: README.md.

Ce n’est pas nos quelques lignes dans le README.md qui vont nous décourager. Jetons donc un oeil au fichier en question.

$ cat README.md # README ## installation apt-get install whatever ## use whatever param1 param2 param3 ## license <<<<<<< HEAD GPLv3 ======= BSD >>>>>>> new-license

Surprise, Git nous a maché le travail.

Dans la section license du fichier, nous voyons que la partie entre <<<<<<< HEAD et ======= provient de HEAD, qui pointe actuellement sur master, donc le code provenant de master. Vous avez oublié ce qu’est HEAD ? On en parle dans cet article.

À l’opposé, la partie entre ======= et >>>>>>> new-license provient donc de la branche new-license. C’est maintenant à vous de jouer et de faire un choix, Git ne le fera pas à votre place, une décision humaine est attendue.

Après consultation avec vos collègues, vous choisissez la licence GPLv3. Vous allez donc éditer le code de la section license pour ne laisser que la partie suivante :

## license GPLv3

La commande git status précédente nous indiquait la marche à suivre une fois le fichier édité.

Unmerged paths: (use "git add …" to mark resolution) both modified: README.md

Nous suivons donc ces instructions à la lettre.

$ git add README.md $ git status On branch master All conflicts fixed but you are still merging. (use "git commit" to conclude merge)

Le conflit est résolu. Nous allons maintenant utiliser git commit pour terminer la fusion.

$ git commit -a -m "use GPLv3 license. merge from new-license branch"

Si vous n’utilisez que la commande git commit sans argument, votre éditeur de texte s’ouvre et propose d’enregistrer le message de commit suivant :

Merge branch 'new-license' Conclusion

Nous avons brilliamment résolu notre premier conflit de fusion entre deux branches. Il était franchement facile à régler, mais il nous a permis de détailler toutes les étapes nécessaires. Bien évidemment nous pouvons avoir des conflits bien plus sévères à régler, mais nous avons vu comment interrompre une fusion, ce qui nous aidera quoiqu’il arrive à revenir à un état stable du dépôt.

S’engager dans une fusion complexe réclame un très bonne connaissance du code manipulé et de ce qu’on fait vos collègues, pour ne pas écraser du code utile par inadvertance.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Suivre l’actualité du Logiciel Libre et Open Source francophone

Abonnez-vous au Courrier du hacker, une newsletter hebdomadaire résumant le meilleur de l’actualité francophone du Logiciel Libre et Open Source. Déjà plus de 90 numéros et 2000 abonnés.

Le Courrier du hacker E-mail S'abonner

The post Débuter avec Git partie 6 : une fusion de branches échoue appeared first on Carl Chenet's Blog.

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Renault : Résultats des élections de Fedora 06/19

Comme je vous le rapportais il y a peu, Fedora a organisé des élections pour renouveler partiellement le collège de ses organes FESCo, Mindshare et Council.

Le scrutin est comme toujours un vote par valeurs. Nous pouvons attribuer à chaque candidat un certain nombre de points, dont la valeur maximale est celui du nombre de candidat, et le minimum 0. Cela permet de montrer l'approbation à un candidat et la désapprobation d'un autre sans ambiguïté. Rien n'empêchant de voter pour deux candidats avec la même valeur.

Les résultats pour le Conseil sont (qui est le seul candidat) :

# votes | name 176 Till Maas (till)

À titre indicatif le score maximal possible était de 184 * 1 votes soit 184.

Les résultats pour le FESCo sont (seuls les quatre premiers sont élus) :

# votes | name 695 Stephen Gallagher (sgallagh) 687 Igor Gnatenko (ignatenkobrain) 615 Aleksandra Fedorova (bookwar) 569 Petr Šabata (psabata) -------------------------------------------- 525 Jeremy Cline 444 Fabio Valentini (decathorpe

À titre indicatif le score maximal possible était de 205 * 6 soit 1230.

Les résultats pour le Mindshare sont donc (seuls le premier est élu) :

# votes | name 221 Sumantro Mukherjee (sumantrom) -------------------------------------------- 172 Luis Bazan (lbazan)

À titre indicatif le score maximal possible était de 178 * 2 soit 356.

Nous pouvons noter que globalement le nombre de votants pour chaque scrutin était proche aux alentours de 175-200 votants ce qui est un poil moins que la fois précédente (200-250 en moyenne). Les scores sont aussi plutôt éparpillés.

Bravo aux participants et aux élus et le meilleur pour le projet Fedora.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #28

Pour la 28ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Morot : Astuces Puppet

Tests

Dry run :

puppet agent -t --noop

Valider la sytaxe d’un manifest :

puppet parser validate manifest.pp

Valider un template :

erb -x -T '-' | ruby -c ERB

Insérer une valeur :

Simple code ruby cmme une boucle :

Un commentaire :

>

Afficher une variable :

Afficher une variable de portée globale :

CLI Puppet agent

Configurer le serveur :

puppet config set server puppet.lab.morot.fr --section agent

Lancer l’agent avec un serveur spécifique :

puppet agent -t --server Facter

Lister les facts :

facter

Obtenir un facts en particulier :

facter os.distro.description

Sortie JSON

facter -j

Sortie YAML :

facter -y

Désactiver l’agent :

puppet agent --disable

Activer l’agent :

puppet agent --enable Modules

Gérer les modules :

puppet module list puppet module search NOM puppet module install NOM puppet module uninstall NOM puppet module upgrade NOM Catalogues

Listes les classes appliquées :

cat /opt/puppetlabs/puppet/cache/state/classes.txt Certificats

Re-créer la CA

puppetserver ca setup

Vérifier la CA :

puppetserver ca list --all

Signer une demande de certificat :

puppet cert sign NOM

Signer toutes les demandes :

puppet cert sign --all Ressources

Un utilisateur :

puppet resource user julien

Un paquet :

puppet resource package screen

Un point de montage :

puppet resource mount /

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

Articles similaires

antistress : Mon super abonnement Internet à 30,99€/mois

Graphique en camembert de répartition du prix de mon abonnement

J'ai évolué ces derniers temps dans ma façon de réaliser des dons aux projets en lien avec les libertés numériques (que ce soit des associations d'aide ou de lobbying, ou des projets de logiciels ou autres ressources libres).

Auparavant j'effectuais des dons ponctuels, lorsque j'y pensais. J'en ai fait parfois état sur ce blogue.

En octobre 2017, je décidais de passer à une formule de don mensuel pour Wikipédia (Wikimédia France, pour être précis). En février 2018, je passais le même cap en faveur de Framasoft. Et il y a quelques jours, je viens de faire de même pour La Quadrature du Net (dont j'adore la chaîne vidéo à laquelle je suis abonné par flux RSS : c'est d'une grande richesse intellectuelle, je vous la recommande).

Mes dons mensuels

Mes dépenses mensuelles pour mon usage d'Internet et du Web sont donc actuellement les suivantes :

  • 15,99€ pour mon FAI Bouygues Telecom qui gère mon accès à Internet en ADSL et ma ligne fixe de téléphone (je n'en suis pas fier) ;
  • 5€ pour soutenir Wikipédia (j'y contribue en temps également) ;
  • 5€ pour soutenir financièrement Framasoft (j'y ai contribué également en donnant de mon temps mais ce n'est plus le cas) ;
  • 5€ pour soutenir financièrement La Quadrature du Net (c'est ma seule contribution à l'association).

Le tout est matérialisé graphiquement dans le magnifique camembert en tête de ce billet (réalisé avec LibreOffice).

En réalité cela me coûte réellement 24,32€ par mois (et non 30,99€) car, en tant que résident fiscal français, je bénéficie d'un crédit d'impôt de 66% sur mes dons à Wikipédia et Framasoft (ainsi les 5€x12mois=60€ que je donne annuellement à chacun d'entre Wikipédia et Framasoft ne me coûtent en fait que 20€). Cela ne marche pas avec toutes les organisations toutefois.

C'est à peu près mes seules dépenses budgétisées, car je ne me suis pas encore résolu à payer pour bénéficier des services d'un fournisseur de courriels éthique (je suis chez laposte.net…), et je suis resté sur des dons ponctuels à Toile Libre, l'hébergeur à prix libre de ce blogue.

Mes dons ponctuels

Je n'ai pas abandonné la formule des dons ponctuels pour autant ; mes derniers dons ponctuels (depuis mon dernier billet en la matière) ont été pour :

  • ZeMarmot 10€ le 28/02/18 pour leur travail sur GIMP ;
  • ZeMarmot encore : 20€ le 07/01/19 ;
  • La Quadrature du Net : 20€ le 07/01/19 (je n'étais pas encore passé au don mensuel, mais des réalisations comme celle-ci m'ont donné l'envie d'un don ponctuel) ;
  • Toile-Libre, mon hébergeur à prix libre : 20€ le 10/01/19.
Actualités afférentes

Je profite de ce billet pour mettre en lumière les contributions de grandes organisations, comme l'union européenne qui donne/rend aux logiciels libres, Mozilla qui fait de même avec son projet MOSS lancé en 2015, ou encore DuckDuckGo qui finance des projets de défense de la vie privée. Même les GAFAM contribuent

Gravatar de antistress
Original post of antistress.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Utiliser un lecteur RFID avec la Raspberry Pi.

Lire badge RFID

Ce tutoriel est la seconde partie d’un dossier consacré à la découverte de l’électronique avec la Raspberry Pi. Si vous ne l’avez pas lu, je vous conseils de consulter le premier tutoriel pour contrôler une LED avec la Raspberry Pi.

Que ce soit pour des systèmes d’identification, de gestion d’inventaire, de paiement, ou pour de la domotique, les puces RFID sont de plus en plus utilisées.

Dans ce tutoriel nous allons voir comment lire des cartes RFID avec la Raspberry Pi et un lecteur RFID RC522.

À la fin du tutoriel, vous serez capable de lire un badge RFID, vérifier si c’est bien celui attendu, et allumer une LED verte ou rouge, selon le résultat. Il ne vous restera plus qu’à adapter cet exemple de base pour le projet de votre choix !

Le matériel nécessaire

Pour réaliser ce tutoriel, vous aurez besoin du matériel suivant :

Assembler le lecteur RFID RC522

Quand vous recevez le module RFID RC522, vous pouvez constater qu’il est livré avec un jeu de 2 fois 8 pins. La première étape va donc être de souder 8 de ces pins sur le lecteur RFID. Pas de panique, souder c’est très facile !

Vous devez donc insérer les PINs dans les emplacements prévus sur la carte RFID et les souder avec votre fer.

Module RFID RC522 soudéVous trouverez probablement des connecteurs droits et courbés. Je vous conseil d’utiliser les courbés, plus pratiques.

Si vous n’avez jamais soudé, je vous conseil cet excellent guide pour apprendre à souder de François de chez framboise314.fr.

Connecter le lecteur RFID et les LED à la Raspberry Pi

Avant de passer à l’écriture du code qui nous permettra de lire des badges RFID et de contrôler les LEDs, nous devons en premier lieu connecter tout les composants à la Raspberry Pi.

Pour rappel, le fait de brancher et débrancher des composants doit toujours se faire Raspberry Pi éteinte.

Brancher le lecteur RFID RC522 sur la Raspberry Pi

Le premier composant que nous allons brancher est le lecteur RFID.

Pour contrôler le lecteur RFID nous allons utiliser une bibliothèque externe. Hélas, celle-ci est écrite avec les ports GPIOs directement renseignés dans le code. Cela signifie que nous ne pouvons pas les configurer différemment et que nous sommes donc contraints d’utiliser exactement les mêmes ports que ceux prévus dans la librairie.

Voici un tableau listant les ports du lecteur et le port GPIO de la raspberry pi auquel vous devrez le relier.

Correspondance ports GPIO/ports RC522Reliez les ports du RC522 aux ports correspondants sur la Raspberry Pi.

Pour rappel, vous trouverez une carte des ports GPIO de la Raspberry Pi dans le premier tutoriel de cette série.

Brancher les LEDs

Après le lecteur RFID, connectons les LEDs à la Raspberry Pi.

Nous allons faire un montage très simple. Chaque LED aura son anode (la patte allongée) reliée à un port GPIO et les deux LEDs auront leur anode reliée à la même résistance, elle même reliée à un port GPIO de type Ground de la Raspberry Pi.

Ainsi, nous utilisons une seule résistance pour deux LEDs, et on limite le nombre de câbles.

Au final, une fois la carte RFID et les LEDs reliées à la Pi, vous devriez avoir un montage ressemblant à celui-ci.

À noter, vous pouvez aussi brancher la RC522 en direct sur la Raspberry Pi sans utiliser de breadbord.

Écrire le programme pour lire un badge RFID.

Nous avons un circuit fonctionnel, il ne nous reste plus qu’à activer les ports SPI de la raspberry pi, nécessaires pour utiliser le lecteur RFID, et écrire le programme qui permettra de lire un badge RFID.

Comme dans le tutoriel précédent, le programme sera écrit en Python. Ce tutoriel n’est pas un cours de Python, et nous ne ferons qu’expliquer de façon sommaire le programme. Si vous voulez en apprendre plus sur Python, nous avons publié un cours d’introduction à la programmation avec Python.

Activer le protocole SPI de la Raspberry Pi

Avant d’écrire le programme, activons le protocole SPI sur notre Raspberry Pi afin de pouvoir utiliser le module RFID.

Pour l’activer, il vous suffit de lancer la commande sudo raspi-config, sur votre raspberry, puis de choisir Interfacing Options, SPI, Yes et enfin Finish.

Installer la librairie pi-rc522

Dernière pré-requis, nous allons installer la librairie Python3 « pi-rc522 » qui permet de contrôler le lecteur RC522.

Nous allons utiliser Pip3, un gestionnaire de librairie pour Python.

Il vous suffit de lancer la commande :

sudo pip3 install pi-rc522 Écrire le programme pour lire l’identifiant d’un badge RFID

Chaque badge RFID possède un identifiant unique. C’est en lisant cet identifiant et en le comparant à une liste d’identifiants autorisés que l’on peut savoir si un badge est autorisé.

Nous allons donc écrire un programme nous permettant de lire un l’identifiant unique d’un badge RFID.

Comme nous l’avions fait dans le tutoriel précédent, nous allons écrire le programme dans le dossier /home/pi/electronic (si vous ne l’avez pas déjà fait, créez le dossier).

Dans ce dossier, créez un fichier read_rfid_uid.py et mettez-y le code suivant :

#!/usr/bin/env python3.5 #-- coding: utf-8 -- import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs from pirc522 import RFID import time GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board) GPIO.setwarnings(False) #On désactive les messages d'alerte rc522 = RFID() #On instancie la lib print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge #On va faire une boucle infinie pour lire en boucle while True : rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos if not error : #Si on a pas d'erreur (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps if not error : #Si on a réussi à nettoyer print('Vous avez passé le badge avec l\\'id : {}'.format(uid)) #On affiche l'identifiant unique du badge RFID time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Une fois le fichier enregistré, on en autorise l’exécution avec la commande :

sudo chmod +x /home/pi/electronic/read_rfid_uid.py

Nous pouvons maintenant démarrer le programme en l’appelant avec la commande :

/home/pi/electronic/read_rfid_uid.py

À chaque fois que vous passerez un badge RFID devant le lecteur, son identifiant unique sera affiché !

Écrire un programme qui permet d’afficher si un badge est valide ou non.

Maintenant que nous pouvons lire l’identifiant unique d’un badge, il ne nous reste plus qu’à adapter le code précédent pour comparer l’identifiant lu à un identifiant écrit dans le programme.

Nous allons donc modifier un peu le programme précédent pour qu’il compare l’uid lu à celui écris dans le programme, et allumer la led rouge ou verte selon le résultat.

Copiez donc le fichier précédent, dans un nouveau fichier verify_rfid.py et modifier le pour le code ci-dessous :

Modifiez la ligne RFID_UID pour mettre l’identifiant de votre tag RFID !

#!/usr/bin/env python3.5 #-- coding: utf-8 -- import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs from pirc522 import RFID import time GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board) GPIO.setwarnings(False) #On désactive les messages d'alerte LED_RED = 3 #Définit le numéro du port GPIO qui alimente la led rouge LED_GREEN = 5 #Définit le numéro du port GPIO qui alimente la led verte RFID_UID = [21, 35, 5, 43, 57] #Définit l'UID du badge RFID #Définit la fonction permettant d'allumer une led def turn_led_on (led) : GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO GPIO.output(led, GPIO.HIGH) #Allume la led #Définit la fonction permettant d'éteindre une led def turn_led_off (led) : GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO GPIO.output(led, GPIO.LOW) #Eteind la led #Définit la fonction permettant d'allumer la rouge et éteindre la verte def turn_red_on () : turn_led_off(LED_GREEN) #Eteind la led verte turn_led_on(LED_RED) #Allume la led rouge #Définit la fonction permettant d'allumer la verte et éteindre la rouge def turn_green_on () : turn_led_off(LED_RED) #Eteind la led rouge turn_led_on(LED_GREEN) #Allume la led verte rc522 = RFID() #On instancie la lib print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge #On va faire une boucle infinie pour lire en boucle while True : rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos if not error : #Si on a pas d'erreur (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps if not error : #Si on a réussi à nettoyer if RFID_UID == uid : print('Badge {} autorisé !'.format(uid)) turn_green_on() else : print('Badge {} interdit !'.format(uid)) turn_red_on() time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Il ne vous reste plus qu’à lancer le programme et tester !

Vous pouvez ensuite adapter le code pour vos propres projets, comme créer un serrure connectée, ou encore un jukebox utilisant des tags RFID !

Pour info, vous pouvez récupérer l’ensemble du code de ce tutoriel sur le Github de Raspbian France.

Dans le prochain tutoriel, nous verrons comment contrôler un servo-moteur avec la Raspberry Pi !

Lire l'article complet : Utiliser un lecteur RFID avec la Raspberry Pi.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires

RaspbianFrance : Utiliser un lecteur RFID avec la Raspberry Pi.

Lire badge RFID

Ce tutoriel est la seconde partie d’un dossier consacré à la découverte de l’électronique avec la Raspberry Pi. Si vous ne l’avez pas lu, je vous conseils de consulter le premier tutoriel pour contrôler une LED avec la Raspberry Pi.

Que ce soit pour des systèmes d’identification, de gestion d’inventaire, de paiement, ou pour de la domotique, les puces RFID sont de plus en plus utilisées.

Dans ce tutoriel nous allons voir comment lire des cartes RFID avec la Raspberry Pi et un lecteur RFID RC522.

À la fin du tutoriel, vous serez capable de lire un badge RFID, vérifier si c’est bien celui attendu, et allumer une LED verte ou rouge, selon le résultat. Il ne vous restera plus qu’à adapter cet exemple de base pour le projet de votre choix !

Le matériel nécessaire

Pour réaliser ce tutoriel, vous aurez besoin du matériel suivant :

Assembler le lecteur RFID RC522

Quand vous recevez le module RFID RC522, vous pouvez constater qu’il est livré avec un jeu de 2 fois 8 pins. La première étape va donc être de souder 8 de ces pins sur le lecteur RFID. Pas de panique, souder c’est très facile !

Vous devez donc insérer les PINs dans les emplacements prévus sur la carte RFID et les souder avec votre fer.

Module RFID RC522 soudéVous trouverez probablement des connecteurs droits et courbés. Je vous conseil d’utiliser les courbés, plus pratiques.

Si vous n’avez jamais soudé, je vous conseil cet excellent guide pour apprendre à souder de François de chez framboise314.fr.

Connecter le lecteur RFID et les LED à la Raspberry Pi

Avant de passer à l’écriture du code qui nous permettra de lire des badges RFID et de contrôler les LEDs, nous devons en premier lieu connecter tout les composants à la Raspberry Pi.

Pour rappel, le fait de brancher et débrancher des composants doit toujours se faire Raspberry Pi éteinte.

Brancher le lecteur RFID RC522 sur la Raspberry Pi

Le premier composant que nous allons brancher est le lecteur RFID.

Pour contrôler le lecteur RFID nous allons utiliser une bibliothèque externe. Hélas, celle-ci est écrite avec les ports GPIOs directement renseignés dans le code. Cela signifie que nous ne pouvons pas les configurer différemment et que nous sommes donc contraints d’utiliser exactement les mêmes ports que ceux prévus dans la librairie.

Voici un tableau listant les ports du lecteur et le port GPIO de la raspberry pi auquel vous devrez le relier.

Correspondance ports GPIO/ports RC522Reliez les ports du RC522 aux ports correspondants sur la Raspberry Pi.

Pour rappel, vous trouverez une carte des ports GPIO de la Raspberry Pi dans le premier tutoriel de cette série.

Brancher les LEDs

Après le lecteur RFID, connectons les LEDs à la Raspberry Pi.

Nous allons faire un montage très simple. Chaque LED aura son anode (la patte allongée) reliée à un port GPIO et les deux LEDs auront leur anode reliée à la même résistance, elle même reliée à un port GPIO de type Ground de la Raspberry Pi.

Ainsi, nous utilisons une seule résistance pour deux LEDs, et on limite le nombre de câbles.

Au final, une fois la carte RFID et les LEDs reliées à la Pi, vous devriez avoir un montage ressemblant à celui-ci.

À noter, vous pouvez aussi brancher la RC522 en direct sur la Raspberry Pi sans utiliser de breadbord.

Écrire le programme pour lire un badge RFID.

Nous avons un circuit fonctionnel, il ne nous reste plus qu’à activer les ports SPI de la raspberry pi, nécessaires pour utiliser le lecteur RFID, et écrire le programme qui permettra de lire un badge RFID.

Comme dans le tutoriel précédent, le programme sera écrit en Python. Ce tutoriel n’est pas un cours de Python, et nous ne ferons qu’expliquer de façon sommaire le programme. Si vous voulez en apprendre plus sur Python, nous avons publié un cours d’introduction à la programmation avec Python.

Activer le protocole SPI de la Raspberry Pi

Avant d’écrire le programme, activons le protocole SPI sur notre Raspberry Pi afin de pouvoir utiliser le module RFID.

Pour l’activer, il vous suffit de lancer la commande sudo raspi-config, sur votre raspberry, puis de choisir Interfacing Options, SPI, Yes et enfin Finish.

Installer la librairie pi-rc522

Dernière pré-requis, nous allons installer la librairie Python3 « pi-rc522 » qui permet de contrôler le lecteur RC522.

Nous allons utiliser Pip3, un gestionnaire de librairie pour Python.

Il vous suffit de lancer la commande :

sudo pip3 install pi-rc522 Écrire le programme pour lire l’identifiant d’un badge RFID

Chaque badge RFID possède un identifiant unique. C’est en lisant cet identifiant et en le comparant à une liste d’identifiants autorisés que l’on peut savoir si un badge est autorisé.

Nous allons donc écrire un programme nous permettant de lire un l’identifiant unique d’un badge RFID.

Comme nous l’avions fait dans le tutoriel précédent, nous allons écrire le programme dans le dossier /home/pi/electronic (si vous ne l’avez pas déjà fait, créez le dossier).

Dans ce dossier, créez un fichier read_rfid_uid.py et mettez-y le code suivant :

#!/usr/bin/env python3.5 #-- coding: utf-8 -- import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs from pirc522 import RFID import time GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board) GPIO.setwarnings(False) #On désactive les messages d'alerte rc522 = RFID() #On instancie la lib print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge #On va faire une boucle infinie pour lire en boucle while True : rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos if not error : #Si on a pas d'erreur (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps if not error : #Si on a réussi à nettoyer print('Vous avez passé le badge avec l\\'id : {}'.format(uid)) #On affiche l'identifiant unique du badge RFID time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Une fois le fichier enregistré, on en autorise l’exécution avec la commande :

sudo chmod +x /home/pi/electronic/read_rfid_uid.py

Nous pouvons maintenant démarrer le programme en l’appelant avec la commande :

/home/pi/electronic/read_rfid_uid.py

À chaque fois que vous passerez un badge RFID devant le lecteur, son identifiant unique sera affiché !

Écrire un programme qui permet d’afficher si un badge est valide ou non.

Maintenant que nous pouvons lire l’identifiant unique d’un badge, il ne nous reste plus qu’à adapter le code précédent pour comparer l’identifiant lu à un identifiant écrit dans le programme.

Nous allons donc modifier un peu le programme précédent pour qu’il compare l’uid lu à celui écris dans le programme, et allumer la led rouge ou verte selon le résultat.

Copiez donc le fichier précédent, dans un nouveau fichier verify_rfid.py et modifier le pour le code ci-dessous :

Modifiez la ligne RFID_UID pour mettre l’identifiant de votre tag RFID !

#!/usr/bin/env python3.5 #-- coding: utf-8 -- import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs from pirc522 import RFID import time GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board) GPIO.setwarnings(False) #On désactive les messages d'alerte LED_RED = 3 #Définit le numéro du port GPIO qui alimente la led rouge LED_GREEN = 5 #Définit le numéro du port GPIO qui alimente la led verte RFID_UID = [21, 35, 5, 43, 57] #Définit l'UID du badge RFID #Définit la fonction permettant d'allumer une led def turn_led_on (led) : GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO GPIO.output(led, GPIO.HIGH) #Allume la led #Définit la fonction permettant d'éteindre une led def turn_led_off (led) : GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO GPIO.output(led, GPIO.LOW) #Eteind la led #Définit la fonction permettant d'allumer la rouge et éteindre la verte def turn_red_on () : turn_led_off(LED_GREEN) #Eteind la led verte turn_led_on(LED_RED) #Allume la led rouge #Définit la fonction permettant d'allumer la verte et éteindre la rouge def turn_green_on () : turn_led_off(LED_RED) #Eteind la led rouge turn_led_on(LED_GREEN) #Allume la led verte rc522 = RFID() #On instancie la lib print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge #On va faire une boucle infinie pour lire en boucle while True : rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos if not error : #Si on a pas d'erreur (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps if not error : #Si on a réussi à nettoyer if RFID_UID == uid : print('Badge {} autorisé !'.format(uid)) turn_green_on() else : print('Badge {} interdit !'.format(uid)) turn_red_on() time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Il ne vous reste plus qu’à lancer le programme et tester !

Vous pouvez ensuite adapter le code pour vos propres projets, comme créer un serrure connectée, ou encore un jukebox utilisant des tags RFID !

Pour info, vous pouvez récupérer l’ensemble du code de ce tutoriel sur le Github de Raspbian France.

Dans le prochain tutoriel, nous verrons comment contrôler un servo-moteur avec la Raspberry Pi !

Lire l'article complet : Utiliser un lecteur RFID avec la Raspberry Pi.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires

Bartounet : IP FAILOVER MULTIPLES - DEDIBOX - PFSENSE - ESXi

logo pfsense              logo online    


                                                                 logovmware

Depuis quelques années j'utilise une Dédibox pour héberger mes machines virtuelles sous VMWare ESXi6.5

J'ai deux types de VM

- Des VM portant directement une IP Failover Online
- Des VM portant une IP dans un réseau Privé derrière un Firewall PFSense ( aussi une VM)

Cela est assez pratiques, les VM portant des IP Failover sont des serveurs accessibles en direct
sur Internet portant des services Open.
 
L'avantage est que je peux porter des multiples services Web sur les port 80 et 443 sans faire du NAT

Sauf que le problème est que ces VM sont très peu protégées ( seulement le pare feu Linux)
A contrario des VM derrière le PFSense qui bénéficie de toutes les protections.

Actuellement

pfsense avant



J'ai donc étudié la possibilité de pouvoir passer toutes mes VM derrière le PFSENSE

Cela permettra d'avoir un filtrage Fin et de bénéficier de tous les services PFSENSE ( IPS par exemple)

Pour Cela plusieurs prérequis qui'il a fallut lever:

- Comment porter plusieurs IP Failover sur une seule interface de mon PFSENSE???
- Comment porter 1 seul adresse MAC avec plusieurs IP Failover
- Comment paramétrer PFSENSE  pour assigner des IP Failover à certaines VM et pas d'autres.



La Cible
pfsense après


 Modifier l'adresse MAC de votre IP Failover pour utiliser une MAC Partagée qui sera porté par une VM


- Eteindre votre VM
- Se connecter sur l'interface Online
- Editer votre mac adress actuelle



maconline2
- Supprimer votre Mac address

mac3

- Une fois suprimée et mise à jour
- Editer la mac et choisissez "Utiliser une Adresse Mac Existante

mac4

- Chosir la mac adresse qui porte déjà la patte WAN de votre VM PFSENSE

mac5

macgroupee

A partir de là tous paquet à destination de votre IP Failover sera dirigé vers l'adresse MAC partagée portée par votre VM PFSENSE.



Sur PFSENSE:

- Ajouter une IP Virtuelle de type IP Alias ( Votre IP Faiolver que vous voulez migrer) en /32
  sur le WAN
virtualip



 - On voit ici 2 IP failover portées par mon pfsense  ( en plus de l'ip failover assignée à l'interface WAN)
ipfaiolverpfsense



Occupons nous du NAT :
- Notre VM ne portera plus directement l'IP Failover mais une ip Privée dans le réseau LAN PRIV ( 192.168.100.0/24)
- Nous allons choisir l'adresse IP 192.168.100.130

NAT ENTRANT
Pour cela nous allons dire à PFSENSE que tout ce qui arrive à destination de l'IP Failover sera redirigé vers 192.168.100.130
- Dans Firewall / NAT / 1:1

natentrant
 
natentrant

NAT SORTANT
Pour cela nous allons dire à PFSENSE que tout ce qui sort depuis 192.168.100.130 est natté avec l'IP Failover
- Dans Firewall / NAT / Outbound

natoutbound

Ici on voit que 192.168.100.130 et 192.168.100.110 sortiront avec 2 ip failover différentes
Le reste sortira avec l'adresse WAN par défaut ( qui est aussi une failover)

outboun2


Le Filtrage

Pour commencer faire une règle de filtrage Simple qui ouvre tout sur l'IP privée de la VM

filtrage


Sur la Machine Virtuelle qui portait auparavant l'ip Failover

- Sur votre VM qui portait auparavant votre IP Failover.
- Modifier son paramétrage pour etre dans le réseau Privé et ne plus utiliser le Vswitch public

vm lan


- Redemarrer la VM
- Modifier ces paramètres IP pour ne plus porter l'IP failover mais une IP Privée 192.168.100.130

- Avant

ipavant
 
- Après

ipapres

-Redémarrer la VM
- Après le reboot tout ping aussi bien l'adresse Pivée que Publique  ( failover)

ping

- On peut même tester le NAT Unbound

Exemple d'un wget sur un serveur apache externe, on voit bien notre ip publique failover s'afficher dans les logs

wget


Voilà , il vous reste à affiner vos règle de filtrages ( souvenez vous nous avions tout ouvert !! )
N'ouvrez que le necessaire. ( pour ma part par exemple SSH et HTTP)

Je vous conseille d'utiliser les ALIAS qui permettent de relier un objet à une adresse IP
Pratique, pas besoin de se rappeler des IP

rule alias

Gravatar de Bartounet
Original post of Bartounet.Votez pour ce billet sur Planet Libre.

Articles similaires

Carl Chenet : Édito de juillet 2019

Avec un peu de retard, l’édito récapitulant l’activité du blog en juin et les bonnes choses à venir en juillet 2019.

Debian

L’activité de la communauté Debian est riche avec la sortie de la nouvelle version stable “Buster”. J’ai écrit un article qui a bien marché sur sa date de sortie et je viens bien sûr publier rapidement un autre article sur les nouveautés de cette nouvelle version.

Débuter avec Git

Je continue ma série d’articles pour débuter avec Git selon une approche très concrète à base d’exemples.

Le prochain article, 6ème de la série, arrive la semaine prochaine, promis !

La newsletter du Courrier du hacker

Le Courrier du hacker continue sa croissance, aidée par de très gentilles mises en avant de blogueurs de la communauté, comme LinuxTricks, Lordre ou Seboss666. Encore merci à eux !

La prochaine étape est le 100ème numéro que j’attends avec impatience. Ce sera l’occasion de communiquer plus largement sur l’étape cruciale de cette aventure dans le monde des newsletters pour moi.

LinuxJobs.io

J’ai récemment lancé LinuxJobs.io, le pendant américain de LinuxJobs.fr. Il faudra que j’en parle sur ce blog ce mois-ci.

LinuxJobs.io Conclusion

Le mois de juillet est traditionnellement plus calme. Cela devrait me permettre de dégager davantage de temps pour le blog et d’au moins préparer de futurs articles.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Suivre l’actualité du Logiciel Libre et Open Source francophone

Abonnez-vous au Courrier du hacker, une newsletter hebdomadaire résumant le meilleur de l’actualité francophone du Logiciel Libre et Open Source. Déjà plus de 90 numéros et plus de 2000 abonnés.

E-mail S'abonner

The post Édito de juillet 2019 appeared first on Carl Chenet's Blog.

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #27

Pour la 27ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : Linux sur le desktop

Je dédicace cet article à Cyrille et Ice. Cyrille qui n’arrête pas d’arrêter de parler du desktop Linux, Ice qui m’a chatouillé suffisamment pour que je cesse de leur laisser tout dire sans les confronter à des arguments contraires et participer à une saine émulation. Des échanges, des arguments, du respect, ce que le blogging devrait être. Personne n’a vraiment raison ou tort, à croiser les points de vue on dessine mieux ce que l’on voit.

Linux, Linux, Linux ou Linux

Je vais débuter en précisant une chose fort importante, je ferai une distinction entre plusieurs sujets dont nous avons la très mauvaise habitude de parler en disant simplement Linux :

  • Le noyau Linux : Le kernel
  • Les distributions Linux : Debian, Ubuntu, CentOS, Arch, Mageia…
  • Le bureau Linux, Linux sur le desktop : Distributions Linux comprenant des environnements de bureau (Gnome, KDE, Xfce, Mate…) et les logiciels
Le noyau Linux a gagné

On disait déjà que le noyau Linux était partout : routeurs, serveurs, systèmes embarqués, smartphones. Il débarque à présent sur Windows (90% du marché desktop), c’est une victoire éclatante, totale. Microsoft intégrant le noyau Linux, témoigne de sa place importante pour ne pas dire indispensable dans l’IT. Sur le cloud de Microsoft Azure, Linux est sur la moitié des machines virtuelles. Sur The Cloud Market on peut se faire une idée de l’utilisation écrasante des distributions Linux pour Amazon EC2. Rappelons également que tous les chromebooks lancés en 2019 seront compatibles avec Linux.

Les linuxiens peuvent et devraient se réjouir : Le noyau Linux n’a jamais autant été utilisé, diffusé et proche de l’utilisateur final.

Linux se professionnalise bien plus qu’il ne se démocratise

Le noyau Linux est utilisé de plus en plus par les professionnels et l’industrie, le desktop Linux touche difficilement plus d’utilisateurs.

Le noyau Linux débarquant sur Windows n’intéressera que les professionnels, les geeks, les passionnés. Mme Michu n’installera pas WSL et ne se servira pas du noyau Linux sur son Windows 10, très clairement le travail de Microsoft autour de Linux est à destination des professionnels. Il ne faut pas s’attendre à ce que les parts de marché du bureau Linux augmentent suite à l’arrivée du noyau Linux sur Windows 10.

Pendant ce temps les chiffres (1, 2, rares et discutables pour certains) tablent autour de 3% pour Linux sur le desktop. Je vais être dur parce qu’apparemment une majorité de linuxiens ne veut pas l’accepter : C’est que dalle, on parle de 3% pas de 20%.

Sur ces 5 dernières années :

  • La vente liée était une bataille importante, elle a été perdue. Tant que l’utilisateur final achètera un pc avec Windows installé dessus, aucune chance de « percer » pour Linux sur le desktop
  • Linux sur le desktop est à 3%, on a pris 1% en 5 ans (en comptant Chrome OS…)
  • Windows 10 ne respecte pas votre vie privée, les utilisateurs ont voté, ils l’utilisent quand même et n’ont pas migré massivement vers une distribution Linux
  • La migration d’un ancien PC sous Windows vers Windows 10 est proposée gratuitement, excellent coup de Microsoft
  • L’UEFI a compliqué l’installation des distribs Linux
La technique et l’humain

Lorsque je vois la question : Linux est-il prêt pour le desktop ? Je pense surtout qu’on parle technique : Est-ce que techniquement Linux est prêt pour le desktop ?

Oui, depuis un moment. D’un point de vue distributions Linux nous avons un choix pléthorique, de grosses écuries (Debian, Ubuntu, CentOS, Arch…). Nous avons aussi pas mal de distribs avec environnements de bureau qui se prêtent à une utilisation professionnelle, un large choix logiciels, des communautés importantes et pérennes, des systèmes largement stables, une excellente sécurité… mais est-ce que Linux est à la hauteur de Windows ?

Il ne suffit pas d’être à la hauteur, il faut être meilleur. On ne change pas pour équivalent mais pour mieux. LibreOffice fait le job mais il restera en-dessous de Microsoft Office pendant encore longtemps.

Il faut comprendre et accepter, les dés sont pipés : 1/ Une majorité de logiciels et d’outils (notamment professionnels) ne fonctionnent que sur Windows 2/ Les formats de fichier propriétaire emprisonnent utilisateurs/entreprises/politiques : Microsoft Office (.docx, .xlsx), Adobe (.psd, .ai) 3/ Les utilisateurs sont formés ou travaillent sur Windows et Microsoft Office, lorsqu’ils achètent un PC perso il est sur Windows 4/ La domination de Windows sur le desktop depuis 20 ans 5/ On reproche aux logiciels libres leur manque de finition sans les soutenir financièrement, il manque des profils pointus comme des graphistes, des traducteurs, des UI/UX designers… on a surtout des devs

C’est déjà une situation très compliquée sur ces points mais pour moi le vrai problème est le coût du changement. Pourquoi un utilisateur lambda passerait à une distrib Linux si il est satisfait de Windows (que son entreprise utilise et paye) ? C’est un effort colossal de formation, compréhension, changement que peu de personnes sont prêtes à faire sans y être obligées (en général professionnellement). On parle énergie, temps et motivation aussi ? La complexité de l’outil informatique est trop importante face à la volonté et capacité des individus.

La vérité est ailleurs

1,3 milliards de PC en usage, 3,5 milliards de smartphones en usage. Sur le web 50,7% du trafic mondial provient du mobile, 45,5% du desktop. Le smartphone est le nouveau pc.

Il n’est pas question de dire que le PC va disparaître, certains usages ne peuvent pas être remplacés (utilisation professionnelle, bureautique, graphisme…) mais aujourd’hui l’équipement roi est le smartphone. L’enjeu n’est plus le PC, les ventes stagnent, les usages ont évolué. On se tourne de plus en plus vers le web et le cloud : Bureautique avec Office 365 par exemple, Gmail comme client de messagerie, Google Stadia pour jouer. Le smartphone permet de nouveaux usages : Photos, vidéos, jeux en réalité augmentée, GPS, communication… et on l’a partout avec nous.

L’utilisateur, ses besoins, ses usages

Comme d’habitude on se focalise sur l’outil alors qu’on devrait parler des besoins et usages de l’utilisateur. On continue à parler de Linux sur le desktop alors que le monde à les yeux rivés sur son smartphone. Pour gagner une guerre, il faut au moins être sur le champ de bataille, pas à côté.

Il est naturel lorsqu’on apprécie Linux qu’on souhaite voir progresser son usage dans le cœur des utilisateurs. La distinction doit pourtant être faite entre installer un Linux sur un poste ET avoir un utilisateur satisfait et autonome sur Linux. Le nombre d’utilisateurs m’importe peu, leur satisfaction totalement. Je suis un utilisateur du bureau Linux, je passe plus de 50 heures par semaine dessus à titre personnel et professionnel. Je suis extrêmement satisfait alors même que cette semaine mon système était pété.

Le choix de l’utilisateur doit être éclairé, sa migration désirée et volontaire, il ne doit pas être contraint mais soutenu, pas jugé mais écouté. Le desktop devient un marché de niche où ne resteront bientôt plus que professionnels, passionnés, power-users, créatifs. Les logiciels cédent place au cloud, web, apps. Pour une majorité d’utilisateurs leurs usages se résument à surfer, écouter de la musique, regarder des vidéos, jouer casual. On allume de moins en moins un PC pour ça.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : Petits meurtres entre amis

J’ai trouvé cet article passionnant, j’adore ces astuces rendant le système inutilisable ha ha. Je débute une liste, j’espère que vous y participerez ;)

Fork bomb

La fork bomb est probablement l’attaque la plus connue :(){:|:&};:, bien expliquée ici. On multiplie les processus jusqu’à saturation du système.

Advanced fork bomb

Sur le même principe mais en masquant la visibilité/compréhension de la fork bomb echo "IrYWdl&r()(Y29j&r{,3Rl7Ig}&r{,T31wo});r26 décrite ici (et ).

rm -rf *

Dans le même article l’auteur propose $(echo cm0gLXJmICoK | base64 -d) qui correspond à un rm -rf * dans le dossier courant.

Zip bomb

J’entends surtout parler de cette technique pour lutter contre les scripts kiddies et les scanners de vulnérabilité attaquant les sites web. Korben et Lord ont expliqué le principe, on zippe un gros fichier dd if=/dev/zero bs=1M count=10240 | gzip -9 > 10G.php, on le met à disposition sur son site, le scanneur tente d’ouvrir la page en décompressant le fichier qui va bouffer énormément de CPU et de RAM. J’en parle à titre informatif, ça sort du cadre de l’article présent.

En revanche les limites de la zip bomb en fournissant un fichier .zip d’une taille raisonnable (en général quelques Mo) qui après décompression des données occupera un espace disque très important ont été repoussées. Cette bombe zblg.zip (que vous pouvez renommer photos.zip par exemple) de 10 Mo initialement occupera une fois dézippée 281 To.

Ma contribution : Changer les droits de .ICEauthority ou .Xauthority

Je propose une approche différente et plus vicieuse selon moi. Sans connaissances avancées de Linux, la victime restera bloquée et ne pourra pas se sortir du piège. Je précise que c’est non destructif, aucun risque de perte de données.

Je vous renvoie vers les liens .ICEauthority et .Xauthority pour connaître le rôle de chaque fichier. Ils sont utilisés par le serveur X, .Xauthority est généré par le programme xauth notamment. Pour les lister, je fais ls -l .{ICE*,X*}. Ces fichiers appartiennent à l’utilisateur courant avec des droits 600.

ls -l .{ICE*,X*} -rw------- 1 cascador cascador 918 Jul 6 06:08 .ICEauthority -rw------- 1 cascador cascador 48 Jul 6 06:08 .Xauthority

Lors de l’ouverture d’une session graphique des informations sont écrites dans ces fichiers, si ce n’est pas possible… la session graphique se referme immédiatement. Concrètement vous êtes sur l’écran d’accueil, vous tapez votre mot de passe, la session s’ouvre apparemment 1-2 secondes sur un écran noir puis vous retombez sur l’écran d’accueil. Bonne chance !

Il faut que vous ayez un accès au pc de la future victime, se placer à la racine du home de l’utilisateur (ce qui est le cas par défaut lorsqu’on ouvre un terminal) puis au choix chmod 400 .ICEauthority ou chmod 400 .Xauthority. Perso je fais chmod 400 .ICE* que je précède d’un espace car lorsqu’une commande est précédée d’un espace, bash (configuration par défaut) ne logue pas la commande dans le .bash_history donc aucune trace du crime hé hé.

La beauté de la chose également est que tout continue à fonctionner parfaitement à l’instant t, c’est seulement à la prochaine ouverture de la session graphique (probablement au prochain démarrage du pc) que la victime se retrouvera totalement démunie.

Pour corriger cette petite blague :

  • Sur l’écran d’accueil, Ctrl+Alt+F1 afin d’accéder à la console tty1
  • Tapez les identifiants (ou demander à la victime de taper ses identifiants plutôt), ça ouvrira la session en mode terminal
  • chmod 600 .ICEauthority ou chmod 600 .Xauthority suivant quel fichier vous avez modifié
  • On retourne à la session graphique avec Ctrl+Alt+F7 puis vous vous loguez normalement
Pour participer

Afin de rester dans le cadre de l’article, votre proposition doit respecter les règles suivantes :

  • Aucun droit superutilisateur ne doit être requis sinon il n’y a aucun intérêt, en étant root ou avec sudo il y a 1000 façons de flinguer le système
  • La commande ou le concept doit rester simple/accessible à comprendre ou à mettre en œuvre, les exemples cités ci-dessus utilisent en général une seule ligne de commandes. Si vous proposez un script ça sort du cadre
  • L’attaque doit être basée sur la ligne de commandes, c’est le thème principal
  • L’attaque doit rendre le système inutilisable/instable

Merci d’avance à ceux qui partageront leurs propositions !

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Full Circle Magazine FR : Le numéro 145

Bonjour, Les trois membres de l'équipe sont heureux de vous présenter le numéro de mai (le numéro 145) en français. Comme d'habitude, vous pouvez le lire ou le visionner sur notre page NUMÉROS ou le récupérer directement en cliquant sur la photo de la couverture ci-dessous. issue_145.png Ce mois-ci, vous y trouverez, notamment :

  • Une courte présentation d'un logiciel généalogique qui s'appelle Gramps ;
  • D'autres tutoriels, comme Python, netcat et Inkscape;
  • La critique du livre Learning Perl 6 par un auteur mystérieux. Il paraît que le contenu du livre est excellent, mais son prix fera hésiter plus d'un : presque 55 $ !
  • Et beaucoup de d'autres choses dont une présentation de l'OTA-9 pour Ubuntu Touch phones, l'opinion d'Erik sur l'utilisation efficace de LibreOffice Draw (Dessin), Ubuntu au quotidien, et un entretien avec le jeune (16 ans) responsable de GhostBSD...

Nous vous en souhaitons bonne lecture.

Bab, scribeur et relecteur et d52fr et moi, AuntieE, traducteurs et relecteurs.

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : Plus de barre des tâches et autres joyeusetés sur Mint Xfce après mises à jour

Si comme moi vous faites régulièrement les mises à jour et que vous êtes sur Mint Xfce, vous rencontrez peut-être de gros problèmes : Plus de barre des tâches, plus accès aux boutons Réduire/Maximiser des fenêtres, difficultés à ouvrir des applications en maximisé comme Firefox, etc.

Pour rappel on peut retrouver la liste des paquets installés dans /var/log/dpkg.log. Pour s’informer sur le problème :
https://forums.linuxmint.com/viewtopic.php?p=1654428

Je vous donne la procédure que j’ai utilisé qui me semble la plus simple et la plus fonctionnelle :

  • Vous vous loguez sur votre session
  • Vous ouvrez un terminal (vous pouvez faire un clic droit sur le bureau puis Ouvrir dans un terminal)
  • Vous tapez la commande mintdesktop puis vous choisissez Xfwm4 + Compton enfin vous cliquez sur le bouton Close
  • Vous tapez la commande sudo reboot qui va redémarrer votre pc puis vous vous loguez sur votre session

À titre d’information, vous pouvez aussi procéder autrement :

  • Vous appuyez sur la touche Super (Windows) ce qui devrait ouvrir le menu Whisker de Xfce
  • Vous faites une recherche sur Paramètres du bureau, vous cliquez dessus puis vous choisissez Xfwm4 + Compton enfin vous cliquez sur le bouton Close
  • Vous redémarrez votre pc puis vous vous loguez sur votre session

De quoi alimenter l’éternelle question : Linux est-il prêt pour le desktop ? ha ha ha

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : J’ai adopté Z-Shell

Bonjour, Il y a quelques semaines, j'ai fait l'acquisition d'un très beau grimoire édité par la maison d'édition allemande Rheinwerk et qui traite de la programmation Shell. C'est bien dommage qu'une telle collection n'existe pas dans notre belle langue française car dans une bibliothèque, ça en jette. Je possède deux ouvrages de cette collection estampillée [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #26

Pour la 26ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Jean-Pierre Morfin : Et si on décentralisait aussi les plateformes de publications ?

Vous connaissez certainement des plateformes de publications comme Medium ou Ghost qui proposent aux auteurs, blogueurs et experts de publier des articles et de recueillir les réactions des lecteurs sous forme de commentaires ou "likes". Pour interagir avec les auteurs, il est nécessaire d'avoir un compte sur la plateforme, ou à défaut un compte Facebook, Google ou leurs consorts. Si bien que lorsque vous n'avez pas ou plus ce genre de comptes parce que vous êtes en pleine période de "dégooglisation", vous vous retrouvez frustré(e) devant le panneau de connexion pour interagir avec les autres.

Et si une nouvelle plateforme, décentralisée (pouvant s'installer facilement sur plein de serveurs), proposait aux détenteurs de comptes Mastodon, PeerTube, Pleroma, PixelFed, Funkwhale, Hubzilla ou encore GNU Social, de publier des articles simplement sur ce réseau qu'est le Fediverse ? Cela permettrait à tous, sans compte GAFAM, mais avec un compte du Fediverse d'interagir avec l'auteur. L'article serait bien sûr accessible à tous les lecteurs.

C'est ce que pourrait proposer Diffu, un logiciel qui se veut simple à installer : on dézippe un paquet PHP sur un serveur web. Il pourrait être utilisé par celui qui veut garder la maîtrise de ces données en utilisant sa propre instance pour publier ; ou par des associations, des organisations, des CHATONS par exemple, qui souhaitent proposer ce service en plus des autres outils alternatifs.

Pour développer cette solution, mon associé et moi-même lançons une campagne de financement participatif qui nous permettra de prendre le temps de faire les choses correctement. Si le projet vous plaît ou vous semble utile, n'hésitez pas à contribuer !

Pour voir à quoi cela va ressembler, visitez la maquette. Elle n'est bien sûr pas fonctionnelle mais elle permet de se faire une idée.

Copie d'écran Diffu

Copie d'écran Diffu

Gravatar de Jean-Pierre Morfin
Original post of Jean-Pierre Morfin.Votez pour ce billet sur Planet Libre.

Simon Vieille : API pour récupérer le contenu Open Graph d'une page web

Pour la fonctionnalité de partage de liens sur ce blog, j'ai développé un script qui récupére le contenu d'une page et analyse ses balises pour identifier ses données Open Graph.

Dans un autre contexte, j'ai rencontré un bug dans Wallabag qui l'empêche de récupérer le contenu de plusieurs pages web que je désirait lire plus tard. Avec la volonté de créer un rapport de bug, la documentation m'a amené sur la piste du projet Graby utilisé par Wallabag.

Pour comprendre et peut-être proposer un correctif, j'ai joué avec Graby et ça m'a amené à réaliser une API pour remplacer le script utilisé par le blog, en combinent Graby et fusonic/opengraph. L'objectif de l'API est donc de retourner des données générées par Graby et OpenGraph au format JSON.

Voici à quoi ressemble un retour d'appel à l'API avec les données Open Graph :

Le projet est dépendant de PHP 7.3 et c'est libre. Le code source est dispo ici.

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Articles similaires

Simon Vieille : API pour récupérer le contenu OpenGraph d'une page web

Pour la fonctionnalité de partage de liens sur ce blog, j'ai développé un script qui récupére le contenu d'une page et analyse ses balises pour identifier ses données Open Graph.

Dans un autre contexte, j'ai rencontré un bug dans Wallabag qui l'empêche de récupérer le contenu de plusieurs pages web que je désirait lire plus tard. Avec la volonté de créer un rapport de bug, la documentation m'a amené sur la piste du projet Graby utilisé par Wallabag.

Pour comprendre et peut-être proposer un correctif, j'ai joué avec Graby et ça m'a amené à réaliser une API pour remplacer le script utilisé par le blog, en combinent Graby et fusonic/opengraph. L'objectif de l'API est donc de retourner des données générées par Graby et OpenGraph au format JSON.

Voici à quoi ressemble un retour d'appel à l'API avec les données Open Graph :

Le projet est dépendant de PHP 7.3 et c'est libre. Le code source est dispo ici.

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Articles similaires

Pages