PROJET AUTOBLOG


le hollandais volant

Site original : le hollandais volant

⇐ retour index

L’ordinateur c’est magique

samedi 4 mars 2017 à 04:24

C’est super intéressant d’éplucher les journaux de démarrage sur un ordinateur.

Un PC c’est juste une machine avec processeur central (une puce électronique) qui fait tout le travail. Ce processeur central ce n’est rien d’autre qu’un agencement bien défini de quelques milliards de transistors (de mini-interrupteurs électroniques) reliés les uns aux autres, s’actionnant successivement, comme une chaîne.

Un programme informatique (ou un bout de code), c’est une suite d’instruction indiquant dans quel ordre ces interrupteurs doivent être actionnés une fois que l’ordinateur est mis sous tension. Dès cet instant, ce sont des dizaines, voire des centaines de millions de lignes de code qui sont lues et traitées par le processeur central, et les interrupteurs sont alors actionnées des milliards de fois chaque seconde.

Le résultat final est ce que l’on voit à l’écran : chaque pixel de l’écran, chaque son dans les enceintes, chaque bit écrit sur un disque dur… sont produits grâce et par le calcul du processeur.

Sur un PC grand public, les programmes pré-installés sont là pour automatiser le plus grand nombre de chose. Ainsi, il suffit d’allumer l’ordinateur et votre session utilisateur se lance : vos fichiers sont ouverts, votre fond d’écran est affiché, votre PC se connecte au réseau Wifi, etc.

Ceci peut semble simple, parfois c’est considéré comme acquis. Mais il ne faut jamais oublier que si votre PC fait tout ça, c’est parce que c’est voulu. Prenons par exemple juste ce dernier point : « votre PC se connecte au réseau Wifi ». C’est un programme à lui seul et il se passe plein de chose :

Pour plus de détails, voici ce que mon ordinateur fait au démarrage de l’ordinateur, quand il veut se connecter à un réseau Wifi :

