| Conférencier |
Transcription |
| Michael Akerman |
Christie. |
| Christy Espagne |
Bonjour, comment vas-tu Michael. |
| Michael Akerman |
Comment vas-tu. |
| Christy Espagne |
Super. Laisse-moi terminer mon e-mail, pour ne pas me faire avoir. |
| Michael Akerman |
ouais, je suis en train de rationaliser les paramètres de mon ordinateur pour que rien, rien ne ping. |
| Christy Espagne |
sais-je ce que j'ai frappé dans ma barre d'outils ? |
| |
Je pense que j'ai tout. |
| |
Comment s'est passé ton week-end ? |
| Michael Akerman |
C'était bien, comment vas-tu, comment s'est passé ton week-end. |
| |
Bien. |
| Christy Espagne |
Alors tu vis dans l'obscurité. |
| Michael Akerman |
Hélène nous attend. |
| |
D'accord, oui, donc assez près du siège, j'allais au véritable sommet de la découverte, c'était le cas. |
| |
présent en personne à la. |
| |
C'était également décevant, mais. |
| |
ouais yo hey. |
| Christy Espagne |
Bonjour, comment vas-tu ? |
| John |
faire le bien. |
| Michael Akerman |
Je dois ériger un mur érudit derrière moi comme tu l'as fait, Johan. |
| John |
Je l'ai fait, j'ai mis un clic. |
| |
Il y a celui-ci et les livres de Danny dedans, donc tu ne pourras pas les reconnaître. |
| Christy Espagne |
ça a l'air bien. |
| |
Je m'excuse pour la confusion de la semaine dernière mais. |
| |
Je suis heureux de pouvoir vous rencontrer tous les deux virtuellement. |
| |
Étant donné que je fais partie de l'équipe principale qui soutient les zones Nova, je ne pense pas qu'ils auraient dû m'affecter à vous de toute façon. |
| |
Voyons voir, j'ai quelques choses que je dois vérifier, est-ce que vous avez tous les deux votre écran réglé sur 19 2010 à. |
| |
Je fais. |
| John |
Laissez-moi juste vérifier. |
| Christy Espagne |
génial. |
| |
et |
| |
Si votre son est bon, je dirais que personne ne porte de logos. |
| |
assurez-vous qu'aucun élément n'est visible qui pourrait entraîner une violation du droit d'auteur. Je ne sais pas si vos livres là-bas poseraient un problème. |
| |
Ouais, faisons ça, juste au cas où. |
| Michael Akerman |
L'un d'entre eux est formé d'un ancien conférencier principal du sommet de découverte JMP. |
| John |
Qui est. |
| Michael Akerman |
Oh, je ne sais pas, il est venu et a parlé de cette explication. |
| Christy Espagne |
Oh oui, j'ai ce livre. |
| Michael Akerman |
ouais ouais. |
| John |
Je ne l'ai pas fait. |
| |
j'ai enregistré l'un de ceux de l'e-mail, mais je peux simplement continuer et le retirer de l'e-mail. |
| Michael Akerman |
J'ai ma webcam sur un bras, d'où je peux la déplacer vers moi, vers l'arrière, vers le haut, vers le bas, vers la gauche et vers la droite, comme si je la jouais éternellement parce que c'est comme si je pouvais la déplacer. |
| Christy Espagne |
Oh, c'est une bonne idée. |
| |
jamais, jamais tu ne m'as vu au bon endroit, ouais. |
| |
Et puis tout le monde consulte toutes ses perspectives d'applications, quelle que soit mon équipe. |
| |
comme ça. |
| Michael Akerman |
Les équipes proches ne devraient recevoir aucune notification. |
| Christy Espagne |
Et vous avez 30 minutes, n'est-ce pas ? |
| Michael Akerman |
c'est ce que je comprends, oui. |
| Christy Espagne |
Et vous le serez, les gars. |
| |
Idéalement, nous aimerions simplement commencer et aller directement au bout. |
| |
Voulez-vous faire un test de partage de votre écran à chaque fois que vous effectuez une transition. |
| Michael Akerman |
Votre parce que nous allons basculer entre mon écran et le vôtre à un moment donné, alors laissez-moi d'abord partager mon écran. |
| |
pas besoin de partager le son. |
| |
Donc. |
| Michael Akerman |
Revenons en arrière pour commencer ici. |
| Christy Espagne |
Salut Alex, c'est vrai. |
| |
D'accord. |
| Michael Akerman |
Donc vous êtes sur nous l'avons fait, ... |
| John |
ouais, allons-nous contrôler le partage d'écran nous-mêmes, nous pouvons utiliser le producteur pour nous. |
| Christy Espagne |
tu devrais le faire, oui. |
| |
Oh, ton arrière-plan a l'air superbe. |
| John |
Merci. |
| Christy Espagne |
Je devrais avoir ça. |
| Michael Akerman |
Que je peux être plus, que nous pouvons être plus uniformes, je suppose. |
| John |
Non, nous devrions avoir notre propre individu. Je ne l'ai pas fait. |
| |
Oui. |
| Christy Espagne |
Oui, passons à Michael. |
| John |
Ouais. |
| |
Je suppose que je ne serai pas très présent à l'écran, vous ferez la plupart des discussions, puis nous ferons le partage d'écran, puis. |
| Michael Akerman |
Je ne sais pas ce que nous verrons, tant que les écrans seront partagés. |
| Christy Espagne |
Eh bien, dès que je récupère les enregistrements. |
| |
J'en ai quatre différents. |
| |
il y en a une qui vous inclut alors qu'elle ne le fait pas et je ne suis pas sûr que Jeff Perkinson éditera tout, donc je ne sais pas quelle colline il choisira. |
| |
Je pense qu'il veut montrer cela à l'orateur. |
| Michael Akerman |
Je vois sur l'écran, je crois. |
| |
Vous pouvez simplement désactiver les icônes, d'ailleurs, si vous faites un clic droit. |
| John |
Sur la fenêtre, on dirait qu'on arrive à la confondre. |
| Christy Espagne |
Eh bien, est-ce vraiment si difficile à faire ? |
| John |
Oh ouais. |
| |
Alors, faites un clic droit et affichez et. |
| Michael Akerman |
ouais, il a trouvé ça bien cool. |
| |
parce que je ne me souviens pas exactement où a. |
| |
Mec, je n'ai jamais mes icônes qui s'allument sur mon bureau, je laisse juste des trucs installés dessus, donc si jamais je les active, c'est comme ça. |
| John |
Ouais. |
| Christy Espagne |
Alors, Michael, quand tu auras fini, tu diras simplement ok, passe-le à toi sur ton partage d'écran et ensuite nous partirons de là, nous n'allons pas vraiment faire de pause, en d'autres termes, oui. |
| Michael Akerman |
Et tu auras un filtre jaune sur ma chambre. |
| Christy Espagne |
Oh, tu as un feu rouge qui te plaît. |
| Michael Akerman |
ça me rend triste quand même, ouais. |
| Christy Espagne |
je n'ai pas investi dans un de ceux-là, mon bureau est si petit, et j'ai beaucoup d'espace ici. |
| Michael Akerman |
Ouais, j'ai fini par devenir indépendant très tôt, et mon patron n'arrêtait pas de se plaindre de la qualité de mon microphone et de ma caméra, alors je me suis dit : "D'accord, mec, tu m'achètes un nouveau microphone et une nouvelle caméra". |
| Christy Espagne |
Tant mieux pour toi, je n'ai pas eu ce nouveau casque. |
| Michael Akerman |
Laisse-moi fermer ma porte très vite alors. |
| Christy Espagne |
Oh, d'accord, oui, c'est important si vous avez des amis à fourrure ou des enfants qui courent partout. |
| John |
ouais bien ni l'un ni l'autre si bien ouais je vais fermer la porte. |
| Christy Espagne |
et Johan Où es-tu situé. |
| John |
Sur l'entreprise. |
| Christy Espagne |
que le mien oh sympa. |
| |
être pleinement. |
| John |
Oh, tu l'as été. |
| Christy Espagne |
J'ai un ami qui s'est marié avec. |
| |
Un gars de Copenhague vient du Danemark, et nous sommes donc allés là-bas pour lui rendre visite. |
| |
Oh oui, magnifique. |
| Christy Espagne |
Ok, donc, si je peux vous demander d'indiquer le nom de votre entreprise et le titre de votre résumé, ce serait super. |
| |
Et ce n'est pas pour l'enregistrement. C'est juste pour les besoins de Jeff pour identifier ce qui est votre. |
| Michael Akerman |
le nom est sûr, je m'appelle Michael Increment, je suis avec Novozymes, le titre du résumé est aussi simple que de télécharger une photo. |
| |
quelque chose à propos de l'emballage et de la facture, j'ai oublié l'exact. |
| Christy Espagne |
c'est bon. |
| Michael Akerman |
Vous tous. |
| John |
Et mon nom est ONU. |
| |
De plus, cela n'a aucun sens. |
| Christy Espagne |
Et nous allons enregistrer cela et le publier lors de la conférence Discovery Summit, et il sera disponible pour une consultation publique. Avez-vous la permission pour cet enregistrement dans le cadre de cette utilisation ? |
| Michael Akerman |
Nous le faisons, je le fais. |
| |
Quand tu vas à. |
| John |
Oh ouais, désolé, désolé, c'était juste mon esprit. |
| Christy Espagne |
D'accord, alors. |
| |
Laisse-moi éteindre ma caméra avant pour toi. |
| |
Personne ne veut me voir. |
| Christy Espagne |
Et je pense que nous sommes prêts, êtes-vous prêts ? |
| Michael Akerman |
Je suppose que nous allons commencer par mon écran. |
| Christy Espagne |
Tu n'es jamais prêt, voyons voir le temps qu'il faudra. |
| |
909 donc techniquement vous avez jusqu'à 939 mais. |
| |
donnez ou prenez un fusible, très bien, alors quand vous êtes prêt. |
| Michael Akerman |
Bonjour à tous et bienvenue à notre présentation d'aujourd'hui sur « Y'All ». Il s'agit d'un gestionnaire de packages complémentaires que nous avons intégré à Novozymes pour automatiser le partage, la mise à jour et la maintenance des scripts JMP dans notre entreprise internationale. Je m'appelle Michael Akerman et je co-présente Johan Olsen. |
| |
Aujourd'hui, je veux, nous voulons vous parler de Y'All et vous présenter également cette boîte à outils, afin que tous ceux d'entre vous qui s'y intéressent puissent... |
| |
...Quiconque souhaiterait l'utiliser à des fins personnelles ou organisationnelles sait comment obtenir cette boîte à outils et commencer à l'utiliser, et ce qu'elle contient. Commençons par parler de qui nous sommes et des raisons pour lesquelles nous avons créé Y'All… |
| |
…les fonctionnalités clés de Y'All ainsi que l'expérience utilisateur. Johan va donc expliquer ce que voit un utilisateur lorsqu'il utilise cette boîte à outils. |
| |
Nous découvrirons les coulisses de ce qui se passe derrière la boîte à outils Y'All lorsqu'un utilisateur interagit avec elle, puis nous ferons un résumé et une récapitulation, et vous donnerons quelques conseils sur l'adoption de Y'All dans votre organisation, si vous le trouvez intéressant pour vos besoins. |
| |
Nous sommes data scientists chez Novozymes. Mon co-présentateur est Johan Olsen. Il est data scientist et se consacre à la recherche appliquée en biosolutions agricoles et industrielles. |
| |
Je suis data scientist senior au sein du même groupe chez Novozymes. Vous trouverez nos coordonnées ici si vous souhaitez nous contacter à propos de Y'All ou de tout autre sujet. N'hésitez pas à nous contacter. |
| |
L'adresse e-mail de Johan est jpko@novozymes.com et il est JPKO au sein de la communauté des utilisateurs JMP. Je suis mxak@novozymes.com. |
| |
Michael Akerman Michael mxak sur la communauté des utilisateurs JMP, alors n'hésitez pas à nous contacter si vous avez des questions ou des commentaires de quelque manière que ce soit sur Y'All ou sur les moyens d'améliorer ce que nous avons construit et ce avec quoi nous travaillons. |
| |
Nous travaillons pour Novozymes. Novozymes est une entreprise mondiale de biotechnologie. Nous créons des solutions biologiques durables… |
| |
… et améliorons les performances et réduisons les coûts de tous types d'industries à travers le monde. Nous soutenons ainsi l'agriculture et les biocarburants, les produits d'entretien ménager, l'alimentation et les boissons, la santé animale et bien d'autres secteurs… |
| |
…avec ces solutions biologiques. Nous comptons plus de 6 000 employés dans le monde, dont des centaines d'utilisateurs de JMP. |
| |
Et je mentionne cela parce que nous avons une très grande cohorte d'utilisateurs JMP que nous soutenons et avec lesquels nous travaillons, qui travaillent tous avec JMP et créent des choses dans JMP, et c'est vraiment l'inspiration pour vous tous. |
| |
Notre objectif en tant qu'entreprise est « Ensemble, nous trouvons des réponses biologiques pour une vie meilleure dans un monde en croissance – repensons demain. » |
| |
Comme je l'ai mentionné, nous avons une très grande cohorte d'utilisateurs JMP chez Novozymes. |
| |
Nous voulions donc leur faciliter la vie pour travailler avec les scripts JMP et les modules complémentaires JMP et rendre leur code plus réutilisable et plus détectable. |
| |
Tout d'abord, nous souhaitions simplifier les mises à jour. Nous avions constaté que chez Novozymes, les utilisateurs échangeaient régulièrement des scripts par courriel. |
| |
Les fichiers JSL étaient envoyés sur des disques réseau personnels. Certains les stockaient sur des clés USB et les partageaient. Nous souhaitions simplifier au maximum la distribution des scripts JMP, nouveaux ou mis à jour. |
| |
Nous souhaitions créer une archive pour protéger le code. Nous avons de nombreux utilisateurs de JMP et tout ce travail représente une grande valeur pour l'organisation. |
| |
Il s’agit donc d’un référentiel central où tout ce code précieux est stocké, sauvegardé et archivé. |
| |
Et nous voulions suivre les versions au fil du temps, donc à mesure que les scripts changent, à mesure qu'ils sont améliorés, nous voulions pouvoir voir ces changements et suivre ces changements au fil du temps. |
| |
Et nous voulions faciliter la découverte et la réutilisation des scripts, donc si vous êtes un développeur JMP... |
| |
...si vous êtes un développeur qui travaille à l'écriture de scripts JSL, vous pouvez trouver des scripts pertinents écrits par d'autres développeurs et les améliorer ou... |
| |
Développez-les selon vos besoins. Facilitez la reprise et la création de ces scripts, et facilitez le partage, l'importation et la réutilisation de fonctions JSL utiles aux autres membres de l'organisation. |
| |
Pour concrétiser ce projet, nous avons réuni trois composants : un script de build Python, une interface GitLab et un script de chargement et de mise à jour JSL, tous intégrés dans cette boîte à outils. |
| |
Le script de construction Python est un script automatisé qui s'exécutera dans Python 3 ou supérieur et qui analyse et structure automatiquement les fichiers JSL dans des structures de menu de complément. |
| |
Il écrit également les fichiers de définition des modules complémentaires. Il génère un script de fonctions personnalisées importé qui ajoute toutes ces fonctions utilitaires réutilisables à l'index de scripts JMP et à l'IDE JMP, puis compresse le tout dans un fichier .jmpaddin à l'usage des utilisateurs. |
| |
GitLab est notre interface permettant aux utilisateurs d'interagir avec les scripts de modules complémentaires et de travailler avec le générateur de modules complémentaires. GitLab est l'alternative open source ou le concurrent de GitHub. |
| |
Nous avons publié cela en interne dans Novozymes, et cela fournit une interface utilisateur pointer-cliquer très simple pour télécharger des scripts dans ce référentiel central... |
| |
...où tous ces scripts sont stockés et où la construction se produit réellement. |
| |
Et ce pipeline CICD, qui signifie intégration continue et déploiement continu, exécute automatiquement ce script de construction Python et distribue le module complémentaire via les canaux de version de publication et de version bêta afin que les utilisateurs puissent avoir l'un ou l'autre... |
| |
...des versions stables et contrôlées en termes de qualité, ou s'ils sont développeurs, ils peuvent obtenir des versions rapides et fréquentes avec les toutes dernières versions de chaque script utilisé dans cette boîte à outils. |
| |
Enfin, nous avons les scripts de chargement et de mise à jour JSL. Lorsque JMP s'ouvre et que ce module complémentaire se charge… |
| |
…ils peuvent vérifier ; le programme recherchera les nouvelles versions sur le canal sélectionné (version bêta ou version de publication) et proposera de télécharger et de mettre à jour le module complémentaire. Cela importera également les fonctions personnalisées dans l'index de script. |
| |
Dans Y'All, tout utilisateur JMP peut contribuer très facilement à son script. C'est aussi simple que de publier une photo sur les réseaux sociaux. |
| |
Vous accédez à l'interface utilisateur, cliquez sur le bouton de téléchargement et en quelques secondes, il est disponible sur la chaîne bêta de Y'All. |
| |
Nous avons un contrôle de version automatique et un stockage de ces scripts, une mise à jour automatique ou manuelle du module complémentaire JMP, donc lorsque JMP s'ouvre, Y'All proposera de mettre à jour... |
| |
...ou un utilisateur peut choisir de mettre à jour manuellement Y'All via le menu Y'All. |
| |
Nous proposons des versions bêta pour une création et des tests rapides si vous êtes développeur et que vous écrivez des scripts. Vous disposez ainsi de la toute dernière version du module complémentaire à mesure que vous mettez à jour votre script et y apportez des modifications. Nous proposons également un canal de publication pour un déploiement contrôlé et un contrôle qualité. |
| |
Cela nous donne des fichiers JSL détectables et réutilisables, afin que les gens puissent parcourir cette structure de fichiers de scripts soumis par les utilisateurs de Novozymes, Y'All, et regarder et voir... |
| |
...trouver des scripts qui répondent à un objectif proche de ce qu'ils souhaitent et les modifier à leurs propres fins. |
| |
Et nous ajoutons également des fonctions utilitaires pratiques dans l'index de script ; vous pouvez voir une petite capture d'écran de cela... |
| |
...à gauche et dans l'éditeur JSL, donc le script de construction ajoute automatiquement des fonctions importables et réutilisables dans l'index de script JMP avec une jolie petite chaîne de documentation si elle est disponible pour décrire comment cette fonction fonctionne et comment l'utiliser. |
| |
Je tenais à souligner une partie du code que nous avons inclus dans Y'All à des fins de démonstration. Une grande partie du code utilisé dans Novozymes est spécifique aux systèmes Novozymes et ne serait pas utilisable en dehors de l'entreprise. |
| |
J'ai donc récupéré quelques scripts déjà présents sur la communauté d'utilisateurs JMP et les ai inclus à titre de démonstration. Vous pouvez les conserver ou les supprimer de Y'All… |
| |
…comme souhaité. Nous avons donc un script d'analyse JSON de Xan Gregg et Craige Hales. Nous avons également un assistant de nettoyage de données présenté au JMP Discovery Summit 2020… |
| |
...par Jordan Hiller et Mia Stephens. Nous avons des outils de table d'images par Heidi Hardner et Serkay Olmez au Discovery Summit 2020. |
| |
Sélection de lignes de couleurs.jsl par Nick Holmes. Graphique à axes Y multiples par Byron Wingerd, et configuration de l'autovalidation, présentée, je crois, au JMP Discovery Summit. |
| |
...l'année dernière par Mike Anderson, et nous avons une suite de fonctions importables pour le logiciel de capture de données Riffyn, Riffyn Nexus... |
| |
…pour utiliser leur API, développée par Riffyn et reprise de leur module complémentaire JMP pour les outils Riffyn avec autorisation. C'est un outil que nous utilisons beaucoup chez Novozymes. Nous l'avons inclus car si d'autres utilisateurs de Riffyn sont intéressés, n'hésitez pas à l'utiliser également. |
| |
Ceci étant dit, nous souhaitions passer à des démonstrations en direct, en commençant par l'expérience utilisateur et ce que l'utilisateur voit et fait lorsqu'il utilise la boîte à outils Y'All. Pour cela, je vais laisser la parole à mon co-présentateur, Johan. |
| |
Johan, tu es muet. |
| John |
Merci, Michael. |
| |
Désolé. Laissez-moi juste partager mon écran. |
| |
Est-ce que tu vois ça ? |
| Michel |
Oui. |
| John |
D'accord. |
| |
Comme Michael l'a dit, je vais vous expliquer l'expérience utilisateur de Y'All. |
| |
Être utilisateur de Y'All est un processus à trois niveaux. La grande majorité de nos utilisateurs l'utilisent comme s'il s'agissait d'une plateforme JMP intégrée. Ils… |
| |
…pointez et cliquez sur les scripts et exécutez-les comme prévu. Nous avons également un groupe d'utilisateurs assez important qui contribuent avec des scripts et qui expliquent comment… |
| |
Vous pouvez contribuer avec des scripts simples. Nous avons également un petit groupe de développeurs et de mainteneurs (??) qui s'occupent de tâches plus avancées, et nous essaierons d'en tirer un peu aussi. |
| |
Mais avant tout, voyons comment utiliser Y'All en toute simplicité. Pour l'installer, il suffit de cliquer sur ce lien vers l'artefact de build (??) créé dans notre dépôt GitLab, de télécharger le fichier d'édition JMP et de l'exécuter avec JMP. |
| |
Maintenant, cela m'a incité à faire une mise à jour, je vais simplement annuler cette fois-ci, mais vous pouvez voir ici que sur ma barre de menu, et j'ai le menu Y'All... |
| |
…Avec certains des scripts de démonstration mentionnés par Michael. Je n'entrerai pas dans les détails, car ils ne font pas vraiment partie du package Y'All, mais sont simplement inclus à des fins de démonstration. Mais je vais essayer de… |
| |
...oups, activez, désolé, c'était déjà activé, il semble. activez les tests bêta, de sorte que, maintenant que nous commençons à créer certaines choses, nous pouvons les voir immédiatement. |
| |
La plupart des utilisateurs auront désactivé les tests bêta et seront invités à effectuer une mise à jour à l'ouverture de JMP après une version majeure, soit une fois toutes les deux ou trois semaines. En revanche, pour les utilisateurs ayant activé les tests bêta, la mise à jour de la branche bêta peut intervenir à tout moment, de plusieurs fois par jour à deux fois par semaine. |
| |
Voilà donc essentiellement ce que l’utilisateur normal peut en tirer. |
| |
Si vous souhaitez contribuer à ce projet avec des scripts, plusieurs solutions s'offrent à vous. L'une d'elles consiste à utiliser l'interface utilisateur de GitLab. La structure du menu que nous venons de voir est reproduite dans… |
| |
...structure du répertoire dans le... |
| |
...référentiel. Créer un nouveau... |
| |
...un menu ou un sous-menu est aussi simple que de créer un nouveau répertoire. Appelons cela… |
| |
..."démos" |
| John |
et ajoutez-le. |
| John |
Et si nous souhaitons ajouter un script, nous pouvons simplement le créer dans l'IDE JMP, vous voulez donc en faire un très simple. |
| |
Bonjour le monde. |
| |
Cela suffira. Il y a en fait un petit détail supplémentaire : nommer les éléments de menu de manière élégante pour obtenir une info-bulle. Nous avons implémenté la magie du code, c'est-à-dire que si vous commencez par écrire en mode commenté, oups. |
| |
Et toi. |
| |
Nom du menu. |
| Michael Akerman |
Vous tous. |
| |
Nom du menu. |
| John |
Nom du menu Y'All |
| Michael Akerman |
Vieille habitude. |
| John |
Appelons ça « Bonjour ». Ensuite, infobulle « À tous ». |
| |
Très bien, allons-y et sauvegardons ceci. |
| |
Où que ce soit, voyons, sur le bureau. Et ensuite, téléchargez-le ici. |
| |
C'était un test ? |
| Michael Akerman |
C'était un script mais ça devrait aller. |
| John |
Maintenant... |
| |
Une fois ce fichier téléchargé, nous avons déclenché un pipeline dans ce [inaudible] automatisé. |
| |
[inaudible] système, qui consiste d'abord à cloner le référentiel, puis... |
| |
...après avoir créé le module complémentaire, et cela devrait apparaître lors du redémarrage de JMP, |
| John |
et mise à jour de l'ensemble de l'édition. |
| John |
Et une fois que nous avons choisi de mettre à jour, le menu des démos est désormais présent, avec le script de test. |
| |
Voici donc la manière la plus simple de contribuer à JMP avec des scripts. Si vous connaissez Git, vous pouvez également utiliser un workflow Git plus classique. Je vais simplement ouvrir une fenêtre de traitement par lots. Laissez-moi… |
| |
Et nous pouvons cloner le dépôt. Revenons à… Certaines des choses que nous présentons ici seront spécifiques à l'utilisation de GitLab, que nous utilisons ici. |
| |
Mais ce sera similaire dans d'autres systèmes de codage de référentiel distant et d'hébergement de code. |
| |
Nous clonons maintenant le dépôt et obtiendrons un miroir complet du dépôt sur notre système local. Comme précédemment, la structure des répertoires est reproduite ici. Essayons de créer un… |
| |
Un autre script. |
| |
Pour cela. Le nom du menu Y'All a été amélioré |
| |
Bonjour. |
| |
Disons que nous aimerions, peut-être cette fois-ci... |
| |
...ouvrez plutôt une invite. |
| |
Il dit bonjour le monde. |
| |
Cette fois, nous pouvons utiliser l'une des fonctions intégrées à JMP. Allons à l'index des scripts, nous pouvons… |
| |
...recherchez Y'All utils. |
| |
Et recherchez la fonction errorModal, et elle est livrée ici avec une petite chaîne de documentation expliquant comment l'utiliser. |
| |
Et il a déjà été importé donc... |
| |
Erreur utilitaire Y'AllModal |
| John |
Et nous pouvons simplement dire bonjour le monde. |
| John |
Voyons voir ça. |
| |
dans notre référentiel... |
| |
...sous les démos. Et diffusez le code. |
| |
Le code est maintenant poussé vers le référentiel distant, déclenchant le pipeline CICD, et en quelques minutes... |
| |
...secondes, devrait pouvoir voir le pipeline fonctionner et... |
| |
...bien assez tôt. |
| |
Ça n'a pas encore commencé. |
| |
Peut-être que je deviens un peu... |
| |
...impatient. Et voilà. |
| |
Donc, effectivement, si on consulte Y'All et qu'on y met à jour, on verra une nouvelle mise à jour. C'est ça ? |
| |
Nous choisirons de mettre à jour... |
| |
...le module complémentaire, et maintenant les démos auront notre Hello World amélioré. |
| |
Très bien, donc je pense que c’est ce que j’avais pour la démonstration utilisateur. |
| Michael Akerman |
Merci Johan. Je reprends le partage d'écran, si ça te va. |
| John |
Oui. |
| Michael Akerman |
Je voulais aborder un peu ce qui se passe en coulisses, lors de cette expérience utilisateur. Je vais donc examiner ce code dans Visual Studio Code. |
| |
Vous pouvez consulter ce document où vous le souhaitez une fois le fichier ZIP téléchargé. Je vais d'ailleurs passer rapidement en mode Zen pour le rendre plus clair. C'est parti. |
| |
Voici donc ce pipeline CICD GitLab qui s'exécute chaque fois que Johan télécharge ce script. Il accède donc au dépôt Git… |
| |
…et il a appuyé sur le bouton « + » pour télécharger un script, ce qui a déclenché le pipeline CICD. Voici donc un petit script qui définit la réaction du serveur face à cette situation. |
| |
une étape préalable et une étape de construction... |
| |
...où il a cloné le dépôt Git et tous les fichiers qu'il contient, y compris le nouveau script de Johan dans un répertoire de travail où cela... |
| |
…ce module de traitement, appelé exécuteur, peut traiter ce code. Il le construit ensuite et exécute cette étape de construction où… |
| |
CD (répertoires de modifications) dans ce répertoire de build et exécute le script Python. C'est aussi simple que ça. Il suffit de cloner tous ces nouveaux fichiers dans un dossier de travail, de les déplacer dans ce dossier et d'exécuter le script Python 3. |
| |
Examinons ce script de construction Python. Je vais y accéder avec la touche Ctrl. Il s'agit de build_yall.py. |
| |
Il y a beaucoup de code, mais si vous cherchez un guide pour le parcourir, faites défiler jusqu'à la fonction de processus. Elle indique « def process ». |
| |
Voici le code principal qui permet de construire Y'All et de le parcourir étape par étape. Nous allons donc l'examiner au fur et à mesure. |
| |
La première chose qui se produit est que le script Python construit une hiérarchie de menus. Regardons cela de plus près. Il crée un dictionnaire Python imbriqué dans lequel il consulte la structure de dossiers sous src/scripts… |
| |
…et extrait tous les fichiers JSL trouvés dans un dictionnaire contenant le nom, l'infobulle et l'emplacement de chaque fichier JSL. Ce dictionnaire imbriqué est donc construit dossier par dossier, puis parcouru. |
| |
Ensuite, nous vérifions les noms de commandes de chacun de ces fichiers JSL. Nous essayons d'analyser ces fichiers et de rechercher le nom du menu Y'All et l'infobulle Y'All que Johan a ajoutés en haut du script pour… |
| |
…définissez le nom du bouton et l'infobulle dans le menu du module complémentaire de JMP. Lors de l'installation de Y'All, ce menu s'affiche, ainsi que leur nom et le contenu de l'infobulle, si vous passez la souris dessus. |
| |
S'il ne trouve pas le nom du menu Y'All ou la commande magique Y'All, il utilisera simplement le nom du script sans infobulle. Ainsi, test.jsl deviendrait simplement test, comme vous l'avez vu avec Johan. |
| |
Ce dictionnaire de commandes dans les menus est trié par ordre alphabétique pour faciliter la recherche des éléments, à l'exception du menu d'aide et des paramètres, qui apparaît en haut pour qu'il soit toujours en haut du menu. |
| |
Parce que l'aide et les paramètres sont importants. Toutes ces informations sont ensuite enregistrées dans un fichier JMPcust. |
| |
Ainsi, un fichier .jmpcust est essentiellement une sorte de document de langage de balisage qui définit pour JMP comment... |
| |
quels boutons de menu doivent être, où doit être le menu lui-même, quelles doivent être les info-bulles, sont tous définis dans ce fichier .jmpcust. |
| |
Je vais passer à « Y'All » avec la touche Ctrl, pour que vous puissiez voir à quoi ça ressemble. C'est un véritable ensemble de définitions sur les menus… |
| |
…et comment s'appellent les menus et ce qu'ils contiennent. Ainsi, nous pouvons voir que le menu Aide et Paramètres contient des options comme « Vérifier la mise à jour de Y'All », « Activer/Désactiver le mode bêta », etc. |
| |
Le script Python va donc écrire cela automatiquement avec cette fonction d'écriture de fichier jmpcust. |
| |
Ensuite, nous allons écrire nos fichiers de définition de compléments. Donc addin.def et version.txt. Addin.def – je vais passer à un exemple – est un peu… |
| |
...un peu de description que JMP utilise pour identifier le complément et trouver le numéro de version, ainsi que la version JMP minimale prise en charge. |
| |
Nous disons 12. C'est un choix arbitraire de notre part, simplement pour ne pas avoir à nous soucier des choses avant 12. Vous pouvez modifier cela dans le code Python si vous commencez à travailler dessus. La version du module complémentaire est également définie ici, comme vous pouvez le constater. |
| |
Et nous écrivons cela dans un fichier appelé version.txt afin que le même nombre entier que vous venez de voir dans addin.def se retrouve également dans version.txt. |
| |
La raison est que c'est un petit fichier lisible à distance. Nous pouvons l'ouvrir dans JMP via HTTP sur le serveur… |
| |
…et examinez rapidement ce numéro de version dans le fichier version.txt pour le comparer à notre version actuelle. Ainsi, si la version installée ne correspond pas au fichier version.txt… |
| |
…cela signifie que nous devons mettre à jour, ou du moins que nous pouvons le faire. Le numéro de version utilisé correspond à la date et à l'heure d'exécution dans le fuseau horaire UTC. |
| |
Et nous convertissons cela en secondes depuis 1970. Il s'agit donc d'un nombre entier qui peut être reconverti en format de date et d'heure. |
| |
Nous pouvons donc comparer les deux nombres sur une base entière, ce qui est pratique. Nous pouvons facilement déterminer s'ils sont supérieurs ou inférieurs l'un à l'autre, et nous pouvons toujours reconvertir ces valeurs en date. C'est donc un moyen très efficace de stocker ce numéro de version dans JMP. |
| |
Enfin. |
| |
Ensuite, après avoir écrit ces fichiers d'ajout détaillés, nous créons un script de fonctions personnalisées. C'est un peu étrange et difficile à expliquer. Je vais faire de mon mieux pour le faire rapidement et succinctement. |
| |
JMP propose deux méthodes pour définir des fonctions personnalisées. La première consiste à utiliser une fonction appelée « function » dans le langage de script JMP. Pour ce faire, je vais utiliser utils.jsl et le sous-répertoire importables de Y'All. |
| |
Function définit une fonction personnalisée utilisable et appelable depuis d'autres emplacements. Vous pouvez la définir avec un espace de noms. Dans ce cas, nous avons l'espace de noms Y'All utils… |
| |
…avec le nom de fonction « recode if ». Elle prend ces arguments, et nous avons cette chaîne de documentation et ce code de fonction écrits ici. |
| |
La deuxième façon d'écrire une fonction personnalisée en JSL est d'utiliser la nouvelle fonction personnalisée « function », qui diffère de « function ». Je crois que cette fonction a été ajoutée dans JMP 14. |
| |
Ce que fait la nouvelle fonction personnalisée, c'est qu'elle ajoute la fonction à l'index de script JMP et à l'IDE JSL pour rendre très facile le travail avec cette fonction et sa réutilisation dans d'autres endroits avec de la documentation. |
| |
Donc l'avantage de la fonction est qu'elle fonctionne jusqu'à je ne sais même pas quelle version de JMP... |
| |
...avant d'utiliser JMP. L'avantage de la nouvelle fonction personnalisée est qu'elle est un peu plus robuste, et vous obtenez la documentation, l'index de script JMP et la possibilité de la coloriser dans l'IDE JSL pour… |
| |
…des conseils à ce sujet pendant l'écriture du code. Nous apprécions la nouvelle fonction personnalisée, mais nous souhaitons prendre en charge JMP avant JMP 14. Donc, les scripts de build… |
| |
...ici, analysera essentiellement le répertoire importables, à la recherche de toutes les définitions de fonctions correspondant à ces fonctions fonction fonction fonction... |
| |
…en JSL avec une chaîne de documentation. Il essaiera donc d'analyser cette chaîne entre les démarcations barre oblique/astérisque et de l'intégrer dans une nouvelle fonction personnalisée. Vous pouvez voir un exemple ici. |
| |
Nous prenons cette fonction de recodage si et la réécrivons maintenant automatiquement dans une nouvelle fonction personnalisée dans l'espace de noms Y'All utils appelée recode if. |
| |
Nous avons un prototype, une description et une catégorie d'index de script où tout cela apparaît. Tout est donc automatiquement accessible aux développeurs JMP. Vous pouvez donc écrire avec l'ancienne fonction function en JSL tout en conservant cet index de script JMP… |
| |
...capacité, en utilisant automatiquement le script de construction Y'All. Revenez vers le bas pour accéder à mon code de processus ici. |
| |
Ceci étant dit, nous allons maintenant créer le module complémentaire. Les modules complémentaires JMP utilisent un format Zip modifié. Nous le compressons donc avec Python 3 et le renommons YALL.jmpaddin. Il est alors disponible dans notre répertoire de travail où s'exécute l'exécuteur CICD. |
| |
Ainsi, l’étape finale de ce pipeline CICD une fois ce script de construction terminé consiste à se déplacer dans ce répertoire de travail et à télécharger les artefacts. |
| |
Les artefacts de build sont un concept GitLab CICD, où nous prenons ces deux fichiers YALL.jmpaddin et version.txt et les téléchargeons sur le serveur et les rendons disponibles avec une URL spécifique. |
| |
Ainsi, cette URL est toujours cohérente et elle est liée à la branche sur laquelle nous l'exécutons dans GitLab, donc si nous sommes sur la version bêta par rapport à la version principale. |
| |
Maintenant, dans JMP, je vais sauter par-dessus, ha !... |
| |
...vers autoUpgrade.jsl. C'est ici que nous vérifions les nouvelles versions du module complémentaire. Au chargement de JMP, Y'All exécutera ce script de mise à niveau automatique… |
| |
…qui recherche ces nouvelles versions dans le dépôt GitLab. Vous pouvez voir ici que nous chargeons notre indicateur bêta, que ce soit en mode bêta ou en mode principal. |
| |
Et nous recherchons ce mode dans le canal spécifique. Donc nous tirons… |
| |
…à partir d'une URL spécifique basée sur la sélection du canal. En mode bêta, la recherche s'effectuera sur le canal bêta. En mode principal, la recherche s'effectuera sur le canal principal. Nous recherchons ensuite le fichier YALL.jmpaddin et le fichier version.txt. |
| Michael Akerman |
Nous allons maintenant comparer ce numéro de version à celui de notre version installée et, s'il est différent, demander une mise à jour à l'utilisateur. La boîte de dialogue que vous avez vue sur l'écran de Johan s'affiche… |
| Michael Akerman |
…qui leur demande s'ils souhaitent la mise à jour et leur indique le numéro de version. Ils peuvent alors choisir de la recevoir ou non. |
| |
Donc. |
| |
C'est tout ce qu'il y a à faire. Tout se passe en coulisses, pour l'utilisateur. Il télécharge un script via l'interface GitLab en utilisant le bouton « + » pour télécharger un fichier et générer ce nouveau… |
| |
...le module complémentaire JMP, ce module complémentaire Y'All JMP, et le rendre disponible aux autres utilisateurs connectés au même référentiel. |
| |
Tout cela se passe en coulisses. Pour l'utilisateur, il suffit d'enregistrer un script JMP depuis le point chaud rouge de JMP et de le télécharger dans le dépôt GitLab. |
| |
Je voulais donc récapituler les fonctionnalités de Y'All. |
| |
Nous proposons une contribution de script très simple. Comme vous l'avez vu, vous disposez d'une interface utilisateur conviviale pour télécharger des fichiers, des scripts JSL et les rendre disponibles. |
| |
Cela s'accompagne d'un contrôle de version et d'un archivage automatiques du code. Comme tout cela se déroule via un dépôt GitLab central hébergé sur les serveurs Novozymes, tout est suivi et stocké… |
| |
…à perpétuité. Des mises à jour automatiques permettent aux développeurs de diffuser facilement des scripts à leurs utilisateurs, et de toujours disposer de la version la plus récente… |
| |
…des scripts qui fonctionnent correctement et dont la qualité est contrôlée. Nous proposons des versions bêta et des versions de sortie. |
| |
Le canal bêta sera donc créé instantanément, disponible quelques secondes après la publication d'un nouveau script et mis à jour fréquemment. Le canal de publication sera quant à lui plus lent et contrôlé. Je voulais aborder la manière dont nous procédons. |
| |
Vous pouvez voir ici la structure des branches de notre dépôt GitLab. Nous avons une branche bêta avec de nombreuses mises à jour, une branche de publication et une branche principale. Ce que nous faisons dans Novozymes est entièrement laissé au choix de l'utilisateur. |
| Michael Akerman |
…nous prenons cette branche bêta lorsqu'elle est prête à être publiée. Nous ouvrons une requête de fusion entre la version bêta et la version publiée, et la déplaçons vers la branche publiée. Cela va figer la branche de publication de l'écran… |
| Michael Akerman |
...à la version de code, où nous avons fait cela, et cela verrouille le code sur cette branche de publication. |
| |
La version bêta peut encore évoluer. Il est toujours possible d'ajouter et de modifier des scripts. Mais la publication est désormais gelée. Nous effectuons un contrôle qualité, et lorsque nous serons prêts, lorsque nous serons satisfaits de l'état du projet… |
| |
...nous le publions sur la branche principale et le fusionnons là-dedans, et maintenant il est disponible pour les utilisateurs de la branche principale de Y'All. |
| |
Notre code est détectable. Tout est disponible dans une structure de fichiers sur un dépôt central. Les développeurs peuvent consulter les scripts et… |
| |
…trouver des exemples similaires pour s'en inspirer et les améliorer. De plus, des fonctions utilitaires sont automatiquement ajoutées à l'index de scripts, accessibles aux développeurs, afin qu'ils puissent réutiliser des blocs de code comme celui-ci, ou les recoder si… |
| |
…ou des requêtes de base de données et autres fonctionnalités similaires, que nous avons également incluses en démonstration. Alors, si vous parcourez le Y'All… |
| |
...espace de noms dans l'index de script JMP avec Y'All installé. Vous verrez que nous avons inclus des requêtes et des outils de base de données PostgreSQL pour illustrer leur utilisation. |
| |
Tout cela se produit en commençant dans JMP avec un script JSL créé par l'utilisateur qu'il souhaite partager avec quelqu'un d'autre dans la base d'utilisateurs Y'All. |
| |
Ils vont dans GitLab. Et dans l'interface utilisateur, ils téléchargent le fichier dans un sous-répertoire correspondant à l'emplacement du menu souhaité dans Y'All. Ainsi, s'ils le souhaitent dans les démos, les démos et les tests… |
| |
…ils placeraient cela dans le sous-répertoire src slash scripts slash demos slash demos. Une fois cela fait, un pipeline de build automatique se déclencherait, lançant le script de build Python, qui analyserait les structures et compilerait le module complémentaire… |
| |
...le module complémentaire et le réimporte sur le serveur GitLab. JMP détecte alors la nouvelle mise à jour et propose automatiquement de la télécharger et de mettre à jour le module complémentaire Y'All dans JMP. Ce script est disponible en quelques secondes seulement pour les utilisateurs de ce canal bêta. |
| |
Nous espérons que Y'All vous enthousiasme et que vous souhaitez l'utiliser vous-même ou au sein de votre organisation. Nous souhaitons vous donner quelques conseils pour bien démarrer, si c'est le cas. |
| |
Le fichier ZIP publié dans la communauté des utilisateurs JMP (si vous regardez cette vidéo sur la même page) contient tous les éléments nécessaires pour démarrer. Certains d'entre eux nécessiteront des modifications. D'autres sont du code de démonstration pour vous permettre de vous amuser. |
| |
N'hésitez pas à le télécharger et à y jeter un œil. Le script de build Python contenu dans ce fichier ZIP est basé sur les bibliothèques natives de Python 3. Notre système de build ne contient que Python. Il devrait fonctionner sur toute installation Python 3 standard. |
| |
Le stockage et l'automatisation du référentiel central que nous réalisons avec GitLab pour CICD, pour l'intégration et le déploiement continus, sont disponibles auprès d'autres fournisseurs. GitLab, GitHub, Azure et AWS proposent tous des implémentations similaires. |
| |
Il existe un vaste écosystème d'options, les détails de mise en œuvre seront donc spécifiques à votre organisation. |
| |
L'inconvénient est que le fichier de pipeline CICD gitlab-ci.yml devra être modifié si vous souhaitez l'exécuter automatiquement sur vos propres systèmes. Il ne fonctionnera pas tel quel sur vos systèmes, sauf si vous êtes un employé de Novozymes. |
| |
Toutes les chaînes de connexion dans nos fonctions utilitaires qui reflètent notre base de données bêta interne ont été remplacées par une chaîne de soulignement de connexion ODBC. |
| |
Si vous souhaitez utiliser l'une de ces fonctions, vous devrez accéder au code dans les répertoires de travail et modifier ces chaînes pour refléter votre base de données. |
| |
Encore une fois, nous espérons que Y'All vous enthousiasme et vous intéresse. Si vous avez des commentaires, des questions ou des remarques, n'hésitez pas à me contacter ou à contacter Johan… |
| |
…avec eux. Nous apprécierions également vos contributions, que vous preniez ce code et l'amélioriez, ou que vous utilisiez cette boîte à outils de manière intéressante. Merci. |
| Christy Espagne |
Ok, c'était super. |
| Michael Akerman |
Temps. |
| Christy Espagne |
Raisonnablement parfait, ouais, ouais. |
| Michael Akerman |
Est-ce que ça marche ? |
| |
Peu importe que Johan ait dit que JMP ne voulait pas. |
| Christy Espagne |
Tu sais. |
| Michael Akerman |
J'ai l'impression que la plupart des gens ne le comprendront probablement pas. |
| Christy Espagne |
En tant que nouveau mot, je l'aime bien. |
| John |
On nous a donc dit de ne pas l'utiliser, nous avons donc dû renommer la chose et j'ai été dérouté de ne pas avoir supprimé la version que j'avais. |
| |
Précédemment installé. |
| |
Alors, quand j'ai réalisé que j'étais déjà en version bêta, ça m'a un peu dérouté, et puis j'ai juste. |
| |
de toute façon. |
| Christy Espagne |
ouais, je pense que c'est bien, mais maintenant c'était génial, très intéressant, je pense que les gens vont adorer voir ça, donc nous apprécions vraiment votre participation. |
| |
Comme je l'ai dit, je vais télécharger les vidéos pour que Jeff les édite. Je ne sais pas quand cela sera terminé, mais. |
| |
Quoi qu'il en soit, vous verrez tout cela en octobre, mais si quelque chose se présente, je vous le ferai certainement savoir. |
| |
merci encore et si. |
| John |
Vous avez une nouvelle race de personnes à propos du JMP normal. |
| Michael Akerman |
Quand tu dis que tu es ailleurs, c'est juste un peu... |
| |
Ouais. |
| John |
Annuaire Y'All. |
| Christy Espagne |
Oui, merci beaucoup, je sais que c'est le cas. |
| |
Beaucoup de travail pour la maladie, et nous l’apprécions. |
| Michael Akerman |
Notre plaisir. |
| |
Merci pour. |
| Michael Akerman |
se déplaçant rapidement après le suivant. |
| Christy Espagne |
Oui, mec, c'était bien sûr génial de vous rencontrer tous les deux et. |
| |
J'espère que ce sera la prochaine fois. |
| |
Au moins avec Michael, ce sera en personne, Johan, j'aimerais être là-bas, te rencontrer aussi, mais. |
| |
Ouais. |
| Michael Akerman |
c'est toujours vous savez si s'il est, surtout s'il présente et juste chaque sommet, ou quelque chose qui est dans le passé en personne, c'est la même semaine que toutes les choses ouvertes à Raleigh donc vous pouvez faire comme une semaine entière de. |
| |
conférence informatique. |
| |
et voir un groupe d'employés locaux. |
| John |
il serait peut-être plus facile de discuter du budget voyage, alors oui. |
| Christy Espagne |
Deux pour un, n'est-ce pas ? |
| |
Ouais. |
| John |
D'accord. |
| Christy Espagne |
Ok, eh bien, vous les gars, passez un bon reste de lundi, bonne semaine, merci. |
| |
Toi aussi, je pourrai bientôt te reparler. |
| John |
au revoir. |
| |
au revoir. |