스피커 | 성적 증명서 |
| 존 무어 | 안녕하세요, 함께해주셔서 감사합니다. 제 이름은 John Moore입니다. 오늘은 JMP 추가 기능을 생성, 게시, 관리 및 모니터링하기 위해 개발한 프레임워크인 Lupine에 대해 이야기하겠습니다. |
| 그래서 먼저 나에 대해 조금. 제 이름은 John Moore이고 학위는 엔지니어링 및 관리에 있습니다. 그러나 사실 저는 마음속으로 데이터 괴짜입니다. 저는 지난 19년 동안 Elanco Animal Health에서 분석가로 일했습니다. |
| 나는 아들 하나, 남편 하나, 개 하나, 그리고 현재 약 80,000마리의 꿀벌이 있습니다. |
| 우리가 어떻게 여기까지 왔는지 알아요? Elanco에는 일반적으로 수의사 또는 영양사와 같은 기술 컨설턴트가 전 세계에 퍼져 있는 TC가 있으며 이들이 JMP를 사용하고 JMP 스크립팅을 사용하도록 했습니다. |
| 그리고 이러한 TC 중 다수는 너무 멀리 떨어져 있기 때문에 인터넷에 간헐적으로만 액세스할 수 있습니다. |
| 그래서 우리는 임시 스크립팅이 사람에서 사람으로 전달되는 상태를 가졌습니다. 버전 관리가 없었습니다. 누가 어떤 스크립트를 사용하는지 알 수 없습니다. |
| 그리고 스크립트를 내보내는 것도 어려웠고 스크립트를 업데이트하는 것도 어려웠습니다. 그래서 저는 Lupine을 만들어 스크립트를 표준화하고 버전을 제어하고 누가 무엇을 하고 있고 누가 어떤 스크립트를 사용하고 있는지 쉽게 알 수 있도록 했습니다. |
| 업데이트를 쉽게 배포할 수 있었고 추가 보너스로 수식 편집기에 몇 가지 수식을 추가했습니다. |
| 그럼 여기서 루팡을 한번 살펴볼까요? 좋아, 일단 Lupine을 설치하면 별로 없는지 알 수 있을 것이다. JMP에는 Lupine 메뉴가 하나만 있으며 업데이트 확인만 있습니다. |
| 업데이트 확인을 보면 Lupine에서 제어하는 모든 추가 기능이 나열됩니다. |
| 최신 상태가 아니면 최신 상태라고 표시됩니다. 최신 상태라면. 아주 간단합니다. 간단히 말해서 다음은 사용 가능한 추가 기능입니다. 최신 버전이 있는지 없는지? |
| 또한 수식 편집기에서는 이러한 특정 수식을 많이 사용하기 때문에 월/년과 같이 첫 번째 날을 반환합니다. |
| 날짜의 월이 지나갔습니다. 연도 분기가 있고 시즌이 있습니다. 또한 주 시작, 주 종료, 이러한 종류의 작업을 수행할 수 있는 카운터 위크가 있습니다. |
| 또한 Lupine에는 사용량 로깅이 있습니다. 그래서 사용자가 Lupine에서 관리하는 스크립트를 사용할 때마다 로그 파일을 생성합니다. 따라서 우리는 누가 어떤 스크립트를 사용했으며 어떤 타임스탬프에 무엇을 추가했는지 알고 있습니다. 그리고 이것은 어떤 스크립트가 유용하고 어떤 스크립트가 그렇지 않은지 파악하는 데 정말 도움이 됩니다. |
| 조직에 Lupine을 설정하려고 한다고 가정해 보겠습니다. |
| 좋습니다. 첫 번째 단계는 zip 파일을 다운로드할 것입니다. Lupine zip 파일, Lupine 관리자 및 Lupine 템플릿이 있습니다. |
| 그리고 우리는 또한 루팡의 예를 가지고 있습니다. 그래서 나는 당신이 어딘가에 하나의 폴더를 찾아서 거기에 있는 세 개를 다운로드할 것을 제안합니다. |
| 관리자가 이것을 설정하기 위해 결정해야 할 다음 사항은 네트워크 폴더를 어디에 둘 것인가입니다. Lupine에게 정말 중요한 두 개의 네트워크 폴더가 있습니다. |
| 첫 번째는 저장소 폴더에 추가하는 것입니다. 따라서 이것은 모든 추가 기능과 해당 추가 기능에 대한 메타데이터가 포함된 PublishedAddins.jmp 파일을 포함할 폴더입니다. |
| 우리가 생각해야 하는 다른 것은 중앙 로그 폴더입니다. 따라서 이것은 사람들이 Lupine 관리 스크립트를 실행할 때마다 생성하는 업로드된 모든 로그 파일을 포함할 폴더입니다. |
| 여기에서 볼 수 있듯이 게시된 추가 기능 파일에 있는 모든 추가 기능의 예가 있습니다. 다음은 |
| 로그 파일. 따라서 모든 로그 파일에는 고유한 ID가 있습니다. 나중에 이것에 대해 이야기하겠지만, 우리가 들어가서 그것들을 잡을 때마다 우리는 새로운 것만 가져오기 때문에 매번 모든 것을 다운로드할 필요가 없습니다. |
| 그래서 그것들을 어디에 둘 것인지 결정했다면, 우리는 그것들이 어디에 있는지 Lupine에게 말해야 합니다. 우리가 하는 방법은 압축을 푼 후 Lupine 폴더로 이동하는 것입니다. |
| 추가 기능 관리 하위 폴더 아래에 setup이라는 파일이 표시되며 이는 설정에서 찾아야 하는 부분입니다. |
| 여기에서 추가 저장소 경로와 중앙 로그 경로를 정의합니다. 이제 프로덕션 환경에서는 이러한 네트워크 위치가 필요하지만 이 간단한 예를 위해 여기에서 내 컴퓨터에서만 이러한 위치를 만들었습니다. 하지만 여기에서 네트워크 경로를 정의해야 합니다. |
| 완료했으면 이제 조직을 위해 Lupine을 빌드할 때입니다. 따라서 Lupine 폴더에서 gitattributes 파일이 있는 경우를 제외하고 모든 것을 가져오고 싶습니다. 내 관리를 위해 GitHub Desktop을 사용합니다. |
| 스크립트. 강력히 추천합니다. 그것은 내 삶을 훨씬 더 좋게 만들었습니다. 그러나 그것들을 스크립트에 넣고 싶지 않으므로 gitattributes 파일을 제외한 모든 것을 가져오십시오. 그것들을 마우스 오른쪽 버튼으로 클릭하고 보내기를 말하십시오. |
| 압축된 zip 폴더로 보냅니다. 이렇게 하면 모든 파일의 zip 파일이 생성됩니다. 이제 JMP 추가 기능 파일은 실제로 zip 파일일 뿐입니다. 그래서 우리가 할 일은 Lupine.jmpaddin의 이름을 바꾸는 것입니다. |
| 그리고 이름을 지정하고 나면 해당 항목을 두 번 클릭하기만 하면 설치됩니다. 그러면 컴퓨터에 Lupine이 설치됩니다. 이제 우리는 아직 아무것도 하지 않을 것이지만 거기에 있습니다. 메뉴 표시줄에서 위를 보면 Lupine이 표시됩니다. |
| 다음으로 루팡 매니저에 대해 알아보겠습니다. 이것은 관리하는 사람을 위해 설계된 별도의 추가 기능입니다. |
| 조직 내의 모든 추가 기능을 추적하고 업데이트합니다. 따라서 이것은 아마도 일반적인 사용자의 컴퓨터에는 없을 것입니다. |
| 유용하지 않습니다. 따라서 관리자가 추가 기능을 관리하는 데 도움이 되는 도구 모음이 있습니다. |
| Lupine Manager를 열 때 가장 먼저 하는 일은 설정으로 이동한 다음 다음과 같이 말할 것입니다. |
| 조직의 모든 고유 사용자와 로그 데이터를 가져오는 고유 사용자 파일입니다. |
| 좋습니다. 고유 사용자 테이블이 사용자 ID를 연결합니다. 그래서 우리는 귀하의 컴퓨터에서 사용자 ID를 가져오고 있습니다. |
| 그러나 일반적으로 그것들은 그다지 특별히 의미 있는 말을 하지 않습니다. 예를 들어 내 것은 00126545입니다. |
| John Moore가 말한 것을 연결하고 싶습니다. 이것이 바로 사용자 고유 사용자가 하는 일입니다. 로그 데이터 파일에는 각 로그에 대한 행이 있습니다. 이것은 우리가 이전에 만든 모든 로그 파일의 요약입니다. 그래서 우리는 마음의 내용을 분석할 수 있습니다. |
| 자, 이제 Lupine Manager를 사용하기 시작한다고 가정해 보겠습니다. |
| 가장 먼저 해야 할 일은 관리하려는 추가 기능을 지정하는 것입니다. 이를 위해 추가 기능을 빌드한 다음 사용 가능한 추가 기능을 관리하기 위해 아래로 이동합니다. |
| 그러면 이것은 공백이 됩니다. 도착하면 추가 기능 추가를 클릭하고 제어할 추가 기능에 대한 파일이 포함된 폴더를 선택할 수 있습니다. |
| 그렇게 하면 사용 가능한 추가 기능에 나열되는 것을 볼 수 있으며 추가 기능 빌드를 클릭합니다. 자, 여기에 두 가지 옵션이 있습니다. 빌드 추가 기능은 |
| 스크립트가 있는 폴더에 추가 파일이 있으므로 테스트와 같은 용도로 좋습니다. 빠른 빌드를 수행하여 작동하는지 테스트할 수 있습니다. |
| 빌드 및 게시는 동일한 작업을 수행하지만 해당 추가 기능을 가져와서 추가 기능 저장소 폴더에 복사하고 게시된 추가 기능 파일을 업데이트합니다. 이제 회사에 배포할 준비가 되었고 테스트가 완료되었으며 사용할 준비가 되었습니다. |
| 이제 모든 로그 데이터를 가져오려면 로그 데이터를 가져오고 처리하기만 하면 됩니다. 그러면 모든 새 로그 파일을 가져와서 로그 데이터 파일에 추가합니다. |
| 여기에 사용자 요약이 있습니다. 이 요약은 누가 어떤 추가 기능을 사용하고 있는지 알려주는 간단한 표입니다. 이렇게 하면 |
| 내 가장 큰 사용자는 누구입니까? 이 예에서 Lupine과 LupineManager가 많이 사용되었음을 알 수 있습니다. 루팡예1 일부; Lupin예, 그리 많지 않습니다. |
| 자, Lupine이 설치되어 있고 Lupine Manager가 설치되어 있다고 가정해 보겠습니다. 이제 Lupine에서 관리하려는 몇 가지 추가 기능이 있습니다. 그럼 그 단계에 대해 알아보겠습니다. |
| 가장 먼저 해야 할 일은 추가된 템플릿인 Lupine 템플릿 파일로 이동하여 어딘가에 복사하는 것입니다. 따라서 여기에는 필요한 모든 스크립트와 Lupine이 추가 기능과 함께 작동하도록 하는 모든 것이 포함됩니다. 그러니 복사해 가세요. |
| 다음으로 여기에서 몇 가지 단계를 수행할 것입니다. 첫 번째는 addin.def 파일을 편집하는 것입니다. |
| 추가 기능에 포함할 모든 스크립트를 생성하거나 이미 스크립트가 있는 경우 업데이트합니다. |
| 추가 기능을 빌드하면 메뉴가 올바르게 표시되도록 메뉴를 사용자 지정할 수 있습니다. 그것을 클릭한다고 가정하면 원하는 대로 보입니다. 테스트할 수 있도록 메뉴를 수정한 후 추가 기능을 다시 빌드하고 올바른지 확인합니다. 테스트가 끝나면 게시할 수 있습니다. |
| 이제 이 addin.def 파일에 대해 이야기해 보겠습니다. addin.def는 실제로 아주 작은 텍스트 파일이지만 모든 추가 기능에 필요합니다. 여기에는 추가 기능에 대한 핵심 중요 정보가 포함되어 있습니다. |
| ID와 이름이 무엇입니까? 따라서 추가 기능의 이름으로 변경하려면 편집해야 합니다. |
| 그리고 이것은 일회성입니다. 이 작업을 수행한 후에는 앞으로 추가 기능을 위해 이것을 변경할 필요가 없습니다. 그래서 이것은 한 번뿐입니다. 설정할 때 한 번만 수행합니다. |
| 다음으로 이 추가 기능에 어떤 스크립트를 넣을지 결정해야 합니까? 이제 내가 만들었습니다. |
| 루팡 메이크 로그 파일. |
| 그리고 이것은 Lupine을 사용하는 모든 추가 기능에 대한 로그 파일을 만들 것입니다. 이것이 실제로 로그를 생성하고 버전 모니터링을 수행할 수 있게 해주는 것입니다. |
| 따라서 이 헤더를 모든 파일의 시작 부분에... 끝에 두는 것이 좋습니다. 당신이 사용할 스크립트. 왜냐하면 그것이 당신이 사물을 모니터링할 수 있게 해줄 것이기 때문입니다. |
| 이제 스크립트가 모두 포함되었으므로 다음으로 할 일은 메뉴 파일을 원하는 대로 만드는 것입니다. 지금은 템플릿만 말할 것입니다. 그래서 |
| 우리는 이것을 먼저 만들 것입니다. 따라서 이전에 Lupine을 빌드한 것처럼 gitattributes 파일을 제외한 모든 항목을 선택하고 마우스 오른쪽 버튼을 클릭하고 압축을 풀고 이름을 변경합니다. |
| 우리는 같은 일을 할 것입니다. 그러면 잘못된 메뉴가 표시됩니다. 지금은 템플릿 메뉴만 있기 때문입니다. 그래서 우리는 우리가 하고 싶은 일을 하기 위해 들어가서 그 템플릿 메뉴를 업데이트해야 합니다. |
| 좋습니다. 일단 설치하면 여기에 새 스크립트가 표시되고 여기에 템플릿이 추가됩니다. 우리는 오른쪽 클릭을 할 것입니다 |
| 이 긴 목록을 볼 수 있습니다. 그리고 맨 아래에 사용자 정의가 표시되고 메뉴와 도구 모음으로 이동하기만 하면 됩니다. 좋아, 일단 우리가 거기에 가면 다음과 같은 것을 보게 될 것입니다. |
| 우리가 가장 먼저 해야 할 일은 JMP에게 무엇을 편집하고 싶은지 알려주는 것입니다. 현재 템플릿이라고 하는 특정 추가 기능과 함께 제공되는 메뉴를 편집하고 싶습니다. |
| 그래서 우리는 이 변경 버튼으로 갈 것입니다. 그것을 클릭하면 여기에 선택의 여지가 있습니다. 하지만 여기에서 JMP 추가 기능 라디오 버튼을 클릭한 다음 |
| 우리가 관심있는 추가 기능. 괜찮아. 이제 여기에서는 이것을 템플릿으로 남겼지만... addin.def 파일에서 이미 변경했으므로 그대로 둡니다. |
| 일단 그렇게하면, 당신이 보게 될 것은 비트와 조각입니다. |
| 추가 기능에 속하는 항목은 여기 왼쪽에 파란색으로 표시됩니다. |
| 이것이 우리가 편집하고 변경하여 새로운 추가 기능에 대해 원하는 대로 만들 것입니다. |
| 그럼 이것에 대해 살펴보도록 하겠습니다. 이 안에 표준 스크립트로 What's New에 About을 포함했지만, 그것을 얻었을 때 보게 될 것은 그것이 가리키는 |
| 이 템플릿 추가 기능은 원하는 것이 아닙니다. 원하는 추가 이름이 있습니다. 그래서 우리가 할 일은 이 파일에서 추가 실행을 클릭하는 것입니다. |
| 이 폴더에 추가 사용을 클릭한 다음 여기에서 원하는 추가 기능을 선택합니다. 그러면 JMP가 방금 생성한 새 스크립트를 가리키게 됩니다. 그런 다음 찾아보기를 클릭할 수 있습니다. |
| 그런 다음 찾아보고 탐색하고 원하는 특정 스크립트로 이동하여 "아니요, 아니요, 템플릿에서 사용하고 싶지 않습니다. 내 새 추가 기능에서 사용하기를 바랍니다." |
| 마찬가지로 메뉴의 새로운 항목으로 동일한 작업을 수행할 수 있습니다. |
| 그리고 일단 당신이 그것들을 하고 나면, 정말로 우리가 원하는 나머지를 넣는 것입니다. |
| 파란색 영역을 마우스 오른쪽 버튼으로 클릭하면 메뉴에서 항목을 추가하거나 삭제할 수 있는 이전 삽입, 이후 삽입에 대한 이러한 옵션이 표시됩니다. |
| 따라서 추가할 수 있습니다. 대부분은 명령이 될 것입니다. 하위 메뉴를 더 깊이 있게 만들거나 구분 기호를 넣어 거기에 멋진 작은 선을 만들 수도 있습니다. |
| 그래서 메뉴를 만들고 방금 만든 스크립트용으로 만든 모든 항목을 거기에 넣습니다. |
| 그리고 나서 우리는 그것을 저장할 것입니다. 그러나 우리는 그것을 두 번 저장할 것입니다. |
| 여기에 저장하면 컴퓨터에 설치된 추가 기능 버전에서 변경하기만 하면 됩니다. |
| 그것도 좋지만 우리가 해야 할 일은 추가 기능을 빌드하는 폴더에 저장하는 것입니다. 따라서 다음에 추가 기능을 빌드할 때 올바른 메뉴 파일을 갖도록 여기에 저장해야 합니다. |
| 따라서 저장을 클릭한 후 다른 이름으로 저장을 클릭하고 추가 기능 파일이 포함된 폴더로 이동합니다. |
| 자, 스크립트가 있습니다. addin.def가 정의되었고 메뉴가 완성되었습니다. |
| 다음으로 해야 할 일은 실제로 이것을 빌드하고 테스트하는 것입니다. 그래서 일반적으로 사용자에게 발송합니다. 그들은 무엇이 작동하고 무엇이 작동하지 않는지 말해 줄 수 있습니다. |
| 그 후에는 실제로 게시할 수 있습니다. 따라서 게시할 때 정보를 업데이트하라는 메시지가 표시됩니다. |
| 가장 중요한 것은 루팡매니저에서 가장 중요한 것은 출시일을 변경하는 것입니다. 그래서 이것은 사람들에게 더 많은 전류가 있다는 것을 알게 하는 것입니다. |
| 버전을 사용할 수 있습니다. 그래서 그것은...이것이 게시되지 않은 날짜와 비교되고 Lupine이 사용하고 말할 것입니다. 이봐, 업로드할 최신 버전이 있습니다. |
| 따라서 수정 사항 메모와 같은 메모를 추가할 수도 있습니다. 이번에 변경한 것들입니다. 이것은 내가 추가 기능에 수행한 훌륭한 업데이트 및 작업입니다. 그런 다음 게시를 클릭하면 |
| 그러면 Lupine Manager가 해당 추가 기능의 복사본을 가져와서 소스 코드가 있는 추가 기능을 생성하는 폴더에 넣습니다. |
| 또한 추가 기능 저장소에 게시하고 게시된 추가 기능 파일을 최신 버전으로 업데이트합니다. |
| 가장 중요한 것은 릴리스 날짜입니다. 그런 다음 사용자가 업데이트 확인을 클릭하면 이 추가 기능에 새 버전이 있습니다. 다운로드하시겠습니까? 그들은 그것을 클릭할 수 있고 그것은 그것을 설치할 것입니다, 그것은 당신의 컴퓨터에... 그들의 컴퓨터에 있을 것입니다. |
| 자, 정말 간단한 소개였습니다. |
| 이 작업을 직접 수행할 수 있도록 여기에 충분한 자료가 있기를 바랍니다. 그렇지 않은 경우 john_moore@elanco.com으로 저에게 연락하십시오. 설정을 도와드리게 되어 기쁩니다. |
| 많은 분들께 감사드리며, 다시 한 번 감사드립니다. 안녕. |