Blog de Ludovic Baillet

Astronomie, informatique et science

La constante tau apparaît dans la version 1.4.7 du langage Rust

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.

Le langage Rust suit donc le langage python qui avait introduit cette constante dans va version 3.6.

Alors que les langages Java et C# ne disposent que d’un nombre infime de constantes mathématiques (e et π), Rust en possède beaucoup (https://doc.rust-lang.org/std/f64/consts/index.html). Idem pour C++ version 20 (https://en.cppreference.com/w/cpp/numeric/constants).

Pour le moment, Javascript résiste à Tau, tout comme bien d’autres langages.

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.

En France, combien de jours fériés tombent en semaine, en moyenne ?

Selon le site gouvernemental service-public.fr, il existe 11 jours fériés en France (même si le cas du lundi de Pentecôte est particulier). Il existe aussi quelques particularités dans certaines professions ou certains départements (Alsace, etc.). Dans ce billet, on ne traitera que du cas général.

Voici la liste officielle des 11 jours fériés :

  • 1er janvier,
  • Lundi de Pâques,
  • 1er mai,
  • 8 mai,
  • Jeudi de l’Ascension,
  • Lundi de Pentecôte,
  • 14 juillet,
  • 15 août,
  • 1er novembre,
  • 11 novembre,
  • 25 décembre.

Certains jours fériés tombent mécaniquement en semaine (lundi de Pâques, jeudi de l’Ascension, lundi de Pentecôte). Les 8 autres jours peuvent tomber n’importe quel jour de la semaine. Et par ailleurs, certains jours fériés mobiles peuvent tomber exactement le même jour qu’un jour férié à date fixe. Du coup, le nombre moyen de jours fériés tombant en semaine est forcément inférieur au nombre de jours fériés. Mais combien ?

Faisons une estimation sur le XXIe siècle, donc calculons les jours fériés pour les années de 2001 à 2100 (en supposant que la législation n’évolue pas, ce qui est loin d’être garanti).

Ma page https://astronomie.baillet.org/ephemerides/fetes.php permet de calculer ces jours fériés pour n’importe quelle année. Moyennant quelques adaptations, il est facile d’automatiser le calcul sur un siècle complet.

Distribution des jours fériés en France au XXIe siècle

Sur 1100 jours possibles (11 jours par an sur une période de 100 ans), on détermine le nombre d’occurrences de chaque jour de la semaine. Évidemment, avec le lundi de Pâques et le lundi de Pentecôte, le lundi sort favorisé (311 occurrences). Sur la deuxième marche du podium, le jeudi qui bénéficie du jeudi de l’ascension, avec 218 occurrences.

Viennent ensuite le samedi (116), le mardi (116), le dimanche (114), le mercredi (113) puis le vendredi (112).

On pourrait conclure précipitamment que le nombre moyen de jours fériés tombant en semaine est égal à 870/100 (870=1100-116-114), soit exactement 8,7 jours par an.

Cependant, il ne faut pas oublier que le jeudi de l’ascension peut tomber un 1er mai (c’est arrivé en 2008)  ou que l’ascension peut tomber un 8 mai (c’est prévu d’arriver 4 fois au XXIe siècle : en 2059, 2070, 2081 et 2092). À noter que le lundi de pentecôte ne peut lui jamais entrer en collision avec le 1er ou le 8 mai puisqu’il peut au plus tôt tomber exceptionnellement un 10 mai (si Pâques tombe un 22 mars).

Donc, en France, le nombre de jours fériés uniques moyen tombant en semaine est égal à 865/100, soit exactement 8,65 jours. On devrait d’ailleurs y soustraire 1 jour suite à la création de la journée de solidarité en 2004. Soit au final 7,65 jours fériés par an en moyenne en France (jours non travaillés mais rémunérés).

On peut aussi comparer la situation avec certains pays anglo-saxons réputés avoir moins de congés mais possédant véritablement (à part quelques exceptions) 11 jours. En effet, quand le jour férié tomme un week-end, le jour férié est décalé au lundi suivant.

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.

Page 3 of 3

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