Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

 

Kiddo : Activer la réduction de bruit en temps réel et l’annulation acoustique d’écho pour un microphone sous Linux avec PulseAudio (et faire croire aux gens que vous roulez en Porsche)

On se souviendra que j’avais témoigné de mon admiration pour le acoustic echo cancelling dans Empathy/Telepathy via PulseAudio il y a plusieurs années.
Or, Empathy et Telepathy sont morts et enterrés, et WebRTC a largement pris leur place (ça, on le voyait venir) avec des applications comme Jitsi Meet, BigBlueButton, et plein de sites web SaaS propriétaires.
Ce que j’avais oublié de dire en 2012, c’est que l’AEC et débruiteur peuvent également être activés de façon permanente pour toutes les (...)

 
 

Blog de Stéphane Bortzmeyer  -  Conférence climagic sur la ligne de commande et ses beautés

 -  Juillet 2017 - 

Le 19 juillet 2017, à Prague, Mark Krenz, le fondateur et animateur du fameux compte Twitter climagic (Command-Line interface magic), profitait de ses vacances en Europe pour faire un exposé sur la ligne de commande, ses beautés, et le projet climagic. Ça m'a fait rater la séance plénière de l'IETF 99 mais ça valait la peine. (Pour ce·ux·lles qui n'étaient pas à Prague, les pauvres, l'exposé est visible chez Google.)

L'exposé se tenait à la ČVUT (excellents locaux, vue magnifique sur la ville depuis le 14e étage). La grande salle était presque pleine. Comme on s'en doute, il n'y avait que trois ou quatre femmes.

La thèse centrale de Mark Krenz est que la ligne de commande n'est pas une survivance du passé, qu'on garde par habitude, ou par nostalgie. C'est toujours un outil puissant et efficace pour les professionnels (comme un de ses enfants lui avait dit une fois, lorsque le réseau était en panne, « open the black window and type text, to fix the network »). Le concept n'est en outre pas spécifique à Unix, Mark Krenz a cité l'ARexx d'Amiga. Une des preuves de cette pertinence de la ligne de commande est que désormais même Windows a une ligne de commandes de qualité raisonnable, Powershell. L'orateur a ensuite illustré ce point de vue de nombreux exemples.

