.
+
+Candidates are reminded of the importance of having prior knowledge of Git.
+Additionally, candidates should join the
+[OSL Discord](https://opensciencelabs.org/discord) to stay updated on
+announcements related to the Internship Program.
+
+Recognizing the value of skill enhancement, Open Science Labs organizes study
+groups that candidates are encouraged to participate in, further refining their
+abilities.
+
+## Guidelines for Approved Interns:
+
+---
+
+- **Communication:** Proactive communication is encouraged, with frequent
+ updates through appropriate channels. Approved interns should use OSL Blog to
+ document their experiences.
+- **Continuous Learning:** Interns are advised to study project technologies,
+ participate in study groups, and regularly write about their experiences on
+ the OSL Blog.
+- **Evaluations:** The internship includes midterm and final evaluations,
+ allowing mentors to assess progress and students/collaborators to evaluate
+ their contributions.
+ > **Information:** For more details about internships, you can
+ > [click here](https://opensciencelabs.org/opportunities/internship/cycles/2024-01/#osl-web-page)
+
+## Timeline
+
+---
+
+| Date | Activity |
+| ------------------------ | -------------------------------------------------------------------------------------------- |
+| **January 9, 2024** | Call for Interns/Apprentices opens. |
+| **February 2, 2024** | Deadline for Interns/Apprentices applications. |
+| **February 14, 2024** | Announcement of approved Interns/Apprentices. |
+| **February 24-25, 2024** | Integration Phase – interns engage with mentors and familiarize themselves with the project. |
+| **February 26, 2024** | Official Start Date. |
+| **April 8, 2024** | Mid-term Evaluation. |
+| **May 20, 2024** | Final Evaluation. |
+| **May 27-31, 2024** | Interns present their work. |
+| **June 3, 2024** | Official End Date; Certification process begins. |
+
+## List of Participating Projects
+
+---
+
+Below is the list of projects participating in the current internship cycle.
+Each project includes key details to help candidates understand the scope and
+requirements.
+
+### ArtBox
+
+- **Description:** ArtBox is a tool set for handling multimedia files with a
+ bunch of useful functions.
+- **Category:** Multimedia Processing.
+- **Organization/Project Webpage URL:**
+ [https://osl-incubator.github.io/artbox/](https://osl-incubator.github.io/artbox/)
+- **Contact:** Ivan Ogasawara
+ [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-incubator/artbox/issues/10](https://github.com/osl-incubator/artbox/issues/10)
+
+### ArxLang/ASTx
+
+- **Description:** ASTx is an agnostic expression structure for AST. It is
+ agnostic because it is not specific to any language, neither to the ArxLang
+ project, although its main focus is to provide all needed feature for ArxLang.
+- **Categories:** AST, Compiler
+- **Organization/Project Webpage URL:**
+ [https://astx.arxlang.org/](https://astx.arxlang.org/)
+- **Contact:** Ivan Ogasawara
+ [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/arxlang/astx/issues/21](https://github.com/arxlang/astx/issues/21)
+
+### Envers
+
+- **Description:** Envers is a command-line tool (CLI) designed to manage and
+ version environment variables for different deployment stages such as staging,
+ development, and production. It provides a secure and organized way to handle
+ environment-specific configurations.
+- **Categories:** DevOps, Environment Management
+- **Organization/Project Webpage URL:**
+ [https://osl-incubator.github.io/envers/](https://osl-incubator.github.io/envers/)
+- **Contact:** Ivan Ogasawara
+ [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-incubator/envers/issues/18](https://github.com/osl-incubator/envers/issues/18)
+
+### fqlearn
+
+- **Description:** This Project aims to facilitate the teaching of unit
+ operations and thermodynamics.
+- **Categories:** Mathematical Modeling, Educational
+- **Organization/Project Webpage URL:**
+ [https://osl-pocs.github.io/fqlearn/](https://osl-pocs.github.io/fqlearn/)
+- **Contact:** John Ever Vino Duran
+ [evervino00@gmail.com](mailto:evervino00@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-pocs/fqlearn/issues/30](https://github.com/osl-pocs/fqlearn/issues/30)
+
+### Makim
+
+- **Description:** Makim (or makim) is based on make and focus on improve the
+ way to define targets and dependencies. Instead of using the Makefile format,
+ it uses yaml format.
+- **Categories:** DevOps, Automation
+- **Organization/Project Webpage URL:**
+ [https://osl-incubator.github.io/makim/](https://osl-incubator.github.io/makim/)
+- **Contact:** Ivan Ogasawara
+ [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-incubator/makim/issues/74](https://github.com/osl-incubator/makim/issues/74)
+
+### noWorkflow
+
+- **Description:** The noWorkflow project aims at allowing scientists to benefit
+ from provenance data analysis even when they don't use a workflow system. It
+ transparently collects provenance from Python scripts and notebooks and
+ provide tools to support the analysis and management of the provenance.
+- **Categories:** Provenance, Software Engineering
+- **Organization/Project Webpage URL:**
+ [https://gems-uff.github.io/noworkflow/](https://gems-uff.github.io/noworkflow/)
+- **Contact:** João Felipe Nicolaci Pimentel
+ [joaofelipenp@gmail.com](mailto:joaofelipenp@gmail.com)
+- **Project Ideas URL:**
+ [https://gist.github.com/JoaoFelipe/ce4cb232deb2c71d4f39afc5cbeefe2b](https://gist.github.com/JoaoFelipe/ce4cb232deb2c71d4f39afc5cbeefe2b)
+
+### OSL Web Page
+
+- **Description:** OpenScienceLabs web page, is a project that serves as a way
+ to present OSL to the world through a web page.
+- **Category:** Web Development
+- **Organization/Project Webpage URL:**
+ [https://opensciencelabs.org//](https://opensciencelabs.org/)
+- **Contact:** John Ever Vino Duran
+ [evervino00@gmail.com](mailto:evervino00@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-pocs/fqlearn/issues/43](https://github.com/osl-pocs/fqlearn/issues/43)
+
+### PyDataStructs
+
+- **Description:** PyDataStructs project aims to be a Python package for various
+ data structures and algorithms (including their parallel implementations).
+- **Categories:** Data Structures, Algorithms
+- **Organization/Project Webpage URL:**
+ [https://pydatastructs.readthedocs.io/en/latest/](https://pydatastructs.readthedocs.io/en/latest/)
+- **Contact:** Gagandeep Singh [gdp.1807@gmail.com](mailto:gdp.1807@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/codezonediitj/pydatastructs/wiki/Planned-Features-for-v1.0.1](https://github.com/codezonediitj/pydatastructs/wiki/Planned-Features-for-v1.0.1)
+
+### SciCookie
+
+- **Description:** SciCookie is a template developed by
+ [OpenScienceLabs](https://opensciencelabs.org/) that creates projects from
+ project templates.
+- **Category:** Project Templates, Scientific Software
+- **Organization/Project Webpage URL:**
+ [https://osl-incubator.github.io/scicookie](https://osl-incubator.github.io/scicookie)
+- **Contact:** Ivan Ogasawara
+ [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-incubator/scicookie/issues/192](https://github.com/osl-incubator/scicookie/issues/192)
+
+### Sugar
+
+- **Description:** Sugar aims to organize your stack of containers, gathering
+ some useful scripts and keeping this information centralized in a
+ configuration file. So the command line would be very simple.
+- **Categories:** DevOps, Container Management
+- **Organization/Project Webpage URL:**
+ [https://osl-incubator.github.io/sugar/e](https://osl-incubator.github.io/sugar/)
+- **Contact:** Ivan Ogasawara
+ [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
+- **Project Ideas URL:**
+ [https://github.com/osl-incubator/sugar/issues/105](https://github.com/osl-incubator/sugar/issues/105)
+
+### Useful Materials and Courses
+
+---
+
+- **Software Carpentry Lessons:** Offering tutorials on Git, Bash, Python, R,
+ and more, these lessons are invaluable for building a strong foundation in
+ software development. Access the lessons at Software Carpentry.
+- **Udacity CS212 - Design of Computer Programs:** This course, taught by Peter
+ Norvig, delves into advanced programming topics and is an excellent way to
+ deepen your understanding of computer programs. Enroll in the course at
+ Udacity CS212.
+- **The GRAPH Network Courses:** Explore a range of courses offered by The GRAPH
+ Network, tailored to various aspects of data analysis. Find the courses at The
+ GRAPH Network Courses. These resources provide a great opportunity to prepare
+ effectively for the Internship Program and to develop a broad skill set in
+ software development and data analysis.
diff --git a/pages/blog/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/header.png b/bkp/blogs/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/header.png
similarity index 100%
rename from pages/blog/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/header.png
rename to bkp/blogs/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/header.png
diff --git a/pages/blog/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/index.md b/bkp/blogs/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/index.md
similarity index 100%
rename from pages/blog/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/index.md
rename to bkp/blogs/caracteristicas-y-tips-utiles-que-te-ayudaran-sacar-el-maximo-provecho-de-conda/index.md
diff --git a/pages/blog/ciencia-abierta/header.png b/bkp/blogs/ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/ciencia-abierta/header.png
rename to bkp/blogs/ciencia-abierta/header.png
diff --git a/pages/blog/ciencia-abierta/index.md b/bkp/blogs/ciencia-abierta/index.md
similarity index 95%
rename from pages/blog/ciencia-abierta/index.md
rename to bkp/blogs/ciencia-abierta/index.md
index 924d6ba01..159b66d90 100644
--- a/pages/blog/ciencia-abierta/index.md
+++ b/bkp/blogs/ciencia-abierta/index.md
@@ -104,7 +104,7 @@ composiciones.
## Una inteligencia artificial que 'mira' a traves de las paredes mediante señales WiFi
-En este paper [RF-Pose](http://rfpose.csail.mit.edu/#Paper) publicado por Zhao
+En este paper [RF-Pose](https://rfpose.csail.mit.edu/#Paper) publicado por Zhao
et al. se presenta una aplicación llamada RF-Pose que analiza las señales radio
en las frecuencias WiFi, aprovechandose que estas señales inalambricas traspasan
las paredes y se reflejan del cuerpo humano, para estimar poses 2D. Para estimar
@@ -125,7 +125,7 @@ ocurran. Sin embargo, exige que hayan expertos que identífiquen y interpreten
dentro de las imagenes generadas por este proceso ciertas anormalidades, lo cual
esta sujeto al error humano y, por lo tanto, sufre de tasas subóptimas de falsos
positivos y negativos. Por lo tanto, en este paper
-[International evaluation of an AI system for breast cancer screening](https://deepmind.com/research/publications/International-evaluation-of-an-artificial-intelligence-system-to-identify-breast-cancer-in-screening-mammography)
+[International evaluation of an AI system for breast cancer screening](https://www.nature.com/articles/s41586-019-1799-6)
publicado por Etemadi et al. en el 2020 se buscó crear un sistema que utilizara
la inteligencia artificial para ayudar a los medicos a identíficarlo, y
sorprendentemente, se encontro que el sistema no solamente funcionaba, sino que
@@ -143,6 +143,6 @@ posean los recursos necesarios para realizarla en números mayores.
- [First Order Motion Model for Image Animation](https://aliaksandrsiarohin.github.io/first-order-model-website/)
- [First Order Motion Model for Image Animation](https://www.youtube.com/watch?v=u-0cQ-grXBQ)
- [MuseNet](https://openai.com/blog/musenet/)
-- [RF-Pose](http://rfpose.csail.mit.edu/#Paper)
+- [RF-Pose](https://rfpose.csail.mit.edu/#Paper)
- [AI Senses People Through Walls](https://www.youtube.com/watch?v=HgDdaMy8KNE)
-- [International evaluation of an AI system for breast cancer screening](https://deepmind.com/research/publications/International-evaluation-of-an-artificial-intelligence-system-to-identify-breast-cancer-in-screening-mammography)
+- [International evaluation of an AI system for breast cancer screening](https://www.nature.com/articles/s41586-019-1799-6)
diff --git a/pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/header.png b/bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/header.png
similarity index 100%
rename from pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/header.png
rename to bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/header.png
diff --git a/pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/index.md b/bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/index.md
similarity index 100%
rename from pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/index.md
rename to bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-datos-abiertos/index.md
diff --git a/pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/header.png b/bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/header.png
similarity index 100%
rename from pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/header.png
rename to bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/header.png
diff --git a/pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/index.md b/bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/index.md
similarity index 98%
rename from pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/index.md
rename to bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/index.md
index 790aa5ddb..8bebcf75f 100644
--- a/pages/blog/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/index.md
+++ b/bkp/blogs/cinco-cosas-que-no-debes-olvidar-al-trabajar-con-markdown/index.md
@@ -132,8 +132,7 @@ escritor.
Acá te dejamos algunos enlaces a manuales e información importante sobre
Markdown:
-- Guía breve de Markdown
- (http://fobos.inf.um.es/R/taller5j/30-markdown/guiabreve.pdf)
+- Guía rápida Markdown (https://tutorialmarkdown.com/guia)
- Información sobre Markdown (https://markdown.es/)
- Blog (https://joedicastro.com/pages/markdown.html)
diff --git a/pages/blog/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/header.png b/bkp/blogs/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/header.png
similarity index 100%
rename from pages/blog/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/header.png
rename to bkp/blogs/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/header.png
diff --git a/pages/blog/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/index.md b/bkp/blogs/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/index.md
similarity index 100%
rename from pages/blog/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/index.md
rename to bkp/blogs/cinco-cosas-que-te-ayudaran-gestionar-mejor-los-datos-de-tus-proximos-proyectos/index.md
diff --git a/pages/blog/cinco-tips-para-aumentar-tu-productividad-con-git/header.png b/bkp/blogs/cinco-tips-para-aumentar-tu-productividad-con-git/header.png
similarity index 100%
rename from pages/blog/cinco-tips-para-aumentar-tu-productividad-con-git/header.png
rename to bkp/blogs/cinco-tips-para-aumentar-tu-productividad-con-git/header.png
diff --git a/pages/blog/cinco-tips-para-aumentar-tu-productividad-con-git/index.md b/bkp/blogs/cinco-tips-para-aumentar-tu-productividad-con-git/index.md
similarity index 99%
rename from pages/blog/cinco-tips-para-aumentar-tu-productividad-con-git/index.md
rename to bkp/blogs/cinco-tips-para-aumentar-tu-productividad-con-git/index.md
index 625a5d511..5f5185f6b 100644
--- a/pages/blog/cinco-tips-para-aumentar-tu-productividad-con-git/index.md
+++ b/bkp/blogs/cinco-tips-para-aumentar-tu-productividad-con-git/index.md
@@ -21,8 +21,7 @@ template: "blog-post.html"
En otros de nuestros artículos publicados, te hablamos sobre
-[Git de 0 a 100](/blog/git-de-en-diez-sencillos-pasos/)
-e
+[Git de 0 a 100](/blog/git-de-en-diez-sencillos-pasos/) e
[investigación colaborativa con Git](/blog/investigacion-colaborativa-con-git/).
Allí hemos repasado sobre las bondades de este sistema y su uso actual en la
colaboración en proyectos abiertos, grandes o pequeños, manejándolos con mayor
diff --git a/pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/codeabbey.png b/bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/codeabbey.png
similarity index 100%
rename from pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/codeabbey.png
rename to bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/codeabbey.png
diff --git a/pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/header.png b/bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/header.png
similarity index 100%
rename from pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/header.png
rename to bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/header.png
diff --git a/pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/index.md b/bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/index.md
similarity index 100%
rename from pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/index.md
rename to bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/index.md
diff --git a/pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems1.png b/bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems1.png
similarity index 100%
rename from pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems1.png
rename to bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems1.png
diff --git a/pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems2.png b/bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems2.png
similarity index 100%
rename from pages/blog/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems2.png
rename to bkp/blogs/code-abbey-una-plataforma-mejorar-tu-habilidad-en-programacion/problems2.png
diff --git a/pages/blog/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/header.png b/bkp/blogs/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/header.png
similarity index 100%
rename from pages/blog/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/header.png
rename to bkp/blogs/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/header.png
diff --git a/pages/blog/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/index.md b/bkp/blogs/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/index.md
similarity index 98%
rename from pages/blog/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/index.md
rename to bkp/blogs/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/index.md
index 770e0d277..8384ef55c 100644
--- a/pages/blog/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/index.md
+++ b/bkp/blogs/como-aplicar-la-investigacion-reproducible-proyectos-de-codigo-abierto/index.md
@@ -122,7 +122,7 @@ actual de reproducibilidad. ¡Haz la diferencia!
### Referencias
-- [Ciencia reproducible, qué, por qué, cómo](https://www.revistaecosistemas.net/index.php/ecosistemas/article/view/1178/973)
+- [Ciencia reproducible, qué, por qué, cómo](https://revistaecosistemas.net/index.php/ecosistemas/article/view/1178)
- [Manual de capacitación sobre ciencia abierta de la FOSTER](https://book.fosteropenscience.eu/es/)
diff --git a/pages/blog/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/header.png b/bkp/blogs/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/header.png
similarity index 100%
rename from pages/blog/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/header.png
rename to bkp/blogs/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/header.png
diff --git a/pages/blog/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/index.md b/bkp/blogs/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/index.md
similarity index 100%
rename from pages/blog/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/index.md
rename to bkp/blogs/como-aplicar-los-principios-de-acceso-abierto-en-tus-investigaciones/index.md
diff --git a/pages/blog/como-documentar-tu-proyecto-de-ciencia-abierta/header.png b/bkp/blogs/como-documentar-tu-proyecto-de-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/como-documentar-tu-proyecto-de-ciencia-abierta/header.png
rename to bkp/blogs/como-documentar-tu-proyecto-de-ciencia-abierta/header.png
diff --git a/pages/blog/como-documentar-tu-proyecto-de-ciencia-abierta/index.md b/bkp/blogs/como-documentar-tu-proyecto-de-ciencia-abierta/index.md
similarity index 100%
rename from pages/blog/como-documentar-tu-proyecto-de-ciencia-abierta/index.md
rename to bkp/blogs/como-documentar-tu-proyecto-de-ciencia-abierta/index.md
diff --git a/pages/blog/como-instalar-y-comenzar-utilizar-conda/header.png b/bkp/blogs/como-instalar-y-comenzar-utilizar-conda/header.png
similarity index 100%
rename from pages/blog/como-instalar-y-comenzar-utilizar-conda/header.png
rename to bkp/blogs/como-instalar-y-comenzar-utilizar-conda/header.png
diff --git a/pages/blog/como-instalar-y-comenzar-utilizar-conda/index.md b/bkp/blogs/como-instalar-y-comenzar-utilizar-conda/index.md
similarity index 100%
rename from pages/blog/como-instalar-y-comenzar-utilizar-conda/index.md
rename to bkp/blogs/como-instalar-y-comenzar-utilizar-conda/index.md
diff --git a/pages/blog/como-instalar-y-comenzar-utilizar-tensorflow/header.png b/bkp/blogs/como-instalar-y-comenzar-utilizar-tensorflow/header.png
similarity index 100%
rename from pages/blog/como-instalar-y-comenzar-utilizar-tensorflow/header.png
rename to bkp/blogs/como-instalar-y-comenzar-utilizar-tensorflow/header.png
diff --git a/pages/blog/como-instalar-y-comenzar-utilizar-tensorflow/index.md b/bkp/blogs/como-instalar-y-comenzar-utilizar-tensorflow/index.md
similarity index 100%
rename from pages/blog/como-instalar-y-comenzar-utilizar-tensorflow/index.md
rename to bkp/blogs/como-instalar-y-comenzar-utilizar-tensorflow/index.md
diff --git a/pages/blog/como-presentar-tu-codigo-como-un-articulo-cientifico/header.png b/bkp/blogs/como-presentar-tu-codigo-como-un-articulo-cientifico/header.png
similarity index 100%
rename from pages/blog/como-presentar-tu-codigo-como-un-articulo-cientifico/header.png
rename to bkp/blogs/como-presentar-tu-codigo-como-un-articulo-cientifico/header.png
diff --git a/pages/blog/como-presentar-tu-codigo-como-un-articulo-cientifico/index.md b/bkp/blogs/como-presentar-tu-codigo-como-un-articulo-cientifico/index.md
similarity index 100%
rename from pages/blog/como-presentar-tu-codigo-como-un-articulo-cientifico/index.md
rename to bkp/blogs/como-presentar-tu-codigo-como-un-articulo-cientifico/index.md
diff --git a/pages/blog/cuales-son-los-principios-de-la-investigacion-reproducible/header.png b/bkp/blogs/cuales-son-los-principios-de-la-investigacion-reproducible/header.png
similarity index 100%
rename from pages/blog/cuales-son-los-principios-de-la-investigacion-reproducible/header.png
rename to bkp/blogs/cuales-son-los-principios-de-la-investigacion-reproducible/header.png
diff --git a/pages/blog/cuales-son-los-principios-de-la-investigacion-reproducible/index.md b/bkp/blogs/cuales-son-los-principios-de-la-investigacion-reproducible/index.md
similarity index 100%
rename from pages/blog/cuales-son-los-principios-de-la-investigacion-reproducible/index.md
rename to bkp/blogs/cuales-son-los-principios-de-la-investigacion-reproducible/index.md
diff --git a/pages/blog/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/header.png b/bkp/blogs/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/header.png
rename to bkp/blogs/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/header.png
diff --git a/pages/blog/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/index.md b/bkp/blogs/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/index.md
similarity index 100%
rename from pages/blog/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/index.md
rename to bkp/blogs/dataverse-y-su-potencial-para-proyectos-de-ciencia-abierta/index.md
diff --git a/pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica1.png b/bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica1.png
similarity index 100%
rename from pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica1.png
rename to bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica1.png
diff --git a/pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica2.png b/bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica2.png
similarity index 100%
rename from pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica2.png
rename to bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica2.png
diff --git a/pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica3.png b/bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica3.png
similarity index 100%
rename from pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica3.png
rename to bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/grafica3.png
diff --git a/pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/header.png b/bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/header.png
similarity index 100%
rename from pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/header.png
rename to bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/header.png
diff --git a/pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/index.md b/bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/index.md
similarity index 100%
rename from pages/blog/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/index.md
rename to bkp/blogs/dibuja-tus-mapas-en-r-usando-archivos-de-formato-shapefile/index.md
diff --git "a/pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/egh_map.png" "b/bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/egh_map.png"
similarity index 100%
rename from "pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/egh_map.png"
rename to "bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/egh_map.png"
diff --git "a/pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/header.png" "b/bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/header.png"
similarity index 100%
rename from "pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/header.png"
rename to "bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/header.png"
diff --git "a/pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/index.md" "b/bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/index.md"
similarity index 96%
rename from "pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/index.md"
rename to "bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/index.md"
index 5c91ab7dc..34f6987d2 100644
--- "a/pages/blog/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/index.md"
+++ "b/bkp/blogs/epigraphhub-un-proyecto-de-c\303\263digo-abierto-para-el-analisis-de-datos-de-calidad/index.md"
@@ -61,14 +61,14 @@ y sus aplicaciones.
Las bibliotecas permiten realizar o aplicar:
-* Estadística Bayesiana
-* Análisis epidemiológico
-* Modelado matemático
-* Análisis de Costo-efectividad
-* Pronósticos
-* Aprendizaje automático
-* Minería de textos
-* Análisis Geoespacial
+- Estadística Bayesiana
+- Análisis epidemiológico
+- Modelado matemático
+- Análisis de Costo-efectividad
+- Pronósticos
+- Aprendizaje automático
+- Minería de textos
+- Análisis Geoespacial
Esto se encuentra disponible para los lenguajes de programación
[R](https://github.com/thegraphnetwork/r-epigraphhub/blob/main/epigraphhub.Rproj)
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/energy.png b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/energy.png
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/energy.png
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/energy.png
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/eth-pow-pos.png b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/eth-pow-pos.png
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/eth-pow-pos.png
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/eth-pow-pos.png
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/ethereum_panda.png b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/ethereum_panda.png
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/ethereum_panda.png
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/ethereum_panda.png
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/header.jpeg b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/header.jpeg
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/header.jpeg
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/header.jpeg
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/header.png b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/header.png
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/header.png
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/header.png
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/index.md b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/index.md
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/index.md
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/index.md
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/meme-summer.jpeg b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/meme-summer.jpeg
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/meme-summer.jpeg
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/meme-summer.jpeg
diff --git a/pages/blog/ethereum-merge-is-coming-pero-que-significa/upgrade_path.png b/bkp/blogs/ethereum-merge-is-coming-pero-que-significa/upgrade_path.png
similarity index 100%
rename from pages/blog/ethereum-merge-is-coming-pero-que-significa/upgrade_path.png
rename to bkp/blogs/ethereum-merge-is-coming-pero-que-significa/upgrade_path.png
diff --git a/pages/blog/filtrar-datos-r/covid_continentes.png b/bkp/blogs/filtrar-datos-r/covid_continentes.png
similarity index 100%
rename from pages/blog/filtrar-datos-r/covid_continentes.png
rename to bkp/blogs/filtrar-datos-r/covid_continentes.png
diff --git a/pages/blog/filtrar-datos-r/covid_continentes_indicador.png b/bkp/blogs/filtrar-datos-r/covid_continentes_indicador.png
similarity index 100%
rename from pages/blog/filtrar-datos-r/covid_continentes_indicador.png
rename to bkp/blogs/filtrar-datos-r/covid_continentes_indicador.png
diff --git a/pages/blog/filtrar-datos-r/covid_region.png b/bkp/blogs/filtrar-datos-r/covid_region.png
similarity index 100%
rename from pages/blog/filtrar-datos-r/covid_region.png
rename to bkp/blogs/filtrar-datos-r/covid_region.png
diff --git a/pages/blog/filtrar-datos-r/header.png b/bkp/blogs/filtrar-datos-r/header.png
similarity index 100%
rename from pages/blog/filtrar-datos-r/header.png
rename to bkp/blogs/filtrar-datos-r/header.png
diff --git a/pages/blog/filtrar-datos-r/index.md b/bkp/blogs/filtrar-datos-r/index.md
similarity index 100%
rename from pages/blog/filtrar-datos-r/index.md
rename to bkp/blogs/filtrar-datos-r/index.md
diff --git a/pages/blog/git-de-en-diez-sencillos-pasos/header.png b/bkp/blogs/git-de-en-diez-sencillos-pasos/header.png
similarity index 100%
rename from pages/blog/git-de-en-diez-sencillos-pasos/header.png
rename to bkp/blogs/git-de-en-diez-sencillos-pasos/header.png
diff --git a/pages/blog/git-de-en-diez-sencillos-pasos/index.md b/bkp/blogs/git-de-en-diez-sencillos-pasos/index.md
similarity index 100%
rename from pages/blog/git-de-en-diez-sencillos-pasos/index.md
rename to bkp/blogs/git-de-en-diez-sencillos-pasos/index.md
diff --git a/pages/blog/herramientas-de-visualizacion-en-python/header.png b/bkp/blogs/herramientas-de-visualizacion-en-python/header.png
similarity index 100%
rename from pages/blog/herramientas-de-visualizacion-en-python/header.png
rename to bkp/blogs/herramientas-de-visualizacion-en-python/header.png
diff --git a/pages/blog/herramientas-de-visualizacion-en-python/index.md b/bkp/blogs/herramientas-de-visualizacion-en-python/index.md
similarity index 100%
rename from pages/blog/herramientas-de-visualizacion-en-python/index.md
rename to bkp/blogs/herramientas-de-visualizacion-en-python/index.md
diff --git a/pages/blog/herramientas-de-visualizacion-en-r/header.png b/bkp/blogs/herramientas-de-visualizacion-en-r/header.png
similarity index 100%
rename from pages/blog/herramientas-de-visualizacion-en-r/header.png
rename to bkp/blogs/herramientas-de-visualizacion-en-r/header.png
diff --git a/pages/blog/herramientas-de-visualizacion-en-r/index.md b/bkp/blogs/herramientas-de-visualizacion-en-r/index.md
similarity index 100%
rename from pages/blog/herramientas-de-visualizacion-en-r/index.md
rename to bkp/blogs/herramientas-de-visualizacion-en-r/index.md
diff --git a/pages/blog/ibis-framework/header.jpg b/bkp/blogs/ibis-framework/header.jpg
similarity index 100%
rename from pages/blog/ibis-framework/header.jpg
rename to bkp/blogs/ibis-framework/header.jpg
diff --git a/pages/blog/ibis-framework/index.ipynb b/bkp/blogs/ibis-framework/index.ipynb
similarity index 100%
rename from pages/blog/ibis-framework/index.ipynb
rename to bkp/blogs/ibis-framework/index.ipynb
diff --git a/pages/blog/ibis-framework/index.md b/bkp/blogs/ibis-framework/index.md
similarity index 69%
rename from pages/blog/ibis-framework/index.md
rename to bkp/blogs/ibis-framework/index.md
index dff14cfa5..f2867b028 100644
--- a/pages/blog/ibis-framework/index.md
+++ b/bkp/blogs/ibis-framework/index.md
@@ -4,7 +4,8 @@ slug: "ibis-framework"
date: 2022-08-03
authors: ["Luã Bida Vacaro"]
tags: ["ibis", "dataframe", "datos", "pandas"]
-categories: ["ciencia abierta", "datos abiertos", "acceso abierto", "Python", "SQL"]
+categories:
+ ["ciencia abierta", "datos abiertos", "acceso abierto", "Python", "SQL"]
description: |
Ibis Framework é uma biblioteca Python
que gera expressões de busca em banco de dados. O framework foi idealizado por
@@ -14,31 +15,48 @@ description: |
thumbnail: "/header.jpg"
template: "blog-post.html"
---
-[Ibis Framework](https://github.com/ibis-project/ibis/) é uma biblioteca Python que gera expressões de busca em banco de dados. O framework foi idealizado por [Wes McKinney](https://github.com/wesm), o mesmo criador do Pandas, voltado para integração de diferentes Engines de Bancos de Dados através de Expressões Ibis com Python.
-Enquanto os motores de busca e análise de dados crescem e ficam mais robustos com o avanço da era dos Dados, algumas complicações podem ser encontradas em diferentes ambientes de desenvolvimento. Um dos exemplos mais comuns é o crescimento de aplicações que realizam buscas SQL em um banco de dados, com o tempo as buscas se tornam complexas e de difícil leitura.
+[Ibis Framework](https://github.com/ibis-project/ibis/) é uma biblioteca Python
+que gera expressões de busca em banco de dados. O framework foi idealizado por
+[Wes McKinney](https://github.com/wesm), o mesmo criador do Pandas, voltado para
+integração de diferentes Engines de Bancos de Dados através de Expressões Ibis
+com Python.
-Atualmente o Ibis possui 12 backends em seu escopo, alguns deles são responsáveis pela manipulação dos dados, outros, como por exemplo o SQLAlchemy, são responsáveis pela tradução das expressões Ibis em buscas SQL, etc. Você pode conferir todos os backends [aqui](https://ibis-project.org/docs/3.1.0/backends/).
+Enquanto os motores de busca e análise de dados crescem e ficam mais robustos
+com o avanço da era dos Dados, algumas complicações podem ser encontradas em
+diferentes ambientes de desenvolvimento. Um dos exemplos mais comuns é o
+crescimento de aplicações que realizam buscas SQL em um banco de dados, com o
+tempo as buscas se tornam complexas e de difícil leitura.
+
+Atualmente o Ibis possui 12 backends em seu escopo, alguns deles são
+responsáveis pela manipulação dos dados, outros, como por exemplo o SQLAlchemy,
+são responsáveis pela tradução das expressões Ibis em buscas SQL, etc. Você pode
+conferir todos os backends
+[aqui](https://ibis-project.org/docs/3.1.0/backends/).
## Setup e Base de Dados
-O Ibis pode ser instalado via `pip` ou `conda`. Nos exemplos a seguir utilizaremos apenas a instalação padrão do Ibis, mas você pode conferir como instalar outros Backends como o [Google BigQuery](https://github.com/ibis-project/ibis-bigquery/), [Apache Impala](https://github.com/ibis-project/ibis-bigquery/), [PostgreSQL](https://ibis-project.org/docs/3.1.0/backends/PostgreSQL/) dependendo da sua necessidade.
-
+O Ibis pode ser instalado via `pip` ou `conda`. Nos exemplos a seguir
+utilizaremos apenas a instalação padrão do Ibis, mas você pode conferir como
+instalar outros Backends como o
+[Google BigQuery](https://github.com/ibis-project/ibis-bigquery/),
+[Apache Impala](https://github.com/ibis-project/ibis-bigquery/),
+[PostgreSQL](https://ibis-project.org/docs/3.1.0/backends/PostgreSQL/)
+dependendo da sua necessidade.
```python
!mamba install ibis-framework matplotlib sqlalchemy -c conda-forge -y
```
-Estaremos trabalhando com um dataset disponibilizado pelo Ministério da Saúde em formato CSV.
-
+Estaremos trabalhando com um dataset disponibilizado pelo Ministério da Saúde em
+formato CSV.
```python
!wget -c https://data.brasil.io/dataset/covid19/caso_full.csv.gz && gunzip -c caso_full.csv.gz > data/caso_full.csv
```
-
```python
import matplotlib.pyplot as plt
import pandas as pd
@@ -48,36 +66,29 @@ import ibis
## Como funciona o Ibis?
-O Ibis, a partir da criação de Expressões, se consitui em uma camada de abstração entre as Engines de banco de dados e o usuário final. Em seu backend, o Ibis utiliza Pandas como sua Engine de execução, então podemos ler o arquivo CSV com a função `read_csv()` do Pandas:
-
+O Ibis, a partir da criação de Expressões, se consitui em uma camada de
+abstração entre as Engines de banco de dados e o usuário final. Em seu backend,
+o Ibis utiliza Pandas como sua Engine de execução, então podemos ler o arquivo
+CSV com a função `read_csv()` do Pandas:
```python
df = ibis.backends.pandas.pd.read_csv('data/caso_full.csv')
```
-
```python
df.head()
```
-
-
-
-
-.dataframe thead th {
-text-align: right;
-}
-
@@ -212,10 +223,6 @@ text-align: right;
-
-
-
-
```python
df.info()
```
@@ -254,19 +261,23 @@ dtypes: bool(2), float64(5), int64(6), object(5)
memory usage: 477.8+ MB
+
-E para demonstrar o verdadeiro poder do Ibis, iremos transformar nosso arquivo CSV em uma Base de Dados SQL. Na instalação padrão do Ibis, o backend SQL é o `sqlite3`, então nos exemplos a seguir utilizaremos SQLite para realizar buscas na base de dados. Caso queira utilizar outra Engine SQL, como [BigQuery](https://github.com/ibis-project/ibis-bigquery/) ou [Postgres](https://ibis-project.org/docs/3.1.0/backends/PostgreSQL/), acesse a [documentação oficial](https://ibis-project.org/docs/3.1.0/backends/PostgreSQL/) e siga instruções de instalação.
-
+E para demonstrar o verdadeiro poder do Ibis, iremos transformar nosso arquivo
+CSV em uma Base de Dados SQL. Na instalação padrão do Ibis, o backend SQL é o
+`sqlite3`, então nos exemplos a seguir utilizaremos SQLite para realizar buscas
+na base de dados. Caso queira utilizar outra Engine SQL, como
+[BigQuery](https://github.com/ibis-project/ibis-bigquery/) ou
+[Postgres](https://ibis-project.org/docs/3.1.0/backends/PostgreSQL/), acesse a
+[documentação oficial](https://ibis-project.org/docs/3.1.0/backends/PostgreSQL/)
+e siga instruções de instalação.
```python
df.to_sql('casos_covid19_BR', sqlite3.connect('data/casof.db'))
```
-
-
-
OUTPUT
@@ -279,30 +290,31 @@ df.to_sql('casos_covid19_BR', sqlite3.connect('data/casof.db'))
-
-
-
```python
con = ibis.sqlite.connect('data/casof.db')
casos = con.table('casos_covid19_BR')
```
-O Ibis, junto com o SQLAlchemy, utiliza grafos para representar suas Expressões. Portanto é possível visualizar todas as etapas ocorridas no Backend com a configuração de representação de grafos ativa. Da mesma forma, podemos representar o Schema da nossa tabela através da função `display()`:
-
+O Ibis, junto com o SQLAlchemy, utiliza grafos para representar suas Expressões.
+Portanto é possível visualizar todas as etapas ocorridas no Backend com a
+configuração de representação de grafos ativa. Da mesma forma, podemos
+representar o Schema da nossa tabela através da função `display()`:
```python
ibis.options.graphviz_repr = True
display(casos)
```
-
-

-
-
-
-Assim como no Pandas, as colunas podem ser chamadas diretamente. Entretanto, como o Ibis funciona por padrão em [`Lazy mode`](https://ibis-project.org/docs/3.1.0/tutorial/03-Expressions-Lazy-Mode-Logging/?h=lazy), o resultado da query não fica armazenado em memória e ela só será executada utilizando o comando `execute()`. O lazy mode busca diminuir a utilização da memória, ao invés de executar a busca quando o objeto é instanciado, o Ibis retorna uma expressão contendo os parâmetros de busca, executando a busca somente quando necessário:
+Assim como no Pandas, as colunas podem ser chamadas diretamente. Entretanto,
+como o Ibis funciona por padrão em
+[`Lazy mode`](https://ibis-project.org/docs/3.1.0/tutorial/03-Expressions-Lazy-Mode-Logging/?h=lazy),
+o resultado da query não fica armazenado em memória e ela só será executada
+utilizando o comando `execute()`. O lazy mode busca diminuir a utilização da
+memória, ao invés de executar a busca quando o objeto é instanciado, o Ibis
+retorna uma expressão contendo os parâmetros de busca, executando a busca
+somente quando necessário:
```python
# Semelhante ao pandas, podemos realizar uma busca SQL que retorna os valores max. e min. da coluna
@@ -310,7 +322,6 @@ data_min = casos.date.min().name('first_entry')
data_max = casos.date.max().name('last_entry')
```
-
```python
print(data_min.execute()) # Dia da primeira entrada registrada na base de dados
print(data_max.execute()) # Dia da última entrada registrada na base de dados
@@ -327,18 +338,29 @@ print(data_max.execute()) # Dia da última entrada registrada na base de dados
2022-03-27
+
## E por que usar Ibis ao invés das ferramentas SQL diretamente?
-
-- Ibis, por ser uma ferramenta escrita em Python, é atraente para quem não tem tanta familiaridade com SQL. Ao automatizar as buscas, novos desenvolvedores poderão entender como as buscas são feitas na Engine SQL.
-- Com o crescimento da aplicação, os parâmetros de busca em SQL podem se tornar confusos e de difícil replicação. Com o Ibis é possível portabilizar as Expressões para serem reutilizadas em outras buscas sem a necessidade de reescrever código.
-- Caso você esteja trabalhando com diferentes Engines SQL, seja por causa do tamanho da base de dados, por exemplo. Com o Ibis é possível rapidamente conectar à uma Engine que consiga lidar diferentes volumes de dados ([ClickHouse](https://ibis-project.org/docs/3.1.0/backends/ClickHouse/), [HeavyAI](https://github.com/heavyai/ibis-heavyai), etc) e continuar com o mesmo fluxo de trabalho.
-
-Por exemplo: já vimos que é possível criar buscas SQL através de expressões Ibis, entretanto, o oposto também pode ser visualizado. Com a função `compile()` podemos retornar os parâmetros da busca realizada pela Expressão Ibis na base de dados. Ou seja, é possível realizar análises das buscas na base de dados com facilidade, pois o Ibis te mostra como fez para retornar o resultado desejado:
-
+- Ibis, por ser uma ferramenta escrita em Python, é atraente para quem não tem
+ tanta familiaridade com SQL. Ao automatizar as buscas, novos desenvolvedores
+ poderão entender como as buscas são feitas na Engine SQL.
+- Com o crescimento da aplicação, os parâmetros de busca em SQL podem se tornar
+ confusos e de difícil replicação. Com o Ibis é possível portabilizar as
+ Expressões para serem reutilizadas em outras buscas sem a necessidade de
+ reescrever código.
+- Caso você esteja trabalhando com diferentes Engines SQL, seja por causa do
+ tamanho da base de dados, por exemplo. Com o Ibis é possível rapidamente
+ conectar à uma Engine que consiga lidar diferentes volumes de dados
+ (ClickHouse, HeavyAI, etc) e continuar com o mesmo fluxo de trabalho.
+
+Por exemplo: já vimos que é possível criar buscas SQL através de expressões
+Ibis, entretanto, o oposto também pode ser visualizado. Com a função `compile()`
+podemos retornar os parâmetros da busca realizada pela Expressão Ibis na base de
+dados. Ou seja, é possível realizar análises das buscas na base de dados com
+facilidade, pois o Ibis te mostra como fez para retornar o resultado desejado:
```python
print(data_min.compile())
@@ -355,35 +377,28 @@ SELECT min(t0.date) AS first_entry
FROM main."casos_covid19_BR" AS t0
+
-Um dos pontos chave do Ibis, é a possibilidade de criar Expressões com o resultado de interesse, renomeá-las, e utilizá-las para outras buscas sem precisar repetir código:
-
+Um dos pontos chave do Ibis, é a possibilidade de criar Expressões com o
+resultado de interesse, renomeá-las, e utilizá-las para outras buscas sem
+precisar repetir código:
```python
total_new_cases = casos['new_confirmed'].sum().name('total_new_cases')
total_new_deaths = casos['new_deaths'].sum().name('total_new_deaths')
```
-
```python
total_new_cases
```
-
-
-
-

-
-
-
-
```python
epiweek_covid = casos.group_by('epidemiological_week').aggregate((
- total_new_cases,
+ total_new_cases,
total_new_deaths,
))
@@ -401,35 +416,29 @@ SELECT t0.epidemiological_week, sum(t0.new_confirmed) AS total_new_cases, sum(t0
FROM main."casos_covid19_BR" AS t0 GROUP BY t0.epidemiological_week
+
-Lembra que o Ibis utiliza o Pandas como Backend de execução? Podemos agora salvar o Pandas DataFrame gerado na execução em uma variável para termos acesso às funções do Pandas:
-
+Lembra que o Ibis utiliza o Pandas como Backend de execução? Podemos agora
+salvar o Pandas DataFrame gerado na execução em uma variável para termos acesso
+às funções do Pandas:
```python
df = epiweek_covid.execute()
df.head()
```
-
-
-
-
-.dataframe thead th {
-text-align: right;
-}
-
@@ -474,10 +483,6 @@ text-align: right;
-
-
-
-
```python
df['week'] = df['epidemiological_week'].astype(str).str[4:6]
df['year'] = df['epidemiological_week'].astype(str).str[0:4]
@@ -488,24 +493,16 @@ df.insert(1, 'week', df.pop('week'))
df.head()
```
-
-
-
-
-.dataframe thead th {
-text-align: right;
-}
-
@@ -556,10 +553,6 @@ text-align: right;
-
-
-
-
```python
df = df.head(15)
plt.bar(df.week, df.total_new_cases)
@@ -570,27 +563,34 @@ plt.legend(['New cases', 'New deaths'])
plt.show()
```
-
-

-
-
## Manipulando os dados e inserindo novas colunas:
-Os DataFrames gerados pelo Pandas Engine são estáticos. Isso quer dizer que ao manipular os dados, as expressões não alteram o DataFrame em si, mas preparam os parâmetros de busca para gerar um novo DataFrame a partir do comando `execute()`, que pode ser visualizado, armazenado e exportado.
-
-No exemplo abaixo, estaremos parametrizando a busca a ser realizada na base de dados. Com uma sintaxe "Pandas-like", pode-se imaginar que estaremos manipulando o DataFrame em si. Entretanto, o Ibis armazena o resultado desejado para que a busca seja realizada somente quando o resultado deve ser exibido, executando-o. Ao extrair as colunas como em `percentage_cases`, por exemplo, uma query SQL é armazenada
+Os DataFrames gerados pelo Pandas Engine são estáticos. Isso quer dizer que ao
+manipular os dados, as expressões não alteram o DataFrame em si, mas preparam os
+parâmetros de busca para gerar um novo DataFrame a partir do comando
+`execute()`, que pode ser visualizado, armazenado e exportado.
-Operações matemáticas entre as colunas podem ser escritas de maneira Pythonica com o Ibis e facilmente adicionadas em outros critérios de busca:
+No exemplo abaixo, estaremos parametrizando a busca a ser realizada na base de
+dados. Com uma sintaxe "Pandas-like", pode-se imaginar que estaremos manipulando
+o DataFrame em si. Entretanto, o Ibis armazena o resultado desejado para que a
+busca seja realizada somente quando o resultado deve ser exibido, executando-o.
+Ao extrair as colunas como em `percentage_cases`, por exemplo, uma query SQL é
+armazenada
+Operações matemáticas entre as colunas podem ser escritas de maneira Pythonica
+com o Ibis e facilmente adicionadas em outros critérios de busca:
```python
percentage_cases = (casos['new_confirmed'] / casos['estimated_population'] * 100).name('porc_cases')
```
-Assim como em SQL, `when clauses` podem ser usadas para extrair apenas certas partes dos dados. Neste exemplo estaremos extraindo as informações dos estados do Sul do país, para que no final seja retornado um DataFrame com os parâmetros definidos. Com o modo de gráficos ativo, podemos visualizar os passos armazenados nos parâmetros de busca:
-
+Assim como em SQL, `when clauses` podem ser usadas para extrair apenas certas
+partes dos dados. Neste exemplo estaremos extraindo as informações dos estados
+do Sul do país, para que no final seja retornado um DataFrame com os parâmetros
+definidos. Com o modo de gráficos ativo, podemos visualizar os passos
+armazenados nos parâmetros de busca:
```python
south_br = (casos.state.case()
@@ -603,17 +603,10 @@ south_br = (casos.state.case()
south_br
```
-
-
-
-

-
-
-
-
-Compilando as buscas com os parâmetros, podemos visualizar a query que acabamos de criar e que será executada com a função `execute()`:
+Compilando as buscas com os parâmetros, podemos visualizar a query que acabamos
+de criar e que será executada com a função `execute()`:
```python
# Query SQL referente a `percentage_cases`:
@@ -632,10 +625,10 @@ SELECT (t0.new_confirmed / t0.estimated_population) * 100 AS porc_cases
FROM main."casos_covid19_BR" AS t0
+
-
```python
# Query SQL referente a `south_br`
print(south_br.compile().compile(
@@ -653,11 +646,13 @@ SELECT CASE WHEN (t0.state = 'SC') THEN 'Santa Catarina' WHEN (t0.state = 'RS')
FROM main."casos_covid19_BR" AS t0
+
-Agora que temos a porcentagem de casos e a região separadas em duas variáveis, podemos agregar as buscas e encontrar as porcentagem de casos nos estados em questão e retorná-lo em Dataframe:
-
+Agora que temos a porcentagem de casos e a região separadas em duas variáveis,
+podemos agregar as buscas e encontrar as porcentagem de casos nos estados em
+questão e retorná-lo em Dataframe:
```python
# Agregando as duas queries SQL como se fosse um Pandas DataFrame:
@@ -678,33 +673,25 @@ FROM main."casos_covid19_BR" AS t1 GROUP BY CASE WHEN (t1.state = 'SC') THEN 'Sa
WHERE t0."Regiao Sul" IS NOT NULL AND t0."Media Casos" IS NOT NULL
+
-
```python
# O resultado da query com o DataFrame desejado:
sul.execute()
```
-
-
-
-
-.dataframe thead th {
-text-align: right;
-}
-
@@ -733,12 +720,15 @@ text-align: right;
-
-
-
## Conclusão
-Como pudemos ver, o Ibis é uma ferramenta poderosa para acelerar sua análise de dados, capaz de integrar diferentes engines SQL com o Pandas, o Framework traz melhorias de performance e legibilidade ao código Python. Crie e realize buscas SQL como se estivesse trabalhando com um Pandas DataFrame, mas com uma economia de memória e alta portabilidade! Com o Ibis é possível utilizar o mesmo padrão de trabalho para desenvolvimento e produção, acelerar seus testes unitários, escalonar a aplicação para diferentes bases de dados, e muito mais!
+Como pudemos ver, o Ibis é uma ferramenta poderosa para acelerar sua análise de
+dados, capaz de integrar diferentes engines SQL com o Pandas, o Framework traz
+melhorias de performance e legibilidade ao código Python. Crie e realize buscas
+SQL como se estivesse trabalhando com um Pandas DataFrame, mas com uma economia
+de memória e alta portabilidade! Com o Ibis é possível utilizar o mesmo padrão
+de trabalho para desenvolvimento e produção, acelerar seus testes unitários,
+escalonar a aplicação para diferentes bases de dados, e muito mais!
### Referências
diff --git a/pages/blog/ibis-framework/index_files/index_15_0.png b/bkp/blogs/ibis-framework/index_files/index_15_0.png
similarity index 100%
rename from pages/blog/ibis-framework/index_files/index_15_0.png
rename to bkp/blogs/ibis-framework/index_files/index_15_0.png
diff --git a/pages/blog/ibis-framework/index_files/index_24_0.png b/bkp/blogs/ibis-framework/index_files/index_24_0.png
similarity index 100%
rename from pages/blog/ibis-framework/index_files/index_24_0.png
rename to bkp/blogs/ibis-framework/index_files/index_24_0.png
diff --git a/pages/blog/ibis-framework/index_files/index_29_0.png b/bkp/blogs/ibis-framework/index_files/index_29_0.png
similarity index 100%
rename from pages/blog/ibis-framework/index_files/index_29_0.png
rename to bkp/blogs/ibis-framework/index_files/index_29_0.png
diff --git a/pages/blog/ibis-framework/index_files/index_33_0.png b/bkp/blogs/ibis-framework/index_files/index_33_0.png
similarity index 100%
rename from pages/blog/ibis-framework/index_files/index_33_0.png
rename to bkp/blogs/ibis-framework/index_files/index_33_0.png
diff --git a/pages/blog/investigacion-colaborativa-con-git/header.png b/bkp/blogs/investigacion-colaborativa-con-git/header.png
similarity index 100%
rename from pages/blog/investigacion-colaborativa-con-git/header.png
rename to bkp/blogs/investigacion-colaborativa-con-git/header.png
diff --git a/pages/blog/investigacion-colaborativa-con-git/index.md b/bkp/blogs/investigacion-colaborativa-con-git/index.md
similarity index 100%
rename from pages/blog/investigacion-colaborativa-con-git/index.md
rename to bkp/blogs/investigacion-colaborativa-con-git/index.md
diff --git a/pages/blog/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/header.png b/bkp/blogs/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/header.png
similarity index 100%
rename from pages/blog/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/header.png
rename to bkp/blogs/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/header.png
diff --git a/pages/blog/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/index.md b/bkp/blogs/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/index.md
similarity index 100%
rename from pages/blog/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/index.md
rename to bkp/blogs/la-importancia-de-la-integridad-en-los-datos-manejados-en-los-dashboards/index.md
diff --git a/pages/blog/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/header.png b/bkp/blogs/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/header.png
similarity index 100%
rename from pages/blog/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/header.png
rename to bkp/blogs/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/header.png
diff --git a/pages/blog/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/index.md b/bkp/blogs/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/index.md
similarity index 100%
rename from pages/blog/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/index.md
rename to bkp/blogs/la-investigacion-abierta-el-manejo-de-repositorios-y-control-de-versiones/index.md
diff --git a/pages/blog/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/header.png b/bkp/blogs/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/header.png
similarity index 100%
rename from pages/blog/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/header.png
rename to bkp/blogs/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/header.png
diff --git a/pages/blog/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/index.md b/bkp/blogs/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/index.md
similarity index 100%
rename from pages/blog/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/index.md
rename to bkp/blogs/la-investigacion-abierta-podria-cambiar-el-futuro-de-la-investigacion-en-ciencias-puras-te-contamos-por-que/index.md
diff --git a/pages/blog/los-laboratorios-sociales-y-el-manejo-del-covid-19/header.png b/bkp/blogs/los-laboratorios-sociales-y-el-manejo-del-covid-19/header.png
similarity index 100%
rename from pages/blog/los-laboratorios-sociales-y-el-manejo-del-covid-19/header.png
rename to bkp/blogs/los-laboratorios-sociales-y-el-manejo-del-covid-19/header.png
diff --git a/pages/blog/los-laboratorios-sociales-y-el-manejo-del-covid-19/index.md b/bkp/blogs/los-laboratorios-sociales-y-el-manejo-del-covid-19/index.md
similarity index 84%
rename from pages/blog/los-laboratorios-sociales-y-el-manejo-del-covid-19/index.md
rename to bkp/blogs/los-laboratorios-sociales-y-el-manejo-del-covid-19/index.md
index 3d84613fa..f5a5127b9 100644
--- a/pages/blog/los-laboratorios-sociales-y-el-manejo-del-covid-19/index.md
+++ b/bkp/blogs/los-laboratorios-sociales-y-el-manejo-del-covid-19/index.md
@@ -18,11 +18,6 @@ thumbnail: "/header.png"
template: "blog-post.html"
---
-
-
-
-
-
Frente a la pandemia ocasionada por la enfermedad COVID-19 se han desarrollado
en todo el mundo, distintas prácticas de ciencia abierta para hacerle frente.
Una de ellas son los **Laboratorios Sociales** donde los integrantes desarrollan
@@ -86,7 +81,7 @@ Este proyecto es una colaboración del MIT con el Banco Mundial y se refiere al
seguimiento mundial de la evolución en tiempo real del COVID-19 mediante la
cuantificación del distanciamiento social y el impacto económico.
-- [Pandemic Response CoLab](https://www.pandemicresponsecolab.org/)
+- Pandemic Response CoLab (service unavailable)
El propósito del proyecto es:
@@ -96,10 +91,9 @@ El propósito del proyecto es:
- Reclutar personas y recursos para implementar estas soluciones
-El proyecto ofrece un dashboard, el
-[Pandemic Response Data Dashboard](https://www.pandemicresponsedata.org/) que
-recopila datos fiables y oportunos para ayudar a la comunidad científica a
-encontrar las soluciones más impactantes a la pandemia.
+El proyecto ofrece un dashboard, el Pandemic Response Data Dashboard (service
+unavailable) que recopila datos fiables y oportunos para ayudar a la comunidad
+científica a encontrar las soluciones más impactantes a la pandemia.
### [MediaLab UGR](https://medialab.ugr.es) y [LabIN Granada](https://labingranada.org/)
@@ -114,20 +108,18 @@ para conectarnos desde la solidaridad y la creatividad.
Estos laboratorios, en ocasiones, trabajan en conjunto en la planificación y
desarrollo de proyectos para el bienestar social. Uno de ellos es la iniciativa
-[LabIN #UGRenCasa](https://ugrencasa.labingranada.org/), un espacio de encuentro
-para la comunidad universitaria y la ciudadanía durante el confinamiento con el
-fin de proponer ideas para vivir mejor y compartir experiencias sobre esta
-situación y qué podemos aprender de ello para el futuro.
+LabIN #UGRenCasa (link no disponible), un espacio de encuentro para la comunidad
+universitaria y la ciudadanía durante el confinamiento con el fin de proponer
+ideas para vivir mejor y compartir experiencias sobre esta situación y qué
+podemos aprender de ello para el futuro.
-### [MediaLab Prado](https://www.medialab-prado.es)
+### MediaLab Prado (link no disponible)
La actividad de MediaLab Prado se estructura en grupos de trabajo, convocatorias
abiertas para la producción de proyectos, investigación colaborativa y
-comunidades de aprendizaje en torno a temas muy diversos
-\[https://www.medialab-prado.es\]. MediaLab Prado está constituido por varios
-laboratorios, uno de ellos el
-[InCiLab](https://www.medialab-prado.es/laboratorios/incilab) un laboratorio de
-innovación ciudadana.
+comunidades de aprendizaje en torno a temas muy diversos. MediaLab Prado está
+constituido por varios laboratorios, uno de ellos el InCiLab (link no
+disponible) un laboratorio de innovación ciudadana.
Una de las iniciativas de InCiLab frente al COVID-19 son los
[Laboratorios Bibliotecarios en confinamiento](https://www.culturaydeporte.gob.es/cultura/areas/bibliotecas/mc/laboratorios-bibliotecarios/jornadas/confinamiento.html)
@@ -179,12 +171,10 @@ FrenaLaCurva como laboratorio participante, puedes ver la noticia
[aquí](https://medialab.ugr.es/noticias/medialab-ugr-se-une-a-frenalacurva-net-una-iniciativa-para-hacer-frente-a-la-crisis-del-covid-19/).
También Medialab Prado se suma a la iniciativa de FrenaLaCurva:
-[Desafíos Comunes. Festival de innovación abierta Frena la Curva](https://frenalacurva.net/desafios-comunes/),
-accede a la noticia desde
-[este link](https://www.medialab-prado.es/noticias/desafios-comunes-festival-de-innovacion-abierta-frena-la-curva-proyectos-seleccionados).
-Desafíos comunes es una convocatoria para iniciativas vecinales, proyectos de
-emprendimiento e innovación social, y experiencias colaborativas desde el sector
-público.
+[Desafíos Comunes. Festival de innovación abierta Frena la Curva](https://frenalacurva.net/desafios-comunes/)
+(link no disponible). Desafíos comunes es una convocatoria para iniciativas
+vecinales, proyectos de emprendimiento e innovación social, y experiencias
+colaborativas desde el sector público.
Estos son algunos laboratorios sociales que han estado trabajando en el manejo
del COVID-19 con información breve sobre sus proyectos, anímate a acceder a sus
@@ -207,8 +197,6 @@ te animamos a que no lo dejes para después, puedes comenzar ahora.
- [LabIN Granada](https://labingranada.org/)
-- [MediaLab Prado](https://www.medialab-prado.es)
-
- [BID Lab](https://bidlab.org/es/)
- [socialab](https://socialab.com)
diff --git a/pages/blog/nft-mas-que-un-jpg/dotcom-bubble.webp b/bkp/blogs/nft-mas-que-un-jpg/dotcom-bubble.webp
similarity index 100%
rename from pages/blog/nft-mas-que-un-jpg/dotcom-bubble.webp
rename to bkp/blogs/nft-mas-que-un-jpg/dotcom-bubble.webp
diff --git a/pages/blog/nft-mas-que-un-jpg/header.png b/bkp/blogs/nft-mas-que-un-jpg/header.png
similarity index 100%
rename from pages/blog/nft-mas-que-un-jpg/header.png
rename to bkp/blogs/nft-mas-que-un-jpg/header.png
diff --git a/pages/blog/nft-mas-que-un-jpg/index.md b/bkp/blogs/nft-mas-que-un-jpg/index.md
similarity index 100%
rename from pages/blog/nft-mas-que-un-jpg/index.md
rename to bkp/blogs/nft-mas-que-un-jpg/index.md
diff --git a/pages/blog/nft-mas-que-un-jpg/nft-girlfriend-overly-attached.jpeg b/bkp/blogs/nft-mas-que-un-jpg/nft-girlfriend-overly-attached.jpeg
similarity index 100%
rename from pages/blog/nft-mas-que-un-jpg/nft-girlfriend-overly-attached.jpeg
rename to bkp/blogs/nft-mas-que-un-jpg/nft-girlfriend-overly-attached.jpeg
diff --git a/pages/blog/nft-mas-que-un-jpg/nft-torrents.jpeg b/bkp/blogs/nft-mas-que-un-jpg/nft-torrents.jpeg
similarity index 100%
rename from pages/blog/nft-mas-que-un-jpg/nft-torrents.jpeg
rename to bkp/blogs/nft-mas-que-un-jpg/nft-torrents.jpeg
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Asana1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Asana1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Asana1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Asana1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Basecamp1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Basecamp1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Basecamp1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Basecamp1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Carrot1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Carrot1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Carrot1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Carrot1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Discourse1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Discourse1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Discourse1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Discourse1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Flarum1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Flarum1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Flarum1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Flarum1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Keybase1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Keybase1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Keybase1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Keybase1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Notion1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Notion1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Notion1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Notion1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Slack1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Slack1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Slack1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/Slack1.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/header.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/header.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/header.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/header.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/index.md b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/index.md
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/index.md
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/index.md
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/thread.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/thread.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/thread.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/thread.png
diff --git a/pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/twist1.png b/bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/twist1.png
similarity index 100%
rename from pages/blog/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/twist1.png
rename to bkp/blogs/plataformas-que-te-ayudaran-en-la-gestion-de-tu-grupo-de-trabajo/twist1.png
diff --git a/pages/blog/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/header.png b/bkp/blogs/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/header.png
similarity index 100%
rename from pages/blog/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/header.png
rename to bkp/blogs/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/header.png
diff --git a/pages/blog/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/index.md b/bkp/blogs/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/index.md
similarity index 100%
rename from pages/blog/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/index.md
rename to bkp/blogs/por-que-deberias-considerar-carpentries-como-una-referencia-para-aprender-ciencia-de-datos/index.md
diff --git a/pages/blog/primeros-pasos-con-rstudio/2consola.gif b/bkp/blogs/primeros-pasos-con-rstudio/2consola.gif
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/2consola.gif
rename to bkp/blogs/primeros-pasos-con-rstudio/2consola.gif
diff --git a/pages/blog/primeros-pasos-con-rstudio/4.gif b/bkp/blogs/primeros-pasos-con-rstudio/4.gif
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/4.gif
rename to bkp/blogs/primeros-pasos-con-rstudio/4.gif
diff --git a/pages/blog/primeros-pasos-con-rstudio/C1.gif b/bkp/blogs/primeros-pasos-con-rstudio/C1.gif
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/C1.gif
rename to bkp/blogs/primeros-pasos-con-rstudio/C1.gif
diff --git a/pages/blog/primeros-pasos-con-rstudio/Environment.gif b/bkp/blogs/primeros-pasos-con-rstudio/Environment.gif
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/Environment.gif
rename to bkp/blogs/primeros-pasos-con-rstudio/Environment.gif
diff --git a/pages/blog/primeros-pasos-con-rstudio/Rstudio.png b/bkp/blogs/primeros-pasos-con-rstudio/Rstudio.png
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/Rstudio.png
rename to bkp/blogs/primeros-pasos-con-rstudio/Rstudio.png
diff --git a/pages/blog/primeros-pasos-con-rstudio/cambiotam.gif b/bkp/blogs/primeros-pasos-con-rstudio/cambiotam.gif
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/cambiotam.gif
rename to bkp/blogs/primeros-pasos-con-rstudio/cambiotam.gif
diff --git a/pages/blog/primeros-pasos-con-rstudio/header.png b/bkp/blogs/primeros-pasos-con-rstudio/header.png
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/header.png
rename to bkp/blogs/primeros-pasos-con-rstudio/header.png
diff --git a/pages/blog/primeros-pasos-con-rstudio/index.md b/bkp/blogs/primeros-pasos-con-rstudio/index.md
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/index.md
rename to bkp/blogs/primeros-pasos-con-rstudio/index.md
diff --git a/pages/blog/primeros-pasos-con-rstudio/paq.gif b/bkp/blogs/primeros-pasos-con-rstudio/paq.gif
similarity index 100%
rename from pages/blog/primeros-pasos-con-rstudio/paq.gif
rename to bkp/blogs/primeros-pasos-con-rstudio/paq.gif
diff --git a/pages/blog/primeros-pasos-con-spyder/header.png b/bkp/blogs/primeros-pasos-con-spyder/header.png
similarity index 100%
rename from pages/blog/primeros-pasos-con-spyder/header.png
rename to bkp/blogs/primeros-pasos-con-spyder/header.png
diff --git a/pages/blog/primeros-pasos-con-spyder/index.md b/bkp/blogs/primeros-pasos-con-spyder/index.md
similarity index 99%
rename from pages/blog/primeros-pasos-con-spyder/index.md
rename to bkp/blogs/primeros-pasos-con-spyder/index.md
index e0d40a2de..b6ae3c3d2 100644
--- a/pages/blog/primeros-pasos-con-spyder/index.md
+++ b/bkp/blogs/primeros-pasos-con-spyder/index.md
@@ -15,16 +15,12 @@ thumbnail: "/header.png"
template: "blog-post.html"
---
-
-
Si has elegido programar en Python, luego de haberlo instalado quizás te
preguntarás; ¿dónde voy a programar? Para esto necesitas un editor de código.
Existen muchas opciones de IDE (Entorno de Desarrollo Integrado) que puedes
usar, la elección dependerá de la herramienta que te haga sentir comodidad, se
adapte a tus necesidades de trabajo y, muy importante, sea sencilla de manejar.
-
-
En este post presentamos lo que necesitas saber para utilizar
[Spyder](https://www.spyder-ide.org/) como entorno de desarrollo para escribir,
ejecutar, evaluar e inspeccionar el resultado de tu código escrito en Python.
@@ -126,8 +122,6 @@ de comandos, un **Explorador de Variables** para ver qué variables se han
definido durante la evaluación, que cuenta con botones de **ayuda** para
cualquier comando y **explorador de archivos**.
-
-
Como puedes observar, del lado izquierdo tenemos el _Editor de código_. En la
parte superior derecha se encuentran las pestañas: _Explorador de variables_,
_Explorador de archivos_, _Ayuda_. En la parte inferior derecha tenemos: _El
diff --git a/pages/blog/pyopensci-un-promotor-de-la-ciencia-abierta/header.png b/bkp/blogs/pyopensci-un-promotor-de-la-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/pyopensci-un-promotor-de-la-ciencia-abierta/header.png
rename to bkp/blogs/pyopensci-un-promotor-de-la-ciencia-abierta/header.png
diff --git a/pages/blog/pyopensci-un-promotor-de-la-ciencia-abierta/index.md b/bkp/blogs/pyopensci-un-promotor-de-la-ciencia-abierta/index.md
similarity index 98%
rename from pages/blog/pyopensci-un-promotor-de-la-ciencia-abierta/index.md
rename to bkp/blogs/pyopensci-un-promotor-de-la-ciencia-abierta/index.md
index 77109c6e2..65a74073c 100644
--- a/pages/blog/pyopensci-un-promotor-de-la-ciencia-abierta/index.md
+++ b/bkp/blogs/pyopensci-un-promotor-de-la-ciencia-abierta/index.md
@@ -42,10 +42,10 @@ promover la ciencia abierta mediante el apoyo al desarrollo, la
[_revisión por pares_](https://es.wikipedia.org/wiki/Revisi%C3%B3n_por_pares) y
la publicación abierta de **paquetes científicos escritos en Python** que
cuenten con una buena
-[documentación](/blog/como-documentar-tu-proyecto-de-ciencia-abierta/)
-y estén probados previamente. Estos paquetes son utilizados para recopilar,
-descargar y transformar datos científicos con una metodología de trabajo abierta
-y reproducible.
+[documentación](/blog/como-documentar-tu-proyecto-de-ciencia-abierta/) y estén
+probados previamente. Estos paquetes son utilizados para recopilar, descargar y
+transformar datos científicos con una metodología de trabajo abierta y
+reproducible.
El modelo de trabajo del proyecto está basado en la comunidad
[rOpenSci](https://ropensci.org/). pyOpenSci no trabaja solo, tiene una fuerte
diff --git a/pages/blog/que-es-ciencia-ciudadana/header.png b/bkp/blogs/que-es-ciencia-ciudadana/header.png
similarity index 100%
rename from pages/blog/que-es-ciencia-ciudadana/header.png
rename to bkp/blogs/que-es-ciencia-ciudadana/header.png
diff --git a/pages/blog/que-es-ciencia-ciudadana/index.md b/bkp/blogs/que-es-ciencia-ciudadana/index.md
similarity index 100%
rename from pages/blog/que-es-ciencia-ciudadana/index.md
rename to bkp/blogs/que-es-ciencia-ciudadana/index.md
diff --git a/pages/blog/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/header.png b/bkp/blogs/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/header.png
similarity index 100%
rename from pages/blog/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/header.png
rename to bkp/blogs/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/header.png
diff --git a/pages/blog/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/index.md b/bkp/blogs/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/index.md
similarity index 96%
rename from pages/blog/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/index.md
rename to bkp/blogs/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/index.md
index d92f6380f..9a4f810d6 100644
--- a/pages/blog/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/index.md
+++ b/bkp/blogs/que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones/index.md
@@ -1,5 +1,7 @@
---
-title: "¿Qué es el acceso abierto y por qué debes tenerlo en cuenta para tus investigaciones?"
+title:
+ "¿Qué es el acceso abierto y por qué debes tenerlo en cuenta para tus
+ investigaciones?"
slug: que-es-el-acceso-abierto-y-por-que-debes-tenerlo-en-cuenta-para-tus-investigaciones
date: 2020-01-27
authors: ["Anavelyz Perez"]
@@ -87,8 +89,8 @@ ciertas barreras que facilita el proceso de publicación lo cual implica una
retroalimentación continua entre investigadores.
Es importante tener en cuenta que el acceso abierto en las investigaciones, ya
-que permite promoverlas de manera efectiva a un amplio grupo de personas. Además,
-se reconoce el trabajo y la autoría, se puede encontrar respaldo de
+que permite promoverlas de manera efectiva a un amplio grupo de personas.
+Además, se reconoce el trabajo y la autoría, se puede encontrar respaldo de
instituciones o empresas para nuevas investigaciones y son un punto de partida
para la investigación colaborativa.
diff --git a/pages/blog/que-es-el-codigo-abierto-y-como-puede-ayudarte/header.png b/bkp/blogs/que-es-el-codigo-abierto-y-como-puede-ayudarte/header.png
similarity index 100%
rename from pages/blog/que-es-el-codigo-abierto-y-como-puede-ayudarte/header.png
rename to bkp/blogs/que-es-el-codigo-abierto-y-como-puede-ayudarte/header.png
diff --git a/pages/blog/que-es-el-codigo-abierto-y-como-puede-ayudarte/index.md b/bkp/blogs/que-es-el-codigo-abierto-y-como-puede-ayudarte/index.md
similarity index 100%
rename from pages/blog/que-es-el-codigo-abierto-y-como-puede-ayudarte/index.md
rename to bkp/blogs/que-es-el-codigo-abierto-y-como-puede-ayudarte/index.md
diff --git a/pages/blog/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/header.png b/bkp/blogs/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/header.png
similarity index 100%
rename from pages/blog/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/header.png
rename to bkp/blogs/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/header.png
diff --git a/pages/blog/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/index.md b/bkp/blogs/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/index.md
similarity index 97%
rename from pages/blog/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/index.md
rename to bkp/blogs/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/index.md
index 51caaf236..19ffd0869 100644
--- a/pages/blog/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/index.md
+++ b/bkp/blogs/que-es-el-data-version-control-dvc-y-por-que-es-necesario-que-tu-equipo-sepa-como-utilizarlo/index.md
@@ -85,9 +85,8 @@ archivos grandes, modelos de Machine Learning, conjuntos de datos y flujo de
trabajo. Como DVC hace que los proyectos sean reproducibles y compartibles;
podemos saber cómo se construyeron y probaron los modelos y cómo han sido
transformados los datos originales. DVC está basado en
-[Git](/blog/git-de-en-diez-sencillos-pasos/); aunque
-puede funcionar de manera autónoma (pero sin capacidad de versionado). "Es como
-un Git solo para Datos".
+[Git](/blog/git-de-en-diez-sencillos-pasos/); aunque puede funcionar de manera
+autónoma (pero sin capacidad de versionado). "Es como un Git solo para Datos".
Esta herramienta se desarrolló en un 98% bajo el lenguaje de programación
**Python**.
diff --git a/pages/blog/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/header.png b/bkp/blogs/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/header.png
similarity index 100%
rename from pages/blog/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/header.png
rename to bkp/blogs/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/header.png
diff --git a/pages/blog/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/index.md b/bkp/blogs/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/index.md
similarity index 99%
rename from pages/blog/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/index.md
rename to bkp/blogs/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/index.md
index eebfef6e3..630eb36de 100644
--- a/pages/blog/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/index.md
+++ b/bkp/blogs/que-es-el-lenguaje-r-y-como-puede-ayudarte-en-tus-proyectos/index.md
@@ -94,8 +94,6 @@ que te animes a utilizar R:
ventana para ver las variables que has guardado y otra disponible para que
guardes tu script, todo en un mismo lugar.
-
-
- R te permite obtener resultados detallados y generar reportes profesionales
con ayuda de herramientas como
[**Rmarkdown**](https://rmarkdown.rstudio.com/). Con esta funcionalidad puedes
diff --git a/pages/blog/que-es-el-open-science-framework/header.png b/bkp/blogs/que-es-el-open-science-framework/header.png
similarity index 100%
rename from pages/blog/que-es-el-open-science-framework/header.png
rename to bkp/blogs/que-es-el-open-science-framework/header.png
diff --git a/pages/blog/que-es-el-open-science-framework/index.md b/bkp/blogs/que-es-el-open-science-framework/index.md
similarity index 100%
rename from pages/blog/que-es-el-open-science-framework/index.md
rename to bkp/blogs/que-es-el-open-science-framework/index.md
diff --git a/pages/blog/que-es-la-ciencia-abierta/componentes.png b/bkp/blogs/que-es-la-ciencia-abierta/componentes.png
similarity index 100%
rename from pages/blog/que-es-la-ciencia-abierta/componentes.png
rename to bkp/blogs/que-es-la-ciencia-abierta/componentes.png
diff --git a/pages/blog/que-es-la-ciencia-abierta/header.png b/bkp/blogs/que-es-la-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/que-es-la-ciencia-abierta/header.png
rename to bkp/blogs/que-es-la-ciencia-abierta/header.png
diff --git a/pages/blog/que-es-la-ciencia-abierta/index.md b/bkp/blogs/que-es-la-ciencia-abierta/index.md
similarity index 100%
rename from pages/blog/que-es-la-ciencia-abierta/index.md
rename to bkp/blogs/que-es-la-ciencia-abierta/index.md
diff --git a/pages/blog/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/header.png b/bkp/blogs/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/header.png
similarity index 100%
rename from pages/blog/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/header.png
rename to bkp/blogs/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/header.png
diff --git a/pages/blog/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/index.md b/bkp/blogs/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/index.md
similarity index 100%
rename from pages/blog/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/index.md
rename to bkp/blogs/que-hemos-aprendido-gracias-la-ciencia-abierta-del-manejo-de-pandemias/index.md
diff --git a/pages/blog/que-necesitas-para-desarrollar-en-la-web3/ganache.png b/bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/ganache.png
similarity index 100%
rename from pages/blog/que-necesitas-para-desarrollar-en-la-web3/ganache.png
rename to bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/ganache.png
diff --git a/pages/blog/que-necesitas-para-desarrollar-en-la-web3/hardhat.png b/bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/hardhat.png
similarity index 100%
rename from pages/blog/que-necesitas-para-desarrollar-en-la-web3/hardhat.png
rename to bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/hardhat.png
diff --git a/pages/blog/que-necesitas-para-desarrollar-en-la-web3/header.jpeg b/bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/header.jpeg
similarity index 100%
rename from pages/blog/que-necesitas-para-desarrollar-en-la-web3/header.jpeg
rename to bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/header.jpeg
diff --git a/pages/blog/que-necesitas-para-desarrollar-en-la-web3/index.md b/bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/index.md
similarity index 100%
rename from pages/blog/que-necesitas-para-desarrollar-en-la-web3/index.md
rename to bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/index.md
diff --git a/pages/blog/que-necesitas-para-desarrollar-en-la-web3/web3js.jpeg b/bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/web3js.jpeg
similarity index 100%
rename from pages/blog/que-necesitas-para-desarrollar-en-la-web3/web3js.jpeg
rename to bkp/blogs/que-necesitas-para-desarrollar-en-la-web3/web3js.jpeg
diff --git a/pages/blog/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/header.png b/bkp/blogs/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/header.png
rename to bkp/blogs/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/header.png
diff --git a/pages/blog/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/index.md b/bkp/blogs/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/index.md
similarity index 98%
rename from pages/blog/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/index.md
rename to bkp/blogs/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/index.md
index e667f01dc..dd7a5e431 100644
--- a/pages/blog/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/index.md
+++ b/bkp/blogs/que-son-las-mentorias-y-como-potencian-los-proyectos-de-ciencia-abierta/index.md
@@ -148,11 +148,11 @@ presentamos algunas plataformas e iniciativas de programas de mentorías:
- [Acamica](https://www.acamica.com/)
- [Red de Mentores UANL](http://innovacion.uanl.mx/mentoria/)
- [Red de Mentores de Madrid](https://www.madrimasd.org/emprendedores/red-mentores-madrid)
-- [WINN Women in the news Networs](http://winnlatam.com/mentorias/)
+- [WINN Women in the news Network](https://www.womeninnetwork.org/que-hacemos)
- [Programa de mentorías de la Universidad Complutense de Madrid](https://www.ucm.es/mentorias)
- [Programa de mentorías de la Universidad de la Frontera](http://mentorias.ufro.cl/)
- [Open Life Science](https://openlifesci.org)
-- [Neoscientia](https://neoscientia.com/mentoring/)
+- [Neoscientia](https://neoscientia.com/)
- [Encontrar mentores en ciencia de datos](https://mentorcruise.com/)
Y en openScienceLabs te brindamos un programa de mentorías sobre algunos temas
@@ -161,6 +161,6 @@ de ciencia abierta que puedes consutar en enlace.
### Referencias
- [MENTOR-Sociedad Nacional de Mentoría](https://www.mentoring.org/)
-- [Neoscientia](https://neoscientia.com/mentoring/)
+- [Neoscientia](https://neoscientia.com/)
- [El mentoring como herramienta de motivación y retención del talento](http://pdfs.wke.es/2/2/7/6/pd0000012276.pdf)
- [Mentoría en educación superior, la experiencia en un programa extracurricular](http://www.scielo.org.mx/pdf/redie/v20n4/1607-4041-redie-20-04-86.pdf)
diff --git a/pages/blog/que-son-los-datos-abiertos/header.png b/bkp/blogs/que-son-los-datos-abiertos/header.png
similarity index 100%
rename from pages/blog/que-son-los-datos-abiertos/header.png
rename to bkp/blogs/que-son-los-datos-abiertos/header.png
diff --git a/pages/blog/que-son-los-datos-abiertos/index.md b/bkp/blogs/que-son-los-datos-abiertos/index.md
similarity index 100%
rename from pages/blog/que-son-los-datos-abiertos/index.md
rename to bkp/blogs/que-son-los-datos-abiertos/index.md
diff --git a/pages/blog/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/header.png b/bkp/blogs/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/header.png
similarity index 100%
rename from pages/blog/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/header.png
rename to bkp/blogs/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/header.png
diff --git a/pages/blog/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/index.md b/bkp/blogs/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/index.md
similarity index 100%
rename from pages/blog/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/index.md
rename to bkp/blogs/que-son-los-laboratorios-sociales-y-como-pueden-ayudar-los-equipos-de-investigacion/index.md
diff --git a/pages/blog/r-nube-de-palabras/header.png b/bkp/blogs/r-nube-de-palabras/header.png
similarity index 100%
rename from pages/blog/r-nube-de-palabras/header.png
rename to bkp/blogs/r-nube-de-palabras/header.png
diff --git a/pages/blog/r-nube-de-palabras/index.ipynb b/bkp/blogs/r-nube-de-palabras/index.ipynb
similarity index 100%
rename from pages/blog/r-nube-de-palabras/index.ipynb
rename to bkp/blogs/r-nube-de-palabras/index.ipynb
diff --git a/bkp/blogs/r-nube-de-palabras/index.md b/bkp/blogs/r-nube-de-palabras/index.md
new file mode 100644
index 000000000..fae55951e
--- /dev/null
+++ b/bkp/blogs/r-nube-de-palabras/index.md
@@ -0,0 +1,250 @@
+---
+title: "Crea una nube de palabras en R a partir de un documento de texto"
+slug: r-nube-de-palabras
+date: 2022-03-01
+authors: ["Ever Vino"]
+tags: [nube de palabras, tm]
+categories:
+ [ciencia abierta, código abierto, R, ciencia de datos, minería de datos]
+description: |
+ Una nube de palabras o wordcloud nos sirve para visualizar la frecuencia de palabras
+ dentro de un texto. En este tutorial, usaremos el artículo de [inteligencia artificial]
+ (https://es.wikipedia.org/wiki/Inteligencia_artificial) de Wikipedia para
+ construir nuestra nube de palabras usando las bibliotecas `tm` y `wordcloud`.
+thumbnail: "/header.png"
+template: "blog-post.html"
+---
+
+Una nube de palabras o wordcloud nos sirve para visualizar la frecuencia de
+palabras dentro de un texto. En este tutorial, usaremos el artículo de
+[inteligencia artificial](https://es.wikipedia.org/wiki/Inteligencia_artificial)
+de Wikipedia para construir nuestra nube de palabras usando las bibliotecas `tm`
+y `wordcloud`.
+
+
+
+## Instalación de pre-requisitos
+
+Para un mejor manejo de los paquetes, aquí vamos a utilizar la biblioteca
+`pacman`, esta nos permitirá hacer una instalación y activación de las
+bibliotecas de manera rápida. Recuerde instalar **Rtools** y la versión más
+reciente de **R** si está usando **Windows**.
+
+```python
+# install.packages("pacman") # Si no tiene instalada la Biblioteca Pacman ejecutar esta línea de código
+library("pacman")
+```
+
+Bibliotecas adicionales requeridas, instaladas y abiertas con `pacman`.
+
+```python
+p_load("tm") # Biblioteca para realizar el preprocesado del texto,
+p_load("tidyverse") # Biblioteca con funciones para manipular datos.
+p_load("wordcloud") # Biblioteca para graficar nuestra nube de palabras.
+p_load("RColorBrewer") # Biblioteca para seleccionar una paleta de colores de nuestra nube de palabras.
+```
+
+## Importación del texto
+
+Para este ejemplo, descargamos nuestro artículo de formato texto de un
+repositorio, guardamos la dirección web en `articulo_IA` y lo descargamos usando
+la función `read_file()`. También puede usar los directorios locales para
+importar un texto de su preferencia. Si desea descargar el archivo que usamos en
+este ejemplo puede hacer hacerlo ejecutando
+`download.file("https://gist.github.com/EverVino/7bdbbe7ebdff5987970036f52f0e384f/raw/3a1997b6f9e3471555a941f8812ada0cef84977d/gistfile1.txt", paste(getwd(),"/texto.txt", sep=""))`
+en la línea de comando de R, esto descargará el archivo y lo guardara en la
+carpeta de trabajo de R con el nombre de **texto.txt**.
+
+_Para saber la carpeta de trabajo puede ejecutar `getwd()`. puede cambiar la
+carpeta de trabajo con la función `setwd("/nuevo_directorio_trabajo/")`._
+
+Luego de importar el texto, vamos a convertirlo en un objeto tipo `Source`, esto
+facilitará la minería del texto y su posterior modificación.
+
+```python
+articulo_IA <- "https://gist.github.com/EverVino/7bdbbe7ebdff5987970036f52f0e384f/raw/3a1997b6f9e3471555a941f8812ada0cef84977d/gistfile1.txt"
+texto <- read_file(articulo_IA)
+```
+
+- `read_file(dir)`: Función de la biblioteca `tidyverse` que nos permite
+ importar archivos de texto. El resultado de la función es un vector de un sólo
+ elemento. `dir` es la **direción local** o **url** con el nombre del archivo
+ de formato **txt** a importar.
+
+```python
+texto <- VCorpus(VectorSource(texto),
+ readerControl = list(reader = readPlain, language = "es"))
+```
+
+- `VCorpus (x, readerControl(y))`: Donde `x` es un objeto del tipo `Source`, se
+ recomienda que sea un objeto del tipo `VectorSource`. Para `readerControl(y)`
+ `y` es una lista de parámetros para leer `x`.
+
+- `VectorSource(vector)`: Convierte una lista o vector a un objeto tipo
+ VectorSource.
+
+## Preprocesado de texto
+
+Una vez importado el texto, tenemos que eliminar la palabras que actúan como
+conectores, separadores de palabras , de oraciones, y números que no aportarán
+al análisis del texto, para ello usamos la función `tm_map()` que nos permite
+aplicar funciones al texto del `Corpus`.
+
+```python
+texto <- tm_map(texto, tolower)
+texto <- texto %>%
+ tm_map(removePunctuation) %>%
+ tm_map(removeNumbers) %>%
+ tm_map(removeWords, stopwords("spanish"))
+texto <- tm_map(texto, removeWords, c("puede", "ser", "pues", "si", "aún", "cómo"))
+texto <- tm_map(texto, stripWhitespace)
+```
+
+- `tm_map(text, funcion_de_transformacion, parametros_de_funcion)`: Transforma
+ el contenido de texto de un objeto `Corpus` o `VCorpus`, aplicando las
+ funciones de transformación de texto.
+
+- `tolower`: Función de transformación de texto, usado para convertir todas la
+ mayúsculas a minúsculas.
+
+- `removeNumber`: Función para eliminar los números del texto.
+
+* `removeWord`: Función para remover palabras,
+
+- `stopword("lang")`: Lista de palabras conectoras en el lenguaje lang, es
+ argumento de la función `removeWord`.
+
+- `stripWhitespace`: Función para remover los espacios blancos de un texto.
+
+Nótese que usamos ambas notaciones para transformar el texto del `Corpus`, la
+notación normal `tm_map(x, FUN)` y también la notación de la biblioteca de
+`tydiverse` `pipeoperator` `>%>`, que toma como argumento inicial el resultado
+de la anterior función.
+
+_Si quiere observar los cambios del texto puede ejecutar en la consola
+`writeLines(as.character(texto[[1]]))`, esto imprimirá el resultado en la
+consola._
+
+## Construyendo la tabla de frecuencia
+
+```python
+texto <- tm_map(texto, PlainTextDocument)
+```
+
+- `PlainTextDocument`: Convierte texto a un objeto tipo PlainTextDocument. Para
+ el ejemplo, convierte un `VCorpus` a `PlainTextDocument` el cuál contiene
+ metadatos y nombres de las filas, haciendo factible la conversión a un matriz.
+
+```python
+tabla_frecuencia <- DocumentTermMatrix(texto)
+```
+
+- `DocumentTermMatrix(texto)`: Convierte texto a un objeto tipo term-document
+ matrix. Es un objeto que va a contener la frecuencia de palabras.
+
+```python
+tabla_frecuencia <- cbind(palabras = tabla_frecuencia$dimnames$Terms,
+ frecuencia = tabla_frecuencia$v)
+```
+
+Extraemos los datos que nos interesan del objeto `tabla_frecuencia` y los
+juntamos con `cbind()`.
+
+_Ejecutando en la consola `View(tabla_frecuencia)` notamos que es un objeto,
+para acceder a sus valores usamos el símbolo `$` dicho de otra manera: para
+acceder a las `palabras` usamos `tabla_frecuencia$dimnames$Terms` y para su
+correspondientes frecuencia en el texto `tabla_frecuencia$v`._
+
+```python
+# Convertimos los valores enlazados con cbind a un objeto dataframe.
+tabla_frecuencia<-as.data.frame(tabla_frecuencia)
+# Forzamos a que la columna de frecuencia contenga valores numéricos.
+tabla_frecuencia$frecuencia<-as.numeric(tabla_frecuencia$frecuencia)
+# Ordenamos muestra tabla de frecuencias de acuerdo a sus valores numéricos.
+tabla_frecuencia<-tabla_frecuencia[order(tabla_frecuencia$frecuencia, decreasing=TRUE),]
+```
+
+_Con estos últimos ajustes ya tenemos nuestra tabla de frecuencias para
+graficarla._ _Puede verificar los resultados ejecutando en la consola
+`head(tabla_frecuencia)`_
+
+## Graficando nuestra nube de palabras
+
+Una vez obtenida nuestra tabla de frecuencia sólo es necesario aplicar la
+función `wordcloud()`.
+
+```python
+wordcloud(words = tabla_frecuencia$palabras,
+ freq = tabla_frecuencia$frecuencia,
+ min.freq = 5,
+ max.words = 100,
+ random.order = FALSE,
+ colors = brewer.pal(8,"Paired"))
+```
+
+
+
+- `wordcloud(word, freq, min.freq, max.words, random.order, color)`: Función
+ para graficar la frecuencia de palabras, el tamaño de la palabra graficada
+ será proporcional a la frecuencia de la misma. Esta función grafica las
+ palabras en `word` con sus respectivas frecuencias `freq`, sólo usará las
+ palabras que como mínimo tenga una frecuencia mínima `min.freq`, la cantidad
+ de palabras en graficadas es igual a `maxwords`, las posiciones podrán ser
+ aleatorias o no, dependiendo del valor de `random.order`, los colores estan
+ dados en forma de lista en `colors`.
+- `brewer.pal(n, "paleta")`: Devuelve `n` valores de la `paleta`. Para la
+ función `brewer.pal()` puede usar las paletas `"Dark2"`, `"Set1"`, `"Blues"`
+ entre otros.
+
+_Cada vez que ejecute la función le mostrará diferentes resultados, para
+evitarlo si así se desea, puede fijar un estado inicial para generar números
+aleatorios que utiliza la función wordcloud. Use: `set.seed(1234)` para este
+propósito (puede alterar el valor del argumento numeral para diferentes
+resultados)._
+
+## Guardando nuestra nube de palabras
+
+Usamos la función `png()` para guardar la gráfica que se genera usando
+wordcloud. También puede usar otras funciones como `jpeg`, `svg` y otros. Nótese
+que usamos la función `png()` y `dev.off()` antes y despues de la función
+generadora de la grafica `wordcloud()`
+
+```r
+png("nube.png", width = 800,height = 800, res = 100)
+ wordcloud(...)
+dev.off()
+```
+
+- `png("nombre.png", with, height, res) ... dev.off()`: Guarda el gráfico
+ generado en formato `png`, dentro del directorio actual de trabajo. Lo guarda
+ con el nombre `"nombre.png"` con el ancho y alto en pixeles de `with` y
+ `height` respectivamente; y con la resolución `res` en ppi. Con `dev.off()`
+ concluimos la obtención de datos de `png()`.
+
+_Otra biblioteca muy utilizada para generar una nube de palabras es
+`wordcloud2`, esta posee muchos más parámetros para modificar la apariencia de
+la nube, pero teniendo en cuenta que R está optimizado para realizar tratamiento
+de datos y no tanto para dibujar palabras, es recomendable usar otras opciones
+online o programas de diseño gráfico, si queremos mejores resultados. Y usar R
+para la obtención de la tabla de frecuencia de las palabras._ _Nota: Existen
+palabras que pueden derivar de una misma palabra y expresan el mismo
+significado, como ser nube, nubes, nubarrón, que estan diferenciadas aquí en
+este ejemplo, estos requieren la aplicación adicional de una función que
+contemple estas variaciones linguisticas, lamentablemente a la fecha no hay una
+función equivalente para el español para R. Sin embargo si realiza el análisis
+de palabras en inglés puede usar
+`tm_map(Corpus_en_ingles, stemDocument, language="english")`._
+
+Finalmente antes de concluir cerramos las bibliotecas abiertas con `pacman`. La
+ventaja de hacer esto se ve cuando manejamos diferentes bibliotecas que tienen
+funciones con el mismo nombre, al cerrar las bibliotecas con conflictos, nos
+evitamos de especificar en el código a que biblioteca de R nos referimos.
+
+```python
+p_unload(all)
+```
+
+## Referencias
+
+- [Wikipedia-Inteligencia Artificial](https://es.wikipedia.org/wiki/Inteligencia_artificial)
+- [Documentacion de R](https://www.rdocumentation.org)
diff --git a/pages/blog/r-nube-de-palabras/index_files/index_24_0.png b/bkp/blogs/r-nube-de-palabras/index_files/index_24_0.png
similarity index 100%
rename from pages/blog/r-nube-de-palabras/index_files/index_24_0.png
rename to bkp/blogs/r-nube-de-palabras/index_files/index_24_0.png
diff --git a/pages/blog/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/header.png b/bkp/blogs/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/header.png
similarity index 100%
rename from pages/blog/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/header.png
rename to bkp/blogs/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/header.png
diff --git a/pages/blog/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/index.md b/bkp/blogs/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/index.md
similarity index 100%
rename from pages/blog/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/index.md
rename to bkp/blogs/razones-para-usar-python-en-tu-proximo-proyecto-de-investigacion/index.md
diff --git a/pages/blog/reorganiza-tus-tablas-con-tidyr/Viajeros_2016_2021.jpeg b/bkp/blogs/reorganiza-tus-tablas-con-tidyr/Viajeros_2016_2021.jpeg
similarity index 100%
rename from pages/blog/reorganiza-tus-tablas-con-tidyr/Viajeros_2016_2021.jpeg
rename to bkp/blogs/reorganiza-tus-tablas-con-tidyr/Viajeros_2016_2021.jpeg
diff --git a/pages/blog/reorganiza-tus-tablas-con-tidyr/Viajeros_trimestre_1_2019.jpeg b/bkp/blogs/reorganiza-tus-tablas-con-tidyr/Viajeros_trimestre_1_2019.jpeg
similarity index 100%
rename from pages/blog/reorganiza-tus-tablas-con-tidyr/Viajeros_trimestre_1_2019.jpeg
rename to bkp/blogs/reorganiza-tus-tablas-con-tidyr/Viajeros_trimestre_1_2019.jpeg
diff --git a/pages/blog/reorganiza-tus-tablas-con-tidyr/header.png b/bkp/blogs/reorganiza-tus-tablas-con-tidyr/header.png
similarity index 100%
rename from pages/blog/reorganiza-tus-tablas-con-tidyr/header.png
rename to bkp/blogs/reorganiza-tus-tablas-con-tidyr/header.png
diff --git a/pages/blog/reorganiza-tus-tablas-con-tidyr/index.md b/bkp/blogs/reorganiza-tus-tablas-con-tidyr/index.md
similarity index 100%
rename from pages/blog/reorganiza-tus-tablas-con-tidyr/index.md
rename to bkp/blogs/reorganiza-tus-tablas-con-tidyr/index.md
diff --git a/pages/blog/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/header.png b/bkp/blogs/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/header.png
similarity index 100%
rename from pages/blog/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/header.png
rename to bkp/blogs/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/header.png
diff --git a/pages/blog/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/index.md b/bkp/blogs/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/index.md
similarity index 100%
rename from pages/blog/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/index.md
rename to bkp/blogs/si-pensado-en-como-automatizar-la-construccion-de-citas-en-tu-proyecto-te-contamos-como-hacerlo-posible/index.md
diff --git a/pages/blog/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/header.png b/bkp/blogs/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/header.png
similarity index 100%
rename from pages/blog/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/header.png
rename to bkp/blogs/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/header.png
diff --git a/pages/blog/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/index.md b/bkp/blogs/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/index.md
similarity index 100%
rename from pages/blog/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/index.md
rename to bkp/blogs/si-ya-usas-codigo-abierto-te-contamos-como-puedes-sacarle-mayor-provecho-tu-documentacion-para-tus-articulos-y-publicaciones/index.md
diff --git a/pages/blog/te-contamos-sobre-la-comunidad-ropensci/header.png b/bkp/blogs/te-contamos-sobre-la-comunidad-ropensci/header.png
similarity index 100%
rename from pages/blog/te-contamos-sobre-la-comunidad-ropensci/header.png
rename to bkp/blogs/te-contamos-sobre-la-comunidad-ropensci/header.png
diff --git a/pages/blog/te-contamos-sobre-la-comunidad-ropensci/index.md b/bkp/blogs/te-contamos-sobre-la-comunidad-ropensci/index.md
similarity index 100%
rename from pages/blog/te-contamos-sobre-la-comunidad-ropensci/index.md
rename to bkp/blogs/te-contamos-sobre-la-comunidad-ropensci/index.md
diff --git a/pages/blog/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/header.png b/bkp/blogs/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/header.png
rename to bkp/blogs/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/header.png
diff --git a/pages/blog/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/index.md b/bkp/blogs/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/index.md
similarity index 100%
rename from pages/blog/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/index.md
rename to bkp/blogs/te-ensenamos-lugares-para-aprender-los-fundamentos-de-la-ciencia-abierta/index.md
diff --git a/pages/blog/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/header.png b/bkp/blogs/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/header.png
similarity index 100%
rename from pages/blog/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/header.png
rename to bkp/blogs/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/header.png
diff --git a/pages/blog/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/index.md b/bkp/blogs/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/index.md
similarity index 100%
rename from pages/blog/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/index.md
rename to bkp/blogs/te-hablamos-de-cinco-repositorios-con-datos-abiertos-sobre-paises/index.md
diff --git a/pages/blog/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/header.png b/bkp/blogs/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/header.png
rename to bkp/blogs/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/header.png
diff --git a/pages/blog/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/index.md b/bkp/blogs/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/index.md
similarity index 100%
rename from pages/blog/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/index.md
rename to bkp/blogs/te-hablamos-de-las-licencias-mas-utilizadas-en-proyectos-de-ciencia-abierta/index.md
diff --git a/pages/blog/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/header.png b/bkp/blogs/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/header.png
similarity index 100%
rename from pages/blog/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/header.png
rename to bkp/blogs/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/header.png
diff --git a/pages/blog/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/index.md b/bkp/blogs/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/index.md
similarity index 100%
rename from pages/blog/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/index.md
rename to bkp/blogs/te-hablamos-del-uso-de-dashboards-para-visualizacion-de-datos-de-tu-proximo-proyecto/index.md
diff --git a/pages/blog/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/header.png b/bkp/blogs/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/header.png
similarity index 100%
rename from pages/blog/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/header.png
rename to bkp/blogs/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/header.png
diff --git a/pages/blog/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/index.md b/bkp/blogs/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/index.md
similarity index 97%
rename from pages/blog/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/index.md
rename to bkp/blogs/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/index.md
index 7ad7b87ba..336e5315a 100644
--- a/pages/blog/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/index.md
+++ b/bkp/blogs/te-mostramos-algunos-repositorios-con-datos-sobre-el-covid-19/index.md
@@ -19,10 +19,6 @@ thumbnail: "/header.png"
template: "blog-post.html"
---
-
-
-
-
El covid-19 es un virus que emergió en Wuhan, China a finales del año 2019, este
virus ha generado desde entonces una gran alarma internacional. Se trata de una
infección respiratoria que comienza con fiebre y tos seca y que, al cabo de
@@ -33,8 +29,6 @@ También se transmite al tocarse ojos, nariz o boca tras tocar superficies
contaminadas. Este virus se ha extendido y el número de países en los que sus
ciudadanos se han contagiado incrementó masivamente en los últimos días.
-
-
Para el 11 de marzo de 2020 la Organización Mundial de la Salud ha declarado el
brote del virus como una pandemia global. En un artículo de la revista Nature
\[https://www.nature.com/articles/d41586-020-00154-w\] se tienen cifras
diff --git a/pages/blog/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/header.png b/bkp/blogs/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/header.png
similarity index 100%
rename from pages/blog/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/header.png
rename to bkp/blogs/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/header.png
diff --git a/pages/blog/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/index.md b/bkp/blogs/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/index.md
similarity index 88%
rename from pages/blog/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/index.md
rename to bkp/blogs/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/index.md
index 18432205b..5bab105d8 100644
--- a/pages/blog/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/index.md
+++ b/bkp/blogs/te-mostramos-cinco-librerias-en-python-para-tu-proximo-proyecto-de-ciencia-abierta/index.md
@@ -31,18 +31,18 @@ de resultados óptimos, visualmente atractivos y lo suficientemente informativos
Antes de continuar, recordemos del artículo
-[¿Qué es la ciencia abierta?](/blog/que-es-la-ciencia-abierta/),
-que la ciencia abierta es un movimiento, una manera de ver y hacer ciencia, que
-busca crear una cultura donde la información de todo el proceso de investigación
-científica, ya sean los datos, protocolos, cuadernos de laboratorio, resultados
-obtenidos en las diferentes etapas de este proceso, sean gratuitos y de libre
-acceso. De esta manera, todas las personas involucradas en el proceso de
-investigación, ya sean los propios científicos, instituciones de investigación y
-financiamiento, y público en general, pueden contribuir y colaborar con el
-esfuerzo de investigación. Con esto se garantiza que el trabajo científico sea
-abierto e inclusivo, donde el investigador se dé cuenta que poner a libre
-disposición sus trabajos le garantizan, entre otras cosas, el aumento del
-impacto y difusión de sus investigaciones.
+[¿Qué es la ciencia abierta?](/blog/que-es-la-ciencia-abierta/), que la ciencia
+abierta es un movimiento, una manera de ver y hacer ciencia, que busca crear una
+cultura donde la información de todo el proceso de investigación científica, ya
+sean los datos, protocolos, cuadernos de laboratorio, resultados obtenidos en
+las diferentes etapas de este proceso, sean gratuitos y de libre acceso. De esta
+manera, todas las personas involucradas en el proceso de investigación, ya sean
+los propios científicos, instituciones de investigación y financiamiento, y
+público en general, pueden contribuir y colaborar con el esfuerzo de
+investigación. Con esto se garantiza que el trabajo científico sea abierto e
+inclusivo, donde el investigador se dé cuenta que poner a libre disposición sus
+trabajos le garantizan, entre otras cosas, el aumento del impacto y difusión de
+sus investigaciones.
Allí también se menciona que la ciencia abierta es una forma de producir
conocimiento científico, promoviendo la comunicación y acceso efectivo del
diff --git a/pages/blog/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/header.png b/bkp/blogs/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/header.png
similarity index 100%
rename from pages/blog/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/header.png
rename to bkp/blogs/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/header.png
diff --git a/pages/blog/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/index.md b/bkp/blogs/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/index.md
similarity index 100%
rename from pages/blog/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/index.md
rename to bkp/blogs/todas-las-posibilidades-que-te-ofrece-utilizar-figshare-en-tus-proyectos/index.md
diff --git a/pages/blog/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/header.png b/bkp/blogs/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/header.png
similarity index 100%
rename from pages/blog/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/header.png
rename to bkp/blogs/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/header.png
diff --git a/pages/blog/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/index.md b/bkp/blogs/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/index.md
similarity index 100%
rename from pages/blog/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/index.md
rename to bkp/blogs/todo-lo-que-debes-saber-sobre-la-investigacion-colaborativa/index.md
diff --git a/pages/blog/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/header.png b/bkp/blogs/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/header.png
similarity index 100%
rename from pages/blog/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/header.png
rename to bkp/blogs/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/header.png
diff --git a/pages/blog/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/index.md b/bkp/blogs/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/index.md
similarity index 100%
rename from pages/blog/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/index.md
rename to bkp/blogs/tres-proyectos-de-ciencia-ciudadana-que-te-sorprenderan/index.md
diff --git a/pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/Rplot.png b/bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/Rplot.png
similarity index 100%
rename from pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/Rplot.png
rename to bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/Rplot.png
diff --git a/pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/datosimportpandemia.gif b/bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/datosimportpandemia.gif
similarity index 100%
rename from pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/datosimportpandemia.gif
rename to bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/datosimportpandemia.gif
diff --git a/pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/header.png b/bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/header.png
similarity index 100%
rename from pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/header.png
rename to bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/header.png
diff --git a/pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/index.md b/bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/index.md
similarity index 98%
rename from pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/index.md
rename to bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/index.md
index e949eac6a..b1966e560 100644
--- a/pages/blog/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/index.md
+++ b/bkp/blogs/visualiza-tus-datos-en-r-con-ggplot-y-gganimate/index.md
@@ -15,17 +15,12 @@ thumbnail: "/header.png"
template: "blog-post.html"
---
-
-
-
Una gráfica es una buena manera de expresar los datos, estos ayudan a ver
detalles que simplemente pueden pasar desapercibidos cuando sólo se los analizan
numericamente, estos pueden tener aún mayor impacto si estan animados. ¿Por qué
no hacerlo?. En este artículo se describe como hacer animación usando ggplot2 y
gganimate en R.
-
-
## Comenzando
Usamos R por ser un lenguaje especializado para ciencia de datos y tener una
@@ -213,8 +208,6 @@ Funciones utilizadas
y al eje `y`, además de poner el nombre encima de las leyendas con `color`, el
nombre título y subtítulo con `title` y `subtitle` respectivamente.
-
-
## Gráfica Animada
Ya teniendo nuestra nuestra gráfica estática, vamos a realizar algunas
diff --git a/pages/blog/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/header.png b/bkp/blogs/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/header.png
similarity index 100%
rename from pages/blog/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/header.png
rename to bkp/blogs/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/header.png
diff --git a/pages/blog/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/index.md b/bkp/blogs/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/index.md
similarity index 100%
rename from pages/blog/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/index.md
rename to bkp/blogs/ya-probado-los-cuadernos-de-jupyter-te-explicamos-que-son-y-como-te-ayudaran-en-tu-proxima-investigacion/index.md
diff --git a/pages/opportunities/internship/cycles/2023-01.md b/bkp/opportunities/internship/cycles/2023-01.md
similarity index 100%
rename from pages/opportunities/internship/cycles/2023-01.md
rename to bkp/opportunities/internship/cycles/2023-01.md
diff --git a/pages/opportunities/internship/cycles/2024-01.md b/bkp/opportunities/internship/cycles/2024-01.md
similarity index 99%
rename from pages/opportunities/internship/cycles/2024-01.md
rename to bkp/opportunities/internship/cycles/2024-01.md
index fc98058a4..c86599f4b 100644
--- a/pages/opportunities/internship/cycles/2024-01.md
+++ b/bkp/opportunities/internship/cycles/2024-01.md
@@ -64,7 +64,7 @@ You may propose one or more projects, each with one or more plans.
To get a clearer understanding of structuring a plan for your project, we
recommend reviewing our template available here:
-[Project Plan Template](https://opensciencelabs.org/programs/internship/templates/projects-ideas/).
+[Project Plan Template](https://opensciencelabs.org/opportunities/internship/templates/projects-ideas/).
## Guidelines for Students/Collaborators
@@ -275,7 +275,7 @@ requirements.
- **Description**: ASTx is an agnostic expression structure for AST. It is
agnostic because it is not specific to any language, neither to the ArxLang
project, although its main focus is to provide all needed feature for ArxLang.
-- **Organization/Project Webpage URL**:
+- **Organization/Project Webpage URL**:
- **Contact**: Ivan Ogasawara (ivan.ogasawara@gmail.com)
- **Project Ideas URL**:
- **Application Record**:
diff --git a/pages/opportunities/internship/cycles/2024-02.md b/bkp/opportunities/internship/cycles/2024-02.md
similarity index 99%
rename from pages/opportunities/internship/cycles/2024-02.md
rename to bkp/opportunities/internship/cycles/2024-02.md
index 4c5cd3708..d491cb75a 100644
--- a/pages/opportunities/internship/cycles/2024-02.md
+++ b/bkp/opportunities/internship/cycles/2024-02.md
@@ -64,7 +64,7 @@ You may propose one or more projects, each with one or more plans.
To get a clearer understanding of structuring a plan for your project, we
recommend reviewing our template available here:
-[Project Plan Template](https://opensciencelabs.org/programs/internship/templates/projects-ideas/).
+[Project Plan Template](https://opensciencelabs.org/opportunities/internship/templates/projects-ideas/).
## Guidelines for Students/Collaborators
@@ -269,7 +269,7 @@ requirements.
- **Description**: ASTx is an agnostic expression structure for AST. It is
agnostic because it is not specific to any language, neither to the ArxLang
project, although its main focus is to provide all needed feature for ArxLang.
-- **Organization/Project Webpage URL**:
+- **Organization/Project Webpage URL**:
- **Contact**: Ivan Ogasawara (ivan.ogasawara@gmail.com)
- **Project Ideas URL**:
diff --git a/pages/about/archives/index.md b/bkp/pages/about/archives/index.md
similarity index 100%
rename from pages/about/archives/index.md
rename to bkp/pages/about/archives/index.md
diff --git a/pages/faq/index.md b/bkp/pages/faq/index.md
similarity index 61%
rename from pages/faq/index.md
rename to bkp/pages/faq/index.md
index af0a3a03e..020ca6f8b 100644
--- a/pages/faq/index.md
+++ b/bkp/pages/faq/index.md
@@ -8,9 +8,8 @@ authors: ["Ever Vino"]
## What is Open Science Labs (OSL)?
Open science labs is a community that aims to gather people from all parts of
-the world (specially from latin america countries) and create an open space for
-teaching, learning and sharing topics around open science and computational
-tools.
+the world and creates an open space for teaching, learning and sharing topics
+around open science and computational tools.
## What activities do you perform?
@@ -26,29 +25,9 @@ In the community there are several curious people with different professions and
who perform various activities and collaborate on a voluntary basis. Some of the
professions of those who are part of Open Science Labs are: technical skills in
electricity, environmental engineering, fullStack developers, political science
-and computer engineering, all located in different parts of Latin America.
+and computer engineering.
-## How can I contribute to the community?
-
-- You can fill out the form below so that we can contact you and coordinate a
- video call to set up activities,
- [click here](https://github.com/OpenScienceLabs/request-forms/issues/new/choose?fbclid=IwAR3pDhR5soLQJrgKTUzmT9I1ty8rEyMTtn8LarkDzdDqkUadQc_ugwX5IsE)
-
-- Or you can also request that your contribution as an article or source code be
- shared on the community's social media or repository, through Discord. Once
- your contribution is incorporated, it will be Open Source with a license type
- [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) and your name
- will be added to the list of contributors to Open Science Labs.
-
-## Do you offer mentoring?
-
-Yes, to become an OSL mentee just fill out this
-[form]https://github.com/OpenScienceLabs/request-forms/issues/new/choose?fbclid=IwAR3pDhR5soLQJrgKTUzmT9I1ty8rEyMTtn8LarkDzdDqkUadQc_ugwX5IsE)
-and we will notify you as soon as possible if we have a mentor available. You
-can also be a tutor or mentor by filling out this other form
-[here](https://github.com/OpenScienceLabs/request-forms/issues/new/choose?fbclid=IwAR3pDhR5soLQJrgKTUzmT9I1ty8rEyMTtn8LarkDzdDqkUadQc_ugwX5IsE).
-
-## What specific activities are you currently doing?
+## What specific activities are we currently doing?
At Open Science Labs we are working on:
diff --git a/pages/guidelines/devops/discord.md b/bkp/pages/guidelines/devops/discord.md
similarity index 100%
rename from pages/guidelines/devops/discord.md
rename to bkp/pages/guidelines/devops/discord.md
diff --git a/pages/guidelines/fund-raiser/index.md b/bkp/pages/guidelines/fund-raiser/index.md
similarity index 100%
rename from pages/guidelines/fund-raiser/index.md
rename to bkp/pages/guidelines/fund-raiser/index.md
diff --git a/pages/programs/mentoring/gabriela_salas.JPG b/bkp/programs/mentoring/gabriela_salas.JPG
similarity index 100%
rename from pages/programs/mentoring/gabriela_salas.JPG
rename to bkp/programs/mentoring/gabriela_salas.JPG
diff --git a/pages/programs/mentoring/index.md b/bkp/programs/mentoring/index.md
similarity index 100%
rename from pages/programs/mentoring/index.md
rename to bkp/programs/mentoring/index.md
diff --git a/pages/programs/mentoring/mentors.md b/bkp/programs/mentoring/mentors.md
similarity index 100%
rename from pages/programs/mentoring/mentors.md
rename to bkp/programs/mentoring/mentors.md
diff --git a/pages/programs/packaging-support/index.md b/bkp/programs/packaging-support/index.md
similarity index 100%
rename from pages/programs/packaging-support/index.md
rename to bkp/programs/packaging-support/index.md
diff --git a/pages/programs/virtual-labs/index.md b/bkp/programs/virtual-labs/index.md
similarity index 100%
rename from pages/programs/virtual-labs/index.md
rename to bkp/programs/virtual-labs/index.md
diff --git a/mkdocs.yml b/mkdocs.yml
index caa2d1091..1218544bf 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -4,6 +4,9 @@ site_url: https://opensciencelabs.org
docs_dir: pages
site_dir: build
+extra:
+ enumerate: !!python/name:builtins.enumerate
+
theme:
name: null
custom_dir: "theme/"
@@ -23,8 +26,6 @@ extra_javascript:
nav:
- Blog: "blog/index.md"
- # - Affiliations:
- # - index: affiliations/index.md
- Projects:
- index: "projects/index.md"
- Incubation: "projects/incubation/index.md"
@@ -56,11 +57,12 @@ nav:
- About:
- index: "about/index.md"
- About OSL: "about/index.md"
- - Our Formula: "about/formula/index.md"
+ - Contact: about/contact/index.md
- Team: about/team/index.md
+ - Our Formula: "about/formula/index.md"
+ - CoC: about/coc/index.md
- Roadmap: about/roadmap/index.md
- Governance: about/governance/index.md
- - CoC: about/coc/index.md
- Donate: "donate/index.md"
markdown_extensions:
diff --git a/pages/about/coc/index.md b/pages/about/coc/index.md
index 20c142543..4a464df5f 100644
--- a/pages/about/coc/index.md
+++ b/pages/about/coc/index.md
@@ -3,7 +3,7 @@ title: "Contributor Covenant Code of Conduct"
date: 2022-09-14
authors: ["Mariangela Petrizzo"]
tags: [coc]
-template: single.html
+template: main.html
---
# Code of Conduct
diff --git a/pages/about/contact/index.md b/pages/about/contact/index.md
new file mode 100644
index 000000000..652ac1122
--- /dev/null
+++ b/pages/about/contact/index.md
@@ -0,0 +1,41 @@
+---
+title: Contact Us
+date: 2025-01-07
+authors:
+ - Ivan Ogasawara
+---
+
+# Contact Us
+
+Open Science Labs welcomes your inquiries and feedback. Connect with us through
+the following channels to learn more about our projects, collaborations, or any
+other questions you might have.
+
+## Official Email
+
+For general inquiries, suggestions, or official communications, please email us
+at: [team@opensciencelabs.org](mailto:team@opensciencelabs.org)
+
+## Social Media
+
+Stay updated with our latest news, events, and community highlights by following
+us on social media:
+
+- [GitHub](https://github.com/OpenScienceLabs){:target="\_blank"} – Follow our
+ projects and contributions.
+- [LinkedIn](/linkedin){:target="\_blank"} – Connect with us professionally.
+- [Twitter](https://twitter.com/opensciencelabs){:target="\_blank"} – Follow us
+ for quick updates and engagements.
+- [Facebook](/facebook){:target="\_blank"} – Join our community discussions.
+- [Discord](/discord){:target="\_blank"} – Engage in live discussions and
+ community support.
+- [YouTube](/youtube){:target="\_blank"} – Watch our tutorials, webinars, and
+ community highlights.
+
+## RSS Feed
+
+Subscribe to our [RSS feed](/feed_rss_created.xml){:target="\_blank"} to receive
+automatic updates on new content and announcements.
+
+We look forward to hearing from you and exploring potential collaborations to
+further open science and technology.
diff --git a/pages/about/fiscal-sponsor/index.md b/pages/about/fiscal-sponsor/index.md
index 3cef9a483..b9553b1d5 100644
--- a/pages/about/fiscal-sponsor/index.md
+++ b/pages/about/fiscal-sponsor/index.md
@@ -3,7 +3,7 @@ title: "Fiscal Sponsor: The GRAPH Network"
description: "Fiscal Sponsor: The GRAPH Network"
date: "2024-02-24"
authors: ["OSL Team"]
-template: single.html
+template: main.html
---
# Our Fiscal Sponsor: The GRAPH Network
diff --git a/pages/about/formula/index.md b/pages/about/formula/index.md
index 021a1b55c..bdcc173c5 100644
--- a/pages/about/formula/index.md
+++ b/pages/about/formula/index.md
@@ -3,7 +3,7 @@ title: "Open Science Labs Formula"
description: "Open Science Labs Formula"
date: "2024-02-14"
authors: ["OSL Team"]
-template: single.html
+template: main.html
---
# Open Science Labs Formula
diff --git a/pages/about/governance/index.md b/pages/about/governance/index.md
index 0bf9468d6..fbb1e0956 100644
--- a/pages/about/governance/index.md
+++ b/pages/about/governance/index.md
@@ -3,7 +3,7 @@ title: "Open Science Labs Project Governance"
date: 2019-09-14
authors: ["Ivan Ogasawara"]
tags: ["governance"]
-template: single.html
+template: main.html
---
# Open Science Labs Project Governance
diff --git a/pages/about/index.md b/pages/about/index.md
index 17efe3411..a9fe5ce7d 100644
--- a/pages/about/index.md
+++ b/pages/about/index.md
@@ -3,16 +3,14 @@ title: "About"
description: "Open Science Labs, sharing knowledge"
date: "2019-02-28"
authors: ["OSL Team"]
-template: single.html
+template: main.html
---
# About
Open science labs is a community that aims to gather people from all parts of
-the world, specially from latin america countries and create an open space for
-teaching, learning and sharing topics around open science and computational
-tools. An english group is very important in this context because it increases
-the possibilities of collaboration in open projects.
+the world and creates an open space for teaching, learning and sharing topics
+around open science and computational tools.
## Community
diff --git a/pages/about/roadmap/index.md b/pages/about/roadmap/index.md
index 759e30c27..11c7d78bd 100644
--- a/pages/about/roadmap/index.md
+++ b/pages/about/roadmap/index.md
@@ -3,7 +3,7 @@ title: "Open Science Labs Roadmap - 2025"
date: 2024-01-19
authors: ["Ivan Ogasawara"]
tags: ["roadmap"]
-template: single.html
+template: main.html
---
# Open Science Labs Roadmap - 2025
diff --git a/pages/blog/call-for-interns-2024-01/index.md b/pages/blog/call-for-interns-2024-01/index.md
deleted file mode 100644
index 8b84aba21..000000000
--- a/pages/blog/call-for-interns-2024-01/index.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-title: "Call for Interns 2024-01"
-slug: call-for-interns-2024-01
-date: 2024-01-09
-authors:
- - Daniela Iglesias Rocabado
-tags:
- - community
- - internship
- - OpenScienceLabs
- - Technology Stydents
-categories:
- - internship
- - community
- - Technological Collaboration
- - Open Source
- - Mentors
- - Technology Students
-description: >
- The Open Science Labs (OSL) has announced its Internship and
- Learning Program for the first cycle of 2024, in collaboration with The GRAPH
- Network.
-thumbnail: "/header.jpg"
-template: "blog-post.html"
----
-
-
-
-
-
-This program presents valuable opportunities for both mentors and student/collaborators to engage and grow, despite being an unpaid initiative.
-
-## Initial Guidelines for Internship Program Candidates:
----
-
-Candidates are encouraged to thoroughly explore project options aligning with their skills and interests. This involves a careful review of project ideas and documentation.
-
-Once a candidate identifies a preferred project, they should initiate contact with the mentor via email. The email should include:
-
-* Personal Introduction
-* Curriculum Vitae
-* The project name
-* Project idea name
-* Motivation for wanting to collaborate on that specific project.
-
-Additionally, candidates must confirm their availability for the entire 3-month duration of the project.
-
-Upon mentor acceptance, candidates will be assigned preliminary tasks, such as documentation updates and bug fixes. This step enables the mentor to assess the candidate's capability to handle the project tasks effectively.
-
-Successful completion of these initial assignments will prompt the mentor to guide the candidate in applying for the Open Science Labs Internship Program through .
-
-Candidates are reminded of the importance of having prior knowledge of Git. Additionally, candidates should join the [OSL Discord](https://opensciencelabs.org/discord) to stay updated on announcements related to the Internship Program.
-
-Recognizing the value of skill enhancement, Open Science Labs organizes study groups that candidates are encouraged to participate in, further refining their abilities.
-
-## Guidelines for Approved Interns:
----
-
-* **Communication:** Proactive communication is encouraged, with frequent updates through appropriate channels. Approved interns should use OSL Blog to document their experiences.
-* **Continuous Learning:** Interns are advised to study project technologies, participate in study groups, and regularly write about their experiences on the OSL Blog.
-* **Evaluations:** The internship includes midterm and final evaluations, allowing mentors to assess progress and students/collaborators to evaluate their contributions.
->**Information:**
-For more details about internships, you can [click here](https://opensciencelabs.org/programs/internship/cycles/2024-01/#osl-web-page)
-
-
-## Timeline
----
-
-| Date| Activity |
-| ------------------------ | --------------------------------------------------------------------------------------------|
-| **January 9, 2024** | Call for Interns/Apprentices opens. |
-| **February 2, 2024** | Deadline for Interns/Apprentices applications. |
-| **February 14, 2024** | Announcement of approved Interns/Apprentices. |
-| **February 24-25, 2024** | Integration Phase – interns engage with mentors and familiarize themselves with the project. |
-| **February 26, 2024** | Official Start Date. |
-| **April 8, 2024** | Mid-term Evaluation. |
-| **May 20, 2024** | Final Evaluation. |
-| **May 27-31, 2024** | Interns present their work. |
-| **June 3, 2024** | Official End Date; Certification process begins. |
-
-## List of Participating Projects
----
-
-Below is the list of projects participating in the current internship cycle. Each project includes key details to help candidates understand the scope and requirements.
-
-### ArtBox
-
-- **Description:** ArtBox is a tool set for handling multimedia files with a bunch of useful functions.
-- **Category:** Multimedia Processing.
-- **Organization/Project Webpage URL:** [https://osl-incubator.github.io/artbox/](https://osl-incubator.github.io/artbox/)
-- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-incubator/artbox/issues/10](https://github.com/osl-incubator/artbox/issues/10)
-
-
-### ArxLang/ASTx
-
-- **Description:** ASTx is an agnostic expression structure for AST. It is agnostic because it is not specific to any language, neither to the ArxLang project, although its main focus is to provide all needed feature for ArxLang.
-- **Categories:** AST, Compiler
-- **Organization/Project Webpage URL:** [https://arxlang.github.io/astx/](https://arxlang.github.io/astx/)
-- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
-- **Project Ideas URL:** [https://github.com/arxlang/astx/issues/21](https://github.com/arxlang/astx/issues/21)
-
-### Envers
-
-- **Description:** Envers is a command-line tool (CLI) designed to manage and version environment variables for different deployment stages such as staging, development, and production. It provides a secure and organized way to handle environment-specific configurations.
-- **Categories:** DevOps, Environment Management
-- **Organization/Project Webpage URL:** [https://osl-incubator.github.io/envers/](https://osl-incubator.github.io/envers/)
-- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-incubator/envers/issues/18](https://github.com/osl-incubator/envers/issues/18)
-
-### fqlearn
-
-- **Description:** This Project aims to facilitate the teaching of unit operations and thermodynamics.
-- **Categories:** Mathematical Modeling, Educational
-- **Organization/Project Webpage URL:** [https://osl-pocs.github.io/fqlearn/](https://osl-pocs.github.io/fqlearn/)
-- **Contact:** John Ever Vino Duran [evervino00@gmail.com](mailto:evervino00@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-pocs/fqlearn/issues/30](https://github.com/osl-pocs/fqlearn/issues/30)
-
-
-### Makim
-
-- **Description:** Makim (or makim) is based on make and focus on improve the way to define targets and dependencies. Instead of using the Makefile format, it uses yaml format.
-- **Categories:** DevOps, Automation
-- **Organization/Project Webpage URL:** [https://osl-incubator.github.io/makim/](https://osl-incubator.github.io/makim/)
-- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-incubator/makim/issues/74](https://github.com/osl-incubator/makim/issues/74)
-
-
-### noWorkflow
-
-- **Description:** The noWorkflow project aims at allowing scientists to benefit from provenance data analysis even when they don't use a workflow system. It transparently collects provenance from Python scripts and notebooks and provide tools to support the analysis and management of the provenance.
-- **Categories:** Provenance, Software Engineering
-- **Organization/Project Webpage URL:** [https://gems-uff.github.io/noworkflow/](https://gems-uff.github.io/noworkflow/)
-- **Contact:** João Felipe Nicolaci Pimentel [joaofelipenp@gmail.com](mailto:joaofelipenp@gmail.com)
-- **Project Ideas URL:** [https://gist.github.com/JoaoFelipe/ce4cb232deb2c71d4f39afc5cbeefe2b](https://gist.github.com/JoaoFelipe/ce4cb232deb2c71d4f39afc5cbeefe2b)
-
-### OSL Web Page
-
-- **Description:** OpenScienceLabs web page, is a project that serves as a way to present OSL to the world through a web page.
-- **Category:** Web Development
-- **Organization/Project Webpage URL:** [https://opensciencelabs.org//](https://opensciencelabs.org/)
-- **Contact:** John Ever Vino Duran [evervino00@gmail.com](mailto:evervino00@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-pocs/fqlearn/issues/84](https://github.com/osl-pocs/fqlearn/issues/84)
-
-### PyDataStructs
-
-- **Description:** PyDataStructs project aims to be a Python package for various data structures and algorithms (including their parallel implementations).
-- **Categories:** Data Structures, Algorithms
-- **Organization/Project Webpage URL:** [https://pydatastructs.readthedocs.io/en/latest/](https://pydatastructs.readthedocs.io/en/latest/)
-- **Contact:** Gagandeep Singh [gdp.1807@gmail.com](mailto:gdp.1807@gmail.com)
-- **Project Ideas URL:** [https://github.com/codezonediitj/pydatastructs/wiki/Planned-Features-for-v1.0.1](https://github.com/codezonediitj/pydatastructs/wiki/Planned-Features-for-v1.0.1)
-
-### SciCookie
-
-- **Description:** SciCookie is a template developed by [OpenScienceLabs](https://opensciencelabs.org/) that creates projects from project templates.
-- **Category:** Project Templates, Scientific Software
-- **Organization/Project Webpage URL:** [https://osl-incubator.github.io/scicookie](https://osl-incubator.github.io/scicookie)
-- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-incubator/scicookie/issues/192](https://github.com/osl-incubator/scicookie/issues/192)
-
-### Sugar
-
-- **Description:** Sugar aims to organize your stack of containers, gathering some useful scripts and keeping this information centralized in a configuration file. So the command line would be very simple.
-- **Categories:** DevOps, Container Management
-- **Organization/Project Webpage URL:** [https://osl-incubator.github.io/sugar/e](https://osl-incubator.github.io/sugar/)
-- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
-- **Project Ideas URL:** [https://github.com/osl-incubator/sugar/issues/105](https://github.com/osl-incubator/sugar/issues/105)
-
-### Useful Materials and Courses
----
-
-- **Software Carpentry Lessons:** Offering tutorials on Git, Bash, Python, R, and more, these lessons are invaluable for building a strong foundation in software development. Access the lessons at Software Carpentry.
-- **Udacity CS212 - Design of Computer Programs:** This course, taught by Peter Norvig, delves into advanced programming topics and is an excellent way to deepen your understanding of computer programs. Enroll in the course at Udacity CS212.
-- **The GRAPH Network Courses:** Explore a range of courses offered by The GRAPH Network, tailored to various aspects of data analysis. Find the courses at The GRAPH Network Courses.
-These resources provide a great opportunity to prepare effectively for the Internship Program and to develop a broad skill set in software development and data analysis.
diff --git a/pages/blog/fqlearn-ternary-plot/index.md b/pages/blog/fqlearn-ternary-plot/index.md
index c375f67ff..6e602da16 100644
--- a/pages/blog/fqlearn-ternary-plot/index.md
+++ b/pages/blog/fqlearn-ternary-plot/index.md
@@ -1,12 +1,14 @@
---
-title: "Plotting ternary phase diagrams for solving thermodynamics problems using fqlearn"
+title:
+ "Plotting ternary phase diagrams for solving thermodynamics problems using
+ fqlearn"
slug: fqlearn-ternary-plot
date: 2024-05-29
authors: ["Faith Njamiu Hunja"]
tags: [open science, thermodynamics, visualization, ternary phase diagram]
categories: [science, python, visualization]
description: |
- An article on how to use the open source fqlearn library to plot three
+ An article on how to use the open source fqlearn library to plot three
phase diagrams used in thermodynamics, also known as ternary plots.
thumbnail: "/header.png"
@@ -15,29 +17,60 @@ template: "blog-post.html"
- An article on how to use the open source Fqlearn library to plot three phase diagrams used in thermodynamics, also known as ternary plots.
+An article on how to use the open source Fqlearn library to plot three phase
+diagrams used in thermodynamics, also known as ternary plots.
## Introduction
-During the Open Science Labs Q1 2024 internship, I worked on the Fqlearn project. [Fqlearn](https://github.com/osl-pocs/fqlearn) is an open source python library, currently in development, which aims to facilitate the teaching of mass transfer and thermodynamics.
+During the Open Science Labs Q1 2024 internship, I worked on the Fqlearn
+project. [Fqlearn](https://github.com/osl-pocs/fqlearn) is an open source python
+library, currently in development, which aims to facilitate the teaching of mass
+transfer and thermodynamics.
-My main task involved developing methods to use a three phase diagram to solve thermodynamics problems graphically. For this purpose, I wrote code for the [`ThreeComponent.py`](https://github.com/osl-pocs/fqlearn/blob/main/src/fqlearn/ThreeComponent.py) class, as well as corresponding [tests](https://github.com/osl-pocs/fqlearn/blob/main/tests/test_three_component.py) for the class.
+My main task involved developing methods to use a three phase diagram to solve
+thermodynamics problems graphically. For this purpose, I wrote code for the
+[`ThreeComponent.py`](https://github.com/osl-pocs/fqlearn/blob/main/src/fqlearn/ThreeComponent.py)
+class, as well as corresponding
+[tests](https://github.com/osl-pocs/fqlearn/blob/main/tests/test_three_component.py)
+for the class.
### Ternary phase diagram
-A ternary plot, ternary graph, triangle plot, simplex plot, or Gibbs triangle is a barycentric plot on three variables which sum to a constant. It graphically depicts the ratios of the three variables as positions in an equilateral triangle. It is used in physical chemistry, petrology, mineralogy, metallurgy, and other physical sciences to show the compositions of systems composed of three species. Ternary plots are tools for analyzing compositional data in the three-dimensional case [[1](https://en.wikipedia.org/wiki/Ternary_plot)].
+A ternary plot, ternary graph, triangle plot, simplex plot, or Gibbs triangle is
+a barycentric plot on three variables which sum to a constant. It graphically
+depicts the ratios of the three variables as positions in an equilateral
+triangle. It is used in physical chemistry, petrology, mineralogy, metallurgy,
+and other physical sciences to show the compositions of systems composed of
+three species. Ternary plots are tools for analyzing compositional data in the
+three-dimensional case [[1](https://en.wikipedia.org/wiki/Ternary_plot)].

-In a ternary plot, the values of the three variables a, b, and c must sum to some constant, K. Usually, this constant is represented as 1.0 or 100%. Because a + b + c = K for all substances being graphed, any one variable is not independent of the others, so only two variables must be known to find a sample's point on the graph: for instance, c must be equal to K − a − b. Because the three numerical values cannot vary independently—there are only two degrees of freedom—it is possible to graph the combinations of all three variables in only two dimensions.
-
-The advantage of using a ternary plot for depicting chemical compositions is that three variables can be conveniently plotted in a two-dimensional graph. Ternary plots can also be used to create phase diagrams by outlining the composition regions on the plot where different phases exist [[1](https://en.wikipedia.org/wiki/Ternary_plot)].
+In a ternary plot, the values of the three variables a, b, and c must sum to
+some constant, K. Usually, this constant is represented as 1.0 or 100%. Because
+a + b + c = K for all substances being graphed, any one variable is not
+independent of the others, so only two variables must be known to find a
+sample's point on the graph: for instance, c must be equal to K − a − b. Because
+the three numerical values cannot vary independently—there are only two degrees
+of freedom—it is possible to graph the combinations of all three variables in
+only two dimensions.
+
+The advantage of using a ternary plot for depicting chemical compositions is
+that three variables can be conveniently plotted in a two-dimensional graph.
+Ternary plots can also be used to create phase diagrams by outlining the
+composition regions on the plot where different phases exist
+[[1](https://en.wikipedia.org/wiki/Ternary_plot)].
## Methods
-To begin with, we import the libraries required for plotting ternary phase diagrams. We used [`python-ternary`](https://github.com/marcharper/python-ternary), a plotting library that uses matplotlib to make ternary plots. Using this library, many features could be added to the fqlearn library for various purposes, as described in this article.
+To begin with, we import the libraries required for plotting ternary phase
+diagrams. We used
+[`python-ternary`](https://github.com/marcharper/python-ternary), a plotting
+library that uses matplotlib to make ternary plots. Using this library, many
+features could be added to the fqlearn library for various purposes, as
+described in this article.
```python
import matplotlib as plt
@@ -46,22 +79,27 @@ import ternary
from scipy.interpolate import CubicSpline
```
-Then we define our class, `ThreeComponent`, in which we create some functions, a few of which will be explained in this article. To see how these functions work, we create some variables, which are lists containing an unordered list of tuples, each containing 3 values, representing the x, y and z values in the form `[(x,y,z)]`.
+Then we define our class, `ThreeComponent`, in which we create some functions, a
+few of which will be explained in this article. To see how these functions work,
+we create some variables, which are lists containing an unordered list of
+tuples, each containing 3 values, representing the x, y and z values in the form
+`[(x,y,z)]`.
```python
-right_eq_line = [(0.02, 0.02, 0.96), (0.025, 0.06, 0.915), (0.03, 0.1, 0.87),
- (0.035, 0.16, 0.805), (0.04, 0.2, 0.76), (0.045, 0.25, 0.705),
- (0.05, 0.3, 0.65), (0.07, 0.36, 0.57), (0.09, 0.4, 0.51),
+right_eq_line = [(0.02, 0.02, 0.96), (0.025, 0.06, 0.915), (0.03, 0.1, 0.87),
+ (0.035, 0.16, 0.805), (0.04, 0.2, 0.76), (0.045, 0.25, 0.705),
+ (0.05, 0.3, 0.65), (0.07, 0.36, 0.57), (0.09, 0.4, 0.51),
(0.14, 0.48, 0.38), (0.33, 0.49, 0.18)]
-left_eq_line = [(0.97, 0.01, 0.02), (0.95, 0.03, 0.02), (0.91, 0.06, 0.03),
- (0.88, 0.09, 0.03), (0.83, 0.13, 0.04), (0.79, 0.17, 0.04),
- (0.745, 0.2, 0.055), (0.68, 0.26, 0.06), (0.62, 0.3, 0.08),
+left_eq_line = [(0.97, 0.01, 0.02), (0.95, 0.03, 0.02), (0.91, 0.06, 0.03),
+ (0.88, 0.09, 0.03), (0.83, 0.13, 0.04), (0.79, 0.17, 0.04),
+ (0.745, 0.2, 0.055), (0.68, 0.26, 0.06), (0.62, 0.3, 0.08),
(0.49, 0.4, 0.11), (0.33, 0.49, 0.18)]
points = left_eq_line + right_eq_line
```
-We also set the scale of our plot to 100 in the `__init__ function`. This is the value that each tuple must sum up to.
+We also set the scale of our plot to 100 in the `__init__ function`. This is the
+value that each tuple must sum up to.
```python
self.scale = 100
@@ -74,7 +112,10 @@ from fqlearn import ThreeComponent
model = ThreeComponent()
```
-We can then call the functions as needed. We define a function `sort_points` that sorts the values it receives as an argument. The points are added using the `add_point` function, which ensures that the argument is not an empty list, removes duplicate tuples, and multiplies each point in the tuple by the scale.
+We can then call the functions as needed. We define a function `sort_points`
+that sorts the values it receives as an argument. The points are added using the
+`add_point` function, which ensures that the argument is not an empty list,
+removes duplicate tuples, and multiplies each point in the tuple by the scale.
```python
def add_point(self, points):
@@ -98,7 +139,10 @@ def add_point(self, points):
return points_to_plot
```
-The `sort_points` function sorts the tuples using the x value in each tuple, then adds them to a new list. This allows us to have the tuples sorted in ascending order along the x-axis. The function also ensures that all points in the tuple(s) in the sorted list add up to the scale.
+The `sort_points` function sorts the tuples using the x value in each tuple,
+then adds them to a new list. This allows us to have the tuples sorted in
+ascending order along the x-axis. The function also ensures that all points in
+the tuple(s) in the sorted list add up to the scale.
```python
def sort_points(self, points):
@@ -127,12 +171,15 @@ def sort_points(self, points):
return new_sorted_points
```
-If we print the returned values, we get the following output, where each tuple is arranged in ascending order according to the x values:
+If we print the returned values, we get the following output, where each tuple
+is arranged in ascending order according to the x values:
+
```console
[(2.0, 2.0, 96.0), (2.5, 6.0, 91.5), (3.0, 10.0, 87.0), (3.5000000000000004, 16.0, 80.5), (4.0, 20.0, 76.0), (4.5, 25.0, 70.5), (5.0, 30.0, 65.0), (7.000000000000001, 36.0, 56.99999999999999), (9.0, 40.0, 51.0), (14.000000000000002, 48.0, 38.0), (33.0, 49.0, 18.0), (49.0, 40.0, 11.0), (62.0, 30.0, 8.0), (68.0, 26.0, 6.0), (74.5, 20.0, 5.5), (79.0, 17.0, 4.0), (83.0, 13.0, 4.0), (88.0, 9.0, 3.0), (91.0, 6.0, 3.0), (95.0, 3.0, 2.0), (97.0, 1.0, 2.0)]
```
-We can then call the `plot` function, to plot the ternary phase diagram in order to visualize the plotted points.
+We can then call the `plot` function, to plot the ternary phase diagram in order
+to visualize the plotted points.
```python
def plot(self):
@@ -146,7 +193,12 @@ We obtain the ternary plot shown below:

-We define the `composition_line` function which plots equilibrium lines joining the tuples corresponding to the two compositions in each index in the list of tuples. This function first multiplies each point in each tuple by the scale, then sorts the list of the left composition in ascending order, and the list of the right composition in descending order. For each tuple, the x, y and z values are extracted, then joined using equilibrium lines.
+We define the `composition_line` function which plots equilibrium lines joining
+the tuples corresponding to the two compositions in each index in the list of
+tuples. This function first multiplies each point in each tuple by the scale,
+then sorts the list of the left composition in ascending order, and the list of
+the right composition in descending order. For each tuple, the x, y and z values
+are extracted, then joined using equilibrium lines.
```python
def composition_line(self, left_eq_line, right_eq_line):
@@ -191,7 +243,10 @@ We obtain the following ternary plot:

-We can calculate the slope of the equilibrium lines plotted above using the function `eq_slope`. We loop through each tuple of each composition in each index, extract the x and y values, and find the slope, by dividing the change in y by the change in x for each index. The function returns the average slope.
+We can calculate the slope of the equilibrium lines plotted above using the
+function `eq_slope`. We loop through each tuple of each composition in each
+index, extract the x and y values, and find the slope, by dividing the change in
+y by the change in x for each index. The function returns the average slope.
```python
def eq_slope(self, right_eq_line, left_eq_line):
@@ -239,12 +294,14 @@ def eq_slope(self, right_eq_line, left_eq_line):
```
We obtain the following output:
+
```console
Slope = [-0.010526315789473684, -0.032432432432432434, -0.045454545454545456, -0.08284023668639054, -0.08860759493670886, -0.10738255033557047, -0.14388489208633093, -0.16393442622950818, -0.18867924528301888, -0.22857142857142856, 0]
Average slope = -0.09930124252776436
```
-We can also plot a ternary phase diagram with an equilibrium line joining all the plotted points, like in a graph, by calling the `add_eq_line` function.
+We can also plot a ternary phase diagram with an equilibrium line joining all
+the plotted points, like in a graph, by calling the `add_eq_line` function.
```python
def add_eq_line(self, right_eq_line, left_eq_line):
@@ -267,9 +324,25 @@ We get the ternary plot below:

-However, the equilibrium line plotted above is not smooth. To generate a smooth line, we use the `interpolate_points` function.
-
-We first sort the points using the `sort_points` function. Then we extract the x and y values from the sorted points, ignoring the z values which will not be used. Variable `x` becomes a list of all x values and variable `y` becomes a list of all y values. After that, we perform cubic spline interpolation on the x and y values using the CubicSpline function, imported from the scipy.interpolate module of SciPy's library [[2](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.CubicSpline.html)]. `bc_type="natural"` specifies the natural boundary conditions, meaning the second derivative of the spline at the boundaries will be set to zero. `x_cubic` is set to a linearly spaced array of values ranging from 0 to 100 with 100 number of points, which is the value of `self.scale`, and `y_cubic` contains the corresponding y values interpolated using the cubic spline function `f`. Then we filter out any points outside the specified range of 0 to 100 for both `x_cubic` and `y_cubic`, and use the `np.column_stack` function to combine `x_cubic` and `y_cubic` into a single 2D array, which is returned by the function as `interpolated_points`.
+However, the equilibrium line plotted above is not smooth. To generate a smooth
+line, we use the `interpolate_points` function.
+
+We first sort the points using the `sort_points` function. Then we extract the x
+and y values from the sorted points, ignoring the z values which will not be
+used. Variable `x` becomes a list of all x values and variable `y` becomes a
+list of all y values. After that, we perform cubic spline interpolation on the x
+and y values using the CubicSpline function, imported from the scipy.interpolate
+module of SciPy's library
+[[2](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.CubicSpline.html)].
+`bc_type="natural"` specifies the natural boundary conditions, meaning the
+second derivative of the spline at the boundaries will be set to zero. `x_cubic`
+is set to a linearly spaced array of values ranging from 0 to 100 with 100
+number of points, which is the value of `self.scale`, and `y_cubic` contains the
+corresponding y values interpolated using the cubic spline function `f`. Then we
+filter out any points outside the specified range of 0 to 100 for both `x_cubic`
+and `y_cubic`, and use the `np.column_stack` function to combine `x_cubic` and
+`y_cubic` into a single 2D array, which is returned by the function as
+`interpolated_points`.
```python
def interpolate_points(self, points):
@@ -291,16 +364,26 @@ def interpolate_points(self, points):
]
return interpolated_points
-```
+```
+
+Printing the output of the function, we obtain the output below, showing the
+interpolated points:
-Printing the output of the function, we obtain the output below, showing the interpolated points:
```console
[[2.0202020202020203, 2.1691472640742586], [3.0303030303030303, 10.329514857514697], [4.040404040404041, 20.340775738329878], [5.050505050505051, 30.41604117022922], [6.0606060606060606, 34.9725244736696], [7.070707070707071, 36.0788150823154], [8.080808080808081, 37.866519430111914], [9.090909090909092, 40.207639450509895], [10.101010101010102, 42.33305618527275], [11.111111111111112, 44.15164951408806], [12.121212121212121, 45.70152886497335], [13.131313131313131, 47.02080366594621], [14.141414141414142, 48.147569717383064], [15.151515151515152, 49.11261947676193], [16.161616161616163, 49.927423194367556], [17.171717171717173, 50.600292249170636], [18.181818181818183, 51.13953802014185], [19.191919191919194, 51.55347188625187], [20.202020202020204, 51.850405226471395], [21.212121212121215, 52.038649419771076], [22.222222222222225, 52.12651584512162], [23.232323232323235, 52.122315881493684], [24.242424242424242, 52.03436090785797], [25.252525252525253, 51.87096230318516], [26.262626262626263, 51.640431446445916], [27.272727272727273, 51.35107971661092], [28.282828282828284, 51.011218492650855], [29.292929292929294, 50.62915915353641], [30.303030303030305, 50.213213078238255], [31.313131313131315, 49.771691645727074], [32.323232323232325, 49.31290623497355], [33.333333333333336, 48.84510804535748], [34.343434343434346, 48.37284930204433], [35.35353535353536, 47.89489752249601], [36.36363636363637, 47.409516570717145], [37.37373737373738, 46.91497031071236], [38.38383838383839, 46.40952260648627], [39.3939393939394, 45.891437322043494], [40.40404040404041, 45.358978321388655], [41.41414141414142, 44.81040946852637], [42.42424242424243, 44.24399462746127], [43.43434343434344, 43.65799766219796], [44.44444444444445, 43.050682436741056], [45.45454545454546, 42.4203128150952], [46.46464646464647, 41.765152661265006], [47.47474747474748, 41.083465839255076], [48.484848484848484, 40.373516213070054], [49.494949494949495, 39.63371670174959], [50.505050505050505, 38.86607499990182], [51.515151515151516, 38.076288591118626], [52.525252525252526, 37.270223020764256], [53.535353535353536, 36.45374383420295], [54.54545454545455, 35.63271657679892], [55.55555555555556, 34.81300679391643], [56.56565656565657, 34.000480030919704], [57.57575757575758, 33.201001833172974], [58.58585858585859, 32.42043774604049], [59.5959595959596, 31.664653314886465], [60.60606060606061, 30.93951408507516], [61.61616161616162, 30.250885601970786], [62.62626262626263, 29.60336029919871], [63.63636363636364, 28.983912044764498], [64.64646464646465, 28.366648419185424], [65.65656565656566, 27.72538388514391], [66.66666666666667, 27.0339329053224], [67.67676767676768, 26.26610994240331], [68.68686868686869, 25.39917799115036], [69.6969696969697, 24.44860975371087], [70.70707070707071, 23.453665293050822], [71.71717171717172, 22.45396405508463], [72.72727272727273, 21.489125485726685], [73.73737373737374, 20.59876903089141], [74.74747474747475, 19.822230508859366], [75.75757575757576, 19.162761793258028], [76.76767676767678, 18.552564414178864], [77.77777777777779, 17.915539652280298], [78.7878787878788, 17.175588788220747], [79.7979797979798, 16.27016258697005], [80.80808080808082, 15.240129979240486], [81.81818181818183, 14.174027140890017], [82.82828282828284, 13.160644754568583], [83.83838383838385, 12.27416074496895], [84.84848484848486, 11.4905826393484], [85.85858585858587, 10.745488901010873], [86.86868686868688, 9.974332435176901], [87.87878787878789, 9.112566147067007], [88.8888888888889, 8.11684009659671], [89.89898989898991, 7.065697936762742], [90.90909090909092, 6.081168542871885], [91.91919191919193, 5.257512388433542], [92.92929292929294, 4.543021889369125], [93.93939393939395, 3.8382841183777483], [94.94949494949496, 3.043859233178794], [95.95959595959597, 2.0885249765853326], [96.96969696969697, 1.0322241687602192]]
```
-Next, we define a function, `div_half`, to divide an equilibrium line in half, and thus dividing the interpolated points in the left side from those in the right side. Before that, we define some helper functions, `derivative` and `min_diff`.
+Next, we define a function, `div_half`, to divide an equilibrium line in half,
+and thus dividing the interpolated points in the left side from those in the
+right side. Before that, we define some helper functions, `derivative` and
+`min_diff`.
-The `derivative` function extracts the x and y values, then calculates the n-th discrete difference between these values using NumPy's np.diff [[3](https://numpy.org/doc/stable/reference/generated/numpy.diff.html)]. The first value of dydx is given by dydx[i] = (y[i+1] - y[i])/(x[i+1] - x[i]) along the given axis and higher differences are calculated by using np.diff recursively.
+The `derivative` function extracts the x and y values, then calculates the n-th
+discrete difference between these values using NumPy's np.diff
+[[3](https://numpy.org/doc/stable/reference/generated/numpy.diff.html)]. The
+first value of dydx is given by dydx[i] = (y[i+1] - y[i])/(x[i+1] - x[i]) along
+the given axis and higher differences are calculated by using np.diff
+recursively.
```python
def derivative(self, points):
@@ -317,6 +400,7 @@ def derivative(self, points):
```
We can print out dydx to see the output:
+
```console
[[ 8.07876392e+00 9.91114827e+00 9.97451278e+00 4.51091847e+00
1.09522770e+00 1.76982730e+00 2.31770882e+00 2.10416257e+00
@@ -344,7 +428,12 @@ We can print out dydx to see the output:
-9.45780914e-01 -1.04573780e+00]]
```
-Then we use the `min_diff` function to find the index of the point that is at the centre of the equilibrium line, which divides it into 2 halves. Starting with an index value of zero and a minimum difference given by the difference between the absolute of the first `dydx` value and the average slope, we iterate over the indices of `dydx` to find the index of the `dydx` value which is closest to the average slope `avg_slope`.
+Then we use the `min_diff` function to find the index of the point that is at
+the centre of the equilibrium line, which divides it into 2 halves. Starting
+with an index value of zero and a minimum difference given by the difference
+between the absolute of the first `dydx` value and the average slope, we iterate
+over the indices of `dydx` to find the index of the `dydx` value which is
+closest to the average slope `avg_slope`.
```python
def min_diff(self, right_eq_line, left_eq_line):
@@ -366,7 +455,13 @@ def min_diff(self, right_eq_line, left_eq_line):
return min_index
```
-We then define the `div_half` function that divides the equilibrium line precisely in half. We use the interpolated points from the `interpolate_points` function, which ensures that the point of division is very precise. Then we use the `min_diff` function to obtain the index of the point dividing the equilibrium line in half. Using this index, we can halve the interpolated points, and plot two equilibrium lines on the right and left side of the ternary plot using these points.
+We then define the `div_half` function that divides the equilibrium line
+precisely in half. We use the interpolated points from the `interpolate_points`
+function, which ensures that the point of division is very precise. Then we use
+the `min_diff` function to obtain the index of the point dividing the
+equilibrium line in half. Using this index, we can halve the interpolated
+points, and plot two equilibrium lines on the right and left side of the ternary
+plot using these points.
```python
def div_half(self, right_eq_line, left_eq_line):
@@ -399,12 +494,21 @@ We obtain the following ternary plot:

## Acknowledgements
-I would like to thank the [Open Science Labs](https://opensciencelabs.org/) and The Graph Network for giving me the opportunity to learn and gain experience in open source through this internship. I also thank [Ever Vino](https://github.com/EverVino) for his guidance and mentorship throughout this internship program. If you would like to connect with me, you can find me on [LinkedIn](https://www.linkedin.com/in/faithhunja), or check out my [personal website](https://faithhunja.github.io/).
+
+I would like to thank the [Open Science Labs](https://opensciencelabs.org/) and
+The Graph Network for giving me the opportunity to learn and gain experience in
+open source through this internship. I also thank
+[Ever Vino](https://github.com/EverVino) for his guidance and mentorship
+throughout this internship program. If you would like to connect with me, you
+can find me on [LinkedIn](https://www.linkedin.com/in/faithhunja), or check out
+my [personal website](https://faithhunja.github.io/).
## References
[1] Ternary plots - Wikipedia:
-[2] scipy.interpolate.CubicSpline - SciPy v1.13.1 Manual:
+[2] scipy.interpolate.CubicSpline - SciPy v1.13.1 Manual:
+
-[3] numpy.diff - NumPy v1.26 Manual:
\ No newline at end of file
+[3] numpy.diff - NumPy v1.26 Manual:
+
diff --git a/pages/blog/fqlearn-visualizacion-datos/index.md b/pages/blog/fqlearn-visualizacion-datos/index.md
index 4645cadfa..1ac96093d 100644
--- a/pages/blog/fqlearn-visualizacion-datos/index.md
+++ b/pages/blog/fqlearn-visualizacion-datos/index.md
@@ -1,5 +1,7 @@
---
-title: "Explorando fqlearn: Potenciando el Análisis y Diseño de Procesos Termodinámicos"
+title:
+ "Explorando fqlearn: Potenciando el Análisis y Diseño de Procesos
+ Termodinámicos"
slug: fqlearn-visualizacion-datos
date: 2023-12-14
authors: ["José María"]
@@ -16,22 +18,34 @@ template: "blog-post.html"
- En este artículo se describe la utilidad que ofrece una visualización sencilla
- de cálculos termodinámicos, útil para el manejo de docentes y el aprendizaje
- por parte de los alumnos interesados en el tema. Usando las funciones disponibles
- en las clases de McCabe-Thiele, y SteamTable.
+En este artículo se describe la utilidad que ofrece una visualización sencilla
+de cálculos termodinámicos, útil para el manejo de docentes y el aprendizaje por
+parte de los alumnos interesados en el tema. Usando las funciones disponibles en
+las clases de McCabe-Thiele, y SteamTable.
# Explorando fqlearn: Potenciando el Análisis y Diseño de Procesos Termodinámicos
-En el apasionante mundo de la ingeniería química, la biblioteca `fqlearn` emerge como una herramienta valiosa, ofreciendo capacidades significativas para el análisis y diseño de procesos. Diseñada para mejorar la visualización de datos y servir como una herramienta educativa, `fqlearn` se posiciona como un recurso versátil para ingenieros y científicos en la industria química.
+En el apasionante mundo de la ingeniería química, la biblioteca `fqlearn` emerge
+como una herramienta valiosa, ofreciendo capacidades significativas para el
+análisis y diseño de procesos. Diseñada para mejorar la visualización de datos y
+servir como una herramienta educativa, `fqlearn` se posiciona como un recurso
+versátil para ingenieros y científicos en la industria química.
## Implementación de la Clase McCabe-Thiele para Análisis Gráfico de Destilación Binaria en Python
-La clase `McCabeThiele` dentro de `fqlearn` brinda funcionalidades especializadas para llevar a cabo cálculos de equilibrio líquido-vapor utilizando el método de McCabe-Thiele. Este método es esencial en el diseño de columnas de destilación, permitiendo determinar el número óptimo de etapas necesarias para separar componentes en una mezcla.
+La clase `McCabeThiele` dentro de `fqlearn` brinda funcionalidades
+especializadas para llevar a cabo cálculos de equilibrio líquido-vapor
+utilizando el método de McCabe-Thiele. Este método es esencial en el diseño de
+columnas de destilación, permitiendo determinar el número óptimo de etapas
+necesarias para separar componentes en una mezcla.
-La clase McCabeThiele es una implementación en Python del método de McCabe-Thiele, una técnica gráfica fundamental en el diseño de columnas de destilación para procesos químicos. Este método proporciona una manera visual de analizar y dimensionar sistemas de destilación binaria. A continuación, se presenta una descripción detallada de la clase y sus principales componentes.
+La clase McCabeThiele es una implementación en Python del método de
+McCabe-Thiele, una técnica gráfica fundamental en el diseño de columnas de
+destilación para procesos químicos. Este método proporciona una manera visual de
+analizar y dimensionar sistemas de destilación binaria. A continuación, se
+presenta una descripción detallada de la clase y sus principales componentes.
# Ejemplo de uso de McCabeThiele en fqlearn
@@ -58,89 +72,134 @@ model.solve()
# Imprimir información relevante sobre el reflujo mínimo y la composición líquida de salida
model.describe()
```
+
## Función describe
-La función 'describe' imprime en pantalla información sobre cada etapa en el proceso de McCabe-Thiele.
+La función 'describe' imprime en pantalla información sobre cada etapa en el
+proceso de McCabe-Thiele.
- El reflujo mínimo es de: 0.7480780119884876
- La composición líquida de salida: 0.05
### Composición de entrada y salida en cada etapa:
- - Etapa 1: Entrada = 0.9400, Salida = 0.9400
- - Etapa 2: Entrada = 0.8783, Salida = 0.9400
- - Etapa 3: Entrada = 0.8783, Salida = 0.9074
- - Etapa 4: Entrada = 0.7933, Salida = 0.9074
- - Etapa 5: Entrada = 0.7933, Salida = 0.8624
- - Etapa 6: Entrada = 0.6840, Salida = 0.8624
- - Etapa 7: Entrada = 0.6840, Salida = 0.8046
- - Etapa 8: Entrada = 0.5611, Salida = 0.8046
- - Etapa 9: Entrada = 0.5611, Salida = 0.7396
- - Etapa 10: Entrada = 0.4316, Salida = 0.7396
-Número total de etapas: 9
+- Etapa 1: Entrada = 0.9400, Salida = 0.9400
+- Etapa 2: Entrada = 0.8783, Salida = 0.9400
+- Etapa 3: Entrada = 0.8783, Salida = 0.9074
+- Etapa 4: Entrada = 0.7933, Salida = 0.9074
+- Etapa 5: Entrada = 0.7933, Salida = 0.8624
+- Etapa 6: Entrada = 0.6840, Salida = 0.8624
+- Etapa 7: Entrada = 0.6840, Salida = 0.8046
+- Etapa 8: Entrada = 0.5611, Salida = 0.8046
+- Etapa 9: Entrada = 0.5611, Salida = 0.7396
+- Etapa 10: Entrada = 0.4316, Salida = 0.7396
+Número total de etapas: 9
```python
# Generar un gráfico que muestra las curvas de equilibrio, la línea de alimentación y las etapas del proceso
model.plot()
```
+
## Función plot
-La función plot de McCabe-Thiele le muestra al usuario la gráfica de destilación binaria, con todas las etapas y demás información que el usuario pueda solicitar
+
+La función plot de McCabe-Thiele le muestra al usuario la gráfica de destilación
+binaria, con todas las etapas y demás información que el usuario pueda solicitar

-**Ejes:**
-Los ejes X e Y representan la composición molar x y y respectivamente, variando de 0 a 1.
+**Ejes:** Los ejes X e Y representan la composición molar x y y respectivamente,
+variando de 0 a 1.
**Líneas:**
-- *Equilibrio (azul):* Esta línea se extiende diagonalmente a través del gráfico y representa el equilibrio entre las fases líquida y vapor de la mezcla.
+- _Equilibrio (azul):_ Esta línea se extiende diagonalmente a través del gráfico
+ y representa el equilibrio entre las fases líquida y vapor de la mezcla.
-- *Intersección (roja):* Esta línea marca un punto específico de intersección entre las curvas ROP y SOP.
+- _Intersección (roja):_ Esta línea marca un punto específico de intersección
+ entre las curvas ROP y SOP.
-- *ROP (naranja):* Representa la línea de operación de rectificación, que es la sección de la columna de destilación por encima del plato de alimentación.
+- _ROP (naranja):_ Representa la línea de operación de rectificación, que es la
+ sección de la columna de destilación por encima del plato de alimentación.
-- *SOP (verde):* Representa la línea de operación de agotamiento, que es la sección de la columna de destilación por debajo del plato de alimentación.
+- _SOP (verde):_ Representa la línea de operación de agotamiento, que es la
+ sección de la columna de destilación por debajo del plato de alimentación.
-- *Pasos (púrpura):* Estos indican los platos teóricos necesarios para la separación. Cada paso representa un plato teórico en la columna de destilación.
+- _Pasos (púrpura):_ Estos indican los platos teóricos necesarios para la
+ separación. Cada paso representa un plato teórico en la columna de
+ destilación.
-Este gráfico es útil para determinar el número de platos teóricos necesarios en una columna de destilación para separar una mezcla de metanol-agua. Los platos teóricos son una medida de la eficiencia de la columna de destilación. Cuantos más platos teóricos tenga una columna, más eficiente será la separación.
+Este gráfico es útil para determinar el número de platos teóricos necesarios en
+una columna de destilación para separar una mezcla de metanol-agua. Los platos
+teóricos son una medida de la eficiencia de la columna de destilación. Cuantos
+más platos teóricos tenga una columna, más eficiente será la separación.
**Importancia de la Destilación Binaria de McCabe-Thiele:**
-La destilación binaria de McCabe-Thiele es un método crucial en ingeniería química y procesos de separación, utilizado para analizar y diseñar columnas de destilación. A continuación, se detallan algunas de las razones clave por las cuales la destilación binaria de McCabe-Thiele es importante:
+La destilación binaria de McCabe-Thiele es un método crucial en ingeniería
+química y procesos de separación, utilizado para analizar y diseñar columnas de
+destilación. A continuación, se detallan algunas de las razones clave por las
+cuales la destilación binaria de McCabe-Thiele es importante:
**Diseño Eficiente de Columnas de Destilación:**
-- Proporciona un enfoque sistemático y gráfico para el diseño de columnas de destilación binarias, permitiendo determinar el número mínimo de etapas requeridas para una separación específica.
-- Facilita la comprensión de la eficiencia de una columna de destilación y la relación entre el número de etapas teóricas y reales.
+
+- Proporciona un enfoque sistemático y gráfico para el diseño de columnas de
+ destilación binarias, permitiendo determinar el número mínimo de etapas
+ requeridas para una separación específica.
+- Facilita la comprensión de la eficiencia de una columna de destilación y la
+ relación entre el número de etapas teóricas y reales.
**Optimización de Procesos de Separación:**
-- Permite optimizar los procesos de separación de mezclas binarias, como la purificación de componentes en la industria química y petroquímica.
-- Ayuda en la selección adecuada de condiciones operativas para lograr la separación deseada de componentes.
+
+- Permite optimizar los procesos de separación de mezclas binarias, como la
+ purificación de componentes en la industria química y petroquímica.
+- Ayuda en la selección adecuada de condiciones operativas para lograr la
+ separación deseada de componentes.
**Análisis Detallado de Comportamientos de Mezclas:**
-- Proporciona una representación visual y detallada de la composición de las mezclas en cada etapa de la columna de destilación, lo que facilita el análisis del comportamiento de los componentes.
-- Permite identificar el reflujo mínimo necesario para una separación específica y evaluar la eficiencia del proceso.
+
+- Proporciona una representación visual y detallada de la composición de las
+ mezclas en cada etapa de la columna de destilación, lo que facilita el
+ análisis del comportamiento de los componentes.
+- Permite identificar el reflujo mínimo necesario para una separación específica
+ y evaluar la eficiencia del proceso.
**Entendimiento de Interacciones de Componentes:**
-- Ayuda a comprender las interacciones entre los componentes de la mezcla y cómo influyen en el proceso de destilación.
-- Permite evaluar la viabilidad y eficiencia de la separación de componentes específicos en una mezcla binaria.
+
+- Ayuda a comprender las interacciones entre los componentes de la mezcla y cómo
+ influyen en el proceso de destilación.
+- Permite evaluar la viabilidad y eficiencia de la separación de componentes
+ específicos en una mezcla binaria.
**Herramienta Educativa y de Investigación:**
-- Se utiliza como herramienta educativa para estudiantes en ingeniería química y campos relacionados para comprender los principios fundamentales de la destilación.
-- Es una herramienta valiosa para la investigación y desarrollo de procesos de destilación más eficientes y sostenibles.
+
+- Se utiliza como herramienta educativa para estudiantes en ingeniería química y
+ campos relacionados para comprender los principios fundamentales de la
+ destilación.
+- Es una herramienta valiosa para la investigación y desarrollo de procesos de
+ destilación más eficientes y sostenibles.
**Análisis de Sistemas de Ingeniería de Procesos:**
-- Facilita el análisis de sistemas de ingeniería de procesos que involucran la destilación de mezclas binarias, contribuyendo a la mejora continua y la optimización de operaciones.
-## Implementación de la Clase SteamTable para una consulta eficáz de las tablas de vapor
+- Facilita el análisis de sistemas de ingeniería de procesos que involucran la
+ destilación de mezclas binarias, contribuyendo a la mejora continua y la
+ optimización de operaciones.
-La clase SteamTable ofrece capacidades para gestionar y representar datos termodinámicos asociados con las fases de vapor y líquido, centrándose especialmente en tablas vapor.
+## Implementación de la Clase SteamTable para una consulta eficáz de las tablas de vapor
-Esta función es valiosa en aplicaciones donde se requiere conocer propiedades termodinámicas precisas para una temperatura específica, por ejemplo, en el diseño y análisis de sistemas termodinámicos, procesos de ingeniería, o cualquier escenario donde la temperatura es un parámetro crítico. Proporciona una herramienta flexible y útil para obtener datos detallados en puntos específicos de interés en la tabla termodinámica de vapor.
+La clase SteamTable ofrece capacidades para gestionar y representar datos
+termodinámicos asociados con las fases de vapor y líquido, centrándose
+especialmente en tablas vapor.
+Esta función es valiosa en aplicaciones donde se requiere conocer propiedades
+termodinámicas precisas para una temperatura específica, por ejemplo, en el
+diseño y análisis de sistemas termodinámicos, procesos de ingeniería, o
+cualquier escenario donde la temperatura es un parámetro crítico. Proporciona
+una herramienta flexible y útil para obtener datos detallados en puntos
+específicos de interés en la tabla termodinámica de vapor.
# Ejemplo de uso de SteamTable en fqlearn
+
```python
from fqlearn.SteamTable import SteamTable
@@ -159,101 +218,134 @@ sistema.plot3d()
# Le da al usuario información disponible en las tablas con la temperatura proporcionada
sistema.point(t = 100)
```
-## Función data
-
-La función 'data' tiene la capacidad de imprimir las tablas de vapor que están cargadas en la base de datos, mostrándolas con incrementos de 20 en 20. Este enfoque permite al usuario visualizar de manera rápida y eficiente la tabla, facilitando así la realización de consultas de forma ágil.
-
+## Función data
+La función 'data' tiene la capacidad de imprimir las tablas de vapor que están
+cargadas en la base de datos, mostrándolas con incrementos de 20 en 20. Este
+enfoque permite al usuario visualizar de manera rápida y eficiente la tabla,
+facilitando así la realización de consultas de forma ágil.
-| t | p | rhoL | rhoV | hL | hV | delta_h | sL | sV | delta_s | vL | vV |
-|-------|-----------|--------|-----------|--------|--------|---------|----------|--------|---------|---------|---------|
-| 16.0 | 0.0018188 | 998.9 | 0.013 645 | 67.17 | 2530.2 | 2463.0 | 0.238 97 | 8.757 | 8.518 | 1.0011 | 73286.0 |
+| t | p | rhoL | rhoV | hL | hV | delta_h | sL | sV | delta_s | vL | vV |
+| ----- | --------- | ------ | --------- | ------ | ------ | ------- | -------- | ------ | ------- | ------- | ------- |
+| 16.0 | 0.0018188 | 998.9 | 0.013 645 | 67.17 | 2530.2 | 2463.0 | 0.238 97 | 8.757 | 8.518 | 1.0011 | 73286.0 |
| 36.0 | 0.0059479 | 993.64 | 0.041 790 | 150.81 | 2566.3 | 2415.5 | 0.518 67 | 8.3321 | 7.8135 | 1.0064 | 23929.0 |
-| 72.0 | 0.034 | 976.58 | 0.215 07 | 301.45 | 2629.5 | 2328.1 | 0.979 49 | 7.7246 | 6.7451 | 1.02398 | 4649.6 |
-| 92.0 | 0.075684 | 963.94 | 0.454 91 | 385.46 | 2662.8 | 2277.3 | 1.2160 | 7.4526 | 6.2367 | 1.03741 | 2198.2 |
-| 128.0 | 0.2545 | 936.52 | 1.4149 | 537.85 | 2717.3 | 2179.5 | 1.6135 | 7.0465 | 5.433 | 1.06778 | 706.75 |
-| 148.0 | 0.45118 | 918.87 | 2.422 | 623.56 | 2743.5 | 2119.9 | 1.8214 | 6.8552 | 5.0337 | 1.0883 | 412.88 |
-| 184.0 | 1.0985 | 882.69 | 5.6279 | 780.75 | 2780.6 | 1999.8 | 2.1779 | 6.5525 | 4.3746 | 1.1329 | 177.69 |
-| 204.0 | 1.6893 | 859.95 | 8.5186 | 870.35 | 2794.3 | 1923.9 | 2.3683 | 6.4004 | 4.0322 | 1.16286 | 117.39 |
-| 240.0 | 3.3469 | 813.37 | 16.749 | 1037.6 | 2803.0 | 1765.4 | 2.702 | 6.1423 | 3.4403 | 1.22946 | 59.705 |
-| 260.0 | 4.6923 | 783.63 | 23.712 | 1135.0 | 2796.6 | 1661.6 | 2.8849 | 6.0016 | 3.1167 | 1.27612 | 42.173 |
-| 296.0 | 8.1143 | 720.23 | 43.21 | 1322.8 | 2757.0 | 1434.2 | 3.2174 | 5.7373 | 2.5199 | 1.38845 | 23.143 |
-| 316.0 | 10.699 | 676.81 | 60.361 | 1437.8 | 2712.3 | 1274.5 | 3.4097 | 5.5729 | 2.1632 | 1.47751 | 16.567 |
-| 352.0 | 16.939 | 566.46 | 118.68 | 1687.5 | 2549.6 | 862.1 | 3.8039 | 5.1829 | 1.379 | 1.76536 | 8.4257 |
-| 372.0 | 21.554 | 422.26 | 226.84 | 1935.3 | 2275.5 | 340.3 | 4.1785 | 4.7059 | 0.5274 | 2.3682 | 4.4084 |
+| 72.0 | 0.034 | 976.58 | 0.215 07 | 301.45 | 2629.5 | 2328.1 | 0.979 49 | 7.7246 | 6.7451 | 1.02398 | 4649.6 |
+| 92.0 | 0.075684 | 963.94 | 0.454 91 | 385.46 | 2662.8 | 2277.3 | 1.2160 | 7.4526 | 6.2367 | 1.03741 | 2198.2 |
+| 128.0 | 0.2545 | 936.52 | 1.4149 | 537.85 | 2717.3 | 2179.5 | 1.6135 | 7.0465 | 5.433 | 1.06778 | 706.75 |
+| 148.0 | 0.45118 | 918.87 | 2.422 | 623.56 | 2743.5 | 2119.9 | 1.8214 | 6.8552 | 5.0337 | 1.0883 | 412.88 |
+| 184.0 | 1.0985 | 882.69 | 5.6279 | 780.75 | 2780.6 | 1999.8 | 2.1779 | 6.5525 | 4.3746 | 1.1329 | 177.69 |
+| 204.0 | 1.6893 | 859.95 | 8.5186 | 870.35 | 2794.3 | 1923.9 | 2.3683 | 6.4004 | 4.0322 | 1.16286 | 117.39 |
+| 240.0 | 3.3469 | 813.37 | 16.749 | 1037.6 | 2803.0 | 1765.4 | 2.702 | 6.1423 | 3.4403 | 1.22946 | 59.705 |
+| 260.0 | 4.6923 | 783.63 | 23.712 | 1135.0 | 2796.6 | 1661.6 | 2.8849 | 6.0016 | 3.1167 | 1.27612 | 42.173 |
+| 296.0 | 8.1143 | 720.23 | 43.21 | 1322.8 | 2757.0 | 1434.2 | 3.2174 | 5.7373 | 2.5199 | 1.38845 | 23.143 |
+| 316.0 | 10.699 | 676.81 | 60.361 | 1437.8 | 2712.3 | 1274.5 | 3.4097 | 5.5729 | 2.1632 | 1.47751 | 16.567 |
+| 352.0 | 16.939 | 566.46 | 118.68 | 1687.5 | 2549.6 | 862.1 | 3.8039 | 5.1829 | 1.379 | 1.76536 | 8.4257 |
+| 372.0 | 21.554 | 422.26 | 226.84 | 1935.3 | 2275.5 | 340.3 | 4.1785 | 4.7059 | 0.5274 | 2.3682 | 4.4084 |
## Función plot
### Diagrama Presión-Volumen (P-V):
-- **Concepto:** Muestra la relación entre la presión y el volumen de un sistema termodinámico.
+
+- **Concepto:** Muestra la relación entre la presión y el volumen de un sistema
+ termodinámico.
- **Eje X:** Volumen.
- **Eje Y:** Presión.
-- **Características:** En un diagrama P-V, las curvas representan los procesos termodinámicos del sistema. Puede mostrar procesos adiabáticos, isotérmicos, isobáricos, etc. La pendiente de las curvas indica propiedades como la compresibilidad del fluido.
+- **Características:** En un diagrama P-V, las curvas representan los procesos
+ termodinámicos del sistema. Puede mostrar procesos adiabáticos, isotérmicos,
+ isobáricos, etc. La pendiente de las curvas indica propiedades como la
+ compresibilidad del fluido.

### Diagrama Presión-Temperatura (P-T):
-- **Concepto:** Muestra la relación entre la presión y la temperatura de un sistema termodinámico.
+
+- **Concepto:** Muestra la relación entre la presión y la temperatura de un
+ sistema termodinámico.
- **Eje X:** Temperatura.
- **Eje Y:** Presión.
-- **Características:** Este diagrama revela cómo cambia la presión con la temperatura bajo diversas condiciones. Puede mostrar regiones de fases (por ejemplo, líquido, vapor, o ambos) y proporciona información sobre las transiciones de fase.
+- **Características:** Este diagrama revela cómo cambia la presión con la
+ temperatura bajo diversas condiciones. Puede mostrar regiones de fases (por
+ ejemplo, líquido, vapor, o ambos) y proporciona información sobre las
+ transiciones de fase.

### Diagrama Temperatura-Volumen (T-V):
-- **Concepto:** Muestra la relación entre la temperatura y el volumen de un sistema termodinámico.
+
+- **Concepto:** Muestra la relación entre la temperatura y el volumen de un
+ sistema termodinámico.
- **Eje X:** Volumen.
- **Eje Y:** Temperatura.
-- **Características:** Este diagrama ayuda a visualizar cómo la temperatura se relaciona con el volumen en diferentes procesos. Puede mostrar curvas de saturación, isóbaras, entre otras.
+- **Características:** Este diagrama ayuda a visualizar cómo la temperatura se
+ relaciona con el volumen en diferentes procesos. Puede mostrar curvas de
+ saturación, isóbaras, entre otras.

-Estos diagramas son herramientas esenciales en termodinámica y se utilizan comúnmente para representar y analizar los ciclos termodinámicos, como el ciclo de Carnot en máquinas térmicas. Además, en el caso de sustancias puras, los diagramas P-V, P-T y T-V son útiles para entender las propiedades y comportamientos de la sustancia en diferentes estados termodinámicos. Por ejemplo, el diagrama P-V de una sustancia pura puede revelar información sobre la expansión y la compresión durante un proceso termodinámico.
+Estos diagramas son herramientas esenciales en termodinámica y se utilizan
+comúnmente para representar y analizar los ciclos termodinámicos, como el ciclo
+de Carnot en máquinas térmicas. Además, en el caso de sustancias puras, los
+diagramas P-V, P-T y T-V son útiles para entender las propiedades y
+comportamientos de la sustancia en diferentes estados termodinámicos. Por
+ejemplo, el diagrama P-V de una sustancia pura puede revelar información sobre
+la expansión y la compresión durante un proceso termodinámico.
## Función plot3d
### Diagrama Tridimensional PVT:
- **Ejes:**
+
- **Eje X:** Volumen (V)
- **Eje Y:** Presión (P)
- **Eje Z:** Temperatura (T)
- **Características:**
- - Este diagrama tridimensional proporciona una representación visual de cómo la presión, el volumen y la temperatura interactúan en un sistema termodinámico.
-
- - Permite observar las superficies de fases y regiones críticas en función de los cambios en las variables P, V y T.
+ - Este diagrama tridimensional proporciona una representación visual de cómo
+ la presión, el volumen y la temperatura interactúan en un sistema
+ termodinámico.
- - Se utiliza para estudiar propiedades como la expansión y contracción de sustancias, cambios de fase y transiciones críticas.
+ - Permite observar las superficies de fases y regiones críticas en función de
+ los cambios en las variables P, V y T.
- - Puede revelar información sobre la estabilidad de las fases y proporcionar una comprensión detallada del comportamiento termodinámico de un fluido.
+ - Se utiliza para estudiar propiedades como la expansión y contracción de
+ sustancias, cambios de fase y transiciones críticas.
+ - Puede revelar información sobre la estabilidad de las fases y proporcionar
+ una comprensión detallada del comportamiento termodinámico de un fluido.
- **Aplicaciones:**
- - Útil en la industria química y de petróleo para comprender el comportamiento de sustancias en condiciones de presión y temperatura variables.
+ - Útil en la industria química y de petróleo para comprender el comportamiento
+ de sustancias en condiciones de presión y temperatura variables.
- - Permite visualizar las áreas de vapor, líquido y fase crítica en un solo diagrama.
+ - Permite visualizar las áreas de vapor, líquido y fase crítica en un solo
+ diagrama.
- Ayuda en el diseño y optimización de procesos termodinámicos complejos.
-
- **Importancia:**
- - Facilita la comprensión de las propiedades físicas de sustancias y su respuesta a cambios en las condiciones ambientales.
-
- - Ayuda en la predicción de comportamientos críticos, como la formación de fases y puntos críticos.
-
-Este tipo de diagrama es una herramienta valiosa para los ingenieros y científicos que trabajan en el estudio y diseño de sistemas termodinámicos, especialmente en áreas como la química, la ingeniería de procesos y la industria del petróleo y gas.
+ - Facilita la comprensión de las propiedades físicas de sustancias y su
+ respuesta a cambios en las condiciones ambientales.
+ - Ayuda en la predicción de comportamientos críticos, como la formación de
+ fases y puntos críticos.
+Este tipo de diagrama es una herramienta valiosa para los ingenieros y
+científicos que trabajan en el estudio y diseño de sistemas termodinámicos,
+especialmente en áreas como la química, la ingeniería de procesos y la industria
+del petróleo y gas.

## Función point
-La función 'point' permite al usuario buscar valores en la tabla de vapor introduciendo la temperatura deseada, esta regresa el valor correspondiende de presión, densidad, entalpía, entropía y volumen
+
+La función 'point' permite al usuario buscar valores en la tabla de vapor
+introduciendo la temperatura deseada, esta regresa el valor correspondiende de
+presión, densidad, entalpía, entropía y volumen
### Datos del punto buscado
@@ -272,50 +364,87 @@ La función 'point' permite al usuario buscar valores en la tabla de vapor intro
**Importancia de las Tablas de Vapor en Termodinámica:**
-Las tablas de vapor son herramientas fundamentales en termodinámica para el estudio y análisis de sustancias en estados gaseosos y líquidos, proporcionando información crucial sobre las propiedades termodinámicas de las sustancias. A continuación, se detallan algunas de las razones clave por las cuales las tablas de vapor son esenciales:
+Las tablas de vapor son herramientas fundamentales en termodinámica para el
+estudio y análisis de sustancias en estados gaseosos y líquidos, proporcionando
+información crucial sobre las propiedades termodinámicas de las sustancias. A
+continuación, se detallan algunas de las razones clave por las cuales las tablas
+de vapor son esenciales:
**Propiedades Termodinámicas Precisas:**
-- Las tablas de vapor contienen datos precisos y experimentales sobre propiedades termodinámicas, como la presión, temperatura, entalpía, entropía, volumen específico y otras.
+- Las tablas de vapor contienen datos precisos y experimentales sobre
+ propiedades termodinámicas, como la presión, temperatura, entalpía, entropía,
+ volumen específico y otras.
-- Estos datos permiten realizar cálculos precisos en procesos termodinámicos y determinar el comportamiento de las sustancias en diferentes condiciones.
+- Estos datos permiten realizar cálculos precisos en procesos termodinámicos y
+ determinar el comportamiento de las sustancias en diferentes condiciones.
**Diseño y Análisis de Ciclos Termodinámicos:**
-- Son esenciales en el diseño y análisis de ciclos termodinámicos, como el ciclo Rankine en plantas de energía, el ciclo de refrigeración por compresión de vapor, y otros procesos de conversión de energía.
+- Son esenciales en el diseño y análisis de ciclos termodinámicos, como el ciclo
+ Rankine en plantas de energía, el ciclo de refrigeración por compresión de
+ vapor, y otros procesos de conversión de energía.
-- Facilitan la identificación de puntos críticos, condiciones de saturación, y la comprensión de las fases involucradas en estos ciclos.
+- Facilitan la identificación de puntos críticos, condiciones de saturación, y
+ la comprensión de las fases involucradas en estos ciclos.
**Predicción de Comportamientos en Procesos Térmicos:**
-- Permiten predecir cómo una sustancia se comportará bajo diversas condiciones de temperatura y presión, facilitando la planificación y operación eficiente de sistemas termodinámicos.
-- Ayudan en la identificación de transiciones de fase, como la vaporización y la condensación, y proporcionan datos sobre las condiciones críticas.
+- Permiten predecir cómo una sustancia se comportará bajo diversas condiciones
+ de temperatura y presión, facilitando la planificación y operación eficiente
+ de sistemas termodinámicos.
+
+- Ayudan en la identificación de transiciones de fase, como la vaporización y la
+ condensación, y proporcionan datos sobre las condiciones críticas.
**Determinación de Propiedades en Ingeniería y Ciencias Aplicadas:**
-- En ingeniería química, mecánica y otras disciplinas, las tablas de vapor son utilizadas para calcular y analizar procesos, desde la producción de energía hasta el diseño de sistemas de climatización.
+- En ingeniería química, mecánica y otras disciplinas, las tablas de vapor son
+ utilizadas para calcular y analizar procesos, desde la producción de energía
+ hasta el diseño de sistemas de climatización.
-- Facilitan la determinación de propiedades clave necesarias en el diseño y operación de equipos y maquinaria.
+- Facilitan la determinación de propiedades clave necesarias en el diseño y
+ operación de equipos y maquinaria.
**Análisis de Problemas de Transferencia de Calor y Masa:**
-- Son esenciales para el análisis de problemas relacionados con la transferencia de calor y masa, proporcionando datos para calcular tasas de evaporación, coeficientes de transferencia de calor, y más.
+- Son esenciales para el análisis de problemas relacionados con la transferencia
+ de calor y masa, proporcionando datos para calcular tasas de evaporación,
+ coeficientes de transferencia de calor, y más.
-- Ayudan en la comprensión de fenómenos como la condensación y evaporación en intercambiadores de calor.
+- Ayudan en la comprensión de fenómenos como la condensación y evaporación en
+ intercambiadores de calor.
**Entendimiento de Comportamientos de Sustancias Puras:**
-- Para sustancias puras, las tablas de vapor son fundamentales para entender cómo las propiedades termodinámicas varían en diferentes estados, lo que es esencial para la investigación y el desarrollo de nuevos materiales y procesos.
+- Para sustancias puras, las tablas de vapor son fundamentales para entender
+ cómo las propiedades termodinámicas varían en diferentes estados, lo que es
+ esencial para la investigación y el desarrollo de nuevos materiales y
+ procesos.
-En resumen, las tablas de vapor son una herramienta invaluable en la termodinámica aplicada, proporcionando datos cruciales que permiten comprender, diseñar y optimizar una amplia variedad de sistemas y procesos en ingeniería y ciencia.
+En resumen, las tablas de vapor son una herramienta invaluable en la
+termodinámica aplicada, proporcionando datos cruciales que permiten comprender,
+diseñar y optimizar una amplia variedad de sistemas y procesos en ingeniería y
+ciencia.
# Conclusiones
-En este artículo, hemos explorado la utilidad y aplicaciones prácticas de las funciones disponibles en las clases de McCabe-Thiele y SteamTable de fqlearn. La capacidad de visualizar de manera sencilla cálculos termodinámicos demuestra ser invaluable, especialmente para docentes que buscan simplificar la enseñanza y para alumnos que desean comprender de manera efectiva los conceptos termodinámicos. La combinación de estas herramientas en fqlearn proporciona una plataforma integral que facilita tanto la instrucción como el aprendizaje en el fascinante campo de la termodinámica.
+
+En este artículo, hemos explorado la utilidad y aplicaciones prácticas de las
+funciones disponibles en las clases de McCabe-Thiele y SteamTable de fqlearn. La
+capacidad de visualizar de manera sencilla cálculos termodinámicos demuestra ser
+invaluable, especialmente para docentes que buscan simplificar la enseñanza y
+para alumnos que desean comprender de manera efectiva los conceptos
+termodinámicos. La combinación de estas herramientas en fqlearn proporciona una
+plataforma integral que facilita tanto la instrucción como el aprendizaje en el
+fascinante campo de la termodinámica.
## Repositorio en GitHub
-No olvides que puedes consultar fqlearn en [Github](https://github.com/osl-pocs/fqlearn)
+No olvides que puedes consultar fqlearn en
+[Github](https://github.com/osl-pocs/fqlearn)
## Contácto
-El autor de este artículo se encuentra disponible en [LinkedIn](https://www.linkedin.com/in/josé-maría-garcía-márquez-556a75199/), en [Github](https://github.com/JoseMariaGarciaMarquez), y en su [página](https://www.josemaria.me)
\ No newline at end of file
+El autor de este artículo se encuentra disponible en
+[LinkedIn](https://www.linkedin.com/in/josé-maría-garcía-márquez-556a75199/), y
+en [Github](https://github.com/JoseMariaGarciaMarquez).
diff --git a/pages/blog/internship-call-2-2024/index.md b/pages/blog/internship-call-2-2024/index.md
index 9ca6ba8fd..26eeb6742 100644
--- a/pages/blog/internship-call-2-2024/index.md
+++ b/pages/blog/internship-call-2-2024/index.md
@@ -88,7 +88,7 @@ This program presents valuable opportunities for both mentors and student/collab
Candidates should have a basic understanding of Git and how to contribute. For guidance, we recommend reading this [blog post](https://opensciencelabs.org/blog/first-time-contributors/) designed for first-time contributors. Additionally, to stay informed about announcements related to the Internship Program, candidates are encouraged to join the [OSL Discord](https://opensciencelabs.org/discord).
-Please keep in mind about the timeline, and if you have any more questions do not hesitate to contact us at team@opensciencelabs.org.
+Please keep in mind about the timeline, and if you have any more questions do not hesitate to contact us at team@opensciencelabs.org.
## Timeline
@@ -97,7 +97,7 @@ The following is the timeline for the OSL Internship Program Cycle 2024-02:
- **April 22**: Call for Interns/Apprentices opens.
- **May 13**: Deadline for Interns/Apprentices applications.
- **May 20**: Announcement of approved Interns/Apprentices and start of the bonding period
-- **May 27**: Official Start Date of Internship Period; an alternative for projects not
+- **May 27**: Official Start Date of Internship Period; an alternative for projects not
selected by GSoC to run under the OSL Internship Program with The Graph Network support.
- **July 8**: Mid-term Evaluation.
- **August 26**: Final Evaluation.
@@ -121,7 +121,7 @@ Below is the list of projects participating in the current internship cycle. Eac
- **Description:** ASTx is an agnostic expression structure for AST. It is agnostic because it is not specific to any language, neither to the ArxLang project, although its main focus is to provide all needed feature for ArxLang.
- **Categories:** AST, Compiler
-- **Organization/Project Webpage URL:** [https://arxlang.github.io/astx/](https://arxlang.github.io/astx/)
+- **Organization/Project Webpage URL:** [https://astx.arxlang.org/](https://astx.arxlang.org/)
- **Contact:** Ivan Ogasawara [ivan.ogasawara@gmail.com](mailto:ivan.ogasawara@gmail.com)
- **Project Ideas URL:**
diff --git a/pages/blog/psf-funding-open-source-projects-development-scicookie/index-en.md b/pages/blog/psf-funding-open-source-projects-development-scicookie/index-en.md
index 3cd1a683f..235039a17 100644
--- a/pages/blog/psf-funding-open-source-projects-development-scicookie/index-en.md
+++ b/pages/blog/psf-funding-open-source-projects-development-scicookie/index-en.md
@@ -11,7 +11,7 @@ description: |
Science Labs (OSL), submitted between January and February 2023. The
proposal was submitted to contribute to the development and maintenance
of SciCookie, a Python tool within the [OSL incubation
- projects](/programs/incubator/).
+ projects](/projects/incubation/).
thumbnail: "/header.svg"
template: "blog-post.html"
---
@@ -23,7 +23,7 @@ In this article, we will share our experience in applying for and executing a
Python Software Foundation (PSF) grant on behalf of Open Science Labs (OSL),
submitted between January and February 2023. The proposal was submitted to
contribute to the development and maintenance of SciCookie, a Python tool within
-the [OSL incubation projects](/programs/incubator/).
+the [OSL incubation projects](/projects/incubation/).
We'll begin by introducing SciCookie, highlighting its key features and aspects
that might interest you. Then, we'll go over the grant application process and
diff --git a/pages/blog/psf-funding-open-source-projects-development-scicookie/index.md b/pages/blog/psf-funding-open-source-projects-development-scicookie/index.md
index 3c978941f..6814680c5 100644
--- a/pages/blog/psf-funding-open-source-projects-development-scicookie/index.md
+++ b/pages/blog/psf-funding-open-source-projects-development-scicookie/index.md
@@ -12,7 +12,7 @@ description: |
Science Labs (OSL) que fue enviada entre enero y febrero de 2023. La propuesta
se hizo con la finalidad de contribuir con el desarrollo y mantenimiento de
SciCookie, una herramienta de Python que se encuentra dentro de los
- [proyectos de incubación de OSL](/programs/incubator/).
+ [proyectos de incubación de OSL](/projects/incubation/).
thumbnail: "/header.svg"
template: "blog-post.html"
---
@@ -25,7 +25,7 @@ de una subvención de la Python Software Foundation (PSF) a nombre de Open
Science Labs (OSL) que fue enviada entre enero y febrero de 2023. La propuesta
se hizo con la finalidad de contribuir con el desarrollo y mantenimiento de
SciCookie, una herramienta de Python que se encuentra dentro de los
-[proyectos de incubación de OSL](/programs/incubator/).
+[proyectos de incubación de OSL](/projects/incubation/).
Comenzaremos con una breve introducción a SciCookie, algunas de sus
características clave y aspectos de interés. Luego, discutiremos el proceso de
diff --git a/pages/blog/r-nube-de-palabras/index.md b/pages/blog/r-nube-de-palabras/index.md
deleted file mode 100644
index e44ace96d..000000000
--- a/pages/blog/r-nube-de-palabras/index.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-title: "Crea una nube de palabras en R a partir de un documento de texto"
-slug: r-nube-de-palabras
-date: 2022-03-01
-authors: ["Ever Vino"]
-tags: [nube de palabras, tm]
-categories:
- [ciencia abierta, código abierto, R, ciencia de datos, minería de datos]
-description: |
- Una nube de palabras o wordcloud nos sirve para visualizar la frecuencia de palabras
- dentro de un texto. En este tutorial, usaremos el artículo de [inteligencia artificial]
- (https://es.wikipedia.org/wiki/Inteligencia_artificial) de Wikipedia para
- construir nuestra nube de palabras usando las bibliotecas `tm` y `wordcloud`.
-thumbnail: "/header.png"
-template: "blog-post.html"
----
-Una nube de palabras o wordcloud nos sirve para visualizar la frecuencia de palabras dentro de un texto.
-En este tutorial, usaremos el artículo de [inteligencia artificial](https://es.wikipedia.org/wiki/Inteligencia_artificial) de Wikipedia para construir nuestra nube de palabras usando las bibliotecas `tm` y `wordcloud`.
-
-
-
-## Instalación de pre-requisitos
-Para un mejor manejo de los paquetes, aquí vamos a utilizar la biblioteca `pacman`, esta nos permitirá hacer una instalación y activación de las bibliotecas de manera rápida. Recuerde instalar **Rtools** y la versión más reciente de **R** si está usando **Windows**.
-
-
-```python
-# install.packages("pacman") # Si no tiene instalada la Biblioteca Pacman ejecutar esta línea de código
-library("pacman")
-```
-
-Bibliotecas adicionales requeridas, instaladas y abiertas con `pacman`.
-
-
-```python
-p_load("tm") # Biblioteca para realizar el preprocesado del texto,
-p_load("tidyverse") # Biblioteca con funciones para manipular datos.
-p_load("wordcloud") # Biblioteca para graficar nuestra nube de palabras.
-p_load("RColorBrewer") # Biblioteca para seleccionar una paleta de colores de nuestra nube de palabras.
-```
-
-## Importación del texto
-
-Para este ejemplo, descargamos nuestro artículo de formato texto de un repositorio, guardamos la dirección web en `articulo_IA` y lo descargamos usando la función `read_file()`. También puede usar los directorios locales para importar un texto de su preferencia. Si desea descargar el archivo que usamos en este ejemplo puede hacer hacerlo ejecutando `download.file("https://gist.github.com/EverVino/7bdbbe7ebdff5987970036f52f0e384f/raw/3a1997b6f9e3471555a941f8812ada0cef84977d/gistfile1.txt", paste(getwd(),"/texto.txt", sep=""))` en la línea de comando de R, esto descargará el archivo y lo guardara en la carpeta de trabajo de R con el nombre de **texto.txt**.
-
-_Para saber la carpeta de trabajo puede ejecutar `getwd()`. puede cambiar la carpeta de trabajo con la función `setwd("/nuevo_directorio_trabajo/")`._
-
-Luego de importar el texto, vamos a convertirlo en un objeto tipo `Source`, esto facilitará la minería del texto y su posterior modificación.
-
-
-```python
-articulo_IA <- "https://gist.github.com/EverVino/7bdbbe7ebdff5987970036f52f0e384f/raw/3a1997b6f9e3471555a941f8812ada0cef84977d/gistfile1.txt"
-texto <- read_file(articulo_IA)
-```
-
-* `read_file(dir)`: Función de la biblioteca `tidyverse` que nos permite importar archivos de texto. El resultado de la función es un vector de un sólo elemento. `dir` es la **direción local** o **url** con el nombre del archivo de formato **txt** a importar.
-
-
-```python
-texto <- VCorpus(VectorSource(texto),
- readerControl = list(reader = readPlain, language = "es"))
-```
-
-* `VCorpus (x, readerControl(y))`: Donde `x` es un objeto del tipo `Source`, se recomienda que sea un objeto del tipo `VectorSource`. Para `readerControl(y)` `y` es una lista de parámetros para leer `x`.
-
-* `VectorSource(vector)`: Convierte una lista o vector a un objeto tipo VectorSource.
-
-## Preprocesado de texto
-Una vez importado el texto, tenemos que eliminar la palabras que actúan como conectores, separadores de palabras , de oraciones, y números que no aportarán al análisis del texto, para ello usamos la función `tm_map()` que nos permite aplicar funciones al texto del `Corpus`.
-
-
-```python
-texto <- tm_map(texto, tolower)
-texto <- texto %>%
- tm_map(removePunctuation) %>%
- tm_map(removeNumbers) %>%
- tm_map(removeWords, stopwords("spanish"))
-texto <- tm_map(texto, removeWords, c("puede", "ser", "pues", "si", "aún", "cómo"))
-texto <- tm_map(texto, stripWhitespace)
-```
-
-* `tm_map(text, funcion_de_transformacion, parametros_de_funcion)`: Transforma el contenido de texto de un objeto `Corpus` o `VCorpus`, aplicando las funciones de transformación de texto.
-
-* `tolower`: Función de transformación de texto, usado para convertir todas la mayúsculas a minúsculas.
-
-* `removeNumber`: Función para eliminar los números del texto.
-
-+ `removeWord`: Función para remover palabras,
-
-* `stopword("lang")`: Lista de palabras conectoras en el lenguaje lang, es argumento de la función `removeWord`.
-
-* `stripWhitespace`: Función para remover los espacios blancos de un texto.
-
-Nótese que usamos ambas notaciones para transformar el texto del `Corpus`, la notación normal `tm_map(x, FUN)` y también la notación de la biblioteca de `tydiverse` `pipeoperator` `>%>`, que toma como argumento inicial el resultado de la anterior función.
-
-_Si quiere observar los cambios del texto puede ejecutar en la consola `writeLines(as.character(texto[[1]]))`, esto imprimirá el resultado en la consola._
-
-## Construyendo la tabla de frecuencia
-
-
-```python
-texto <- tm_map(texto, PlainTextDocument)
-```
-
-* `PlainTextDocument`: Convierte texto a un objeto tipo PlainTextDocument. Para el ejemplo, convierte un `VCorpus` a `PlainTextDocument` el cuál contiene metadatos y nombres de las filas, haciendo factible la conversión a un matriz.
-
-
-```python
-tabla_frecuencia <- DocumentTermMatrix(texto)
-```
-
-* `DocumentTermMatrix(texto)`: Convierte texto a un objeto tipo term-document matrix. Es un objeto que va a contener la frecuencia de palabras.
-
-
-```python
-tabla_frecuencia <- cbind(palabras = tabla_frecuencia$dimnames$Terms,
- frecuencia = tabla_frecuencia$v)
-```
-
-Extraemos los datos que nos interesan del objeto `tabla_frecuencia` y los juntamos con `cbind()`.
-
-_Ejecutando en la consola `View(tabla_frecuencia)` notamos que es un objeto, para acceder a sus valores usamos el símbolo `$` dicho de otra manera: para acceder a las `palabras` usamos `tabla_frecuencia$dimnames$Terms` y para su correspondientes frecuencia en el texto `tabla_frecuencia$v`._
-
-
-```python
-# Convertimos los valores enlazados con cbind a un objeto dataframe.
-tabla_frecuencia<-as.data.frame(tabla_frecuencia)
-# Forzamos a que la columna de frecuencia contenga valores numéricos.
-tabla_frecuencia$frecuencia<-as.numeric(tabla_frecuencia$frecuencia)
-# Ordenamos muestra tabla de frecuencias de acuerdo a sus valores numéricos.
-tabla_frecuencia<-tabla_frecuencia[order(tabla_frecuencia$frecuencia, decreasing=TRUE),]
-```
-
-_Con estos últimos ajustes ya tenemos nuestra tabla de frecuencias para graficarla._
-_Puede verificar los resultados ejecutando en la consola `head(tabla_frecuencia)`_
-
-## Graficando nuestra nube de palabras
-Una vez obtenida nuestra tabla de frecuencia sólo es necesario aplicar la función `wordcloud()`.
-
-
-```python
-wordcloud(words = tabla_frecuencia$palabras,
- freq = tabla_frecuencia$frecuencia,
- min.freq = 5,
- max.words = 100,
- random.order = FALSE,
- colors = brewer.pal(8,"Paired"))
-```
-
-
-
-
-
-
-
-* `wordcloud(word, freq, min.freq, max.words, random.order, color)`: Función para graficar la frecuencia de palabras, el tamaño de la palabra graficada será proporcional a la frecuencia de la misma. Esta función grafica las palabras en `word` con sus respectivas frecuencias `freq`, sólo usará las palabras que como mínimo tenga una frecuencia mínima `min.freq`, la cantidad de palabras en graficadas es igual a `maxwords`, las posiciones podrán ser aleatorias o no, dependiendo del valor de `random.order`, los colores estan dados en forma de lista en `colors`.
-* `brewer.pal(n, "paleta")`: Devuelve `n` valores de la `paleta`. Para la función `brewer.pal()` puede usar las paletas `"Dark2"`, `"Set1"`, `"Blues"` entre otros.
-
-_Cada vez que ejecute la función le mostrará diferentes resultados, para evitarlo si así se desea, puede fijar un estado inicial para generar números aleatorios que utiliza la función wordcloud. Use: `set.seed(1234)` para este propósito (puede alterar el valor del argumento numeral para diferentes resultados)._
-
-## Guardando nuestra nube de palabras
-Usamos la función `png()` para guardar la gráfica que se genera usando wordcloud. También puede usar otras funciones como `jpeg`, `svg` y otros.
-Nótese que usamos la función `png()` y `dev.off()` antes y despues de la función generadora de la grafica `wordcloud()`
-```r
-png("nube.png", width = 800,height = 800, res = 100)
- wordcloud(...)
-dev.off()
-```
-
-* `png("nombre.png", with, height, res) ... dev.off()`: Guarda el gráfico generado en formato `png`, dentro del directorio actual de trabajo. Lo guarda con el nombre `"nombre.png"` con el ancho y alto en pixeles de `with` y `height` respectivamente; y con la resolución `res` en ppi. Con `dev.off()` concluimos la obtención de datos de `png()`.
-
-_Otra biblioteca muy utilizada para generar una nube de palabras es `wordcloud2`, esta posee muchos más parámetros para modificar la apariencia de la nube, pero teniendo en cuenta que R está optimizado para realizar tratamiento de datos y no tanto para dibujar palabras, es recomendable usar otras opciones online o programas de diseño gráfico, si queremos mejores resultados. Y usar R para la obtención de la tabla de frecuencia de las palabras._
-_Nota: Existen palabras que pueden derivar de una misma palabra y expresan el mismo significado, como ser nube, nubes, nubarrón, que estan diferenciadas aquí en este ejemplo, estos requieren la aplicación adicional de una función que contemple estas variaciones linguisticas, lamentablemente a la fecha no hay una función equivalente para el español para R. Sin embargo si realiza el análisis de palabras en inglés puede usar `tm_map(Corpus_en_ingles, stemDocument, language="english")`._
-
-Finalmente antes de concluir cerramos las bibliotecas abiertas con `pacman`. La ventaja de hacer esto se ve cuando manejamos diferentes bibliotecas que tienen funciones con el mismo nombre, al cerrar las bibliotecas con conflictos, nos evitamos de especificar en el código a que biblioteca de R nos referimos.
-
-
-```python
-p_unload(all)
-```
-
-## Referencias
-- [Wikipedia-Inteligencia Artificial](https://es.wikipedia.org/wiki/Inteligencia_artificial)
-- [Documentacion de R](https://www.rdocumentation.org)
diff --git a/pages/blog/typer-a-python-library-for-building-cli-applications/ecommerce.py b/pages/blog/typer-a-python-library-for-building-cli-applications/ecommerce.py
index ddb6c8775..639e04d9f 100644
--- a/pages/blog/typer-a-python-library-for-building-cli-applications/ecommerce.py
+++ b/pages/blog/typer-a-python-library-for-building-cli-applications/ecommerce.py
@@ -1,8 +1,9 @@
+"""E-commerce module."""
+
import typer
from typer import Context, Option
-
app = typer.Typer(help="Operations for e-commerce.")
app_user = typer.Typer(help="Operations for user model.")
app_product = typer.Typer(help="Operations for product model.")
@@ -10,6 +11,7 @@
app.add_typer(app_user, name="user")
app.add_typer(app_product, name="product")
+
@app.callback(invoke_without_command=True)
def main(
ctx: Context,
@@ -31,25 +33,35 @@ def main(
typer.echo(ctx.get_help())
raise typer.Exit(0)
+
@app_user.command("create")
-def user_create(name: str = typer.Argument(..., help="Name of the user to create.")) -> None:
+def user_create(
+ name: str = typer.Argument(..., help="Name of the user to create."),
+) -> None:
"""Create a new user with the given name."""
print(f"Creating user: {name} - Done")
@app_user.command("update")
-def user_update(name: str = typer.Argument(..., help="Name of the user to update.")) -> None:
+def user_update(
+ name: str = typer.Argument(..., help="Name of the user to update."),
+) -> None:
"""Update user data with the given name."""
print(f"Updating user: {name} - Done")
+
@app_product.command("create")
-def product_create(name: str = typer.Argument(..., help="Name of the product to create.")) -> None:
+def product_create(
+ name: str = typer.Argument(..., help="Name of the product to create."),
+) -> None:
"""Create a new product with the given name."""
print(f"Creating product: {name} - Done")
@app_product.command("update")
-def product_update(name: str = typer.Argument(..., help="Name of the product to update.")) -> None:
+def product_update(
+ name: str = typer.Argument(..., help="Name of the product to update."),
+) -> None:
"""Update a product with the given name."""
print(f"Updating product: {name} - Done")
diff --git a/pages/blog/typer-a-python-library-for-building-cli-applications/greet.py b/pages/blog/typer-a-python-library-for-building-cli-applications/greet.py
index 61cb6e8d9..569d0beb4 100644
--- a/pages/blog/typer-a-python-library-for-building-cli-applications/greet.py
+++ b/pages/blog/typer-a-python-library-for-building-cli-applications/greet.py
@@ -1,18 +1,19 @@
+"""Greeting module."""
import typer
app = typer.Typer()
+
@app.command()
def greet(
name: str = typer.Option(
- ...,
- "--name",
- help="The name of the person to greet."
- )
+ ..., "--name", help="The name of the person to greet."
+ ),
) -> None:
"""Greets the user by name."""
typer.echo(f"Hello {name}!")
+
if __name__ == "__main__":
app()
diff --git a/pages/calendar/index.md b/pages/calendar/index.md
index b719f17b3..0ccfc74ca 100644
--- a/pages/calendar/index.md
+++ b/pages/calendar/index.md
@@ -3,7 +3,7 @@ title: "Open Science Labs Public Google Calendar"
description: "Open Science Labs, sharing knowledge"
date: "2019-02-28"
authors: ["OSL Team"]
-template: single.html
+template: main.html
---