Scénario : nous sommes en 2020, et maven affiche quantité de warnings (suivis de quelques erreurs) du genre :
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-compiler-plugin:2.4: Plugin org.apache.maven.plugins:maven-compiler-plugin:2.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:2.4 Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom
Nous sommes donc en 2020, et l’usage du https devient la norme partout. Dans ce cas, il y a essentiellement 2 solutions :
Parmi les nouveautés du langage Rust version 1.4.7, on découvre donc une nouvelle constante peu connue : Tau. Cette constante vaut le double de la constante π (Pi). Il existe de nombreux débats (sur Internet) essayant de faire croire que la constante π aurait dû valoir le double, au motif que beaucoup d’équations réclament le double de π et non simplement π. Hélas pour ces empêcheurs de tourner en rond, beaucoup d’autres équations n’ont besoin que d’un simple Pi. Notamment la plus belle équation : e i.π + 1 = 0.
L’utilisation du bureau à distance est usuelle en télétravail. Les problèmes arrivent rapidement quand les raccourcis Windows restent en local et ne sont pas transmis à l’ordinateur distant.
Heureusement, il existe d’autres raccourcis pour émuler Alt+Tab, Alt+Print Screen, Ctrl+Alt+Del, etc.
Hélas, rien n’est prévu pour l’« inception », c’est-à-dire quand on prend le contrôle à distance d’un Windows depuis un Windows lui-même pris en contrôle à distance. Dans ce cas, il faut reconnaître que certains outils spécialisés font nettement mieux que le contrôle à distance basique de Windows. Mais les outils spécialisés sont souvent très coûteux.
Le film Hacker / Code poursuite sorti il y a quelques mois est un des rares films montrant un ordinateur quantique. À nouveau c’est l’occasion d’évoquer l’aspect programmation informatique au cinéma.
L’héroïne du film se met à écrire un algorithme pour un ordinateur quantique, et chose surprenante, on voit clairement son écran. Mais c’est une grande déception.
On voit en effet une petite fenêtre de programmation dans laquelle est écrit un simple JSON au format Jupyter Notebook (cf. https://ipython.org/ipython-doc/dev/notebook/nbformat.html). En tout cas, rien à voir avec la programmation pour ordinateur quantique.
Chose plus surprenante, l’intitulé de la fenêtre. Il s’agit de « C:\python27\python.exe ». Il s’agit donc du binaire principal du célèbre langage à la popularité grandissante, Python. Mais version 2.7.
Clairement, le film Rogue Warfare 2 ne sera pas le meilleur de la décennie, enfin ce n’est que mon point de vue. Les critiques semblent toutefois aller dans mon sens. À défaut de parler de la qualité du film, je vais plutôt évoquer la programmation informatique au cinéma à travers ce film.
En effet, ce film met en scène une militaire donnant une leçon de programmation et même de piratage à un de ses collègues. Nous voyons clairement son écran défiler, arrêtons nous sur cette simple image tirée du film :
Film Rogue Warfare 2, pendant une session de programmation : du PHP, du C, etc.
Ça bouge pas mal dans toutes les fenêtres, et surtout la fenêtre centrale qui utilise un thème sombre avec une police de couleur verte, le tout défilant de haut en bas. Probablement pour avoir un effet type Matrix. Dans l’inconscient, ça peut jouer d’associer son image avec une image qui véhicule le futur, la science fiction.
Si on regarde en détail le code source de la zone centrale, on voit qu’il s’agit de PHP, avec une ligne telle que celle-ci :
À noter : qu’il existe un site dédié à ce code source ! En effet, pour qui veut passer pour un hacker comme au cinéma, il suffit de taper frénétiquement au clavier depuis le site http://hackertyper.com. De nouveau, thème sombre et police de couleur verte. Les stéréotypes de la programmation informatique ont hélas la vie dure.
Le Rust est un langage de programmation qui se prête peu à l’exercice de Code golf. Par ailleurs les astuces permettant de réduire au maximum la taille des sources en Rust sont très peu documentées. Voici quelques techniques utiles.
Réutiliser une String
Supposons que l’on veuille réutiliser une string.
let mut s=String::new();
// Do some stuff with s
s=String::new();
Alors, la dernière ligne peut-être remplacée par la ligne suivante qui est plus courte de 6 caractères :
s.clear();
Initialisation multiple
Supposons que l’on doive initialiser les variables x et y avec le contenu des 3e et 4e valeurs d’un tableau n :
let mut x=n[2]; let mut y=n[3];
Alors, on peut écrire la même chose en une seule ligne et en économisant un peu :
let(mut x,mut y)=(n[2],n[3]);
Réduire std::io
Souvent, les concours de Code golf nécessitent :
use std::io;
Il est possible d’économiser 1 caractère :
use std::*;
Omettre le point-virgule final
En général, le programme se finit par un print/println tel que :
println!("{}",n);
Le point-virgule terminal n’est pas nécessaire, ce qui permet d’économiser un caractère.
La version 2.0.2 du logiciel Tracium est maintenant disponible. Cette version correspond à une version réellement utilisable et contient quelques améliorations intéressantes, dont une amélioration de la performance et une correction au niveau de l’impression.