| スピーカー |
トランスクリプト |
| ジョン・ムーア |
こんにちは、ご参加いただきありがとうございます。ジョン・ムーアです。今日は、JMPアドインの作成、公開、管理、監視のために私が開発したフレームワーク「Lupine」についてお話します。 |
| |
まず最初に、少しだけ私の自己紹介をさせていただきます。ジョン・ムーアと申します。工学と経営学の学位を取得していますが、根っからのデータオタクです。エランコ・アニマルヘルスでアナリストとして19年間勤務しています。 |
| |
私には息子が一人、夫が一人、犬が一匹いて、現在およそ8万匹のミツバチがいます。 |
| |
では、どのようにしてここまで辿り着いたのでしょうか?Elancoには、獣医や栄養士といった技術コンサルタントであるTC(テクニカル・コンサルタント)が世界中にいます。彼らにJMPとJMPスクリプトを使ってもらいました。 |
| |
そして、これらの TC の多くは、非常に遠隔地にあるため、インターネットに断続的にしかアクセスできません。 |
| |
つまり、アドホックなスクリプトが人から人へと渡される状態でした。バージョン管理はなく、誰がどのスクリプトを使っているのか全く分かりませんでした。 |
| |
スクリプトの公開も更新も困難でした。そこで、スクリプトを標準化し、バージョン管理を行い、誰が何を行い、誰がどのスクリプトを使用しているかを簡単に把握できる状態を目指して、Lupineを開発しました。 |
| |
更新を簡単に配布することができ、追加のボーナスとして、数式エディターにいくつかの数式を追加しました。 |
| |
では、ここでLupineを見てみましょう。Lupineをインストールしたら、それほど難しいことはないことがわかります。JMPにはLupineメニューが1つだけあり、アップデートの確認しかありません。 |
| |
更新プログラムの確認を見ると、Lupine によって制御されるすべてのアドインがリストされていることがわかります。 |
| |
最新でない場合は「最新です」と表示されます。最新の場合は「はい」と表示されるので、とても簡単です。「利用可能なアドインはこちらです。最新バージョンをお持ちですか?」と表示されます。 |
| |
また、数式エディタでは、月/年のように、その年の最初の日を返す数式をよく使うので、 |
| |
日付が経過した月の日付です。年、四半期、季節があります。また、週の開始、終了などの操作ができるカウンター週もあります。 |
| |
Lupineには使用状況ログ機能も搭載されています。ユーザーがLupineで管理されているスクリプトを使用するたびに、ログファイルが作成されます。これにより、誰がどのスクリプトをどのアドインでどのタイムスタンプで使用したかが分かります。これは、どのスクリプトが有用で、どのスクリプトが有用でないかを判断するのに非常に役立ちます。 |
| |
組織内に Lupine を設定するとします。 |
| |
まず最初に、zipファイルをダウンロードします。Lupineのzipファイル、Lupineマネージャー、そしてLupineテンプレートです。 |
| |
また、Lupine の例もありますので、どこかにフォルダを一つ作って、そこから 3 つをダウンロードすることをお勧めします。 |
| |
管理者として次に決めなければならないのは、ネットワークフォルダをどこに置くかということです。Lupine にとって非常に重要なネットワークフォルダが 2 つあります。 |
| |
1つ目は、アドインデポフォルダです。このフォルダには、すべてのアドインと、それらのアドインに関するメタデータを含む PublishedAddins.jmp ファイルが含まれます。 |
| |
もう一つ考慮すべき点は、中央ログフォルダです。これは、Lupine が管理するスクリプトを実行するたびに作成される、アップロードされたログファイルがすべて格納されるフォルダです。 |
| |
ご覧のとおり、公開されたアドインファイルに含まれるすべてのアドインの例があります。そして、これはほんの一例です。 |
| |
ログファイルです。つまり、すべてのログファイルには一意のIDが付与されています。これについては後ほど説明しますが、ログファイルを取得する際には新しいものだけを取得するので、毎回すべてをダウンロードする必要はありません。 |
| |
保存場所を決めたら、Lupineにその場所を知らせる必要があります。そのためには、Lupineフォルダを開き、解凍して |
| |
アドイン管理サブフォルダの下に、setup というファイルがあります。これがセットアップで探す部分です。 |
| |
ここでアドインデポのパスとセントラルログのパスを定義します。本番環境では、これらのネットワークロケーションが必要になりますが、これは簡単な例なので、自分のマシン上に作成したものです。ここでネットワークパスを定義します。 |
| |
それが終わったら、自分の組織向けにLupineをビルドしましょう。Lupineフォルダには、gitattributesファイル以外のすべてのファイルが格納されています。私はGitHub Desktopを使って管理しています。 |
| |
スクリプトです。強くお勧めします。おかげで生活がとても楽になりました。ただし、スクリプトには入れたくないので、gitattributesファイル以外のものをすべて取得してください。それらを右クリックし、「送信」を選択して |
| |
これらを圧縮されたzipフォルダに送信してください。これですべてのファイルを1つのzipファイルとして保存できます。JMPのアドインファイルは実際にはzipファイルです。そこで、このファイルをLupine.jmpaddinに名前変更します。 |
| |
名前を付けたら、それをダブルクリックするだけでインストールされます。これでLupineがマシンにインストールされます。まだ何もしませんが、インストールされています。メニューバーを見れば、Lupineが見つかります。 |
| |
次に、Lupine Managerについてお話しましょう。これは管理者向けに設計された別のアドインです。 |
| |
組織内のすべてのアドインを追跡し、更新します。そのため、これはおそらく一般的なユーザーのマシンにはインストールされないでしょう。 |
| |
役に立ちません。管理者としてアドインを管理するのに役立つツールが揃っています。 |
| |
Lupine Managerを開いたらまず最初に設定に行き、 |
| |
組織内のすべてのユニーク ユーザーとログ データを取得するユニーク ユーザー ファイルです。 |
| |
ユニークユーザーテーブルはユーザーIDをリンクしています。つまり、コンピューターからユーザーIDを取得しているということです。 |
| |
アイデンティティですが、大抵は特に意味のあることは何も示しません。例えば、私の場合は00126545です。 |
| |
John Moore という文字列をリンクさせたいと思っています。これが user unique users の機能です。ログデータファイルにはログごとに行があります。これは、これまでに作成したすべてのログファイルの要約です。これらを思う存分分析できます。 |
| |
さて、Lupine Manager の使用を開始したいとします。 |
| |
まず最初に、管理したいアドインを指定する必要があります。そのためには、「アドインの作成」に移動し、次に「利用可能なアドインの管理」に進みます。 |
| |
すると、この部分は空白になります。そこに到達したら、「アドインを追加」をクリックし、管理したいアドインのファイルを含むフォルダを選択できます。 |
| |
すると、利用可能なアドインの一覧が表示されますので、「アドインの作成」をクリックします。ここでは2つのオプションがあります。「アドインの作成」は、 |
| |
スクリプトが入っているフォルダにアドインファイルがあるので、テストなどに最適です。動作するか確認するために、簡単なビルドを行いたいのですが。 |
| |
ビルドと公開では同じ処理が行われますが、さらに、対象のアドインを取得し、アドインデポフォルダにコピーし、公開済みのアドインファイルを更新します。これで社内への配布準備が完了し、テストも完了し、公開準備が整います。 |
| |
すべてのログ データをインポートしたい場合は、ログ データのインポートと処理を実行するだけで、すべての新しいログ ファイルが取り込まれ、ログ データ ファイルに追加されます。 |
| |
ここにはユーザーサマリーがあり、誰がどのアドインを使用しているかを簡単に表にまとめています。これにより、 |
| |
どのアドインを最も多く使用しているかを示します。この例では、Lupine と LupineManager が頻繁に使用され、LupineExample1 が多少使用され、LupinExample はあまり使用されていないことがわかります。 |
| |
さて、LupineとLupine Managerがインストールされているとします。そして、Lupineで管理したいアドインがいくつかあるとします。それでは、その手順について説明しましょう。 |
| |
まず最初に、アドインテンプレート(Lupineテンプレートファイル)を開いて、どこかにコピーしてください。このファイルには、Lupineをアドインで動作させるために必要なスクリプトや要素がすべて含まれています。さあ、コピーしてください。 |
| |
次に、いくつかの手順を順に進めていきます。まず、addin.defファイルを編集します。 |
| |
アドインに含めるすべてのスクリプトを作成するか、すでにスクリプトがある場合は更新します。 |
| |
アドインをビルドすると、メニューが適切に表示されるようにカスタマイズされます。クリックすると、希望どおりに表示されます。メニューを修正したら、再度アドインをビルドし、テストして正しく表示されることを確認します。テストが完了したら、公開できます。 |
| |
それでは、このaddin.defファイルについてお話しましょう。addin.defは実際には小さなテキストファイルですが、すべてのアドインに必要です。これにはアドインに関する重要な情報が含まれています。 |
| |
IDと名前は何ですか? アドインの名前に変更するには、IDと名前を編集する必要があります。 |
| |
これは一度だけ行う作業です。一度設定すれば、今後アドインで変更する必要はありません。つまり、これは一度だけ…設定時に一度行うだけです。 |
| |
次に、このアドインにどのスクリプトを入れるかを決める必要があります。私は、 |
| |
Lupine のログファイルを作成します。 |
| |
これは、Lupine を使用しているすべてのアドインのログファイルを作成するものです。つまり、これが実際にログを作成し、バージョン監視を可能にするのです。 |
| |
そのため、このヘッダーをすべてのファイルの最後、つまりスクリプトの先頭に配置することをお勧めします。これにより、監視が可能になります。 |
| |
さて、これですべてのスクリプトが揃いました。次はメニューファイルを好みの見た目に仕上げましょう。今は「テンプレート」とだけ書かれています。 |
| |
まずはこれをビルドします。以前Lupineをビルドした時と同じように、gitattributesファイル以外のすべてを選択し、右クリックしてzip圧縮し、名前を変更します。 |
| |
同じことを繰り返します。すると、テンプレートメニューがそのまま残ってしまうので、間違ったメニューが表示されてしまいます。そのため、テンプレートメニューを更新して、必要な機能を実現する必要があります。 |
| |
インストールが完了すると、新しいスクリプトと新しいアドイン、テンプレートが表示されます。右クリックして |
| |
メニューの上部に長いリストがあります。そして一番下に「カスタマイズ」があり、メニューとツールバーに移動するだけです。さて、そこに移動すると、このような画面が表示されます。 |
| |
まず最初に、JMPに何を編集したいのかを伝えます。編集したいのは、特定のアドイン(今はテンプレートと呼ばれています)に付属するメニューです。 |
| |
上の変更ボタンまで進みます。クリックすると、たくさんの選択肢が表示されます。ここではJMPアドインのラジオボタンをクリックし、下の方に進みましょう。 |
| |
対象のアドインです。わかりました。ここではテンプレートとしてそのまま残しましたが、addin.defファイルで既に変更済みなので、そのまま変更してください。 |
| |
それをやると、断片的な部分が見えてきます |
| |
アドインに属する項目は左側に青色で表示されます。 |
| |
これを編集して変更し、新しいアドインに必要なものにします。 |
| |
では、これを見てみましょう。「What's New」の「About」を標準スクリプトとして組み込んでいますが、これを取得すると、次のページを指していることがわかります。 |
| |
このテンプレートアドインは、あなたが望むものではありません。あなたは独自のアドイン名を持っているはずです。それでは、このファイル内の「アドインを実行」をクリックします。 |
| |
この「アドイン使用」フォルダをクリックし、必要なアドインを選択します。これで、JMPが先ほど作成した新しいスクリプトを参照するようになります。「参照」をクリックします。 |
| |
そして、必要な特定のスクリプトを参照して移動し、「いいえ、テンプレートでは使いたくありません。新しいアドインで使用してください」と言うことができます。 |
| |
同様に、メニューの「新着情報」項目でも同じことができます。 |
| |
これらが完了したら、あとは必要なものをすべて追加するだけです。 |
| |
青い領域を右クリックすると、「前に挿入」や「後に挿入」のオプションが表示され、メニューから項目を追加したり削除したりできます。 |
| |
追加できる項目は主にコマンドです。サブメニューを作成してより深い階層に階層化したり、区切り線を追加して区切り線で区切ったりすることもできます。 |
| |
そこで、メニューを作成し、そこに先ほど作成したスクリプトのすべての項目を配置します。 |
| |
そしてそれを保存しますが、2 回保存します。 |
| |
ここで保存すると、マシンにインストールされているアドインのバージョンが変更されます。 |
| |
それは良いことですが、アドインをビルドするフォルダーに保存することも必要です。次にアドインをビルドするときに適切なメニュー ファイルが含まれるように、そこに保存する必要があります。 |
| |
したがって、「保存」をクリックした後、「名前を付けて保存」をクリックして、アドイン ファイルが含まれているフォルダーに移動します。 |
| |
さて、スクリプトは完成しました。addin.defも定義済みで、メニューも完成しました。 |
| |
次に必要なのは、実際にこれを構築してテストすることです。通常はユーザーに送り、何がうまくいって何がうまくいかないかを教えてもらうことになります。 |
| |
その後、実際に公開することができます。公開すると、情報を更新するように促すメッセージが表示されます。 |
| |
最も重要なのは、これはLupine Managerで最も重要なことですが、リリース日を変更することです。これにより、より新しいバージョンがあることを人々に知らせることができます。 |
| |
利用可能なバージョンですね。つまり、これは公開日と比較され、Lupine はそれに基づいて「アップロードできるより新しいバージョンがあります」と判断するのです。 |
| |
修正メモのようなメモを追加することもできます。これらは今回変更した点です。アドインに加えた素晴らしいアップデートや変更点です。これを実行したら、「公開」をクリックすると |
| |
その後、Lupine Manager はそのアドインのコピーを取得し、アドインを作成するフォルダー (ソース コードがあるフォルダー) に配置します。 |
| |
また、アドインデポに公開され、公開されたアドインファイルが最新バージョンに更新されます。 |
| |
最も重要なのは、リリース日が記載されていることです。そして、ユーザーが「アップデートを確認」をクリックすると、「このアドインの新しいバージョンが利用可能です。ダウンロードしますか?」と表示されます。クリックするとインストールされ、あなたのマシンだけでなく、相手のマシンにもダウンロードされます。 |
| |
はい、本当に簡単な紹介でした。 |
| |
ご自身で設定するのに十分な資料がここに揃っていることを願っています。もし足りない場合は、john_moore@elanco.com までご連絡ください。設定をお手伝いさせていただきます。 |
| |
本当にありがとう。またね。さようなら。 |