mars 3 14:07:48 dell15 NetworkManager[956]: <info> NetworkManager (version 1.2.2) is starting...
mars 3 14:07:48 dell15 NetworkManager[956]: <info> Read config: /etc/NetworkManager/NetworkManager.conf (etc: default-wifi-powersave-on.conf)
[…]
mars 3 14:07:48 dell15 NetworkManager[956]: <info> init!
mars 3 14:07:48 dell15 NetworkManager[956]: <info>    interface-parser: parsing file /etc/network/interfaces
mars 3 14:07:48 dell15 NetworkManager[956]: <info>    interface-parser: finished parsing file /etc/network/interfaces
[…]
mars 3 14:07:48 dell15 NetworkManager[956]: <info> end _init.
[…]
mars 3 14:07:48 dell15 NetworkManager[956]: <info> (25422752) ... get_connections (managed=false): return empty list.
mars 3 14:07:48 dell15 NetworkManager[956]: <info> keyfile: new connection /etc/NetworkManager/system-connections/Lord (8ec2bec8-2a08-461b-96ae-e124650b1cd6,"Lord")
mars 3 14:07:48 dell15 NetworkManager[956]: <info> keyfile: new connection /etc/NetworkManager/system-connections/Livebox-40nf4 (8b56671d-4dcb-4563-83e9-badd50e52f92,"Livebox-40nf4")
mars 3 14:07:48 dell15 NetworkManager[956]: <info> keyfile: new connection /etc/NetworkManager/system-connections/Timo (0792c0a8-faa0-4ecf-a439-01e2fd7097e1,"Timo")
[…]
mars 3 14:07:48 dell15 NetworkManager[956]: <info> manager: WiFi enabled by radio killswitch; enabled by state file
mars 3 14:07:48 dell15 NetworkManager[956]: <info> manager: WWAN enabled by radio killswitch; enabled by state file
mars 3 14:07:48 dell15 NetworkManager[956]: <info> manager: Networking is enabled by state file
[…]
mars 3 14:07:48 dell15 NetworkManager[956]: <info> (wlp2s0): using nl80211 for WiFi device control
mars 3 14:07:48 dell15 NetworkManager[956]: <info> device (wlp2s0): driver supports Access Point (AP) mode
mars 3 14:07:48 dell15 NetworkManager[956]: <info> manager: (wlp2s0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/0)
mars 3 14:07:48 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
[…]
mars 3 14:07:48 dell15 NetworkManager[956]: <info> supplicant: wpa_supplicant running
mars 3 14:07:48 dell15 NetworkManager[956]: <info> device (wlp2s0): supplicant interface state: init -> starting
mars 3 14:07:48 dell15 NetworkManager[956]: <info> device (wlp2s0): supplicant interface state: starting -> ready
mars 3 14:07:48 dell15 NetworkManager[956]: <info> manager: startup complete
mars 3 14:07:48 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: unavailable -> disconnected (reason 'supplicant-available') [20 30 42]
mars 3 14:07:52 dell15 NetworkManager[956]: <info> device (wlp2s0): supplicant interface state: ready -> inactive
mars 3 14:07:55 dell15 NetworkManager[956]: <info> policy: auto-activating connection 'Timo'
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): Activation: starting connection 'Timo' (0792c0a8-faa0-4ecf-a439-01e2fd7097e1)
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: disconnected -> prepare (reason 'none') [30 40 0]
mars 3 14:07:55 dell15 NetworkManager[956]: <info> manager: NetworkManager state is now CONNECTING
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: prepare -> config (reason 'none') [40 50 0]
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): Activation: (wifi) access point 'Timo' has security, but secrets are required.
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: config -> need-auth (reason 'none') [50 60 0]
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: need-auth -> prepare (reason 'none') [60 40 0]
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: prepare -> config (reason 'none') [40 50 0]
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): Activation: (wifi) connection 'Timo' has security, and secrets exist.  No new secrets needed.
mars 3 14:07:55 dell15 NetworkManager[956]: <info> Config: added 'ssid' value 'Timo'
mars 3 14:07:55 dell15 NetworkManager[956]: <info> Config: added 'scan_ssid' value '1'
mars 3 14:07:55 dell15 NetworkManager[956]: <info> Config: added 'key_mgmt' value 'WPA-PSK'
mars 3 14:07:55 dell15 NetworkManager[956]: <info> Config: added 'psk' value '<omitted>'
mars 3 14:07:55 dell15 NetworkManager[956]: <info> sup-iface[0x1860580,wlp2s0]: config: set interface ap_scan to 1
mars 3 14:07:55 dell15 NetworkManager[956]: <info> device (wlp2s0): supplicant interface state: inactive -> associating
mars 3 14:07:58 dell15 NetworkManager[956]: <info> WiFi hardware radio set enabled
mars 3 14:07:58 dell15 NetworkManager[956]: <info> WWAN hardware radio set enabled
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): supplicant interface state: associating -> 4-way handshake
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): supplicant interface state: 4-way handshake -> completed
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): Activation: (wifi) Stage 2 of 5 (Device Configure) successful.  Connected to wireless network 'Timo'.
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: config -> ip-config (reason 'none') [50 70 0]
mars 3 14:07:59 dell15 NetworkManager[956]: <info> dhcp4 (wlp2s0): activation: beginning transaction (timeout in 45 seconds)
mars 3 14:07:59 dell15 NetworkManager[956]: <info> dhcp4 (wlp2s0): dhclient started with pid 1954
mars 3 14:07:59 dell15 NetworkManager[956]: <info>   address 192.168.1.78
mars 3 14:07:59 dell15 NetworkManager[956]: <info>   plen 24 (255.255.255.0)
mars 3 14:07:59 dell15 NetworkManager[956]: <info>   gateway 192.168.1.254
mars 3 14:07:59 dell15 NetworkManager[956]: <info>   server identifier 192.168.1.254
mars 3 14:07:59 dell15 NetworkManager[956]: <info>   lease time 86400
mars 3 14:07:59 dell15 NetworkManager[956]: <info>   domain name 'lan'
mars 3 14:07:59 dell15 NetworkManager[956]: <info> dhcp4 (wlp2s0): state changed unknown -> bound
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: ip-config -> ip-check (reason 'none') [70 80 0]
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: ip-check -> secondaries (reason 'none') [80 90 0]
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): state change: secondaries -> activated (reason 'none') [90 100 0]
mars 3 14:07:59 dell15 NetworkManager[956]: <info> manager: NetworkManager state is now CONNECTED_LOCAL
mars 3 14:07:59 dell15 NetworkManager[956]: <info> manager: NetworkManager state is now CONNECTED_GLOBAL
mars 3 14:07:59 dell15 NetworkManager[956]: <info> policy: set 'Timo' (wlp2s0) as default for IPv4 routing and DNS
mars 3 14:07:59 dell15 NetworkManager[956]: <info> dns-mgr: Writing DNS information to /sbin/resolvconf
mars 3 14:07:59 dell15 NetworkManager[956]: <info> device (wlp2s0): Activation: successful, device activated.
mars 3 14:08:00 dell15 NetworkManager[956]: <info> dns-mgr: Writing DNS information to /sbin/resolvconf
mars 3 14:08:01 dell15 NetworkManager[956]: <info> dhcp6 (wlp2s0): activation: beginning transaction (timeout in 45 seconds)
mars 3 14:08:01 dell15 NetworkManager[956]: <info> dhcp6 (wlp2s0): dhclient started with pid 2173
mars 3 14:08:01 dell15 NetworkManager[956]: <info> policy: set 'Timo' (wlp2s0) as default for IPv6 routing and DNS
[…]
mars 3 14:08:01 dell15 NetworkManager[956]: <info> dhcp6 (wlp2s0): state changed unknown -> bound
mars 3 14:08:01 dell15 NetworkManager[956]: <info> dhcp6 (wlp2s0): client pid 2173 exited with status 0
mars 3 14:08:01 dell15 NetworkManager[956]: <info> dhcp6 (wlp2s0): state changed bound -> done

