Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based FORTRAN programs and small spacecraft-based assembly language programs, they can to do incredible feats of navigation and improvisation, such as hitting ten-kilometer wide windows at Saturn after six years in space, and repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern-matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter.
Personnellement, j'y vois en arrière plan la mythologie nordique/germanique où les nains sont d'habiles forgerons vivant ou travaillant sous les montagnes. Pure association d'idées : Allemagne, Forgejo, Berg… Mais je n'ai trouvé aucune explication officielle ou officieuse pour étayer cette interprétation. Alambiquée ?
Effectivement, si je comprends bien, il s'agit plutôt d'une licence permettant de distribuer, vendre, utiliser, cette implémentation de Go malgré les éventuels brevets de Google qui pourraient être concernés.
A noter enfin que le JPL a repris la main sur la sonde, mais l'envoi des données des instruments scientifiques n'est pas encore rétabli. Encore quelques semaines de travail…
The Voyager spacecraft, Voyager 1 and Voyager 2, were not programmed in Fortran 5. Or in any Fortran for that matter. This widely accepted misbelief can be traced back to a widely misunderstood statement in a single magazine article.
Distance de Voyager 1 :
~24e9 km = ~162,7 UA = ~22,5 heures.lumière
(à noter que cette distance varie bien sûr un peu au cours de l'année, en fonction de la position de la Terre sur son orbite).
A noter que dans la FAQ, ils disent qu'ils s'attendent à éteindre les derniers instruments scientifiques vers 2025 (mais est-ce que la FAQ est à jour ?), mais que les sondes pourraient continuer à communiquer jusque ~2036 : https://voyager.jpl.nasa.gov/frequently-asked-questions/
De quoi au minimum continuer de connaître leur trajectoire avec précision. Je ne sais pas si on peut aussi tirer quelque chose des signaux électromagnétiques concernant les milieux traversés… Mais tant qu'il y aura un signal les scientifiques essaieront d'en tirer quelque chose.
Je n'en avais jamais entendu parler, jamais.
Même le livre "Fire in the Valley", très américano-centré, n'en touche pas un mot, alors que le Micral est cité.
GNU/Linux Magazine n°222, janvier 2019, par Delmas Laurent
Nous allons nous prêter à un exercice amusant avec OpenCV qui somme toute n'est pas si facile qu'il y paraît. Il s'agit de superposer un plan cadastral sur une photo satellite de manière totalement automatique. À partir de là, nous pouvons envisager une multitude d'applications. Par exemple, rechercher les piscines ou bâtiments présents sur la photo satellite qui ne sont pas sur le plan cadastral. Voyons comment faire…
Au fait, quelqu'un sait-il comment désactiver les pop-ups qui apparaissent en bas à droite de l'écran à chaque fois qu'un snap doit être mis à jour dans Ubuntu ? C'est fou comment un petit truc comme ça peut devenir agaçant à la longue :-)
Depuis quelques mois, j'explore FreeBSD pour me changer les idées. Les dépôts semblent à peu près aussi fournis que chez Debian, et les versions très à jour comme dans une Fedora… Bon, je n'ai pas encore essayé de configurer mon imprimante, mais une chose à la fois.
La première partie de ce cours illustrera la pratique des effets en OCaml 5. On peut les voir comme une généralisation des exceptions: lever un effet interrompt le calcul en cours, tout comme lever une exception; mais au contraire des exceptions, le calcul en cours peut être redémarré plus tard. C'est le gestionnaire de l'effet qui décide quand et avec quelle valeur redémarrer ce calcul.
Ca me fait un peu penser à une interruption matérielle…
Dans les versions modernes du Fortran, le GOTO est toujours disponible même si on ne s'en sert plus en général.
Mais il en reste des versions cachées. Par exemple, voici un bout de code disponible dans la norme Fortran 2018 (j'ai juste changé la valeur de err) :
read(nunit,’(3f10.3)’,iostat=ios,err=666,end=120)a,b,c! Successful read - continue execution. ...666call error(ios)! Error condition - take appropriate action. return 120call last_file! End of file - test for more files.
Comme il n'y a pas de gestion d'exceptions en Fortran, on voit qu'on gère les erreurs d'entrées/sorties avec un label numérique. On peut aussi le faire pour la détection de la fin du fichier. C'est un peu surprenant dans un code moderne où il n'y a autrement plus aucune raison d'utiliser des labels numériques.
Mais le soucis c'est que quand tu es habitué à coder comme ça, c'est très dur de t'adapter à autre chose, et l'effort est important pour changer. Je suppose que la malédiction du GOTO vient de l'époque où on a cherché à faire basculer tout le monde.
Il y a peut-être un effet lié à l'âge, ceux qui programmaient depuis 20 ou 30 ans avec des GOTO ont pu avoir du mal à changer de façon de faire.
J'ai appris la programmation avec le BASIC du début des années 80 de type Microsoft, avec les numéros de ligne obligatoires. A l'époque, apprendre l'assembleur n'était pas très compliqué, c'était juste plus basique que le BASIC… Les microprocesseurs 8 bits étaient simples, le système était en ROM, etc. Et passer du GOTO au JUMP/JMP se faisait naturellement.
J'ai appris la programmation structurée avec Turbo Pascal et le GFA Basic (Atari ST). Je ne me souviens pas d'avoir trop peiné, mais le cerveau était encore jeune et malléable. :-)
On peut donc en déduire que dans les cas où il rend le code plus facile à lire/comprendre/maintenir, on peut (devrait ?) l'utiliser. Toute règle a ses exceptions.
program essai
implicit none
print *, pouet(1)
print *, pouet(0)
contains
integer function pouet(i)
integer, intent(in) :: i
pouet = 2
if (i == 0) then
pouet = -1
else
pouet = i
end if
end function
end program essai
La sortie se fait au niveau du end function et ça m'affiche :
1
-1
On peut éventuellement mettre un return après l'instruction pouet = -1 pour sortir plus vite de la fonction.
On peut aussi utiliser result pour indiquer quelle variable contiendra le résultat :
integer function pouet(i) result(r)
integer, intent(in) :: i
r = 2
if (i == 0) then
r = -1
return
else
r = i
end if
end function
Attention, il ne faut pas déclarer la variable si on a indiqué le type de donnée devant function. La variable r est automatiquement de type integer comme indiqué en début de ligne.
Selon OpenAI, « Le droit d'auteur couvre aujourd'hui pratiquement toute sorte d'expression humaine – y compris les billets de blog, les photographies, les publications sur les forums, des morceaux de code informatique et des documents gouvernementaux – il serait impossible d'entraîner les modèles d'IA leaders d'aujourd'hui sans utiliser de matériaux protégés par le droit d'auteur. »
Si c'est impossible sans violer le droit d'auteur, pourquoi le faire ? Est-ce que quelque chose les oblige à le faire ? Non.
C'est le titre du post qui est trompeur. Il semble indiquer une découverte actuelle, une news, mais quand on lit le contenu, apparemment rien de nouveau. Pourtant c'est un site de news scientifique.
On sait depuis longtemps que les babyloniens utilisaient cette relation.
L'article cité par ce blog n'est pas récent :
Ratner, B. Pythagoras: Everyone knows his famous theorem, but not who discovered it 1000 years before him. J Target Meas Anal Mark 17, 229–242 (2009). doi:10.1057/jt.2009.16
Et ce n'est pas un article de recherche :
The purpose of this article is to plot a
fascinating story in the history of mathematics.
The 4000-year-old story of Pythagoras and his
famous theorem is worthy of recounting – even
for the math-phobic readership
A noter que si on parle de théorème, on sous-entend une démonstration mathématique. D'après la page Wikipedia, la plus ancienne démonstration connue est celle d'Euclide (vers -300).
# D'accord avec ça
Posté par vmagnin (site web personnel) . En réponse à l’entrée du suivi Permettre de cacher la dépêche à la une / mise en avant. Évalué à 2 (+0/-0).
C'est vrai qu'en général avec l'image de la dépêche, ça prend tout l'écran et ça empêche de voir immédiatement s'il y a des nouveautés sur le site.
[^] # Re: "Les vrais programmeurs utilisent FORTRAN"
Posté par vmagnin (site web personnel) . En réponse au lien TIOBE Index for May 2024: Fortran in the top 10, what is going on?. Évalué à 4.
Un texte d'actualité !
[^] # Re: Il falllait s'y attendre.
Posté par vmagnin (site web personnel) . En réponse au lien "I AM SO DISAPPOINTED WITH UBUNTU 24.04". Évalué à 2.
Merci, j'essaierai avec HPLIP quand j'aurai le temps.
[^] # Re: Il falllait s'y attendre.
Posté par vmagnin (site web personnel) . En réponse au lien "I AM SO DISAPPOINTED WITH UBUNTU 24.04". Évalué à 2. Dernière modification le 27 avril 2024 à 16:25.
Je teste FreeBSD depuis quelques mois. Je ne me suis pas encore attaqué sérieusement au problème de l'impression, un point plutôt bloquant. Et toi ?
[^] # Re: Logo
Posté par vmagnin (site web personnel) . En réponse à la dépêche Codeberg, la forge en devenir pour les projets libres ?. Évalué à 2. Dernière modification le 27 avril 2024 à 15:24.
On peut trouver les anciennes versions dans un moteur de recherche :
https://www.qwant.com/?client=brz-moz&t=images&q=codeberg+logo
Personnellement, j'y vois en arrière plan la mythologie nordique/germanique où les nains sont d'habiles forgerons vivant ou travaillant sous les montagnes. Pure association d'idées : Allemagne, Forgejo, Berg… Mais je n'ai trouvé aucune explication officielle ou officieuse pour étayer cette interprétation. Alambiquée ?
https://fr.wikipedia.org/wiki/Nain_(mythologie_nordique)
[^] # Re: Brevet Gogs
Posté par vmagnin (site web personnel) . En réponse à la dépêche Codeberg, la forge en devenir pour les projets libres ?. Évalué à 5.
Effectivement, si je comprends bien, il s'agit plutôt d'une licence permettant de distribuer, vendre, utiliser, cette implémentation de Go malgré les éventuels brevets de Google qui pourraient être concernés.
Cette licence est discutée par exemple ici :
https://stackoverflow.com/questions/12795381/go-language-license
https://patents.stackexchange.com/questions/18611/what-does-golang-patent-mean
# Science
Posté par vmagnin (site web personnel) . En réponse au lien NASA’s Voyager 1 Resumes Sending Engineering Updates to Earth . Évalué à 3.
A noter enfin que le JPL a repris la main sur la sonde, mais l'envoi des données des instruments scientifiques n'est pas encore rétabli. Encore quelques semaines de travail…
# Non, les sondes ne sont pas programmées en Fortran (ou en C)
Posté par vmagnin (site web personnel) . En réponse au lien NASA’s Voyager 1 Resumes Sending Engineering Updates to Earth . Évalué à 4.
Une enquête très complète en anglais : http://www.geonius.com/writing/other/voyager.html
# Distance
Posté par vmagnin (site web personnel) . En réponse au lien NASA’s Voyager 1 Resumes Sending Engineering Updates to Earth . Évalué à 4. Dernière modification le 23 avril 2024 à 18:36.
Le site officiel des sondes est : https://voyager.jpl.nasa.gov/
Distance de Voyager 1 :
~24e9 km = ~162,7 UA = ~22,5 heures.lumière
(à noter que cette distance varie bien sûr un peu au cours de l'année, en fonction de la position de la Terre sur son orbite).
Pour les fans de V'Ger, un article passionnant :
[^] # Re: Quand on veux...
Posté par vmagnin (site web personnel) . En réponse au lien NASA’s Voyager 1 Resumes Sending Engineering Updates to Earth . Évalué à 3.
A noter que dans la FAQ, ils disent qu'ils s'attendent à éteindre les derniers instruments scientifiques vers 2025 (mais est-ce que la FAQ est à jour ?), mais que les sondes pourraient continuer à communiquer jusque ~2036 :
https://voyager.jpl.nasa.gov/frequently-asked-questions/
De quoi au minimum continuer de connaître leur trajectoire avec précision. Je ne sais pas si on peut aussi tirer quelque chose des signaux électromagnétiques concernant les milieux traversés… Mais tant qu'il y aura un signal les scientifiques essaieront d'en tirer quelque chose.
# Bientôt en ligne
Posté par vmagnin (site web personnel) . En réponse au lien Alice Recoque, pionnière oubliée de l'IA. Évalué à 3. Dernière modification le 13 avril 2024 à 18:42.
Dans le numéro 23 du Bulletin 1024 (avril 2024), un article intitulé "Qui a voulu effacer Alice Recoque ?" par B. Mermet et M.-C. Gaudel.
La version PDF du n°23 n'est pas encore en ligne, donc à surveiller dans les jours ou semaines à venir :
https://www.societe-informatique-de-france.fr/bulletin/#derniernumero
# Jamais entendu
Posté par vmagnin (site web personnel) . En réponse au lien Deux exemplaires du tout premier ordinateur de bureau retrouvés par hasard au Royaume-Uni . Évalué à 3.
Je n'en avais jamais entendu parler, jamais.
Même le livre "Fire in the Valley", très américano-centré, n'en touche pas un mot, alors que le Micral est cité.
On trouve des documents des années 70 sur cette page : https://peel.dk/Q1/
Un Discourse intéressant sur le rétro : https://retrocomputingforum.com/t/q1-the-first-microcomputer-video/2869
[^] # Re: Si vous aimez les vieilles choses
Posté par vmagnin (site web personnel) . En réponse au lien Deux exemplaires du tout premier ordinateur de bureau retrouvés par hasard au Royaume-Uni . Évalué à 3.
ou https://www.technosaures.fr/
et son magazine : https://www.technosaures.fr/magazine/
# GMLF
Posté par vmagnin (site web personnel) . En réponse au journal Combien pour un algorithme de détection de piscines sur les photos aériennes ?. Évalué à 5.
J'avais lu un article là-dessus dans GLMF :
https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-222/confrontation-de-plans-cadastraux-et-de-photos-satellites-avec-opencv
GNU/Linux Magazine n°222, janvier 2019, par Delmas Laurent
Il n'est pas en accès libre.
# popup
Posté par vmagnin (site web personnel) . En réponse au journal snap : de pire en pire.. Évalué à 7. Dernière modification le 27 janvier 2024 à 22:26.
Au fait, quelqu'un sait-il comment désactiver les pop-ups qui apparaissent en bas à droite de l'écran à chaque fois qu'un snap doit être mis à jour dans Ubuntu ? C'est fou comment un petit truc comme ça peut devenir agaçant à la longue :-)
Et puis snap m'empêche d'imprimer normalement avec Zim car ça embrouille Firefox :
https://github.com/zim-desktop-wiki/zim-desktop-wiki/issues/2025
Depuis quelques mois, j'explore FreeBSD pour me changer les idées. Les dépôts semblent à peu près aussi fournis que chez Debian, et les versions très à jour comme dans une Fedora… Bon, je n'ai pas encore essayé de configurer mon imprimante, mais une chose à la fois.
[^] # Re: goto return cave
Posté par vmagnin (site web personnel) . En réponse au journal Is return the new goto ?. Évalué à 4. Dernière modification le 27 janvier 2024 à 16:40.
Ca a l'air de haute volée…
J'ai trouvé cette page : https://xavierleroy.org/courses/JFLA-2023/index.html
Ca me fait un peu penser à une interruption matérielle…
# GOTO cachés...
Posté par vmagnin (site web personnel) . En réponse au journal Is return the new goto ?. Évalué à 6. Dernière modification le 27 janvier 2024 à 13:18.
Dans les versions modernes du Fortran, le GOTO est toujours disponible même si on ne s'en sert plus en général.
Mais il en reste des versions cachées. Par exemple, voici un bout de code disponible dans la norme Fortran 2018 (j'ai juste changé la valeur de
err
) :Comme il n'y a pas de gestion d'exceptions en Fortran, on voit qu'on gère les erreurs d'entrées/sorties avec un label numérique. On peut aussi le faire pour la détection de la fin du fichier. C'est un peu surprenant dans un code moderne où il n'y a autrement plus aucune raison d'utiliser des labels numériques.
[^] # Re: goto return cave
Posté par vmagnin (site web personnel) . En réponse au journal Is return the new goto ?. Évalué à 8.
Il y a peut-être un effet lié à l'âge, ceux qui programmaient depuis 20 ou 30 ans avec des GOTO ont pu avoir du mal à changer de façon de faire.
J'ai appris la programmation avec le BASIC du début des années 80 de type Microsoft, avec les numéros de ligne obligatoires. A l'époque, apprendre l'assembleur n'était pas très compliqué, c'était juste plus basique que le BASIC… Les microprocesseurs 8 bits étaient simples, le système était en ROM, etc. Et passer du GOTO au JUMP/JMP se faisait naturellement.
J'ai appris la programmation structurée avec Turbo Pascal et le GFA Basic (Atari ST). Je ne me souviens pas d'avoir trop peiné, mais le cerveau était encore jeune et malléable. :-)
[^] # Re: goto return cave
Posté par vmagnin (site web personnel) . En réponse au journal Is return the new goto ?. Évalué à 6.
Le GOTO a été décrié dès la fin des années 60 (https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf) parce qu'il rendait le code difficile à lire et comprendre.
On peut donc en déduire que dans les cas où il rend le code plus facile à lire/comprendre/maintenir, on peut (devrait ?) l'utiliser. Toute règle a ses exceptions.
Un GOTO est finalement juste une instruction JMP.
# En Fortran
Posté par vmagnin (site web personnel) . En réponse au journal Is return the new goto ?. Évalué à 10. Dernière modification le 26 janvier 2024 à 21:44.
En Fortran, je peux écrire :
La sortie se fait au niveau du
end function
et ça m'affiche :1
-1
On peut éventuellement mettre un
return
après l'instructionpouet = -1
pour sortir plus vite de la fonction.On peut aussi utiliser
result
pour indiquer quelle variable contiendra le résultat :Attention, il ne faut pas déclarer la variable si on a indiqué le type de donnée devant
function
. La variabler
est automatiquement de typeinteger
comme indiqué en début de ligne.# Pourquoi ?
Posté par vmagnin (site web personnel) . En réponse au lien Facebook admet s'être appuyé sur des livres "piratés" pour former son IA . Évalué à 7.
Si c'est impossible sans violer le droit d'auteur, pourquoi le faire ? Est-ce que quelque chose les oblige à le faire ? Non.
[^] # Re: not new
Posté par vmagnin (site web personnel) . En réponse au lien Découverte du théorème de Pythagore sur une tablette antérieure de 1000 ans à Pythagore. Évalué à 2.
C'est le titre du post qui est trompeur. Il semble indiquer une découverte actuelle, une news, mais quand on lit le contenu, apparemment rien de nouveau. Pourtant c'est un site de news scientifique.
# nothing new under the sun
Posté par vmagnin (site web personnel) . En réponse au lien Découverte du théorème de Pythagore sur une tablette antérieure de 1000 ans à Pythagore. Évalué à 4. Dernière modification le 20 décembre 2023 à 21:51.
On sait depuis longtemps que les babyloniens utilisaient cette relation.
L'article cité par ce blog n'est pas récent :
Ratner, B. Pythagoras: Everyone knows his famous theorem, but not who discovered it 1000 years before him. J Target Meas Anal Mark 17, 229–242 (2009). doi:10.1057/jt.2009.16
Et ce n'est pas un article de recherche :
A noter que si on parle de théorème, on sous-entend une démonstration mathématique. D'après la page Wikipedia, la plus ancienne démonstration connue est celle d'Euclide (vers -300).
[^] # Re: En résumé
Posté par vmagnin (site web personnel) . En réponse au lien La norme Fortran 2023 vient d'être publiée par l'ISO. Évalué à 5.
Version plus récente (13 mars 2023) du résumé de J. Reid, "The new features of Fortran 2023" :
https://wg5-fortran.org/N2201-N2250/N2212.pdf
# En résumé
Posté par vmagnin (site web personnel) . En réponse au lien La norme Fortran 2023 vient d'être publiée par l'ISO. Évalué à 5.
Comme d'habitude, les nouveautés sont résumées dans un document (23 pages) par John Reid :
https://wg5-fortran.org/N2151-N2200/N2194.pdf
Le brouillon de la norme est disponible sur le site du comité J3 :
https://j3-fortran.org/doc/year/23/23-007r1.pdf