Vocero
|
Transcripción
|
| Michael Akerman |
Christie. |
| Christy España |
Buenos dias como estas Michael. |
| Michael Akerman |
Cómo estás. |
| Christy España |
Genial Déjame cerrar mi correo electrónico para que no me entienda. |
| Michael Akerman |
Sí, estoy optimizando la configuración de mi computadora para que nada, nada haga ping. |
| Christy España |
sé lo que he golpeado en mi barra de herramientas, ¿soy yo? |
| |
Creo que lo tengo todo. |
| |
como estuvo tu fin de semana. |
| Michael Akerman |
Estuvo bien, ¿cómo estás? ¿Cómo está tu fin de semana? |
| |
Bueno. |
| Christy España |
Entonces, ¿vives en la oscuridad? |
| Michael Akerman |
Helen espéranos. |
| |
De acuerdo, sí, tan cerca de la sede que iría a la cumbre de descubrimiento real, lo fue. |
| |
presente en persona en el. |
| |
Eso también fue decepcionante, pero. |
| |
sí yo en hey. |
| Christy España |
Hola buenos días, que estás haciendo. |
| Johan |
haciendo bien. |
| Michael Akerman |
Necesito poner un muro erudito detrás de mí como si tuvieras ahí, Johan. |
| Johan |
Puse en clic. |
| |
Este y los libros de Danny están ahí, así que no podrás reconocerlos. |
| Christy España |
se ve bien. |
| |
Pido disculpas por la confusión de la semana pasada, pero. |
| |
Estoy feliz de poder conocerlos a ambos virtualmente. |
| |
Como soy parte del equipo principal que apoya las zonas Nova, no deberían haberme asignado a ustedes de todos modos. |
| |
veamos, tengo algunas cosas por las que necesito pasar para que ambos tengan la pantalla configurada en 19 2010 a las. |
| |
Hago. |
| Johan |
Déjame comprobarlo dos veces. |
| Christy España |
increíble. |
| |
y |
| |
Si tu sonido es bueno, diría que nadie lleva logotipos. |
| |
asegúrese de que no haya elementos a la vista que puedan causar una infracción de los derechos de autor. No sé si sus libros allá atrás podrían ser un problema. |
| |
sí, hagámoslo, por si acaso. |
| Michael Akerman |
Uno de ellos es uno de ellos formado por un ex orador principal de la cumbre de descubrimiento de JMP. |
| Johan |
Quién es. |
| Michael Akerman |
Oh, no lo hice, vino y habló sobre esa cosa explicadora. |
| Christy España |
Oh, sí, tengo ese libro. |
| Michael Akerman |
sí, sí. |
| Johan |
No lo he hecho. |
| |
guardé cualquiera de los del correo electrónico, pero puedo seguir adelante y sacarlo del correo electrónico. |
| Michael Akerman |
Estoy con tener mi cámara web en un brazo, donde puedo moverla como hacia mí y hacia atrás y hacia arriba y hacia abajo y hacia la izquierda y hacia la derecha como entonces es como jugar con ella eternamente porque es como si pudiera moverla. |
| Christy España |
Oh, es una buena idea. |
| |
nunca, nunca me vi en el lugar correcto, sí. |
| |
Y luego todo el mundo está accediendo a todas sus perspectivas de aplicaciones, cualquiera que sea mi equipo. |
| |
como eso. |
| Michael Akerman |
Los equipos cercanos no deberían recibir ninguna notificación. |
| Christy España |
Y tienes 30 minutos ¿Es correcto? |
| Michael Akerman |
ese es mi entendimiento, sí. |
| Christy España |
Y ustedes lo estarán. |
| |
Idealmente, nos gustaría comenzar y seguir adelante. |
| |
¿Quieres hacer una prueba compartida de tu pantalla cuando hagas la transición? |
| Michael Akerman |
Tu porque vamos a cambiar entre mi pantalla y tu estás en la pantalla en un momento, así que déjame compartir mi pantalla primero. |
| |
no es necesario compartir el sonido. |
| |
Entonces. |
| Michael Akerman |
retrocedamos para empezar aquí. |
| Christy España |
hola Alex cierto. |
| |
Bueno. |
| Michael Akerman |
Así que estás en nosotros, hicimos, hicimos, hicimos, hicimos, y luego nos entregaron a ustedes. |
| Johan |
Sí, ¿controlaremos el uso compartido de la pantalla nosotros mismos? Podemos usar el tipo de productor para nosotros. |
| Christy España |
deberías hacer eso sí. |
| |
Oh, tu fondo se ve genial. |
| Johan |
Gracias. |
| Christy España |
Debería tener eso. |
| Michael Akerman |
Que puedo ser más, podemos ser más uniformes, supongo. |
| Johan |
No, deberíamos tener nuestro propio individuo. Yo no lo hice. |
| |
Si. |
| Christy España |
Sí, vayamos a Michael. |
| Johan |
sí. |
| |
Supongo que no habrá mucho enlace en pantalla que estará haciendo, la mayor parte de la conversación y luego haremos la pantalla compartida y luego. |
| Michael Akerman |
No estoy seguro de qué seremos visibles mientras se compartan las pantallas. |
| Christy España |
Bueno, siempre que recupere las grabaciones. |
| |
Consigo cuatro diferentes. |
| |
versiones hay una que te incluye cuando no lo hace y no estoy seguro de que Jeff Perkinson edite todo, así que no sé qué colina escogerá. |
| |
Creo que quiere mostrárselo al orador. |
| Michael Akerman |
Lo veo en la pantalla, creo. |
| |
Por cierto, puede desactivar los iconos si hace clic con el botón derecho. |
| Johan |
Al lograr confundir la ventana, parece. |
| Christy España |
Bueno, eso es realmente tan difícil de hacer. |
| Johan |
Oh sí. |
| |
Entonces, ¿qué hacer clic derecho y ver y. |
| Michael Akerman |
sí, lo encontró bien, genial. |
| |
porque no recuerdo exactamente dónde a. |
| |
Chico, nunca hago que mis íconos se enciendan en mi escritorio, solo dejo que se instalen cosas, así que si alguna vez enciendo eso es como. |
| Johan |
sí. |
| Christy España |
Entonces, Michael, cuando hayas terminado, solo dirás que está bien, dale la vuelta en la pantalla para compartir y luego partiremos de allí, no realmente no vamos a tomarnos un descanso. en otras palabras, sí. |
| Michael Akerman |
Y tienes un filtro amarillo en mi habitación. |
| Christy España |
Oh, tienes una luz roja a tu gusto. |
| Michael Akerman |
me pone azul aunque sí. |
| Christy España |
No he invertido en uno de esos. No, mi escritorio es tan pequeño y tengo mucho espacio aquí. |
| Michael Akerman |
sí, terminé siendo independiente temprano, mi jefe seguía quejándose de la calidad de mi micrófono y la calidad de mi cámara, así que estoy bien, hombre, me estás comprando una nueva cámara con micrófono. |
| Christy España |
bien por ti, no me compré este nuevo auricular. |
| Michael Akerman |
Déjame cerrar la puerta muy rápido. |
| Christy España |
Oh, está bien, eso es importante si conoces amigos peludos o niños corriendo. |
| Johan |
sí, bueno, tampoco tan bien, sí, pondré la puerta cerrada. |
| Christy España |
y Johan ¿Dónde estás? |
| Johan |
Sobre la empresa. |
| Christy España |
que la mía oh Niza. |
| |
estar completamente. |
| Johan |
Oh, lo has estado. |
| Christy España |
Tengo un amigo con quien se casó. |
| |
Un chico de Copenhague es de Dinamarca, así que fuimos a visitarlo. |
| |
Oh, sí, hermosa. |
| Christy España |
Bien, entonces, si puedo hacer que ustedes digan el nombre de su empresa y el título del resumen, sería genial. |
| |
Y esto no es para la grabación. Esto es solo para propósitos de Jeff, como para identificar lo que es tuyo. |
| Michael Akerman |
el nombre es seguro, mi nombre es Michael Increment Estoy con novozymes el título del resumen es tan fácil como subir una foto. |
| |
algo sobre el embalaje y la factura me olvidé de la exacta. |
| Christy España |
esta bien. |
| Michael Akerman |
Todos. |
| Johan |
Y mi nombre es ONU. |
| |
Además, no tiene sentido. |
| Christy España |
Y lo grabaremos y lo publicaremos en la conferencia Discovery Summit, y estará disponible para que el público lo vea si obtiene permiso para esta grabación en ese uso. |
| Michael Akerman |
Nosotros lo hacemos |
| |
Cuando vas a. |
| Johan |
Oh, sí, lo siento, lo siento, solo era mi mente. |
| Christy España |
Bueno entonces. |
| |
Déjame apagar mi cámara antes por ti. |
| |
Nadie quiere verme. |
| Christy España |
Y creo que estamos listos, ustedes están listos. |
| Michael Akerman |
Supongo que comenzaremos con mi pantalla. |
| Christy España |
Nunca estés listo, veamos que es el momento. |
| |
909 así que técnicamente tienes hasta el 939 pero. |
| |
dar o recibir un fusible bien, así que cuando estés listo. |
| Michael Akerman |
Hola a todos y bienvenidos a nuestra charla de hoy sobre "Y'All". Este es un administrador de paquetes de complementos que hemos construido en Novozymes para automatizar el uso compartido de complementos de JMP y la actualización y el mantenimiento de scripts en toda nuestra empresa global. Soy Michael Akerman y mi co-presentador es Johan Olsen. |
| |
Hoy, quiero, queremos hablarles sobre Y'All y presentarles este kit de herramientas también, para que cualquiera de ustedes que esté interesado en él pueda ... |
| |
... Quien quiera usarlo para usos personales o para su organización sabe cómo obtener este kit de herramientas y comenzar a usarlo, y qué es. Así que comenzaremos hablando de quiénes somos y por qué creamos Y'All ... |
| |
... las características clave de Y'All, así como la experiencia del usuario. Por tanto, Johan repasará lo que ve un usuario cuando utiliza este conjunto de herramientas. |
| |
Veremos detrás de escena sobre lo que sucede detrás del kit de herramientas de Y'All cuando un usuario interactúa con él y luego haremos un resumen y recapitulación, y daremos algunos consejos sobre cómo adoptar Y'All en su organización, si lo encuentra. interesante para sus propósitos. |
| |
Somos científicos de datos en una empresa llamada Novozymes. Mi co-presentador es Johan Olsen. Es un científico de datos en la investigación de aplicaciones de biosoluciones agrícolas e industriales. |
| |
Soy un científico de datos senior en el mismo grupo en Novozymes. Hemos incluido nuestra información de contacto aquí si desea comunicarse con Y'All o cualquier otra cosa. No dude en comunicarse con nosotros. |
| |
La dirección de correo electrónico de Johan es jpko@novozymes.com y es JPKO en la comunidad de usuarios de JMP. Soy mxak@novozymes.com. |
| |
Michael Akerman Michael mxak en la comunidad de usuarios de JMP, así que no dude en comunicarse si tiene alguna pregunta, seguimiento o comentario de alguna manera sobre Y'All o formas de mejorar lo que hemos construido y con lo que estamos trabajando. . |
| |
Trabajamos para Novozymes. Novozymes es una empresa de biotecnología mundial. Construimos soluciones biológicas para la sostenibilidad ... |
| |
... y mejorar el rendimiento y reducir los costos para todo tipo de industrias en todo el mundo. Por eso apoyamos la agricultura y los biocombustibles, el cuidado del hogar, alimentos y bebidas, salud animal y muchas más industrias ... |
| |
... con estas soluciones biológicas. Tenemos más de 6000 empleados en todo el mundo y en ese conjunto de empleados tenemos cientos de usuarios de JMP. |
| |
Y lo menciono porque tenemos una gran cohorte de usuarios de JMP a los que apoyamos y con los que trabajamos, que están trabajando con JMP y construyendo cosas en JMP, y esa es realmente la inspiración para Y'All. |
| |
Nuestro propósito como empresa es "Juntos encontramos respuestas biológicas para una vida mejor en un mundo en crecimiento: repensemos el mañana". |
| |
Como mencioné, tenemos una gran cohorte de usuarios de JMP en Novozymes. |
| |
Así que queríamos hacerles la vida más fácil para trabajar con scripts JMP y complementos JMP y hacer que su código fuera más reutilizable y reconocible. |
| |
En primer lugar, queríamos facilitar la actualización. Habíamos observado que en Novozymes la gente enviaba scripts por correo electrónico de un lado a otro. |
| |
Se enviaban archivos JSL en unidades de red personales. Algunos de ellos lo estaban colocando en unidades flash y entregándolos. Queríamos que la distribución de scripts JMP nuevos y actualizados fuera lo más fácil posible. |
| |
Queríamos hacer un archivo que proteja el código. Tenemos muchos usuarios de JMP, todo este trabajo representa mucho valor para la organización. |
| |
Por lo tanto, un repositorio central donde todo ese código valioso se almacena, se realiza una copia de seguridad y se archiva. |
| |
Y queríamos realizar un seguimiento de las versiones a lo largo del tiempo, por lo que a medida que los scripts cambian, a medida que se mejoran, queríamos poder ver esos cambios y realizar un seguimiento de esos cambios a lo largo del tiempo. |
| |
Y queríamos facilitar el descubrimiento y la reutilización de scripts, por lo que si eres un desarrollador de JMP ... |
| |
... si eres un desarrollador que escribe scripts JSL, puedes encontrar scripts relevantes escritos por otros desarrolladores y mejorarlos o ... |
| |
construya a partir de ellos, para cualquier necesidad que tenga. Así que conviene tomar esos scripts y construir a partir de ellos, también conviene compartir, importar y reutilizar funciones en JSL que otros miembros de la organización encontrarían útiles. |
| |
Entonces, para hacer esto realidad, juntamos tres componentes. Tenemos un script de compilación de Python, tenemos una interfaz de GitLab y tenemos un script de carga y actualización de JSL que funcionan juntos en este kit de herramientas. |
| |
La secuencia de comandos de compilación de Python es una secuencia de comandos automatizada que se ejecutará en Python 3 o superior y que analiza y estructura automáticamente los archivos JSL en estructuras de menú de complementos. |
| |
También escribe los archivos de definición de complementos. Genera una secuencia de comandos de funciones personalizadas importada que agrega todas estas funciones de utilidad reutilizables al índice de secuencias de comandos de JMP y al IDE de JMP, y lo comprime todo en un archivo .jmpaddin para que lo usen los usuarios. |
| |
GitLab es nuestra interfaz para que los usuarios interactúen con scripts de complementos y trabajen con el propio Add-in Builder. GitLab es la alternativa de código abierto o competidor de GitHub. |
| |
Tenemos esto publicado internamente dentro de Novozymes, y proporciona una interfaz de usuario de apuntar y hacer clic realmente fácil para cargar scripts en este repositorio central ... |
| |
... donde se almacenan todos estos scripts y la compilación realmente ocurre. |
| |
Y esa canalización CICD, que significa implementación continua de integración continua, ejecuta automáticamente ese script de compilación de Python y distribuye el complemento a través de los canales de lanzamiento y versión beta para que los usuarios puedan tener ... |
| |
... lanzamientos constantes con control de calidad, o si son desarrolladores, pueden obtener lanzamientos rápidos frecuentes con las últimas versiones de cada script utilizado en este kit de herramientas. |
| |
Y finalmente, tenemos los scripts de carga y actualización de JSL. Cuando se abre JMP y cuando se carga este complemento, ... |
| |
... pueden verificar, buscará nuevas versiones en el canal seleccionado (los canales beta o de lanzamiento) y ofrecerá descargar y actualizar ese paquete de complementos. Esto también importa las funciones personalizadas en el índice de secuencias de comandos. |
| |
Tenemos una contribución de script súper fácil en Y'All de cualquier usuario de JMP. Es tan fácil como subir una foto a las redes sociales. |
| |
Entras en la interfaz de usuario, haces clic en el botón de carga y en segundos está disponible en el canal beta de Y'All. |
| |
Tenemos control automático de versiones y almacenamiento de estos scripts, una actualización automática o manual del complemento de JMP, por lo que cuando se abre JMP, Y'All ofrecerá actualizar ... |
| |
... o un usuario puede optar por actualizar Y'All manualmente a través del menú Y'All. |
| |
Tenemos un canal de versión beta para una compilación y prueba rápidas si es un desarrollador que escribe scripts para obtener la última versión del complemento a medida que actualiza su script y realiza cambios en él. Y tenemos un canal de lanzamiento para la implementación controlada y el control de calidad. |
| |
Esto nos brinda archivos JSL detectables y reutilizables, de modo que las personas pueden ver esta estructura de archivos de scripts enviados por usuarios de Novozymes, Y'All, y mirar y ver ... |
| |
... encontrar scripts que cumplan con un propósito cercano a lo que quieren y modificarlos para sus propios propósitos. |
| |
Y también agregamos funciones de utilidad de conveniencia en el índice de secuencias de comandos; puedes ver una pequeña captura de pantalla de eso ... |
| |
... a la izquierda y en el editor JSL, por lo que el script de compilación agrega automáticamente funciones que son importables y que son reutilizables en el índice de scripting JMP con una pequeña cadena de documentos si está disponible para describir cómo funciona esta función y cómo usarla. eso. |
| |
Quería tomarme un segundo para reconocer algunos de los códigos que hemos incluido en Y'All con fines de demostración. Gran parte del código utilizado en Novozymes es específico de los sistemas de Novozymes y no se podría utilizar fuera de la empresa. |
| |
Así que tomé algunos scripts que ya estaban en la comunidad de usuarios de JMP y los incluí solo como demostración. Puede quedarse con estos o quitarlos de Y'All ... |
| |
...como se desee. Así que tenemos un script de analizador json de Xan Gregg y Craige Hales. Tenemos un asistente de script de limpieza de datos presentado en JMP Discovery Summit 2020 ... |
| |
... por Jordan Hiller y Mia Stephens. Tenemos herramientas de tabla de imágenes de Heidi Hardner y Serkay Olmez en Discovery Summit 2020. |
| |
Selección de filas de colores.jsl por Nick Holmes. Gráfico del eje Y múltiple de Byron Wingerd, y la configuración de autovalidación, creo, también se presentó en JMP Discovery Summit ... |
| |
... el año pasado por Mike Anderson, y tenemos un conjunto de funciones importables para el software de captura de datos Riffyn, Riffyn Nexus ... |
| |
... para trabajar con su API, escrito por Riffyn incorporado y tomado de su complemento JMP de herramientas Riffyn con permiso. Esa es una herramienta que usamos mucho en Novozymes. Incluimos esto porque si hay otros usuarios de Riffyn, también puede usar este código. |
| |
Entonces, con eso fuera del camino, queríamos saltar a algunas demostraciones en vivo, comenzando con la experiencia del usuario y lo que el usuario ve y hace mientras trabaja con el kit de herramientas Y'All. Para eso, le voy a ceder el control a mi co-presentador Johan. |
| |
Johan, estás silenciado. |
| Johan |
Gracias, Michael. |
| |
Lo siento por eso. Déjame compartir mi pantalla. |
| |
Estas viendo esto? |
| Miguel |
Si. |
| Johan |
Está bien. |
| |
Entonces, como dijo Michael, lo guiaré a través de la experiencia del usuario al usar Y'All. |
| |
Es realmente una cosa de tres niveles ser un usuario de Y'All. La gran mayoría de nuestros usuarios lo utilizan básicamente como si fuera una plataforma JMP incorporada. Ellos... |
| |
... apunte y haga clic en los scripts y ejecútelos para los fines para los que fueron diseñados. También tenemos un grupo de usuarios bastante grande que están contribuyendo con scripts para también analizar cómo ... |
| |
Puede contribuir con scripts simples. Y luego tenemos un pequeño grupo de desarrolladores y mantenedores (??) que hacen cosas más avanzadas, e intentaremos sacar un poco de eso también. |
| |
Pero antes que nada, el uso realmente simple de Y'All. Instalarlo es tan simple como hacer clic en este enlace al artefacto de compilación (??) que se crea en nuestro repositorio de GitLab y descargar el archivo de edición JMP y ejecutarlo con JMP. |
| |
Ahora, esto me solicitó una actualización, solo voy a cancelar esta vez, pero pueden ver aquí eso en mi barra de menú, y tengo el menú Y'All ... |
| |
... Con algunos de estos scripts de demostración que Michael mencionó. No entraré en detalles con ninguno de estos scripts, ya que en realidad no forman parte del paquete Y'All, sino que solo se incluyen con fines de demostración. Pero lo que haré es intentar entrar y ... |
| |
... Ups, habilitar, lo siento, esto ya estaba, aparece habilitado. habilite las pruebas beta, de modo que, ahora que comenzamos a crear algunas cosas, podamos verlas de inmediato. |
| |
La mayoría de los usuarios tendrán las pruebas beta deshabilitadas y se les solicitará una actualización cuando abran JMP después de una versión importante, que es una vez cada pocas semanas. Pero para los usuarios con las pruebas beta habilitadas, puede ser en cualquier momento, desde varias veces al día hasta un par de veces a la semana, cuando se actualice la rama beta. |
| |
Así que eso es básicamente lo que hay para un usuario normal. |
| |
Si desea contribuir con scripts a esto, hay un par de formas de hacerlo. Una cosa es a través de la interfaz de usuario de GitLab. Ahora, la estructura del menú que acabamos de ver se refleja en el ... |
| |
... estructura de directorios en el ... |
| |
...repositorio. Así que creando un nuevo ... |
| |
... menú o submenú es tan fácil como crear un nuevo directorio. Aquí, llamemos a esto ... |
| |
..."población" |
| johan |
y agréguelo. |
| Johan |
Y si quisiéramos agregar un script, simplemente podemos crearlo en el IDE de JMP para que desee hacer un archivo muy simple. |
| |
Hola Mundo. |
| |
Esto será lo suficientemente bueno. En realidad, hay un pequeño detalle adicional, que es nombrar los elementos del menú de una manera agradable para obtener una sugerencia de herramienta, implementamos el [???] o la magia del código, es decir, si comienza por escribir un comentario, uy. |
| |
Y tú. |
| |
Nombre del menú. |
| Michael Akerman |
Todos. |
| |
Nombre del menú. |
| Johan |
Y'All nombre del menú |
| Michael Akerman |
Viejo hábito. |
| Johan |
Vamos a llamarlo hola. Entonces todos ustedes, información sobre herramientas. |
| |
Muy bien, sigamos adelante y salvemos esto. |
| |
A donde sea, supongo, veamos, escritorio. Y luego cárguelo aquí. |
| |
¿Fue una prueba? |
| Michael Akerman |
Era un guión, pero debería estar bien. |
| Johan |
Ahora... |
| |
Una vez que hayamos subido este archivo, activamos una canalización en este [inaudible] automatizado. |
| |
[inaudible] sistema, que es una clonación del repositorio primero y luego ... |
| |
... luego de compilar el complemento, y esto debería indicarle al reiniciar JMP, |
| johan |
y actualización de toda la edición. |
| Johan |
Y una vez que hemos elegido actualizar, el menú de demostraciones ahora está presente, con el script de prueba. |
| |
Así que esta es la forma más sencilla de contribuir con scripts a JMP. Si está familiarizado con el uso de Git, también puede usar un flujo de trabajo de Git más clásico. Solo voy a abrir una ventana de lote aquí. Déjame solamente... |
| |
Y podemos clonar el repositorio. Volvamos a ... Algunas de las cosas que mostramos aquí serán específicas del uso de GitLab, que usamos aquí. |
| |
Pero será similar en otros sistemas de alojamiento de código y codificación de repositorios remotos. |
| |
Así que ahora estamos clonando el repositorio y tendremos un espejo completo del repositorio en nuestro sistema local. Y de manera similar a antes, podemos ver la estructura de directorios reflejada aquí, e intentemos ver si podemos crear un ... |
| |
Otro guión. |
| |
Para esto. Todo el nombre del menú mejorado |
| |
Hola. |
| |
Digamos que nos gustaría, tal vez esta vez ... |
| |
... abre un mensaje en su lugar. |
| |
Dice hola mundo. |
| |
Ahora, esta vez, podemos usar una de las funciones integradas que se incluyeron con JMP. Vayamos al índice de secuencias de comandos, podemos ... |
| |
... busque Y'All utils. |
| |
Y busque la función errorModal, y viene aquí con una pequeña cadena de documentos, de cómo usarla. |
| |
Y ya ha sido importado, así que ... |
| |
Todos los utils errorModal |
| johan |
Y podemos simplemente decir hola mundo. |
| Johan |
veamos esto. |
| |
en nuestro repositorio ... |
| |
... en demos. Y empuja el código. |
| |
Ahora el código se envía al repositorio remoto, lo que activa la canalización CICD, y en cuestión de ... |
| |
... segundos, debería poder ver la tubería en funcionamiento y ... |
| |
...pronto. |
| |
Aún no ha comenzado. |
| |
Quizás me estoy poniendo un poco ... |
| |
...impaciente. Aquí vamos. |
| |
Así que, efectivamente, si entramos y buscamos actualizaciones de Y'All, veremos una nueva actualización. ¿Es asi? |
| |
Elegiremos actualizar ... |
| |
... el complemento, y ahora las demostraciones tendrán nuestro hola mundo mejorado. |
| |
Muy bien, creo que eso era lo que tenía para la demostración del usuario. |
| Michael Akerman |
Gracias, Johan. Volveré a tomar el control de la pantalla compartida, si está de acuerdo con usted. |
| Johan |
Si. |
| Michael Akerman |
Y quería profundizar un poco en lo que sucede detrás de escena, cuando ocurre esta experiencia de usuario. Así que voy a ver este código en Visual Studio Code. |
| |
Puede ver esto donde quiera una vez que descargue el archivo Zip, y pasaré al modo Zen muy rápido para que sea un poco más fácil de ver. Aquí vamos. |
| |
Así que aquí está esta canalización de GitLab CICD que se ejecuta cada vez que Johan carga ese script. Así que entró en el repositorio de Git ... |
| |
... y presionó el botón más y cargó un script, y eso disparó esta canalización de CICD. Así que este es un pequeño script que define cómo debe reaccionar el servidor ante esa situación. |
| |
un paso previo y un paso de construcción ... |
| |
... donde clonó el repositorio de Git y todos los archivos que contiene, incluido el nuevo script de Johan en un directorio de trabajo donde esto ... |
| |
... este módulo de procesamiento llamado corredor puede trabajar en ese código. Y luego lo construyó, por lo que ejecuta esta etapa de construcción donde ... |
| |
CD - cambia de directorio - en ese directorio de compilación y ejecuta ese script de compilación de Python. Así que es tan fácil como eso. Está clonando todos estos archivos nuevos en una carpeta de trabajo, moviéndose a esa carpeta y ejecutando el script de compilación de Python en Python 3. |
| |
Así que echemos un vistazo a ese script de compilación de Python. Voy a controlar la pestaña para eso. Esto es build_yall.py. |
| |
Entonces, esto es mucho código, pero si está mirando esto y quiere una especie de guía sobre cómo revisarlo, desplácese hasta esta función de proceso. Dice proceso def. |
| |
Este es el código principal que construye Y'All y lo recorre paso a paso. Así que vamos a echar un vistazo a esto a medida que avanzamos. |
| |
Lo primero que sucede es que el script de Python crea una jerarquía de menús. Así que echemos un vistazo a eso. Lo que está haciendo es crear un diccionario de Python anidado donde busca a través de esa estructura de carpetas bajo src / scripts ... |
| |
... y extrae todos los archivos JSL que encuentra en un diccionario que contiene el nombre y la información sobre herramientas y la ubicación del archivo de ese archivo JSL. Por lo tanto, está construyendo ese diccionario anidado una carpeta a la vez, básicamente, y rastreando. |
| |
Luego verificamos los nombres de los comandos de cada uno de esos archivos JSL. Intentamos analizar esos archivos y buscamos el nombre del menú de Y'All y la información sobre herramientas de Y'All que vio que Johan puso en la parte superior del script para ... |
| |
... defina cuál debe ser el nombre del botón y cuál debe ser la información sobre herramientas en el menú de complementos en JMP. Siempre que Y'All está instalando, aparece el menú de Y'all, cómo deben llamarse y qué debe decir la información sobre herramientas, si se desplaza sobre él. |
| |
Si no puede encontrar ese nombre de menú de Y'All o ese tipo de comando mágico de información sobre herramientas de Y'All, en su lugar, simplemente recurrirá al nombre del script sin información sobre herramientas. Entonces test.jsl simplemente se convertiría en prueba como vio de Johan. |
| |
Ese diccionario de comandos en los menús está ordenado alfabéticamente para facilitar la búsqueda de cosas, excepto el menú de ayuda y configuración, que aparece en la parte superior para que siempre esté en la parte superior del menú. |
| |
Porque la ayuda y la configuración son importantes. Y luego toda esa información se escribe en un archivo JMPcust. |
| |
Entonces, un archivo .jmpcust es esencialmente una especie de documento de lenguaje de marcado que define para JMP cómo ... |
| |
qué botones de menú deberían estar, dónde debería estar el menú en sí, cuáles deberían ser las sugerencias de herramientas, todo está definido en este archivo .jmpcust. |
| |
Voy a pasar la pestaña de control a Y'All, para que puedan ver cómo se ve esto. Es literalmente un montón de definiciones sobre lo que son los menús ... |
| |
..y cómo se llaman los menús y qué contienen. Entonces, podemos ver que el menú de ayuda y configuración contiene la verificación de la actualización de Y'All, activar el modo de prueba beta y así sucesivamente. |
| |
Entonces, el script de Python lo escribirá automáticamente con esta función de escritura de archivo jmpcust. |
| |
Y luego vamos a escribir nuestros archivos de definición de complementos. Entonces addin.def y version.txt. Addin.def - voy a cambiar a un ejemplo de eso - es un poco ... |
| |
... un poco de descripción que JMP utiliza para identificar el complemento y encontrar el número de versión, así como la versión mínima de JMP admitida. |
| |
Decimos 12. Esa es una elección arbitraria de nuestra parte, solo para no tener que preocuparnos por las cosas antes de las 12. Puede cambiar esto en el código Python, si comienza a trabajar con esto usted mismo. La versión del complemento también se define aquí, como puede ver. |
| |
Y escribimos esto en un archivo llamado version.txt para que el mismo número entero que acaba de ver en addin.def termine también en version.txt. |
| |
La razón de esto es que es un archivo pequeño y agradable que podemos leer de forma remota. Podemos abrir en JMP sobre HTTP en el servidor ... |
| |
... y eche un vistazo a ese número de versión muy rápidamente en ese archivo version.txt para compararlo con nuestra versión actual. Entonces, si nuestra versión instalada actualmente no coincide con la version.txt ... |
| |
... eso significa que necesitamos actualizar, o al menos podemos actualizar. El número de versión que usamos es la fecha y hora en que se ejecutó en la zona horaria UTC. |
| |
Y lo convertimos básicamente en segundos desde 1970. Entonces, es un número entero que se puede volver a convertir en un formato de fecha y hora. |
| |
Entonces podemos comparar los dos números en números enteros, lo cual es bueno. Podemos ver fácilmente si son mayores o menores entre sí, y aún podemos convertir eso en una fecha. Así que es una forma realmente eficiente de almacenar ese número de versión en JMP para nosotros. |
| |
Finalmente. |
| |
Lo siguiente que hacemos, por lo que hemos escrito esos archivos adicionales en profundidad, creamos un script de funciones personalizadas. Entonces esto es un poco extraño y un poco difícil de explicar. Haré todo lo posible para hacerlo de forma rápida y concisa. |
| |
JMP tiene dos formas de definir funciones personalizadas. Una es con una función llamada función en el lenguaje de secuencias de comandos JMP, y lo que hace: cambiaré a utils.jsl y al subdirectorio importables de Y'All aquí. |
| |
Función define una función personalizada que se puede utilizar y llamar desde otras ubicaciones. Y puede definir esto con un espacio de nombres. Entonces, en este caso, tenemos el espacio de nombres Y'All utils ... |
| |
... con el nombre de la función recode if. Y toma estos argumentos, y tenemos esta cadena de documentos y este código de función escrito aquí. |
| |
La segunda forma de escribir una función personalizada en JSL es con la nueva función de función personalizada, que no es lo mismo que function. Creo que esto se agregó y JMP 14. |
| |
Lo que hace la nueva función personalizada es que agrega la función al índice de scripting de JMP y al IDE de JSL para que sea muy fácil trabajar con esa función y reutilizarla en otros lugares con documentación. |
| |
Entonces, la ventaja de la función es que funciona desde que ni siquiera sé qué versión de JMP ... |
| |
... antes de usar JMP. La ventaja de la nueva función personalizada es que es un poco más robusta, y obtienes la documentación y el índice de scripting JMP y la capacidad de colorearlo en JSL IDE y obtener ... |
| |
... consejos al escribir código. Así que nos gusta la nueva función personalizada, pero queremos admitir JMP antes que JMP 14. Entonces, los scripts de compilación ... |
| |
... aquí, esencialmente analizará a través del directorio importables, buscando cualquier definición de función que coincida con esa función función función función ... |
| |
... en JSL con una cadena de documentos. Por lo tanto, intentará analizar esa cadena de documentos entre las demarcaciones de asterisco de barra y colocarla en una nueva función personalizada. Entonces puedes ver un ejemplo aquí. |
| |
Tomamos esa función recode if y ahora la reescribimos automáticamente en una nueva función personalizada en el espacio de nombres de Y'All utils llamado recode if. |
| |
Y tenemos un prototipo y una descripción y una categoría de índice de secuencias de comandos donde todo esto se muestra. Todo eso está disponible para los desarrolladores de JMP automáticamente. Entonces puede escribir cosas usando la función de función anterior en JSL y aún obtener este índice de scripting JMP ... |
| |
... capacidad, mediante el uso de la secuencia de comandos de compilación Y'All automáticamente. Desplácese hacia abajo hasta mi código de proceso aquí. |
| |
Habiendo escrito todo esto, ahora construimos el complemento. Los complementos de JMP utilizan un formato Zip que se ha modificado. Así que lo comprimimos usando Python 3, le cambiamos el nombre a YALL.jmpaddin y ahora está disponible en nuestro directorio de trabajo donde está trabajando el corredor CICD. |
| |
Entonces, el paso final de esta canalización CICD después de que se complete este script de compilación es moverse a ese directorio de trabajo y cargar artefactos. |
| |
Los artefactos de compilación son un concepto de GitLab CICD, donde tomamos estos dos archivos YALL.jmpaddin y version.txt y los cargamos al servidor y los ponemos a disposición con una URL específica. |
| |
Entonces, esa URL siempre es consistente y está vinculada a la rama en la que estamos ejecutando esto en GitLab, por lo que si estamos en la versión beta frente a la versión de lanzamiento principal. |
| |
Ahora, en JMP, voy a saltar, ¡ja! ... |
| |
... a autoUpgrade.jsl. Aquí es donde buscamos nuevas versiones del complemento. Cuando se cargue JMP, Y'All ejecutará este script de actualización automática, ... |
| |
... que busca esas nuevas versiones en el repositorio de GitLab. Puedes ver aquí que cargamos nuestra bandera beta, ya sea en modo beta o en modo principal. |
| |
Y buscamos en el canal específico para ese modo. Entonces estamos tirando ... |
| |
... desde una URL específica basada en esa selección de canal. Entonces, si estamos en modo beta, se verá el canal beta. Si estamos en modo principal, se verá en el canal principal. Y buscamos el archivo YALL.jmpaddin y el version.txt |
| Michael Akerman |
Y ahora vamos a comparar ese número de versión con nuestro número de versión instalada, y si es diferente, solicitaremos una actualización al usuario. Aparece un cuadro de diálogo que vio en la pantalla de Johan ... |
| Michael Akerman |
... que les pregunta si quieren la actualización y les dice cuál es ese número de versión. Y pueden optar por hacerlo o no hacerlo. |
| |
Entonces. |
| |
Eso es todo lo que hay que hacer realmente. Todo eso sucede detrás de escena, para el usuario. Cargan un script a través de esa interfaz de usuario de GitLab usando ese botón más para cargar un archivo y construir ese nuevo ... |
| |
... complemento JMP, ese complemento Y'All JMP, y ponerlo a disposición de otros usuarios que estén conectados al mismo repositorio. |
| |
Todo eso sucede entre bastidores. Es tan fácil para el usuario como guardar un script JMP del punto rojo en JMP y cargarlo en el repositorio de GitLab. |
| |
Así que quería recapitular sobre las características de Y'All. |
| |
Tenemos una contribución de guión muy fácil. Como ha visto, tiene una interfaz de usuario agradable para cargar archivos, cargar scripts JSL y ponerlos a disposición. |
| |
Y con eso viene el control automático de versiones y el archivo de código. Entonces, dado que todo esto sucede a través de un repositorio central de GitLab almacenado en los servidores de Novozymes, todo eso se rastrea y almacena ... |
| |
...en perpetuidad. Actualizaciones automáticas para que los desarrolladores puedan lanzar scripts a sus usuarios muy fácilmente, y siempre puedan tener la versión más reciente ... |
| |
... de esos scripts que funcionan correctamente y tienen un control de calidad. Y tenemos canales beta y de lanzamiento. |
| |
Por lo tanto, el canal beta se construirá esencialmente al instante, estará disponible en un par de segundos después de que un nuevo script llegue a Y'All y se actualice con frecuencia. Y el canal de liberación será una estructura de liberación controlada más lentamente. Quería comentar cómo lo hacemos. |
| |
Puede ver aquí la estructura de la rama en nuestro repositorio de GitLab. Tenemos una rama beta con muchas actualizaciones. Tenemos una rama de lanzamiento. Tenemos una rama principal. Qué hacemos en Novozymes - esto depende totalmente de la elección del usuario - |
| Michael Akerman |
... tomamos esta rama beta cuando está en un estado en el que queremos lanzarla. Abrimos una solicitud de fusión entre la versión beta y la versión, y la movemos a la rama de la versión. Eso esencialmente congelará la rama de liberación de pantalla ... |
| Michael Akerman |
... en la versión del código, donde hicimos eso, y eso bloquea el código en esta rama de lanzamiento. |
| |
Beta aún puede cambiar. Las personas aún pueden agregar secuencias de comandos y cambiar secuencias de comandos en la versión beta. Pero la liberación ahora está congelada. Verificamos la calidad de eso, y cuando estamos preparados, cuando estamos contentos con el estado de la misma ... |
| |
... lo lanzamos a main y lo fusionamos allí, y ahora está disponible para los usuarios de la rama principal de Y'All. |
| |
Tenemos un código detectable. Todo está disponible en una estructura de archivos en un repositorio central. Los desarrolladores pueden revisar los scripts y ... |
| |
... encontrar otros similares para construir y mejorar. Y tenemos funciones de utilidad agregadas automáticamente al índice de secuencias de comandos, disponibles automáticamente para los desarrolladores, para que puedan reutilizar bloques de código como ese recodificado si ... |
| |
... o algunas consultas de base de datos y cosas por el estilo que también hemos incluido como demostraciones. Entonces, si miras a través de Y'All ... |
| |
... espacio de nombres en el índice de secuencias de comandos de JMP con Y'All instalado. Verá que tenemos algunas consultas de base de datos de Postgres y herramientas de base de datos de Postgres que hemos incluido para demostrar cómo las usamos también. |
| |
Todo esto sucede al comenzar en JMP con un script JSL creado por el usuario que desean compartir con alguien más en la base de usuarios de Y'All. |
| |
Entran en GitLab. Y en la interfaz de usuario, cargue eso en un subdirectorio que coincida con la ubicación del menú donde lo quieren en Y'All, así que si lo quieren en demostraciones, prueba de demostraciones ... |
| |
... lo pondrían en el subdirectorio src slash slash slash demos slash demos. Una vez que lo hacen, se activa una canalización de compilación automática que inicia el script de compilación de Python, que analiza las estructuras y crea el complemento ... |
| |
... el complemento y vuelve a cargarlo en el servidor de GitLab. Luego, JMP encuentra esa nueva actualización y ofrece automáticamente descargarla y actualizar el complemento Y'All en JMP. Y ese script está disponible en solo un par de segundos para los usuarios de ese canal beta. |
| |
Así que esperamos que esté entusiasmado con Y'All. Esperamos que esté interesado en usar Y'All usted mismo o en su organización. Queríamos darte algunos consejos sobre cómo empezar, si es así. |
| |
El archivo Zip que se publica en la Comunidad de usuarios de JMP si está viendo este video en la Comunidad de usuarios de JMP (debe estar en la misma página) tiene todos los elementos necesarios para comenzar. Algunos de ellos necesitarán modificaciones. Algunos de ellos son códigos de demostración para que juegues. |
| |
Pero siéntase libre de descargarlo y echarle un vistazo. La secuencia de comandos de compilación de Python en ese archivo Zip se basa en bibliotecas nativas de Python 3. No hay nada instalado más que Python en nuestro sistema de compilación. Y debería ejecutarse en cualquier instalación estándar de Python 3. |
| |
El almacenamiento y la automatización del repositorio central que hacemos con GitLab para CICD para la integración e implementación continuas, está disponible a través de otros proveedores. GitLab, GitHub, Azure, AWS tienen implementaciones similares. |
| |
Existe un enorme ecosistema de opciones, por lo que los detalles de implementación serán específicos para su organización. |
| |
El desafortunado efecto secundario de esto es que el archivo de canalización de CICD gitlab-ci.yml requerirá una modificación, si desea ejecutarlo de forma automatizada en sus propios sistemas. No funcionará como está en sus sistemas, a menos que, por supuesto, sea un empleado de Novozymes. |
| |
Cualquier cadena de conexión en nuestras funciones de utilidad que tengamos que refleje nuestra base de datos beta interna ha sido reemplazada con ODBC mi cadena de subrayado de conexión de subrayado. |
| |
Si desea utilizar alguna de esas funciones, tendrá que ir al código en los directorios de trabajo y cambiar esas cadenas para reflejar su base de datos. |
| |
Entonces, una vez más, esperamos que esté entusiasmado con Y'All. Esperamos que esté interesado en Y'All. Si tiene algún comentario, pregunta o comentario, no dude en comunicarse conmigo o con Johan ... |
| |
...con ellos. También nos encantaría cualquier contribución que tenga, si toma este código y lo mejora o si toma este kit de herramientas y lo usa de una manera interesante. Gracias. |
| Christy España |
Está bien, eso fue genial. |
| Michael Akerman |
Tiempo. |
| Christy España |
Razonable perfecto, sí, sí. |
| Michael Akerman |
Lo hace. |
| |
no importa que Johan haya dicho que ningún JMP quiere. |
| Christy España |
Sabes. |
| Michael Akerman |
Siento que la mayoría de la gente probablemente no lo captará. |
| Christy España |
Como palabra nueva me gusta. |
| Johan |
Así que nos dijeron que no lo usáramos, así que tuvimos que cambiar el nombre de la cosa y me eché a perder por no haber eliminado la versión que tenía. |
| |
Instalado previamente. |
| |
Entonces, cuando me di cuenta de que ya estaba en beta, me desconcertó, y luego simplemente. |
| |
de todos modos. |
| Christy España |
Sí, creo que está bien, pero ahora que fue genial, muy interesante, creo que a la gente le encantará ver esto, así que realmente apreciamos que participen. |
| |
Como dije, voy a subir los videos para que Jeff los edite, no estoy seguro de cuándo se completará, pero. |
| |
De todos modos, ustedes verán todo ese octubre, pero si surge algo, sin duda se lo haré saber. |
| |
gracias de nuevo y si. |
| Johan |
Tienes una nueva generación de ser sobre el JMP normal. |
| Michael Akerman |
Acerca de que dices que estás en otro lugar, es un poco. |
| |
sí. |
| Johan |
Todo el directorio. |
| Christy España |
Sí, muchas gracias, lo sé. |
| |
Mucho trabajo para la enfermedad, y lo apreciamos. |
| Michael Akerman |
Nuestro placer. |
| |
Gracias por. |
| Michael Akerman |
moviéndose rápidamente después de la siguiente. |
| Christy España |
Sí, hombre, por supuesto que fue genial conocerlos a ambos y. |
| |
Ojalá la próxima vez. |
| |
Al menos con Michael será en persona, Johan me gustaría estar allí, conocerte también, pero. |
| |
sí. |
| Michael Akerman |
siempre se sabe si lo está, especialmente si está presentando y en cada cumbre, o algo que ya pasó en persona, ha sido la misma semana que todas las cosas abiertas en Raleigh, por lo que puede hacer como una semana entera de. |
| |
conferencia computacional. |
| |
y ver a un grupo de empleados locales. |
| Johan |
podría ser más fácil discutir el presupuesto de viaje, entonces sí. |
| Christy España |
Dos por uno a la derecha. |
| |
sí. |
| Johan |
Está bien. |
| Christy España |
Bien, chicos, tengan un gran descanso de su gran semana de lunes, gracias. |
| |
Usted también puede volver a hablar con usted pronto. |
| Johan |
adiós. |
| |
adiós. |