• # il arrive à copier/coller n'importe quoi, comme un vrai étudiant.

    Posté par  . Évalué à 10. Dernière modification le 31 mars 2023 à 12:39.

    Question: écris un programme en Forth qui affiche un point en mode vga 320×200 sous msdos

    Réponse : Voici un exemple de programme Forth qui affiche un point en mode VGA 320x200 sous MS-DOS :

    \ Constantes pour la configuration VGA
    decimal
    320 constant screen-w
    200 constant screen-h
    256 constant screen-colors
    
    \ Configuration de la carte graphique VGA
    : init-vga ( -- )
      13 0e 01 03 8d 0a 8c 8e 07 17 09 00 06 05 00 0f
      [email protected] 0 0 0
      [email protected] [email protected] [email protected] [email protected]
      [email protected] [email protected] [email protected] [email protected]
      [email protected] [email protected] [email protected] [email protected] ;
    
    \ Afficher un point en position x, y avec la couleur spécifiée
    : plot ( x y color -- )
      screen-w * + 320 * swap
      screen-h * + 4* +  mov
      dup @ swap or swap !
    ;
    
    \ Initialiser la carte graphique VGA
    init-vga
    
    \ Afficher un point rouge en position x=100, y=100
    100 100 4 plot
    
    

    J'ai demandé MS-DOS afin de donner un cadre simple au problème (lui demander ça sous linux ou windows eut été un peu déloyal).

    Le désassemblage de « 13 0e 01 03 8d 0a 8c 8e 07 17 09 00 06 05 00 0f » est étrange.
    Je m'attendais à une initialisation du mode VGA (mov ax,13h int 10h , en gros, avec une boucle de nettoyage du segment video).

    ~$ python2 -c 'print "\x13\x0e\x01\x03\x8d\x0a\x8c\x8e\x07\x17\x09\x00\x06\x05\x00\x0f"' | ndisasm - -b16
    00000000  130E0103          adc cx,[0x301]
    00000004  8D0A              lea cx,[bp+si]
    00000006  8C8E0717          mov [bp+0x1707],cs
    0000000A  0900              or [bx+si],ax
    0000000C  06                push es
    0000000D  05000F            add ax,0xf00
    

    Donc déjà, ce n'est pas ça.

    Je suggère donc de remettre le Forth au programme, les étudiants seront obligés de travailler par eux-même pendant quelques années. Jusqu'à que le volume de données soit suffisant et que les profs passent à Brainfuck.

    Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

  • # Génération en JS

    Posté par  (site web personnel) . Évalué à 5.

    L'autre jour, j'avais un truc pénible à faire en JS (manipulation de tableaux avec sommes dans tous les sens, juste pour une utilisation).
    Chat-GPT me l'a fait, le code est assez variable d'un coup sur l'autre, mais il l'a fait.

    Comme c'était la première fois que je l'utilisais, j'ai un peu amélioré mes demandes :
    - Au début, je demandais tout avec une phrase => Ca ne fonctionnait pas parce que je demandais trop de choses d'un coup
    - Ensuite, je demandais les choses petit à petit => Au bout de quelques questions, il s’emmêlait les pinceaux
    - Ensuite, je collais mon JSON, et je faisais ma demande dans un commentaire => Ca a bien marché !
    - Enfin, je faisais les choses petit à petit en faisant des fonctions, avec des commentaires et en repartant des debugs.

    J'ai du mal à dire si cela m'a fait gagner beaucoup de temps, car c'était la première fois que je l'utilisais, mais franchement, j'ai trouvé cela juste incroyable.

    • [^] # Re: Génération en JS

      Posté par  (site web personnel) . Évalué à 4.

      Vu que c'est chatGPT qui a recraché du code, est ce que tu pourrais le recopier ici?
      Et, le Json, il avait quelle forme?

      Je comprendrai que tu sois réticent à partager avec nous des secrets industriels dans du Json et du code Javascript, et que tu voudras garder tes échanges avec ChatGPT privés.

      Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

      • [^] # Re: Génération en JS

        Posté par  (site web personnel) . Évalué à 3.

        Mince, je crois que je n'ai plus accès aux échanges… Mais tu peux essayer facilement. Colles lui juste un JSON, il te dit ce qu'il comprend du JSON avec les en-têtes de colonnes, il comprend la logique.
        Moi, je suis juste bluffé, c'est un truc de dingue… Je ne cherche pas la petite bête (je ne dis pas cela pour toi :)), le code n'est sans doute pas parfait, des fois, ça ne fonctionne pas du premier coup. Mais, dans 1 an, 2 ans, 5 ans, il le sera.

        Alors, on peut faire l'autruche, mais, pour moi, c'est une mauvaise idée, on devrait juste regarder les alternatives libres aujourd'hui…

        • [^] # Re: Génération en JS

          Posté par  (site web personnel) . Évalué à 2.

          C'est un peu comme les frameworks, ça fonctionne, mais le code généré est souvent horrible, consomme plein de ressources ram et cpu, juste pour un bout de fonctionnalité.

          Alors que lorsque cette fonctionnalité est codée à la main, ça prends plusieurs jours, mais c'est ultra-efficace.

          Pour des libs comme jquerry, il y avait eu du refactoring, mais j'ai oublié de quoi il était question.

          Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

          • [^] # Re: Génération en JS

            Posté par  (site web personnel) . Évalué à 1.

            Tu peux voir cela comme cela, mais, à mon avis, tu te trompes… Regarde ce que faisait une IA il y a 2 ans et ce que cela peut te pondre aujourd'hui.
            Et bien, si ça n'est pas parfait, aujourd'hui, ok, mais demain, ça le sera.

          • [^] # Re: Génération en JS

            Posté par  (site web personnel) . Évalué à 2. Dernière modification le 31 mars 2023 à 17:54.

            Je te mets un exemple de ce que je viens de construire :

            Peux-tu me faire un json avec les 20 plus grandes villes de france, leur population, leur superficie et leur maire

            Bien sûr, voici un exemple de JSON avec les 20 plus grandes villes de France, leur population, leur superficie et leur maire :

            {
            "villes": [
            {
            "nom": "Paris",
            "population": 2190327,
            "superficie": 105.4,
            "maire": "Anne Hidalgo"
            },
            {
            "nom": "Marseille",
            "population": 861635,
            "superficie": 240.6,
            "maire": "Michèle Rubirola"
            },
            {
            "nom": "Lyon",
            "population": 515695,
            "superficie": 47.9,
            "maire": "Grégory Doucet"
            },
            {
            "nom": "Toulouse",
            "population": 479553,
            "superficie": 118.3,
            "maire": "Jean-Luc Moudenc"
            },
            {
            "nom": "Nice",
            "population": 342295,
            "superficie": 71.9,
            "maire": "Christian Estrosi"
            },
            {
            "nom": "Nantes",
            "population": 313288,
            "superficie": 65.19,
            "maire": "Johanna Rolland"
            },
            {
            "nom": "Strasbourg",
            "population": 280966,
            "superficie": 78.26,
            "maire": "Jeanne Barseghian"
            },
            {
            "nom": "Montpellier",
            "population": 280300,
            "superficie": 56.88,
            "maire": "Michael Delafosse"
            },
            {
            "nom": "Bordeaux",
            "population": 257804,
            "superficie": 49.36,
            "maire": "Pierre Hurmic"
            },
            {
            "nom": "Lille",
            "population": 232787,
            "superficie": 34.83,
            "maire": "Martine Aubry"
            },
            {
            "nom": "Rennes",
            "population": 216815,
            "superficie": 50.39,
            "maire": "Nathalie Appéré"
            },
            {
            "nom": "Reims",
            "population": 182592,
            "superficie": 46.9,
            "maire": "Arnaud Robinet"
            },
            {
            "nom": "Le Havre",
            "population": 170352,
            "superficie": 46.95,
            "maire": "Édouard Philippe"
            },
            {
            "nom": "Saint-Étienne",
            "population": 170049,
            "superficie": 79.97,
            "maire": "Gaël Perdriau"
            },
            {
            "nom": "Toulon",
            "population": 166527,
            "superficie": 42.84,
            "maire": "Hubert Falco"
            },
            {
            "nom": "Grenoble",
            "population": 161792,
            "superficie": 18.13,
            "maire": "Éric Piolle"
            }
            }

            Peux tu me faire une fonction qui ordonne ce JSON par superficie ?

            import json
            def trier_villes_par_superficie(json_str):
            # Charger le JSON
            data = json.loads(json_str)
            # Trier la liste des villes par superficie croissante
            villes_triees = sorted(data["villes"], key=lambda ville: ville["superficie"])
            # Construire un nouveau JSON trié
            data_trie = {"villes": villes_triees}
            json_trie = json.dumps(data_trie, indent=2)
            return json_trie

            Explications :

            La fonction trier_villes_par_superficie prend en paramètre une chaîne de caractères représentant un JSON contenant les données des villes.
            Elle commence par charger le JSON en utilisant la fonction json.loads.
            Ensuite, elle trie la liste des villes en utilisant la fonction sorted en spécifiant la clé de tri à utiliser (lambda ville: ville["superficie"] signifie que l'on trie par la valeur de la clé "superficie" de chaque ville).
            Elle construit un nouveau JSON trié à partir de la liste triée de villes en utilisant la fonction json.dumps.
            Enfin, elle retourne la chaîne de caractères représentant le JSON trié.

            Voici un exemple d'utilisation de la fonction :

            etc. etc.

            • [^] # Re: Génération en JS

              Posté par  (site web personnel) . Évalué à 3.

              Désolé, donc, là, il s'est trompé il a trié par ordre alphabétique les superficies :)

              C'est trié par ordre alphabétique et pas par ordre croissant

              Je suis désolé pour cette erreur. Voici la fonction modifiée pour trier les villes par ordre croissant de superficie :

              import json

              def trier_villes_par_superficie(json_str):
              # Charger le JSON
              data = json.loads(json_str)
              # Trier la liste des villes par superficie croissante
              villes_triees = sorted(data["villes"], key=lambda ville: ville["superficie"])
              # Construire un nouveau JSON trié
              data_trie = {"villes": villes_triees}
              json_trie = json.dumps(data_trie, indent=2)
              return json_trie

          • [^] # Re: Génération en JS

            Posté par  . Évalué à 2. Dernière modification le 31 mars 2023 à 20:42.

            C'est une préoccupation légitime. Pour tester, j'ai demandé à ChatGPT d'écrire une fonction en C pour chercher une chaîne dans un texte. Il a produit une implémentation naïve, pas optimisée, sans commentaire. Si je lui précise que je veux un code optimisé et bien commenté, il utilise les bons algorithmes et ajoute des commentaires décents, bien que parfois triviaux. Il a juste du mal à indiquer dans le code quel algorithme d'optimisation il a employé, malgré ma demande. J'ai fait plusieurs essais, mais je n'ai pas testé les codes produits.

    • [^] # Re: Génération en JS

      Posté par  . Évalué à 2.

      Cela doit beaucoup dépendre du langage, plus ou moins à la mode.

      Avec Ada, la réponse a toujours l'air sympa, mais complètement fausse (erreurs grossières de syntaxe, mélange avec du C…). Bref, cela me rappelle toujours un sketch (de je ne sais plus qui) sur les produits discount et Alain DELO(I)N.

  • # Bientôt le programme politique

    Posté par  (site web personnel) . Évalué à 3.

    La presse relate l'aventure d'un politicien fameux ayant fait rédigé un discours par ChatGPT. Il trouve cela fascinant. Pour moi les perspectives seraient plutôt abyssales ici.
    — Bientôt les programmes des présidentielles écrit par IA.
    — Croire que les gens peuvent être intéressés à vous écouter déblatérer des heures durant sur des sujets dont vous êtes parfaitement ignorant, n'est-ce pas là une gageur ? Les discours écrit par des nègres, soulignaient déjà le peu d'intérêt pour le travail des élites politiques. Mais au moins pouvait-on supputer que les sous-traitants aient été sélectionnés sur la base de leurs convictions plutôt qu'uniquement sur leur capacité à baratiner. Oser passer la vitesse supérieur en choisissant une machine connue pour sa capacité à raconter des âneries, voilà ce que seul un politicien français semble pouvoir oser.

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.