| Oratore |
Trascrizione |
| Michael Akerman |
Christie. |
| Christy Spagna |
Buongiorno, come stai Michael? |
| Michael Akerman |
Come stai. |
| Christy Spagna |
Ottimo. Lasciami chiudere la mia email, così non mi becco. |
| Michael Akerman |
Sì, sto semplificando le impostazioni del mio computer in modo che non venga emesso alcun segnale acustico. |
| Christy Spagna |
so cosa ho colpito nella mia barra degli strumenti, sono io. |
| |
Penso di avere tutto. |
| |
come è andato il fine settimana? |
| Michael Akerman |
È stato bello, come stai? Com'è andato il fine settimana? |
| |
Bene. |
| Christy Spagna |
Quindi vivi nell'oscurità. |
| Michael Akerman |
Helen ci aspetta. |
| |
Okay, sì, quindi ero abbastanza vicino alla sede centrale e sarei andato al vero e proprio summit sulla scoperta. |
| |
presente di persona presso il. |
| |
Anche questo è stato deludente, ma... |
| |
Sì, ciao. |
| Christy Spagna |
Ciao, buongiorno, come stai? |
| Giovanni |
fare del bene. |
| Michael Akerman |
Devo erigere un muro di eruditi dietro di me, come hai fatto tu, Johan. |
| Giovanni |
Ho fatto clic. |
| |
Questo e i libri di Danny sono lì dentro, quindi non sarai in grado di riconoscerli. |
| Christy Spagna |
sembra buono. |
| |
Mi scuso per l'errore della settimana scorsa, ma... |
| |
Sono felice di potervi incontrare virtualmente entrambi. |
| |
Dal momento che faccio parte del team principale che supporta le zone Nova, non credo che avrebbero dovuto assegnarmi a voi comunque. |
| |
Vediamo, ho alcune cose da fare, impostate entrambi il display su 19 2010. |
| |
Io faccio. |
| Giovanni |
Lasciami solo controllare due volte. |
| Christy Spagna |
Eccezionale. |
| |
E |
| |
Se il suono è buono, direi che nessuno indossa loghi. |
| |
assicurati che non ci siano oggetti in vista che potrebbero violare il copyright. Non so se i tuoi libri lì dietro potrebbero rappresentare un problema. |
| |
Sì, facciamolo, giusto per sicurezza. |
| Michael Akerman |
Uno di questi è formato da un ex relatore principale del summit sulla scoperta del JMP. |
| Giovanni |
Chi è. |
| Michael Akerman |
Oh, non è vero, è venuto a spiegare quella cosa. |
| Christy Spagna |
Oh sì, ho quel libro. |
| Michael Akerman |
Yeah Yeah. |
| Giovanni |
Non l'ho fatto. |
| |
ho salvato qualcuno di quelli dall'email, ma posso semplicemente estrarlo dall'email. |
| Michael Akerman |
Io ho la webcam su un braccio, dove posso muoverla verso di me, indietro, su, giù, a sinistra e a destra, quindi è come giocarci all'infinito perché è come se potessi muoverla. |
| Christy Spagna |
Oh, questa è una buona idea. |
| |
non mi hai mai, mai visto nel posto giusto, sì. |
| |
E poi tutti aprono tutte le loro app, Outlook e i loro team. |
| |
così. |
| Michael Akerman |
I team chiusi non dovrebbero ricevere alcuna notifica. |
| Christy Spagna |
E hai 30 minuti. È corretto? |
| Michael Akerman |
questa è la mia interpretazione, sì. |
| Christy Spagna |
E voi, ragazzi, lo sarete. |
| |
L'ideale sarebbe iniziare e procedere dritti al punto. |
| |
Vuoi effettuare una condivisione di prova del tuo schermo in modo che ogni volta che effettui una transizione. |
| Michael Akerman |
Il tuo perché a un certo punto passeremo dal mio schermo al tuo e viceversa, quindi lasciami prima condividere il mio schermo. |
| |
non è necessario condividere l'audio. |
| |
COSÌ. |
| Michael Akerman |
torniamo indietro per cominciare da qui. |
| Christy Spagna |
Ciao Alex, giusto. |
| |
Va bene. |
| Michael Akerman |
Quindi sei su noi eravamo fatto fatto fatto fatto fatto fatto quello quello e poi siamo stati consegnati a te. |
| Giovanni |
Sì, controlleremo noi stessi la condivisione dello schermo? Possiamo usare il produttore per noi. |
| Christy Spagna |
dovresti farlo, sì. |
| |
Oh, il tuo sfondo è fantastico. |
| Giovanni |
Grazie. |
| Christy Spagna |
Dovrei averlo. |
| Michael Akerman |
Credo che io possa essere più uniforme e che possiamo essere più uniformi. |
| Giovanni |
No, dovremmo avere il nostro gruppo individuale. Io non l'ho fatto. |
| |
SÌ. |
| Christy Spagna |
Sì, veniamo a Michael. |
| Giovanni |
Sì. |
| |
Immagino che non ci saranno molti collegamenti sullo schermo, la maggior parte delle conversazioni saranno dedicate alla condivisione dello schermo e poi... |
| Michael Akerman |
Non sono sicuro di cosa sarà visibile mentre gli schermi sono condivisi. |
| Christy Spagna |
Bene, quindi non appena avrò indietro le registrazioni. |
| |
Ne ottengo quattro diversi. |
| |
versioni ce n'è una che ti include quando non lo fa e non sono sicuro che Jeff Perkinson modificherà tutto, quindi non so quale collina sceglierà. |
| |
Penso che voglia dimostrarlo all'oratore. |
| Michael Akerman |
Credo di vedere sullo schermo. |
| |
A proposito, puoi semplicemente disattivare le icone cliccando con il tasto destro. |
| Giovanni |
Riesco a confondere la finestra, sembra. |
| Christy Spagna |
Bene, è davvero così difficile da fare? |
| Giovanni |
O si. |
| |
Quindi, fai clic con il tasto destro e visualizza e. |
| Michael Akerman |
sì, l'ha trovato ok, bello. |
| |
perché non ricordo esattamente dove a. |
| |
Cavolo, io non ho mai attivato le icone sul desktop, ho solo lasciato che le cose venissero installate, quindi se mai le attivassi sarebbe come... |
| Giovanni |
Sì. |
| Christy Spagna |
Allora, Michael, quando hai finito dirai semplicemente "Ok, passalo a te" e poi continueremo da lì, non faremo una pausa, in altre parole sì. |
| Michael Akerman |
E nella mia stanza appare un filtro giallo. |
| Christy Spagna |
Oh, hai una luce rossa che ti piace. |
| Michael Akerman |
mi fa diventare blu, sì. |
| Christy Spagna |
Non ho investito in uno di quelli. La mia scrivania è così piccola e ho un sacco di spazio qui. |
| Michael Akerman |
Sì, sono diventato indipendente presto, ma il mio capo continuava a lamentarsi della qualità del mio microfono e della mia telecamera, quindi ho pensato: "Ok, amico, mi comprerai una nuova telecamera con microfono". |
| Christy Spagna |
Meno male che non ho ricevuto queste nuove cuffie. |
| Michael Akerman |
Lasciami chiudere velocemente la porta. |
| Christy Spagna |
Oh, okay, sì, è importante se hai amici pelosi o bambini che corrono in giro. |
| Giovanni |
sì bene né così bene sì metterò la porta chiusa. |
| Christy Spagna |
e Johan Dove ti trovi? |
| Giovanni |
Sulla società. |
| Christy Spagna |
del mio oh Bello. |
| |
essere pienamente. |
| Giovanni |
Oh, sei stato. |
| Christy Spagna |
Ho un amico che si è sposato con. |
| |
Un ragazzo di Copenaghen è danese e così siamo andati a trovarlo. |
| |
Oh sì, bellissimo. |
| Christy Spagna |
Ok, quindi, se riuscissi a farvi dire il nome della vostra azienda e il titolo del vostro abstract, sarebbe fantastico. |
| |
E questo non è per la registrazione. È solo per Jeff, per identificare cosa è tuo. |
| Michael Akerman |
il nome è sicuro, mi chiamo Michael increment e lavoro con Novozymes. Il titolo dell'abstract è facile come caricare una foto. |
| |
qualcosa riguardo all'imballaggio e alla fattura, non ricordo esattamente. |
| Christy Spagna |
va bene. |
| Michael Akerman |
Ragazzi. |
| Giovanni |
E il mio nome è ONU. |
| |
Inoltre, non ha senso. |
| Christy Spagna |
Registreremo tutto questo e lo pubblicheremo alla Discovery Summit Conference, e sarà disponibile per la visione pubblica. Avete il permesso di utilizzare questa registrazione per questo scopo? |
| Michael Akerman |
Noi lo facciamo, io lo faccio. |
| |
Quando vai a. |
| Giovanni |
Oh sì, scusa, scusa, era solo la mia mente. |
| Christy Spagna |
Va bene, quindi. |
| |
Prima lasciami spegnere la telecamera per te. |
| |
Nessuno vuole vedermi. |
| Christy Spagna |
E penso che siamo pronti, siete pronti anche voi? |
| Michael Akerman |
Immagino che inizieremo con il mio schermo. |
| Christy Spagna |
Non sei mai pronto, vediamo quando è il momento. |
| |
909 quindi tecnicamente hai tempo fino a 939 ma. |
| |
dare o prendere una miccia bene, quindi quando sei pronto. |
| Michael Akerman |
Ciao a tutti e benvenuti al nostro intervento di oggi su "Y'All". Si tratta di un gestore di pacchetti aggiuntivi che abbiamo integrato in Novozymes per automatizzare la condivisione, l'aggiornamento e la manutenzione degli script dei componenti aggiuntivi JMP in tutta la nostra azienda globale. Sono Michael Akerman e il mio co-relatore è Johan Olsen. |
| |
Oggi voglio parlarvi di voi e presentarvi questo toolkit, così che chiunque di voi sia interessato possa... |
| |
...Chi volesse utilizzarlo per uso personale o per la propria organizzazione, sa come ottenere questo toolkit e iniziare a utilizzarlo, e di cosa si tratta. Quindi, inizieremo parlando di chi siamo e perché abbiamo creato Y'All... |
| |
...le funzionalità principali di Y'All e l'esperienza utente. Johan illustrerà cosa vede un utente quando utilizza questo toolkit. |
| |
Andremo dietro le quinte per scoprire cosa succede dietro il toolkit Y'All quando un utente interagisce con esso, poi faremo un riepilogo e una ricapitolazione e daremo alcuni suggerimenti su come adottare Y'All nella tua organizzazione, se lo ritieni interessante per i tuoi scopi. |
| |
Siamo data scientist presso un'azienda chiamata Novozymes. Il mio co-relatore è Johan Olsen, un data scientist che si occupa di ricerca applicativa in biosoluzioni agricole e industriali. |
| |
Sono un data scientist senior nello stesso gruppo di Novozymes. Abbiamo inserito qui i nostri recapiti se desiderate contattarci per informazioni su Y'All o per qualsiasi altra informazione. Non esitate a contattarci. |
| |
L'indirizzo email di Johan è jpko@novozymes.com ed è JPKO nella community di utenti JMP. Io sono mxak@novozymes.com. |
| |
Michael Akerman Michael mxak della JMP User Community, quindi non esitate a contattarci se avete domande, commenti o richieste di follow-up su Y'All o su come migliorare ciò che abbiamo creato e ciò su cui stiamo lavorando. |
| |
Lavoriamo per Novozymes. Novozymes è un'azienda biotecnologica globale. Sviluppiamo soluzioni biologiche per la sostenibilità... |
| |
...e migliorare le prestazioni e ridurre i costi per tutti i tipi di settori industriali in tutto il mondo. Quindi sosteniamo l'agricoltura e i biocarburanti, la cura della casa, l'alimentazione e le bevande, la salute animale e molti altri settori... |
| |
...con queste soluzioni biologiche. Abbiamo più di 6000 dipendenti in tutto il mondo e tra questi ci sono centinaia di utenti JMP. |
| |
E lo dico perché abbiamo un gruppo davvero ampio di utenti JMP che supportiamo e con cui collaboriamo, che lavorano tutti con JMP e creano cose in JMP, e questa è davvero l'ispirazione per voi tutti. |
| |
Il nostro scopo come azienda è: "Insieme troviamo risposte biologiche per una vita migliore in un mondo in crescita: ripensiamo al domani". |
| |
Come ho detto, in Novozymes abbiamo una coorte molto ampia di utenti JMP. |
| |
Abbiamo quindi voluto semplificare loro la vita quando lavorano con gli script JMP e i componenti aggiuntivi JMP e rendere il loro codice più riutilizzabile e facilmente individuabile. |
| |
Quindi, per prima cosa, volevamo semplificare l'aggiornamento. Avevamo notato che in Novozymes le persone si scambiavano continuamente gli script via email. |
| |
C'erano file JSL inviati su unità di rete personali. Alcuni li salvavano su chiavette USB e li distribuivano. Volevamo rendere la distribuzione di script JMP nuovi e aggiornati il più semplice possibile. |
| |
Volevamo creare un archivio che salvaguardasse il codice. Abbiamo molti utenti JMP e tutto questo lavoro rappresenta un valore aggiunto per l'organizzazione. |
| |
Quindi un repository centrale in cui tutto quel prezioso codice viene archiviato, sottoposto a backup e sottoposto a backup. |
| |
Volevamo inoltre tenere traccia delle versioni nel tempo, in modo che, man mano che gli script cambiavano e venivano migliorati, potessimo vedere e tenere traccia di tali cambiamenti nel tempo. |
| |
E volevamo semplificare la scoperta e il riutilizzo degli script, quindi se sei uno sviluppatore JMP... |
| |
...se sei uno sviluppatore che scrive script JSL, puoi trovare script pertinenti scritti da altri sviluppatori e migliorarli oppure... |
| |
Costruisci a partire da essi, per qualsiasi esigenza. Quindi, rendi semplice prendere quegli script e costruire a partire da essi, e rendi anche semplice condividere, importare e riutilizzare funzioni in JSL che altri membri dell'organizzazione potrebbero trovare utili. |
| |
Quindi, per rendere tutto questo realtà, abbiamo messo insieme tre componenti: uno script di build Python, un'interfaccia GitLab e uno script di caricamento e aggiornamento JSL, tutti integrati in questo toolkit. |
| |
Lo script di build Python è uno script automatizzato che verrà eseguito in Python 3 o versioni successive e che analizza e struttura automaticamente i file JSL in strutture di menu aggiuntive. |
| |
Scrive anche i file di definizione dei componenti aggiuntivi. Genera uno script di funzioni personalizzate importato che aggiunge tutte queste funzioni di utilità riutilizzabili all'indice di scripting JMP e all'IDE JMP, e li comprime in un file .jmpaddin per l'utilizzo da parte degli utenti. |
| |
GitLab è la nostra interfaccia che consente agli utenti di interagire con gli script dei componenti aggiuntivi e di lavorare con l'Add-in Builder stesso. GitLab è l'alternativa open source o il concorrente di GitHub. |
| |
Abbiamo pubblicato questa guida internamente a Novozymes e fornisce un'interfaccia utente punta e clicca davvero semplice per caricare gli script in questo repository centrale... |
| |
...dove vengono archiviati tutti questi script e dove avviene effettivamente la compilazione. |
| |
E quella pipeline CICD, che sta per continuous integration continuous deployment, esegue automaticamente lo script di build Python e distribuisce il componente aggiuntivo tramite i canali di rilascio e versione beta, in modo che gli utenti possano avere... |
| |
...rilasci costanti con controllo di qualità oppure, se sono sviluppatori, possono ottenere frequenti rilasci rapidi con le versioni più recenti di ogni script utilizzato in questo toolkit. |
| |
E infine, abbiamo gli script di caricamento e aggiornamento JSL. Quando JMP si apre e quando questo componente aggiuntivo si carica,... |
| |
...possono controllare, il programma verificherà la presenza di nuove versioni sul canale selezionato (i canali beta o di rilascio) e offrirà di scaricare e aggiornare il pacchetto aggiuntivo. Questo importerà anche le funzioni personalizzate nell'indice di scripting. |
| |
Abbiamo reso il contributo tramite script Y'All semplicissimo da parte di qualsiasi utente JMP. È facile come caricare una foto sui social media. |
| |
Basta andare all'interfaccia utente, cliccare sul pulsante di caricamento e in pochi secondi sarà disponibile sul canale beta di Y'All. |
| |
Abbiamo un controllo automatico delle versioni e l'archiviazione di questi script, un aggiornamento automatico o manuale del componente aggiuntivo JMP, quindi quando JMP si apre, Y'All vi proporrà di aggiornare... |
| |
...oppure un utente può scegliere di aggiornare manualmente Y'All tramite il menu Y'All. |
| |
Disponiamo di un canale beta per la compilazione e il test rapidi, ideale per sviluppatori che scrivono script, per ottenere la versione più recente del componente aggiuntivo man mano che aggiornano il loro script e vi apportano modifiche. Disponiamo inoltre di un canale di rilascio per la distribuzione controllata e il controllo qualità. |
| |
Ciò ci fornisce file JSL individuabili e riutilizzabili, in modo che le persone possano esaminare questa struttura di file di script inviati dagli utenti di Novozymes, Y'All users, e guardare dentro e vedere... |
| |
...trovano script che soddisfano uno scopo vicino a quello che desiderano e li modificano per i propri scopi. |
| |
E aggiungiamo anche funzioni di utilità pratica nell'indice di scripting; puoi vedere un piccolo screenshot di ciò... |
| |
...a sinistra e nell'editor JSL, in modo che lo script di compilazione aggiunga automaticamente funzioni importabili e riutilizzabili nell'indice di scripting JMP con una piccola stringa di documentazione, se disponibile, per descrivere il funzionamento di questa funzione e come utilizzarla. |
| |
Vorrei prendermi un secondo per ringraziare parte del codice che abbiamo incluso in Y'All a scopo dimostrativo. Gran parte del codice utilizzato in Novozymes è specifico per i sistemi Novozymes e non sarebbe utilizzabile al di fuori dell'azienda. |
| |
Ho quindi preso alcuni script già presenti nella community degli utenti JMP e li ho inclusi solo a scopo dimostrativo. Potete tenerli o rimuoverli liberamente... |
| |
...come desiderato. Abbiamo uno script di analisi JSON di Xan Gregg e Craige Hales. Abbiamo anche un assistente per script di pulizia dei dati presentato al JMP Discovery Summit 2020... |
| |
...di Jordan Hiller e Mia Stephens. Al Discovery Summit 2020 presenteremo gli strumenti per le tabelle di immagini di Heidi Hardner e Serkay Olmez. |
| |
Selezione della riga di colore.jsl di Nick Holmes. Grafico multiasse Y di Byron Wingerd e configurazione dell'autovalidazione, credo, presentati anch'essi al JMP Discovery Summit... |
| |
...l'anno scorso da Mike Anderson, e abbiamo una serie di funzioni importabili per il software di acquisizione dati Riffyn, Riffyn Nexus... |
| |
...per lavorare con la loro API, scritta da Riffyn e presa dal loro componente aggiuntivo JMP per gli strumenti Riffyn, con autorizzazione. È uno strumento che utilizziamo molto in Novozymes. Lo abbiamo incluso perché se ci sono altri utenti Riffyn, potete sentirvi liberi di usare anche questo codice. |
| |
Quindi, fatto questo, abbiamo voluto passare ad alcune demo dal vivo, partendo dall'esperienza utente e da ciò che l'utente vede e fa mentre utilizza il toolkit Y'All. Per questo, lascerò la parola al mio co-relatore Johan. |
| |
Johan, sei muto. |
| Giovanni |
Grazie, Michael. |
| |
Mi dispiace. Lasciami solo condividere il mio schermo. |
| |
Stai vedendo questo? |
| Michele |
SÌ. |
| Giovanni |
Va bene. |
| |
Quindi, come ha detto Michael, vi guiderò attraverso l'esperienza utente di Y'All. |
| |
Essere un utente di Y'All è davvero una cosa a tre livelli. La stragrande maggioranza dei nostri utenti lo usa fondamentalmente come se fosse una piattaforma JMP integrata. Loro... |
| |
...puntare e cliccare sugli script ed eseguirli per gli scopi per cui sono stati concepiti. Abbiamo anche un gruppo di utenti piuttosto numeroso che contribuisce con script per capire come... |
| |
Puoi contribuire con semplici script. E poi abbiamo un piccolo gruppo di sviluppatori e manutentori (??) che si occupa di cose più avanzate, e cercheremo di prendere spunto anche da quello. |
| |
Ma prima di tutto, vediamo come usare Y'All in modo davvero semplice. Installarlo è semplicissimo: basta cliccare su questo link all'artefatto di build (??) creato nel nostro repository GitLab, scaricare il file di modifica JMP ed eseguirlo con JMP. |
| |
Ora, questo mi ha spinto a fare un aggiornamento, questa volta annullerò l'iscrizione, ma potete vedere qui sulla mia barra dei menu, e ho il menu Y'All... |
| |
...Con alcuni di questi script demo menzionati da Michael. Non entrerò nei dettagli di nessuno di questi script, perché non fanno parte del pacchetto Y'All, ma sono inclusi solo a scopo dimostrativo. Quello che farò, però, è provare ad approfondire e... |
| |
...ops, abilita, scusa, era già abilitato, a quanto pare. Abilita il beta testing, così, ora che iniziamo a creare alcune cose, possiamo vederle subito. |
| |
La maggior parte degli utenti avrà disabilitato il beta testing e riceverà un aggiornamento quando aprirà JMP dopo una release principale, ovvero una volta ogni poche settimane. Tuttavia, per gli utenti con il beta testing abilitato, l'aggiornamento del ramo beta potrebbe avvenire in qualsiasi momento, da diverse volte al giorno a un paio di volte a settimana. |
| |
Ecco, questo è fondamentalmente ciò che offre un utente normale. |
| |
Se vuoi contribuire con degli script, ci sono un paio di modi per farlo. Uno è tramite l'interfaccia utente di GitLab. Ora, la struttura del menu che abbiamo appena visto è replicata in... |
| |
...struttura delle directory in... |
| |
...repository. Quindi creando un nuovo... |
| |
...menu o sottomenu sono semplici come creare una nuova directory. Qui, chiamiamola semplicemente... |
| |
..."demo" |
| Giovanni |
e aggiungerlo. |
| Giovanni |
E se volessimo aggiungere uno script, possiamo semplicemente crearlo nell'IDE JMP, quindi vogliamo creare un file molto semplice. |
| |
Ciao mondo. |
| |
Questo sarà sufficiente. In realtà c'è un piccolo dettaglio in più, ovvero dare un nome carino alle voci di menu per ottenere un suggerimento. Abbiamo implementato la [???] o la magia del codice, ovvero, se si inizia scrivendo il testo commentato, oops. |
| |
E tu. |
| |
Nome del menu. |
| Michael Akerman |
Ragazzi. |
| |
Nome del menu. |
| Giovanni |
Nome del menu Y'All |
| Michael Akerman |
Vecchia abitudine. |
| Giovanni |
Chiamiamolo ciao. Poi un suggerimento per tutti voi. |
| |
Bene, andiamo avanti e salviamolo. |
| |
Su qualsiasi cosa, credo, vediamo, sul desktop. E poi caricalo qui. |
| |
Era un test? |
| Michael Akerman |
Era una sceneggiatura ma dovrebbe andare bene. |
| Giovanni |
Ora... |
| |
Una volta caricato questo file, abbiamo attivato una pipeline in questo [inudibile] automatizzato. |
| |
[inudibile] sistema, che consiste nel clonare prima il repository e poi... |
| |
...in seguito alla creazione del componente aggiuntivo, che dovrebbe essere visualizzato al riavvio di JMP, |
| Giovanni |
e aggiornamento di tutte le modifiche. |
| Giovanni |
Una volta scelto di aggiornare, il menu demo è ora presente, con lo script di prova. |
| |
Questo è il modo più semplice per contribuire con script a JMP. Se hai familiarità con Git, puoi anche usare un flusso di lavoro Git più classico. Aprirò una finestra batch qui. Lasciami solo... |
| |
E possiamo clonare il repository. Torniamo a... Alcune delle cose che mostreremo qui saranno specifiche per l'utilizzo di GitLab, che usiamo qui. |
| |
Ma sarà simile anche in altri sistemi di codifica di repository remoti e di hosting di codice. |
| |
Ora stiamo clonando il repository e avremo un mirror completo del repository nel nostro sistema locale. Analogamente a prima, possiamo vedere la struttura delle directory replicata qui e proviamo a vedere se riusciamo a creare... |
| |
Un altro copione. |
| |
Per questo. Il nome del menu Y'All è stato migliorato |
| |
Ciao. |
| |
Diciamo che ci piacerebbe, forse questa volta... |
| |
...aprire invece un prompt. |
| |
Dice ciao mondo. |
| |
Questa volta possiamo usare una delle funzioni integrate incluse in JMP. Andiamo all'indice degli script, e possiamo... |
| |
...cerca Y'All utils. |
| |
E trova la funzione errorModal, che viene fornita con una piccola stringa di documentazione su come utilizzarla. |
| |
Ed è già stato importato, quindi... |
| |
Y'All utils errorModal |
| Giovanni |
E possiamo semplicemente dire ciao mondo. |
| Giovanni |
vediamo questo. |
| |
nel nostro repository... |
| |
...sotto le demo. E inserisci il codice. |
| |
Ora il codice viene inviato al repository remoto, attivando la pipeline CICD e, nel giro di poco... |
| |
...secondi, dovresti riuscire a vedere la pipeline in funzione e... |
| |
...abbastanza presto. |
| |
Non è ancora iniziato. |
| |
Forse sto diventando un po'... |
| |
...impaziente. Eccoci qui. |
| |
Quindi, come previsto, se andiamo a controllare gli aggiornamenti di Y'All, troveremo un nuovo aggiornamento. È tutto? |
| |
Sceglieremo di aggiornare... |
| |
...il componente aggiuntivo e ora le demo avranno il nostro Hello World migliorato. |
| |
Bene, penso che questo fosse ciò che avevo per la demo utente. |
| Michael Akerman |
Grazie, Johan. Se per te va bene, riprenderò il controllo della condivisione dello schermo. |
| Giovanni |
SÌ. |
| Michael Akerman |
E volevo approfondire un po' cosa succede dietro le quinte, quando si sviluppa questa esperienza utente. Quindi, darò un'occhiata a questo codice in Visual Studio Code. |
| |
Una volta scaricato il file Zip, potrete visualizzarlo dove volete. Ora passerò velocemente alla modalità Zen per renderlo un po' più facile da vedere. Eccoci qui. |
| |
Ecco questa pipeline CICD di GitLab che è in esecuzione ogni volta che Johan carica quello script. Quindi è andato nel repository Git... |
| |
...e ha premuto il pulsante "+", ha caricato uno script e ha attivato la pipeline CICD. Questo è un piccolo script che definisce come il server dovrebbe reagire a quella situazione. |
| |
una fase preliminare e una fase di costruzione... |
| |
...dove ha clonato il repository Git e tutti i file in esso contenuti, incluso il nuovo script di Johan, in una directory di lavoro dove questo... |
| |
...questo modulo di elaborazione chiamato runner può lavorare su quel codice. E poi lo ha compilato, quindi esegue questa fase di compilazione in cui... |
| |
I CD, ovvero le directory di modifica, vengono copiati in quella directory di build ed eseguono lo script di build Python. Quindi è davvero semplice. Si clonano tutti questi nuovi file in una cartella di lavoro, si spostano in quella cartella ed eseguono lo script di build Python in Python 3. |
| |
Diamo un'occhiata allo script di build Python. Ora premo Ctrl+Tab per andare lì. Questo è build_yall.py. |
| |
Quindi questo è un bel po' di codice, ma se lo state guardando e volete una sorta di guida su come analizzarlo, scorrete fino in fondo fino a questa funzione process. Dice def process. |
| |
Questo è il codice principale che costruisce Y'All e lo descrive passo dopo passo. Quindi daremo un'occhiata più da vicino man mano che procediamo. |
| |
La prima cosa che succede è che lo script Python crea una gerarchia di menu. Diamo un'occhiata. Quello che fa è creare un dizionario Python annidato in cui esamina la struttura di cartelle sotto src/scripts... |
| |
...e inserisce tutti i file JSL che trova in un dizionario che contiene il nome, il tooltip e la posizione del file JSL. In pratica, crea quel dizionario annidato una cartella alla volta, e lo esplora. |
| |
Poi controlliamo i nomi dei comandi di ciascuno di quei file JSL. Proviamo ad analizzare quei file e a cercare il nome del menu Y'All e il suggerimento Y'All che Johan ha inserito all'inizio dello script per... |
| |
...definisci il nome del pulsante e il testo del tooltip nel menu del componente aggiuntivo in JMP. Ogni volta che installi Y'All, viene visualizzato il menu Y'All, con i relativi nomi e il testo del tooltip visualizzato quando ci passi sopra con il mouse. |
| |
Se non riesce a trovare il nome del menu Y'All o il comando magico Y'All tooltip, tornerà semplicemente al nome dello script senza tooltip. Quindi test.jsl diventerebbe semplicemente test, come hai visto da Johan. |
| |
Il dizionario dei comandi nei menu è ordinato alfabeticamente per facilitarne la ricerca, fatta eccezione per il menu della guida e delle impostazioni, che viene visualizzato in alto per essere sempre in cima al menu. |
| |
Perché la guida e le impostazioni sono importanti. E poi tutte queste informazioni vengono scritte in un file JMPcust. |
| |
Quindi un file .jmpcust è essenzialmente una sorta di documento di linguaggio di markup che definisce per JMP come... |
| |
In questo file .jmpcust vengono definiti quali pulsanti del menu dovrebbero essere, dove dovrebbe essere il menu stesso e quali dovrebbero essere i suggerimenti. |
| |
Ora passo il controllo a Y'All, così potete vedere come appare. È letteralmente un mucchio di definizioni su cosa sono i menu... |
| |
...e come si chiamano i menu e cosa contengono. Possiamo vedere che il menu di aiuto e quello delle impostazioni contengono opzioni per verificare la presenza di aggiornamenti Y'All, attivare o disattivare la modalità beta testing e così via. |
| |
Quindi lo script Python lo scriverà automaticamente con la funzione write jmpcust file. |
| |
E poi scriveremo i file di definizione dei componenti aggiuntivi. Quindi addin.def e version.txt. Addin.def -- ora passo a un esempio -- è un po'... |
| |
...una breve descrizione che JMP utilizza per identificare il componente aggiuntivo e trovare il numero di versione, nonché la versione minima di JMP supportata. |
| |
Diciamo 12. È una scelta piuttosto arbitraria da parte nostra, solo per non doverci preoccupare di cose prima delle 12. Puoi modificarlo nel codice Python, se inizi a lavorarci da solo. Anche la versione del componente aggiuntivo è definita qui, come puoi vedere. |
| |
E lo scriviamo in un file chiamato version.txt, così lo stesso numero intero che hai appena visto in addin.def finisce anche in version.txt. |
| |
Il motivo è che si tratta di un piccolo file che possiamo leggere da remoto. Possiamo aprirlo in JMP tramite HTTP sul server... |
| |
...e diamo un'occhiata veloce al numero di versione nel file version.txt per confrontarlo con la nostra versione attuale. Quindi, se la versione attualmente installata non corrisponde a quella presente nel file version.txt... |
| |
...ciò significa che dobbiamo aggiornare, o almeno possiamo farlo. Il numero di versione che utilizziamo è la data e l'ora in cui è stata eseguita nel fuso orario UTC. |
| |
E lo convertiamo sostanzialmente in secondi dal 1970. Quindi è un numero intero riconvertibile nel formato data/ora. |
| |
Possiamo quindi confrontare i due numeri su base intera, il che è utile. Possiamo vedere facilmente se sono maggiori o minori l'uno dell'altro e possiamo comunque riconvertirli in una data. È quindi un modo davvero efficiente per memorizzare il numero di versione in JMP. |
| |
Finalmente. |
| |
La prossima cosa che facciamo, una volta scritti i file aggiuntivi, è creare uno script di funzioni personalizzato. È un po' strano e un po' difficile da spiegare. Farò del mio meglio per farlo in modo rapido e conciso. |
| |
JMP offre due modi per definire funzioni personalizzate. Il primo è tramite una funzione chiamata function nel linguaggio di scripting JMP, e per capire cosa fa... passerò a utils.jsl e alla sottodirectory importables di Y'All. |
| |
Function definisce una funzione personalizzata che può essere utilizzata e richiamata da altre posizioni. È possibile definirla con un namespace. In questo caso, abbiamo il namespace Y'All utils... |
| |
...con il nome della funzione recode if. E accetta questi argomenti, e abbiamo questa stringa di documentazione e questo codice di funzione scritto qui. |
| |
Il secondo modo per scrivere una funzione personalizzata in JSL è con la nuova funzione personalizzata function, che non è la stessa cosa di function. Credo che questa sia stata aggiunta in JMP 14. |
| |
La nuova funzione personalizzata aggiunge la funzione all'indice di scripting JMP e all'IDE JSL per semplificare l'utilizzo di tale funzione e il suo riutilizzo in altri punti con la documentazione. |
| |
Quindi il vantaggio della funzione è che funziona fino a non so nemmeno quale versione di JMP... |
| |
...prima usavo JMP. Il vantaggio della nuova funzione personalizzata è che è un po' più robusta, e si ottiene la documentazione, l'indice degli script JMP e la possibilità di colorarla nell'IDE JSL e ottenere... |
| |
...suggerimenti durante la scrittura del codice. Ci piacerebbe avere una nuova funzione personalizzata, ma vogliamo supportare JMP prima di JMP 14. Quindi gli script di build... |
| |
...qui, analizzerà essenzialmente la directory importables, cercando tutte le definizioni di funzione che corrispondono a quelle funzioni funzione funzione funzione... |
| |
...in JSL con una stringa di documentazione. Quindi proverà ad analizzare la stringa di documentazione compresa tra le demarcazioni slash e asterisco e a inserirla in una nuova funzione personalizzata. Ecco un esempio. |
| |
Prendiamo quella funzione recode if e ora la riscriviamo automaticamente in una nuova funzione personalizzata nello spazio dei nomi Y'All utils chiamata recode if. |
| |
Abbiamo un prototipo, una descrizione e una categoria di indice di scripting in cui tutto questo viene visualizzato. Quindi tutto è automaticamente disponibile per gli sviluppatori JMP. Quindi puoi scrivere cose usando la vecchia funzione function in JSL e ottenere comunque questo indice di scripting JMP... |
| |
...capacità, utilizzando automaticamente lo script di build Y'All. Scorri verso il basso per trovare il codice del mio processo qui. |
| |
Dopo aver scritto tutto questo, ora creiamo il componente aggiuntivo. I componenti aggiuntivi JMP utilizzano un formato Zip modificato. Quindi lo comprimeremo usando Python 3, lo rinomineremo in YALL.jmpaddin e sarà ora disponibile nella nostra directory di lavoro in cui è in esecuzione l'esecutore CICD. |
| |
Quindi, il passaggio finale di questa pipeline CICD, una volta completato lo script di compilazione, è spostarsi nella directory di lavoro e caricare gli artefatti. |
| |
Gli artefatti di build sono un concetto CICD di GitLab, in cui prendiamo questi due file YALL.jmpaddin e version.txt e li carichiamo sul server, rendendoli disponibili con un URL specifico. |
| |
Quindi quell'URL è sempre coerente ed è collegato al ramo su cui lo stiamo eseguendo in GitLab, quindi se stiamo utilizzando la versione beta anziché la versione di rilascio principale. |
| |
Ora, in JMP... faccio un salto, ah!... |
| |
...in autoUpgrade.jsl. Qui controlliamo la presenza di nuove versioni del componente aggiuntivo. Quando JMP si carica, Y'All eseguirà questo script di aggiornamento automatico,... |
| |
...che cerca le nuove versioni nel repository GitLab. Qui puoi vedere che carichiamo il nostro flag beta, sia in modalità beta che in modalità principale. |
| |
E cerchiamo nel canale specifico per quella modalità. Quindi estraiamo... |
| |
...da un URL specifico in base alla selezione del canale. Quindi, se siamo in modalità beta, cercherà il canale beta. Se siamo in modalità principale, cercherà il canale principale. E cercheremo il file YALL.jmpaddin e il file version.txt. |
| Michael Akerman |
Ora confronteremo quel numero di versione con quello della versione installata e, se è diverso, richiederemo un aggiornamento all'utente. Si aprirà la finestra di dialogo che hai visto nella schermata di Johan... |
| Michael Akerman |
...che chiede loro se desiderano l'aggiornamento e indica loro il numero di versione. E possono scegliere se farlo o meno. |
| |
COSÌ. |
| |
Questo è tutto, in realtà. Tutto ciò che accade dietro le quinte, per l'utente. Carica uno script tramite l'interfaccia utente di GitLab, usando quel pulsante "più" per caricare un file e compilare quel nuovo... |
| |
...il componente aggiuntivo JMP, il componente aggiuntivo Y'All JMP, e renderlo disponibile ad altri utenti connessi allo stesso repository. |
| |
Tutto ciò avviene dietro le quinte. Per l'utente è semplicissimo: basta salvare uno script JMP dall'area rossa di JMP e caricarlo nel repository GitLab. |
| |
Quindi volevo ricapitolare le caratteristiche di Y'All. |
| |
Il contributo tramite script è molto semplice. Come hai visto, hai a disposizione un'interfaccia utente intuitiva per caricare file, script JSL e renderli disponibili. |
| |
E con questo arrivano il controllo automatico delle versioni e l'archiviazione del codice. Quindi, poiché tutto ciò avviene tramite un repository GitLab centrale archiviato sui server Novozymes, tutto viene tracciato e archiviato... |
| |
...in perpetuo. Aggiornamenti automatici, così gli sviluppatori possono rilasciare script ai propri utenti con estrema facilità, e avere sempre la versione più recente... |
| |
...di quegli script che funzionano correttamente e sono sottoposti a controlli di qualità. E abbiamo canali beta e di rilascio. |
| |
Quindi il canale beta sarà essenzialmente creato all'istante, disponibile entro un paio di secondi dall'arrivo di un nuovo script e aggiornato frequentemente. Il canale di rilascio, invece, avrà una struttura di rilascio controllata più lentamente. Volevo spiegarvi come lo faremo. |
| |
Qui potete vedere la struttura dei branch nel nostro repository GitLab. Abbiamo un branch beta con molti aggiornamenti. Abbiamo un branch di rilascio. Abbiamo un branch principale. Quello che facciamo in Novozymes, questo è totalmente a discrezione dell'utente. |
| Michael Akerman |
...prendiamo questo ramo beta quando è in uno stato in cui vogliamo rilasciarlo. Apriamo una richiesta di merge tra beta e release e lo spostiamo nel ramo release. Questo sostanzialmente bloccherà il ramo screen release... |
| Michael Akerman |
...nella versione del codice, dove abbiamo fatto ciò, e questo blocca il codice su questo ramo di rilascio. |
| |
La versione beta può ancora cambiare. Gli utenti possono ancora aggiungere script e modificarli in versione beta. Ma il rilascio è ora bloccato. Controlliamo la qualità e, quando siamo pronti, quando siamo soddisfatti del risultato... |
| |
...lo rilasciamo al ramo principale e lo uniamo lì, e ora è disponibile per gli utenti del ramo principale di Y'All. |
| |
Abbiamo codice rilevabile. Tutto è disponibile in una struttura di file su un repository centrale. Gli sviluppatori possono consultare gli script e... |
| |
...trovarne di simili da cui partire e migliorare. E abbiamo aggiunto automaticamente funzioni di utilità all'indice di scripting, automaticamente disponibili agli sviluppatori, in modo che possano riutilizzare blocchi di codice come quello riprogrammato se... |
| |
...o alcune query di database e cose del genere che abbiamo incluso anche come dimostrazioni. Quindi, se date un'occhiata a Y'All... |
| |
...namespace nell'indice di scripting JMP con Y'All installato. Vedrete che abbiamo incluso alcune query e strumenti per il database PostgreSQL per dimostrare come li utilizziamo. |
| |
Tutto questo avviene partendo da JMP con uno script JSL creato dall'utente che desidera condividere con qualcun altro nella base di utenti Y'All. |
| |
Vanno su GitLab e, nell'interfaccia utente, caricano il tutto in una sottodirectory corrispondente alla posizione del menu in cui lo vogliono in Y'All, così se lo vogliono in demos demos test... |
| |
...lo inseriranno nella sottodirectory src slash scripts slash demos slash demos. Una volta fatto ciò, si avvia una pipeline di build automatica che lancia lo script di build Python, che analizza le strutture e compila il componente aggiuntivo... |
| |
...il componente aggiuntivo e lo ricarica sul server GitLab. JMP trova quindi il nuovo aggiornamento e propone automaticamente di scaricarlo e aggiornare il componente aggiuntivo Y'All in JMP. E lo script è disponibile in pochi secondi per gli utenti di quel canale beta. |
| |
Speriamo quindi che Y'All vi entusiasmi. Ci auguriamo che siate interessati a utilizzare Y'All personalmente o nella vostra organizzazione. Volevamo darvi alcuni consigli su come iniziare, se lo siete. |
| |
Il file Zip pubblicato nella Community degli utenti JMP (se state guardando questo video nella Community degli utenti JMP, dovrebbe essere sulla stessa pagina) contiene tutti gli elementi necessari per iniziare. Alcuni di questi richiederanno modifiche. Altri sono codice demo con cui potete sperimentare. |
| |
Ma sentitevi liberi di scaricarlo e dargli un'occhiata. Lo script di build Python in quel file Zip è compilato su librerie native di Python 3. Non c'è nulla installato tranne Python sul nostro sistema di build. E dovrebbe funzionare su qualsiasi installazione standard di Python 3. |
| |
L'archiviazione centralizzata e l'automazione che realizziamo con GitLab per CICD per l'integrazione e la distribuzione continue sono disponibili tramite altri provider. GitLab, GitHub, Azure e AWS hanno tutti implementazioni simili. |
| |
Esiste un vasto ecosistema di opzioni disponibili, quindi i dettagli di implementazione saranno specifici per la tua organizzazione. |
| |
Lo sfortunato effetto collaterale di ciò è che il file gitlab-ci.yml della pipeline CICD richiederà una modifica se si desidera eseguirlo in modo automatico sui propri sistemi. Non funzionerà così com'è sui propri sistemi, a meno che, ovviamente, non si sia dipendenti di Novozymes. |
| |
Tutte le stringhe di connessione nelle nostre funzioni di utilità che riflettevano il nostro database beta interno sono state sostituite con la stringa di sottolineatura della connessione ODBC. |
| |
Se si desidera utilizzare una di queste funzioni, sarà necessario accedere al codice nelle directory di lavoro e modificare le stringhe in modo che riflettano il database. |
| |
Quindi, ancora una volta, speriamo che siate entusiasti di Y'All. Speriamo che siate interessati a Y'All. Per qualsiasi feedback, domanda o commento, non esitate a contattare me o Johan... |
| |
...con loro. Apprezzeremmo anche qualsiasi contributo tu abbia, se prendessi questo codice e lo migliorassi o prendessi questo toolkit e lo utilizzassi in modo interessante. Grazie. |
| Christy Spagna |
Ok, è stato fantastico. |
| Michael Akerman |
Tempo. |
| Christy Spagna |
Ragionevolmente perfetto, sì sì. |
| Michael Akerman |
Lo fa. |
| |
non importa che Johan abbia detto che JMP non vuole. |
| Christy Spagna |
Sai. |
| Michael Akerman |
Ho la sensazione che la maggior parte delle persone probabilmente non se ne accorgerà. |
| Christy Spagna |
Come parola nuova mi piace. |
| Giovanni |
Quindi ci è stato detto di non usarlo, quindi abbiamo dovuto rinominare la cosa e io sono rimasto spiazzato dal fatto di non aver eliminato la versione che avevo. |
| |
Installato in precedenza. |
| |
Quindi, quando mi sono reso conto che ero già in versione beta, mi sono un po' disorientato e poi ho semplicemente... |
| |
comunque. |
| Christy Spagna |
Sì, penso che vada bene, ma questo è stato fantastico, molto interessante. Penso che alla gente piacerà vederlo, quindi apprezziamo molto la vostra partecipazione. |
| |
Come ho detto, caricherò i video affinché Jeff possa modificarli. Non so quando sarà completato, ma... |
| |
Comunque, vedrete tutto questo a ottobre, ma se succede qualcosa ve lo farò sapere sicuramente. |
| |
grazie ancora e se. |
| Giovanni |
Hai una nuova generazione di JMP normali. |
| Michael Akerman |
Il fatto che tu dica che sei da qualche altra parte è solo un po'... |
| |
Sì. |
| Giovanni |
Elenco di tutti voi. |
| Christy Spagna |
Sì, grazie mille, lo so. |
| |
Tanto lavoro per la malattia, e lo apprezziamo. |
| Michael Akerman |
Il piacere è nostro. |
| |
Grazie per. |
| Michael Akerman |
muovendosi rapidamente dopo il prossimo. |
| Christy Spagna |
Sì, amico, è stato davvero bello incontrarvi entrambi. |
| |
Speriamo la prossima volta. |
| |
Almeno con Michael sarà di persona, Johan mi piacerebbe andare lì, incontrarti anche io, ma. |
| |
Sì. |
| Michael Akerman |
sai sempre se è lui, soprattutto se è lui a presentare e ogni summit, o qualcosa che è successo di persona in passato, è stata la stessa settimana in cui tutto è aperto a Raleigh, quindi puoi fare un'intera settimana di. |
| |
conferenza computazionale. |
| |
e vedere un gruppo di dipendenti locali. |
| Giovanni |
potrebbe essere più facile discutere del budget di viaggio, allora sì. |
| Christy Spagna |
Due per uno, giusto. |
| |
Sì. |
| Giovanni |
Va bene. |
| Christy Spagna |
Ok, ragazzi, vi auguro un fantastico resto di lunedì, una fantastica settimana, grazie. |
| |
Anche tu potrai parlare di nuovo presto. |
| Giovanni |
Ciao. |
| |
Ciao. |