Le Livre d'Argent

Alors, en attendant les résultats du sondage pour le thème du prochain #vulgadredi (même s'il y a relativement peu de doutes à ce stade, mais sait-on jamais, votez quand même :-þ), j'ai envie de vous faire un petit thread un peu plus léger, pas illustré, et sur un sujet un peu différent, ça vous dit ?

T'façon, si ça ne vous dit pas, vous n'avez qu'à ne pas lire, donc bon, allons-y : j'ai envie de vous causer un peu d'un souci de programmation que j'ai rencontré au planétarium cette semaine, et ça va nous prendre dix pouets.

2/10 Un peu de contexte : un planétarium, ça se programme. Pour faire une séance, on doit indiquer aux machines ce qu'on veut qu'elles affichent, ça peut être le ciel qu'on voit à un endroit et à un moment donné, ça peut être tourner autour d'une planète, ça peut être des trucs qu'on a complètement ajouté à la main, etc.

Bon, c'est un système de programmation un peu limité, surtout au Planétarium de Bretagne où, en attendant la rénovation à la fin de l'année, on reste sur un système un peu archaïque. On n'a même pas de quoi faire un if/else, donc les devs peuvent facilement ressentir pas mal de frustration, mais quand même, il faut faire lancer les bonnes commandes avec les bons paramètres au bon moment.

3/10 Et donc pour une séance que je suis en train de préparer, et dont je vous reparlerai bientôt, j'ai programmé le système pour parler un peu d'exoplanètes (ça ne nous change pas trop par rapport au dernier thread ^^), et pour ça, je demande aux machines d'afficher la constellation du Centaure, où se trouve notamment l'étoile la plus proche de la nôtre, la bien nommée Proxima, pour parler un peu d'à quoi ça ressemble là-bas, vu qu'il y a une exoplanète potentiellement habitable autour d'elle.

(En vrai, Proxima n'est pas du tout le cœur de cette partie, je vais parler d'une autre exoplanète autour d'une étoile du Centaure, mais, surprise, vous verrez ça en temps en en heure. Et puis je vais quand même parler un peu de Proxima parce que je n'ai pas souvent l'occasion de montrer le Centaure aux gens, donc bon, pour une fois, j'en profite).

4/10 Si vous avez lu le dernier thread, on peut regarder ce qui se passe quand des planètes passent devant une étoile. Ça marche pour les exoplanètes devant l'étoile devant lesquelles elles tournent, mais ça marche aussi pour les planètes (et autres objets) de notre système quand elles passent devant une étoile plus lointaine.

Et parfois, ça permet de découvrir des trucs : c'est comme ça qu'on a trouvé des anneaux autour d'Uranus, par exemple, parce que les anneaux ont masqué une étoile un peu avant la planète. C'est un truc dont je vous reparlerai plus tard, mais donc, pour illustrer ça, j'ai voulu récupérer une séquence que j'avais programmée il y a un moment, où on va tourner autour d'un objet céleste, et au bout d'un moment, un anneau apparaît.
replies
1
announces
0
likes
0

5/10 Et donc je copie-colle le code, je le lance… et l'anneau n'apparaît pas. Mince. Je vérifie que j'ai bien chargé tous les objets 3D requis, je passe un moment à relire soigneusement le code pour être sûr que je n'ai pas viré une commande par inadvertance, mais non, c'est bien rigoureusement le même code, les mouvements de caméra sont les mêmes, juste, l'anneau n'apparaît pas.

Bon, je peux probablement faire autrement, mais quand même, ça m'embête, j'aimerais bien comprendre. Et j'ai fini par trouver, d'ailleurs, mais comme je n'ai pas encore mangé, je vais aller me préparer une salade le temps de vous laisser gamberger un peu vous aussi. Si vous avez des idées, n'hésitez pas à les proposer, on verra bien !

6/10 La salade étant prête, je vais maintenant prendre le temps de manger, mais si vous cherchez pendant ce temps-là, un petit indice : en réfléchissant, j'ai laissé littéralement la caméra tourner autour de mon objet céleste, et j'ai fini par remarquer que, quand on est de l'autre côté, l'anneau apparaît. Diantre.

