| Lautsprecher |
Transkript |
| Michael Akerman |
Christie. |
| Christy Spanien |
Guten Morgen, wie geht es dir, Michael? |
| Michael Akerman |
Wie geht es dir. |
| Christy Spanien |
Großartig. Lassen Sie mich meine E-Mail schließen, damit ich nicht in Schwierigkeiten gerate. |
| Michael Akerman |
ja, ich optimiere meine Computereinstellungen, sodass nichts, nichts pingt. |
| Christy Spanien |
weiß, was ich in meiner Symbolleiste gefunden habe. Bin ich das? |
| |
Denke, ich habe alles. |
| |
wie ist dein Wochenende. |
| Michael Akerman |
Es war gut, wie geht es dir, wie ist dein Wochenende. |
| |
Gut. |
| Christy Spanien |
Also lebst du im Dunkeln. |
| Michael Akerman |
Helen wartet auf uns. |
| |
Okay, ja, also ziemlich nah am Hauptquartier, ich würde zum eigentlichen Discovery Summit gehen, das war es. |
| |
persönlich anwesend sein. |
| |
Das war auch enttäuschend, aber. |
| |
ja, yo, hey. |
| Christy Spanien |
Hallo, guten Morgen, wie geht es dir? |
| John |
Gutes tun. |
| Michael Akerman |
Ich muss eine gelehrte Mauer hinter mir errichten, so wie du sie da hast, Johan. |
| John |
Ich habe geklickt. |
| |
Dieses und Dannys Bücher sind darin enthalten, Sie werden sie also nicht erkennen. |
| Christy Spanien |
sieht gut aus. |
| |
Ich entschuldige mich für die Verwechslung letzte Woche, aber. |
| |
Ich freue mich, Sie beide virtuell treffen zu können. |
| |
Da ich Teil des Premier-Teams bin, das Nova-Zonen unterstützt, glaube ich nicht, dass sie mich sowieso euch zugeteilt hätten. |
| |
mal sehen, ich muss ein paar Dinge durchgehen. Habt ihr beide eure Anzeige auf 19 2010 eingestellt? |
| |
Ich tue. |
| John |
Lassen Sie mich das noch einmal überprüfen. |
| Christy Spanien |
Eindrucksvoll. |
| |
Und |
| |
Wenn Ihr Sound gut ist, würde ich sagen, dass niemand Logos trägt. |
| |
Stellen Sie sicher, dass keine Gegenstände sichtbar sind, die eine Urheberrechtsverletzung darstellen könnten. Ich weiß nicht, ob Ihre Bücher dort hinten ein Problem darstellen würden. |
| |
ja, lass uns das machen, nur für den Fall. |
| Michael Akerman |
Einer von ihnen ist ein ehemaliger Hauptredner des JMP Discovery Summit. |
| John |
Wer ist. |
| Michael Akerman |
Oh, das habe ich nicht, er kam und sprach mit mir über diese Sache. |
| Christy Spanien |
Oh ja, ich habe das Buch. |
| Michael Akerman |
ja ja. |
| John |
Ich habe nicht. |
| |
Ich habe keines davon aus der E-Mail gespeichert, aber ich kann es einfach aus der E-Mail herausziehen. |
| Michael Akerman |
Ich habe meine Webcam an einem Arm befestigt, mit dem ich sie zu mir hin und zurück und auf und ab und nach links und rechts bewegen kann, und dann ist es, als würde ich ewig damit herumfummeln, weil ich sie bewegen kann. |
| Christy Spanien |
Oh, das ist eine gute Idee. |
| |
Ich habe mich nie, nie am richtigen Ort gesehen, ja. |
| |
Und dann greift jeder auf alle seine Apps zu, Outlook und ich bin Teams. |
| |
so. |
| Michael Akerman |
Enge Teams sollten keine Benachrichtigungen erhalten. |
| Christy Spanien |
Und Sie haben 30 Minuten. Ist das richtig? |
| Michael Akerman |
das ist mein Verständnis, ja. |
| Christy Spanien |
Und das werdet ihr sein, Jungs. |
| |
Am liebsten würden wir einfach anfangen und direkt weitermachen. |
| |
Möchten Sie bei jedem Übergang eine Testfreigabe Ihres Bildschirms durchführen? |
| Michael Akerman |
Ihr Bildschirm, weil wir an einem Punkt zwischen meinem Bildschirm und Ihrem wechseln werden, also lassen Sie mich zuerst meinen Bildschirm freigeben. |
| |
Sie müssen keinen Ton teilen. |
| |
Also. |
| Michael Akerman |
Lassen Sie uns zurückgehen und hier beginnen. |
| Christy Spanien |
hallo Alex, richtig. |
| |
Okay. |
| Michael Akerman |
Sie sind also dran, wir haben es gemacht, hat es gemacht, hat es gemacht, hat das gemacht, und dann wurden wir an Sie übergeben. |
| John |
ja, werden wir die Bildschirmfreigabe selbst steuern? Wir können den Produzenten für uns verwenden. |
| Christy Spanien |
das solltest du tun, ja. |
| |
Oh, dein Hintergrund sieht toll aus. |
| John |
Danke. |
| Christy Spanien |
Das sollte ich haben. |
| Michael Akerman |
Ich schätze, dass ich einheitlicher sein kann und wir einheitlicher sein können. |
| John |
Nein, wir sollten unsere eigene Person haben. Das habe ich nicht getan. |
| |
Ja. |
| Christy Spanien |
Ja, kommen wir zu Michael. |
| John |
Ja. |
| |
Ich schätze, Sie werden nicht viel über die Bildschirmverbindung wissen, sondern die meiste Zeit reden und dann werden wir die Bildschirmfreigabe durchführen und dann. |
| Michael Akerman |
Ich bin nicht sicher, was für uns sichtbar sein wird, während die Bildschirme geteilt werden. |
| Christy Spanien |
Also, wenn ich die Aufnahmen zurückbekomme. |
| |
Ich bekomme vier verschiedene. |
| |
Es gibt eine Version, in der Sie vorkommen, wenn nicht, und ich bin nicht sicher, ob Jeff Perkinson alles bearbeiten wird, also weiß ich nicht, welchen Hügel er auswählen wird. |
| |
Ich würde denken, dass er es dem Sprecher zeigen möchte. |
| Michael Akerman |
Ich glaube, ich sehe es auf dem Bildschirm. |
| |
Die Icons lassen sich übrigens auch einfach per Rechtsklick ausschalten. |
| John |
Im Fenster „Verwirrung verwalten“ sieht es so aus. |
| Christy Spanien |
Nun, ist das wirklich so schwer zu machen? |
| John |
Oh ja. |
| |
Also, was, Rechtsklick und Anzeigen und. |
| Michael Akerman |
ja, er fand es okay, cool. |
| |
weil ich mich nicht genau erinnere, wo a. |
| |
Mann, ich lasse die Symbole auf meinem Desktop nie einschalten, ich lasse einfach Sachen darauf installieren, also ist es einfach so, wenn ich sie jemals einschalte. |
| John |
Ja. |
| Christy Spanien |
Also, Michael, wenn du fertig bist, sagst du einfach „Okay, übergebe es dir“ auf deiner Bildschirmfreigabe und dann machen wir einfach von dort aus weiter. Wir werden nicht wirklich eine Pause machen, mit anderen Worten, ja. |
| Michael Akerman |
Und Sie bekommen einen Gelbfilter für mein Zimmer. |
| Christy Spanien |
Oh, Sie haben ein rotes Licht, das Ihnen gefällt. |
| Michael Akerman |
macht mich allerdings traurig, ja. |
| Christy Spanien |
Ich habe nicht in eines davon investiert, weil mein Schreibtisch so klein ist und ich hier viel Platz habe. |
| Michael Akerman |
ja, ich war früh selbstständig, aber mein Chef hat sich dauernd über die Qualität meines Mikrofons und meiner Kamera beschwert, also dachte ich mir: „Okay, Mann, kauf mir eine neue Mikrofonkamera.“ |
| Christy Spanien |
gut für dich, ich habe dieses neue Headset nicht bekommen. |
| Michael Akerman |
Lassen Sie mich also schnell meine Tür schließen. |
| Christy Spanien |
Oh, okay, ja, das ist wichtig, wenn Sie pelzige Freunde oder herumlaufende Kinder haben. |
| John |
ja gut, auch nicht so gut, ja, ich werde die Tür schließen. |
| Christy Spanien |
und Johan, wo befinden Sie sich? |
| John |
Auf das Unternehmen. |
| Christy Spanien |
als meiner, oh, schön. |
| |
vollständig sein. |
| John |
Oh, das warst du. |
| Christy Spanien |
Ich habe einen Freund, der mit ihm verheiratet ist. |
| |
Ein Typ aus Kopenhagen kommt aus Dänemark, also sind wir dorthin gefahren, um ihn zu besuchen. |
| |
Oh ja, wunderschön. |
| Christy Spanien |
Okay, also, wenn ich Sie dazu bringen könnte, Ihren Firmennamen und den Titel Ihrer Zusammenfassung anzugeben, wäre das großartig. |
| |
Und dies ist nicht für die Aufzeichnung. Es dient nur Jeffs Zwecken, um zu identifizieren, was Ihnen gehört. |
| Michael Akerman |
Der Name ist sicher, sicher, mein Name ist Michael Increment. Ich bin bei Novozymes. Der abstrakte Titel ist so einfach wie das Hochladen eines Fotos. |
| |
etwas zur Verpackung und Rechnung, das genaue habe ich vergessen. |
| Christy Spanien |
das ist okay. |
| Michael Akerman |
Ihr alle. |
| John |
Und mein Name ist UN. |
| |
Auch kein Sinn. |
| Christy Spanien |
Und wir werden dies aufzeichnen und auf der Discovery Summit Conference veröffentlichen. Es wird der Öffentlichkeit zur Ansicht zur Verfügung stehen. Erhalten Sie die Erlaubnis für diese Aufzeichnung und für diesen Zweck? |
| Michael Akerman |
Wir tun es, ich tue es. |
| |
Wenn Sie zu gehen. |
| John |
Oh ja, tut mir leid, tut mir leid, ich habe es mir nur eingebildet. |
| Christy Spanien |
Okay, also. |
| |
Lassen Sie mich vorher meine Kamera für Sie ausschalten. |
| |
Niemand will mich sehen. |
| Christy Spanien |
Und ich denke, wir sind bereit. Seid ihr bereit? |
| Michael Akerman |
Ich denke, wir beginnen mit meinem Bildschirm. |
| Christy Spanien |
Du bist noch nie bereit, lass uns sehen, wann es soweit ist. |
| |
909, also technisch gesehen haben Sie bis 939 Zeit, aber. |
| |
mehr oder weniger eine Sicherung, also gut, wann immer Sie bereit sind. |
| Michael Akerman |
Hallo zusammen und herzlich willkommen zu unserem heutigen Vortrag „Y'All“. Wir präsentieren einen Add-In-Paketmanager, den wir in Novozymes integriert haben, um die gemeinsame Nutzung, Aktualisierung und Wartung von JMP-Add-Ins in unserem globalen Unternehmen zu automatisieren. Ich bin Michael Akerman, mein Co-Moderator ist Johan Olsen. |
| |
Heute möchte ich mit Ihnen über Y'All sprechen und Ihnen auch dieses Toolkit vorstellen, damit jeder von Ihnen, der daran interessiert ist, ... |
| |
...Wer es für den persönlichen Gebrauch oder für seine Organisation nutzen möchte, weiß, wie man dieses Toolkit erhält, nutzt und was es ist. Wir beginnen damit, darüber zu sprechen, wer wir sind und warum wir Y'All entwickelt haben... |
| |
...die wichtigsten Funktionen in Y'All sowie die Benutzererfahrung. Johan geht also durch, was ein Benutzer sieht, wenn er dieses Toolkit verwendet. |
| |
Wir werfen einen Blick hinter die Kulissen und zeigen, was hinter dem Y'All-Toolkit passiert, wenn ein Benutzer damit interagiert. Anschließend erstellen wir eine Zusammenfassung und geben einige Tipps zur Einführung von Y'All in Ihrer Organisation, falls Sie es für Ihre Zwecke interessant finden. |
| |
Wir sind Datenwissenschaftler bei einem Unternehmen namens Novozymes. Mein Co-Moderator ist Johan Olsen. Er ist Datenwissenschaftler in der Anwendungsforschung für landwirtschaftliche und industrielle Biolösungen. |
| |
Ich bin leitender Datenwissenschaftler in derselben Gruppe bei Novozymes. Wir haben hier unsere Kontaktinformationen aufgeführt, falls Sie uns bezüglich Y'All oder anderen Themen kontaktieren möchten. Bitte zögern Sie nicht, uns zu kontaktieren. |
| |
Johans E-Mail-Adresse lautet jpko@novozymes.com und er ist JPKO in der JMP-Benutzer-Community. Ich bin mxak@novozymes.com. |
| |
Michael Akerman Michael mxak in der JMP-Benutzer-Community. Melden Sie sich also gerne, wenn Sie Fragen, Anmerkungen oder Kommentare zu Y'All oder zu Verbesserungsmöglichkeiten für das, was wir gebaut haben und womit wir arbeiten, haben. |
| |
Wir arbeiten für Novozymes. Novozymes ist ein globales Biotechnologieunternehmen. Wir entwickeln biologische Lösungen für Nachhaltigkeit... |
| |
... und verbessern die Leistung und senken die Kosten für verschiedenste Branchen weltweit. Wir unterstützen die Bereiche Landwirtschaft und Biokraftstoffe, Haushaltspflege, Lebensmittel und Getränke, Tiergesundheit und viele weitere Branchen ... |
| |
... mit diesen biologischen Lösungen. Wir beschäftigen weltweit über 6.000 Mitarbeiter, darunter Hunderte von JMP-Benutzern. |
| |
Und ich erwähne das, weil wir eine wirklich große Gruppe von JMP-Benutzern haben, die wir unterstützen und mit denen wir zusammenarbeiten, die alle mit JMP arbeiten und Dinge in JMP erstellen, und das ist wirklich die Inspiration für Sie alle. |
| |
Unser Unternehmensziel lautet: „Gemeinsam finden wir biologische Antworten für ein besseres Leben in einer wachsenden Welt – denken wir die Zukunft neu.“ |
| |
Wie ich bereits erwähnt habe, verfügen wir bei Novozymes über eine sehr große Gruppe von JMP-Benutzern. |
| |
Deshalb wollten wir ihnen die Arbeit mit JMP-Skripten und JMP-Add-Ins erleichtern und ihren Code wiederverwendbarer und auffindbarer machen. |
| |
Zunächst wollten wir die Aktualisierung vereinfachen. Wir hatten beobachtet, dass die Mitarbeiter von Novozymes Skripte per E-Mail hin- und herschickten. |
| |
Einige versendeten JSL-Dateien auf privaten Netzwerklaufwerken. Einige speicherten sie auf Flash-Laufwerken und gaben sie weiter. Wir wollten die Verteilung neuer und aktualisierter JMP-Skripte so einfach wie möglich gestalten. |
| |
Wir wollten ein Archiv erstellen, das den Code schützt. Wir haben viele JMP-Benutzer, und all diese Arbeit stellt einen großen Wert für das Unternehmen dar. |
| |
Also ein zentrales Repository, in dem der gesamte wertvolle Code gespeichert, gesichert und archiviert wird. |
| |
Und wir wollten die Versionen im Laufe der Zeit verfolgen, sodass wir in der Lage sein wollten, Änderungen zu sehen und zu verfolgen, wenn sich die Skripte ändern oder verbessern. |
| |
Und wir wollten es einfach machen, Skripte zu entdecken und wiederzuverwenden. Wenn Sie also ein JMP-Entwickler sind ... |
| |
... wenn Sie als Entwickler JSL-Skripte schreiben, können Sie relevante Skripte anderer Entwickler finden und diese verbessern oder ... |
| |
Bauen Sie auf ihnen auf, ganz gleich, welche Anforderungen Sie haben. Machen Sie es also bequem, diese Skripte zu verwenden und darauf aufzubauen. Machen Sie es auch bequem, Funktionen in JSL zu teilen, zu importieren und wiederzuverwenden, die andere Mitglieder der Organisation nützlich finden. |
| |
Um dies zu verwirklichen, haben wir drei Komponenten zusammengestellt: ein Python-Build-Skript, eine GitLab-Schnittstelle und ein JSL-Lade- und Aktualisierungsskript, die alle in diesem Toolkit zusammenarbeiten. |
| |
Das Python-Build-Skript ist ein automatisiertes Skript, das in Python 3 oder höher ausgeführt wird und JSL-Dateien automatisch analysiert und in Add-In-Menüstrukturen strukturiert. |
| |
Es schreibt außerdem die Add-In-Definitionsdateien. Es generiert ein importiertes benutzerdefiniertes Funktionsskript, das alle diese wiederverwendbaren Dienstprogrammfunktionen zum JMP-Skriptindex und zur JMP-IDE hinzufügt, und komprimiert alles in eine JMP-Datei zur Verwendung durch Benutzer. |
| |
GitLab ist unsere Schnittstelle für Benutzer zur Interaktion mit Add-In-Skripten und zur Arbeit mit dem Add-In-Builder selbst. GitLab ist die Open-Source-Alternative oder der Konkurrent von GitHub. |
| |
Wir haben dies intern bei Novozymes veröffentlicht und es bietet eine wirklich einfache Point-and-Click-Benutzeroberfläche zum Hochladen von Skripten in dieses zentrale Repository … |
| |
...wo alle diese Skripte gespeichert sind und der Build tatsächlich stattfindet. |
| |
Und diese CICD-Pipeline, die für Continuous Integration Continuous Deployment steht, führt das Python-Build-Skript automatisch aus und verteilt das Add-In über Release- und Betaversion-Kanäle, sodass Benutzer entweder ... haben können. |
| |
...kontinuierliche, qualitätskontrollierte Releases, oder wenn Sie Entwickler sind, können Sie häufige Schnellreleases mit den neuesten Versionen aller in diesem Toolkit verwendeten Skripts erhalten. |
| |
Und schließlich haben wir die JSL-Lade- und Aktualisierungsskripte. Wenn JMP geöffnet wird und dieses Add-In geladen wird, … |
| |
...sie können dies überprüfen. Es wird auf dem ausgewählten Kanal (Beta- oder Release-Kanal) nach neuen Versionen gesucht und angeboten, das Add-In-Paket herunterzuladen und zu aktualisieren. Dadurch werden auch die benutzerdefinierten Funktionen in den Skriptindex importiert. |
| |
Wir bieten jedem JMP-Benutzer die Möglichkeit, ganz einfach Skripte in Y'All einzureichen. Es ist so einfach wie das Hochladen eines Fotos in den sozialen Medien. |
| |
Sie gehen in die Benutzeroberfläche, klicken auf die Schaltfläche „Hochladen“ und in Sekundenschnelle ist es auf dem Beta-Kanal von Y'All verfügbar. |
| |
Wir verfügen über eine automatische Versionskontrolle und Speicherung dieser Skripte sowie ein automatisches oder manuelles JMP-Add-In-Update. Wenn JMP also geöffnet wird, bieten Sie alle ein Update an … |
| |
... oder ein Benutzer kann Y'All manuell über das Y'All-Menü aktualisieren. |
| |
Wir bieten einen Beta-Versionskanal für schnelles Erstellen und Testen. Wenn Sie als Entwickler Skripte schreiben, erhalten Sie beim Aktualisieren und Ändern Ihres Skripts die neueste Version des Add-Ins. Außerdem bieten wir einen Release-Kanal für kontrollierte Bereitstellung und Qualitätskontrolle. |
| |
Dadurch erhalten wir auffindbare und wiederverwendbare JSL-Dateien, sodass die Leute diese Dateistruktur der von Benutzern von Novozymes und Y'All-Benutzern übermittelten Skripte durchsehen und nachsehen können … |
| |
... Skripte finden, die einen Zweck erfüllen, der dem gewünschten nahe kommt, und sie für ihre eigenen Zwecke ändern. |
| |
Und wir fügen dem Skriptindex auch praktische Hilfsfunktionen hinzu. Sie können einen kleinen Screenshot davon sehen ... |
| |
... links und in den JSL-Editor, sodass das Build-Skript automatisch importierbare und wiederverwendbare Funktionen in den JMP-Skriptindex einfügt, mit einer netten kleinen Dokumentzeichenfolge, falls verfügbar, die beschreibt, wie diese Funktion funktioniert und wie sie verwendet wird. |
| |
Ich möchte kurz auf den Code eingehen, den wir zu Demonstrationszwecken in Y'All integriert haben. Ein Großteil des in Novozymes verwendeten Codes ist spezifisch für die Systeme von Novozymes und wäre außerhalb des Unternehmens nicht verwendbar. |
| |
Ich habe einige Skripte aus der JMP-Benutzercommunity zu Demonstrationszwecken hinzugefügt. Sie können diese behalten oder von Y'All entfernen ... |
| |
...wie gewünscht. Wir haben also ein JSON-Parser-Skript von Xan Gregg und Craige Hales. Wir haben einen Skriptassistenten zur Datenbereinigung, der auf dem JMP Discovery Summit 2020 vorgestellt wurde... |
| |
...von Jordan Hiller und Mia Stephens. Wir haben Bildtabellen-Tools von Heidi Hardner und Serkay Olmez auf dem Discovery Summit 2020. |
| |
Farbzeilenauswahl.jsl von Nick Holmes. Diagramm mit mehreren Y-Achsen von Byron Wingerd und Einrichtung der automatischen Validierung, glaube ich, auch auf dem JMP Discovery Summit vorgestellt … |
| |
... letztes Jahr von Mike Anderson, und wir haben eine Reihe importierbarer Funktionen für die Riffyn-Datenerfassungssoftware Riffyn Nexus ... |
| |
...um mit der API zu arbeiten, die von Riffyn geschrieben und mit Genehmigung aus dem JMP-Add-In der Riffyn-Tools übernommen wurde. Dieses Tool wird bei Novozymes häufig verwendet. Wir haben es integriert, damit auch andere Riffyn-Nutzer diesen Code gerne verwenden können. |
| |
Nachdem das geklärt ist, möchten wir nun mit einigen Live-Demos beginnen. Wir beginnen mit der Benutzererfahrung und zeigen, was der Benutzer bei der Arbeit mit dem Y'All-Toolkit sieht und tut. Dafür übergebe ich die Kontrolle an meinen Co-Moderator Johan. |
| |
Johan, du bist stummgeschaltet. |
| John |
Danke, Michael. |
| |
Tut mir leid. Ich möchte nur meinen Bildschirm freigeben. |
| |
Sehen Sie das? |
| Michael |
Ja. |
| John |
In Ordnung. |
| |
Wie Michael sagte, werde ich Sie durch die Benutzererfahrung bei der Verwendung von Y'All führen. |
| |
Die Nutzung von Y'All ist dreistufig. Die überwiegende Mehrheit unserer Benutzer nutzt es im Grunde wie eine integrierte JMP-Plattform. Sie... |
| |
...zeigen und klicken Sie auf die Skripte und führen Sie sie für den vorgesehenen Zweck aus. Wir haben auch eine ziemlich große Benutzergruppe, die Skripte beisteuert, um auch durchzugehen, wie ... |
| |
Sie können einfache Skripte beisteuern. Und dann haben wir eine kleine Gruppe von Entwicklern und Betreuern (??), die sich um fortgeschrittenere Aufgaben kümmern, und wir werden versuchen, auch davon ein wenig zu übernehmen. |
| |
Doch zunächst einmal die wirklich einfache Verwendung von Y'All. Die Installation ist ganz einfach: Klicken Sie einfach auf diesen Link zum Build-Artefakt (??), das in unserem GitLab-Repository erstellt wurde, laden Sie die JMP-Bearbeitungsdatei herunter und führen Sie sie mit JMP aus. |
| |
Dies hat mich nun zu einem Update veranlasst. Dieses Mal werde ich es einfach abbrechen, aber Sie können das hier in meiner Menüleiste sehen, und ich habe das Y'All-Menü ... |
| |
...Mit einigen der Demo-Skripte, die Michael erwähnt hat. Ich werde nicht näher auf diese Skripte eingehen, da sie nicht Teil des Y'All-Pakets sind, sondern nur zu Demonstrationszwecken dienen. Ich werde aber versuchen, sie zu testen und... |
| |
... ups, aktivieren, entschuldigen Sie, das war anscheinend schon aktiviert. Aktivieren Sie den Betatest, damit wir einige Dinge sofort sehen können, wenn wir mit der Erstellung beginnen. |
| |
Bei den meisten Benutzern ist der Betatest deaktiviert. Nach einer Hauptversion (alle paar Wochen) wird beim Öffnen von JMP ein Update angezeigt. Bei Benutzern mit aktiviertem Betatest kann es jedoch mehrmals täglich bis hin zu ein paar Mal pro Woche zu Aktualisierungen des Betazweigs kommen. |
| |
Das ist im Wesentlichen der Nutzen für einen normalen Benutzer. |
| |
Wenn Sie Skripte dazu beitragen möchten, gibt es mehrere Möglichkeiten. Eine Möglichkeit ist die GitLab-Benutzeroberfläche. Die Menüstruktur, die wir gerade gesehen haben, wird in der … gespiegelt. |
| |
...Verzeichnisstruktur im... |
| |
...Repository. Erstellen Sie also ein neues ... |
| |
...Menü oder Untermenü ist so einfach wie das Erstellen eines neuen Verzeichnisses. Hier, nennen wir es einfach... |
| |
..."Demos" |
| John |
und fügen Sie es hinzu. |
| John |
Und wenn wir ein Skript hinzufügen möchten, können wir es einfach in der JMP-IDE erstellen, sodass Sie es ganz einfach machen können. |
| |
Hallo Welt. |
| |
Das wird gut genug sein. Es gibt tatsächlich noch ein kleines zusätzliches Detail, nämlich die Menüelemente auf eine nette Art und Weise zu benennen, um einen Tooltip zu erhalten. Wir haben die [???] oder Code-Magie implementiert, das heißt, wenn Sie mit dem Schreiben von Kommentaren beginnen, ups. |
| |
Und du. |
| |
Menüname. |
| Michael Akerman |
Ihr alle. |
| |
Menüname. |
| John |
Y'All-Menüname |
| Michael Akerman |
Alte Gewohnheit. |
| John |
Nennen wir es „Hallo“. Dann „Y'all“-Tooltip. |
| |
Also gut, fahren wir fort und speichern das. |
| |
Wohin auch immer, ich schätze, mal sehen, Desktop. Und dann lade es hier hoch. |
| |
War es ein Test? |
| Michael Akerman |
Es war ein Skript, sollte aber in Ordnung sein. |
| John |
Jetzt... |
| |
Nachdem wir diese Datei hochgeladen haben, haben wir eine Pipeline in diesem automatisierten [unverständlich] ausgelöst. |
| |
[unverständlich] System, bei dem zuerst das Repository geklont wird und dann … |
| |
...nachdem das Add-In erstellt wurde, und dies sollte bei einem Neustart von JMP angezeigt werden, |
| John |
und Aktualisierung aller Bearbeitungen. |
| John |
Und sobald wir uns für die Aktualisierung entschieden haben, wird das Demomenü mit dem Testskript angezeigt. |
| |
Dies ist die einfachste Möglichkeit, Skripte zu JMP beizutragen. Wenn Sie mit Git vertraut sind, können Sie auch einen klassischeren Git-Workflow verwenden. Ich öffne hier einfach ein Batch-Fenster. Lassen Sie mich kurz … |
| |
Und wir können das Repository klonen. Gehen wir zurück zu … Einige der Dinge, die wir hier zeigen, sind spezifisch für die Verwendung von GitLab, das wir hier verwenden. |
| |
Aber bei anderen Remote-Repository-Codierungs- und Code-Hosting-Systemen wird es ähnlich sein. |
| |
Wir klonen nun das Repository und erhalten ein vollständiges Spiegelbild des Repositorys in unserem lokalen System. Ähnlich wie zuvor sehen wir hier die gespiegelte Verzeichnisstruktur. Versuchen wir, ein ... zu erstellen. |
| |
Ein anderes Skript. |
| |
Dafür wurde der Y'All-Menüname verbessert |
| |
Hallo. |
| |
Sagen wir, wir würden gerne, vielleicht dieses Mal... |
| |
...öffnen Sie stattdessen eine Eingabeaufforderung. |
| |
Es sagt „Hallo Welt“. |
| |
Dieses Mal können wir eine der integrierten Funktionen von JMP verwenden. Gehen wir zum Skriptindex. Wir können … |
| |
...suche nach Y'All-Dienstprogrammen. |
| |
Suchen Sie nach der Funktion „errorModal“. Hier finden Sie eine kleine Dokumentationszeichenfolge zur Verwendung. |
| |
Und es wurde bereits importiert, also ... |
| |
Y'All utils errorModal |
| John |
Und wir können einfach „Hallo Welt“ sagen. |
| John |
lass uns das sehen. |
| |
in unser Repository ... |
| |
...unter Demos. Und pushen Sie den Code. |
| |
Jetzt wird der Code in das Remote-Repository übertragen, wodurch die CICD-Pipeline ausgelöst wird, und in wenigen Sekunden ... |
| |
... Sekunden, sollte in der Lage sein, die Pipeline laufen zu sehen und ... |
| |
...bald genug. |
| |
Hat noch nicht begonnen. |
| |
Vielleicht werde ich ein bisschen ... |
| |
...ungeduldig. Los geht's. |
| |
Wenn wir also nach Updates für Y'All suchen, werden wir mit Sicherheit ein neues Update sehen. Ist es das? |
| |
Wir werden uns für die Aktualisierung entscheiden... |
| |
... das Add-In, und jetzt werden die Demos unser verbessertes „Hallo Welt“ enthalten. |
| |
Also gut, ich glaube, das war es, was ich für die Benutzerdemo hatte. |
| Michael Akerman |
Danke, Johan. Ich übernehme dann wieder die Bildschirmfreigabe, wenn das für dich in Ordnung ist. |
| John |
Ja. |
| Michael Akerman |
Und ich wollte etwas genauer hinschauen, was hinter den Kulissen passiert, wenn dieses Benutzererlebnis stattfindet. Deshalb werde ich mir diesen Code in Visual Studio Code ansehen. |
| |
Sie können sich das ansehen, wo immer Sie möchten, nachdem Sie die Zip-Datei heruntergeladen haben. Ich werde jetzt schnell in den Zen-Modus wechseln, damit es etwas besser zu erkennen ist. Los geht's. |
| |
Hier ist also diese GitLab CICD-Pipeline, die immer dann ausgeführt wird, wenn Johan dieses Skript hochgeladen hat. Also ging er in das Git-Repository … |
| |
...und er drückte auf die Plus-Schaltfläche, lud ein Skript hoch und startete damit die CICD-Pipeline. Dies ist also ein kleines Skript, das definiert, wie der Server auf diese Situation reagieren soll. |
| |
ein Vorschritt und ein Build-Schritt ... |
| |
...wo es das Git-Repository und alle darin enthaltenen Dateien, einschließlich Johans neuem Skript, in ein Arbeitsverzeichnis geklont hat, wo dies ... |
| |
...dieses Verarbeitungsmodul, genannt Runner, kann diesen Code bearbeiten. Und dann hat es ihn erstellt, also führt es diese Build-Phase aus, in der es... |
| |
CDs – wechselt das Verzeichnis – in dieses Build-Verzeichnis und führt das Python-Build-Skript aus. So einfach ist das wirklich. Es werden alle neuen Dateien in einen Arbeitsordner geklont, in diesen Ordner verschoben und das Python-Build-Skript in Python 3 ausgeführt. |
| |
Schauen wir uns das Python-Build-Skript an. Ich gehe mit gedrückter Strg-Taste dorthin. Das ist build_yall.py. |
| |
Das ist eine Menge Code. Wenn Sie sich das ansehen und eine Art Anleitung zum Durchsehen wünschen, scrollen Sie ganz nach unten zu dieser Prozessfunktion. Dort steht „def process“. |
| |
Dies ist der Hauptcode, der Y'All erstellt. Wir werden ihn Schritt für Schritt durchgehen. Wir werden uns das im Laufe der Zeit ansehen. |
| |
Als Erstes erstellt das Python-Skript eine Menühierarchie. Werfen wir einen Blick darauf. Es erstellt ein verschachteltes Python-Wörterbuch und durchsucht die Ordnerstruktur unter src/scripts. |
| |
...und zieht alle gefundenen JSL-Dateien in ein Wörterbuch, das den Namen, den Tooltip und den Speicherort der jeweiligen JSL-Datei enthält. Das verschachtelte Wörterbuch wird also im Grunde Ordner für Ordner erstellt und durchsucht. |
| |
Anschließend überprüfen wir die Befehlsnamen jeder dieser JSL-Dateien. Wir versuchen, diese Dateien zu analysieren und suchen nach dem Y'All-Menünamen und dem Y'All-Tooltip, den Johan oben im Skript eingefügt hat, um ... |
| |
...definieren Sie den Namen der Schaltfläche und den Tooltip im Add-In-Menü in JMP. Bei der Installation von Y'All wird das Y'all-Menü angezeigt. Wie diese heißen und was der Tooltip sagen soll, wenn Sie mit der Maus darüber fahren. |
| |
Wenn der magische Befehl „Y'All-Menüname“ oder „Y'All-Tooltip“ nicht gefunden werden kann, wird stattdessen einfach auf den Namen des Skripts ohne Tooltip zurückgegriffen. Aus test.jsl würde also einfach „test“ werden, wie Sie bei Johan gesehen haben. |
| |
Das Wörterbuch mit den Befehlen in den Menüs ist alphabetisch sortiert, um das Auffinden der Elemente zu erleichtern. Eine Ausnahme bildet das Hilfe- und Einstellungsmenü, das nach oben verschoben wird, damit es immer oben im Menü angezeigt wird. |
| |
Weil Hilfe und Einstellungen wichtig sind. Und dann werden alle diese Informationen in eine JMPcust-Datei geschrieben. |
| |
Eine .jmpcust-Datei ist also im Wesentlichen eine Art Markup-Sprachdokument, das für JMP definiert, wie … |
| |
Welche Menüschaltflächen es geben soll, wo das Menü selbst sein soll und was die Tooltips sein sollen, wird alles in dieser .jmpcust-Datei definiert. |
| |
Ich drücke die Strg-Taste und gehe zu „Y'All“, damit ihr sehen könnt, wie das aussieht. Es handelt sich buchstäblich um eine Reihe von Definitionen der Menüs … |
| |
...und wie die Menüs heißen und was sie enthalten. So können wir sehen, dass das Hilfe- und Einstellungsmenü die Möglichkeit enthält, nach Y'All-Updates zu suchen, den Betatestmodus ein- und auszuschalten usw. |
| |
Das Python-Skript schreibt dies also automatisch mit der Funktion „JMPCUST-Datei schreiben“. |
| |
Und dann schreiben wir unsere Add-In-Definitionsdateien. Also addin.def und version.txt. Addin.def – ich werde zu einem Beispiel davon wechseln – ist ein wenig … |
| |
... Beschreibungsteil, den JMP verwendet, um das Add-In zu identifizieren und die Versionsnummer sowie die mindestens unterstützte JMP-Version zu finden. |
| |
Wir sagen 12. Das ist eine eher willkürliche Entscheidung unsererseits, um uns um Dinge vor 12 nicht kümmern zu müssen. Sie können dies im Python-Code ändern, wenn Sie selbst damit arbeiten. Wie Sie sehen, ist hier auch die Add-In-Version definiert. |
| |
Und wir schreiben dies in eine Datei namens version.txt, sodass dieselbe Ganzzahl, die Sie gerade in addin.def gesehen haben, auch in version.txt landet. |
| |
Der Grund dafür ist, dass es sich um eine schöne kleine Datei handelt, die wir remote lesen können. Wir können sie in JMP über HTTP auf dem Server öffnen … |
| |
...und werfen Sie einen kurzen Blick auf die Versionsnummer in der Datei version.txt, um sie mit Ihrer aktuellen Version zu vergleichen. Wenn unsere aktuell installierte Version also nicht mit der Datei version.txt übereinstimmt... |
| |
...das bedeutet, dass wir aktualisieren müssen oder zumindest können. Die von uns verwendete Versionsnummer ist das Datum und die Uhrzeit der Ausführung in der UTC-Zeitzone. |
| |
Und wir konvertieren das im Wesentlichen in Sekunden seit 1970. Es handelt sich also um eine Ganzzahl, die wieder in ein Datums-/Uhrzeitformat konvertiert werden kann. |
| |
So können wir die beiden Zahlen ganzzahlig vergleichen, was sehr praktisch ist. Wir können leicht erkennen, ob sie größer oder kleiner sind, und das Ergebnis wieder in ein Datum umwandeln. Das ist für uns eine sehr effiziente Möglichkeit, die Versionsnummer in JMP zu speichern. |
| |
Endlich. |
| |
Als Nächstes erstellen wir – nachdem wir die Add-In-Depth-Dateien geschrieben haben – ein Skript für benutzerdefinierte Funktionen. Das ist etwas seltsam und schwer zu erklären. Ich werde mein Bestes tun, es schnell und prägnant zu erklären. |
| |
JMP bietet zwei Möglichkeiten, benutzerdefinierte Funktionen zu definieren. Eine davon ist die Verwendung einer Funktion namens function in der JMP-Skriptsprache. Was diese bewirkt – ich wechsle hier zu utils.jsl und dem Unterverzeichnis „importables“ von Y'All. |
| |
Funktion definiert eine benutzerdefinierte Funktion, die von anderen Orten aus verwendet und aufgerufen werden kann. Dies lässt sich mit einem Namespace definieren. In diesem Fall haben wir den Namespace „Y'All utils...“ |
| |
... mit dem Funktionsnamen „recode if“. Und es nimmt diese Argumente, und wir haben diesen Doc-String und diesen Funktionscode hier geschrieben. |
| |
Die zweite Möglichkeit, eine benutzerdefinierte Funktion in JSL zu schreiben, ist die neue benutzerdefinierte Funktion function, die nicht dasselbe ist wie function. Ich glaube, diese wurde in JMP 14 hinzugefügt. |
| |
Die neue benutzerdefinierte Funktion fügt die Funktion dem JMP-Skriptindex und der JSL-IDE hinzu, um die Arbeit mit dieser Funktion zu vereinfachen und sie mit Dokumentation an anderen Stellen wiederzuverwenden. |
| |
Der Vorteil der Funktion besteht also darin, dass sie bis zurück zu – ich weiß nicht einmal, zu welcher Version von JMP – funktioniert ... |
| |
...bevor ich JMP verwendet habe. Der Vorteil der neuen benutzerdefinierten Funktion ist, dass sie etwas robuster ist. Sie erhalten die Dokumentation und den JMP-Skriptindex sowie die Möglichkeit, sie in der JSL-IDE farblich hervorzuheben und ... |
| |
...Tipps dazu, während Sie Code schreiben. Wir mögen also neue benutzerdefinierte Funktionen, möchten aber JMP vor JMP 14 unterstützen. Also die Build-Skripte ... |
| |
...hier wird im Wesentlichen das Verzeichnis „Importables“ analysiert und nach Funktionsdefinitionen gesucht, die mit dieser Funktion, Funktion, Funktion übereinstimmen … |
| |
...in JSL mit einem Doc-String. Es wird versucht, diesen Doc-String zwischen den Schrägstrich- und Sternchen-Markierungen zu analysieren und in eine neue benutzerdefinierte Funktion zu integrieren. Hier sehen Sie ein Beispiel. |
| |
Wir nehmen diese Recode-If-Funktion und schreiben sie nun automatisch in eine neue benutzerdefinierte Funktion im Y'All-Utils-Namespace namens „Recode-If“ um. |
| |
Und wir haben einen Prototyp, eine Beschreibung und eine Skriptindex-Kategorie, in der all das angezeigt wird. JMP-Entwicklern steht das alles automatisch zur Verfügung. Sie können also Dinge mit der älteren Funktion in JSL schreiben und erhalten trotzdem diesen JMP-Skriptindex. |
| |
...Fähigkeit, indem Sie das Y'All-Build-Skript automatisch verwenden. Scrollen Sie hier zurück zu meinem Prozesscode. |
| |
Nachdem all dies geschrieben ist, erstellen wir nun das Add-In. JMP-Add-Ins verwenden ein modifiziertes Zip-Format. Wir packen es also mit Python 3 zusammen, benennen es in YALL.jmpaddin um und es ist nun in unserem Arbeitsverzeichnis verfügbar, in dem der CICD-Runner arbeitet. |
| |
Der letzte Schritt dieser CICD-Pipeline nach Abschluss dieses Build-Skripts besteht darin, in dieses Arbeitsverzeichnis zu wechseln und Artefakte hochzuladen. |
| |
Build-Artefakte sind ein GitLab CICD-Konzept, bei dem wir diese beiden Dateien YALL.jmpaddin und version.txt nehmen, sie auf den Server hochladen und sie mit einer bestimmten URL verfügbar machen. |
| |
Damit ist die URL immer konsistent und an den Zweig gebunden, auf dem wir dies in GitLab ausführen, also ob wir die Betaversion oder die Hauptversion verwenden. |
| |
Nun, in JMP – ich werde rüberspringen, ha! … |
| |
...zu autoUpgrade.jsl. Hier prüfen wir, ob neue Versionen des Add-Ins verfügbar sind. Wenn JMP geladen wird, führt Y'All dieses Auto-Upgrade-Skript aus. |
| |
...das im GitLab-Repository nach diesen neuen Versionen sucht. Sie können hier sehen, dass wir unser Beta-Flag laden, egal ob im Beta- oder Hauptmodus. |
| |
Und wir suchen im spezifischen Kanal nach diesem Modus. Also ziehen wir ... |
| |
...von einer bestimmten URL basierend auf der Kanalauswahl. Im Beta-Modus wird der Beta-Kanal durchsucht. Im Hauptmodus wird der Hauptkanal durchsucht. Wir suchen nach der Datei YALL.jmpaddin und der Datei version.txt |
| Michael Akerman |
Und jetzt vergleichen wir diese Versionsnummer mit der installierten Versionsnummer. Wenn sie abweicht, fordern wir ein Update vom Benutzer an. Es öffnet sich ein Dialogfeld, das Sie auf Johans Bildschirm gesehen haben … |
| Michael Akerman |
...das sie fragt, ob sie das Update möchten und ihnen die Versionsnummer mitteilt. Und sie können sich dafür entscheiden oder nicht. |
| |
Also. |
| |
Das ist eigentlich schon alles. Alles geschieht im Hintergrund, für den Benutzer. Er lädt ein Skript über die GitLab-Benutzeroberfläche hoch, indem er den Plus-Button verwendet, um eine Datei hochzuladen und das neue … zu erstellen. |
| |
... JMP-Add-In, dieses Y'All-JMP-Add-In, und stellen Sie es anderen Benutzern zur Verfügung, die mit demselben Repository verbunden sind. |
| |
All dies geschieht im Hintergrund. Für den Benutzer ist es so einfach wie das Speichern eines JMP-Skripts vom roten Hotspot in JMP und das Hochladen in das GitLab-Repository. |
| |
Deshalb wollte ich die Funktionen von Y'All noch einmal zusammenfassen. |
| |
Wir haben eine sehr einfache Skriptbereitstellung. Wie Sie gesehen haben, steht Ihnen eine übersichtliche Benutzeroberfläche zum Hochladen von Dateien, Hochladen von JSL-Skripten und Bereitstellen dieser zur Verfügung. |
| |
Und damit einher geht eine automatische Versionskontrolle und Code-Archivierung. Da dies alles über ein zentrales GitLab-Repository auf Novozymes-Servern geschieht, wird alles verfolgt und gespeichert … |
| |
...auf Dauer. Automatische Updates, damit Entwickler ihren Benutzern ganz einfach Skripte zur Verfügung stellen können und diese immer über die aktuellste Version verfügen ... |
| |
...der Skripte, die einwandfrei funktionieren und einer Qualitätskontrolle unterzogen werden. Und wir haben Beta- und Release-Kanäle. |
| |
Der Beta-Kanal wird im Wesentlichen sofort erstellt, ist innerhalb weniger Sekunden nach Erscheinen eines neuen Skripts verfügbar und wird regelmäßig aktualisiert. Der Release-Kanal wird eine langsamere, kontrollierte Release-Struktur aufweisen. Ich wollte kurz darauf eingehen, wie wir das erreichen. |
| |
Hier sehen Sie die Branch-Struktur in unserem GitLab-Repository. Wir haben einen Beta-Branch mit vielen Updates. Wir haben einen Release-Branch. Wir haben einen Haupt-Branch. Was wir bei Novozymes tun – das liegt ganz bei den Nutzern – |
| Michael Akerman |
...wir nehmen diesen Beta-Branch, wenn er sich in einem Zustand befindet, in dem wir ihn veröffentlichen möchten. Wir öffnen einen Merge-Request zwischen Beta und Release und verschieben ihn in den Release-Branch. Dadurch wird der Release-Branch im Wesentlichen eingefroren... |
| Michael Akerman |
... bei der Codeversion, bei der wir das gemacht haben, und das sperrt den Code auf diesem Release-Zweig. |
| |
Die Beta kann sich noch ändern. Benutzer können weiterhin Skripte hinzufügen und ändern. Die Veröffentlichung ist jedoch eingefroren. Wir führen eine Qualitätskontrolle durch, und wenn wir bereit sind und mit dem Stand zufrieden sind … |
| |
... wir geben es für den Hauptzweig frei und führen es dort zusammen. Jetzt ist es für die Benutzer des Hauptzweigs von Y'All verfügbar. |
| |
Wir haben auffindbaren Code. Alles ist in einer Dateistruktur in einem zentralen Repository verfügbar. Entwickler können die Skripte durchsehen und... |
| |
...finden Sie ähnliche, auf denen Sie aufbauen und die Sie verbessern können. Außerdem haben wir Dienstprogrammfunktionen, die automatisch zum Skriptindex hinzugefügt werden und Entwicklern automatisch zur Verfügung stehen, sodass sie Codeblöcke wie diesen wiederverwenden und neu codieren können, wenn ... |
| |
...oder einige Datenbankabfragen und ähnliches, die wir ebenfalls als Demonstrationen beigefügt haben. Wenn Sie sich also das Y'All ansehen ... |
| |
...Namespace im JMP-Skriptindex mit installiertem Y'All. Sie werden sehen, dass wir einige Postgres-Datenbankabfragen und Postgres-Datenbanktools integriert haben, um zu demonstrieren, wie wir diese ebenfalls verwenden. |
| |
All dies geschieht, indem in JMP mit einem vom Benutzer erstellten JSL-Skript begonnen wird, das er mit jemand anderem in der Y'All-Benutzerbasis teilen möchte. |
| |
Sie gehen in GitLab. Und laden das in der Benutzeroberfläche in ein Unterverzeichnis hoch, das dem Menüspeicherort entspricht, an dem sie es in Y'All haben möchten. Wenn sie es also in Demos, Demos-Tests haben möchten ... |
| |
...sie würden das in das Unterverzeichnis src slash scripts slash demos slash demos legen. Sobald sie das tun, wird eine automatische Build-Pipeline ausgelöst, die das Python-Build-Skript startet, das Strukturen analysiert und das Add-on erstellt.... |
| |
...das Add-In und lädt es erneut auf den GitLab-Server hoch. JMP findet dann das neue Update und bietet automatisch an, es herunterzuladen und das Y'All-Add-In in JMP zu aktualisieren. Das Skript steht den Benutzern des Beta-Kanals innerhalb weniger Sekunden zur Verfügung. |
| |
Wir hoffen, Sie sind von Y'All begeistert. Wir hoffen, Sie sind daran interessiert, Y'All selbst oder in Ihrer Organisation zu nutzen. Falls ja, möchten wir Ihnen einige Tipps für den Einstieg geben. |
| |
Die Zip-Datei, die in der JMP-Benutzer-Community veröffentlicht wurde (wenn Sie sich dieses Video in der JMP-Benutzer-Community ansehen – sie sollte sich auf derselben Seite befinden) enthält alle notwendigen Elemente für den Einstieg. Einige davon müssen angepasst werden. Bei anderen handelt es sich um Democode, mit dem Sie experimentieren können. |
| |
Laden Sie es gerne herunter und schauen Sie es sich an. Das Python-Build-Skript in dieser Zip-Datei basiert auf nativen Python-3-Bibliotheken. Auf unserem Build-System ist außer Python nichts installiert. Es sollte auf jeder Standard-Python-3-Installation laufen. |
| |
Die zentrale Repository-Speicherung und Automatisierung, die wir mit GitLab für CICD für kontinuierliche Integration und Bereitstellung durchführen, ist über andere Anbieter verfügbar. GitLab, GitHub, Azure und AWS verfügen alle über ähnliche Implementierungen. |
| |
Es gibt ein riesiges Ökosystem an Optionen, daher sind die Implementierungsdetails auf Ihr Unternehmen zugeschnitten. |
| |
Der unglückliche Nebeneffekt davon ist, dass die CICD-Pipeline-Datei gitlab-ci.yml geändert werden muss, wenn Sie diese automatisiert auf Ihren eigenen Systemen ausführen möchten. So funktioniert sie auf Ihren Systemen nicht, es sei denn, Sie sind Mitarbeiter von Novozymes. |
| |
Alle Verbindungszeichenfolgen in unseren Dienstprogrammfunktionen, die unsere interne Betadatenbank widerspiegelten, wurden durch die ODBC-Unterstrich-Verbindungszeichenfolge „my underscore“ ersetzt. |
| |
Wenn Sie eine dieser Funktionen verwenden möchten, müssen Sie in den Code in den Arbeitsverzeichnissen gehen und diese Zeichenfolgen so ändern, dass sie Ihre Datenbank widerspiegeln. |
| |
Wir hoffen, dass ihr euch auf Y'All freut und Interesse an Y'All habt. Bei Feedback, Fragen oder Kommentaren könnt ihr euch gerne an mich oder Johan wenden ... |
| |
...mit ihnen. Wir freuen uns auch über Ihre Beiträge, wenn Sie diesen Code verbessern oder dieses Toolkit auf interessante Weise nutzen. Vielen Dank. |
| Christy Spanien |
Okay, das war großartig. |
| Michael Akerman |
Zeit. |
| Christy Spanien |
Ziemlich perfekt, ja, ja. |
| Michael Akerman |
Tut es. |
| |
Es spielt keine Rolle, dass Johan gesagt hat, dass kein JMP will. |
| Christy Spanien |
Du weisst. |
| Michael Akerman |
Ich habe das Gefühl, dass die meisten Leute es wahrscheinlich nicht verstehen werden. |
| Christy Spanien |
Als neues Wort gefällt es mir. |
| John |
Uns wurde gesagt, dass wir das nicht verwenden sollten, also mussten wir das Ding umbenennen und II wurde aus dem Konzept gebracht, weil ich die Version, die ich hatte, nicht gelöscht hatte. |
| |
Zuvor installiert. |
| |
Als ich merkte, dass ich bereits in der Beta-Phase war, hat mich das irgendwie aus der Bahn geworfen und dann habe ich einfach … |
| |
wie auch immer. |
| Christy Spanien |
ja, ich denke, das ist in Ordnung, aber das war jetzt großartig und sehr interessant. Ich denke, die Leute werden es lieben, das zu sehen, also schätzen wir es wirklich, dass ihr mitmacht. |
| |
Wie gesagt, ich werde die Videos hochladen, damit Jeff sie bearbeiten kann. Ich bin nicht sicher, wann das fertig sein wird, aber. |
| |
Wie dem auch sei, ihr werdet im Oktober alles sehen, aber wenn sich etwas ergibt, werde ich es euch auf jeden Fall mitteilen. |
| |
nochmals vielen Dank und wenn. |
| John |
Sie haben eine neue Generation von Funktionen im Vergleich zum normalen JMP. |
| Michael Akerman |
Dass Sie sagen, Sie seien woanders, ist einfach so. |
| |
Ja. |
| John |
Y'All-Verzeichnis. |
| Christy Spanien |
Ja, vielen Dank, ich weiß, dass es so ist. |
| |
Das ist eine Menge Arbeit, die wir zu schätzen wissen. |
| Michael Akerman |
Gerne. |
| |
Danke für. |
| Michael Akerman |
sich schnell nach dem nächsten bewegen. |
| Christy Spanien |
Ja, Mann, es war natürlich toll, euch beide kennenzulernen und. |
| |
Hoffentlich beim nächsten Mal. |
| |
Zumindest mit Michael wird es persönlich sein, Johan, ich würde dich auch gerne dort treffen, aber. |
| |
Ja. |
| Michael Akerman |
Sie wissen immer, ob er, insbesondere wenn er eine Präsentation hält, bei jedem Gipfeltreffen oder bei etwas in der Vergangenheit persönlich anwesend war, es war dieselbe Woche, in der in Raleigh alles geöffnet war, sodass Sie eine ganze Woche lang daran teilnehmen können. |
| |
Computerkonferenz. |
| |
und sehen Sie eine Menge lokaler Mitarbeiter. |
| John |
Dann ist es vielleicht einfacher, über das Reisebudget zu streiten, ja. |
| Christy Spanien |
Zwei für eins, richtig. |
| |
Ja. |
| John |
In Ordnung. |
| Christy Spanien |
Okay, Leute, habt einen tollen Restmontag und eine tolle Woche, danke. |
| |
Auch von Ihnen kann man bald wieder sprechen. |
| John |
Tschüss. |
| |
Tschüss. |