ForColormap propose simplement de convertir une valeur réelle comprise dans une fourchette en un triplet RGB, en utilisant des palettes de couleurs. La bibliothèque est indépendante de tout système de visualisation ou GUI, et peut donc être utilisée avec n'importe lequel.
ForColormap dépend aussi de ForImage qui est une bibliothèque Fortran permettant de créer des fichiers au format PPM (un des formats bitmap les plus simples qui soit, et donc facile à programmer dans n'importe quel langage, y compris Fortran). Ca peut être suffisant pour un usage scientifique (on calcule et on génère un graphique pour comprendre ou publier).
Les palettes proposées sont :
- les 222 palettes de couleurs de la collection Scientific colour maps v8.0.1 de Fabio Crameri : https://www.fabiocrameri.ch/colourmaps/
- les palettes de couleurs matplotlib « magma », « inferno », « plasma », « viridis »,
- la palette « cubehelix » de Dave Green (beaucoup utilisée en astronomie).
Les scientifiques utilisent souvent (mais les choses changent) des palettes du type arc-en-ciel, mais qui ont un certain nombre de défauts :
pas progressives (introduisent des artefacts dans l'image, par exemple des frontières là où il n'y en a pas),
Les limitations seront surtout le générateur isotopique qui fournit l'électricité à bord (de nombreux instruments ont déjà été éteints à cause de son déclin inéluctable) et la difficulté à communiquer à 24 milliards de km de distance (il faut une antenne de 70 m de diamètre).
On peut espérer encore quelques années de service. Peut-être 2030 ? Mais ça peut aussi s'arrêter du jour au lendemain en cas de gros pépin à bord… Cette fois-ci, c'était chaud. Voyager 1 a décollé le 5 septembre 1977. C'est du bon matos, mais 47 ans c'est quand même incroyable…
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.
[^] # Re: Bon voyage vers l'infini et au delà petit robot
Posté par vmagnin (site web personnel) . En réponse au lien Voyager 1 Resumes Sending Science Data from Two Instruments. Évalué à 6. Dernière modification le 24 mai 2024 à 15:48.
Voilà la photo de l'équipe qui gère les Voyagers, une douzaine de personnes (plutôt en haut de la pyramide des âges) :
https://www.jpl.nasa.gov/images/pia26275-voyager-team-celebrates-engineering-data-return
Real Programmers… Avec autour du cou le badge "Voyager Interstellar Mission". La classe !
[^] # Re: Si l'auteur connu pour sa modestie pouvait nous en dire plus...
Posté par vmagnin (site web personnel) . En réponse au lien ForColormap 0.9 est sorti. Évalué à 2.
ForColormap propose simplement de convertir une valeur réelle comprise dans une fourchette en un triplet RGB, en utilisant des palettes de couleurs. La bibliothèque est indépendante de tout système de visualisation ou GUI, et peut donc être utilisée avec n'importe lequel.
ForColormap dépend aussi de ForImage qui est une bibliothèque Fortran permettant de créer des fichiers au format PPM (un des formats bitmap les plus simples qui soit, et donc facile à programmer dans n'importe quel langage, y compris Fortran). Ca peut être suffisant pour un usage scientifique (on calcule et on génère un graphique pour comprendre ou publier).
Les palettes proposées sont :
- les 222 palettes de couleurs de la collection Scientific colour maps v8.0.1 de Fabio Crameri : https://www.fabiocrameri.ch/colourmaps/
- les palettes de couleurs matplotlib « magma », « inferno », « plasma », « viridis »,
- la palette « cubehelix » de Dave Green (beaucoup utilisée en astronomie).
Les scientifiques utilisent souvent (mais les choses changent) des palettes du type arc-en-ciel, mais qui ont un certain nombre de défauts :
Les palettes de ForColormap ont donc été sélectionnées pour éviter ou limiter ces problèmes.
[^] # Re: Bon voyage vers l'infini et au delà petit robot
Posté par vmagnin (site web personnel) . En réponse au lien Voyager 1 Resumes Sending Science Data from Two Instruments. Évalué à 9.
Les limitations seront surtout le générateur isotopique qui fournit l'électricité à bord (de nombreux instruments ont déjà été éteints à cause de son déclin inéluctable) et la difficulté à communiquer à 24 milliards de km de distance (il faut une antenne de 70 m de diamètre).
On peut espérer encore quelques années de service. Peut-être 2030 ? Mais ça peut aussi s'arrêter du jour au lendemain en cas de gros pépin à bord… Cette fois-ci, c'était chaud. Voyager 1 a décollé le 5 septembre 1977. C'est du bon matos, mais 47 ans c'est quand même incroyable…
[^] # Re: Youpi
Posté par vmagnin (site web personnel) . En réponse au lien Un fond souverain allemand finance le projet FFMPEG à hauteur de 157 580 €. Évalué à 5.
La communauté Fortran-lang reçoit des financements pour ses projets par :
- le Sovereign Tech Fund
- NumFOCUS
- le Google Summer of Code
# 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.