스피커 | 성적 증명서 |
| 존 무어 | 안녕하세요, 함께해주셔서 감사합니다. 제 이름은 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 예제도 있습니다. 그래서 나는 당신이 어딘가에 하나의 폴더를 찾아서 그 중 세 개를 다운로드하기를 제안합니다. |
| 이것을 설정하는 관리자로서 결정해야 할 다음 사항은 내 네트워크 폴더를 어디에 둘 것인가입니다. Lupine에게 정말 중요한 두 개의 네트워크 폴더가 있습니다. |
| 첫 번째는 저장소 폴더에 추가하는 것입니다. 이것은 모든 추가 기능과 해당 추가 기능에 대한 메타데이터가 포함된 PublishedAddins.jmp 파일을 포함할 폴더입니다. |
| 우리가 생각해야 할 다른 하나는 중앙 로그 폴더입니다. 따라서 이것은 사람들이 Lupine 관리 스크립트를 실행할 때마다 생성하는 업로드된 모든 로그 파일을 포함할 폴더입니다. |
| 여기에서 볼 수 있듯이 게시된 추가 기능 파일에 있는 모든 추가 기능의 예가 있습니다. 그리고 다음은 |
| 로그 파일. 따라서 모든 로그 파일에는 고유한 ID가 있습니다. 이것에 대해서는 나중에 이야기하겠지만 해당 파일을 다운로드할 때마다 새 파일만 가져오므로 매번 모든 항목을 다운로드할 필요가 없습니다. |
| 그래서 당신이 그것들을 둘 곳을 결정했다면, 우리는 그것들이 어디에 있는지 Lupine에게 말해야 합니다. 그렇게 하는 방법은 압축을 푼 후 Lupine 폴더로 이동하는 것입니다. |
| 추가 관리 하위 폴더 아래에 setup이라는 파일이 표시되며 이 파일은 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가 많이 사용되었습니다. LupineExample1 일부; 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가 방금 만든 새 스크립트를 가리키게 됩니다. 그런 다음 찾아보기를 클릭합니다. |
| 그런 다음 원하는 특정 스크립트를 찾아 탐색하고 이동하여 "아니요, 템플릿 1에서 사용하고 싶지 않습니다. 내 새 추가 기능에서 사용하기를 바랍니다." |
| 마찬가지로 메뉴의 새 항목 항목에 대해 동일한 작업을 수행할 수 있습니다. |
| 그리고 당신이 그것들을 하고 나면, 우리가 원하는 나머지 부분을 넣는 것입니다. |
| 파란색 영역을 마우스 오른쪽 버튼으로 클릭하면 앞에 삽입, 뒤에 삽입 옵션이 표시되어 메뉴에서 항목을 추가하거나 삭제할 수 있습니다. |
| 따라서 무언가를 추가할 수 있습니다. 대부분은 명령이 될 것입니다. 하위 메뉴를 추가하여 더 깊이 들어갈 수도 있고 구분선을 배치하여 멋진 작은 선을 만들 수도 있습니다. |
| 그래서 메뉴를 만들고 방금 만든 스크립트에 대한 모든 항목을 넣습니다. |
| 그런 다음 저장하겠습니다. 두 번 저장하겠습니다. |
| 여기에 저장하면 컴퓨터에 설치된 애드인 버전에서 변경하기만 하면 됩니다. |
| 좋습니다. 하지만 추가 기능을 빌드하는 폴더에 저장해야 합니다. 따라서 다음 번에 추가 기능을 빌드할 때 올바른 메뉴 파일을 갖도록 거기에 저장해야 합니다. |
| 저장을 클릭한 후 다른 이름으로 저장을 클릭하고 애드인 파일이 포함된 폴더로 이동합니다. |
| 자, 스크립트가 있습니다. 우리는 addin.def를 정의했고, 메뉴를 만들었습니다. |
| 다음으로 해야 할 일은 실제로 이것을 빌드하고 테스트하는 것입니다. 따라서 일반적으로 사용자에게 보낼 것입니다. 그들은 무엇이 효과가 있고 무엇이 효과가 없는지 말해 줄 수 있습니다. |
| 그 후에 들어가서 실제로 게시할 수 있습니다. 따라서 들어가서 게시하면 정보를 업데이트하라는 메시지가 표시됩니다. |
| 가장 중요한 건, 이게 루팡매니저에서 가장 중요한 건 발매일을 바꾸는 거다. 이것이 사람들에게 더 최신 정보가 있음을 알리는 것입니다. |
| 사용 가능한 버전, 맞습니다. 그래서...일어날 일은 이것이 게시되지 않은 날짜와 비교되는 것입니다. 그리고 그것이 Lupine이 사용하고 말할 것입니다. 이봐, 업로드할 더 최신 버전이 있습니다. |
| 따라서 개정 메모처럼 메모를 추가할 수도 있습니다. 이번에 변경한 내용들입니다. 다음은 내 추가 기능에 대한 훌륭한 업데이트 및 작업입니다. 그런 다음 게시를 클릭하면 |
| 그런 다음 Lupine Manager는 해당 추가 기능의 복사본을 가져오고 소스 코드가 있는 추가 기능을 생성하는 폴더에 넣습니다. |
| 또한 추가 기능 저장소에 게시하고 게시된 추가 기능 파일을 최신 버전으로 업데이트합니다. |
| 가장 중요한 것은 출시일입니다. 그런 다음 사용자가 업데이트 확인을 클릭하면 이 추가 기능에 새 버전이 있습니다. 다운로드하시겠습니까? 그들은 그것을 클릭할 수 있고 그것은 그것을 설치할 것입니다, 그것은 당신의 기계... 그들의 기계에 있을 것입니다. |
| 자, 정말 간단한 소개였습니다. |
| 이 작업을 직접 수행할 수 있는 충분한 자료가 여기에 있기를 바랍니다. 그렇지 않은 경우 john_moore@elanco.com으로 저에게 연락하십시오. 이 설정을 도와드리게 되어 기쁩니다. |
| 많은 감사를 드리며, 다시 한 번 감사드립니다. 안녕. |