Même si vous ne comprenez pas tout, vous pouvez en extraire des bribes d’information, comme « starting connection 'Timo' », « connection 'Timo' has security » ou encore « successful. Connected to wireless network 'Timo' »

Cette procédure, minutieusement coordonnée par tout un tas de protocoles (entre le processeur et la carte wifi, mais aussi entre la carte wifi et votre box) a dû être écrite et imaginée par une personne, ou un groupe de personnes.

L’informatique, ce n’est pas comme les lois de la physique. La gravitation, l’électromagnétique, ce sont des choses qui sont là et qu’on essaye de comprendre pour les utiliser à notre avantage.
L’informatique, lui, c’est un domaine purement artificiel que l’on a créé pour traiter de l’information à notre place et nous simplifier la vie, et aujourd’hui le monde tourne grâce à ça.

C’est beau.
C’est magique.

Votez pour la recherche et la science : ça sauve des vies

samedi 25 février 2017 à 14:41

Je suis en train de rédiger un article sur fonctionnement de l’imagerie médicale (IRM). Pour faire simple, l’IRM fonctionne en analysant la réponse des atomes d’hydrogène de notre corps à un intense champ magnétique. L’image obtenue rend compte de la distribution de cet hydrogène dans le corps et permet donc de repérer les organes et des tissus. Si l’image montre une région qui ne devrait pas être là, il peut s’agit d’une tumeur qu’il faut aller enlever.

Cette méthode a été mise au point pour analyser de la lumière traversant un nuage d’hydrogène excité par des champs magnétique. Ce besoin très spécifique a été rencontré dans un domaine bien précis : l’astronomie.
Les nuages d’hydrogène interstellaires sont parfois soumis à des champs magnétiques (stellaires par exemple) et la lumière, qui traverse ou qui est émise par ces nuages, nous parvient en présentant des distorsions bien particulières qu’il est possible d’interpréter.

Comme pour tant d’autres choses, donc, si vous êtes sauvés aujourd’hui grâce à la découverte d’une tumeur au moyen d’un appareil à IRM, vous pouvez remercier les investissements publics faits il y 50 ans dans l’astronomie, l’exploration spatiale et la recherche scientifique.

