Astronomie, informatique et science

Auteur : Regulus

Les raccourcis Windows à connaître en télétravail

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.

En voici une courte liste : https://www.itprotoday.com/windows-8/top-10-remote-desktop-keyboard-shortcuts

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.

La programmation informatique dans le film “Hacker / Code poursuite”

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.

Film « Hacker / Code poursuite » sorti en 2019

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.

Or, la version 2.7 de Python n’est plus supportée depuis le 1er janvier 2020, c’est-à-dire au moment de la sortie du film.

En conclusion : encore un film qui évoque l’informatique, mais qui caricature le sujet et qui est à côté de la plaque.

La programmation informatique dans le film “Rogue Warfare 2”

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
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 :

$_SESSION['username'] = 'tutorialspoint';

Cela semble être tiré directement de l’exemple de connexion en PHP fourni par le site TutorialsPoint :
http://www.tutorialspoint.com/php/php_login_example.htm

Donc, rien à voir avec ce que l’actrice explique être en train de faire (créer / lancer un programme espion).

De plus, le copier/coller de code source peut être dangereux. En effet, on voit ce code :

if ($_POST['username'] == 'tutorialspoint' && $_POST['password'] == '1234')

Clairement, il s’agit d’une violation de type CWE-259: Use of Hard-coded password. Évidemment, c’est à ne pas faire.

Concernant la fenêtre en haut à gauche, on voit du code C sur la zone droite, et la version assembleur en cours de debug dans la zone gauche :

nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;
/* Make sure we always allocate at least one indirect block pointer */
nblocks = nblocks ? : 1;

Ce code est connu, il s’agit de la gestion des groupes dans le noyau Linux, dont on peut voir le code source complet sur git : https://github.com/torvalds/linux/commit/30639b6af85a92491b22dd14c17b14ca11da60e6#diff-d426d46610ed4fa039bbbfd367c2c186

À 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.

La nuit la plus courte de l’été 2020

L’été astronomique 2020 a lieu cette année le 20 juin, et non le 21 juin. Le jour de l’été est généralement considéré comme jour le plus long. Mais quand a lieu la nuit la plus courte ? la nuit de 19 au 20, du 20 au 21 ou du 21 au 22 ?

Utilisons le logiciel Éphéméridium afin de calculer très précisément les heures de lever et coucher du Soleil pour la ville de Paris :

On en déduit que la durée de la nuit est de 7:53:14 pour la nuit du 19 au 20, de 7:53:0 pour la nuit du 20 au 21 et de 7:53:03 pour la nuit du 21 au 22.

La nuit la plus courte a donc lieu dans la nuit du 20 au 21, du moins pour le fuseau horaire de Paris, et en temps légal français. La situation étant différente pour d’autres fuseaux.

Code golf en langage Rust

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.

Neuvième planète : absence de découverte

Les médias se sont emballés sur une soi-disant découverte d’une neuvième planète dans notre système solaire. Pourtant point de découverte. Tout au plus, de vagues indices (un petit nombre d’objets de Kuiper auraient des orbites semblables) qui seraient appuyés par une simulation numérique. Bref, rien de nouveau sous le Soleil.

En effet, de gros objets plus éloignés que Pluton ont été maintes fois proposés mais jamais trouvés. Parmi les plus connus, citons :

  • Némésis (petite étoile située à environ 1 AU du Soleil). Expliquerait les perturbations régulières du nuage de Oort
  • Perséphone (planète plus grosse que Jupiter et orbitant entre 10 000 et 50 000 AU). Expliquerait le problème de la falaise de Kuiper
  • Tyché (planète plus grosse que Jupiter et orbitant jusqu’à plus de 10 000 AU). Expliquerait les trajectoires de certaines comètes

N’oublions pas que par le passé une planète interne à l’orbite de Mercure avait été prédite pour rendre compte d’anomalies dans l’orbite de Mercure : la planète Vulcain. On sait aujourd’hui que cette planète n’existe pas et que l’explication a été trouvée grâce à Einstein.

Quant-à la nouvelle planète proposée – la planète 9 – pour expliquer les caractéristiques un peu particulières de 6 objets de Kuiper (oui, seulement 6), il est fort probable qu’elle n’existe tout simplement pas du moins d’après les caractéristiques annoncées. En effet, ses auteurs lui prédisent un aphélie jusqu’à 1500 AU (un peu moins que 40 fois la distance de Neptune du Soleil) et une masse équivalente à 10 fois la Terre (environ 2 fois moins que Neptune). Or, en supposant les conditions les plus défavorables, sa magnitude apparente serait alors au maximum 19 (contre 8 pour Neptune qui est facilement visible dans une très modeste lunette amateur de 60 mm seulement). Une magnitude de 19 correspondrait à un objet environ 50 fois moins lumineux que Pluton. Un objet de cette nature aurait pu difficilement échapper à l’ensemble des télescopes qui scrutent le ciel d’une manière automatique.

Il est vrai toutefois que la plupart des télescopes opèrent depuis l’hémisphère sud, si bien que l’équateur céleste nord est “sous-surveillé”. Et par ailleurs, la plupart des recherches se concentrent dans les régions proches du zodiaque.

Le satellite Gaia devrait pouvoir invalider cette planète n°9 avec les caractéristiques annoncées puisque Gaia atteint sans problème la magnitude 20 et observe l’intégralité du ciel sans exception. Rendez-vous vers 2020 lors de la publication des travaux de Gaia.

Néanmoins, un objet moins réfléchissant, plus lointain ou plus petit pourrait échapper à Gaia. Il pourrait alors s’écouler pas mal d’années voire de décennies avant que la Planète 9 soit définitivement reléguée au rang d’hypothèse non confirmée.

Et à l’avenir, souhaitons davantage de recherche sérieuse ou de découverte scientifique. Et moins de buzz médiatique ou de simulation numérique.

Nouvelle version de Tracium – traceur de courbes mathématiques

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.

Premier billet

Création du blog et mise en ligne.

Fièrement propulsé par WordPress & Thème par Anders Norén