Conférencier
|
Transcription
|
| Michael Akerman |
Christie. |
| Christy Espagne |
Bonjour, comment vas-tu Michael. |
| Michael Akerman |
Comment vas-tu. |
| Christy Espagne |
Super Permettez-moi de fermer mon e-mail, donc je ne me comprends pas. |
| Michael Akerman |
ouais, je rationalise les paramètres de mon ordinateur pour que rien, rien ne ping. |
| Christy Espagne |
sais ce que j'ai touché 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. |
| |
Bon. |
| Christy Espagne |
Alors vivez-vous dans le noir. |
| Michael Akerman |
Hélène nous attend. |
| |
D'accord, oui, si près du siège social, j'irais au sommet de la découverte, c'était le cas. |
| |
présent en personne à la. |
| |
C'était décevant aussi, mais. |
| |
ouais yo sur hé. |
| Christy Espagne |
Bonjour Bonjour, comment allez-vous. |
| Johan |
bien faire. |
| Michael Akerman |
J'ai besoin d'installer un mur d'érudits derrière moi comme tu l'as fait Johan. |
| Johan |
Je l'ai fait mettre en clic. |
| |
Ça et les livres de Danny là-dedans, donc tu ne pourras pas les reconnaître. |
| Christy Espagne |
Cela semble bon. |
| |
Je m'excuse pour le mélange de la semaine dernière, mais. |
| |
Je suis heureux de pouvoir vous rencontrer tous les deux virtuellement. |
| |
Étant donné que je fais partie de la première équipe 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 à faire pour que vous ayez tous les deux votre écran réglé sur 19 2010 à. |
| |
Je fais. |
| Johan |
Laissez-moi juste vérifier. |
| Christy Espagne |
impressionnant. |
| |
et |
| |
Si votre son est bon, je dirais que personne ne porte de logo. |
| |
assurez-vous qu'aucun élément n'est à portée de vue qui pourrait causer 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 l'un d'entre eux est formé à partir d'un ancien conférencier principal du sommet JMP Discovery. |
| Johan |
Qui est. |
| Michael Akerman |
Oh, je n'ai pas, il est venu et a parlé de cette explication de chose. |
| Christy Espagne |
Ah oui j'ai ce livre. |
| Michael Akerman |
Yeah Yeah. |
| Johan |
Je n'ai pas. |
| |
enregistré l'un de ceux de l'e-mail, mais je peux simplement aller de l'avant et le retirer de l'e-mail. |
| Michael Akerman |
Je veux que j'aie ma webcam sur un bras, où je peux la déplacer comme vers moi et vers l'arrière et de haut en bas et à gauche et à droite comme alors c'est comme jouer avec elle éternellement parce que c'est comme si je pouvais la déplacer. |
| Christy Espagne |
Ah c'est une bonne idée. |
| |
jamais, jamais vu au bon endroit ouais. |
| |
Et puis tout le monde atteint toutes ses perspectives d'applications, toutes les équipes que je suis. |
| |
comme ça. |
| Michael Akerman |
Les équipes proches ne devraient recevoir aucune notification. |
| Christy Espagne |
Et vous avez 30 minutes. Est-ce exact. |
| Michael Akerman |
c'est ma compréhension oui. |
| Christy Espagne |
Et le serez-vous les gars. |
| |
Idéalement, nous aimerions simplement commencer et continuer directement. |
| |
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 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 tu es sur nous avons fait ça fait ça fait ça fait ça fait ça et ensuite on vous a remis dessus. |
| Johan |
ouais allons-nous contrôler le partage d'écran nous-mêmes, nous pouvons utiliser le producteur pour nous. |
| Christy Espagne |
tu devrais faire ça oui. |
| |
Oh, ton arrière-plan est superbe. |
| Johan |
Merci. |
| Christy Espagne |
Je devrais avoir ça. |
| Michael Akerman |
Que je puisse être plus, nous pouvons être plus uniformes, je suppose. |
| Johan |
Non, nous devrions avoir notre propre individu, je ne l'ai pas fait. |
| |
Oui. |
| Christy Espagne |
Oui, passons à Michael. |
| Johan |
Oui. |
| |
Je suppose que je ne serai pas beaucoup sur le lien à l'écran que vous ferez, la plupart des discussions et ensuite nous ferons le partage d'écran et ensuite. |
| Michael Akerman |
Je ne sais pas ce que nous serons visibles, alors que les écrans sont partagés. |
| Christy Espagne |
Eh bien, à chaque fois que je récupère les enregistrements. |
| |
J'en reçois quatre différents. |
| |
versions, il y en a une qui vous inclut quand 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. |
| |
Au fait, vous pouvez simplement désactiver les icônes si vous faites un clic droit. |
| Johan |
Sur gérer pour confondre la fenêtre, il ressemble. |
| Christy Espagne |
Eh bien, est-ce vraiment si difficile à faire. |
| Johan |
Oh oui. |
| |
Alors quel clic droit et voir 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 allumé mes icônes sur mon bureau, je laisse juste des choses installées dessus, donc si jamais je l'allume, c'est comme. |
| Johan |
Oui. |
| Christy Espagne |
Alors, Michael, quand tu auras fini, tu diras d'accord, donne-le-toi 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 oui. |
| Michael Akerman |
Et tu as un filtre jaune sur ma chambre. |
| Christy Espagne |
Oh, vous avez un feu rouge à votre goût. |
| Michael Akerman |
me fait bleu si oui. |
| Christy Espagne |
Je n'ai pas investi dans l'un de ceux que je n'ai pas. Mon bureau est si petit et j'ai beaucoup d'espace ici. |
| Michael Akerman |
ouais, j'ai fini par devenir indépendant au début, 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 suis comme si d'accord mec, vous m'achetez 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 donc. |
| Christy Espagne |
Oh, d'accord, c'est important si vous connaissez des amis à fourrure ou des enfants qui courent partout. |
| Johan |
ouais bon non plus alors ouais je vais mettre la porte fermée. |
| Christy Espagne |
et Johan Où êtes-vous situé. |
| Johan |
Sur l'entreprise. |
| Christy Espagne |
que le mien oh Nice. |
| |
être pleinement. |
| Johan |
Oh, tu as été. |
| Christy Espagne |
J'ai un ami qui s'est marié avec. |
| |
Un gars de Copenhague vient du Danemark, alors nous sommes allés 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 Jeff, comme pour identifier ce qui vous appartient. |
| Michael Akerman |
le nom est sûr, je m'appelle Michael. Je suis avec Novozymes, le titre abstrait 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. |
| Johan |
Et mon nom est une ONU. |
| |
Aussi, aucun sens. |
| Christy Espagne |
Et nous allons enregistrer ceci et le publier lors de la conférence Discovery Summit, et il sera disponible pour une visualisation publique si vous obtenez l'autorisation pour cet enregistrement dans cette utilisation. |
| Michael Akerman |
Nous le faisons, je le fais. |
| |
Quand tu vas à. |
| Johan |
Oh ouais désolé désolé j'étais juste mon esprit. |
| Christy Espagne |
Bon 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 |
Jamais vous n'êtes prêt, voyons le temps est venu. |
| |
909 donc techniquement vous avez jusqu'à 939 mais. |
| |
donnez ou prenez un fusible très bien alors chaque fois que vous êtes prêt. |
| Michael Akerman |
Bonjour à tous et bienvenue à 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 de scripts de compléments JMP dans notre entreprise mondiale. Je m'appelle Michael Akerman et mon co-présentateur est 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... |
| |
... Qui pourrait vouloir l'utiliser à des fins personnelles ou pour votre organisation sait comment obtenir cette boîte à outils et commencer à l'utiliser, et ce que c'est. 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 un récapitulatif, et nous donnerons quelques conseils sur l'adoption de Y'All dans votre organisation, si vous le trouvez intéressant pour vos besoins. |
| |
Nous sommes des scientifiques des données dans une entreprise appelée Novozymes. Mon co-présentateur est Johan Olsen. Il est data scientist dans la recherche d'applications de biosolutions agricoles et industrielles. |
| |
Je suis data scientist senior dans le même groupe à 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 sur la communauté d'utilisateurs JMP. Je suis mxak@novozymes.com. |
| |
Michael Akerman Michael mxak sur la communauté d'utilisateurs JMP, alors n'hésitez pas à nous contacter si vous avez des questions, un suivi 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 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 dans cet ensemble d'employés, nous avons des centaines d'utilisateurs JMP. |
| |
Et je mentionne cela parce que nous avons une très grande cohorte d'utilisateurs de JMP que nous soutenons et avec lesquels nous travaillons qui travaillent tous avec JMP et construisent des choses dans JMP, et c'est vraiment l'inspiration pour Y'All. |
| |
Notre objectif en tant qu'entreprise est « Ensemble, nous trouvons des réponses biologiques pour une vie meilleure dans un monde en pleine croissance – repensons demain ». |
| |
Comme je l'ai mentionné, nous avons une cohorte très importante d'utilisateurs de JMP dans Novozymes. |
| |
Nous voulions donc leur faciliter la vie en travaillant avec des scripts JMP et des compléments JMP et rendre leur code plus réutilisable et découvrable. |
| |
Donc tout d'abord, nous voulions rendre la mise à jour facile. Nous avions observé qu'à travers Novozymes, les gens s'envoyaient des scripts par courrier électronique. |
| |
Des fichiers JSL étaient 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 sauvegarde le code. Nous avons beaucoup d'utilisateurs de JMP, tout ce travail représente une grande valeur pour l'organisation. |
| |
Donc, 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 s'améliorent, 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... |
| |
construire à partir d'eux, pour tous les besoins que vous avez. Il est donc pratique de prendre ces scripts et de les construire, mais aussi de partager, d'importer et de réutiliser des fonctions dans JSL que d'autres membres de l'organisation trouveraient utiles. |
| |
Donc, pour en faire une réalité, nous avons mis en place trois composants. Nous avons un script de construction Python, nous avons une interface GitLab, et nous avons un script de chargement et de mise à jour JSL fonctionnant tous ensemble dans cette boîte à outils. |
| |
Le script de construction Python est un script automatisé qui s'exécutera dans Python 3 ou supérieur, qui analyse et structure automatiquement les fichiers JSL en structures de menus de complément. |
| |
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 à l'usage des utilisateurs. |
| |
GitLab est notre interface permettant aux utilisateurs d'interagir avec les scripts de compléments et de travailler avec le générateur de compléments lui-même. GitLab est l'alternative open source ou le concurrent de GitHub. |
| |
Nous l'avons publié en interne dans Novozymes, et il 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 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 régulières contrôlées par la qualité, ou s'ils sont des développeurs, ils peuvent obtenir des versions rapides 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 module complémentaire se charge,... |
| |
... ils peuvent vérifier, il vérifiera les nouvelles versions sur le canal sélectionné - les canaux bêta ou de sortie - et proposera de télécharger et de mettre à jour ce module complémentaire. Cela importe également les fonctions personnalisées dans l'index de script. |
| |
Nous avons une contribution de script super facile dans Y'All de n'importe quel utilisateur JMP. C'est aussi simple que de télécharger une photo sur les réseaux sociaux. |
| |
Vous allez dans l'interface utilisateur, cliquez sur le bouton de téléchargement, et en quelques secondes, il est disponible sur le canal 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 complément JMP, donc lorsque JMP s'ouvrira, Y'All proposera de mettre à jour... |
| |
...ou un utilisateur peut choisir de mettre à jour Y'All manuellement via le menu Y'All. |
| |
Nous avons 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 avons un canal de diffusion pour un déploiement contrôlé et un contrôle qualité. |
| |
Cela nous donne des fichiers JSL découvrables et réutilisables, afin que les gens puissent parcourir cette structure de fichiers de scripts soumis par les utilisateurs à travers Novozymes, les utilisateurs Y'All, et regarder et voir ... |
| |
...trouver des scripts qui répondent à un objectif proche de ce qu'ils veulent 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 ... |
| |
... sur la gauche et dans l'éditeur JSL, donc le script de construction ajoute automatiquement des fonctions qui sont importables et qui sont 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 ce. |
| |
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é dans 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à sur la communauté d'utilisateurs JMP et je les ai inclus à des fins de démonstration. Vous pouvez vous sentir libre de les garder ou de les retirer 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 de données présenté au JMP Discovery Summit 2020... |
| |
... par Jordan Hiller et Mia Stephens. Nous avons des outils de table d'images de Heidi Hardner et Serkay Olmez au Discovery Summit 2020. |
| |
Sélection de rangées de couleurs.jsl par Nick Holmes. Graphique à axes Y multiples de Byron Wingerd et configuration d'autovalidation, 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 de leur complément JMP d'outils Riffyn avec autorisation. C'est un outil que nous utilisons beaucoup dans Novozymes. Nous l'avons inclus car s'il y a d'autres utilisateurs de Riffyn, vous pouvez également utiliser ce code. |
| |
Donc, cela étant réglé, nous voulions nous lancer dans des 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-animateur Johan. |
| |
Johan, tu es en sourdine. |
| 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 expliquer l'expérience utilisateur de l'utilisation de Y'All. |
| |
C'est vraiment une chose à trois niveaux d'être un utilisateur de Y'All. 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 étaient destinés. Nous avons également un groupe d'utilisateurs assez important qui contribue avec des scripts pour également comprendre comment... |
| |
Vous pouvez contribuer à des scripts simples. Et puis nous avons un petit groupe de développeurs et de mainteneurs (??) qui font des choses plus avancées, et nous essaierons d'en tirer un petit peu aussi. |
| |
Mais tout d'abord, l'utilisation vraiment 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 et de télécharger le fichier d'édition JMP et de l'exécuter avec JMP. |
| |
Maintenant, cela m'a demandé une mise à jour, je vais juste annuler cette fois-ci, mais vous pouvez le voir ici dans ma barre de menu, et j'ai le menu Y'All... |
| |
...Avec certains de ces scripts de démonstration que Michael a mentionnés. Je n'entrerai pas dans les détails avec aucun de ces scripts car ils ne font pas vraiment partie du package Y'All mais sont juste inclus à des fins de démonstration. Mais ce que je ferai, c'est que j'essaierai d'entrer et... |
| |
...oups, activer, désolé c'était déjà, 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 tout de suite. |
| |
La plupart des utilisateurs auront désactivé les tests bêta, et ils seront invités à fournir une mise à jour lorsqu'ils ouvriront JMP après une version majeure, c'est-à-dire une fois toutes les quelques semaines. Mais pour les utilisateurs dont les tests bêta sont activés, cela peut être à tout moment de plusieurs fois par jour à quelques fois par semaine lorsque la branche bêta sera mise à jour. |
| |
C'est donc essentiellement ce qu'il y a dedans pour un utilisateur normal. |
| |
Si vous souhaitez contribuer aux scripts, il existe plusieurs manières de le faire. Une chose est à travers l'interface utilisateur GitLab. Maintenant, la structure du menu que nous venons de voir se reflète dans le... |
| |
...structure de répertoire dans le... |
| |
...dépôt. Alors créer un nouveau... |
| |
...menu ou sous-menu est aussi simple que de créer un nouveau répertoire. Ici, appelons simplement ça... |
| |
..."démos" |
| johan |
et l'ajouter. |
| Johan |
Et si nous souhaitons ajouter un script, nous pouvons simplement le créer dans l'IDE JMP afin que vous souhaitiez faire un très simple. |
| |
Bonjour le monde. |
| |
Ce sera assez bien. Il y a en fait un petit détail supplémentaire, qui consiste à nommer les éléments de menu d'une manière agréable pour obtenir une info-bulle, nous avons implémenté le [???] ou la magie du code, c'est-à-dire si vous commencez par écrire des commentaires, oups. |
| |
Et tu. |
| |
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, l'infobulle. |
| |
Très bien, allons-y et sauvegardons ça. |
| |
À n'importe où, je suppose, voyons, 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é. |
| |
système [inaudible], qui consiste d'abord à cloner le référentiel, puis... |
| |
... après la construction du complément, et cela devrait inciter au redémarrage de JMP, |
| johan |
et mise à jour de toutes les modifications. |
| Johan |
Et une fois qu'on a choisi de mettre à jour, le menu des démos est maintenant présent, avec le script de test. |
| |
C'est donc le moyen le plus simple de contribuer des scripts à JMP. Si vous êtes habitué à utiliser 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, 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 de répertoires en miroir ici, et essayons de voir si nous pouvons créer un... |
| |
Un autre scénario. |
| |
Pour ça. Nom du menu Y'All amélioré |
| |
Bonjour. |
| |
Disons que nous aimerions, peut-être cette fois.. |
| |
...ouvrir une invite à la place. |
| |
Il dit bonjour le monde. |
| |
Maintenant, cette fois-ci, nous pouvons utiliser l'une des fonctions intégrées incluses dans JMP. Allons à l'index des scripts, nous pouvons... |
| |
... recherchez les utilitaires Y'All. |
| |
Et trouvez la fonction errorModal, et elle vient ici avec une petite chaîne de documentation, expliquant comment l'utiliser. |
| |
Et il a déjà été importé donc... |
| |
Y'All utils errorModal |
| johan |
Et nous pouvons juste dire bonjour 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 dans une affaire de... |
| |
... secondes, devrait pouvoir voir le pipeline en cours d'exécution et... |
| |
...assez tôt. |
| |
N'a pas encore commencé. |
| |
Peut-être que je deviens un peu... |
| |
...impatient. On y va. |
| |
Donc, 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... |
| |
... l'add-in, et maintenant les démos auront notre hello world amélioré. |
| |
Très bien, donc je pense que c'était 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 entrer un peu dans 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 en mode Zen très rapidement pour le rendre un peu plus facile à voir. Nous y voilà. |
| |
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 pour télécharger un script, et cela 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 pré-étape 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... |
| |
CDs -- change de répertoire -- dans ce répertoire de construction et exécute ce script de construction Python. Donc c'est aussi simple que ça en fait. Il clone tous ces nouveaux fichiers dans un dossier de travail, se déplace dans ce dossier et exécute le script de construction Python dans Python 3. |
| |
Jetons donc un œil à ce script de construction Python. Je vais contrôler l'onglet là-dessus. Il s'agit de build_yall.py. |
| |
C'est donc beaucoup de code, mais si vous regardez cela et que vous voulez une sorte de guide sur la façon de le parcourir, faites défiler jusqu'à cette fonction de processus. Il dit processus de def. |
| |
C'est le code principal qui construit Y'All et le parcourt, étape par étape. Nous allons donc examiner cela au fur et à mesure. |
| |
La première chose qui se passe est que le script Python crée une hiérarchie de menus. Jetons donc un coup d'œil à cela. Ce qu'il fait, c'est créer un dictionnaire Python imbriqué où il parcourt cette structure de dossiers sous src/scripts... |
| |
... et extrait tous les fichiers JSL qu'il trouve dans un dictionnaire qui contient le nom, l'info-bulle et l'emplacement du fichier JSL. Il s'agit donc de construire ce dictionnaire imbriqué un dossier à la fois, en gros, et de le parcourir. |
| |
Ensuite, nous vérifions les noms de commande de chacun de ces fichiers JSL. Nous essayons d'analyser ces fichiers et de rechercher ce nom de 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 module complémentaire de JMP. Chaque fois que Y'All s'installe, ce menu Y'all s'affiche, comment ils doivent être appelés et ce que l'info-bulle doit dire, si vous passez la souris dessus. |
| |
S'il ne peut pas trouver ce nom de menu Y'All ou cette sorte 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, à l'exception du menu d'aide et de paramètres, qui apparaît en haut pour le faire 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 de langage de balisage qui définit pour JMP comment... |
| |
quels boutons de menu devraient être, 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. Ainsi, nous pouvons 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 l'écrire 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. |
| |
On dit 12. C'est un peu un choix arbitraire de notre part, juste pour ne pas avoir à s'inquiéter avant 12h. Vous pouvez changer cela dans le code Python, si vous commencez à travailler avec cela 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 que c'est un joli petit fichier que nous pouvons lire à distance. On peut ouvrir en JMP sur HTTP dans le serveur... |
| |
... et jetez un œil à ce numéro de version très rapidement dans ce fichier version.txt pour le comparer à notre version actuelle. Donc si notre version actuellement installée ne correspond pas à la version.txt... |
| |
... cela signifie que nous devons mettre à jour, ou au moins nous pouvons 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. C'est donc un nombre entier qui est convertible en 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 une date. C'est donc un moyen très efficace de stocker ce numéro de version dans JMP pour nous. |
| |
Finalement. |
| |
La prochaine chose que nous faisons -- nous avons donc écrit ces fichiers d'ajout en profondeur -- nous créons un script de fonctions personnalisé. 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. L'un est avec une fonction appelée fonction 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 à partir 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 cela 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 que la fonction. Je crois que cela a été ajouté et JMP 14. |
| |
La nouvelle fonction personnalisée ajoute la fonction à l'index de script JMP et à l'IDE JSL pour faciliter le travail avec cette fonction et la réutiliser dans d'autres endroits avec 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 et l'index de script JMP et la possibilité de le colorier dans l'IDE JSL et d'obtenir... |
| |
... des conseils pendant que vous écrivez du code. Nous aimons donc la nouvelle fonction personnalisée, mais nous voulons prendre en charge JMP avant JMP 14. Donc les scripts de construction... |
| |
... ici, analysera essentiellement le répertoire importables, à la recherche de toute définition de fonction correspondant à cette fonction fonction fonction fonction ... |
| |
...en JSL avec une chaîne doc. Il essaiera donc d'analyser cette chaîne de documentation entre les démarcations d'astérisques et de la tirer 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 et 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 function dans JSL et toujours obtenir cet index de script JMP... |
| |
...capacité, en utilisant automatiquement le script de construction Y'All. Faites défiler jusqu'à 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 l'avons donc compressé à l'aide de Python 3, renommé en YALL.jmpaddin et il est maintenant disponible dans notre répertoire de travail où fonctionne le programme d'exécution CICD. |
| |
Ainsi, la dernière étape de ce pipeline CICD une fois ce script de génération 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, 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. |
| |
Cette URL est donc toujours cohérente et 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 là que nous vérifions les nouvelles versions du complément. Au chargement de JMP, Y'All va exécuter ce script de mise à jour automatique,... |
| |
... qui recherche ces nouvelles versions dans le référentiel GitLab. Vous pouvez voir ici que nous chargeons notre drapeau bêta, que ce soit en mode bêta ou en mode principal. |
| |
Et nous cherchons dans le canal spécifique pour ce mode. Alors on tire... |
| |
...à partir d'une URL spécifique basée sur cette sélection de canal. Donc, si nous sommes en mode bêta, cela va regarder le canal bêta. Si nous sommes en mode principal, il va regarder le canal principal. Et on cherche le fichier YALL.jmpaddin et le version.txt |
| Michael Akerman |
Et maintenant, nous allons comparer ce numéro de version à notre numéro de version installé, 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 veulent la mise à jour et leur dit quel est ce numéro de version. Et ils peuvent choisir de ne pas le faire. |
| |
Donc. |
| |
C'est tout ce qu'il y a vraiment à faire. Tout ce qui se passe dans les 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 ... |
| |
...le complément JMP, ce complément Y'All JMP, et le rendre disponible pour les autres utilisateurs connectés au même référentiel. |
| |
Tout ce qui 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 sur les caractéristiques de Y'All. |
| |
Nous avons une contribution de script très facile. 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 avec cela vient le contrôle de version automatique et l'archivage du code. Donc, 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 pour que les développeurs puissent publier très facilement des scripts pour leurs utilisateurs, et qu'ils puissent toujours avoir la version la plus récente... |
| |
... de ces scripts qui fonctionnent correctement et dont la qualité est contrôlée. Et nous avons des canaux bêta et de sortie. |
| |
Ainsi, le canal bêta sera essentiellement construit instantanément, disponible quelques secondes après l'arrivée d'un nouveau script sur Y'All et mis à jour fréquemment. Et le canal de libération va être une structure de libération contrôlée plus lentement. Je voulais parler de la façon dont nous procédons. |
| |
Vous pouvez voir ici la structure de la branche dans notre référentiel GitLab. Nous avons une branche bêta avec beaucoup de mises à jour. Nous avons une branche de publication. Nous avons une branche principale. Ce que nous faisons dans Novozymes -- c'est totalement au choix de l'utilisateur -- |
| Michael Akerman |
... nous prenons cette branche bêta lorsqu'elle est dans un état où nous voulons la publier. Nous ouvrons une demande de fusion entre la version bêta et la version, et la déplaçons vers la branche de version. Cela va essentiellement geler la branche de sortie d'écran ... |
| Michael Akerman |
... à la version du code, où nous l'avons fait, et cela verrouille le code sur cette branche de version. |
| |
La bêta peut encore changer. Les gens peuvent toujours ajouter des scripts et modifier des scripts sur la version bêta. Mais la libération est maintenant gelée. Nous en vérifions la qualité, et quand nous sommes prêts, quand nous sommes satisfaits de l'état de celui-ci... |
| |
... nous le publions dans le main et le fusionnons là-dedans, et maintenant c'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 vous pouvez vous baser et améliorer. Et nous avons des fonctions utilitaires automatiquement ajoutées dans l'index de script, automatiquement disponibles pour les développeurs, afin qu'ils puissent réutiliser des blocs de code comme ce recodage 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 regardez à travers le Y'All... |
| |
...espace de noms dans l'index de script JMP avec Y'All installé. Vous verrez que nous avons des requêtes de base de données postgres et des outils de base de données postgres que nous avons inclus pour montrer comment nous les utilisons également. |
| |
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, 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 le mettraient 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 qui lance le script de construction Python, qui analyse les structures et construit 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 module complémentaire Y'All dans JMP. Et ce script est disponible en quelques secondes seulement pour les utilisateurs de ce canal bêta. |
| |
Nous espérons donc que vous êtes enthousiasmé par Y'All. Nous espérons que vous êtes intéressé à utiliser Y'All vous-même ou dans votre organisation. Nous voulions donner quelques conseils sur la façon de commencer, si vous l'êtes. |
| |
Le fichier Zip qui est publié dans la communauté d'utilisateurs JMP si vous regardez cette vidéo dans la communauté d'utilisateurs JMP -- il doit se trouver sur la même page -- contient tous les éléments nécessaires pour démarrer. Certains d'entre eux devront être modifiés. 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 à jeter un œil. Le script de construction Python dans ce fichier Zip est construit sur des bibliothèques Python 3 natives. Il n'y a rien d'autre que Python installé sur notre système de construction. Et il devrait fonctionner sur n'importe quelle installation Python 3 standard. |
| |
Le stockage et l'automatisation du référentiel central que nous réalisons avec GitLab pour CICD pour une intégration et un déploiement continus, disponibles via 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 de cela 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 ne soyez un employé de Novozymes. |
| |
Toutes les chaînes de connexion dans nos fonctions utilitaires que nous avons qui reflètent notre base de données bêta interne ont été remplacées par ODBC my underscore connection underscore string. |
| |
Si vous souhaitez utiliser l'une de ces fonctions, vous devrez entrer dans le code des répertoires de travail et modifier ces chaînes pour refléter votre base de données. |
| |
Alors, 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 commentaires, des questions, des commentaires, n'hésitez pas à me contacter ou à Johan... |
| |
...avec eux. Nous aimerions également toutes vos contributions, si vous prenez ce code et l'améliorez ou 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 qu'aucun JMP ne veut. |
| Christy Espagne |
Tu sais. |
| Michael Akerman |
J'ai l'impression que la plupart des gens ne l'attraperont probablement pas. |
| Christy Espagne |
Comme nouveau mot, j'aime ça. |
| Johan |
On nous a donc dit de ne pas l'utiliser, nous avons donc dû renommer la chose et j'ai été déconcerté en n'ayant pas supprimé la version que j'avais. |
| |
Auparavant installé. |
| |
Donc, quand j'ai réalisé que j'étais déjà en version bêta, cela m'a un peu secoué, et puis j'ai juste. |
| |
de toute façon. |
| Christy Espagne |
ouais je pense que c'est bien, mais maintenant c'était super très intéressant, je pense que les gens vont adorer voir ça, donc nous apprécions vraiment que vous participiez. |
| |
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 se présente, je vous le ferai certainement savoir, mais. |
| |
merci encore et si. |
| Johan |
Vous avez une nouvelle race d'être sur le JMP normal. |
| Michael Akerman |
À propos de vous disant que vous êtes ailleurs, c'est juste un peu. |
| |
Oui. |
| Johan |
Répertoire Y'All. |
| Christy Espagne |
Oui, merci beaucoup, je sais. |
| |
Beaucoup de travail à la maladie, et nous l'apprécions. |
| Michael Akerman |
Notre plaisir. |
| |
Merci pour. |
| Michael Akerman |
se déplaçant rapidement après après la prochaine place. |
| Christy Espagne |
Oui, mec, c'était bien sûr génial de vous rencontrer tous les deux. |
| |
Espérons que la prochaine fois. |
| |
Au moins avec Michael ce sera en personne, Johan j'aimerais bien te rencontrer aussi, mais. |
| |
Oui. |
| Michael Akerman |
c'est toujours vous savez si s'il l'est, surtout s'il présente et juste à chaque sommet, ou quelque chose qui est dans le passé en personne, ça a été 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 tas d'employés locaux locaux. |
| Johan |
peut-être plus facile de discuter du budget voyage, alors oui. |
| Christy Espagne |
Deux pour un droit. |
| |
Oui. |
| Johan |
D'accord. |
| Christy Espagne |
D'accord, vous les gars, passez un bon repos de votre bonne semaine de lundi, merci. |
| |
Vous aussi, vous pourrez bientôt vous reparler. |
| Johan |
au revoir. |
| |
au revoir. |