Parce que chercher à interpréter des raies spectrales de lumière émise par de l’hydrogène interstellaire situé à 500 années-lumières de nous permet aujourd’hui de sauver des vies en détectant des cancers.

Oui, ceci est un message qui rejoint ces deux autres articles :

Qui êtes vous pour dire que la recherche faite au CERN ou sur l’ITER (et sur tant d’autres projets, y compris sur Mars et dans l’espace) constitue de l’argent perdu et un investissement à supprimer ? Vous venez du futur ?

Linux : rendre le terminal plus lisible

lundi 13 février 2017 à 16:36

Travaillant sous Linux Mint plutôt qu’Ubuntu, j’ai déjà un terminal un peu plus joli (coloré, etc.). Mais on peut encore l’améliorer un peu.

Cet article est écrit après avoir vu celui de Frank Ridel dans son article pour effacer les anciens kernels de Fedora.
Son terminal est obtenu avec le petit programme Powerline (site) : c’est un package qu’il est possible d’installer (il se trouve dans les dépôts Debian/Ubuntu/Mint). Il faut aussi appliquer quelques manipulations pour l’utiliser à 100% (en particulier les polices d’écriture).

Powerline est très complet et ne se contente pas seulement d’embellir le terminal, mais également divers programmes en CLI, comme Vim.

Sur mon ordi cependant j’ai choisit de ne pas utiliser Powerline mais juste de me rapprocher du design et des couleurs. Le résultat est le suivant :

colored terminal
Comme vous voyez, le prompt normal est en bleu, mais il passe en rouge quand on se connecte en root.

Ce résultat là est obtenu avec deux lignes à ajouter/éditer dans deux fichiers.
Pour la partie bleue, vu que ça correspond à votre votre compte, il faut éditer le fichier ~/.bashrc à vous (remplacez pluma par gedit si nous n’êtes pas sous Mint ou Mate) :

pluma .bashrc

Et ajouter dans le fichier :

# BLEU + GRIS
PS1='\n\[\e[1;48;5;31m\] \u \[\e[48;5;240m\] \W \[\e[0m\] '

Puis enregistrer le fichier.
Ensuite pour root :

sudo pluma /root/.bashrc

Et ajouter ceci à la fin :

PS1='\n\[\e[1;48;5;196m\] \u \[\e[48;5;240m\] \w \[\e[0m\] '

Puis enregistrer le fichier.

Maintenant ouvrez un nouveau terminal et voyez le prompt beaucoup plus visible parmi tout le texte.
Si les couleurs ne vous conviennent pas, vous pouvez les changer. Il s’agit de changer les codes correspondant à la couleur de fond (les 31 et 196 sur les lignes) par celles correspondant à une autre couleur, comme explique là : Bash tips: Colors and formatting.

La stylisation du terminal peut se faire selon beaucoup de façons différentes.

Acharnement

lundi 30 janvier 2017 à 17:17

Je rêve… Le service des impôts, qui n’a évidemment rien de mieux à faire, découvre qu’un site de torrents conseille aux internautes d’utiliser le logiciel VLC pour visionner les fichiers vidéos qu’ils proposent.

Conclusion de Bercy ? VLC les paye pour qu’ils fassent de la pub.
Et qui dit « paye », dit contrat juteux, argent et ils veulent des explications (concrètement : des noms, des adresses, et des comptes bancaires), avec 5000 € d’amende en cas de refus (on rigole pas à Bercy).

Comme ils disent sur Twitter chez VLC : Comment expliquer Internet aux impôts ?

Finalement la DGFP indique que c’était une erreur informatique d’appréciation. En espérant qu’ils comprennent qu’un simple lien n’est pas synonyme de contrat juteux.
Sinon je veux bien jouer moi aussi :

* https://portail.dgfip.finances.gouv.fr/portail/accueilIAM.pl
* https://www.impots.gouv.fr/portail/
* http://www.elysee.fr/
* http://france.fr/

Où sont mes millions maintenant ?

