No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
19H
7M
30S

Bonus: divide y vencerás

16/17
Recursos

Aportes 32

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Hizo falta un poco mas de este tema!

Me gustaría que primero se diera el curso de la terminal y luego este en la escuela de Data Science, para no estar tan loco con la terminal y sus términos.

Bonus: Divide y vencerás.

  • En proyectos grandes, es complicado mantener un ambiente virtual. 😵
  • Divide y vencerás es partir un problema difícil en partes pequeñas. Cada paquete se desarrolla a su propio ritmo (no siempre preocupándose de la compatibilidad con otros módulos). 🤯
  • Hay tres tipos de paquetes: Externos, Modelo y de Comunicación. Entonces podemos crear en multiples ambientes en un solo proyecto. 👀 Para esto, creamos una carpeta llamada envs y creamos tres documentos: external.yml, model.yml y comunicacion.yml.
  • Snakemake es un paquete que implementa muy bien este concepto. Es un motor de workflows 👀. Cada paso lo ejecuta con un ambiente específico.

Snakemake - Snakemake 6.8.0 documentation

Les recomiendo fuertemente tomar el curso de terminal antes que este curso

En mi caso nunca había estudiado algo de esto, y por ello considero que fue lo justo y necesario en este curso, si hubiera explicado más profundo no habría entendido nada. Quizás quienes sí tienen base de estudio de esto ya se parecerá fácil, pero para personas como yo que no sabíamos nada de esto, creo que está justo y razonable.

Si desean saber más sobre el divide y vencerás, pueden ir al curso de Configuración Profesional de Entorno de Trabajo para Ciencia de Datos, específicamente a esta clase.

A lo que quieran estructurar sus proyectos de data science, este post lo pueden ayudar mucho:
https://towardsdatascience.com/structure-up-your-data-science-project-4ee934d9ce11

¡Súper este bonus!! De verdad que lo más importante es dividir tú proyectos por ambientes, para que así las dependencias puedan tener sus actualizaciones sin afectar a las otras! Esto es un superbonus! Muchas gracias profe Jesús. 😃

Lectura recomendada

Saludos comunidad, les comparto esta lectura sobre Snakemake:
https://f1000research.com/articles/10-33/v1
Si en esta clase acaban de enterarse de la existencia de Snakemake (como yo) les recomiendo que le echen una hojeada al articulo y lo guarden para una posterior lectura profunda. Como no sabemos mucho de Snakemake aun, nos perderemos del 80% del contenido del articulo leyendolo de principio a fin. Pero nos beneficiara leerlo por completo mas adelante.

Del articulo:

This makes Snakemake one of the most widely used workflow management systems in science.

En el terminal si a alguien no los deja instalar mamba porque les sale este mensaje al final "EnvironmentNotWritableError: The current user does not have write permissions to the target environment."
Lo que me resolvió fue cerrar el terminal y volver a ejecutarlo como administrador, en mi caso estaba usando el terminal de Anaconda.

Puedes crear varios ambientes virtuales por proyecto:

  • proyecto_1
    • data
    • models
    • notebook
    • envs
      • external.yml
      • model.yml
      • comunication.yml

Documentación oficial de Snakemake

Muy interesante. Creo que le falto trabajar más este concepto que es básico.

viendo el tema y comparando con lo visto anteriormente… faltó mas detalle en esta parte y parece algo muy útil!

No sé si seré capaz de finalizar este curso: Sufro de ofidiofobia.

Muy buen consejo, lo que planteas, mas no seria mejor ejecutarlo en colab o deepnote por lo grande de un proyecto, o en alguna solucion como AWS, GCP o Azure

Es muy interesante la estrategia, pero hubiese sido mejor si colocaran una lectura o algo donde pudieramos ver algo mas practico.

Con sinceridad, esta ultima parte del curso se me hizo pesado, engorroso y poco practico, si fuera un newbie que esta empezando este mundo de la ciencia de datos, lo ultimo que quisiera es que me vengan a confundir con tecnisismos de “ambientes virtuales” son conceptos muy abstractos, utiles a futuro tal vez, pero que solo hacen que uno se pierda y se confunda, en este caso le tengo que dar manita abajo a la estructura del curso, pienso que como sugerencia esta ultima parte deberia ir en otro curso aparte

Esta tecnica de divide y venceras yo la aplico en muchas otras areas, como en el estudio, donde todos los dias trato de estudiar asi sean pequeñas capsulas, que van sumando dia tras dia, y asi en unas semanas, y meses logro completar muchos cursos y rutas de aprendizajes, la clave es la constancia.

Malísima esta clase.

Información resumida de esta clase
#EstudiantesDePlatzi

  • En proyectos grandes es un gran reto mantener este proyecto en un solo ambiente, lo mejor es crear varios ambientes para poder llevarlo de mejor manera

Excelente curso, me encanto

Deberíamos tener un curso o conversatorio a cerca de los diferentes paradigmas de programacion 😁

si, falto mucho mas sobre este tema.

Es un tema que requiere un poco mas de profundidad!

Separar un ambiente en sub ambientes usando snakemake

Me recuerda al MVC :3

Que buen bonus!!!.
.
Excelente curso Jesus. Muchas gracias!!!

En este capitulo se me hizo similar a como se maneja la programación en java, como modelo vista controlador y cada uno con sus dependencias que entre ellos llegan a hacer un proyecto al final del día jeje

No solo Snakemake, también se puede hacerlo con Poetry.
Sin embargo también una requiere establecer un workplace en Visual Studio Code.
No he visto que haya cursos de eso, pero existen muchos post sobre como hacer este tipo de divisiones en Google.

https://python-poetry.org/

Esta parte de AV estuvo pesada. Me va a tocar verla varias veces.

usage: mamba [-h] [-V] command …

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
command
clean Remove unused packages and caches.
compare Compare packages between conda environments.
config Modify configuration values in .condarc. This is modeled after the git config command. Writes to the
user .condarc file (/Users/macbook/.condarc) by default.
create Create a new conda environment from a list of specified packages.
help Displays a list of available conda commands and their help strings.
info Display information about current conda install.
init Initialize conda for shell interaction. [Experimental]
install Installs a list of packages into a specified conda environment.
list List linked packages in a conda environment.
package Low-level conda package utility. (EXPERIMENTAL)
remove Remove a list of packages from a specified conda environment.
uninstall Alias for conda remove.
run Run an executable in a conda environment. [Experimental]
search Search for packages and display associated information. The input is a MatchSpec, a query language
for conda packages. See examples below.
update Updates conda packages to the latest compatible version.
upgrade Alias for conda update.
repoquery Query repositories using mamba.