Prévoyant que l'unixien moyen était pinailleur, il a prévenu tout de suite que c'était ses exemples, qu'il y avait plusieurs façons de faire, et que ce n'était pas la peine de lui dire que tel exemple aurait pu être fait avec telle autre méthode. Il a aussi précisé que la référence pour ses tweets était Linux avec bash (même s'il teste parfois sur une VM FreeBSD) et qu'il ne fallait pas l'embêter avec des « mais c'est pas portable ». Effectivement, il utilise des exemples comme la commande interne help (specifique à bash) ou comme l'excellente et indispensable option -i de sed (spécifique à GNU sed).

Mark Krenz (qui travaille au CACR et est l'auteur des excellents num-utils) a d'abord résumé le projet climagic. Démarré en 2009, il consiste en un compte Twitter (il y a aussi des vidéos) où environ la moitié des tweets sont des commandes Unix. Elles sont en général sous le format commande # description (le croisillon indiquant un commentaire). Par exemple :

killall -USR1 dd # Force each dd command in the process table to output its current status (blocks written, etc). The USR1 signal does this.
    
(lisez les documentations de killall et dd si nécessaire.) Les autres tweets sont diverses réflexions, ou des blagues, par exemple sur Chuck Norris (« Chuck Norris once ran cd .. in / and it worked »).

Ah, et pourquoi le magic dans « climagic ». Précisement parce que cela n'a rien de magique, tout peut être appris. « Witchcraft to the ignorant, simple science for the learned one » (Leigh Brackett).

La force du shell Unix est évidemment sa capacité à combiner des commandes pour faire davantage que ce que ferait chaque commande individuelle. Donc, lister des commandes et des options, c'est bien, mais il faut surtout se rappeler qu'on peut les combiner. Un exemple montré par l'auteur est une commande qui énonce à voix haute les réseaux Wi-Fi rencontrés : iwlist wlp2s0 scan | awk -F: '/ESSID/ {print $2}' | sort|uniq | espeak.

Je ne vais pas citer tous les trucs Unix qu'a montré l'orateur, uniquement ceux que je ne connaissais pas. Vous pourrez ainsi juger de la profondeur de mon ignorance d'Unix :

  • Je n'utilise pas les opérateurs rigolos après les noms de variables du shell. Si ALPHABET vaut les lettres de l'alphabet (par exemple en faisant ALPHABET=$(echo {a..z} | tr -d ' '), alors echo ${ALPHABET:0:3} affichera les trois premières, et echo ${ALPHABET^^} affichera leurs versions majuscules (bash seulement).
  • Je ne connaissais pas certaines variables spéciales comme SHLVL (pour voir si on est dans un sous-shell), ou COLUMNS (qui était inutile sur un VT100 mais bien pratique sur un xterm).
  • J'ai découvert qu'après more et less, il y avait désormais une commande most (pas mal pour les fichiers binaires).
  • column est cool pour formater joliment des commandes qui ne le font pas elle-même (comme mount).
  • Il y a d'autres commandes que je ne connaissais pas mais qui ne m'ont pas convaincu comme comm, ou pee (analogue à tee mais envoie les données à un processus, pas à un fichier, il se trouve dans les moreutils).
  • Certaines commandes classiques donnent des résultats inattendus dans certains cas. Par exemple cal 9 1752. Si vous vous demandez ce que sont devenus ces treize jours, ils ont disparu suite à l'application de la réforme grégorienne à l'empire britannique (les pays catholiques l'ont fait longtemps avant, ce dont on peut déduire qu'Unix n'est pas catholique). Comme tous les pays n'ont pas adopté cette réforme au même moment, logiquement, le résultat devrait dépendre de la valeur de la variable d'environnement LC_CTIME mais ce n'est hélas pas le cas.
  • Je ne savais pas non plus que la barre oblique après un joker ne renvoyait que les répertoires. Parfait pour un du -sh */ (au fait, GNU sort peut trier ces tailles « human-readables », avec -h : du -sh */ | sort -rh | head -5 permet de voir les cinq plus gros répertoires, avec un joli affichage des tailles.)
  • Parmi les autres options pratiques, -P dit à xargs d'effectuer les commandes en parallèle (comme le -j de make). Cela a permis à l'orateur de montrer un fping refait avec un ping ordinaire, l'expansion des séquences, et xargs.

Lors de la discussion qui a suivi, j'ai soulevé la question d'Unicode dans le shell Unix. Certaines commandes gèrent bien Unicode, par exemple awk :

%  echo -n café | awk '{print length($1)}'
4
    
Il a bien indiqué la longueur en caractères, pas en octets (« café » fait cinq octets en UTF-8). wc, lui, permet d'avoir caractères ou octets au choix :
% echo -n café | wc -m
4
% echo -n café | wc -c
5      
    
Cela montre que, même si le shell a la réputation d'être un vieux truc, il a su s'adapter à la modernité. Mais ce n'est pas le cas de toutes les commandes Unix. Au moins sur mon Ubuntu (il parait que ça marche sur d'autres Unix), cut semble insensible à l'internationalisation (il affiche les octets bêtement, malgré ce que prétend sa documentation) :
% echo caféthé | cut -c 3
f
% echo caféthé | cut -c 4
�
% echo caféthé | cut -c 5
�
% echo caféthé | cut -c 6     
    
De même, l'expansion par le shell ne semble pas marcher avec les caractères non-ASCII :
% echo {a..c}
a b c
% echo {à..ç}
{à..ç}
    
(Et, oui, la variable d'environnement LC_CTYPE était bien définie, sinon, grep ou wc n'auraient pas marché.)

M. climagic a évidemment parlé de plein d'autres choses, mais je les connaissais. Et vous ?

  • Il a bien sûr cité man et ses options. Notez que man -k delete ne trouve pas la commande rm
  • Il a longuement parlé de nombreux trucs du shell comme les astuces de la commande cd (cd - vous ramène au dernier répertoire), le job control (Control-Z, fg et bg), l'expansion des intervalles (echo {a..z}, echo IMG_{3200..3300}.jpg, qui permet de faire un rsync -a -v IMG_{3200..3300}.jpg server:dir…, les fonctions (le plus bel exemple était une redéfinition de cd, pour accepter l'argument ... pour dire « remonte de deux niveaux » : function cd(){ [[ "$1" == "..." ]] && builtin cd ../.. || builtin cd $@}, la redirection des seules erreurs (command 2> file), etc.
  • Mark Krenz a évidemment consacré du temps à awk et sed (tiens, lui non plus n'a pas l'air de gérer Unicode).
  • Et enfin il a parlé de deux programmes géniaux qui méritent d'être plus connus, ngrep (comme grep mais pour le réseau), et socat (netcat en mieux).

Autre discussion à la fin de la réunion, je lui ai demandé pourquoi ne pas avoir également climagic sur le réseau social décentralisé Mastodon. Il n'est pas contre (surtout si on peut le faire depuis la ligne de commande, bien sûr, mais c'est possible avec madonctl), c'est surtout un problème de manque de temps. (À noter que climagic a existé sur identi.ca mais que cela ne lui a pas laissé de bons souvenirs.)

La vue depuis l'université :

Le panneau sur la salle de réunion :

par Stéphane Bortzmeyer

Blog de Stéphane Bortzmeyer

RFC 9292: Binary Representation of HTTP Messages

 -  5 mai - 

Un message HTTP est traditionnellement représenté comme du texte mais ce RFC spécifie une alternative, une représentation binaire d'un message.À (...)


Un million de routes

 -  17 avril - 

Si vous suivez l'actualité du routage sur l'Internet, vous avez peut-être vu des messages comme quoi on atteindrait bientôt « un million de routes ». (...)


RFC 9460: Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)

 -  31 mars - 

Ces deux nouveaux types d'enregistrement DNS, SVCB et sa variante HTTPS, permettent de donner des informations supplémentaires à un client réseau (...)


Association entre adresse IP et AS

 -  29 mars - 

Dans les discussions au sujet du réseau Internet, on voit souvent passer des demandes sur l'AS associé à une adresse IP ou bien le contraire. Mais (...)


DNS hackathon 2025 in Stockholm

 -  23 mars - 

On 15 and 16 March 2025, I was at the DNS hackathon 2025 in Stockholm, organised by RIPE NCC, DNS-OARC and Netnod. I worked on a mechanism to (...)