Vocero
|
Transcripción
|
| Michael Akerman |
Cristi. |
| cristina españa |
Buenos días, ¿cómo estás Miguel? |
| Michael Akerman |
Cómo estás. |
| cristina 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 haga ping. |
| cristina españa |
sé lo que he pulsado en mi barra de herramientas ¿Soy? |
| |
Creo que lo tengo todo. |
| |
como estuvo tu fin de semana. |
| Michael Akerman |
Estuvo bien, ¿cómo estás? ¿Cómo va tu fin de semana? |
| |
Bien. |
| cristina españa |
Entonces vives en la oscuridad. |
| Michael Akerman |
Helen espéranos. |
| |
Vale, sí, muy cerca de la sede central, iría a la cumbre de descubrimiento real, así fue. |
| |
presente personalmente en el. |
| |
Eso también fue decepcionante, pero. |
| |
sí, oye, oye. |
| cristina españa |
Hola buenos días, que estás haciendo. |
| johan |
haciendo bien. |
| Michael Akerman |
Necesito levantar un muro de erudición detrás de mí como el que tienes ahí, Johan. |
| johan |
Hice clic. |
| |
Este y los libros de Danny están ahí, así que no podrás reconocerlos. |
| cristina 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 que debo revisar si ambos tienen la pantalla configurada en 19 2010 a las. |
| |
Sí. |
| johan |
Déjame comprobarlo dos veces. |
| cristina españa |
impresionante. |
| |
y |
| |
Si tu sonido es bueno, diría que nadie lleva logos. |
| |
asegúrese de que no haya elementos a la vista que puedan causar una infracción de derechos de autor. No sé si sus libros allí serían un problema. |
| |
Sí, hagamos eso, por si acaso. |
| Michael Akerman |
Uno de ellos está formado por un ex orador principal de la cumbre de descubrimiento del JMP. |
| johan |
Quién es. |
| Michael Akerman |
Oh, no lo hice. Él vino y habló sobre esa cosa explicativa. |
| cristina españa |
Ah, sí, tengo ese libro. |
| Michael Akerman |
sí, sí. |
| johan |
Yo no lo he hecho. |
| |
Guardé cualquiera de los del correo electrónico, pero puedo seguir adelante y sacarlos del correo electrónico. |
| Michael Akerman |
Estoy a favor de tener mi cámara web en un brazo, donde puedo moverla hacia mí y hacia atrás y hacia arriba y hacia abajo y hacia la izquierda y hacia la derecha, entonces es como jugar con ella eternamente porque es como si pudiera moverla. |
| cristina españa |
Oh, esa es una buena idea. |
| |
Nunca, nunca me vio en el lugar correcto, sí. |
| |
Y luego todos acceden a todas sus perspectivas de aplicaciones en cualquier equipo que forme. |
| |
como eso. |
| Michael Akerman |
Los equipos cercanos no deberían recibir ninguna notificación. |
| cristina españa |
Y tienes 30 minutos. ¿Es correcto? |
| Michael Akerman |
Eso es lo que tengo entendido, sí. |
| cristina españa |
¿Y ustedes lo serán? |
| |
Lo ideal sería empezar y seguir adelante. |
| |
¿Quieres hacer una prueba compartida de tu pantalla cada vez que hagas la transición? |
| Michael Akerman |
Tu porque vamos a cambiar entre mi pantalla y tú estás en la pantalla en un momento dado, así que déjame compartir mi pantalla primero. |
| |
No es necesario compartir sonido. |
| |
Entonces. |
| Michael Akerman |
retrocedamos para comenzar aquí. |
| cristina españa |
Hola Alex cierto. |
| |
Bueno. |
| Michael Akerman |
Así que estás en nosotros, lo hicimos, lo hicimos, lo hicimos, lo hicimos, lo hicimos y luego nos lo entregaron a usted. |
| johan |
Sí, controlaremos el uso compartido de la pantalla nosotros mismos, podemos usar al productor para nosotros. |
| cristina españa |
deberías hacer eso, sí. |
| |
Oh, tu fondo se ve genial. |
| johan |
Gracias. |
| cristina españa |
Debería tener eso. |
| Michael Akerman |
Supongo que puedo ser más, podemos ser más uniformes. |
| johan |
No, deberíamos tener nuestro propio individuo. No lo hice. |
| |
Sí. |
| cristina españa |
Sí, vayamos a Michael. |
| johan |
sí. |
| |
Supongo que no haré mucho enlace en pantalla, hablarás la mayor parte y luego compartiremos la pantalla y luego. |
| Michael Akerman |
No estoy seguro de qué seremos visibles mientras las pantallas se compartan. |
| cristina españa |
Bueno, cada vez que recupere las grabaciones. |
| |
Me salen cuatro diferentes. |
| |
Versiones hay una que te incluye cuando no es así y no estoy seguro de que Jeff Perkinson editará todo, así que no sé cuál elegirá. |
| |
Creo que quiere mostrárselo al orador. |
| Michael Akerman |
Lo veo en la pantalla, creo. |
| |
Por cierto, puedes desactivar los iconos si haces clic derecho. |
| johan |
Al parecer, logro confundir la ventana. |
| cristina españa |
Bueno, ¿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. |
| |
Chico, nunca hago que mis íconos se enciendan en mi escritorio, simplemente dejo que se instalen cosas en él, así que si alguna vez los enciendo es así. |
| johan |
sí. |
| cristina españa |
Entonces, Michael, cuando hayas terminado, simplemente dirás: "Está bien, te lo entregaré en tu pantalla compartida" y luego continuaremos desde allí. En realidad, no vamos a tomar un descanso. en otras palabras, sí. |
| Michael Akerman |
Y tienes un filtro amarillo en mi habitación. |
| cristina españa |
Oh, tienes una luz roja que te gusta. |
| Michael Akerman |
Aunque me pone azul, sí. |
| cristina españa |
No he invertido en uno de esos. Mi escritorio es muy pequeño y tengo mucho espacio aquí. |
| Michael Akerman |
Sí, terminé siendo independiente temprano y mi jefe seguía quejándose de la calidad de mi micrófono y de la calidad de mi cámara, así que dije: "Está bien, hombre, me estás comprando una nueva cámara con micrófono". |
| cristina españa |
Bien por ti, no compré este nuevo auricular. |
| Michael Akerman |
Déjame cerrar la puerta muy rápido. |
| cristina españa |
Oh, está bien, sí, eso es importante si conoces amigos peludos o niños corriendo por ahí. |
| johan |
Sí, bueno, tampoco tan bien, sí, cerraré la puerta. |
| cristina españa |
y Johan ¿Dónde estás ubicado? |
| johan |
Sobre la empresa. |
| cristina españa |
que el mío oh agradable. |
| |
ser plenamente. |
| johan |
Oh, has estado. |
| cristina españa |
Tengo un amigo que se casó con. |
| |
Un chico de Copenhague es de Dinamarca, así que fuimos allí de visita. |
| |
Oh si, hermosa. |
| cristina españa |
Bien, entonces, si puedo conseguir que indiquen 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 identificar cuál es tu. |
| Michael Akerman |
mi nombre es seguro, mi nombre es Michael Increment. Soy de novozymes. El título del resumen es tan fácil como subir una foto. |
| |
algo sobre el embalaje y la factura se me olvidó el exacto. |
| cristina españa |
esta bien. |
| Michael Akerman |
Todos ustedes. |
| johan |
Y mi nombre es ONU. |
| |
Además, no tiene sentido. |
| cristina españa |
Y grabaremos esto y lo publicaremos en la Conferencia de la Cumbre de descubrimiento, 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. |
| cristina españa |
Bueno entonces. |
| |
Déjame apagar mi cámara antes por ti. |
| |
Nadie quiere verme. |
| cristina españa |
Y creo que estamos listos, ¿están ustedes listos? |
| Michael Akerman |
Supongo que comenzaremos con mi pantalla. |
| cristina españa |
Nunca estás listo, veamos el momento. |
| |
909 así que técnicamente tienes hasta el 939 pero. |
| |
Más o menos un fusible bien así que cuando estés listo. |
| Michael Akerman |
Hola a todos y bienvenidos a nuestra charla de hoy sobre "Todos ustedes". Este es un administrador de paquetes de complementos que hemos integrado en Novozymes para automatizar el intercambio, la actualización y el mantenimiento de scripts de complementos JMP en toda nuestra empresa global. Soy Michael Akerman y mi copresentador es Johan Olsen. |
| |
Hoy quiero hablarles sobre todos ustedes y presentarles este kit de herramientas también, para que cualquiera de ustedes que esté interesado en él pueda... |
| |
...Quien quiera usarlo para uso personal o para su organización, sepa 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é construimos Y'All... |
| |
...las características clave de Y'All así como la experiencia del usuario. Entonces Johan repasará lo que ve un usuario cuando usa este conjunto de herramientas. |
| |
Iremos detrás de escena sobre lo que sucede detrás del kit de herramientas Y'All cuando un usuario interactúa con él y luego haremos un resumen y una 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 copresentador es Johan Olsen. Es científico de datos en investigación de aplicaciones de biosoluciones agrícolas e industriales. |
| |
Soy científico de datos senior en el mismo grupo en Novozymes. Hemos incluido nuestra información de contacto aquí si desea comunicarse con ustedes 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 con nosotros si tiene alguna pregunta, seguimiento o comentario de alguna manera sobre todos ustedes o sobre formas de mejorar lo que hemos creado y con lo que estamos trabajando. . |
| |
Trabajamos para Novozymes. Novozymes es una empresa biotecnológica global. Construimos soluciones biológicas para la sostenibilidad... |
| |
... y mejorar el rendimiento y reducir costes para todo tipo de industrias en todo el mundo. Por eso apoyamos la agricultura y los biocombustibles, el cuidado del hogar, los alimentos y bebidas, la salud animal y muchas más industrias... |
| |
...con estas soluciones biológicas. Tenemos más de 6.000 empleados en todo el mundo y, en ese conjunto de empleados, tenemos cientos de usuarios de JMP. |
| |
Y lo menciono porque tenemos una cohorte realmente grande de usuarios de JMP a los que apoyamos y con los que trabajamos, quienes trabajan con JMP y construyen cosas en JMP, y esa es realmente la inspiración para todos ustedes. |
| |
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 cohorte muy grande de usuarios de JMP en Novozymes. |
| |
Por eso queríamos hacerles la vida más fácil al 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 se enviaba scripts por correo electrónico de un lado a otro. |
| |
Se enviaban archivos JSL en unidades de red personales. Algunos de ellos lo guardaban en unidades flash y se los repartían. Queríamos que la distribución de scripts JMP nuevos y actualizados fuera lo más sencilla posible. |
| |
Queríamos hacer un archivo que salvaguardara el código. Tenemos muchos usuarios de JMP y todo este trabajo representa un gran valor para la organización. |
| |
Entonces, un repositorio central donde se almacena, respalda y archiva todo ese código valioso. |
| |
Y queríamos realizar un seguimiento de las versiones a lo largo del tiempo, de modo 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 que fuera fácil descubrir y reutilizar scripts, de modo que si eres desarrollador de JMP... |
| |
...si eres un desarrollador que trabaja escribiendo scripts JSL, puedes encontrar scripts relevantes escritos por otros desarrolladores y mejorarlos o... |
| |
construya a partir de ellos, para cualquier necesidad que tenga. Por lo tanto, haga que sea conveniente tomar esos scripts y desarrollarlos a partir de ellos, y también haga que sea conveniente compartir, importar y reutilizar funciones en JSL que otros miembros de la organización encontrarían útiles. |
| |
Entonces, para que esto sea una realidad, reunimos tres componentes. Tenemos un script de compilación de Python, tenemos una interfaz GitLab y tenemos un script de carga y actualización JSL, todos trabajando juntos en este kit de herramientas. |
| |
El script de compilación de Python es un script automatizado 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 del complemento. Genera un script de funciones personalizadas importado que agrega todas estas funciones de utilidad reutilizables al índice de scripting JMP y al IDE de JMP, y lo comprime todo en un archivo .jmpaddin para que lo utilicen los usuarios. |
| |
GitLab es nuestra interfaz para que los usuarios interactúen con scripts de complementos y trabajen con el propio Generador de complementos. GitLab es la alternativa o competidor de código abierto de GitHub. |
| |
Tenemos esto publicado internamente en Novozymes y proporciona una interfaz de usuario realmente sencilla de apuntar y hacer clic para cargar scripts en este repositorio central... |
| |
...donde se almacenan todos estos scripts y realmente ocurre la compilación. |
| |
Y ese canal CICD, que significa integración continua, implementació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 y 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 complementario. Esto también importa las funciones personalizadas al índice de secuencias de comandos. |
| |
Tenemos una contribución de script súper sencilla en Y'All por parte 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 estará 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 JMP, por lo que cuando se abra JMP, todos ustedes ofrecerán 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 usted 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 implementación controlada y control de calidad. |
| |
Esto nos brinda archivos JSL reconocibles y reutilizables, para que las personas puedan revisar esta estructura de archivos de scripts enviados por usuarios de Novozymes, todos los usuarios, y mirar y ver... |
| |
...encontrar guiones que cumplan un propósito cercano a lo que desean y modificarlos para sus propios fines. |
| |
Y también agregamos funciones de utilidad de conveniencia al í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 reutilizables en el índice de scripting JMP con una pequeña cadena de documentación agradable, si está disponible, para describir cómo funciona esta función y cómo usarla. él. |
| |
Quería tomarme un segundo para reconocer parte del código 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. Puedes conservarlos o eliminarlos de Todos ustedes... |
| |
...como se desee. Tenemos un script de análisis 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 tablas de imágenes de Heidi Hardner y Serkay Olmez en Discovery Summit 2020. |
| |
Selección de filas de colores.jsl de Nick Holmes. Gráfico de múltiples ejes Y de Byron Wingerd y configuración de autovalidación, creo, también presentado 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, escrita por Riffyn incorporada y tomada del complemento JMP de sus herramientas Riffyn con permiso. Esa es una herramienta que utilizamos mucho en Novozymes. Incluimos esto porque si hay otros usuarios de Riffyn, también puedes usar este código con total libertad. |
| |
Dejando eso de lado, queríamos pasar 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 entregaré el control a mi copresentador Johan. |
| |
Johan, estás mudo. |
| johan |
Gracias miguel. |
| |
Lo lamento. Déjame compartir mi pantalla. |
| |
¿Estás viendo esto? |
| Miguel |
Sí. |
| johan |
Está bien. |
| |
Entonces, como dijo Michael, los guiaré a través de la experiencia de usuario al usar Y'All. |
| |
Ser usuario de Y'All es realmente una cuestión de tres niveles. La gran mayoría de nuestros usuarios básicamente lo utilizan como si fuera una plataforma JMP integrada. Ellos... |
| |
...apunte y haga clic en los scripts y ejecútelos para los fines previstos. También tenemos un grupo de usuarios bastante grande que están contribuyendo con scripts para analizar cómo... |
| |
Puedes contribuir con guiones simples. Y luego tenemos un pequeño grupo de desarrolladores y mantenedores (??) que hacen cosas más avanzadas, y trataremos de aprovechar 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 creó en nuestro repositorio de GitLab, descargar el archivo de edición JMP y ejecutarlo con JMP. |
| |
Ahora, esto me solicitó una actualización, voy a cancelar esta vez, pero pueden ver aquí eso en mi barra de menú, y tengo el menú Todos... |
| |
...Con algunos de estos guiones de demostración que mencionó Michael. No entraré en detalles sobre ninguno de estos scripts ya que en realidad no son parte del paquete Y'All, sino que solo se incluyen con fines de demostración. Pero lo que haré es intentar entrar y... |
| |
...ups, habilítalo, 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 un lanzamiento importante, que ocurre una vez cada pocas semanas. Pero para los usuarios con las pruebas beta habilitadas, la rama beta puede actualizarse en cualquier momento, desde varias veces al día hasta un par de veces a la semana. |
| |
Eso es básicamente lo que hay para un usuario normal. |
| |
Si desea contribuir con guiones 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... |
| |
...estructura de directorios en... |
| |
...repositorio. Entonces creando un nuevo... |
| |
...menú o submenú es tan fácil como simplemente crear un nuevo directorio. Toma, llamemos a esto... |
| |
..."población" |
| johan |
y añádelo. |
| johan |
Y si quisiéramos agregar un script, simplemente podemos crearlo en el IDE de JMP para que sea muy simple. |
| |
Hola Mundo. |
| |
Esto será suficiente. En realidad, hay un pequeño detalle adicional, que es nombrar los elementos del menú de una manera agradable para obtener información sobre herramientas, implementamos el [???] o código mágico, es decir, si comienza escribiendo comentado, ¡ups! |
| |
Y tú. |
| |
Nombre del menú. |
| Michael Akerman |
Todos ustedes. |
| |
Nombre del menú. |
| johan |
Todos ustedes nombre del menú |
| michael akerman |
Viejo hábito. |
| johan |
Llamémoslo hola. Entonces todos ustedes información sobre herramientas. |
| |
Muy bien, sigamos adelante y guardemos esto. |
| |
A donde sea, supongo, a ver, escritorio. Y luego súbelo aquí. |
| |
¿Fue una prueba? |
| Michael Akerman |
Era un guión pero debería estar bien. |
| johan |
Ahora... |
| |
Una vez que hayamos subido este archivo, activaremos una canalización en este [inaudible] automatizado. |
| |
[inaudible] sistema, que es una clonación del repositorio primero y luego... |
| |
...luego compilamos el complemento, y esto debería aparecer al reiniciar JMP, |
| johan |
y actualización de toda la edición. |
| johan |
Y una vez que hayamos elegido actualizar, el menú de demostraciones ahora estará presente, con el script de prueba. |
| |
Esta es la forma más sencilla de contribuir con scripts a JMP. Si está familiarizado con el uso de Git, también puede utilizar un flujo de trabajo de Git más clásico. Voy a abrir una ventana por lotes 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ódigos y codificación de repositorios remotos. |
| |
Ahora estamos clonando el repositorio y tendremos un espejo completo del repositorio en nuestro sistema local. Y similar a antes, podemos ver la estructura del directorio reflejada aquí, e intentemos ver si podemos crear un... |
| |
Otro guión. |
| |
Para esto. Se mejoró el nombre del menú de todos ustedes. |
| |
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, que viene aquí con una pequeña cadena de documentación sobre cómo usarla. |
| |
Y ya ha sido importado así que... |
| |
Error de todas las utilidadesModal |
| johan |
Y podemos simplemente decir hola mundo. |
| johan |
veamos esto. |
| |
en nuestro repositorio... |
| |
...en demostraciones. Y presione 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íamos poder ver la tubería funcionando y... |
| |
...pronto. |
| |
Aún no ha empezado. |
| |
Tal vez me estoy poniendo un poco... |
| |
...impaciente. Aquí vamos. |
| |
Efectivamente, si entramos y buscamos actualizaciones para Todos ustedes, 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 de usuario. |
| Michael Akerman |
Gracias johan. Entonces me haré cargo de la pantalla compartida, si te parece bien. |
| johan |
Sí. |
| Michael Akerman |
Y quería entrar 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. |
| |
Puedes ver esto donde quieras una vez que descargues el archivo Zip, y voy a entrar en 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 CICD de GitLab que se ejecuta cada vez que Johan carga ese script. Entonces entró en el repositorio de Git... |
| |
...y presionó el botón más, subió un script y eso disparó este proceso de CICD. 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 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ó, entonces ejecuta esta etapa de construcción donde... |
| |
CD, cambia de directorio, a ese directorio de compilación y ejecuta el script de compilación de Python. Así que realmente es tan fácil como eso. Se trata de clonar todos estos archivos nuevos en una carpeta de trabajo, moverlos a esa carpeta y ejecutar el script de compilación de Python en Python 3. |
| |
Así que echemos un vistazo al script de compilación de Python. Voy a controlar la pestaña sobre eso. Este es build_yall.py. |
| |
Esto es mucho código, pero si estás viendo esto y quieres una especie de guía sobre cómo revisarlo, desplázate hasta esta función de proceso. Dice proceso def. |
| |
Este es el código principal que construye todos ustedes 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 Python crea una jerarquía de menús. Así que echemos un vistazo a eso. Lo que está haciendo es crear un diccionario Python anidado donde examina esa estructura de carpetas en src/scripts... |
| |
...y extrae todos los archivos JSL que encuentra en un diccionario que contiene el nombre, la información sobre herramientas y la ubicación del archivo de ese archivo JSL. Básicamente, se trata de construir ese diccionario anidado, una carpeta a la vez, y rastrearlo. |
| |
Luego verificamos los nombres de los comandos de cada uno de esos archivos JSL. Intentamos analizar esos archivos y buscar el nombre del menú Y'All y la información sobre herramientas de Y'All que viste 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. Cada vez que Y'All se instala, aparece el menú Y'all, cómo deben llamarse y qué debe decir la información sobre herramientas, si pasa el cursor sobre él. |
| |
Si no puede encontrar el nombre del menú Y'All o el tipo de comando mágico de información sobre herramientas de Y'All, simplemente recurrirá al nombre del script sin información sobre herramientas. Entonces test.jsl simplemente se convertiría en prueba, como vio en Johan. |
| |
Ese diccionario de comandos en los menús está ordenado alfabéticamente para que sea fácil encontrar cosas, excepto el menú de ayuda y configuración, que aparece en la parte superior para que esté siempre 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 sobre herramientas, están todos definidos en este archivo .jmpcust. |
| |
Voy a pasar la pestaña de control a Todos ustedes, para que puedan ver cómo se ve esto. Son 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 verificar la actualización de Todos, activar y desactivar el modo de prueba beta, etc. |
| |
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 pasar a un ejemplo de eso, es un poco... |
| |
...bit 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. Es una elección algo arbitraria de nuestra parte, simplemente 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 es que es un archivo pequeño y bonito que podemos leer de forma remota. Podemos abrir en JMP a través de 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 actualmente instalada no coincide con version.txt... |
| |
...eso significa que necesitamos actualizar, o al menos podemos actualizar. El número de versión que utilizamos es la fecha y hora en que se ejecutó en la zona horaria UTC. |
| |
Y lo convertimos básicamente a 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 forma de números enteros, lo cual es bueno. Podemos ver fácilmente si son mayores o menores entre sí y aún podemos convertir eso nuevamente en una fecha. Entonces es una forma realmente eficiente de almacenar ese número de versión en JMP para nosotros. |
| |
Finalmente. |
| |
Lo siguiente que hacemos, ya que hemos escrito esos archivos complementarios 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. Uno es con una función llamada función en JMP Scripting Language, y lo que eso 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 puedes 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 recodificar si. Y se necesitan estos argumentos, y tenemos esta cadena de documentación y este código de función escritos aquí. |
| |
La segunda forma de escribir una función personalizada en JSL es con la nueva función personalizada función, que no es lo mismo que función. Creo que esto se agregó y JMP 14. |
| |
Lo que hace la nueva función personalizada es agregar la función al índice de secuencias de comandos 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 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 secuencias de comandos JMP y la capacidad de colorearlo en el IDE JSL y obtener... |
| |
...consejos mientras escribes código. Nos gusta la nueva función personalizada, pero queremos admitir JMP antes de JMP 14. Entonces los scripts de compilación... |
| |
... aquí, esencialmente analizará el 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 documentación. Por lo tanto, intentará analizar esa cadena de documentos entre las demarcaciones del asterisco y la barra diagonal e incorporarla a una nueva función personalizada. Entonces puedes ver un ejemplo aquí. |
| |
Tomamos esa función recodificar si y ahora la reescribimos automáticamente en una nueva función personalizada en el espacio de nombres de Y'All utils llamada recodificar si. |
| |
Y tenemos un prototipo, una descripción y una categoría de índice de secuencias de comandos donde aparece todo esto. Todo eso está disponible automáticamente para los desarrolladores de JMP. Entonces puedes escribir cosas usando la función anterior en JSL y aún obtener este índice de secuencias de comandos JMP... |
| |
...habilidad, utilizando el script de compilación Y'All automáticamente. Desplácese hacia abajo hasta mi código de proceso aquí. |
| |
Una vez escrito todo esto, ahora creamos el complemento. Los complementos JMP utilizan un formato Zip que ha sido 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 ejecutor CICD. |
| |
Entonces, el paso final de esta canalización CICD después de completar este script de compilación es pasar a ese directorio de trabajo y cargar artefactos. |
| |
Los artefactos de compilación son un concepto CICD de GitLab, donde tomamos estos dos archivos YALL.jmpaddin y version.txt, los subimos al servidor y los ponemos a disposición con una URL específica. |
| |
Entonces esa URL es siempre consistente y está vinculada a la rama en la que estamos ejecutando esto en GitLab, si estamos en la versión beta versus 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 carga JMP, todos ustedes ejecutarán 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. Así que estamos tirando... |
| |
...desde una URL específica basada en esa selección de canal. Entonces, si estamos en modo beta, buscará el canal beta. Si estamos en modo principal, mirará 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 viste 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 elegir 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 crear 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 detrás de escena. Es tan fácil para el usuario como guardar un script JMP desde el punto rojo en JMP y cargarlo en el repositorio de GitLab. |
| |
Así que quería recapitular 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 archivado 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 aquellos scripts que funcionan correctamente y tienen control de calidad. Y tenemos canales beta y de lanzamiento. |
| |
Por lo tanto, el canal beta se creará esencialmente de manera instantánea, estará disponible en un par de segundos después de que llegue un nuevo script a todos ustedes y se actualizará con frecuencia. Y el canal de lanzamiento será una estructura de lanzamiento controlada más lentamente. Quería comentar cómo lo hacemos. |
| |
Puedes ver aquí la estructura de sucursales en nuestro repositorio de GitLab. Tenemos una rama beta con muchas actualizaciones. Tenemos una rama de lanzamiento. Tenemos una sucursal principal. Lo que hacemos en Novozymes 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 beta y versión y la movemos a la rama de versión. Básicamente, eso 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 todavía puede cambiar. Las personas aún pueden agregar scripts y cambiar scripts en la versión beta. Pero la liberación está ahora congelada. Verificamos la calidad de eso, y cuando estemos preparados, cuando estemos contentos con su estado... |
| |
...lo lanzamos a main y lo fusionamos allí, y ahora está disponible para los usuarios de la rama principal de Y'All. |
| |
Tenemos código reconocible. Todo está disponible en una estructura de archivos en un repositorio central. Los desarrolladores pueden revisar los scripts y... |
| |
...encuentre otros similares para aprovecharlos y mejorarlos. 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 que se recodifican si... |
| |
...o algunas consultas de bases de datos y cosas así que también hemos incluido como demostraciones. Entonces, si miras a través de Todos ustedes... |
| |
...espacio de nombres en el índice de secuencias de comandos JMP con Y'All instalado. Verá que tenemos algunas consultas de bases de datos de Postgres y herramientas de bases 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 desea compartir con alguien más en la base de usuarios de Y'All. |
| |
Entran en GitLab. Y en la interfaz de usuario, cárguelo en un subdirectorio que coincida con la ubicación del menú donde lo desean en Todos, así que si lo quieren en demostraciones, prueba de demostración... |
| |
... pondrían eso en el subdirectorio src slash scripts slash demos slash demos. Una vez que hacen eso, se activa una canalización de compilación automática que inicia el script de compilación de Python, que analiza las estructuras y construye el complemento... |
| |
...el complemento y lo vuelve a cargar en el servidor GitLab. Luego, JMP encuentra esa nueva actualización y automáticamente ofrece descargarla y actualizar el complemento Y'All en JMP. Y ese script está disponible en sólo un par de segundos para los usuarios de ese canal beta. |
| |
Esperamos que esté entusiasmado con Y'All. Esperamos que esté interesado en utilizar 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éntete libre de descargarlo y echarle un vistazo. El script de compilación de Python en ese archivo Zip se basa en bibliotecas nativas de Python 3. No hay nada instalado excepto 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 una integración e implementación continuas, que está disponible a través de otros proveedores. GitLab, GitHub, Azure y AWS tienen implementaciones similares. |
| |
Existe un enorme ecosistema de opciones, por lo que los detalles de implementación serán específicos de su organización. |
| |
El desafortunado efecto secundario de esto es que el archivo de canalización CICD gitlab-ci.yml requerirá una modificación, si desea ejecutarlo de forma automatizada en sus propios sistemas. No funcionará tal como está en sus sistemas, a menos, por supuesto, que sea un empleado de Novozymes. |
| |
Cualquier cadena de conexión en nuestras funciones de utilidad que tengamos y que refleje nuestra base de datos beta interna ha sido reemplazada con mi cadena de subrayado de conexión ODBC. |
| |
Si desea utilizar cualquiera de esas funciones, deberá ingresar el código en los directorios de trabajo y cambiar esas cadenas para reflejar su base de datos. |
| |
Así que, una vez más, esperamos que estéis entusiasmados con todos vosotros. Esperamos que estéis interesados en todos vosotros. 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 toma este kit de herramientas y lo utiliza de una manera interesante. Gracias. |
| cristina españa |
Bien, eso fue genial. |
| Michael Akerman |
Tiempo. |
| cristina españa |
Razonable perfecto, sí, sí. |
| Michael Akerman |
Lo hace. |
| |
No importa que Johan haya dicho que JMP no quiere. |
| cristina españa |
Sabes. |
| Michael Akerman |
Siento que la mayoría de la gente probablemente no lo entenderá. |
| cristina españa |
Como palabra nueva me gusta. |
| johan |
Entonces nos dijeron que no usáramos eso, así que tuvimos que cambiarle el nombre y me despisté por no haber eliminado la versión que tenía. |
| |
Previamente instalado. |
| |
Entonces, cuando me di cuenta de que ya estaba en la versión beta, me desconcerté y luego simplemente. |
| |
de todos modos. |
| cristina españa |
Sí, creo que está bien, pero 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, ciertamente se lo haré saber. |
| |
gracias de nuevo y si. |
| johan |
Tienes una nueva generación de JMP normal. |
| Michael Akerman |
Que digas que estás en otro lugar es algo así como. |
| |
sí. |
| johan |
Directorio de todos ustedes. |
| cristina 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 del siguiente. |
| cristina españa |
Sí, hombre, por supuesto fue un placer conocerlos a ambos y. |
| |
Ojalá la próxima vez. |
| |
Al menos con Michael será en persona, Johan me gustaría ir allí, conocerte también, pero. |
| |
sí. |
| Michael Akerman |
Siempre sabes si él, especialmente si está presentando y en cada cumbre, o algo que sucedió en el pasado, en persona, ha sido la misma semana que todas las cosas están abiertas en Raleigh, por lo que puedes hacerlo durante una semana entera. |
| |
conferencia computacional. |
| |
y ver a un grupo de empleados locales locales. |
| johan |
Podría ser más fácil discutir el presupuesto de viaje, entonces sí. |
| cristina españa |
Dos por uno, verdad. |
| |
sí. |
| johan |
Está bien. |
| cristina españa |
Bien, chicos, que tengan un excelente resto de su gran semana de lunes, gracias. |
| |
Usted también podrá volver a hablar con usted pronto. |
| johan |
adiós. |
| |
adiós. |