Claude SIMON a écrit 556 commentaires

  • [^] # Re: Parallèle avec la politique

    Posté par  (site web personnel) . En réponse au journal GNU t'es la ?. Évalué à 7.

    Ca faisait d'ailleurs râler Bill Gates qui avait besoin qu'on arrête de s'échanger du code librement pour pouvoir vendre le même code!

    J'ai quelque doute, et comme on dit sur WP, Refnec.

    Il faisait peut-être référence à ça : https://fr.wikipedia.org/wiki/An_Open_Letter_to_Hobbyists

    « Smart IoT Crafting » : l'IoT pour tous

  • # Le smartphone, cheval de Troie par excellence ?

    Posté par  (site web personnel) . En réponse au journal Nostalgie d'Internet des années 2000.. Évalué à 2.

    Les premiers ordinateurs personnels s'utilisaient en tapant des commandes au clavier, ne fût-ce que pour lancer un jeu, et on avait facilement accès aux sous-couches logicielles. Le smartphone, à coté, est une véritable boîte noire, dont l'interface graphique simplifie grandement l'utilisation, mais au détriment de la visibilité et de l'accessibilité de ses sous-couches logicielles.

    De ce fait, alors que le digital numérique prend une place de plus en plus importante dans nos vies, autant personnelles que professionnelles, de moins en moins de gens comprennent comment cela fonctionne. Les Raspberry Pi et consorts, crées pour tenter de contrer cette tendance, n'ont qu'un impact très limité, malgré leur indéniable succès commercial.

    L'utilisation d'un smartphone est soumis à de nombreuses contraintes, dont seuls quelques initiés peuvent s'affranchir, non sans risques. Mais, vu l'attachement des gens, notamment les plus jeunes, pour leurs smartphones, ces derniers constituent néanmoins un excellent vecteur pour la découverte des pratiques liées à l'informatique, et notamment la programmation.

    Le but est de simplement leur faire découvrir ce que c'est que la programmation, sachant qu'il existe de nos jours des langages qui permettent, même à un non-professionnel de l'informatique, de réaliser des programmes que ce soit pour une utilisation dans un cadre professionnel, ou simplement à titre de hobby.

    On pourrait envisager des ateliers de découverte de la programmation, durant lesquels serait détaillé pas à pas le codage, en partant de zéro, de petites applications avec une véritable interface graphique. Les participants pourraient, aux choix, reproduire le programme en même temps sur leurs smartphones, si rien d'autre n'est disponible, ou simplement juste regarder et écouter.

    Le point clef c'est que, à l'issue de cet atelier, une URL leur est fournie à partir de laquelle ils pourront non seulement lancer les applications abordées au cours de cet atelier, mais également les modifier, voire créer leurs propres applications, et tout cela à partir de leurs smartphones, s'il n'ont pas d'autres ordinateurs à disposition.

    Dans ce contexte, il faut rendre la pratique de la programmation le plus attrayant possible :

    • avec la possibilité de programmer en utilisant un appareil qui leur est familier et auquel ils ont facilement accès, à savoir leurs smartphones ;
    • grâce à un accès rapide et facile à un environnement de programmation, sans rien avoir à installer ;
    • en leur facilitant la programmation d'applications un minimum attrayantes, à savoir avec une interface graphique tout en utilisant un langage réputé accessible aux débutants ;
    • avec la possibilité de facilement montrer leurs réalisations à leurs connaissances.

    Il existe des outils permettant d'atteindre cet objectif :

    • Replit (pas libre), qui est un IDE en ligne, permettant de programmer à partir d'un navigateur web, et donc sans rien avoir à installer ;
    • le toolkit Atlas (désolé pour l'auto-promotion, mais au moins c'est Libre), pour la programmation de l'interface graphique, et le partage de l'application.

    J'ai réalisé une vidéo montrant l'utilisation de ces outils. C'est ma première vidéo de ce genre, donc je vais peut-être prochainement en créer une autre version, d'où les redirections :

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Thunderbird

    Posté par  (site web personnel) . En réponse au journal Lire ses lignes en ligne de commande, un nouveau projet. Évalué à 3.

    Bizarre, chez moi c'est Édition > Rechercher > Rechercher dans le courrier et l'intitulé de la boite dialogue qui s'affiche alors est Recherche avancée dans le courrier

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Les réseaux sociaux c'est pour les zéros sociaux

    Posté par  (site web personnel) . En réponse au journal Ados et réseaux sociaux. Évalué à 5.

    Il y a peut-être moyen de s'appuyer sur l'attachement d'un ado envers son smartphone pour éveiller son intérêt pour la programmation, mais il faudrait pour cela, je pense, qu'il puisse :

    1. écrire et lancer ses programmes directement de son smartphone ;
    2. leur conférer une ergonomie qui les rendent suffisamment faciles à utiliser ;
    3. donner accès à ses programmes directement de leurs smartphones à des personnes de son choix.

    Concrètement, en supposant qu'il ai programmé un jeu genre bataille navale, il devrait pouvoir lancer ce jeu directement de son smartphone, et y jouer avec un camarade, chacun utilisant son propre smartphone.

    Le fait qu'il puisse utiliser son smartphone d'une manière différente de ses camarades, autant par le fait de l'utiliser pour programmer, que de pouvoir y utiliser des programmes uniques, à savoir ses propres programmes, tout en pouvant permettre à quelques «privilégié(e)s» d'utiliser ses programmes sur leurs smartphones, peut peut-être constituer une motivation suffisante.

    Sachant que, s'il se met à la programmation de manière un tant soit peu sérieuse, il faudra prévoir un appareil autrement plus adapté à cette activité qu'un smartphone ou une tablette…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Quelques mails

    Posté par  (site web personnel) . En réponse au journal OVH - Le nuage part en fumée ?. Évalué à 4.

    Effectivement, le champs Localisation, contrairement à leur copie d'écran montrée en exemple, contient Strasbourg (SBG) - France, donc SBG sans numéro. En outre, entre ce matin est maintenant, le champs Zone (Cluster) est passé de os-sbg1-abc (cluster-xyz), ce qui m'avait laissé penser que mon VPS était situé dans SGB1, donc potentiellement récupérable, à Region OpenStack: os-sbg4 (cluster-xyz), ce qui explique, si on applique les corrections que tu suggères, le second mail m'annonçant que mon VPS est irrécupérable…

    « Smart IoT Crafting » : l'IoT pour tous

  • # Quelques mails

    Posté par  (site web personnel) . En réponse au journal OVH - Le nuage part en fumée ?. Évalué à 3. Dernière modification le 13 mars 2021 à 06:43.

    Ayant un VPS chez OVH, situé justement à Strasbourg, j'attendais d'en avoir des nouvelles de leur part.

    Hier soir est arrivé un premier mail, dont voici un extrait :

    Si votre VPS est situé dans le datacenter SBG2 (correspondant aux localisations VPS SBG1, SBG2 et SBG4), celui-ci ne pourra pas être remis en service.

    Du coup, la manière dont est organisé leur datacenter à Strasbourg à l'air différente de ce que laissait supposer leurs annonces ici :

    État du datacenter de Strasbourg
    SBG1 : Salle Network est OK - 4 salles détruites - 8 salles OK
    SBG2 : détruite
    SBG3 : PSU éteint - contrôle des serveurs en cours
    SBG4 : Pas d'impact physique

    et plus loin :

    • L’incendie a détruit principalement le datacentre SBG2 et a partiellement endommagé le datacentre SBG1 (4 salles détruites sur 12). Les deux autres datacentres OVHcloud de Strasbourg n’ont pas été touchés par le feu ; les serveurs SBG3 et SBG4 sont pour l’instant éteints mais n’ont pas été impactés.

    et encore plus loin :

    • SBG1 a été partiellement endommagé (4 salles sur 12):
    o Salle réseau – contrôlée hier - ETA du redémarrage : début de semaine prochaine.
    o Réseau électrique - ETA provisoire pour remise en route : lundi 15 mars.
    o Les serveurs seront audités et réactivés un par un.

    • SBG 4 : n’est pas impacté.
    o Un plan de mise en service sera défini pour la fin de cette semaine

    Si on se réfère au mail, contrairement à ce que laissaient entendre leurs annonces ci-dessus, il semblerait que SBG1 et SGB4 soient physiquement situés dans SBG2…

    Pour ceux que ça concerne, voici un autre extrait de ce mail :

    Si votre VPS est situé dans le datacenter SBG3 (correspondant à la localisation VPS SBG6), celui-ci pourra être remis en service à partir du 22 mars prochain.

    Et ce matin, j'ai reçu un autre mail m'indiquant explicitement que (comme je m'en doutais un peu) mon VPS est irrécupérable…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: En quoi c'est simple ?

    Posté par  (site web personnel) . En réponse à la dépêche OpenWifiPass, l'accès Wifi facile et des bâtons dans la pomme. Évalué à 2.

    Sauf que cela ne fonctionne pas avec les appareils Apple, que ce soit un ordinateur ou un smartphone.

    Par contre, certaines boxes offrent la possibilité de se connecter au Wifi à l'aide d'un QR Code, et cela fonctionne bien avec les iPhone (et les iPad), sans avoir à installer d'application dédiée. Par contre, c'est plus délicat à mettre en œuvre avec un ordinateur fixe ou portable…

    « Smart IoT Crafting » : l'IoT pour tous

  • # Ouvrage reçu

    Posté par  (site web personnel) . En réponse à la dépêche Meilleures contributions LinuxFr.org : les primées de janvier 2021. Évalué à 3.

    Ça y est, le livre vient d'arriver.

    Merci à l'équipe de LinuxFR.org, et aux éditions ENI !

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Et de 2…

    Posté par  (site web personnel) . En réponse au lien Ça brule chez OVH .... Évalué à 5. Dernière modification le 10 mars 2021 à 11:14.

    dans quel état

    euh…

    (pour ceux ayant la flemme de cliquer : son VPS, surtout la machine l'hébergeant, est partie en fumée)

    Je faisais surtout référence à son contenu, pas à l'état physique de la machine qui l'héberge.

    Ceci dit, la section hébergeant la machine sur laquelle se trouve mon VPS n'a, semble-t-il, que partiellement brûlé. Mais même si la machine hébergeant mon VPS est récupérable, je ne pense pas qu'ils vont la réutiliser, du moins dans un premier temps. Bien qu'ils pourraient la lancer pour en récupérer le contenu, je doute qu'ils le fassent ; je m'attends plus à me retrouver avec un VPS totalement vierge…

    L'intérêt de ce genre d'offre est de multiplier le pas cher (ça reste pas cher, hors coût d'admin qu'il faut estimer pour voir si ça vaut le coup) pour la redondance… Sur des sites différents (non, le backup sur le même site n'est pas un bon backup…).

    Mon second VPS n'est même pas situé sur le même continent :-). De toute manière, je m'occupe moi-même du backup, en le stockant sur une machine à domicile (je vais d'ailleurs, de suite, en lancer un de mon VPS encore valide ; sait-on jamais…)…

    « Smart IoT Crafting » : l'IoT pour tous

  • # Et de 2…

    Posté par  (site web personnel) . En réponse au lien Ça brule chez OVH .... Évalué à 7. Dernière modification le 10 mars 2021 à 08:25.

    …après la panne d’électricité de novembre 2017. J'avais une meilleur disponibilité quand j’étais en auto-hébergement…

    Ce coup-ci, j'ai prévu un VPS de secours. Une petite modification des zones DNS rattachées, et c'est reparti…

    Je suis curieux de voir quand je vais pouvoir récupérer mon VPS, et dans quel état… Me demande si je ne vais pas en prendre un troisième, vu le prix que ça coûte.

    Bon courage aux équipes d'OVH et aux pompiers…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Dans la langue de Jean-Baptiste Poquelin

    Posté par  (site web personnel) . En réponse au lien Oh le beau bug (dans une rc1) (mais c'est un sacré bug). Évalué à 4.

    […] je crois que peu de gens utilisent l'hibernation…

    D'un autre coté, j'ai l'impression c'est une plaie à mettre en place, ceci expliquant peut-être cela. En tout cas, moi j'ai eu énormément de mal. La veille était disponible par défaut, mais rien pour l'hibernation, même en fouillant dans les paramètres (sous Kubuntu).

    Ça m'intéresserait de savoir si d'autres l'on activée, et si c'était facile pour eux, histoire de déterminer si c'est moi qui m'étais mal débrouillé…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Soutien

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 2.

    Je pensais plutôt à l'utilisation de bibliothèques comme jQuery UI.

    Si on prend, par exemple, le widget jqxTimePicker de la bibliothèque jQWidgets, voici le code que l'on utiliserait pour une appli web classique :

    <head>
      <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
      <script type="text/javascript" src="../../scripts/jquery-1.12.4.min.js"></script>
      <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
      <script type="text/javascript" src="../../jqwidgets/jqxdraw.js"></script>
      <script type="text/javascript" src="../../jqwidgets/jqxtimepicker.js"></script>
      <script type="text/javascript" src="../../scripts/demos.js"></script>
      <script type="text/javascript">
            $(document).ready(function ()
            {
                $("#timepicker").jqxTimePicker({
                    format: "24-hour",
                    width: 400
                });
            });
      </script>
    </head>
    <body>
      <div id="timepicker"></div>
    </body>

    Et voilà le code pour utiliser ce widget avec le toolkit Atlas en l'état (pour le voir à l'œuvre : https://repl.it/@AtlasTK/jqxTimePicker) :

    import atlastk
    
    HEAD = """
      <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
      <script type="text/javascript" src="../../scripts/jquery-1.12.4.min.js"></script>
      <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
      <script type="text/javascript" src="../../jqwidgets/jqxdraw.js"></script>
      <script type="text/javascript" src="../../jqwidgets/jqxtimepicker.js"></script>
      <script type="text/javascript" src="../../scripts/demos.js"></script>
    """
    
    BODY = """
    <button data-xdh-onevent="Submit">Récupèrer l'heure sélectionnée</button>
    <br />
    <div id="timepicker"></div>
    """
    
    def ac_connect(dom):
      dom.inner("",BODY)
      dom.execute_void("""
                $("#timepicker").jqxTimePicker({
                    format: "24-hour",
                    width: 400
                });
      """)
    
    def ac_submit(dom):
      dom.alert(dom.execute_string("""
    $('#timepicker').jqxTimePicker('value').toTimeString();
      """))
    
    
    atlastk.launch({"": ac_connect, "Submit": ac_submit }, None, HEAD)

    Pour le contenu de HEAD, c'est d'habitude bien expliqué dans la documentation des widgets ; il suffit généralement de faire un copier/coller. BODY ne pose pas non plus de difficulté particulière. Le problème, c'est les deux commandes execute_…. Il faudrait que l'utilisateur n'ai pas à les écrire, mais que le toolkit Atlas arrive à les déduire à partir de la valeur d'un attribut HTML, à l'image de ce qui existe pour le widget CKEditor : https://github.com/epeios-q37/atlas-python/blob/master/examples/Notes/Note.html#L7

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Soutien

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 3.

    OK, merci pour l'exemple ! Et pour l'adresse site qui l'héberge (ils instancient des Linux+Firefox virtualisés pour des démos web, wow !).

    Pas seulement pour du web ; tu peux aussi lancer des application Tkinter : https://repl.it/@AtlasTK/Tkinter

    Je constate que dans l'exemple tu utilises des widgets HTML standard ("button" et "input" pour ne pas les nommer). Pour équivaloir Atlas à Tkinter/PySimpleGui/PyQt, il faut pouvoir avoir des widgets custom ; j'ai trouvé un exemple qui en a (dans le code, sous-dossier "Widgets"), assez joli, et cherche maintenant à déterminer la part du Python/JS dans le truc.

    Je pense que tu fais référence à CKEditor.
    Je suis en train de chercher comment faciliter l'utilisation de ces widgets custom avec le toolkit Atlas, sachant qu'ils nécessitent généralement un peu de code JavaScript pour l'initialisation, voire pour en gérer les données affichées/saisies par l'utilisateur…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Soutien

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 4.

    Le fonctionnement du toolkit Atlas est un peu plus compliqué que cela, mais c'est ce qui le rend plus simple à utiliser que tu ne sembles le penser (et que mes tentatives d'explications ne le laissent malheureusement entendre…).

    Voilà le code, en Python, d'une sorte de Hello, World! :

    import atlastk
    
    BODY = """
    <input  data-xdh-onevent="Submit" id="Input" placeholder="Votre prénom"></input>
    <button data-xdh-onevent="Submit">Saluer</button>
    <br/>
    <output id="Output"></output>
    """
    
    def ac_connect(dom):
      dom.inner("", BODY)
      dom.focus("Input")
    
    def ac_submit(dom):
      dom.set_content("Output",f"Bonjour, {dom.get_value('Input')} !")
      dom.set_content("Input", "")
      dom.focus("Input")
    
    CALLBACKS = {
      "": ac_connect,
      "Submit": ac_submit
    }
    
    atlastk.launch(CALLBACKS)

    Dans BODY, on a l'interface en HTML, avec des attributs data-xdh-onevent dans lesquels on définit une action (Submit), à laquelle on affecte une fonction (ac_submit). L'action correspondant à la chaîne vide et à laquelle on affecte la fonction ac_connect est l'action lancée lors d'une nouvelle connexion.

    Pour voir le résultat : https://repl.it/@AtlasTK/Greetings (faut être un peu patient).

    Voici un petit schéma du fonctionnement du toolkit Atlas :

    Le toolkit Atlas

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Soutien

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 3.

    Je ne connais pas Polymer mais, de ce que j'en ai compris de sa fiche Wikipedia, ça a l'air d'être du même tonneau que Vue.js, AngularJS, React… Or, le but du toolkit Atlas est justement de pouvoir se passer de ces bibliothèques (si les performances ne sont pas primordiales), en recevant les événements utilisateurs et en manipulant le DOM du navigateur web directement dans le backend (il n'y a plus de frontend), de plus sans avoir à programmer en JavaScript ou assimilé.
    En fait, le toolkit Atlas est assez similaire à Tkinter, sauf que, au lieu de s'appuyer sur les composants graphiques de la bibliothèque Tk, le toolkit Atlas s'appuie sur les composants HTML.
    L'autre différence, et c'est ce qui fait débat quant à ce qui est considéré comme le plus simple, avec Tkinter, on « dessine » l'interface programmatiquement, en utilisant l'API de Tkinter, alors qu'avec le toolkit Atlas, on la « dessine » en pur HTML (et technos associées), de manière totalement indépendante du toolkit Atlas.

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Soutien

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 5.

    Au risque de me faire crucifier pour auto-promotion, je citerais aussi le toolkit Atlas… Ce toolkit privilégie la simplicité d'utilisation et de mise en œuvre aux performances, même si les technos utilisées pour ce faire font débat…
    J'en ai un peu (hum…) parlé ici même

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Souvenirs

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 4.

    Mais à l'époque, […] le web n'était pas le seul moyen de communication.

    Le premier site web a vu le jour en 90, et la version 1.0 de Netscape Navigator (mon premier navigateur web) est sortit en 94. Du coup, en ce qui me concerne, je me suis longtemps baladé sur internet à coup de FTP

    « Smart IoT Crafting » : l'IoT pour tous

  • # Windows 10 S ?

    Posté par  (site web personnel) . En réponse au journal [Windaube 10] M$, alias Windaube Store. Évalué à 10.

    Ça ne serait pas la version 10 S de Windows qui est installée ? Comme c'est une version soit-disant sécurisée de Windows 10, il n'est, en théorie, possible d'installer une application qu'à partir du store.
    Je n'ai jamais eu ce comportement en installant Python sur un Windows 10, que ce soit la version Pro ou Famille, d'où ma question…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: JustPy

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (2/2). Évalué à 3.

    Le toolkit Atlas a d'abord été développé pour Java, Node.js et PHP (cette dernière version n'est plus disponible à cause de problèmes concernant le multithreading), et s'appuyait sur du code natif développé en C++. Mais la présence de code natif complexifie énormément l'installation, ce qui peut décourager ceux qui étaient tentés de l'essayer.

    Du coup, j'ai développé dans chacun des langages pour lequel le toolkit était disponible, puis ensuite en Perl, Python et Ruby, des fonctionnalités permettant de déporter tout le code natif sur un serveur. En fait, le toolkit Atlas, en l'état, est une version de démonstration d'une technologie que j'ai baptisée XDHTML et qui permettra, à terme, de coder avec des technos web, mais sans JavaScript (sauf pour la version Node.js), une interface graphique web, desktop et/ou mobile.

    Ce qui a été implémenté dans chacun des langages pour lequel le toolkit est disponible, c'est juste le protocole permettant de communiquer avec le proxy. À terme, le proxy existera également sous forme de bibliothèque dynamique directement chargée par l'application utilisant le toolkit Atlas, et cette dernière communiquera alors avec le proxy, non plus via une connexion réseau, mais en appelant directement les fonctions natives du proxy. De ce fait, il n'y aura plus de problèmes de latence.

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: J'ai testé et compris le concept

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (1/2). Évalué à 2.

    Je ne sais pas si c'est ce à quoi tu pensais, mais j'ai réalisé un petit schéma que je présente dans ce commentaire

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: JustPy

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (2/2). Évalué à 2. Dernière modification le 29 janvier 2021 à 18:58.

    J'ai relu mon commentaire, et il y a effectivement quelques raccourcis, involontaires, qui ne facilitent pas la compréhension. Cependant, je crains de ne pouvoir te répondre précisément, car il y a des aspects du fonctionnement de JustPy et des composants sur lesquels il s'appuie qui m'échappent encore. Néanmoins, je vais donner quelques précisions sur le fonctionnement du toolkit Atlas, en espérant que cela apporte tout de même quelques éléments de réponse…

    Concernant le poids des paquets respectifs, j'ai récupéré les données suivantes sur Pypi.org :

    • taille du paquet :
      • JustPy : ~4 Mo,
      • toolkit Atlas : ~20 Ko ;
    • paquets installés en sus :
      • JustPy : starlette, uvicorn, itsdangerous, websockets…,
      • toolkit Atlas : aucun.

    Les différences entre JustPy et le toolkit Atlas proviennent du fait que, avec JustPy, tout ce qui est nécessaire à son fonctionnement est rapatrié sur et exécuté par la machine du développeur, alors que, dans le cas du toolkit Atlas, le gros du traitement est déporté sur un serveur, auquel se connecte le toolkit.

    Voici un petit schéma qui, j'espère, clarifie cela :

    Titre de l'image

    xdhqxdh est une bibliothèque dynamique chargée par xdhwebq. xdhqxdh relaie les évènements associés aux actions de l'utilisateur vers le toolkit Atlas, et, en retour, traduit les primitives envoyées par ce dernier en opérations sur le DOM à destination du navigateur web. xdhwebq permet d'exécuter xdhqxdh dans un environnement web, sachant qu'il existe un équivalent permettant de l'exécuter dans un environnement bureau (interface desktop).

    Il y a donc deux serveurs, l'un est un serveur web classique (Apache, NGINX…), et l'autre est constitué par le couple xdhwebq/xdhqxdh, mais le développeur n'a à installer aucun des deux, le toolkit Atlas se connectant automatiquement par défaut à un serveur public que je mets gratuitement à disposition. C'est pour cela qu'une application développée avec le toolkit Atlas est automatiquement et instantanément accessible de tout l'internet via l'URL affichée dans la console à son lancement…

    Si tu as d'autres question concernant le toolkit Atlas, que ce soit sur son fonctionnement ou des problèmes que tu aurais rencontrés dans sa mise en œuvre, n'hésite pas. Ça me donnera matière à enrichir la documentation, qui en a bien besoin…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: JustPy

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (2/2). Évalué à 4.

    Un peu basé sur le même concept, on retrouve JustPy.
    Il integer les composants Quasar et Highchart.

    J'ai un peu regardé JustPy, que je ne connaissais pas du tout. Je ne connais pas non plus Quasar et Highchart mais, vu les similitudes entre JustPy et le toolkit Atlas, il doit y avoir moyen de les intégrer également, ou du moins de les gérer de la même façon que Matplotlib dans cet exemple : https://repl.it/@AtlasTK/atlas-python, clic sur bouton vert Run, taper o puis entrée, et clic sur l'URL affichée dans la console (code source : https://repl.it/@AtlasTK/atlas-python#examples/MatPlotLib/main.py)…

    L'idée consiste à déporter la moindre action qu'on effectuerait sur le client en JS, coté serveur, en ne transférant que les données par Websocket.

    C'est effectivement la même idée qu'il y a derrière le toolkit Atlas.

    Pour ce dernier, c'est sympa pour prototyper rapidement mais j'ai quelques doutes sur le passage à l'échelle.

    Je ne sais pas pour JustPy, mais, pour le toolkit Atlas, la facilité de mise en œuvre et d'utilisation a été privilégiée à la performance, sachant qu'il y a déjà une multitude de frameworks, surtout web, qui offrent d'excellentes performances.
    J'utilise la technologie qu'il y a derrière le toolkit Atlas pour l'interface web de certains logiciels métiers que j'ai développés pour mes clients et, dans ce contexte, les performances sont largement suffisantes.

    Hormis le fait que l'interface est en mode déclaratif, en quoi Atlas est-il différent, notamment en terme d'architecture ?

    Le toolkit Atlas s'appuie sur un serveur. Il reçoit de ce dernier les actions réalisées par l'utilisateur, et lui retourne des primitives (inspirées de l'API DOM) correspondants aux modifications à apporter à l'interface. C'est ce qui fait que le toolkit Atlas est très léger et n'a pas de dépendances, puisqu'il n'embarque que de quoi communiquer avec le serveur, les primitives étant traitées par ce dernier. En outre, grâce à cette architecture, contrairement à JustPy et autres frameworks web, l'application n'a pas à être déployée pour être accessible d'Internet. On peut bien sûr également utiliser son propre serveur, le code source de ce dernier étant publié sous licence libre.

    Belle initiative cependant.

    Merci !

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Lien vers la deuxième partie modifié

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (1/2). Évalué à 2.

    Merci d'y avoir pensé ; j'avais oublié de le mentionner dans l’espace de rédaction…

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: Toujours pas convaincu

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (1/2). Évalué à 2.

    Voilà le code d'une application un peu plus évoluée. Il s'agit d'un chatroom basique.

    import atlastk, threading
    
    BODY="""
    <input data-xdh-onevent="Submit"/>
    <fieldset>
      <legend>messages</legend>
      <ul id="Messages"/>
    </fieldset>
    """
    
    messages = []
    lock = threading.Lock()
    
    
    class Chat:
      def __init__(self):
        self.next = 0  #index du prochain message.
    
    
    def add_message(message):
      global messages, lock
    
      lock.acquire()
      messages.append(message)
      lock.release()
    
    
    def get_messages(index):
      global lock
    
      html = ""
    
      lock.acquire()
    
      for i in range(len(messages)-1,index-1,-1):
        html += f"<li>{messages[i]}</li>"
    
      lock.release()
    
      return html, len(messages)
    
    
    def display_messages(index,dom):
      html, new_index = get_messages(index)
    
      if html:
        dom.begin("Messages",html)
    
      return new_index
    
    
    def ac_connect(chat,dom):
      dom.inner("", BODY) # "" désigne l'élément racine.
      chat.next = display_messages(chat.next, dom)
      dom.focus(dom.first_child(""))  # voir commentaire précédent.
    
    
    def ac_submit(chat,dom,id):
      add_message(dom.get_content(id))
      atlastk.broadcast_action("Display")
      dom.set_content(id,"")
    
    
    def ac_display(chat,dom):
      chat.next = display_messages(chat.next, dom)
    
    
    CALLBACKS = {
      "": ac_connect,
      "Submit": ac_submit,
      "Display": ac_display
    }
    
    atlastk.launch(CALLBACKS, Chat)

    Pour une démonstration en ligne :
    - suivre ce lien ;
    - cliquer sur le bouton vert Run ;
    - cliquer sur l'URL qui s'affiche dans la console.

    En cliquant sur le code QR, on ouvre une autre session. On peut également ouvrir une session sur un smartphone ou une tablette en scannant ce QR code.
    Tout message saisit dans une session va s'afficher dans toutes les autres sessions, conformément à ce que l'on attend d'un chatroom.

    Je t'invite à nous montrer le code source de cette même application codée avec une technologie que tu estimes équivalente au toolkit Atlas, comme cela on disposera d'éléments factuels. Si cette techno. est vraiment équivalente, coder cette application ne devrait pas prendre plus d'une demi-heure, vu que c'est le temps que cela m'a pris, sachant, en outre, que Python n'est pas mon langage de programmation usuel.

    « Smart IoT Crafting » : l'IoT pour tous

  • [^] # Re: J'ai testé et compris le concept

    Posté par  (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (1/2). Évalué à 5. Dernière modification le 08 janvier 2021 à 19:04.

    • ça s'exécute via un serveur http://faas1.q37.info ça me dérange. Je n'ai pas trouvé dans la doc comme faire tourner le truc en local (pour remplacer un toolkit local, je m'attends à qqchose qui tourne en local)

    A l'origine, le toolkit Atlas était un binding vers une bibliothèque C++ qui constitue le cœur du projet, et il était disponible pour Java, Node.js et PHP (la version PHP est actuellement suspendue à cause de certaines considérations relatives au multithreading).
    Sous cette forme, le toolkit Atlas était assez complexe à installer, du fait qu'il fallait également installer la bibliothèque C++, et j'étais d'avis que cela constituait un obstacle quasi insurmontable à son adoption.
    J'ai donc développé un protocole qui permettait au toolkit d'échanger avec la bibliothèque C++ via une communication réseau, ce qui me permettait de déporter cette bibliothèque sur un serveur, et ainsi ne pas avoir à la fournir avec le toolkit.
    Cette version du toolkit était en fait pensée comme une version de démonstration du toolkit version binding. Et c'est la forme sous laquelle le toolkit est actuellement disponible. Dans la foulée, j'ai également développées les versions Perl, Python et Ruby.
    Bref, tout ça pour signaler qu'une version binding du toolkit pour Python, que j'ai de toute manière l'intention de développer, est parfaitement envisageable à relativement court terme si tu penses qu'elle convient mieux.

    Sinon, il y aurait également l'option desktop, basée sur Electron ; c'est un mode d'utilisation de ma bibliothèque C++ que je mets à disposition de mes clients. L'adapter au toolkit Atlas est également dans mes projets.

    Dans l'intervalle, il y cela

    • ça me paraît nettement plus difficile à debugger que du pur python

    Euh…, le toolkit est en pur Python ; par contre, il est multithreadé. C'est peut-être cela qui pose problème…
    Je n'ai jamais fait de développement Python avant ce toolkit ; à part Pypi, je ne connais pas grand chose des outils utilisés pour les développements Python.

    • pour quelqu'un qui connait basiquement le HTML, ça me semble très simple d'accès, notamment avec le mécanisme de callback associés à des widgets "HTML"

    C'est typiquement pour ce genre profil que le toolkit a été développé, vu que c'est le mien :-)…

    • ça a l'air très lent

    J'ai quelques pistes pour l'accélérer, mais vu le principe de fonctionnement du toolkit, ça ne sera jamais un foudre de guerre, mais ça dépend aussi beaucoup de la qualité du réseau. Néanmoins, la version binding devrait être nettement plus rapide…

    • je suis obligé d'afficher les outils de développement dans Firefox pour que l'écran ne reste pas blanc

    Peut-être y a-t-il un lien avec https://github.com/epeios-q37/atlas-python/issues/1… Si jamais tu as un quelconque renseignement qui pourrait faire avancer le schmilblick, je suis preneur :-)…

    Conclusions :
    je suis intéressé par une version documentée du toolkit

    Vu que tu as utilisé le toolkit, pourrais-tu m'indiquer ce qui, en terme de documentation, t'aurais été utile pour mettre en œuvre plus rapidement et/ou efficacement le toolkit, que je puisse améliorer la documentation sur ce(s) point(s) ?

    je suis intéressé par "pouvoir faire tourner le code en interne" (sans passer par un serveur extérieur)

    Comme dit plus haut, il y a cela, en attendant la version binding ou desktop…

    je confirme que ce toolkit a un intérêt ; par contre de ce que j'en comprends je le présenterais comme un "toolkit de développement rapide d'outils internes". Le fait que ce soit du web, que ce soit SPA, ce sont des enjeux techniques mais ce n'est pas ça qui va me convaincre d'utiliser le toolkit.

    J'ai changé plusieurs fois d'angle d'attaque concernant la communication, notamment en mettant en avant le coté développement de GUI rapide et facile ; c'est d'ailleurs toujours ainsi que le toolkit est présenté dans les dépôts GitHub. Mais, d’après certaines discussions que j'ai pu avoir, l'angle SPA directement accessible sans configuration ni déploiement suscite également de l'intérêt.

    Et merci d'avoir testé le toolkit et d'en avoir fait ce retour…

    « Smart IoT Crafting » : l'IoT pour tous