Conférencier
|
Transcription
|
| Michael Akerman |
Christie. |
| Christy Espagne |
Bonjour, comment vas-tu Michael. |
| Michael Akerman |
Comment vas-tu. |
| Christy Espagne |
Super. Laissez-moi fermer mon courrier électronique pour ne pas me comprendre. |
| Michael Akerman |
ouais, je rationalise les paramètres de mon ordinateur pour que rien, rien ne fasse de ping. |
| Christy Espagne |
sais ce que j'ai frappé dans ma barre d'outils Suis-je. |
| |
Je pense que j'ai tout. |
| |
comment était ton weekend. |
| Michael Akerman |
C'était bien, comment vas-tu, comment se passe ton week-end. |
| |
Bien. |
| Christy Espagne |
Alors vivez-vous dans le noir. |
| Michael Akerman |
Hélène nous attend. |
| |
D'accord, oui, c'était si proche du quartier général que j'irais au sommet de la découverte. |
| |
présent en personne à la. |
| |
C'était décevant aussi, mais. |
| |
ouais, hé. |
| Christy Espagne |
Bonjour Bonjour, comment allez-vous. |
| Johan |
bien faire. |
| Michael Akerman |
J'ai besoin d'ériger un mur d'érudits derrière moi, comme tu l'as fait, Johan. |
| Johan |
J'ai mis le clic. |
| |
Ceci et les livres de Danny là-dedans, donc vous ne pourrez pas les reconnaître. |
| Christy Espagne |
Cela semble bon. |
| |
Je m'excuse pour la confusion de la semaine dernière, mais. |
| |
Je suis heureux de pouvoir vous rencontrer virtuellement tous les deux. |
| |
Puisque 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, j'ai quelques choses à faire si vous avez tous les deux réglé votre affichage sur 19 2010. |
| |
Je fais. |
| Johan |
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 à portée de vue 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’eux est formé à partir d’un ancien conférencier principal du sommet de découverte JMP. |
| Johan |
Qui est. |
| Michael Akerman |
Oh, je ne l'ai pas fait, il est venu et a parlé de cette chose explicative. |
| Christy Espagne |
Oh ouais, j'ai ce livre. |
| Michael Akerman |
Yeah Yeah. |
| Johan |
Non, je ne l'ai pas fait. |
| |
j'ai enregistré n'importe lequel de ceux de l'e-mail, mais je peux simplement continuer et le retirer de l'e-mail. |
| Michael Akerman |
Je suis d'accord avec ma webcam sur un bras, où je peux la déplacer comme vers moi et d'arrière et de haut en bas et de gauche à droite comme alors, c'est comme la tripoter éternellement parce que c'est comme si je pouvais la déplacer. |
| Christy Espagne |
Oh, c'est une bonne idée. |
| |
jamais, je ne m'ai jamais vu au bon endroit ouais. |
| |
Et puis tout le monde accède à toutes ses applications Outlook, quelles que soient les équipes I am. |
| |
comme ça. |
| Michael Akerman |
Les équipes proches ne devraient recevoir aucune notification. |
| Christy Espagne |
Et vous disposez de 30 minutes. Est-ce exact. |
| 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 jusqu'au bout. |
| |
Voulez-vous faire un test de partage de votre écran à chaque fois que vous effectuez une transition. |
| Michael Akerman |
C'est parce que nous allons basculer entre mon écran et vous êtes à l'écran à 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, il l'a fait, il l'a fait, il a fait cela, puis nous vous avons été confiés. |
| Johan |
ouais, allons-nous contrôler le partage d'écran nous-mêmes, nous pouvons utiliser le producteur pour nous. |
| Christy Espagne |
tu le feras, tu devrais le faire oui. |
| |
Oh, ton arrière-plan est superbe. |
| Johan |
Merci. |
| Christy Espagne |
Je devrais avoir ça. |
| Michael Akerman |
Je peux être plus, nous pouvons être plus uniformes, je suppose. |
| Johan |
Non, nous devrions avoir notre propre personne, je ne l'ai pas fait. |
| |
Oui. |
| Christy Espagne |
Oui, revenons à Michael. |
| Johan |
Ouais. |
| |
Je suppose que je ne ferai pas beaucoup de liens à l'écran, vous parlerez la plupart du temps, puis nous ferons le partage d'écran, puis. |
| Michael Akerman |
Je ne suis pas sûr de ce que nous serons visibles pendant que les écrans sont partagés. |
| Christy Espagne |
Eh bien, dès que je récupère les enregistrements. |
| |
J'en reçois quatre différents. |
| |
versions, il y en a une qui vous inclut alors que ce n'est pas le cas 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 le montrer à l'orateur. |
| Michael Akerman |
Je vois à l'écran, je pense. |
| |
En passant, vous pouvez simplement désactiver les icônes si vous faites un clic droit. |
| Johan |
En parvenant à confondre la fenêtre, on dirait. |
| Christy Espagne |
Eh bien, est-ce vraiment si difficile à faire ? |
| Johan |
Oh ouais. |
| |
Alors quel clic droit et vue et. |
| Michael Akerman |
ouais, il a trouvé ça bien, cool. |
| |
parce que je ne me souviens pas exactement où a. |
| |
Guy, je n'ai jamais mes icônes allumées sur mon bureau, je laisse juste des choses installées dessus, donc si jamais j'active ça, c'est comme. |
| Johan |
Ouais. |
| Christy Espagne |
Donc, Michael, quand tu auras fini, tu diras simplement d'accord, donne-moi la parole sur ton partage d'écran et ensuite nous partirons de là, nous n'allons pas vraiment, nous n'allons pas faire de pause, en d'autres termes ouais. |
| Michael Akerman |
Et tu as un filtre jaune sur ma chambre. |
| Christy Espagne |
Oh, vous avez un feu rouge qui vous fait envie. |
| Michael Akerman |
mais ça me rend bleu, 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, je me suis retrouvé indépendant très tôt, mon patron n'arrêtait pas de se plaindre de la qualité de mon microphone et de la qualité de ma caméra, donc je me dis bien, mec, tu m'achètes une nouvelle caméra avec microphone. |
| Christy Espagne |
tant mieux pour vous, je n'ai pas reçu ce nouveau casque. |
| Michael Akerman |
Laisse-moi fermer ma porte très vite. |
| Christy Espagne |
Oh d'accord ouais, c'est important si vous connaissez des amis à quatre pattes ou des enfants qui courent partout. |
| Johan |
ouais bien ni l'un ni l'autre, alors bien ouais je vais fermer la porte. |
| Christy Espagne |
et Johan Où vous situez-vous. |
| Johan |
Sur l'entreprise. |
| Christy Espagne |
que le mien oh sympa. |
| |
être pleinement. |
| Johan |
Oh, tu l'as été. |
| Christy Espagne |
J'ai un ami qui s'est marié. |
| |
Un gars de Copenhague vient du Danemark, alors nous sommes allés là-bas pour lui rendre visite. |
| |
Ah oui, magnifique. |
| Christy Espagne |
D'accord, donc, si je peux vous demander d'indiquer le nom de votre entreprise et le titre de votre résumé, ce serait génial. |
| |
Et ce n'est pas pour l'enregistrement. C'est juste pour que Jeff puisse identifier ce qui vous appartient. |
| Michael Akerman |
mon nom est bien sûr, je m'appelle Michael incrément, 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é le détail exact. |
| Christy Espagne |
c'est bon. |
| Michael Akerman |
Vous tous. |
| Johan |
Et mon nom est une ONU. |
| |
Aussi, cela n’a aucun sens. |
| Christy Espagne |
Et nous enregistrerons ceci et le publierons lors de la conférence du sommet de découverte, et il sera disponible pour le public si vous obtenez l'autorisation pour cet enregistrement pour cette utilisation. |
| Michael Akerman |
Nous le faisons, je le fais. |
| |
Quand tu y vas. |
| Johan |
Oh ouais désolé désolé, j'étais juste mon esprit. |
| Christy Espagne |
Bon alors. |
| |
Laissez-moi éteindre mon appareil photo avant pour vous. |
| |
Personne ne veut me voir. |
| Christy Espagne |
Et je pense que nous sommes prêts, êtes-vous prêts les gars ? |
| Michael Akerman |
Je suppose que nous allons commencer par mon écran. |
| Christy Espagne |
Jamais tu n'es prêt, voyons si le moment est venu. |
| |
909 donc techniquement vous avez jusqu'à 939 mais. |
| |
donnez ou prenez un fusible, donc quand vous êtes prêt. |
| Michael Akerman |
Bonjour à tous et bienvenue dans notre conférence d'aujourd'hui sur "Y'All". Il s'agit d'un gestionnaire de packages de compléments que nous avons intégré à Novozymes pour automatiser le partage, la mise à jour et la maintenance des compléments JMP dans notre entreprise mondiale. Je m'appelle Michael Akerman et mon co-présentateur est Johan Olsen. |
| |
Aujourd'hui, j'ai envie, nous voulons vous parler de Y'All et vous présenter également cette boîte à outils, afin que tous ceux d'entre vous qui y sont intéressés puissent... |
| |
...Qui voudrait l'utiliser à des fins personnelles ou pour votre organisation sait comment obtenir cette boîte à outils et commencer à l'utiliser, et de quoi il s'agit. Nous allons donc commencer par parler de qui nous sommes et pourquoi nous avons construit Y'All... |
| |
...les fonctionnalités clés de Y'All ainsi que l'expérience utilisateur. Johan va donc passer en revue ce qu'un utilisateur voit lorsqu'il utilise cette boîte à outils. |
| |
Nous verrons dans les coulisses 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 donnerons quelques conseils sur l'adoption de Y'All dans votre organisation, si vous le trouvez. intéressant pour vos besoins. |
| |
Nous sommes des data scientists dans une société appelée Novozymes. Mon co-présentateur est Johan Olsen. Il est data scientist dans la recherche sur les applications des biosolutions agricoles et industrielles. |
| |
Je suis data scientist senior dans le même groupe chez Novozymes. Nous avons inclus nos coordonnées ici si vous souhaitez nous contacter à propos de Y'All ou de toute autre chose. N'hésitez pas à nous contacter. |
| |
L'adresse e-mail de Johan est jpko@novozymes.com et il est JPKO dans 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, des suivis 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 société mondiale de biotechnologie. Nous construisons des solutions biologiques pour la durabilité... |
| |
... et améliorer les performances et réduire les coûts pour toutes sortes d'industries à travers le monde. Nous soutenons donc l'agriculture et les biocarburants, les soins ménagers, l'alimentation et les boissons, la santé animale et bien d'autres industries... |
| |
...avec ces solutions biologiques. Nous avons plus de 6 000 employés dans le monde et parmi ces employés, nous avons des centaines d'utilisateurs 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 et qui travaillent tous avec JMP et créent des éléments dans JMP, et c'est vraiment l'inspiration pour Y'All. |
| |
Notre objectif en tant qu'entreprise est le suivant : "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 de JMP chez Novozymes. |
| |
Nous voulions donc leur faciliter la vie en travaillant avec les scripts JMP et les compléments JMP et rendre leur code plus réutilisable et détectable. |
| |
Donc, tout d’abord, nous voulions faciliter la mise à jour. Nous avions observé que dans l'ensemble de Novozymes, les utilisateurs envoyaient des scripts par courrier électronique. |
| |
Il y avait des fichiers JSL envoyés sur des lecteurs réseau personnels. Certains d’entre eux le mettaient sur des clés USB et les distribuaient. Nous voulions rendre la distribution de scripts JMP nouveaux et mis à jour aussi simple que possible. |
| |
Nous voulions créer une archive qui protège 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 écrit des scripts JSL, vous pouvez trouver des scripts pertinents écrits par d'autres développeurs et les améliorer ou... |
| |
construisez-les à partir d'eux, quels que soient vos besoins. Il est donc pratique de prendre ces scripts et de les construire à partir d'eux, ainsi que de partager, d'importer et de réutiliser des fonctions en JSL que d'autres membres de l'organisation trouveraient utiles. |
| |
Donc, pour faire de cela une réalité, nous avons rassemblé trois éléments. Nous avons un script de construction Python, une interface GitLab et un script de chargement et de mise à jour JSL qui fonctionnent tous ensemble dans cette boîte à outils. |
| |
Le script de construction Python est un script automatisé qui s'exécutera dans Python 3 ou version ultérieure et qui analysera et structurera automatiquement les fichiers JSL dans des structures de menus complémentaires. |
| |
Il écrit également les fichiers de définition du complément. Il génère un script de fonctions personnalisées importé qui ajoute toutes ces fonctions utilitaires réutilisables à l'index de script JMP et dans l'IDE JMP, et il compresse le tout dans un fichier .jmpaddin pour une utilisation par les utilisateurs. |
| |
GitLab est notre interface permettant aux utilisateurs d'interagir avec les scripts de complément et de travailler avec le générateur de complément lui-même. GitLab est l'alternative open source ou le concurrent de GitHub. |
| |
Nous l'avons publié en interne au sein de Novozymes, et il fournit une interface utilisateur très simple de type pointer-cliquer 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 déploiement continu d'intégration continue, exécute automatiquement ce script de construction Python et distribue le complément via les canaux de version et de version bêta afin que les utilisateurs puissent avoir soit... |
| |
... des versions stables dont la qualité est contrôlée, 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. |
| |
Et enfin, nous avons les scripts de chargement et de mise à jour JSL. Lorsque JMP s'ouvre et lorsque ce complément se charge,... |
| |
... ils peuvent vérifier, il recherchera de nouvelles versions sur le canal sélectionné - les canaux bêta ou de version - et proposera de télécharger et de mettre à jour ce package de compléments. Cela importe également les fonctions personnalisées dans l'index de script. |
| |
Nous avons une contribution de script très simple dans Y'All de la part de n'importe quel utilisateur JMP. C'est aussi simple que de télécharger 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 disposons d'un contrôle de version et d'un stockage automatiques de ces scripts, d'une mise à jour automatique ou manuelle du complément JMP, donc lorsque JMP s'ouvrira, Y'All proposera de mettre à jour... |
| |
...ou un utilisateur peut choisir de mettre à jour manuellement Y'All via le menu Y'All. |
| |
Nous disposons d'un canal de version bêta pour une construction et des tests rapides si vous êtes un développeur écrivant des scripts pour obtenir la toute dernière version du complément lorsque vous mettez à jour votre script et y apportez des modifications. Et nous disposons d'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 utilisateurs puissent parcourir cette structure de fichiers de scripts soumis par les utilisateurs de Novozymes, les utilisateurs de Y'All, et y regarder et voir... |
| |
...trouver des scripts qui répondent à un objectif proche de ce qu'ils souhaitent et les modifier pour leurs propres besoins. |
| |
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, de sorte que 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 le fonctionnement de cette fonction et comment l'utiliser. il. |
| |
Je voulais prendre une seconde pour reconnaître une partie du code que nous avons inclus dans Y'All à des fins de démonstration. Une grande partie du code utilisé au sein de Novozymes est spécifique aux systèmes de Novozymes et ne serait pas utilisable en dehors de l'entreprise. |
| |
J'ai donc récupéré quelques scripts qui figuraient déjà dans la communauté des utilisateurs JMP et les ai inclus uniquement à des fins de démonstration. N'hésitez pas à les conserver ou à les supprimer de Y'All... |
| |
...comme voulu. Nous avons donc un script d'analyseur json de Xan Gregg et Craige Hales. Nous avons un assistant de script de nettoyage des données présenté au JMP Discovery Summit 2020... |
| |
...par Jordan Hiller et Mia Stephens. Nous avons des outils de table d'images créés par Heidi Hardner et Serkay Olmez au Discovery Summit 2020. |
| |
Sélection de rangées de couleurs.jsl par Nick Holmes. Graphique à axes Y multiples par Byron Wingerd et configuration de validation automatique, je crois, également présentés 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 travailler avec leur API, écrite par Riffyn incorporée et extraite du complément JMP de leurs outils Riffyn avec autorisation. C'est un outil que nous utilisons beaucoup chez Novozymes. Nous l'avons inclus car s'il y a d'autres utilisateurs de Riffyn, vous pouvez également utiliser ce code librement. |
| |
Ceci étant réglé, nous voulions nous lancer dans quelques démos en direct, en commençant par l'expérience utilisateur et ce que l'utilisateur voit et fait lorsqu'il travaille avec la boîte à outils Y'All. Pour cela, je vais céder le contrôle à mon co-présentateur Johan. |
| |
Johan, tu es muet. |
| Johan |
Merci, Michel. |
| |
Désolé pour ça. Permettez-moi de partager mon écran. |
| |
Voyez-vous cela ? |
| Michael |
Oui. |
| Johan |
D'accord. |
| |
Comme Michael l'a dit, je vais vous guider à travers l'expérience utilisateur liée à l'utilisation de Y'All. |
| |
Être un utilisateur de Y'All est vraiment une chose à trois niveaux. La grande majorité de nos utilisateurs l’utilisent essentiellement comme s’il s’agissait d’une plate-forme JMP intégrée. Ils... |
| |
... pointez et cliquez sur les scripts et exécutez-les aux fins auxquelles ils sont destinés. Nous avons également un groupe d'utilisateurs assez important qui contribuent avec des scripts pour expliquer également comment... |
| |
Vous pouvez contribuer à des scripts simples. Et puis nous avons un petit groupe de développeurs et de responsables (??) qui font des choses plus avancées, et nous essaierons d'en tirer un peu également. |
| |
Mais tout d’abord, l’utilisation très simple de Y’All. L'installer est aussi simple que de cliquer sur ce lien vers l'artefact de construction (??) créé dans notre référentiel GitLab, de télécharger le fichier d'édition JMP et de l'exécuter avec JMP. |
| |
Maintenant, cela m'a incité à effectuer une mise à jour, je vais juste annuler cette fois-ci, mais vous pouvez voir ici cela sur ma barre de menu, et j'ai le menu Y'All... |
| |
...Avec certains de ces scripts de démonstration mentionnés par Michael. Je n'entrerai pas dans les détails de ces scripts car ils ne font pas vraiment partie du package Y'All mais sont simplement inclus à des fins de démonstration. Mais ce que je vais faire, c'est essayer d'entrer et... |
| |
... oups, activez, désolé, c'était déjà le cas, activé, il apparaît. activer les tests bêta, de sorte que, maintenant que nous commençons à créer certaines choses, nous puissions les voir immédiatement. |
| |
La plupart des utilisateurs verront les tests bêta désactivés et une mise à jour leur sera proposée lorsqu'ils ouvriront JMP après une version majeure, soit une fois toutes les quelques semaines. Mais pour les utilisateurs dont les tests bêta sont activés, la mise à jour de la branche bêta peut se produire à tout moment, de plusieurs fois par jour à quelques fois par semaine. |
| |
C’est donc essentiellement ce qu’il y a à gagner pour un utilisateur normal. |
| |
Si vous souhaitez contribuer à cela avec des scripts, il existe plusieurs façons de le faire. Une chose passe par l’interface utilisateur de GitLab. Maintenant, la structure du menu que nous venons de voir se reflète dans le... |
| |
...structure de répertoires dans le... |
| |
...dépôt. Donc créer un nouveau... |
| |
...un menu ou un sous-menu est aussi simple que de simplement créer un nouveau répertoire. Ici, appelons simplement ça... |
| |
... "démos" |
| Johan |
et ajoutez-le. |
| Johan |
Et si nous souhaitons ajouter un script, nous pouvons simplement le créer dans l'IDE JMP afin que vous souhaitiez créer un script très simple. |
| |
Bonjour le monde. |
| |
Ce sera suffisant. Il y a en fait un petit détail supplémentaire, qui consiste à nommer les éléments de menu de manière agréable pour obtenir une info-bulle, nous avons implémenté le [???] ou la magie du code, c'est-à-dire que si vous commencez par écrire des commentaires, oups. |
| |
Et toi. |
| |
Nom du menu. |
| Michael Akerman |
Vous tous. |
| |
Nom du menu. |
| Johan |
Nom du menu Y'All |
| Michael Akerman |
Vieille habitude. |
| Johan |
Appelons ça bonjour. Ensuite, vous avez tous une info-bulle. |
| |
Très bien, allons-y et sauvegardons ça. |
| |
Vers n'importe où, je suppose, voyons voir, sur le bureau. Et puis téléchargez-le ici. |
| |
C'était un test ? |
| Michael Akerman |
C'était un script mais ça devrait aller. |
| Johan |
Maintenant... |
| |
Une fois que nous avons téléchargé ce fichier, 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 complément, ce qui devrait s'afficher au redémarrage de JMP, |
| Johan |
et mise à jour de toutes les modifications. |
| Johan |
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. |
| |
C'est donc le moyen le plus simple de contribuer à des scripts dans JMP. Si vous êtes familier avec Git, vous pouvez également utiliser un workflow Git plus classique. Je vais juste ouvrir une fenêtre de lot ici. Laisse-moi juste... |
| |
Et nous pouvons cloner le référentiel. Revenons à... Certaines des choses que nous montrons 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. |
| |
Alors maintenant, nous clonons le référentiel et nous aurons un miroir complet du référentiel dans notre système local. Et comme avant, nous pouvons voir la structure des répertoires en miroir ici, et essayons de voir si nous pouvons créer un... |
| |
Un autre scénario. |
| |
Pour ça. Le nom du menu Y'All a été amélioré |
| |
Bonjour. |
| |
Disons que nous aimerions le faire, peut-être cette fois. |
| |
... ouvrez plutôt une invite. |
| |
Il dit bonjour tout le monde. |
| |
Désormais, cette fois-ci, nous pouvons utiliser l’une des fonctions intégrées incluses dans JMP. Allons à l'index des scripts, nous pouvons... |
| |
... recherchez Y'All utils. |
| |
Et trouvez 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 d'utilitaires Y'AllModal |
| Johan |
Et nous pouvons simplement dire bonjour tout le monde. |
| Johan |
voyons ça. |
| |
dans notre référentiel... |
| |
...sous démos. Et poussez le code. |
| |
Maintenant, le code est poussé vers le référentiel distant, déclenchant le pipeline CICD, et en quelques instants... |
| |
...secondes, devrait pouvoir voir le pipeline fonctionner et... |
| |
...assez tôt. |
| |
N'a pas encore commencé. |
| |
Peut-être que je reçois un peu... |
| |
...impatient. Et voilà. |
| |
Alors bien sûr, si nous entrons et vérifions les mises à jour de Y'All, nous verrons une nouvelle mise à jour. Est-ce que c'est ça? |
| |
Nous choisirons de mettre à jour... |
| |
...le complément, et maintenant les démos auront notre bonjour tout le monde amélioré. |
| |
Très bien, donc je pense que c'est ce que j'avais pour la démo utilisateur. |
| Michael Akerman |
Merci Johan. Je reprendrai alors le partage d'écran, si cela vous convient. |
| Johan |
Oui. |
| Michael Akerman |
Et je voulais aborder un peu ce qui se passe dans les coulisses, lorsque cette expérience utilisateur se produit. Je vais donc regarder ce code dans Visual Studio Code. |
| |
Vous pouvez regarder cela où vous voulez une fois que vous avez téléchargé le fichier Zip, et je vais passer très rapidement en mode Zen pour le rendre un peu plus facile à voir. On y va. |
| |
Voici donc ce pipeline GitLab CICD qui s'exécute chaque fois que Johan télécharge ce script. Il est donc allé dans le dépôt Git... |
| |
... et il a appuyé sur le bouton plus et a téléchargé un script, ce qui a déclenché ce pipeline CICD. Il s'agit donc d'un petit script qui définit comment le serveur doit réagir à cette situation. |
| |
une étape préalable et une étape de construction... |
| |
...où il a cloné le référentiel Git et tous les fichiers qu'il contient, y compris le nouveau script de Johan, dans un répertoire de travail où ceci... |
| |
...ce module de traitement appelé runner peut travailler sur ce code. Et puis il l'a construit, donc il exécute cette étape de construction où il... |
| |
CD - change de répertoire - dans ce répertoire de construction et exécute ce script de construction Python. C'est donc aussi simple que cela. Il s'agit de cloner tous ces nouveaux fichiers dans un dossier de travail, de se déplacer dans ce dossier et d'exécuter le script de build Python dans Python 3. |
| |
Jetons donc un coup d'œil à ce script de construction Python. Je vais contrôler l'onglet là-dessus. Il s'agit de build_yall.py. |
| |
Cela fait donc beaucoup de code, mais si vous regardez ceci et souhaitez une sorte de guide sur la façon de le parcourir, faites défiler jusqu'à cette fonction de processus. Il dit processus définitif. |
| |
Il s'agit du code principal qui construit Y'All et qui le parcourt étape par étape. Nous allons donc y jeter un coup d’œil au fur et à mesure. |
| |
La première chose qui se produit est que le script Python crée une hiérarchie de menus. Alors jetons un coup d'œil à cela. Ce qu'il fait, c'est créer un dictionnaire Python imbriqué dans lequel il parcourt cette structure de dossiers sous src/scripts... |
| |
... et extrait tous les fichiers JSL qu'il trouve dans un dictionnaire contenant le nom, l'info-bulle et l'emplacement du fichier JSL. Il s'agit donc de créer ce dictionnaire imbriqué un dossier à la fois, en gros, et de l'explorer. |
| |
Ensuite, nous vérifions les noms de commande de chacun de ces fichiers JSL. Nous essayons d'analyser ces fichiers et de rechercher le nom du menu Y'All et l'info-bulle Y'All que vous avez vu Johan mettre en haut du script pour... |
| |
...définissez le nom du bouton et l'info-bulle dans le menu du complément de JMP. Chaque fois que Y'All installe, ce menu Y'all apparaît, comment il doit être appelé et ce que l'info-bulle doit dire, si vous le survolez. |
| |
S'il ne trouve pas le nom du menu Y'All ou le type de commande magique d'info-bulle Y'All, il reviendra simplement au nom du script sans info-bulle. Donc test.jsl deviendrait simplement test comme vous l'avez vu de Johan. |
| |
Ce dictionnaire de commandes dans les menus est trié par ordre alphabétique pour faciliter la recherche d'éléments, à l'exception du menu d'aide et de 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. Et puis toutes ces informations sont écrites dans un fichier JMPcust. |
| |
Ainsi, un fichier .jmpcust est essentiellement une sorte de document en langage de balisage qui définit pour JMP comment... |
| |
quels devraient être les boutons de menu, où devrait être le menu lui-même, quelles devraient être les info-bulles, sont tous définis dans ce fichier .jmpcust. |
| |
Je vais contrôler l'onglet sur Y'All, afin que vous puissiez voir à quoi cela ressemble. C'est littéralement un tas de définitions sur ce que sont les menus... |
| |
..et comment s'appellent les menus et ce qu'ils contiennent. Nous pouvons donc voir que le menu d'aide et de paramètres contient la vérification de la mise à jour Y'All, l'activation du mode de test bêta, etc. |
| |
Le script Python va donc écrire cela automatiquement avec cette fonction d'écriture de fichier jmpcust. |
| |
Et puis nous allons écrire nos fichiers de définition de complément. Donc addin.def et version.txt. Addin.def -- je vais passer à un exemple de cela -- 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 minimale de JMP prise en charge. |
| |
Nous disons 12. C'est un choix un peu arbitraire de notre part, juste pour ne pas avoir à s'inquiéter avant midi. Vous pouvez modifier cela dans le code Python si vous commencez à travailler avec vous-même. La version du complément est également définie ici, comme vous pouvez le voir. |
| |
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 en est qu'il s'agit d'un joli petit fichier que nous pouvons lire à distance. Nous pouvons ouvrir en JMP via HTTP sur le serveur... |
| |
...et jetez un œil très rapidement à ce numéro de version dans ce fichier version.txt pour le comparer à notre version actuelle. Donc, si notre version actuellement installée ne correspond pas au fichier version.txt... |
| |
... cela signifie que nous devons mettre à jour, ou que nous pouvons au moins mettre à jour. Le numéro de version que nous utilisons est la date et l'heure à laquelle cela s'est exécuté 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 un format date/heure. |
| |
Nous pouvons donc comparer les deux nombres sur une base entière, ce qui est bien. Nous pouvons facilement voir s’ils sont supérieurs ou inférieurs les uns aux autres, et nous pouvons toujours reconvertir cela en date. C'est donc pour nous un moyen très efficace de stocker ce numéro de version dans JMP. |
| |
Enfin. |
| |
La prochaine chose que nous faisons -- nous avons donc écrit ces fichiers d'ajout en profondeur -- nous créons un script de fonctions personnalisées. C'est donc un peu étrange et un peu difficile à expliquer. Je ferai de mon mieux pour le faire rapidement et succinctement. |
| |
JMP propose deux manières de définir des fonctions personnalisées. La première concerne une fonction appelée function dans le langage de script JMP, et ce que cela fait - je vais passer à utils.jsl et au sous-sous-répertoire importables de Y'All ici. |
| |
Function définit une fonction personnalisée qui peut être utilisée et appelée depuis d’autres emplacements. Et vous pouvez définir cela avec un espace de noms. Donc dans ce cas, nous avons l'espace de noms Y'All utils... |
| |
...avec le nom de la fonction recode if. Et il 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 consiste à utiliser la nouvelle fonction de fonction personnalisée, qui n'est pas la même chose que la fonction. Je crois que cela a été ajouté ainsi que JMP 14. |
| |
La nouvelle fonction personnalisée ajoute la fonction à l'index de script JMP et à l'IDE JSL pour faciliter l'utilisation de cette fonction et sa réutilisation dans d'autres endroits avec de la documentation. |
| |
Donc l'avantage de la fonction est qu'elle fonctionne depuis 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 et l'index de script JMP ainsi que la possibilité de la coloriser dans l'IDE JSL et d'obtenir... |
| |
...des conseils à ce sujet pendant que vous écrivez du code. Nous aimons donc les nouvelles fonctions personnalisées, mais nous souhaitons prendre en charge JMP avant JMP 14. Donc les scripts de construction... |
| |
... ici, analysera essentiellement le répertoire importables, à la recherche de toutes les définitions de fonctions correspondant à cette fonction fonction fonction fonction... |
| |
...en JSL avec une chaîne doc. Il va donc essayer d'analyser cette chaîne de document entre les démarcations de l'astérisque et de l'extraire dans une nouvelle fonction personnalisée. Vous pouvez donc voir un exemple ici. |
| |
Nous prenons cette fonction recode if et la réécrivons maintenant automatiquement dans une nouvelle fonction personnalisée dans l'espace de noms Y'All utils appelée recode if. |
| |
Et nous avons un prototype, une description et une catégorie d'index de script où tout cela apparaît. Tout cela est donc automatiquement disponible pour les développeurs JMP. Vous pouvez donc écrire des choses en utilisant l'ancienne fonction dans JSL tout en obtenant cet index de script JMP... |
| |
...capacité, en utilisant automatiquement le script de build Y'All. Revenez à mon code de processus ici. |
| |
Tout cela étant écrit, nous construisons maintenant le complément. Les compléments JMP utilisent un format Zip qui a été modifié. Nous le compressons donc en utilisant Python 3, le renommeons en YALL.jmpaddin et il est maintenant disponible dans notre répertoire de travail où fonctionne le coureur CICD. |
| |
Ainsi, la dernière étape 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 construction sont un concept GitLab CICD, dans lequel 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. |
| |
Cette URL est donc toujours cohérente et 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 complément. Lorsque JMP se chargera, Y'All va exécuter ce script de mise à niveau automatique,... |
| |
...qui recherche ces nouvelles versions dans le référentiel 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 dans le canal spécifique ce mode. Alors on tire... |
| |
...à partir d'une URL spécifique basée sur cette sélection de chaîne. Donc, si nous sommes en mode bêta, cela ressemblera au canal bêta. Si nous sommes en mode principal, il examinera la chaîne principale. Et on cherche le fichier YALL.jmpaddin et la version.txt |
| Michael Akerman |
Et maintenant, nous allons comparer ce numéro de version à notre numéro de version installée, et s'il est différent, demander une mise à jour à l'utilisateur. Affichez une boîte de dialogue que vous avez vue sur l'écran de Johan... |
| Michael Akerman |
... qui leur demande s'ils souhaitent la mise à jour et leur indique quel est ce numéro de version. Et ils peuvent choisir de le faire ou de ne pas le faire. |
| |
Donc. |
| |
C'est tout ce qu'il y a à faire en réalité. Tout cela se passe en coulisses, pour l'utilisateur. Ils téléchargent un script via cette interface utilisateur GitLab en utilisant ce bouton plus pour télécharger un fichier et créer ce nouveau... |
| |
...JMP, ce complément Y'All JMP, et le mettre à la disposition des autres utilisateurs connectés au même référentiel. |
| |
Tout cela se passe dans les coulisses. C'est aussi simple pour l'utilisateur que d'enregistrer un script JMP à partir du point rouge dans JMP et de le télécharger dans le référentiel GitLab. |
| |
Je voulais donc récapituler les fonctionnalités de Y'All. |
| |
Nous avons une contribution de script très simple. Comme vous l'avez vu, vous disposez d'une interface utilisateur agréable pour télécharger des fichiers, télécharger des scripts JSL et les rendre disponibles. |
| |
Et cela s’accompagne d’un contrôle automatique des versions et de l’archivage du code. Ainsi, puisque tout cela se passe via un référentiel GitLab central stocké sur les serveurs Novozymes, tout cela est suivi et stocké... |
| |
...à perpétuité. Mises à jour automatiques afin que les développeurs puissent publier des scripts à leurs utilisateurs très facilement, et qu'ils puissent toujours disposer de la version la plus récente... |
| |
...de ces scripts qui fonctionnent correctement et dont la qualité est contrôlée. Et nous avons des chaînes bêta et de sortie. |
| |
Ainsi, la chaîne bêta sera essentiellement créée instantanément, disponible quelques secondes après l'arrivée d'un nouveau script sur Y'All et mise à jour fréquemment. Et le canal de diffusion sera une structure de diffusion contrôlée plus lentement. Je voulais aborder la façon dont nous procédons. |
| |
Vous pouvez voir ici la structure des branches dans notre référentiel GitLab. Nous avons une branche bêta avec de nombreuses mises à jour. Nous avons une branche de publication. Nous avons une succursale principale. Ce que nous faisons chez Novozymes -- cela dépend entièrement du choix de l'utilisateur -- |
| Michael Akerman |
... nous prenons cette branche bêta lorsqu'elle est dans un état dans lequel nous souhaitons la publier. Nous ouvrons une demande de fusion entre la version bêta et la version et la déplaçons vers la branche release. Cela va essentiellement geler la branche de sortie d'écran... |
| Michael Akerman |
... à la version du code, où nous avons fait cela, et cela verrouille le code sur cette branche de version. |
| |
La bêta peut encore changer. Les utilisateurs peuvent toujours ajouter des scripts et modifier des scripts sur la version bêta. Mais la libération est désormais gelée. Nous vérifions la qualité de cela, et lorsque nous sommes prêts, lorsque nous sommes satisfaits de son état... |
| |
... nous le publions sur main et le fusionnons là-dedans, et maintenant cela est disponible pour les utilisateurs de la branche principale de Y'All. |
| |
Nous avons du code détectable. Tout est disponible dans une structure de fichiers sur un référentiel central. Les développeurs peuvent parcourir les scripts et... |
| |
... trouvez-en des similaires sur lesquels bâtir et améliorer. Et nous avons des fonctions utilitaires automatiquement ajoutées à l'index de script, automatiquement disponibles pour les développeurs, afin qu'ils puissent réutiliser des blocs de code comme celui-ci recode si... |
| |
... ou des requêtes de base de données et des choses comme ça que nous avons également incluses comme démonstrations. Donc, si vous parcourez le Y'All... |
| |
...espace de noms dans l'index de script JMP avec Y'All installé. Vous verrez que nous avons quelques requêtes de base de données Postgres et des outils de base de données Postgres que nous avons inclus pour démontrer comment nous les utilisons également. |
| |
Tout cela se produit en démarrant 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, téléchargez-le dans un sous-répertoire correspondant à l'emplacement du menu où ils le souhaitent dans Y'All, donc s'ils le veulent dans les démos, testez les démos... |
| |
... ils mettraient cela dans le sous-répertoire src slash scripts slash demos slash demos. Une fois qu'ils ont fait cela, un pipeline de construction automatique se déclenche et lance le script de construction Python, qui analyse les structures et crée le module complémentaire... |
| |
... le complément et le télécharge à nouveau sur le serveur GitLab. JMP trouve ensuite cette nouvelle mise à jour et propose automatiquement de la télécharger et de mettre à jour le complément Y'All dans JMP. Et ce script est disponible en quelques secondes seulement pour les utilisateurs de cette chaîne bêta. |
| |
Nous espérons donc que vous êtes enthousiasmé par Y'All. Nous espérons que vous souhaitez utiliser Y'All vous-même ou au sein de votre organisation. Nous voulions vous donner quelques conseils sur la façon de commencer, si c’est le cas. |
| |
Le fichier Zip publié dans la communauté des utilisateurs JMP si vous regardez cette vidéo dans la communauté des utilisateurs JMP (il devrait se trouver sur la même page) contient tous les éléments nécessaires pour commencer. Certains d’entre eux nécessiteront des modifications. Certains d’entre eux sont des codes de démonstration avec lesquels vous pouvez jouer. |
| |
Mais n'hésitez pas à le télécharger et à y jeter un œil. Le script de construction Python dans ce fichier Zip est construit sur les bibliothèques Python 3 natives. Il n'y a rien d'installé à part Python sur notre système de build. Et il devrait fonctionner sur n’importe quelle installation Python 3 standard. |
| |
Le stockage et l'automatisation du référentiel central que nous effectuons avec GitLab pour CICD pour une intégration et un déploiement continus, disponible auprès d'autres fournisseurs. GitLab, GitHub, Azure, AWS ont 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'effet secondaire malheureux est que le fichier de pipeline CICD gitlab-ci.yml nécessitera une modification si vous souhaitez l'exécuter de manière automatisée sur vos propres systèmes. Cela ne fonctionnera pas tel quel sur vos systèmes, à moins bien sûr que vous soyez un employé de Novozymes. |
| |
Toutes les chaînes de connexion dans nos fonctions utilitaires dont nous disposons et qui reflètent notre base de données bêta interne ont été remplacées par ODBC ma chaîne de soulignement de connexion de soulignement. |
| |
Si vous souhaitez utiliser l'une de ces fonctions, vous devrez accéder au code des répertoires de travail et modifier ces chaînes pour refléter votre base de données. |
| |
Donc, encore une fois, nous espérons que vous êtes enthousiasmés par Y'All. Nous espérons que vous êtes intéressé par Y'All. Si vous avez des retours, des questions, des commentaires, n'hésitez pas à me contacter ou à Johan... |
| |
...avec eux. Nous aimerions également toute contribution de votre part, si vous prenez ce code et l'améliorez ou si vous prenez cette boîte à outils et l'utilisez d'une manière intéressante. Merci. |
| Christy Espagne |
D'accord, c'était super. |
| Michael Akerman |
Temps. |
| Christy Espagne |
Raisonnable parfait ouais ouais. |
| Michael Akerman |
Le fait. |
| |
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. |
| Johan |
On nous a donc dit de ne pas l'utiliser, nous avons donc dû renommer la chose et j'ai été déstabilisé en n'ayant pas 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éstabilisé, 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 ce mois d'octobre, mais si quelque chose arrive, je vous le ferai certainement savoir. |
| |
merci encore et si. |
| Johan |
Vous avez une nouvelle génération de JMP normaux. |
| Michael Akerman |
Le fait que tu dises que tu es ailleurs, c'est juste un peu. |
| |
Ouais. |
| Johan |
Annuaire Y'All. |
| Christy Espagne |
Oui, merci beaucoup, je le sais. |
| |
Beaucoup de travail pour lutter contre la maladie, et nous l'apprécions. |
| Michael Akerman |
Notre plaisir. |
| |
Merci pour. |
| Michael Akerman |
se déplacer rapidement après la prochaine étape. |
| Christy Espagne |
Oui, mec, c'était bien sûr génial de vous rencontrer tous les deux et. |
| |
J'espère que la prochaine fois. |
| |
Au moins avec Michael, ce sera en personne, Johan, j'aimerais là-bas, te rencontrer aussi, mais. |
| |
Ouais. |
| Michael Akerman |
c'est toujours que vous savez s'il l'est, surtout s'il fait une présentation et à chaque sommet, ou quelque chose qui a eu lieu dans le passé en personne, cela a été la même semaine que tout s'est ouvert à Raleigh, vous pouvez donc en faire une semaine entière. |
| |
conférence informatique. |
| |
et voir un groupe d'employés locaux. |
| Johan |
Il serait peut-être plus facile de discuter du budget du voyage, alors oui. |
| Christy Espagne |
Deux pour un, c'est vrai. |
| |
Ouais. |
| Johan |
D'accord. |
| Christy Espagne |
D'accord, passez un bon reste de votre lundi, bonne semaine, merci. |
| |
Vous aussi, vous pourrez bientôt vous reparler. |
| Johan |
au revoir. |
| |
au revoir. |