Je trouve quand même assez gonflé qu’ils « attaquent » de la sorte l’association VideoLan (éditrice de VLC), quand on sait que Microsoft passe des contrats plus ou moins obscures avec la République et que de toute façon on a toujours toutes les entreprises de la high-tech qui ne payent aucun impôt en France et contre quoi très peu est effectué concrètement.
J’imagine que taper sur un petit poisson c’est plus simple que taper sur des gros requins.

Enfin, pour finir, si tout le monde conseil le logiciel VLC un peu partout, c’est p't-être bien parce que c’est un excellent logiciel, sûrement le meilleur au monde dans son domaine (loin devant toute la concurrence). Ah et en plus il est basé en France, il est français et était là bien avant que les politiques décident d’investir dans la « french-tech ».

Donc si je peux dire, ils feraient mieux de les aider plutôt que de chercher à les racketter. Il n’y a déjà pas beaucoup de programmes français avec un tel rayonnement, si en plus c’est la France elle-même qui cherche à les tuer, franchement où on va…

Accélérer Firefox très simplement

jeudi 19 janvier 2017 à 19:10

Il y a toute une flopée de mesures à effectuer pour augmenter la réactivité de votre PC : défragmentation, suppression des vieux fichiers, mais aussi des astuces sur le hardware. Le problème c’est que ces solutions sont fastidieuses à mettre en place.
Je suppose que le programme le plus utilisé sur votre ordi est le navigateur (Firefox dans mon cas). Alors optimisons au moins celui-ci à l’aide de deux petites astuces.

Défragmenter Firefox

La première, c’est de défragmenter le dossier de Firefox. C’est très simple à faire : trouvez le dossier de profil de Firefox dans le navigateur de fichiers, faites un copier coller du dossier puis supprimez le dossier original. Ensuite renommez le nouveau dossier pour supprimer le « - copie » à la fin, histoire de revenir au dossier de départ.

Pourquoi ça aide ça ?
Parce que les fichiers dans le dossier de Firefox sont très nombreux, très souvent modifiés et sans-cesse renouvelés. C’est donc parfait pour que le système d’exploitation les place un peu partout sur le disque dur en les fragmentant au passage. Du coup, après quelques mois Firefox perd drastiquement de sa réactivité.
En faisant un copier-coller du dossier, on replace les fichiers au même endroit du disque et on les défragmente. Le navigateur peut donc de nouveau se charger très rapidement.

Notes :

Où se trouve le dossier de profil de Firefox ?
Il ne s’agit pas du dossier de Firefox dans « Program Files », mais celui un peu caché dans le dossier personnel.

Sous Windows, ouvrez un dossier, et copiez-collez dans la barre d’adresse, ceci : « %APPDATA%\Mozilla\Firefox »
Dans les distributions Linux, on trouve le dossier profile de Firefox dans : « ~/.mozilla/firefox ».

Nettoyer les bases de données de Firefox

Firefox stocke les données (cookies, historique, marques pages…) dans des bases de données SQLite. Ce sont des fichiers compactes, mais ces fichiers grossissent au fil de l’utilisation sans jamais perdre de leur taille. Donc si vous avez 50k pages d’historique et que vous supprimez tout, le fichier contenant l’historique continuera de prendre la place qu’il avait avant la suppression.
D’un côté ceci empêche une trop grande fragmentation, mais de l’autre, si votre base de données pèse 100 Mo, ça fait quand même beaucoup et contribue largement à ralentir votre navigation.

On peut nettoyer ces bases de données de Firefox avec une commande (linux) ou un petit outil (Windows).

Sous Linux, assurez-vous d’avoir installé SQLite3 et lancez ça :

for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM; REINDEX;'; done

Sous Windows il y a le petit outil SpeedyFox. Téléchargez le zip, extrayez l’exécutable, fermez Firefox et double-cliquez dessus (pas besoin d’installation). Cochez toutes les cases à cocher dans la liste puis cliquez sur « Optimize ». Après quelques secondes vous verrez les commandes se terminer et ça sera bon. En prime, SpeedyFox nettoie également les fichiers de Chrome, Opera et Skype.

Notes :