Lautsprecher
|
Transkript
|
| Michael Akermann |
Christie. |
| Christy Spanien |
Guten Morgen, wie geht es dir Michael. |
| Michael Akermann |
Wie geht es dir. |
| Christy Spanien |
Lassen Sie mich meine E-Mail schließen, damit ich mich nicht erhalte. |
| Michael Akermann |
Ja, ich bin dabei, meine Computereinstellungen zu optimieren, damit nichts, nichts pingt. |
| Christy Spanien |
wissen, was ich auf meine Symbolleiste geklickt habe Bin ich. |
| |
Denke ich habe alles. |
| |
wie ist dein Wochenende. |
| Michael Akermann |
Es war gut, wie geht es dir, wie ist dein Wochenende. |
| |
Gut. |
| Christy Spanien |
Du lebst also im Dunkeln. |
| Michael Akermann |
Helen wartet auf uns. |
| |
Okay, ja, so nah am Hauptquartier würde ich zum eigentlichen Entdeckungsgipfel gehen, das war es. |
| |
persönlich vor Ort anwesend sein. |
| |
Das war auch enttäuschend, aber. |
| |
ja jo auf hey. |
| Christy Spanien |
Hallo, guten Morgen, wie geht es dir. |
| Johan |
Gutes tun. |
| Michael Akermann |
Ich muss eine gelehrte Mauer hinter mir errichten, wie du sie da hast, Johan. |
| Johan |
Ich habe Klick gemacht. |
| |
Dieses und Dannys Bücher drin, also wirst du es nicht erkennen können. |
| Christy Spanien |
sieht gut aus. |
| |
Ich entschuldige mich für die Verwechslung letzte Woche, aber. |
| |
Ich freue mich, euch beide virtuell treffen zu können. |
| |
Da ich Teil des Premier-Teams bin, das Nova-Zonen unterstützt, hätten sie mich sowieso nicht euch zuordnen sollen. |
| |
mal sehen, ich muss noch ein paar dinge durchmachen ihr beide habt eure anzeige auf 19 2010 eingestellt. |
| |
Das tue ich. |
| Johan |
Lassen Sie mich das noch einmal überprüfen. |
| Christy Spanien |
genial. |
| |
und |
| |
Wenn Ihr Sound gut ist, würde ich sagen, dass niemand Logos trägt. |
| |
Stellen Sie sicher, dass keine Elemente sichtbar sind, die eine Urheberrechtsverletzung verursachen könnten. Ich weiß nicht, ob Ihre Bücher dort ein Problem darstellen würden. |
| |
Ja, lass uns das tun, nur für den Fall. |
| Michael Akermann |
Einer von ihnen ist einer von ihnen, der von einem ehemaligen Hauptredner des JMP Discovery Summit gebildet wurde. |
| Johan |
Wer ist. |
| Michael Akermann |
Oh, ich habe nicht, er ist gekommen und hat über dieses Ding-Erklärer gesprochen. |
| Christy Spanien |
Oh ja, das Buch habe ich. |
| Michael Akermann |
ja Ja. |
| Johan |
Ich nicht. |
| |
Ich habe alle aus der E-Mail gespeichert, aber ich kann einfach fortfahren und das aus der E-Mail ziehen. |
| Michael Akermann |
Ich bin damit, dass ich meine Webcam an einem Arm habe, wo ich sie wie auf mich zu und zurück und auf und ab und links und rechts bewegen kann, als ob ich ewig daran herumfummeln könnte, weil es so ist, als könnte ich sie bewegen. |
| Christy Spanien |
Ach das ist eine gute Idee. |
| |
nie, nie sah mich an der richtigen Stelle, ja. |
| |
Und dann treffen alle alle ihre Apps-Aussichten in jedem Ich bin-Team. |
| |
so wie das. |
| Michael Akermann |
Enge Teams sollten keine Benachrichtigungen erhalten. |
| Christy Spanien |
Und Sie haben 30 Minuten. Ist das richtig? |
| Michael Akermann |
das ist mein verständnis ja. |
| Christy Spanien |
Und werden Sie es sein. |
| |
Idealerweise möchten wir einfach anfangen und direkt durchgehen. |
| |
Möchten Sie bei jedem Übergang eine Testfreigabe Ihres Bildschirms durchführen? |
| Michael Akermann |
Ihr, weil wir irgendwann zwischen meinem Bildschirm und Ihnen auf dem Bildschirm wechseln werden, also lassen Sie mich zuerst meinen Bildschirm freigeben. |
| |
muss keinen Ton teilen. |
| |
So. |
| Michael Akermann |
lass uns wieder aufstehen, um hier zu beginnen. |
| Christy Spanien |
hallo alex richtig. |
| |
Okay. |
| Michael Akermann |
Du bist also dabei, wir waren tat es tat es tat es tat es tat das und dann wurden wir an dich übergeben. |
| Johan |
Ja, werden wir die Bildschirmfreigabe selbst kontrollieren, können wir den Produzententyp für uns verwenden. |
| Christy Spanien |
Das wirst du tun, ja. |
| |
Oh, dein Hintergrund sieht toll aus. |
| Johan |
Vielen Dank. |
| Christy Spanien |
Das sollte ich haben. |
| Michael Akermann |
Dass ich mehr sein kann, können wir einheitlicher sein, denke ich. |
| Johan |
Nein, wir sollten unsere eigene Person haben, die ich nicht hatte. |
| |
Jawohl. |
| Christy Spanien |
Ja, kommen wir zu Michael. |
| Johan |
Ja. |
| |
Ich denke, ich werde nicht viel auf dem Bildschirm verlinken, den Sie tun werden, die meiste Zeit werden wir reden und dann werden wir die Bildschirmfreigabe und dann machen. |
| Michael Akermann |
Ich bin mir nicht sicher, was wir sehen werden, während die Bildschirme geteilt werden. |
| Christy Spanien |
Also immer, wenn ich die Aufnahmen zurückbekomme. |
| |
Ich bekomme vier verschiedene. |
| |
Versionen gibt es eine, die Sie einschließt, wenn sie es nicht tut, und ich bin nicht sicher, ob Jeff Perkinson alles bearbeiten wird, also weiß ich nicht, welchen Hügel er wählen wird. |
| |
Ich würde denken, dass er dem Redner das zeigen will. |
| Michael Akermann |
Ich sehe auf dem Bildschirm, denke ich. |
| |
Sie können die Symbole übrigens einfach mit einem Rechtsklick deaktivieren. |
| Johan |
Auf verwalten, um Fenster zu verwechseln, sieht es aus. |
| Christy Spanien |
Nun, ist das wirklich so schwer zu tun. |
| Johan |
Oh ja. |
| |
Also, was Rechtsklick und Ansicht und. |
| Michael Akermann |
ja er fand es okay cool. |
| |
Denn ich weiß nicht mehr genau, wo a. |
| |
Kerl, ich habe meine Symbole nie auf meinem Desktop aktiviert, ich lasse nur Sachen darauf installieren, also wenn ich das jemals einschalte, ist es genau so. |
| Johan |
Ja. |
| Christy Spanien |
Also, Michael, wenn du fertig bist, sagst du einfach okay, zeig es dir auf dem Bildschirm auf deinem Bildschirm und dann gehen wir einfach von dort aus, wir werden nicht wirklich eine Pause machen, mit anderen Worten ja. |
| Michael Akermann |
Und du bekommst einen Gelbfilter auf mein Zimmer. |
| Christy Spanien |
Oh, Sie haben ein rotes Licht, das Sie mögen. |
| Michael Akermann |
macht mich zwar blau, aber ja. |
| Christy Spanien |
Ich habe noch nie in einen davon investiert, den ich nicht habe. Mein Schreibtisch ist so klein und ich habe hier viel Platz. |
| Michael Akermann |
Ja, ich bin früh unabhängig geworden, mein Chef hat sich ständig über meine Mikrofon- und Kameraqualität beschwert, also bin ich wie in Ordnung, Mann, du kaufst mir eine neue Mikrofonkamera. |
| Christy Spanien |
Gut für dich, ich habe dieses neue Headset nicht bekommen. |
| Michael Akermann |
Lass mich meine Tür ganz schnell schließen. |
| Christy Spanien |
Oh okay, das ist wichtig, wenn du pelzige Freunde oder Kinder hast, die herumlaufen. |
| Johan |
ja gut weder so gut ja ich werde die verschlossene tür aufmachen. |
| Christy Spanien |
und Johan Wo befinden Sie sich? |
| Johan |
Auf das Unternehmen. |
| Christy Spanien |
als meine oh schön. |
| |
voll sein. |
| Johan |
Oh, du warst. |
| Christy Spanien |
Ich habe eine Freundin, die verheiratet ist. |
| |
Ein Typ aus Kopenhagen kommt aus Dänemark, und so sind wir zu Besuch dort hingefahren. |
| |
Ach ja, schön. |
| Christy Spanien |
Okay, wenn ich Sie dazu bringen kann, Ihren Namen, Firma und Ihren abstrakten Titel anzugeben, wäre das großartig. |
| |
Und dies ist nicht für die Aufnahme. Dies ist nur für Jeff-Zwecke, um zu identifizieren, was Sie sind. |
| Michael Akermann |
name ist sicher, mein name ist Michael inkrement ich bin bei novozymes der abstrakte titel ist so einfach wie ein foto hochzuladen. |
| |
etwas zu verpackung und rechnung habe ich das genaue vergessen. |
| Christy Spanien |
das ist okay. |
| Michael Akermann |
Ihr. |
| Johan |
Und mein Name ist eine UNO. |
| |
Auch kein Sinn. |
| Christy Spanien |
Und wir werden dies aufzeichnen und auf der Discovery Summit Conference veröffentlichen, und es wird zur öffentlichen Ansicht verfügbar sein, wenn Sie die Erlaubnis für diese Aufzeichnung in dieser Verwendung erhalten. |
| Michael Akermann |
Wir tun ich. |
| |
Wenn du gehst. |
| Johan |
Oh ja, tut mir leid, ich war nur mein Verstand. |
| Christy Spanien |
Okay, also. |
| |
Lass mich meine Kamera vorher für dich ausschalten. |
| |
Niemand will mich sehen. |
| Christy Spanien |
Und ich denke, wir sind bereit, seid ihr bereit? |
| Michael Akermann |
Ich denke, wir beginnen mit meinem Bildschirm. |
| Christy Spanien |
Niemals bist du bereit, mal sehen, die Zeit ist gekommen. |
| |
909 also technisch hast du bis 939 aber. |
| |
Gib oder nimm eine Sicherung in Ordnung, also wann immer du bereit bist. |
| Michael Akermann |
Hallo zusammen und willkommen zu unserem heutigen Talk über "Y'All". Dies ist ein Add-In-Paketmanager, den wir in Novozymes integriert haben, um die gemeinsame Nutzung von JMP-Add-Ins sowie die Aktualisierung und Wartung von Skripten in unserem globalen Unternehmen zu automatisieren. Ich bin Michael Akerman und mein Co-Moderator ist Johan Olsen. |
| |
Heute möchten wir mit Ihnen über Y'All sprechen und Ihnen dieses Toolkit vorstellen, damit jeder von Ihnen, der sich dafür interessiert,... |
| |
...Wer es für den persönlichen Gebrauch oder für Ihre Organisation verwenden möchte, weiß, wie Sie dieses Toolkit erhalten und mit der Verwendung beginnen können und was es ist. Also fangen wir damit an, darüber zu sprechen, wer wir sind und warum wir Y'All gebaut haben... |
| |
...die wichtigsten Funktionen von Y'All sowie die Benutzererfahrung. Johan wird also durchgehen, was ein Benutzer sieht, wenn er dieses Toolkit verwendet. |
| |
Wir werden hinter die Kulissen schauen, was hinter dem Y'All-Toolkit passiert, wenn ein Benutzer damit interagiert, und dann werden wir eine Zusammenfassung und Zusammenfassung machen und einige Tipps zur Einführung von Y'All in Ihrem Unternehmen haben, wenn Sie es finden für Ihre Zwecke interessant. |
| |
Wir sind Data Scientists bei einem Unternehmen namens Novozymes. Mein Co-Moderator ist Johan Olsen. Er ist Data Scientist in der Anwendungsforschung für landwirtschaftliche und industrielle Biolösungen. |
| |
Ich bin Senior Data Scientist in derselben Gruppe in Novozymes. Wir haben hier unsere Kontaktinformationen angegeben, wenn Sie Y'All oder etwas anderes erreichen möchten. Bitte wenden Sie sich gerne an uns. |
| |
Johans E-Mail-Adresse ist jpko@novozymes.com und er ist JPKO in der JMP User Community. Ich bin mxak@novozymes.com. |
| |
Michael Akerman Michael mxak in der JMP-Benutzer-Community, also zögern Sie nicht, uns zu kontaktieren, wenn Sie Fragen, Nachverfolgung oder Kommentare zu Y'All oder Möglichkeiten zur Verbesserung dessen haben, was wir gebaut haben und womit wir arbeiten . |
| |
Wir arbeiten für Novozymes. Novozymes ist ein globales Biotechnologieunternehmen. Wir bauen biologische Lösungen für Nachhaltigkeit... |
| |
... und verbessern die Leistung und senken die Kosten für alle Arten von Branchen auf der ganzen Welt. So unterstützen wir Landwirtschaft und Biokraftstoffe, Haushaltspflege, Lebensmittel und Getränke, Tiergesundheit und viele weitere Branchen... |
| |
...mit diesen biologischen Lösungen. Wir haben weltweit mehr als 6000 Mitarbeiter und in dieser Gruppe von Mitarbeitern haben wir Hunderte von JMP-Benutzern. |
| |
Und ich erwähne das, weil wir eine wirklich große Kohorte von JMP-Benutzern haben, die wir unterstützen und mit denen wir zusammenarbeiten, die alle mit JMP arbeiten und Dinge in JMP entwickeln, und das ist wirklich die Inspiration für Y'All. |
| |
Unser Unternehmenszweck lautet: "Gemeinsam finden wir biologische Antworten für ein besseres Leben in einer wachsenden Welt – denken wir morgen neu." |
| |
Wie bereits erwähnt, haben wir in Novozymes eine sehr große Kohorte von JMP-Benutzern. |
| |
Daher wollten wir ihnen die Arbeit mit JMP-Skripten und JMP-Add-Ins erleichtern und ihren Code wiederverwendbarer und leichter auffindbar machen. |
| |
Als erstes wollten wir die Aktualisierung einfach machen. Wir hatten beobachtet, dass die Leute bei Novozymes Skripte hin und her schickten. |
| |
Es wurden JSL-Dateien auf persönlichen Netzlaufwerken gesendet. Einige von ihnen legten es auf Flash-Laufwerke und reichten sie herum. Wir wollten die Verteilung neuer und aktualisierter JMP-Skripte so mühelos wie möglich gestalten. |
| |
Wir wollten ein Archiv erstellen, das den Code sichert. Wir haben viele JMP-Benutzer, all diese Arbeit stellt einen großen Wert für das Unternehmen dar. |
| |
Also ein zentrales Repository, in dem all dieser wertvolle Code gespeichert, gesichert und archiviert wird. |
| |
Und wir wollten Versionen im Laufe der Zeit verfolgen. Wenn sich Skripte ändern, wenn sie verbessert werden, wollten wir diese Änderungen sehen und diese Änderungen im Laufe der Zeit verfolgen können. |
| |
Und wir wollten es einfach machen, Skripte zu entdecken und wiederzuverwenden. Wenn Sie also ein JMP-Entwickler sind... |
| |
...wenn Sie ein Entwickler sind und JSL-Skripte schreiben, können Sie relevante Skripte finden, die von anderen Entwicklern geschrieben wurden, und diese verbessern oder... |
| |
Bauen Sie auf ihnen auf, für alle Bedürfnisse, die Sie haben. Machen Sie es sich also bequem, diese Skripts zu verwenden und daraus aufzubauen, und machen Sie es auch bequem, Funktionen in JSL zu teilen, zu importieren und wiederzuverwenden, die andere Mitglieder der Organisation nützlich finden würden. |
| |
Um dies zu verwirklichen, haben wir drei Komponenten zusammengestellt. Wir haben ein Python-Build-Skript, wir haben eine GitLab-Schnittstelle und wir haben 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 auch die Add-In-Definitionsdateien. Es generiert ein importiertes Skript für benutzerdefinierte Funktionen, das alle diese wiederverwendbaren Dienstprogrammfunktionen zum JMP-Skriptindex und zur JMP-IDE hinzufügt, und komprimiert alles in eine .jmpaddin-Datei zur Verwendung durch Benutzer. |
| |
GitLab ist unsere Schnittstelle für Benutzer, um mit Add-In-Skripten zu interagieren und mit dem Add-In-Builder selbst zu arbeiten. GitLab ist die Open-Source-Alternative oder der Konkurrent von GitHub. |
| |
Wir haben dies intern in Novozymes veröffentlicht und es bietet eine wirklich einfache Point-and-Click-Benutzeroberfläche zum Hochladen von Skripten in dieses zentrale Repository... |
| |
...wo all diese Skripte gespeichert sind und der Build tatsächlich stattfindet. |
| |
Und diese CICD-Pipeline, die für Continuous Integration Continuous Deployment steht, führt automatisch das Python-Build-Skript aus und verteilt das Add-In sowohl über die Release- als auch über die Beta-Versionskanäle, sodass Benutzer entweder... |
| |
...ständig qualitätsgeprüfte Releases, oder wenn sie Entwickler sind, können sie häufig schnelle Releases mit den neuesten Versionen jedes Skripts erhalten, das in diesem Toolkit verwendet wird. |
| |
Und schließlich haben wir die JSL-Lade- und Aktualisierungsskripte. Wenn JMP geöffnet wird und dieses Add-In geladen wird,... |
| |
...sie prüfen können, es wird auf dem ausgewählten Kanal nach neuen Versionen gesucht – den Beta- oder Release-Kanälen – und bietet an, dieses Add-In-Paket herunterzuladen und zu aktualisieren. Dadurch werden auch die benutzerdefinierten Funktionen in den Scripting-Index importiert. |
| |
Wir haben super einfache Skriptbeiträge in Y'All von jedem JMP-Benutzer. Es ist so einfach wie das Hochladen eines Fotos auf Social Media. |
| |
Du gehst in die Benutzeroberfläche, klickst auf den Upload-Button und in Sekunden ist es im Beta-Kanal von Y'All verfügbar. |
| |
Wir haben eine automatische Versionskontrolle und Speicherung dieser Skripte, ein automatisches oder manuelles JMP-Add-In-Update. Wenn also JMP geöffnet wird, bietet Y'All an, ... |
| |
...oder ein Benutzer kann Y'All manuell über das Y'All-Menü aktualisieren. |
| |
Wir haben einen Betaversionskanal für schnelles Erstellen und Testen, wenn Sie ein Entwickler sind, der Skripts schreibt, um die neueste Version des Add-Ins zu erhalten, wenn Sie Ihr Skript aktualisieren und Änderungen daran vornehmen. Und wir haben einen Release-Kanal für kontrollierte Bereitstellung und Qualitätskontrolle. |
| |
Dadurch erhalten wir auffindbare und wiederverwendbare JSL-Dateien, sodass die Leute diese Dateistruktur von Skripten durchsuchen können, die von Benutzern von Novozymes, Y'All-Benutzern eingereicht wurden, und einsehen und sehen... |
| |
...finden Sie Skripte, die einen Zweck erfüllen, der ihren Wünschen nahe kommt, und modifizieren Sie sie für ihre eigenen Zwecke. |
| |
Und wir fügen dem Scripting-Index auch praktische Dienstprogrammfunktionen hinzu; Sie können einen kleinen Screenshot davon sehen ... |
| |
...auf der linken Seite und in den JSL-Editor, sodass das Build-Skript automatisch importierbare und wiederverwendbare Funktionen in den JMP-Skript-Index mit einem netten kleinen Doc-String hinzufügt, wenn dieser verfügbar ist, um zu beschreiben, wie diese Funktion funktioniert und wie man sie verwendet es. |
| |
Ich wollte mir eine Sekunde Zeit nehmen, um einen Teil des Codes zu bestätigen, den wir zu Demonstrationszwecken in Y'All aufgenommen haben. Ein Großteil des Codes, der innerhalb von Novozymes verwendet wird, ist spezifisch für die Systeme von Novozymes und wäre außerhalb des Unternehmens nicht verwendbar. |
| |
Also habe ich mir einige Skripte geschnappt, die bereits in der JMP-Benutzergemeinschaft enthalten waren, und sie nur zu Demonstrationszwecken eingefügt. Sie können diese gerne behalten oder aus Y'All entfernen... |
| |
...wie gewünscht. Wir haben also ein Json-Parser-Skript von Xan Gregg und Craige Hales. Auf dem JMP Discovery Summit 2020 wird ein Skriptassistent für die Datenbereinigung vorgestellt... |
| |
...von Jordan Hiller und Mia Stephens. Wir haben Bildertabellen-Tools von Heidi Hardner und Serkay Olmez beim Discovery Summit 2020. |
| |
Farbreihenauswahl.jsl von Nick Holmes. Mehrere Y-Achsen-Diagramme von Byron Wingerd und Autovalidierungs-Setup, 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 ihrer API zu arbeiten, die von Riffyn geschrieben wurde und mit Genehmigung aus ihrem Riffyn Tools JMP Add-In übernommen wurde. Das ist ein Werkzeug, das wir bei Novozymes stark verwenden. Wir haben dies eingefügt, weil Sie diesen Code auch gerne verwenden können, wenn es andere Riffyn-Benutzer gibt. |
| |
Nachdem wir das aus dem Weg geräumt hatten, wollten wir in einige Live-Demos einsteigen, beginnend mit der Benutzererfahrung und dem, was der Benutzer sieht und tut, während er mit dem Y'All-Toolkit arbeitet. Dafür übergebe ich die Kontrolle an meinen Co-Moderator Johan. |
| |
Johan, du bist stumm. |
| Johan |
Danke, Micha. |
| |
Das tut mir leid. Lassen Sie mich einfach meinen Bildschirm teilen. |
| |
Siehst du das? |
| Michael |
Jawohl. |
| Johan |
Gut. |
| |
Wie Michael sagte, werde ich Sie durch die Benutzererfahrung bei der Verwendung von Y'All führen. |
| |
Es ist wirklich eine dreistufige Sache, ein Benutzer von Y'All zu sein. Die überwiegende Mehrheit unserer Benutzer verwendet es im Grunde wie eine integrierte JMP-Plattform. Sie... |
| |
...zeigen und klicken Sie auf die Skripte und führen Sie sie für die beabsichtigten Zwecke aus. Wir haben auch eine ziemlich große Benutzergruppe, die mit Skripten dazu beiträgt, auch durchzugehen, wie ... |
| |
Sie können einfache Skripte beisteuern. Und dann haben wir eine kleine Gruppe von Entwicklern und Betreuern (??), die fortgeschrittenere Sachen machen, und wir werden versuchen, auch ein bisschen davon zu ziehen. |
| |
Aber zuallererst die wirklich einfache Verwendung von Y'All. Die Installation ist so einfach wie das Klicken auf diesen Link zum Build-Artefakt (??), das in unserem GitLab-Repository erstellt wurde, das Herunterladen der JMP-Bearbeitungsdatei und das Ausführen mit JMP. |
| |
Das hat mich jetzt zu einem Update veranlasst, ich werde dieses Mal einfach abbrechen, aber Sie können das hier in meiner Menüleiste sehen, und ich habe das Y'All-Menü ... |
| |
...Mit einigen dieser Demo-Skripte, die Michael erwähnt hat. Ich werde auf keines dieser Skripte näher eingehen, da sie nicht wirklich Teil des Y'All-Pakets sind, sondern nur zu Demonstrationszwecken enthalten sind. Aber was ich tun werde, ist, dass ich versuchen werde, hineinzugehen und... |
| |
...oops, aktivieren, sorry das war schon, aktiviert erscheint es. Beta-Tests aktivieren, damit wir sie jetzt, da wir mit der Erstellung einiger Dinge beginnen, sofort sehen können. |
| |
Bei den meisten Benutzern ist der Betatest deaktiviert, und sie werden beim Öffnen von JMP nach einer Hauptversion (alle paar Wochen) zu einem Update aufgefordert. Aber für Benutzer mit aktivierten Betatests kann es sein, dass der Beta-Zweig mehrmals täglich bis ein paar Mal pro Woche aktualisiert wird. |
| |
Das ist im Grunde das, was für einen normalen Benutzer drin ist. |
| |
Wenn Sie dazu Skripte beitragen möchten, gibt es mehrere Möglichkeiten, dies zu tun. Eine Sache ist durch die GitLab-Benutzeroberfläche. Jetzt spiegelt sich die Menüstruktur, die wir gerade gesehen haben, in der... |
| |
...Verzeichnisstruktur im... |
| |
...Repository. Also ein neues erstellen... |
| |
...Menü oder Untermenü ist so einfach wie das Erstellen eines neuen Verzeichnisses. Hier, nennen wir es einfach... |
| |
..."Demos" |
| johan |
und füge es hinzu. |
| Johan |
Und wenn wir ein Skript hinzufügen möchten, können wir es einfach in der JMP-IDE erstellen, damit Sie es sehr einfach machen möchten. |
| |
Hallo Welt. |
| |
Dies wird gut genug sein. Es gibt tatsächlich ein kleines zusätzliches Detail, nämlich die Menüpunkte nett zu benennen, um einen Tooltip zu erhalten, wir haben die [???] oder Code-Magie implementiert, das heißt, wenn Sie beginnen, auskommentiert zu schreiben, oops. |
| |
Und du. |
| |
Menüname. |
| Michael Akermann |
Ihr. |
| |
Menüname. |
| Johan |
Y'All Menüname |
| Michael Akerman |
Alte Gewohnheit. |
| Johan |
Nennen wir es hallo. Dann Y'all Tooltip. |
| |
Alles klar, lass uns weitermachen und das speichern. |
| |
Wohin, denke ich, mal sehen, Desktop. Und dann hier hochladen. |
| |
War es ein Test? |
| Michael Akermann |
Es war ein Skript, sollte aber in Ordnung sein. |
| Johan |
Jetzt... |
| |
Nachdem wir diese Datei hochgeladen haben, haben wir eine Pipeline in diesem automatisierten [unverständlich] ausgelöst. |
| |
[unverständlich] System, das zuerst das Repository klont und dann ... |
| |
...nachdem das Add-In erstellt wurde, und dies sollte bei einem Neustart von JMP angezeigt werden, |
| johan |
und Aktualisierung der alle bearbeiten. |
| Johan |
Und sobald wir uns für ein Update entschieden haben, ist jetzt das Demo-Menü mit dem Testskript vorhanden. |
| |
Dies ist also der einfachste Weg, Skripts 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. Lass mich einfach... |
| |
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 es wird in anderen Remote-Repository-Codierung, Code-Hosting-Systemen ähnlich sein. |
| |
Jetzt klonen wir das Repository und haben eine vollständige Spiegelung des Repositorys in unserem lokalen System. Und ähnlich wie zuvor können wir hier die Verzeichnisstruktur gespiegelt sehen, und versuchen wir zu sehen, ob wir eine ... |
| |
Ein weiteres Skript. |
| |
Dafür. Y'All Menüname verbessert |
| |
Hallo. |
| |
Sagen wir, wir möchten, vielleicht dieses Mal.. |
| |
...öffnen Sie stattdessen eine Eingabeaufforderung. |
| |
Es sagt hallo Welt. |
| |
Jetzt können wir dieses Mal eine der integrierten Funktionen verwenden, die in JMP enthalten waren. Gehen wir zum Scripting-Index, wir können... |
| |
...suchen Sie nach Y'All-Utils. |
| |
Und finde die errorModal-Funktion, und sie kommt hier mit einem kleinen Doc-String, wie man sie benutzt. |
| |
Und es wurde bereits importiert, also... |
| |
Y'All utils errorModal |
| johan |
Und wir können einfach hallo Welt sagen. |
| Johan |
lass uns das sehen. |
| |
in unser Repository... |
| |
...unter Demos. Und drücke den Code. |
| |
Jetzt wird der Code an das Remote-Repository gepusht, wodurch die CICD-Pipeline ausgelöst wird, und im Handumdrehen... |
| |
...Sekunden, sollte in der Lage sein, die Pipeline laufen zu sehen und... |
| |
...früh genug. |
| |
Hat noch nicht angefangen. |
| |
Vielleicht komme ich ein bisschen... |
| |
...ungeduldig. Na, bitte. |
| |
Wenn wir also reingehen und nach Updates für Y'All suchen, werden wir ein neues Update sehen. Ist es das? |
| |
Wir werden uns für die Aktualisierung entscheiden... |
| |
...das Add-In, und jetzt haben die Demos unsere verbesserte Hello-World. |
| |
In Ordnung, ich denke, das war es, was ich für die Benutzerdemo hatte. |
| Michael Akermann |
Danke, Johan. Ich übernehme dann die Bildschirmfreigabe zurück, wenn das für dich in Ordnung ist. |
| Johan |
Jawohl. |
| Michael Akermann |
Und ich wollte ein wenig darauf eingehen, was hinter den Kulissen passiert, wenn diese Benutzererfahrung stattfindet. Also werde ich mir diesen Code in Visual Studio Code ansehen. |
| |
Wenn Sie die Zip-Datei heruntergeladen haben, können Sie sich das ansehen, wo immer Sie möchten, und ich werde sehr schnell in den Zen-Modus wechseln, um es ein wenig einfacher zu sehen. Auf geht's. |
| |
Hier ist also diese GitLab-CICD-Pipeline, die 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 das löste diese CICD-Pipeline aus. Dies ist also ein kleines Skript, das definiert, wie der Server auf diese Situation reagieren soll. |
| |
ein Pre-Schritt und ein Build-Schritt ... |
| |
...wo es das Git-Repository und alle darin enthaltenen Dateien, einschließlich Johans neuem Skript, in ein Arbeitsverzeichnis geklont hat, in dem dies... |
| |
...dieses Verarbeitungsmodul namens Runner kann an diesem Code arbeiten. Und dann hat es es gebaut, also führt es diese Build-Phase aus, in der es ... |
| |
CDs -- ändert Verzeichnisse -- in dieses Build-Verzeichnis und führt dieses Python-Build-Skript aus. Es ist also wirklich so einfach. Es klont all diese neuen Dateien in einen Arbeitsordner, verschiebt ihn in diesen Ordner und führt das Python-Build-Skript in Python 3 aus. |
| |
Werfen wir also einen Blick auf dieses Python-Build-Skript. Ich werde die Registerkarte dazu steuern. Dies ist build_yall.py. |
| |
Das ist also eine Menge Code, aber wenn Sie sich das ansehen und eine Art Anleitung zum Durchsuchen wünschen, scrollen Sie ganz nach unten zu dieser Prozessfunktion. Es sagt Def-Prozess. |
| |
Dies ist der Hauptcode, der Y'All erstellt und Schritt für Schritt durchläuft. Also werden wir uns das im Laufe der Zeit anschauen. |
| |
Das erste, was passiert, ist, dass das Python-Skript eine Menühierarchie erstellt. Lassen Sie uns also einen Blick darauf werfen. Was es tut, ist ein verschachteltes Python-Wörterbuch zu erstellen, in dem es diese Ordnerstruktur unter src/scripts durchsucht ... |
| |
...und zieht alle gefundenen JSL-Dateien in ein Wörterbuch, das den Namen und die QuickInfo und den Dateispeicherort dieser JSL-Datei enthält. Es baut also im Grunde genommen einen Ordner nach dem anderen auf und kriecht durch dieses verschachtelte Wörterbuch. |
| |
Dann überprüfen wir die Befehlsnamen jeder dieser JSL-Dateien. Wir versuchen, diese Dateien zu analysieren und nach dem Y'All-Menünamen und dem Y'All-Tooltip zu suchen, 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. Immer wenn Y'All installiert wird, erscheint dieses Y'all-Menü, wie diese heißen sollen und was der Tooltip sagen soll, wenn Sie mit der Maus darüber fahren. |
| |
Wenn es den Y'All-Menünamen oder den Y'All-Tooltip-ähnlichen magischen Befehl nicht finden kann, wird stattdessen einfach auf den Namen des Skripts ohne Tooltip zurückgegriffen. test.jsl würde also einfach zu test werden, wie Sie von Johan gesehen haben. |
| |
Dieses Wörterbuch mit Befehlen in Menüs ist alphabetisch sortiert, um das Auffinden von Dingen zu erleichtern, mit Ausnahme des Hilfe- und Einstellungsmenüs, das oben angezeigt wird, damit es immer oben im Menü angezeigt wird. |
| |
Denn Hilfe und Einstellungen sind wichtig. Und dann werden all 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, wo das Menü selbst, was die Tooltips sein sollen, sind in dieser .jmpcust-Datei definiert. |
| |
Ich werde den Tab zu Y'All wechseln, damit Sie sehen können, wie das aussieht. Es ist buchstäblich eine Reihe von Definitionen darüber, was die Menüs sind ... |
| |
..und wie die Menüs heißen und was sie enthalten. So können wir sehen, dass das Hilfe- und Einstellungsmenü die Suche nach Y'All-Updates enthält, den Beta-Testmodus ein- und ausschaltet und so weiter. |
| |
Das Python-Skript wird dies also automatisch mit dieser Funktion zum Schreiben von jmpcust-Dateien schreiben. |
| |
Und dann werden wir unsere Add-In-Definitionsdateien schreiben. Also addin.def und version.txt. Addin.def -- Ich werde zu einem Beispiel dafür wechseln -- ist ein wenig... |
| |
...eine Beschreibung, die JMP verwendet, um das Add-In zu identifizieren und die Versionsnummer sowie die unterstützte Mindestversion von JMP zu finden. |
| |
Wir sagen 12. Das ist eine willkürliche Entscheidung von unserer Seite, nur um sich vor 12 keine Sorgen machen zu müssen. Sie können dies im Python-Code ändern, wenn Sie selbst damit beginnen. Wie Sie sehen, wird hier auch die Add-In-Version definiert. |
| |
Und wir schreiben dies in eine Datei namens version.txt, damit dieselbe ganze Zahl, die Sie gerade in addin.def gesehen haben, auch in version.txt landet. |
| |
Der Grund dafür ist, dass es sich um eine nette kleine Datei handelt, die wir aus der Ferne lesen können. Wir können in JMP über HTTP im Server öffnen ... |
| |
...und werfen Sie einen Blick auf diese Versionsnummer in dieser Datei version.txt, um sie mit unserer aktuellen Version zu vergleichen. Wenn also unsere aktuell installierte Version nicht mit der version.txt übereinstimmt... |
| |
...das bedeutet, dass wir aktualisieren müssen oder zumindest aktualisieren können. Die von uns verwendete Versionsnummer ist das Datum, zu dem dies in der UTC-Zeitzone ausgeführt wurde. |
| |
Und wir rechnen das in Sekunden seit 1970 um. Es handelt sich also um eine Ganzzahl, die in ein Datum/Uhrzeit-Format zurückkonvertierbar ist. |
| |
So können wir die beiden Zahlen auf ganzzahliger Basis vergleichen, was schön ist. Wir können leicht sehen, ob sie größer oder kleiner als der andere sind, und wir können dies immer noch in ein Datum zurückrechnen. Es ist also für uns eine wirklich effiziente Möglichkeit, diese Versionsnummer in JMP zu speichern. |
| |
Schließlich. |
| |
Als nächstes erstellen wir ein benutzerdefiniertes Funktionsskript. Das ist also ein wenig seltsam und ein wenig schwer zu erklären. Ich werde mein Bestes tun, um es schnell und prägnant zu machen. |
| |
JMP bietet zwei Möglichkeiten, benutzerdefinierte Funktionen zu definieren. Eine ist mit einer Funktion namens function in der JMP Scripting Language, und was das tut -- ich werde hier zu utils.jsl und dem Unterverzeichnis importables von Y'All wechseln. |
| |
Function definiert eine benutzerdefinierte Funktion, die von anderen Standorten verwendet und aufgerufen werden kann. Und Sie können dies mit einem Namensraum definieren. In diesem Fall haben wir also den Namespace Y'All utils... |
| |
...mit dem Funktionsnamen recode if. Und es braucht 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 mit function identisch ist. Ich glaube, dies wurde hinzugefügt und JMP 14. |
| |
Die neue benutzerdefinierte Funktion fügt die Funktion dem JMP-Skriptindex und der JSL-IDE hinzu, um es sehr einfach zu machen, mit dieser Funktion zu arbeiten und sie an anderen Stellen mit Dokumentation wiederzuverwenden. |
| |
Der Vorteil der Funktion ist also, dass sie bis zurück funktioniert, ich weiß nicht einmal, welche Version von JMP ... |
| |
...bevor ich JMP benutzte. Der Vorteil der neuen benutzerdefinierten Funktion ist, dass sie etwas robuster ist, und Sie erhalten die Dokumentation und den JMP-Skriptindex und die Möglichkeit, sie in der JSL-IDE einzufärben 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... |
| |
...wird hier im Wesentlichen das Verzeichnis importables durchsuchen und nach Funktionsdefinitionen suchen, die dieser Funktion entsprechen Funktion Funktion Funktion... |
| |
...in JSL mit einem doc-String. Es wird also versuchen, diese Doc-Zeichenfolge zwischen den Schrägstrich-Sternchen-Abgrenzungen zu analysieren und in eine neue benutzerdefinierte Funktion zu ziehen. So können Sie hier ein Beispiel sehen. |
| |
Wir nehmen diese recode if-Funktion und schreiben sie jetzt automatisch in eine neue benutzerdefinierte Funktion im Y'All utils-Namespace namens recode if um. |
| |
Und wir haben einen Prototyp und eine Beschreibung und eine Scripting-Indexkategorie, in der das alles auftaucht. All das steht JMP-Entwicklern automatisch zur Verfügung. Sie können also Dinge mit der älteren Funktionsfunktion in JSL schreiben und trotzdem diesen JMP-Skriptindex erhalten ... |
| |
...Fähigkeit, indem das Y'All-Build-Skript automatisch verwendet wird. Scrollen Sie hier zurück zu meinem Prozesscode. |
| |
Nachdem all dies geschrieben wurde, bauen wir jetzt das Add-In. JMP-Add-Ins verwenden ein geändertes Zip-Format. Also zippen wir es mit Python 3 zusammen, benennen es in YALL.jmpaddin um und das ist jetzt in unserem Arbeitsverzeichnis verfügbar, in dem der CICD-Runner arbeitet. |
| |
Der letzte Schritt dieser CICD-Pipeline nach Abschluss dieses Build-Skripts besteht also 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 und auf den Server hochladen und mit einer bestimmten URL zur Verfügung stellen. |
| |
Diese URL ist also immer konsistent und an den Zweig gebunden, auf dem wir dies in GitLab ausführen, also wenn wir uns auf der Beta-Version gegenüber der Hauptversion befinden. |
| |
Nun, in JMP – ich werde rüberspringen, ha!... |
| |
...zu autoUpgrade.jsl. Hier suchen wir nach neuen Versionen des Add-Ins. Wenn JMP geladen wird, führt Y'All dieses Auto-Upgrade-Skript aus,... |
| |
...die nach diesen neuen Versionen im GitLab-Repository sucht. Sie können hier sehen, wie wir unser Beta-Flag laden, egal ob im Beta-Modus oder im Hauptmodus. |
| |
Und wir suchen im spezifischen Kanal für diesen Modus. Also ziehen wir... |
| |
...von einer bestimmten URL basierend auf dieser Kanalauswahl. Wenn wir uns also im Beta-Modus befinden, wird es nach dem Beta-Kanal aussehen. Wenn wir uns im Hauptmodus befinden, wird der Hauptkanal angezeigt. Und wir suchen nach der Datei YALL.jmpaddin und der version.txt |
| Michael Akerman |
Und jetzt vergleichen wir diese Versionsnummer mit unserer installierten Versionsnummer und fordern, wenn sie anders ist, ein Update vom Benutzer an. Öffnen Sie ein Dialogfeld, das Sie auf Johans Bildschirm gesehen haben... |
| Michael Akermann |
...das sie fragt, ob sie das Update wünschen und ihnen die Versionsnummer mitteilen. Und sie können sich dafür entscheiden oder nicht. |
| |
So. |
| |
Das ist wirklich alles. All das passiert hinter den Kulissen, für den Benutzer. Sie laden ein Skript über diese GitLab-Benutzeroberfläche hoch, indem sie diese Plus-Schaltfläche verwenden, um eine Datei hochzuladen und diese neue ... |
| |
...JMP-Add-In, dieses Y'All JMP-Add-In, und stellen Sie es anderen Benutzern zur Verfügung, die mit demselben Repository verbunden sind. |
| |
Das alles passiert hinter den Kulissen. Für den Benutzer ist es so einfach, ein JMP-Skript vom roten Hotspot in JMP zu speichern und es in das GitLab-Repository hochzuladen. |
| |
Also wollte ich die Funktionen von Y'All zusammenfassen. |
| |
Wir haben einen sehr einfachen Skriptbeitrag. Wie Sie gesehen haben, haben Sie eine schöne Benutzeroberfläche, um Dateien hochzuladen, JSL-Skripte hochzuladen und zur Verfügung zu stellen. |
| |
Dazu kommen automatische Versionskontrolle und Code-Archivierung. Da dies alles über ein zentrales GitLab-Repository geschieht, das auf Novozymes-Servern gespeichert ist, wird all dies verfolgt und gespeichert ... |
| |
...Unbegrenzte Dauer. Automatische Updates, damit Entwickler ganz einfach Skripte für ihre Benutzer freigeben können und sie immer die neueste Version haben... |
| |
...dieser Skripte, die ordnungsgemäß funktionieren und qualitätsgeprüft sind. Und wir haben Beta- und Release-Kanäle. |
| |
Der Beta-Kanal wird also im Wesentlichen sofort erstellt, innerhalb weniger Sekunden verfügbar, nachdem ein neues Skript auf Y'All trifft und regelmäßig aktualisiert. Und der Freisetzungskanal wird eine langsamer kontrollierte Freisetzungsstruktur sein. Ich wollte ansprechen, wie wir das machen. |
| |
Sie können hier die Branch-Struktur in unserem GitLab-Repository sehen. Wir haben einen Beta-Zweig mit vielen Updates. Wir haben einen Release-Zweig. Wir haben eine Hauptniederlassung. Was wir in Novozymes tun -- das liegt ganz im Ermessen des Benutzers -- |
| Michael Akerman |
...wir nehmen diesen Beta-Zweig, wenn er sich in einem Zustand befindet, in dem wir ihn veröffentlichen möchten. Wir öffnen eine Zusammenführungsanfrage zwischen Beta und Release und verschieben sie in den Release-Zweig. Das wird den Screen-Release-Zweig im Wesentlichen einfrieren ... |
| Michael Akermann |
...bei der Code-Version, wo wir das gemacht haben, und das sperrt den Code auf diesem Release-Zweig. |
| |
Beta kann sich noch ändern. Benutzer können weiterhin Skripte hinzufügen und Skripte in der Betaversion ändern. Aber die Freigabe ist jetzt eingefroren. Das prüfen wir auf Qualität und wenn wir vorbereitet sind, wenn wir mit dem Zustand zufrieden sind... |
| |
...wir geben es in main frei und fügen es dort ein, und jetzt steht es den Haupt-Branchenbenutzern von Y'All zur Verfügung. |
| |
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. Und wir haben dem Scripting-Index automatisch Dienstprogrammfunktionen hinzugefügt, die Entwicklern automatisch zur Verfügung stehen, damit sie Codeblöcke wie diese wiederverwenden können, wenn... |
| |
...oder einige Datenbankabfragen und ähnliche Dinge, die wir auch als Demonstrationen aufgenommen haben. Also, wenn du durch die Y'All schaust... |
| |
...Namespace im JMP-Scripting-Index mit installiertem Y'All. Sie werden sehen, dass wir einige Postgres-Datenbankabfragen und Postgres-Datenbanktools haben, die wir hinzugefügt haben, um zu demonstrieren, wie wir diese verwenden. |
| |
All dies geschieht, indem man in JMP mit einem vom Benutzer erstellten JSL-Skript startet, das man mit jemand anderem in der Y'All-Benutzerbasis teilen möchte. |
| |
Sie gehen in GitLab. Und in der Benutzeroberfläche laden Sie das in ein Unterverzeichnis hoch, das der Menüposition entspricht, in der sie das in Y'All haben möchten, also wenn sie es in Demos Demos testen möchten ... |
| |
... würden sie das in das Unterverzeichnis src slash scripts slash demos slash demos ablegen. Sobald sie dies 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 dieses neue Update und bietet automatisch an, es herunterzuladen und das Y'All-Add-In in JMP zu aktualisieren. Und dieses Skript steht den Benutzern dieses Beta-Kanals innerhalb weniger Sekunden zur Verfügung. |
| |
Wir hoffen, dass Sie von Y'All begeistert sind. Wir hoffen, dass Sie daran interessiert sind, Y'All selbst oder in Ihrer Organisation einzusetzen. Wir wollten Ihnen einige Tipps geben, wie Sie anfangen können, wenn Sie es sind. |
| |
Die Zip-Datei, die in der JMP-Benutzer-Community veröffentlicht wird, wenn Sie dieses Video in der JMP-Benutzer-Community ansehen – sie sollte sich auf derselben Seite befinden – enthält alle notwendigen Elemente, um loszulegen. Einige davon müssen geändert werden. Einige davon sind Democodes, mit denen Sie spielen können. |
| |
Aber zögern Sie nicht, das herunterzuladen und es sich anzusehen. Das Python-Build-Skript in dieser Zip-Datei basiert auf nativen Python 3-Bibliotheken. Auf unserem Build-System ist außer Python nichts installiert. Und es sollte auf jeder Standard-Python-3-Installation laufen. |
| |
Die zentrale Repository-Speicherung und -Automatisierung, die wir mit GitLab für CICD für die kontinuierliche Integration und Bereitstellung durchführen, ist über andere Anbieter erhältlich. GitLab, GitHub, Azure, AWS haben alle ähnliche Implementierungen. |
| |
Es gibt ein riesiges Ökosystem von Optionen, sodass die Implementierungsdetails spezifisch für Ihr Unternehmen sind. |
| |
Der unglückliche Nebeneffekt davon ist, dass die CICD-Pipeline-Datei gitlab-ci.yml eine Änderung erfordert, wenn Sie diese automatisiert auf Ihren eigenen Systemen ausführen möchten. Es wird auf Ihren Systemen nicht funktionieren, es sei denn, Sie sind ein Novozymes-Mitarbeiter. |
| |
Alle Verbindungszeichenfolgen in unseren Dienstprogrammfunktionen, die unsere interne Beta-Datenbank widerspiegeln, wurden durch ODBC my underscore connection underscore string ersetzt. |
| |
Wenn Sie eine dieser Funktionen verwenden möchten, müssen Sie in den Code in den Arbeitsverzeichnissen gehen und diese Zeichenfolgen ändern, um Ihre Datenbank widerzuspiegeln. |
| |
Also hoffen wir noch einmal, dass Sie von Y'All begeistert sind. Wir hoffen, Sie interessieren sich für Y'All. Wenn Sie Feedback, Fragen oder Kommentare haben, können Sie sich gerne an mich oder Johan wenden... |
| |
...mit ihnen. Wir würden uns auch über Ihre Beiträge freuen, wenn Sie diesen Code nehmen und ihn verbessern oder dieses Toolkit auf interessante Weise verwenden. Dankeschön. |
| Christy Spanien |
Okay, das war großartig. |
| Michael Akermann |
Zeit. |
| Christy Spanien |
Angemessen perfekt ja ja. |
| Michael Akermann |
Macht es. |
| |
Es spielt keine Rolle, dass Johan sagte, kein JMP will. |
| Christy Spanien |
Du weisst. |
| Michael Akermann |
Ich habe das Gefühl, dass die meisten Leute es wahrscheinlich nicht kapieren werden. |
| Christy Spanien |
Als neues Wort gefällt es mir. |
| Johan |
Also wurde uns gesagt, dass wir das nicht verwenden sollten, also mussten wir das Ding umbenennen und ich wurde abgeworfen, weil ich die Version, die ich hatte, nicht gelöscht hatte. |
| |
Zuvor installiert. |
| |
Als mir klar wurde, dass ich bereits in der Beta war, warf es mich irgendwie ab, und dann habe ich es einfach gemacht. |
| |
Sowieso. |
| Christy Spanien |
Ja, ich denke, das ist in Ordnung, aber das war großartig, sehr interessant. Ich denke, die Leute werden es lieben, das zu sehen, also wissen wir es wirklich zu schätzen, dass ihr mitmacht. |
| |
Wie gesagt, ich werde die Videos hochladen, damit Jeff sie bearbeiten kann. Ich bin mir nicht sicher, wann das fertig sein wird, aber. |
| |
Wie auch immer, ihr werdet den ganzen Oktober sehen, aber wenn sich etwas ergibt, werde ich es euch auf jeden Fall wissen lassen. |
| |
danke nochmal und ggf. |
| Johan |
Sie haben eine neue Art von Sein über den normalen JMP. |
| Michael Akermann |
Dass du sagst, du wärst woanders, das ist irgendwie. |
| |
Ja. |
| Johan |
Y'All-Verzeichnis. |
| Christy Spanien |
Ja, vielen Dank, ich weiß es. |
| |
Eine Menge Arbeit für Krankheiten, und wir wissen es zu schätzen. |
| Michael Akermann |
Unser Vergnügen. |
| |
Danke für. |
| Michael Akermann |
bewegt sich schnell nach dem nächsten nach oben. |
| Christy Spanien |
Ja, Mann, es war natürlich toll, Sie beide zu treffen. |
| |
Hoffentlich nächstes Mal. |
| |
Zumindest mit Michael wird es persönlich sein, Johan würde ich gerne dort drüben treffen, dich auch treffen, aber. |
| |
Ja. |
| Michael Akermann |
Sie wissen immer, ob er es ist, besonders wenn er präsentiert und nur jeden Gipfel oder etwas, das persönlich in der Vergangenheit liegt. |
| |
Computerkonferenz statt. |
| |
und sehen Sie eine Reihe lokaler lokaler Mitarbeiter. |
| Johan |
Vielleicht ist es einfacher, über das Reisebudget zu argumentieren, dann ja. |
| Christy Spanien |
Zwei für eins richtig. |
| |
Ja. |
| Johan |
Gut. |
| Christy Spanien |
Okay, ihr habt einen tollen Rest von eurem Montag, tolle Woche, danke. |
| |
Auch Sie können bald wieder mit Ihnen sprechen. |
| Johan |
Wiedersehen. |
| |
Wiedersehen. |