スピーカー
|
成績証明書
|
| マイケル・アッカーマン |
クリスティ。 |
| クリスティ スペイン |
おはようございます、マイケルお元気ですか。 |
| マイケル・アッカーマン |
元気ですか。 |
| クリスティ スペイン |
わかりました。理解できないようにメールを閉じさせてください。 |
| マイケル・アッカーマン |
はい、私はコンピューターの設定を合理化して、何も、何も ping が発生しないようにしています。 |
| クリスティ スペイン |
私がツールバーに何を押したか知っていますか? |
| |
私はすべてを持っていると思います。 |
| |
週末何をしましたか。 |
| マイケル・アッカーマン |
よかったです、週末はいかがお過ごしでしょうか。 |
| |
良い。 |
| クリスティ スペイン |
それであなたは暗闇の中で生きていますか? |
| マイケル・アッカーマン |
ヘレン、待っていてね。 |
| |
はい、本社にかなり近いので、実際のディスカバリーサミットに行く予定でした。 |
| |
に直接出席します。 |
| |
それも残念でしたが。 |
| |
はい、おい。 |
| クリスティ スペイン |
こんにちは、おはようございます、いかがお過ごしでしょうか。 |
| ヨハン |
よくやっている。 |
| マイケル・アッカーマン |
あなたがそこにいるように、私の後ろに博学な壁を設置する必要があります、ヨハン。 |
| ヨハン |
クリックを入れてみました。 |
| |
これとダニーの本がそこにあるので、あなたは認識できないでしょう。 |
| クリスティ スペイン |
いいね。 |
| |
先週は取り違えて申し訳ありませんでした。 |
| |
お二人にバーチャルでお会いできて嬉しいです。 |
| |
私は Nova Zones をサポートするプレミアチームの一員なので、とにかく私をあなたたちに割り当てるべきではなかったでしょうか。 |
| |
そうですね、お二人ともディスプレイを 2010 年 19 日に設定しているために、いくつか確認する必要があることがあります。 |
| |
私はします。 |
| ヨハン |
もう一度確認させてください。 |
| クリスティ スペイン |
素晴らしい。 |
| |
そして |
| |
サウンドが良ければ、ロゴを身に着けている人はいないと思います。 |
| |
著作権侵害を引き起こす可能性のあるものが視界内にないことを確認してください。そこにあるあなたの本が問題になるかどうかはわかりません。 |
| |
そうだ、念のためそうしておこう。 |
| マイケル・アッカーマン |
そのうちの 1 つは、元 JMP ディスカバリー・サミットの基調講演者から構成されています。 |
| ヨハン |
誰が。 |
| マイケル・アッカーマン |
ああ、彼は説明者が来てそのことについて話しましたね。 |
| クリスティ スペイン |
ああ、私はその本を持っています。 |
| マイケル・アッカーマン |
ええ、ええ。 |
| ヨハン |
私はしていません。 |
| |
メール内のいずれかを保存しましたが、そのままメールから取り出すこともできます。 |
| マイケル・アッカーマン |
私はウェブカメラをアームに取り付けて、自分の方に向かって、前後に、上下に、左右に動かすことができるので、まるで永遠にそれをいじっているようなものです。 |
| クリスティ スペイン |
ああ、それはいいアイデアですね。 |
| |
ええ、私を正しい場所で見たことは一度もありませんでした。 |
| |
そして、誰もが自分のアプリの見通しをすべて達成しており、私はチームです。 |
| |
そのように。 |
| マイケル・アッカーマン |
近いチームは通知を受け取るべきではありません。 |
| クリスティ スペイン |
残り時間は 30 分です。そうですか。 |
| マイケル・アッカーマン |
それが私の理解です、はい。 |
| クリスティ スペイン |
そして、あなたたちもそうなるでしょう。 |
| |
理想的には、始めてすぐにやり遂げたいと思っています。 |
| |
移行するたびに画面のテスト共有を実行しますか。 |
| マイケル・アッカーマン |
ある時点で私の画面とあなたが画面上に表示される間を切り替えるので、最初に私の画面を共有させてください。 |
| |
サウンドを共有する必要はありません。 |
| |
それで。 |
| マイケル・アッカーマン |
ここから始めましょう。 |
| クリスティ スペイン |
こんにちは、アレックスです。 |
| |
わかった。 |
| マイケル・アッカーマン |
それで、あなたは私たちにいて、それをしました、それをしました、それをしました、それをしました、そしてそれから私たちはあなたに引き渡されました。 |
| ヨハン |
はい、画面共有を自分で制御することになりますが、プロデューサーの男を代わりに使用することもできます。 |
| クリスティ スペイン |
そうすればいいでしょう、そうすべきです。 |
| |
ああ、背景が素敵ですね。 |
| ヨハン |
ありがとう。 |
| クリスティ スペイン |
それを持っているはずです。 |
| マイケル・アッカーマン |
もっと均一になれると思います。 |
| ヨハン |
いいえ、私たちは独自の個人を持つべきです。私はそうではありませんでした。 |
| |
はい。 |
| クリスティ スペイン |
はい、マイケルに行きましょう。 |
| ヨハン |
うん。 |
| |
私はあなたが画面上でリンクすることはあまりなく、ほとんどが会話で、その後画面共有を行うことになると思います。 |
| マイケル・アッカーマン |
画面が共有されている間、何が表示されるかわかりません。 |
| クリスティ スペイン |
そうですね、録音が戻ってくるたびにそうです。 |
| |
4 つ違います。 |
| |
バージョンによっては、あなたが含まれていないバージョンもありますし、ジェフ・パーキンソンがすべてを編集するかどうかはわかりません。そのため、彼がどの丘を選択するかはわかりません。 |
| |
彼は講演者にそう示したいのだと思います。 |
| マイケル・アッカーマン |
画面上でわかると思います。 |
| |
ちなみに、アイコンを右クリックすれば非表示にできます。 |
| ヨハン |
なんとか窓口を混乱させたように見えます。 |
| クリスティ スペイン |
まあ、それは本当に難しいことですか? |
| ヨハン |
そうそう。 |
| |
では、右クリックして表示するとどうなるでしょうか。 |
| マイケル・アッカーマン |
ええ、彼はそれが大丈夫だと思いました、クールです。 |
| |
正確にどこだか覚えていないので。 |
| |
私はデスクトップにアイコンを表示させず、単にアイコンをデスクトップにインストールしたままにしているので、それをオンにするのは同じようなものです。 |
| ヨハン |
うん。 |
| クリスティ スペイン |
それで、マイケル、終わったら、「分かった、画面共有であなたに渡して」と言うだけで、そこから出発するだけです、本当に休憩するつもりはありません、言い換えればそうです。 |
| マイケル・アッカーマン |
そして、私の部屋には黄色いフィルターがかかっています。 |
| クリスティ スペイン |
ああ、あなたは赤信号を持っていますね。 |
| マイケル・アッカーマン |
はい、ブルーになりますが。 |
| クリスティ スペイン |
私のデスクはとても小さいので、ここには十分なスペースがあります。 |
| マイケル・アッカーマン |
はい、私は早期に独立しました。上司が私のマイクの品質とカメラの品質について不満を言い続けたので、あなたが私に新しいマイクカメラを買ってくれるのは大丈夫だと思います。 |
| クリスティ スペイン |
よかった、この新しいヘッドセットは買えなかった。 |
| マイケル・アッカーマン |
急いでドアを閉めさせてください。 |
| クリスティ スペイン |
そうそう、毛皮で覆われた友達や走り回っている子供がいる場合、それは重要です。 |
| ヨハン |
ええ、どちらもそうではありません、そうですね、ドアを閉めておきます。 |
| クリスティ スペイン |
そしてヨハンどこにいるの? |
| ヨハン |
会社で。 |
| クリスティ スペイン |
私のものより、ああ、いいですね。 |
| |
完全であること。 |
| ヨハン |
ああ、そうだったね。 |
| クリスティ スペイン |
と結婚した友人がいます。 |
| |
コペンハーゲンの男性はデンマーク出身なので、そこに遊びに行きました。 |
| |
ああ、そうそう、美しい。 |
| クリスティ スペイン |
それでは、会社名と抽象的なタイトルを述べていただければ幸いです。 |
| |
そして、これは録音用ではありません。これは、ジェフがあなたのものを特定するためだけのものです。 |
| マイケル・アッカーマン |
名前は確かにそうです、私の名前はマイケルです。私はノボザイムに所属しています。抽象的なタイトルは写真をアップロードするのと同じくらい簡単です。 |
| |
梱包と請求書について、正確なことは忘れました。 |
| クリスティ スペイン |
大丈夫。 |
| マイケル・アッカーマン |
みんな。 |
| ヨハン |
そして私の名前は国連です。 |
| |
また、意味がありません。 |
| クリスティ スペイン |
そして、これを録画してディスカバリーサミットカンファレンスに投稿する予定ですが、その用途でこの録画の許可を得た場合、一般公開されます。 |
| マイケル・アッカーマン |
私たちはそうします、私もそうします。 |
| |
に行くとき。 |
| ヨハン |
ああ、ごめんなさいごめんなさい、私はただの気のせいでした。 |
| クリスティ スペイン |
そして。 |
| |
あなたの為に、その前にカメラを止めさせてください。 |
| |
誰も私に会いたがらない。 |
| クリスティ スペイン |
準備はできたと思います、皆さん準備はできていますか? |
| マイケル・アッカーマン |
まずは私の画面から始めましょう。 |
| クリスティ スペイン |
準備ができていないなら、時間が来るのを見てみましょう。 |
| |
909なので厳密には939までありますが。 |
| |
準備ができたときはいつでも、ヒューズを渡しても受け取っても問題ありません。 |
| マイケル・アッカーマン |
皆さん、こんにちは。今日は「Y'All」のトークへようこそ。 これは、当社のグローバル企業全体で JMP アドインの共有、スクリプトの更新、メンテナンスを自動化するために Novozymes に組み込まれたアドイン パッケージ マネージャーです。 私はマイケル・アッカーマン、共同プレゼンターはヨハン・オルセンです。 |
| |
今日は、みなさんについてお話したいと思います。また、このツールキットについても紹介したいと思います。そうすれば、このツールキットに興味のある方は... |
| |
...個人的な使用や組織で使用したいと考えている人は、このツールキットを入手して使用を開始する方法と、それが何であるかを知っています。 それではまず、私たちが何者なのか、なぜ Y'All を構築したのかについて話しましょう... |
| |
...Y'All の主要な機能とユーザー エクスペリエンス。 そこで Johan は、ユーザーがこのツールキットを使用するときに何が表示されるのかを調べていきます。 |
| |
ユーザーが Y'All ツールキットを操作するときにその背後で何が起こっているのかを舞台裏で説明し、概要と要約を行い、Y'All を組織に導入するためのヒントを提供します。あなたの目的にとって興味深いものです。 |
| |
私たちはNovozymesという会社のデータサイエンティストです。 私の共同プレゼンターはヨハン・オルセンです。 彼は農業および産業バイオソリューション応用研究のデータサイエンティストです。 |
| |
私は Novozymes の同じグループの上級データ サイエンティストです。 Y'All やその他のことについて連絡したい場合は、ここに連絡先情報を記載しています。 お気軽にお問い合わせください。 |
| |
Johan の電子メール アドレスは jpko@novozymes.com で、JMP ユーザー コミュニティの JPKO です。 私は mxak@novozymes.com です。 |
| |
Michael Akerman Michael mxak は JMP ユーザー コミュニティに参加しています。Y'All について、または私たちが構築したものや取り組んでいるものを改善する方法について、何らかの形で質問やフォローアップ、コメントがある場合はお気軽にお問い合わせください。 。 |
| |
私たちはノボザイム社で働いています。 ノボザイムズは世界的なバイオテクノロジー企業です。 私たちは持続可能性のための生物学的ソリューションを構築します... |
| |
...世界中のあらゆる種類の業界のパフォーマンスを向上させ、コストを削減します。 そのため、私たちは農業とバイオ燃料、家事、食品と飲料、動物の健康、その他多くの産業をサポートしています... |
| |
...これらの生物学的ソリューションを使用します。 当社には世界中で 6,000 人以上の従業員がおり、その従業員の中に数百人の JMP ユーザーがいます。 |
| |
私たちがそのことを言ったのは、私たちがサポートし、協力している JMP ユーザーの非常に大規模な集団があり、彼ら全員が JMP を使って作業し、JMP で何かを構築しているからであり、それが皆さんにとってまさにインスピレーションなのです。 |
| |
企業としての私たちの目的は、「成長する世界でより良い生活を送るための生物学的答えを一緒に見つけます。明日を再考しましょう。」です。 |
| |
先ほど述べたように、Novozymes には非常に大規模な JMP ユーザー集団がいます。 |
| |
そこで私たちは、JMP スクリプトと JMP アドインの操作を容易にし、コードをより再利用しやすく、見つけやすくしたいと考えました。 |
| |
そこでまず、アップデートを簡単にしたいと考えました。 私たちは、Novozymes 全体で人々がスクリプトを電子メールでやり取りしていることを観察していました。 |
| |
個人のネットワーク ドライブ上で JSL ファイルが送信されていました。 中にはそれをフラッシュドライブに入れて配っている人もいました。 私たちは、新規および更新された JMP スクリプトの配布をできるだけ簡単にしたいと考えていました。 |
| |
私たちはコードを保護するアーカイブを作成したいと考えていました。 私たちには多くの JMP ユーザーがおり、これらすべての作業は組織にとって多大な価値を表しています。 |
| |
つまり、貴重なコードすべてが保存され、バックアップされ、アーカイブされる中央リポジトリです。 |
| |
また、バージョンを経時的に追跡したいと考えていたため、スクリプトが変更されたり改善されたりしたときに、それらの変更を確認し、経時的にそれらの変更を追跡できるようにしたいと考えていました。 |
| |
また、JMP 開発者であれば、スクリプトの発見と再利用を簡単にできるようにしたいと考えていました。 |
| |
...あなたが JSL スクリプトを書いている開発者であれば、他の開発者が書いた関連するスクリプトを見つけて改良することができます。 |
| |
あらゆるニーズに合わせて、それらを基にして構築します。 そのため、これらのスクリプトを取得して構築しやすくし、組織の他のメンバーが役立つと思われる JSL の関数を共有、インポート、再利用することも容易にします。 |
| |
そこで、これを実現するために、3 つのコンポーネントをまとめました。 このツールキットでは、Python ビルド スクリプト、GitLab インターフェイス、JSL ロードおよび更新スクリプトがすべて連携して動作します。 |
| |
Python ビルド スクリプトは、Python 3 以降で実行される自動スクリプトで、JSL ファイルを自動的に解析してアドイン メニュー構造に構築します。 |
| |
また、アドイン定義ファイルも書き込みます。 これらの再利用可能なユーティリティ関数をすべて JMP スクリプティング インデックスと JMP IDE に追加するインポートされたカスタム関数スクリプトを生成し、ユーザーが使用できるようにすべて .jmaddin ファイルに圧縮します。 |
| |
GitLab は、ユーザーがアドイン スクリプトを操作したり、アドイン ビルダー自体を操作したりするためのインターフェイスです。 GitLab は、GitHub のオープンソースの代替または競合製品です。 |
| |
これは Novozymes 内で社内に投稿されており、スクリプトをこの中央リポジトリにアップロードするための非常に簡単なポイント アンド クリック ユーザー インターフェイスを提供します... |
| |
...これらのスクリプトがすべて保存され、実際にビルドが行われる場所です。 |
| |
そして、継続的インテグレーション継続的デプロイメントを表す CICD パイプラインは、その Python ビルド スクリプトを自動的に実行し、リリース バージョンとベータ バージョンの両方のチャネルを通じてアドインを配布するため、ユーザーはどちらかを使用できます。 |
| |
...安定した品質管理されたリリース、または開発者の場合は、このツールキットで使用される各スクリプトの最新バージョンを使用したクイック リリースを頻繁に入手できます。 |
| |
そして最後に、JSL のロードおよび更新スクリプトを取得しました。 JMP が開き、このアドインが読み込まれると、... |
| |
...選択したチャネル (ベータ チャネルまたはリリース チャネル) で新しいバージョンがあるかどうかを確認し、そのアドイン パッケージをダウンロードして更新することを提案します。 これにより、カスタム関数もスクリプト インデックスにインポートされます。 |
| |
Y'All では、JMP ユーザーから非常に簡単なスクリプトの提供を受けています。 写真をソーシャルメディアにアップロードするのと同じくらい簡単です。 |
| |
ユーザー インターフェイスに移動してアップロード ボタンをクリックすると、数秒で Y'All のベータ チャネルで利用できるようになります。 |
| |
これらのスクリプトの自動バージョン管理とストレージ、自動または手動の JMP アドイン更新が用意されているため、JMP が開いたら、すべてが更新を提案します... |
| |
...または、ユーザーは Y'All メニューから手動で Y'All を更新することを選択できます。 |
| |
スクリプトを作成している開発者が、スクリプトを更新して変更を加えたときにアドインの最新バージョンを取得できるように、迅速なビルドとテストを行うためのベータ版チャネルがあります。 また、制御された展開と品質管理のためのリリース チャネルも用意されています。 |
| |
これにより、発見可能で再利用可能な JSL ファイルが提供されるため、人々は Novozymes やすべてのユーザーから送信されたスクリプトのこのファイル構造を調べて確認することができます... |
| |
...希望に近い目的を満たすスクリプトを見つけて、独自の目的に合わせて変更します。 |
| |
また、便利なユーティリティ関数をスクリプト インデックスに追加します。その小さなスクリーンショットを見ることができます... |
| |
...左側の JSL エディタに追加されるため、ビルド スクリプトは、インポート可能で再利用可能な関数を JMP スクリプト インデックスに自動的に追加します。この関数の動作と使用方法を説明するために利用可能な小さなドキュメント文字列が含まれています。それ。 |
| |
デモンストレーションの目的で Y'All に含まれているコードの一部を確認するために少し時間を割きたいと思いました。 Novozymes 内で使用されるコードの多くは Novozymes のシステムに固有のものであり、社外では使用できません。 |
| |
そこで、すでに JMP ユーザー コミュニティにあったいくつかのスクリプトを取得し、デモンストレーションの目的として含めました。 これらを自由に保持したり、皆さんから削除したりできます... |
| |
...望んだ通りに。 そこで、Xan Gregg と Craige Hales から JSON パーサー スクリプトを入手しました。 JMP Discovery Summit 2020 で発表されたデータ クリーニング スクリプト アシスタントをご紹介します... |
| |
...ジョーダン・ヒラーとミア・スティーブンスによる。 Discovery Summit 2020 で、Heidi Hardner と Serkay Olmez による画像テーブル ツールを入手しました。 |
| |
Nick Holmes によるカラー行選択.jsl。 Byron Wingerd による複数の Y 軸チャートと自動検証セットアップも、JMP Discovery Summit で発表されたと思います... |
| |
...昨年 Mike Anderson によって開発され、Riffyn データ キャプチャ ソフトウェアである Riffyn Nexus にインポート可能な一連の関数が提供されました... |
| |
...Riffyn によって作成され、許可を得て Riffyn ツール JMP アドインから組み込まれ、取得された API を使用して動作します。 これは、Novozymes で頻繁に使用するツールです。 これを含めたのは、他の Riffyn ユーザーがいる場合は、このコードも自由に使用できるためです。 |
| |
それで、邪魔にならないように、ユーザーエクスペリエンスと、Y'Allツールキットを使用するときにユーザーが何を見て何を行うのかから始めて、いくつかのライブデモに移りたいと思いました。 そのために、私は共同プレゼンターのヨハンに制御を引き継ぐつもりです。 |
| |
ヨハン、あなたは黙っています。 |
| ヨハン |
ありがとう、マイケル。 |
| |
ごめんなさい。 画面を共有させてください。 |
| |
これを見ていますか? |
| マイケル |
はい。 |
| ヨハン |
よし。 |
| |
マイケルが言ったように、Y'All を使用したユーザー エクスペリエンスを順を追って説明します。 |
| |
Y'All のユーザーになるには、実際には 3 つの段階があります。 当社のユーザーの大多数は、基本的に、組み込みの JMP プラットフォームであるかのように使用しています。 彼らは... |
| |
...スクリプトをポイント アンド クリックして、意図した目的のために実行します。 私たちには、スクリプトを作成して貢献しているかなり大規模なユーザー グループもいます... |
| |
簡単なスクリプトを投稿できます。 そして、より高度な作業を行う開発者とメンテナー (??) の小さなグループがあり、それも少し取り入れてみます。 |
| |
まずは、Y'All の実際の簡単な使い方です。 インストールは、GitLab リポジトリで作成されたビルド アーティファクト (??) へのリンクをクリックし、JMP 編集ファイルをダウンロードして JMP で実行するだけで簡単です。 |
| |
これで更新を促されました。今回はキャンセルするつもりですが、メニュー バーにそれが表示されており、Y'All メニューがあるのが分かります... |
| |
...マイケルが言及したデモ スクリプトのいくつかを使用します。 これらのスクリプトは実際には Y'All パッケージの一部ではなく、デモンストレーションの目的で含まれているだけであるため、詳細については説明しません。 でも、私がやろうとしているのは、中に入ってみることです... |
| |
...おっと、有効にしてください。申し訳ありませんが、すでに有効になっています。有効になっていると表示されます。ベータ テストを有効にすると、何かを作成し始めたらすぐに確認できるようになります。 |
| |
ほとんどのユーザーはベータ テストを無効にしており、メジャー リリース後に JMP を開くと、数週間に 1 回更新を求めるメッセージが表示されます。 ただし、ベータ テストが有効になっているユーザーの場合、ベータ ブランチが更新されるのは 1 日に数回から週に数回までの場合があります。 |
| |
つまり、これは基本的に通常のユーザー向けの内容です。 |
| |
これにスクリプトを提供したい場合は、いくつかの方法があります。 1 つは GitLab UI を使用することです。 これで、今見たメニュー構造が... |
| |
...ディレクトリ構造... |
| |
...リポジトリ。 それで、新しいものを作成します... |
| |
...メニューまたはサブ メニューは、新しいディレクトリを作成するだけで簡単です。 ここで、これを呼びましょう... |
| |
...「デモ」 |
| ヨハン |
そしてそれを追加します。 |
| ヨハン |
スクリプトを追加したい場合は、JMP IDE で簡単に作成できるため、非常にシンプルなものを作成する必要があります。 |
| |
こんにちは世界。 |
| |
これで十分でしょう。 実は少し追加の詳細があり、ツールチップを取得するための適切な方法でメニュー項目に名前を付けることです。[???] またはコードマジックを実装しました。つまり、コメントアウトして書き始めると、おっと。 |
| |
あなたも。 |
| |
メニュー名。 |
| マイケル・アッカーマン |
みんな。 |
| |
メニュー名。 |
| ヨハン |
みなさんのメニュー名 |
| マイケル・アッカーマン |
古い習慣。 |
| ヨハン |
こんにちはと呼びましょう。 それから皆さん、ツールチップ。 |
| |
よし、これを保存してみよう。 |
| |
どこへでも、そうですね、デスクトップへ。 そして、ここにアップロードします。 |
| |
テストだったのか? |
| マイケル・アッカーマン |
スクリプトですが、問題ないはずです。 |
| ヨハン |
今... |
| |
このファイルをアップロードすると、この自動化された [inaudible] でパイプラインがトリガーされます。 |
| |
[inaudible] システム。最初にリポジトリのクローンを作成し、次に... |
| |
...その後アドインをビルドすると、JMP の再起動時にプロンプトが表示されます。 |
| ヨハン |
そして全編集の更新。 |
| ヨハン |
更新を選択すると、テスト スクリプトを含むデモ メニューが表示されます。 |
| |
したがって、これは JMP にスクリプトを提供する最も簡単な方法です。 Git の使用に慣れている場合は、より古典的な Git ワークフローを使用することもできます。 ここでバッチウィンドウを開くだけです。 ちょっと聞かせてください... |
| |
そして、リポジトリのクローンを作成できます。 戻りましょう... ここで説明する内容の一部は、ここで使用する GitLab の使用に特有のものになります。 |
| |
ただし、他のリモート リポジトリ コーディングやコード ホスティング システムでも同様です。 |
| |
ここでリポジトリのクローンを作成し、ローカル システムにリポジトリの完全なミラーを作成します。 前と同様に、ここにミラーリングされたディレクトリ構造が表示されます。 |
| |
別のスクリプト。 |
| |
このために。 Y'All メニュー名を改善しました |
| |
こんにちは。 |
| |
今度はそうしたいと言ってください... |
| |
...代わりにプロンプトを開きます。 |
| |
「ハローワールド」と表示されます。 |
| |
さて、今回は、JMP に含まれている組み込み関数の 1 つを使用できます。 スクリプトのインデックスに行きましょう。できることは... |
| |
...Y'All utils を検索してください。 |
| |
そして、errorModal 関数を見つけます。この関数は、その使用方法を示す小さなドキュメント文字列とともにここに表示されます。 |
| |
しかもすでに輸入されているので… |
| |
Y'All utils errorモーダル |
| ヨハン |
そして、単に hello world と言うことができます。 |
| ヨハン |
これを見てみましょう。 |
| |
私たちのリポジトリに... |
| |
...デモ中。 そしてコードをプッシュします。 |
| |
コードはリモート リポジトリにプッシュされ、CICD パイプラインがトリガーされます。 |
| |
...数秒で、パイプラインが実行されていることが確認できるはずです... |
| |
...もうすぐです。 |
| |
まだ始まっていません。 |
| |
少しは得してるかも… |
| |
...せっかち。 それでは行きます。 |
| |
案の定、皆さんへのアップデートをチェックすると、新しいアップデートが表示されるでしょう。 そうですか? |
| |
更新することを選択します... |
| |
...アドイン、そしてデモには改善された hello world が含まれるようになります。 |
| |
わかりました。これがユーザー デモ用の内容だったと思います。 |
| マイケル・アッカーマン |
ありがとう、ヨハン。 それでよろしければ、画面共有を取り戻させていただきます。 |
| ヨハン |
はい。 |
| マイケル・アッカーマン |
そして、このユーザー エクスペリエンスが起こっているときに、舞台裏で何が起こっているのかについて少し触れてみたいと思いました。 そこで、このコードを Visual Studio Code で見ていきます。 |
| |
Zip ファイルをダウンロードしたら、どこからでもこれを見ることができます。少し見やすくするために、すぐに Zen モードに移行します。 さぁ行こう。 |
| |
これが、Johan がスクリプトをアップロードするたびに実行される GitLab CICD パイプラインです。 そこで彼は Git リポジトリにアクセスしました... |
| |
...そして、プラス ボタンを押してスクリプトをアップロードすると、この CICD パイプラインが起動されました。 したがって、これはサーバーがその状況にどのように反応するかを定義する小さなスクリプトです。 |
| |
プレステップとビルドステップ... |
| |
...Git リポジトリとその中のすべてのファイル (Johan の新しいスクリプトを含む) を作業ディレクトリに複製しました。 |
| |
...ランナーと呼ばれるこの処理モジュールは、そのコードを処理できます。 そしてそれをビルドしたので、このビルドステージを実行します... |
| |
CD -- ディレクトリを変更 -- そのビルド ディレクトリに移動し、その Python ビルド スクリプトを実行します。 それは本当に簡単です。 これらすべての新しいファイルを作業フォルダーに複製し、そのフォルダーに移動して、Python 3 で Python ビルド スクリプトを実行します。 |
| |
それでは、Python ビルド スクリプトを見てみましょう。 タブをコントロールしてそこに移動します。 これは build_yall.py です。 |
| |
これは大量のコードですが、これを見て、どのように調べるかについてのガイドが必要な場合は、このプロセス関数まで下にスクロールしてください。 デフプロセスと書いてあります。 |
| |
これは、Y'All を構築し、それを段階的に実行するメイン コードです。 それでは、これについて調べていきます。 |
| |
最初に、Python スクリプトがメニュー階層を構築します。 それでは、それを覗いてみましょう。 これはネストされた Python 辞書を作成し、src/scripts の下のフォルダー構造を調べます。 |
| |
...そして、見つかったすべての JSL ファイルを、その JSL ファイルの名前、ツールチップ、およびファイルの場所を含む辞書に取り込みます。 基本的には、ネストされた辞書を一度に 1 フォルダーずつ構築し、その中をクロールします。 |
| |
次に、それらの各 JSL ファイルのコマンド名を確認します。 私たちはそれらのファイルを解析し、ヨハンがスクリプトの先頭に挿入したすべてのメニュー名とすべてのツールチップを探します... |
| |
...JMP のアドイン メニューでのボタン名とツールチップの内容を定義します。 Y'All がインストールされるたびに、Y'all メニューが表示され、その上にカーソルを置くと、その名前とツールチップに何が表示されるかが表示されます。 |
| |
すべてのメニュー名またはすべてのツールチップのようなマジック コマンドが見つからない場合は、ツールチップのないスクリプト名に戻ります。 したがって、test.jsl は、Johan から見たように、単に test になります。 |
| |
メニュー内のコマンドの辞書は、見つけやすいようにアルファベット順にソートされています。ただし、ヘルプと設定メニューは例外で、常にメニューの一番上に表示されるようにポップアップ表示されます。 |
| |
ヘルプと設定は重要なので。 そして、その情報はすべて JMPcust ファイルに書き込まれます。 |
| |
したがって、.jmpcust ファイルは本質的に、JMP の方法を定義する一種のマークアップ言語ドキュメントです。 |
| |
どのようなメニュー ボタンがあるべきか、メニュー自体はどこにあるべきか、ツール ヒントはどのようなものであるべきかは、すべてこの .jmpcust ファイルで定義されます。 |
| |
Tab キーを押して「Y'All」に移動すると、これがどのように表示されるかがわかります。 それは文字通り、メニューが何であるかについての定義の束です... |
| |
...そしてメニューの名前とその内容。 したがって、ヘルプと設定メニューには、Y'All アップデートのチェック、ベータ テスト モードのオンオフの切り替えなどが含まれていることがわかります。 |
| |
したがって、Python スクリプトは、この jmpcust ファイル書き込み関数を使用して、これを自動的に書き込みます。 |
| |
次に、アドイン定義ファイルを作成します。 つまり、addin.def と version.txt です。 Addin.def -- その例に移ります -- は少し... |
| |
...JMP がアドインを識別し、バージョン番号とサポートされる最小 JMP バージョンを見つけるために使用する説明のビット。 |
| |
12と言います。 これは私たちの任意の選択のようなもので、12 時までは心配する必要がないというだけです。 自分で作業を開始する場合は、Python コードでこれを変更できます。 ご覧のとおり、アドインのバージョンもここで定義されています。 |
| |
そして、これを version.txt というファイルに書き込むと、addin.def で見たのと同じ整数が version.txt にも含まれるようになります。 |
| |
その理由は、リモートで読み取ることができる優れた小さなファイルだからです。 サーバーの HTTP 経由で JMP で開くことができます... |
| |
...そして、version.txt ファイル内のバージョン番号をすぐに確認して、現在のバージョンと比較してください。 したがって、現在インストールされているバージョンが version.txt と一致しない場合は... |
| |
...つまり、更新する必要があるか、少なくとも更新できるということです。 使用するバージョン番号は、UTC タイムゾーンで実行された日時です。 |
| |
そして、それを 1970 年からの基本的な秒数に変換します。 したがって、これは日付時刻形式に変換できる整数です。 |
| |
したがって、2 つの数値を整数ベースで比較できるのは素晴らしいことです。 それらが互いより大きいか小さいかを簡単に確認でき、それを日付に変換し直すこともできます。 したがって、これは、バージョン番号を JMP に保存する非常に効率的な方法です。 |
| |
ついに。 |
| |
次に行うことは、これらの追加深度ファイルを作成したことにより、カスタム関数スクリプトを作成することです。 したがって、これは少し奇妙で、説明するのが少し難しいです。 迅速かつ簡潔に行うよう最善を尽くします。 |
| |
JMP にはカスタム関数を定義する 2 つの方法があります。 1 つは、JMP スクリプト言語の function と呼ばれる関数を使用したもので、これが何を行うか -- ここでは、utils.jsl と Y'All の importables サブ ディレクトリに切り替えます。 |
| |
Function は、他の場所から使用および呼び出しできるカスタム関数を定義します。 そして、これを名前空間で定義できます。 この場合、Y'All utils という名前空間があります... |
| |
...関数名 recode if を使用します。 そして、これらの引数を受け取り、このドキュメント文字列とこの関数コードをここに記述します。 |
| |
JSL でカスタム関数を記述する 2 番目の方法は、新しいカスタム関数 function を使用する方法です。これは function とは異なります。 これは JMP 14 で追加されたものだと思います。 |
| |
新しいカスタム関数は、その関数を JMP スクリプト インデックスと JSL IDE に追加して、その関数の操作を非常に簡単にしたり、ドキュメントを使用して別の場所で再利用したりすることを非常に簡単にします。 |
| |
つまり、 function の利点は、JMP のバージョンさえわからない時点まで遡って機能することです... |
| |
...JMP を使用する前。 新しいカスタム関数の利点は、もう少し堅牢であること、ドキュメントと JMP スクリプト インデックスが得られ、JSL IDE で色付けして取得できることです。 |
| |
...コードを作成する際のヒント。 したがって、新しいカスタム関数は気に入っていますが、JMP 14 より前の JMP をサポートしたいと考えています。 それでビルドスクリプトは... |
| |
...ここでは、基本的に importables ディレクトリを解析し、その関数 function function function... に一致する関数定義を探します。 |
| |
...ドキュメント文字列を含む JSL 内。 したがって、スラッシュ アスタリスク境界間のドキュメント文字列を解析して、それを新しいカスタム関数に取り込もうとします。 ここで例を見ることができます。 |
| |
その recode if 関数を取得し、それを Y'All utils 名前空間内の recode if という新しいカスタム関数に自動的に書き換えます。 |
| |
そして、プロトタイプ、説明、およびこれがすべて表示されるスクリプト インデックス カテゴリがあります。 したがって、JMP 開発者はこれらすべてを自動的に利用できるようになります。 したがって、JSL の古い関数関数を使用して何かを記述しても、この JMP スクリプト インデックスを取得できます。 |
| |
...Y'All ビルド スクリプトを自動的に使用することで実現します。 ここでプロセス コードまで下にスクロールしてください。 |
| |
ここまでの作業が完了したら、アドインを構築します。 JMP アドインは、変更された Zip 形式を使用しています。 そこで、Python 3 を使用してこれを Zip 圧縮し、名前を YALL.jmaddin に変更します。これで、CICD ランナーが動作する作業ディレクトリで利用できるようになります。 |
| |
したがって、このビルド スクリプトが完了した後の CICD パイプラインの最後のステップは、作業ディレクトリに移動してアーティファクトをアップロードすることです。 |
| |
ビルド アーティファクトは GitLab CICD の概念であり、これら 2 つのファイル YALL.jmpadin と version.txt を取得してサーバーにアップロードし、特定の URL で利用できるようにします。 |
| |
したがって、その URL は常に一貫しており、GitLab でこれを実行しているブランチに関連付けられているため、ベータ バージョンとメイン リリース バージョンのどちらを使用しているかがわかります。 |
| |
さあ、JMPで――飛び越えるぞ、はぁ! |
| |
...autoUpgrade.jsl に。 ここで、アドインの新しいバージョンを確認します。 JMP がロードされると、皆さんはこの自動アップグレード スクリプトを実行します。 |
| |
...GitLab リポジトリ内で新しいバージョンを探します。 ここでは、ベータ モードまたはメイン モードにかかわらず、ベータ フラグをロードしていることがわかります。 |
| |
そして、そのモードの特定のチャネルを調べます。 それで私たちは引っ張ります... |
| |
...そのチャンネル選択に基づいて特定の URL から。 したがって、ベータ モードの場合は、ベータ チャネルが表示されます。 メイン モードの場合は、メイン チャネルが表示されます。 そして、YALL.jmpadin ファイルと version.txt を探します。 |
| マイケル・アッカーマン |
次に、そのバージョン番号とインストールされているバージョン番号を比較し、異なる場合はユーザーにアップデートを要求します。 Johan の画面に表示されたダイアログ ボックスをポップアップ表示します... |
| マイケル・アッカーマン |
...これにより、アップデートが必要かどうかが尋ねられ、そのバージョン番号が何であるかがわかります。 そして、彼らはそうすることを選択することも、しないことを選択することもできます。 |
| |
それで。 |
| |
本当に必要なのはそれだけです。 すべてはユーザーのために舞台裏で行われます。 プラスボタンを使用して GitLab UI 経由でスクリプトをアップロードし、ファイルをアップロードして新しいものをビルドします。 |
| |
...JMP アドイン、つまり Y'All JMP アドインを作成し、同じリポジトリに接続している他のユーザーが利用できるようにします。 |
| |
すべては舞台裏で起こっています。 ユーザーにとっては、JMP のレッド ホット スポットから JMP スクリプトを保存し、GitLab リポジトリにアップロードするのと同じくらい簡単です。 |
| |
そこで、Y'All の機能についておさらいしたいと思います。 |
| |
非常に簡単なスクリプトの提供が可能です。 これまで見てきたように、ファイルをアップロードし、JSL スクリプトをアップロードして、それらを使用できるようにするための優れたユーザー インターフェイスが用意されています。 |
| |
これに伴い、自動バージョン管理とコード アーカイブが提供されます。 したがって、これはすべて Novozymes サーバーに保存されている中央の GitLab リポジトリを通じて行われるため、すべてが追跡され、保存されます... |
| |
...永久に。 自動更新により、開発者はユーザーにスクリプトを非常に簡単にリリースでき、常に最新バージョンを入手できます... |
| |
...これらのスクリプトは適切に動作し、品質管理されています。 そして、ベータ版とリリース版のチャンネルもあります。 |
| |
したがって、ベータ チャネルは基本的に即座に構築され、新しいスクリプトが皆さんにヒットしてから数秒以内に利用可能になり、頻繁に更新されます。 そして放出チャネルはよりゆっくりと制御された放出構造になる予定です。 それをどのように行うかについて触れたいと思いました。 |
| |
ここで、GitLab リポジトリのブランチ構造を確認できます。 多くのアップデートを含むベータブランチがあります。 リリースブランチがあります。 本店があります。 Novozymes で私たちが何をするか -- これは完全にユーザーの選択次第です -- |
| マイケル・アッカーマン |
...リリースしたい状態になったときに、このベータ ブランチを取得します。 ベータ版とリリース版の間でマージ リクエストを開き、それをリリース ブランチに移動します。 それは本質的に画面リリースブランチをフリーズすることになります... |
| マイケル・アッカーマン |
...コード バージョンでそれを実行し、このリリース ブランチでコードをロックダウンします。 |
| |
ベータ版はまだ変更される可能性があります。 ベータ版でもスクリプトを追加したり、スクリプトを変更したりできます。 しかし、現在リリースは凍結されています。 私たちはそれを品質チェックし、準備ができたら、その状態に満足したら... |
| |
...それをメインにリリースしてそこにマージし、Y'All のメイン ブランチ ユーザーが利用できるようになりました。 |
| |
発見可能なコードがあります。 すべては中央リポジトリ上のファイル構造で利用可能です。 開発者はスクリプトを確認して... |
| |
...似たものを見つけて構築し、改良してください。 また、ユーティリティ関数がスクリプト インデックスに自動的に追加され、開発者が自動的に利用できるようになりました。これにより、開発者は、次の場合に再コード化するなどのコード ブロックを再利用できます。 |
| |
...または、データベース クエリなど、デモとして含めたものもあります。 それで、皆さんの目を通してみると... |
| |
...Y'All がインストールされている JMP スクリプト インデックス内の名前空間。 いくつかの postgres データベース クエリと postgres データベース ツールが、その使用方法を示すために組み込まれていることがわかります。 |
| |
これらすべては、Y'All ユーザー ベースの他のユーザーと共有したいユーザー作成の JSL スクリプトを JMP で開始することによって行われます。 |
| |
彼らは GitLab にアクセスします。 そして、ユーザーインターフェイスで、それをY'Allで必要なメニューの場所に一致するサブディレクトリにアップロードします。デモで必要な場合は、デモテスト... |
| |
...彼らはそれを src スラッシュ スクリプト スラッシュ デモ スラッシュ デモ サブディレクトリに置きます。 それが完了すると、自動ビルド パイプラインが起動して Python ビルド スクリプトを起動し、構造を解析してアドオンをビルドします。 |
| |
...アドインを作成し、それを GitLab サーバーに再アップロードします。 その後、JMP はその新しいアップデートを検出し、それをダウンロードして JMP の Y'All アドインをアップデートすることを自動的に提案します。 そして、そのスクリプトは、ベータ チャネルのユーザーにわずか数秒以内に利用可能になります。 |
| |
Y'All に興味を持っていただければ幸いです。ご自身または組織内で Y'All を使用することに興味を持っていただければ幸いです。 あなたがそうであれば、どのように始めるかについていくつかのヒントを提供したいと思いました。 |
| |
JMP ユーザー コミュニティでこのビデオを視聴している場合は、JMP ユーザー コミュニティに投稿される Zip ファイル (同じページにあるはずです) には、開始するために必要な要素がすべて含まれています。 そのうちのいくつかは修正が必要になります。 それらの一部は、実際にプレイできるデモ コードです。 |
| |
でも、ぜひダウンロードして見てください。 その Zip ファイル内の Python ビルド スクリプトは、ネイティブ Python 3 ライブラリに基づいて構築されています。 ビルド システムには Python 以外は何もインストールされていません。 また、標準の Python 3 インストール上で実行できるはずです。 |
| |
継続的な統合とデプロイのために GitLab for CICD を使用して行う中央リポジトリのストレージと自動化は、他のプロバイダーを通じて利用できます。 GitLab、GitHub、Azure、AWS はすべて同様の実装を行っています。 |
| |
オプションの巨大なエコシステムがあるため、実装の詳細は組織に固有のものになります。 |
| |
その残念な副作用は、CICD パイプライン ファイル gitlab-ci.yml を独自のシステムで自動化された方法で実行する場合、変更が必要になることです。 もちろん、Novozymes の従業員でない限り、システム上ではそのままでは機能しません。 |
| |
内部ベータ データベースを反映したユーティリティ関数の接続文字列は、ODBC のアンダースコア接続アンダースコア文字列に置き換えられました。 |
| |
これらの関数のいずれかを使用したい場合は、作業ディレクトリ内のコードに移動し、データベースを反映するように文字列を変更する必要があります。 |
| |
それでは、もう一度、皆さんに興奮していただければ幸いです。 皆さんも興味を持っていただければ幸いです。 フィードバック、質問、コメントがありましたら、お気軽に私または Johan までご連絡ください。 |
| |
...彼らと一緒に。 また、このコードを使って改良したり、このツールキットを使って興味深い方法で使用したりする場合は、貢献も歓迎します。 ありがとう。 |
| クリスティ スペイン |
わかりました、それは素晴らしかったです。 |
| マイケル・アッカーマン |
時間。 |
| クリスティ スペイン |
適度に完璧です、はい、はい。 |
| マイケル・アッカーマン |
そうですよね。 |
| |
ヨハンがJMPは望んでいないと言ったことは問題ではありません。 |
| クリスティ スペイン |
あなたが知っている。 |
| マイケル・アッカーマン |
おそらくほとんどの人は理解できないと思います。 |
| クリスティ スペイン |
新しい言葉としては気に入っています。 |
| ヨハン |
それで、それを使用しないように言われたので、名前を変更しなければなりませんでしたが、私が持っていたバージョンを削除しなかったため、IIは失敗しました。 |
| |
以前にインストールされていました。 |
| |
それで、自分がすでにベータ版であることに気づいたときは、ある意味がっかりしましたが、その後、そのままになりました。 |
| |
いずれかの方法。 |
| クリスティ スペイン |
はい、それはそれでいいと思いますが、とても面白かったです。皆さんもきっと喜んでこれを見てくれると思いますので、ご参加いただき誠にありがとうございます。 |
| |
先ほども言いましたが、ジェフに編集してもらうためにビデオをアップロードするつもりです。いつ完成するかはわかりませんが、 |
| |
とにかく、皆さんは 10 月にすべてを見ることになりますが、何かあれば必ずお知らせします。 |
| |
またよろしくお願いします。 |
| ヨハン |
通常の JMP に近い新しい種類の JMP が登場しました。 |
| マイケル・アッカーマン |
あなたがどこか別の場所にいると言っているのは、ちょっとしたことです。 |
| |
うん。 |
| ヨハン |
Y'All ディレクトリ。 |
| クリスティ スペイン |
はい、ありがとうございます、そうなのはわかっています。 |
| |
病気に対して多大なご尽力をいただいており、私たちはそれに感謝しています。 |
| マイケル・アッカーマン |
どういたしまして。 |
| |
についてありがとうございました。 |
| マイケル・アッカーマン |
次のアップの後は素早く移動します。 |
| クリスティ スペイン |
はい、もちろん、お二人にお会いできてとても嬉しかったです。 |
| |
次回もよろしくお願いします。 |
| |
少なくともマイケルとは直接会えるだろうし、ヨハンもあそこで会いたいんだけどね。 |
| |
うん。 |
| マイケル・アッカーマン |
彼がいるかどうかは、特に毎回のサミットや過去に直接会ったときに、ローリーですべてのものがオープンするのと同じ週だったので、丸一週間くらいはできるだろう。 |
| |
計算カンファレンス。 |
| |
地元の現地従業員もたくさん見かけます。 |
| ヨハン |
旅行の予算について議論するほうが簡単かもしれません、それならそうですね。 |
| クリスティ スペイン |
2 つで 1 つです。 |
| |
うん。 |
| ヨハン |
よし。 |
| クリスティ スペイン |
さて、月曜日の素晴らしい一週間をお過ごしください、ありがとう。 |
| |
あなたもすぐにまた話せますよ。 |
| ヨハン |
さよなら。 |
| |
さよなら。 |