En fait, c'est normal, c'est un truc qu'on avait bricolé rapidement à l'époque, l'objet 3D n'a une texture que d'un seul des deux côtés. Donc si on le regarde avec le mauvais angle, on ne voit rien. Mais pourquoi le verrait-on avec le mauvais angle alors que les instructions données à la machine sont rigoureusement les mêmes ? Je vous laisse chercher, la réponse quand j'ai le ventre plein ^^

7/10 Fini de manger. Et donc, en fait, le souci n'est pas dans les instructions que j'ai copié-collé de l'autre programme. Le souci est dans la façon dont le système est initialisé. Je vous ai dit qu'on regardait la constellation du Centaure, que je n'ai pas l'habitude de montrer.

Si je n'a pas l'habitude de la montrer, c'est parce que c'est une constellation de l'hémisphère sud, qui n'est pas visible là où se trouve mon planétarium, quel que soit le moment de l'année, donc il n'y a jamais un ciel du soir où on va la voir dans les séances habituelles.

8/10 Et donc pour montrer cette constellation, j'ai demandé à mon système de ne pas se mettre à Pleumeur-Bodou, où se situe le Planétarium, mais sur l'île de la Réunion, dans l'hémisphère sud. Avec donc un haut et un bas un peu différents, ce qui visiblement fait que certains objets ne sont pas chargés dans le même sens que d'habitude.

Et comme je passe cette séquence sans avoir ramené le système à ses coordonnées habituelles, je me retrouve à tourner autour d'un objet qui n'est pas affiché dans le sens habituel, et donc on le voit par l'angle où la texture n'est pas chargée. C'est parfaitement logique, il fallait juste prendre le temps de comprendre pourquoi.

9/10 C'est d'ailleurs toujours un moment très cool quand on arrive à comprendre pourquoi le système ne réagit pas comme on l'attend, et à corriger ce qui ne va pas dedans. Et, soit dit en passant, c'est pour ça que je ne veux surtout pas devoir composer avec des « IA génératives ».

Parce que quand un truc bug en informatique, fondamentalement, il y a une raison. Le programme fait précisément ce pour quoi tu l'as codé, et si le résultat n'est pas celui que tu attends, une fois que t'as vérifié que ce n'est pas juste toi qui a loupé un truc, c'est que tu as quelque chose à comprendre sur comment fonctionne l'outil avec lequel tu interagis.

10/10 Un machin qui te pond des lignes de codes d'une manière pas déterministe, où tu copies-colles des trucs sans comprendre ce que c'est censé faire au juste, quand bien même le résultat marcherait, et indépendamment des nombreux autres problèmes que ça pose, c'est juste le contraire de ce que tu fais quand tu programmes.

Mais bon, on est sur Masto, donc je n'ai probablement pas vraiment à vous convaincre de tout ce qui ne va pas là-dedans, donc moi je vais retourner faire en sorte que les gens aient des étoiles plein les yeux, et je vous donne rendez-vous vendredi pour le thread sur le sujet choisi d'ici-là ;-)

@elzen
On veut tous savoir ce quels étaient les ingrédients de cette salade. Dès que fois que ce serait un déterminant dans la résolution du bug.
On sait jamais.

@elzen
Oui, c'est comme pour la nourriture, ou le tricot.
Ou se faire ses meubles.
Le plaisir et l'efficacité de se les faire soit même, plutôt que déballer du prêt à porter, des T-Shirts fabriqués industriellement.
Ou une barquette de plat préparé, hop passé au micro-onde.

C'est pareil mais pour de l'information, du code.

Mme-Lia, elle nous fait des bonnes boites de ravioli d'informations....

"Boites de ravioli d'information, hachis parmentier d'information, biscuits industriels d'information - Illustration Intelligence Artificielle et Hygiène-Numérique"
13 novembre 2024 : Les CRIs.

https://www.les-cris.com/pages-300-articles-de-CRIs/theme-060-Numerique/art-2024/cri-num-241113-Boites-ravioli-d-information-Illustration-IA-Hygiene-Numerique.php

Ravioli en boite : Pratique ! Bon... ? 🤔