 Bueno, hola, yo soy Feraguirre, soy analista de datos en data crítica, una organización que hace investigación en torno a temas de género, luchas anticoloniales y crisis climática con salidas periodísticas y estamos en México, aunque trabajamos a nivel regional. En el último link pueden encontrar las slides a la presentación y si quieren también las pueden ir siguiendo de la mano conmigo. Bueno, pues esta sesión es sobre cómo organizar nuestros datos y cómo utilizar plantillas de proyectos para poder tener nuestros análisis más organizados. Partiendo de esto pregunto cómo es trabajar con datos y con código y solemos pensar que quizá podríamos tener un ambiente bastante ordenado donde todo esté muy bien ubicado y podamos identificar muy bien de que se trata cada carpeta o que contiene cada uno de los archivos, pero la realidad es que cuando trabajamos con datos y con código tenemos siempre muchas versiones de nuestros archivos, muchas versiones de sus códigos, códigos que no funcionan, gráficas que tampoco son las correctas y a veces por el simple hecho del flujo de trabajo no hacemos una limpieza en esos proyectos, entonces la verdad es que tenemos proyectos que parecen así, tenemos mil carpetas que se llaman datos limpios, datos buenos, datos finales, gráfico bueno, gráfico actualizado, en fin y al final incluso para nosotros mismos es difícil poder encontrar la versión buena porque tenemos tantos archivos que ya no sabemos cuál era la versión que en verdad queríamos utilizar en ese momento. Bueno pues para esto están las plantillas de proyectos, me parece que es una gran alternativa, yo llevo ya un par de años usándolas y me ha cambiado la vida así que deseo que también les sirva a ustedes. Bueno y una pregunta que me surge es ¿alguien más podría explorar mis proyectos de datos? La verdad es que la mayoría de las veces diría que no y cuando es así tampoco es tan fácil, quizá hay algunas carpetas o nombres de archivos que sean intuitivos pero incluso incluso así a veces es difícil que un tercero pueda reproducir o explorar mis proyectos de datos, entonces es aquí donde llega Kuki Kurer que es un paquete de Python que funciona a manera de un un comando, una línea de comandos para la terminal y lo que nos ayuda es a tener distintos beneficios, el primero de ellos es agilizar trabajo, siempre pasa que cuando iniciamos un nuevo proyecto hay un montón de cosas que en realidad son repetitivas y que cada que iniciamos el proyecto lo hacemos de nuevo y lo hacemos de nuevo y lo hacemos de nuevo, entonces con una plantilla de proyectos podemos automatizar tanto como queramos distintas partes del proceso del análisis de datos, el siguiente beneficio que tenemos es el tema de la organización que podamos tener bien estructuradas cada una de las secciones y las partes de nuestro análisis de datos y eso está muy ligado con el tercer punto que es la productividad, es decir que nuestro trabajo sea reproducible por terceros y eso independientemente del área en el que trabajemos, ya sea periodismo, ya sea ciencia de datos, ya sea lo que sea, siempre es fundamental que otra persona pueda reproducir el trabajo que estamos llevando a cabo simplemente por temas incluso de transparencia y de fiabilidad de análisis que estamos realizando y por último la personalización, es decir podemos personalizar estas plantillas de proyectos tanto como podamos y ya andaremos más en esto adelante, bueno pues para poder utilizar Kuki Cooter solo necesitamos tener instalado Python, Kuki Cooter funciona a partir de la versión 3.7 y no necesitan programar en Python, es decir solo es un paquete de Python pero ustedes pueden crear sus plantillas de proyectos para cualquier otro lenguaje, otra característica es que es multiplataforma, entonces pueden utilizarlo en cualquier sistema operativo, ya sea Windows, Mac, Linux y como mencionaba antes soporta distintos lenguajes de programación e incluso lenguajes de marcados, es decir si ustedes programan en JavaScript, R, Go, Ruby, HTML, CSS, lo que quieran, van a poder utilizar estas plantillas de proyectos para sus análisis y quizá por último mencionar que Kuki Cooter utiliza Jinja que es un motor de plantillas web y más adelante veremos cómo se ensambla todo esto, ok bueno para para crear una plantilla de proyectos con Kuki Cooter solo basta con instalar el paquete para su sistema operativo con Python y después tener una estructura de carpetas y un archivo yeson y eso es todo lo que necesitamos, aquí me gustaría hacer una pausa para mostrarles cómo es que funciona ten un segundo, ya que instalan Kuki Cooter lo único que necesitan es correr el comando la terminal después van a tener su plantilla de proyectos en GitHub que es la manera en la que pueden reproducirlo y basta con que coran el comando para empezar a personalizarlo, entonces ustedes también pueden personalizar todas estas digamos parámetros que pregunta la la terminal para poder configurar el proyecto, pero ahora vamos a dejar todos por default ya que es una muestra rápida, podemos poner el nombre del proyecto, el nombre de la carpeta, el nombre del autor y listo se crea el proyecto, entonces cuando entramos a ese proyecto vamos a ver que descarga a ver una una serie de estructura de carpetas que ya están definidas entonces eso también nos ahorra, que aquí hicimos un proyecto, basta concorrer una línea de comando para tener toda la estructura de nuestro proyecto y entonces empezar a trabajar en el análisis, pero bueno vamos a ondar en qué es este archivo yeson, qué es lo que contiene, primero para crear esta estructura de directorios y el archivo yeson necesitamos crear archivos que podamos hacerlo desde nuestro gestor de archivos, un editor de código de terminal como ustedes prefieran y básicamente necesitamos solamente dos cosas, una es por un lado el archivo cookiecuder.geo yeson y por otro una carpeta que es la que va a contener nuestra directorio con las carpetas que queremos para nuestro análisis y que tienen que llevar este nombre y ahora verán por qué, para el cookiecuder.json vamos a tener básicamente algo de este tipo que son las mismas variables que respondimos cuando corrimos el comando en la terminal y lo interesante es que esas respuestas que nosotras damos en la terminal van a ser las llaves de ese yeson, entonces podemos jugar con esas variables a lo largo de todo el proyecto con esa información que nosotras estamos dando cuando configuramos el proyecto. En este caso tenemos tres categorías muy sencillas que es el nombre del proyecto, el slow de proyecto, en este caso hacemos un pequeño procesamiento para que tenga un formato amigable para la carpeta, si ponemos taller cookiecuder lo pasamos todas minúsculas, quitamos los espacios, lo reemplazamos por guiones y listo y después el nombre del autor y esas son las tres categorías de entrada que vamos a tener por ahora. Ahora vamos a crear una estructura de directorios, para este ejemplo vamos a tener una principal que es esta llamada cookiecuder.projectos log ya que estamos, queremos accesar a la llave de ese yeson, entonces va a tener ese nombre y de ahí vamos a ramificar de acuerdo a los intereses de cada proyecto, en este caso utilizamos una carpeta para cuadernos donde vamos a tener localizados cuadernos de jupiter, podemos crear también los cuadernos de jupiter, entonces ahí tenemos tres ejemplos, uno para el procesamiento, otro para el análisis y otro para la visualización. Después tenemos otra carpeta que va a ser para los datos y esta en particular me ha resultado a mí bastante beneficiosa ya que me ayuda a separar los datos crudos por así decirlo y los datos procesados, entonces desde que utilizo cookiecuder ya no toco para nada los datos originales se quedan intactos como debería de ser una buena práctica y en realidad todos los procesamientos que hago siempre se van para la carpeta de procesados y después tenemos otra carpeta que va para exportaciones, es decir, podemos ahí guardar las gráficas, las tablas dinámicas que creemos, lo que sea que vayamos a exportar después de nuestro análisis y el archivo cookiecuder.json que configuramos previamente. Aquí sólo quiero mencionar que dado que esta estructura de directorios lo vamos a subir a jit-hope, hay que añadir este archivo que se llama jit-kip ya que dado que son carpetas que están vacías si la subimos al repositorio remoto no las va a traquear, entonces hay que dejar este archivo que en realidad sólo es como una marquita para que jit-hope las pueda reconocer y eventualmente suban al repositorio remoto. Entonces ya que tenemos lista nuestro directorio de carpetas y el archivo jayson subimos esto a un repositorio remoto en jit-hope, aquí está el ejemplo de este que acabo de demostrarles y con eso basta para ejecutar cookiecuder y la URL del jit-hope que acabamos de configurar que es el ejemplo del que acabo de demostrarles hace un momento en la terminal. Pero lo interesante viene cuando descubrimos que hay una configuración que se llama hooks dentro de las plantillas para proyectos y lo interesante con hooks es que son archivos que se pueden ejecutar antes o después de la creación de estas plantillas de proyectos y con esto me refiero a que las posibilidades se volven infinitas ya que en estos scripts acepta tanto scripts en python como scripts en shell así que podemos hacer un montón de cosas durante la configuración de estas plantillas de proyectos. Aquí van algunas ideas como por ejemplo iniciar un repositorio de jit podemos configurar todos los comandos de jit para que todas esas archivos que teníamos una vez que creamos nuestra plantilla empiecen a traquearse por jit y ya no tengamos que hacer el jit init commit initial commit saben como todo ese trabajo repetitivo que siempre hacemos cuando iniciamos un proyecto con esto podemos automatizarlo. Otra de las ventajas es que podemos utilizar plantillas para jit ignore por ejemplo es decir hay algunos repositorios que tienen plantillas para proyectos y específico para python donde ya vienen prediseñadas como todos esos archivos o carpetas que no queremos que que se traquen en nuestro github y van a estar ahí entonces esto obviamente ahora estoy aplicando lo python pero pueden usarlo para cualquier lenguaje que sea el que utilizan para su análisis de datos otra de las ventajas es que también pueden iniciar un ambiente virtual estas son algunas solo estoy tirando alguna de las ideas que pueden hacer cuando configuran su plantilla para proyectos pueden iniciar el ambiente virtual para poder tener condensado todo en ese proyecto y que no tenga después problemas con las dependencias o las versiones de las librerías otro otro ejemplo es que pueden instalar librerías también es decir si ustedes ya saben que durante su análisis de datos suelen utilizar digamos non pi pandas plotly y que son sus librerías por defecto que siempre usan también pueden automatizar esto para que desde la creación de esta plantilla de proyectos también estén instaladas estas librerías y nos ahorremos también el trabajo de tener que instalar eso y por último otra otro ejemplo es que podemos personalizar el red me es decir cuando estamos configurando el archivo json podemos ahí meter nuevos parámetros que cuando corramos el comando en la terminal vamos a poder ir aceptando esos y por acá les voy a enseñar un ejemplo de cómo se vería por ejemplo un red me ya personalizado y entonces aquí tenemos recuerden que que incluimos el nombre del proyecto bueno podemos también ponerlo ya en el macdown directo del red me podemos incluirlo también la descripción del proyecto el nombre del autor poner la estructura de directorios que tenemos en ese proyecto en específico incluso cosas como la licencia que queremos para ese proyecto podemos poner distintas opciones y todo irlo configurando en la creación de este proyecto bueno otra otra de las grandes beneficios de utilizar las plantillas es que podemos utilizar plantillas que ya crearon terceros de decir no tenemos que empezar todo desde cero hay muchas personas que ya crearon sus propias plantillas y que las hacen open source y entonces podemos partir de ese trabajo que hayan hecho otros para poder utilizarlas e incluso utilizarlas y personalizarlas de acuerdo a nuestras necesidades el mejor lugar para poder encontrarlas sin duda es jithub la mayoría sube y sus plantillas entonces basta con que hagan una búsqueda de cookie cura para poder encontrar distintos ejemplos y también poder encontrarlas aplicadas a distintos lenguajes o aplicaciones frameworks un un ejemplo es que en el sitio oficial de cookie cura templates hay de hecho ya tienen digamos una lista de distintas aplicaciones entonces si la quieren para ciencia de datos ya hay aquí algunos ejemplos que pueden utilizar si le quieren para yango faça ipi flash o incluso golang react entonces está bueno porque esto seguro te lleva al jithub y ya tienes aquí la plantilla de proyectos solo tienes que copiar la url y lo mismo ir a la terminal correr el comando de cookie cura y la url de la plantilla que quieran utilizar y es así de sencillo obviamente si quisieran modificar esta tendrían que clonar esto hacer las modificaciones después subirlo a su repositorio y de nuevo ya está pueden ejecutarlo aquí tengo la documentación creo que fui demasiado rápido tenía mucho miedo por el tiempo pero está bueno porque vamos a tener mucho tiempo para preguntas y eso es todo alguien tiene alguna pregunta ojalá que sí no quedó alguna duda te gustaría claro si y bueno aquí te sale en general el resultado del paquete de cookie cura pero tú puedes ahí mezclar en las búsquedas lo que necesitas y bueno si ustedes pueden así buscar si quieren no sé una plantilla de react yes golang lo que necesiten hay miles y miles de plantillas que ya están ahí disponibles para que las usen o para que las personalicen con las con periodistas no si porque esto es muy de analistas de datos y si pero claramente es como una pasión por el orden y que todo esté en su lugar has encontrado como alguna forma de trasladar esto a tu relación con periodistas como de cómo ordenar archivos y demás porque este ejemplo que pusiste al principio de archivo final final último 2017 tal es súper común no entonces si tienes alguna experiencia positiva en la interdisciplina con periodistas en este tema en realidad hay un montón de periodistas que programan y que hacen también análisis de datos entonces si creo que a final de cuentas lo pueden adaptar a su área en especifica como por ejemplo para el periodismo es muy importante tener siempre y bueno y en general diccionario de datos para poder entender de qué va entonces pues incluso tenemos una versión en mi organización hicimos una versión que es para periodismo de datos específicamente esta plantilla y nos ayuda porque nos ayuda tenemos algunas preguntas incluso ya planteadas para para analizar esa base de datos si desde una perspectiva quizá no tan técnica por así decirlo y en general claro que es importante también compartir siempre toda la metodología porque cuando publicamos una nota y decimos que estamos haciendo un análisis de algo tenemos que sustentarlo con con con evidencia y con una rigurosidad en torno a las metodologías que utilizamos y por acá les voy a dejar el esto es la plantilla que tenemos y la adaptamos para periodismo de datos específicamente y tenemos algunas cositas de hecho tenemos aquí toda una explicación de por qué nos parece que es útil específicamente para eso pero en general como como digo es aplicable en general para el análisis de datos gracias por nada ya estamos con él con el tiempo no se usar el micrófono muchísimas gracias