From 85310fc430c448e48269b316398217a827c4b062 Mon Sep 17 00:00:00 2001 From: Julian Nonino Date: Wed, 11 Mar 2026 15:15:52 +0000 Subject: [PATCH 1/2] Update Cspell configuration --- .../cspell-custom-words-common.txt | 0 .../cspell-custom-words-en.txt | 0 .../cspell-custom-words-es.txt | 0 .config/cspell.yaml | 73 +++++++++++++++++++ .config/custom-dict-acronyms.txt | 1 + .config/custom-dict-names.txt | 4 + .../workflows/scripts/cspell-config-en.json | 45 ------------ .../workflows/scripts/cspell-config-es.json | 48 ------------ Taskfile.yml | 3 +- 9 files changed, 79 insertions(+), 95 deletions(-) rename {.github/workflows/scripts => .config}/cspell-custom-words-common.txt (100%) rename {.github/workflows/scripts => .config}/cspell-custom-words-en.txt (100%) rename {.github/workflows/scripts => .config}/cspell-custom-words-es.txt (100%) create mode 100644 .config/cspell.yaml create mode 100644 .config/custom-dict-acronyms.txt create mode 100644 .config/custom-dict-names.txt delete mode 100644 .github/workflows/scripts/cspell-config-en.json delete mode 100644 .github/workflows/scripts/cspell-config-es.json diff --git a/.github/workflows/scripts/cspell-custom-words-common.txt b/.config/cspell-custom-words-common.txt similarity index 100% rename from .github/workflows/scripts/cspell-custom-words-common.txt rename to .config/cspell-custom-words-common.txt diff --git a/.github/workflows/scripts/cspell-custom-words-en.txt b/.config/cspell-custom-words-en.txt similarity index 100% rename from .github/workflows/scripts/cspell-custom-words-en.txt rename to .config/cspell-custom-words-en.txt diff --git a/.github/workflows/scripts/cspell-custom-words-es.txt b/.config/cspell-custom-words-es.txt similarity index 100% rename from .github/workflows/scripts/cspell-custom-words-es.txt rename to .config/cspell-custom-words-es.txt diff --git a/.config/cspell.yaml b/.config/cspell.yaml new file mode 100644 index 0000000..16fee56 --- /dev/null +++ b/.config/cspell.yaml @@ -0,0 +1,73 @@ +language: "es,en-gb" + +import: + - '@cspell/dict-cspell-bundle/cspell-ext.json' + - '@cspell/dict-en-gb/cspell-ext.json' + - '@cspell/dict-es-es/cspell-ext.json' + - '@cspell/dict-people-names/cspell-ext.json' + - '@cspell/dict-redis/cspell-ext.json' + - '@cspell/dict-scientific-terms-gb/cspell-ext.json' + - '@cspell/dict-scientific-terms-us/cspell-ext.json' + +dictionaries: + - aws + - bash + - coding-compound-terms + - companies + - computing-acronyms + - cryptocurrencies + - cryptocurrencies-legacy + - filetypes + - fonts + - git + - google + - golang + - html + - html-symbol-entities + - java + - k8s + - latex + - makefile + - mathematics-terms-us + - networking-terms + - node + - npm + - people-names + - powershell + - python + - python-common + - redis + - scientific-terms-us + - shellscript + - software-term-suggestions + - software-terms-alternative + - software-tools + - softwareTerms + - sql + - terraform + - typescript + - web-services + - custom-dict-acronyms + - custom-dict-names + # - tesis-palabras + +ignorePaths: [] + +ignoreRegExpList: + - "\\`([^\\`].*?)\\`" # Inline code + - "\\{%.*%\\}" # Liquid-style tags + - "/^\\s*```[\\s\\S]*?^\\s*```/gm" # Code blocks + - "\\{\\{<[^>]*>\\}\\}" # Hugo inline shortcodes (e.g., {{< icon >}}) + - "\\{\\{%[\\s\\S]*?%\\}\\} " # Hugo block shortcodes (e.g., {{% alert %}}) + - "\\{\\{[^%][^<][\\s\\S]*?\\}\\} " # Hugo template variables/expressions (e.g., {{ .Site.Title }}) + +# Define each dictionary: +# - Relative paths are relative to the config file. +# - URLs will be retrieved via HTTP GET +dictionaryDefinitions: + - name: custom-dict-acronyms + path: "./custom-dict-acronyms.txt" + - name: custom-dict-names + path: "./custom-dict-names.txt" +# - name: tesis-palabras +# path: "./cspell-diccionario-palabras.txt" diff --git a/.config/custom-dict-acronyms.txt b/.config/custom-dict-acronyms.txt new file mode 100644 index 0000000..a2a6773 --- /dev/null +++ b/.config/custom-dict-acronyms.txt @@ -0,0 +1 @@ +SDLC diff --git a/.config/custom-dict-names.txt b/.config/custom-dict-names.txt new file mode 100644 index 0000000..932020c --- /dev/null +++ b/.config/custom-dict-names.txt @@ -0,0 +1,4 @@ +fibonacci +Fibonacci +jnonino +Liskov diff --git a/.github/workflows/scripts/cspell-config-en.json b/.github/workflows/scripts/cspell-config-en.json deleted file mode 100644 index ad3e0bd..0000000 --- a/.github/workflows/scripts/cspell-config-en.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "dictionaries": [ - "custom-words-common", - "custom-words-en" - ], - "dictionaryDefinitions": [ - { - "addWords": true, - "name": "custom-words-common", - "path": "./cspell-custom-words-common.txt" - }, - { - "addWords": true, - "name": "custom-words-en", - "path": "./cspell-custom-words-en.txt" - } - ], - "ignoreRegExpList": [ - "\\`([^\\`].*?)\\`", - "\\{%.*%\\}", - "/^\\s*```[\\s\\S]*?^\\s*```/gm" - ], - "ignoreWords": [], - "imports": [ - "@cspell/dict-aws/cspell-ext.json", - "@cspell/dict-bash/cspell-ext.json", - "@cspell/dict-companies/cspell-ext.json", - "@cspell/dict-data-science/cspell-ext.json", - "@cspell/dict-docker/cspell-ext.json", - "@cspell/dict-en-gb/cspell-ext.json", - "@cspell/dict-en-common-misspellings/cspell-ext.json", - "@cspell/dict-es-es/cspell-ext.json", - "@cspell/dict-git/cspell-ext.json", - "@cspell/dict-google/cspell-ext.json", - "@cspell/dict-golang/cspell-ext.json", - "@cspell/dict-lorem-ipsum/cspell-ext.json", - "@cspell/dict-makefile/cspell-ext.json", - "@cspell/dict-python/cspell-ext.json", - "@cspell/dict-shell/cspell-ext.json", - "@cspell/dict-software-terms/cspell-ext.json", - "@cspell/dict-terraform/cspell-ext.json" - ], - "language": "en-GB", - "words": [] -} diff --git a/.github/workflows/scripts/cspell-config-es.json b/.github/workflows/scripts/cspell-config-es.json deleted file mode 100644 index 29561db..0000000 --- a/.github/workflows/scripts/cspell-config-es.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "dictionaries": [ - "custom-words-common", - "custom-words-en" - ], - "dictionaryDefinitions": [ - { - "addWords": true, - "name": "custom-words-common", - "path": "./cspell-custom-words-common.txt" - }, - { - "addWords": true, - "name": "custom-words-en", - "path": "./cspell-custom-words-en.txt" - } - ], - "ignoreRegExpList": [ - "\\((.*)\\)", - "```[a-z]*\n[\\s\\S]*?\n```", - "\\`([^\\`].*?)\\`", - "\\{%.*%\\}", - "/^\\s*```[\\s\\S]*?^\\s*```/gm", - "^---[\\s\\S]*?---$" - ], - "ignoreWords": [], - "imports": [ - "@cspell/dict-aws/cspell-ext.json", - "@cspell/dict-bash/cspell-ext.json", - "@cspell/dict-companies/cspell-ext.json", - "@cspell/dict-data-science/cspell-ext.json", - "@cspell/dict-docker/cspell-ext.json", - "@cspell/dict-en-gb/cspell-ext.json", - "@cspell/dict-en-common-misspellings/cspell-ext.json", - "@cspell/dict-es-es/cspell-ext.json", - "@cspell/dict-git/cspell-ext.json", - "@cspell/dict-google/cspell-ext.json", - "@cspell/dict-golang/cspell-ext.json", - "@cspell/dict-lorem-ipsum/cspell-ext.json", - "@cspell/dict-makefile/cspell-ext.json", - "@cspell/dict-python/cspell-ext.json", - "@cspell/dict-shell/cspell-ext.json", - "@cspell/dict-software-terms/cspell-ext.json", - "@cspell/dict-terraform/cspell-ext.json" - ], - "language": "es-es", - "words": [] -} diff --git a/Taskfile.yml b/Taskfile.yml index 078216c..0f2471c 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -26,8 +26,7 @@ tasks: spell-check: desc: Run spell check on markdown files cmds: - - cspell --config .github/workflows/scripts/cspell-config-en.json "content/**/*.en.md" - # - cspell --config .github/workflows/scripts/cspell-config-es.json "content/**/*.es.md" + - cspell --config .config/cspell.yaml "content/**/*.md" clean: desc: Delete the generated artifacts for this project. From 57f0848df5932419e6629a644783e53a3811a83e Mon Sep 17 00:00:00 2001 From: Julian Nonino Date: Wed, 11 Mar 2026 23:32:15 +0000 Subject: [PATCH 2/2] Update Cspell configuration --- .config/cspell.yaml | 6 +- .config/custom-dict-names.txt | 151 ++++++++++++++++++ .config/custom-dict-words.txt | 40 +++++ content/ai/math/algebra/vectors/index.es.md | 4 +- content/blog/k8s-services/index.es.md | 4 +- .../programming/data-structures/_index.en.md | 4 +- .../data-structures/stacks/index.es.md | 2 +- .../intro/boolean-logic/index.es.md | 2 +- content/programming/oop/_index.es.md | 2 +- .../oop/classes-objects/index.es.md | 4 +- .../programming/oop/four-pillars/_index.en.md | 2 +- .../oop/four-pillars/abstraction/index.es.md | 2 +- .../four-pillars/encapsulation/index.es.md | 2 +- .../oop/four-pillars/polymorphism/index.es.md | 8 +- .../io-operations/index.es.md | 2 +- .../sdlc/sdlc-deployment.en.md | 0 .../sdlc/sdlc-implementation.en.md | 0 .../sdlc/sdlc-introduction.en.md | 0 .../sdlc/sdlc-maintenance.en.md | 0 .../sdlc/sdlc-planning.en.md | 0 .../sdlc/sdlc-system-design.en.md | 0 .../sdlc/sdlc-testing.en.md | 0 22 files changed, 213 insertions(+), 22 deletions(-) create mode 100644 .config/custom-dict-words.txt rename {content => future}/software-engineering/sdlc/sdlc-deployment.en.md (100%) rename {content => future}/software-engineering/sdlc/sdlc-implementation.en.md (100%) rename {content => future}/software-engineering/sdlc/sdlc-introduction.en.md (100%) rename {content => future}/software-engineering/sdlc/sdlc-maintenance.en.md (100%) rename {content => future}/software-engineering/sdlc/sdlc-planning.en.md (100%) rename {content => future}/software-engineering/sdlc/sdlc-system-design.en.md (100%) rename {content => future}/software-engineering/sdlc/sdlc-testing.en.md (100%) diff --git a/.config/cspell.yaml b/.config/cspell.yaml index 16fee56..3babf55 100644 --- a/.config/cspell.yaml +++ b/.config/cspell.yaml @@ -49,7 +49,7 @@ dictionaries: - web-services - custom-dict-acronyms - custom-dict-names - # - tesis-palabras + - custom-dict-words ignorePaths: [] @@ -69,5 +69,5 @@ dictionaryDefinitions: path: "./custom-dict-acronyms.txt" - name: custom-dict-names path: "./custom-dict-names.txt" -# - name: tesis-palabras -# path: "./cspell-diccionario-palabras.txt" + - name: custom-dict-words + path: "./custom-dict-words.txt" diff --git a/.config/custom-dict-names.txt b/.config/custom-dict-names.txt index 932020c..6fba26a 100644 --- a/.config/custom-dict-names.txt +++ b/.config/custom-dict-names.txt @@ -2,3 +2,154 @@ fibonacci Fibonacci jnonino Liskov + + + +Aguilar +Alahyari +AMACOM +Apress +Arie +Artech + +Badgett +Basili +Beedle +Bennekum +bmatrix +Boehm +Boersma +Booch +Brookshear + +Chacon +Charette +Christel +Codecademy +codeimporter +Coghlan +Cormen + +Deitel + +Easterbrook +elif +Eloranta +Erlikh +ESEM +Euromicro + +Fewster +franca + +Gagne +Grenning +Grinberg + +Hannes +Hapke +Harvill +Hennessy +hextra +Highsmith +Hiva +Holmstrom + +Ifrah +infty +Itkonen + +Jalote +Jaskiel +jnonino +Jouni +Joyanes +Juha + +Kaner +Kazman +Kerzner +Kimmo +Krivy + +Laplante +Leanpub +Leiserson +Leppanen +Lianping +Liraz +Liskov + +Maberly +Makinen +Mannisto +Mantyla +Marick +Markku +Markkula +Marko +mathbb +mathbf +Matthes +Matyas +Mika +Mikolov +Moroney + +Nonino +Numpy +Nuseibeh +NXOR + +Oivo +Olsson +OOPSLA +Oram + +Packt +Pagels +Parnas +Pekka +Pfleeger +Pilar +pmatrix +Pulkkinen +Pylint +pytest + +Raoul +Rashka +Replit +Rossum +Rumbaugh + +Sams +Schwaber +SDLC +Sebesta +sectioncards +Siewiorek +Silberschatz +Simo +Siri +Sommerville +Stolt +Straub +Swarz + +Turula + +UMAP + +Veli +Vlissides + +WESCON +Wiegers +wsgi + +XNOR + +Yourdon + +Zelkowitz diff --git a/.config/custom-dict-words.txt b/.config/custom-dict-words.txt new file mode 100644 index 0000000..ac2af8c --- /dev/null +++ b/.config/custom-dict-words.txt @@ -0,0 +1,40 @@ +aprendé +autocompletado +bayesianos +contrastivo +convolucionales +dejá +descripto +dimensionalidad +encapsulamiento +entrá +explainability +explicabilidad +extensibilidad +geométricamente +icónico +inicializador +interpretabilidad +iteradores +mapeos +mensurablemente +modularidad +multinivel +ocultamiento +operandos +pensás +podés +recordá +recursión +recursivamente +redirecciona +regulariser +renormalizando +reusabilidad +rotarla +semánticamente +sidelining +tenés +tipado +tipados +tokenización diff --git a/content/ai/math/algebra/vectors/index.es.md b/content/ai/math/algebra/vectors/index.es.md index 5bc8fe8..651eb19 100644 --- a/content/ai/math/algebra/vectors/index.es.md +++ b/content/ai/math/algebra/vectors/index.es.md @@ -153,7 +153,7 @@ $$ $$ {{< callout type="info" >}} -En términos simples: eleva al cuadrado cada componente, sumalos y saca la raíz. Es exactamente el teorema de Pitágoras generalizado a \(n\) dimensiones. +En términos simples: se eleva al cuadrado cada componente, se suman y luego se calcula la raíz. Es exactamente el teorema de Pitágoras generalizado a \(n\) dimensiones. {{< /callout >}} La familia general es la **norma \(L^p\)**: @@ -360,7 +360,7 @@ Los vectores no son un concepto preliminar del que te graduarás, son la *lingua **Generación Aumentada con Recuperación (RAG) y bases de datos vectoriales**. Con la explosión de los LLMs, una dirección clave de investigación aplicada es la búsqueda eficiente del vecino más cercano sobre miles de millones de vectores. En el artículo [*Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks*](https://proceedings.neurips.cc/paper/2020/hash/6b493230205f780e1bc26945df7481e5-Abstract.html), Lewis et al. demostraron que aumentar la generación con documentos recuperados mejora dramáticamente la precisión factual. El paso de recuperación completo es una búsqueda por similitud coseno, exactamente la fórmula que vimos antes. -**Dimensionalidad**. La geometría de los espacios de alta dimensión es profundamente contraintuitiva, un fenómeno conocido como la *maldición de la dimensionalidad*. En dimensiones muy altas, casi todos los pares de vectores se vuelven casi ortogonales (\(\cos\theta \approx 0\)), lo que puede degradar la similitud coseno como métrica significativa. Entender *cuándo* falla la similitud coseno y qué alternativas geométricas existen ([espacios hiperbólicos](https://es.wikipedia.org/wiki/Espacio_hiperb%C3%B3lico), [variedades de Riemann](https://es.wikipedia.org/wiki/Variedad_de_Riemann)) es un área de investigación activa. Si esto te interesa, [*Poincaré Embeddings*](https://arxiv.org/abs/1705.08039) es un excelente punto de entrada. +**Dimensionalidad**. La geometría de los espacios de alta dimensión es profundamente contraria a la intuición, un fenómeno conocido como la *maldición de la dimensionalidad*. En dimensiones muy altas, casi todos los pares de vectores se vuelven casi ortogonales (\(\cos\theta \approx 0\)), lo que puede degradar la similitud coseno como métrica significativa. Entender *cuándo* falla la similitud coseno y qué alternativas geométricas existen ([espacios hiperbólicos](https://es.wikipedia.org/wiki/Espacio_hiperb%C3%B3lico), [variedades de Riemann](https://es.wikipedia.org/wiki/Variedad_de_Riemann)) es un área de investigación activa. Si esto te interesa, [*Poincaré Embeddings*](https://arxiv.org/abs/1705.08039) es un excelente punto de entrada. ## Errores comunes y depuración diff --git a/content/blog/k8s-services/index.es.md b/content/blog/k8s-services/index.es.md index 35eac5f..ee5bf66 100644 --- a/content/blog/k8s-services/index.es.md +++ b/content/blog/k8s-services/index.es.md @@ -14,7 +14,7 @@ Luego de desplegar una aplicación en Kubernetes, independientemente del método Al desplegar una aplicación en Kubernetes utilizando un objeto del tipo `Deployment`, los pods pertenecientes a dicho Deployment pueden ser creados y destruidos en cualquier momento en base a su funcionamiento, por ejemplo si en nuestro Deployment pedimos que existan 3 réplicas y por cualquier razón alguna de ellas deja de funcionar, una nueva réplica será creada automáticamente para reemplazar a la que falló. -Cada pod tiene su propia dirección IP dentro del cluster. En general, las demás aplicaciones que necesitan interactuar con nuestra aplicación desconocen el nombre de cada una de sus replicas, su estado y su dirección IP para iniciar una comunicación. Kubernetes nos provee el objeto `Service` como una forma nativa de `Service Discovery` sin que necesitemos hacer cambios en nuestra aplicación o en las que necesitan comunicarse con ella. Entonces, el fin para el cual creamos un servicio es para exponer una aplicación que puede estar constituida por múltiples pods a traves de un único punto de acceso. De esta manera otras aplicación contactaran al `Service` y este redirigirá la comunicación a alguno de los pods de nuestra aplicación. +Cada pod tiene su propia dirección IP dentro del cluster. En general, las demás aplicaciones que necesitan interactuar con nuestra aplicación desconocen el nombre de cada una de sus replicas, su estado y su dirección IP para iniciar una comunicación. Kubernetes nos provee el objeto `Service` como una forma nativa de `Service Discovery` sin que necesitemos hacer cambios en nuestra aplicación o en las que necesitan comunicarse con ella. Entonces, el fin para el cual creamos un servicio es para exponer una aplicación que puede estar constituida por múltiples pods a través de un único punto de acceso. De esta manera otras aplicación contactaran al `Service` y este redirigirá la comunicación a alguno de los pods de nuestra aplicación. !["Pods detrás de un servicio en Kubernetes"](images/k8s_services.png) *"Pods detrás de un servicio en Kubernetes"* @@ -91,7 +91,7 @@ Este tipo de servicio, permite un rápido acceso desde el exterior sin necesidad ### LoadBalancer -En proveedores de servicios en la nube que soporten `load balancers` como _Amazon Web Services_, _Google Cloud Platform_ o _Microsoft Azure_, crear un servicio de este tipo dispara la creación de un load balancer externo en la platform de nube utilizada. La creación ocurre de manera asíncrona e información sobre su estado es publicada en el estado del servicio (_.status.loadbalancer_). +En proveedores de servicios en la nube que soporten `load balancers` como _Amazon Web Services_, _Google Cloud Platform_ o _Microsoft Azure_, crear un servicio de este tipo dispara la creación de un load balancer externo en la platform de nube utilizada. La creación ocurre de manera asíncrona e información sobre su estado es publicada en el estado del servicio (`_.status.loadbalancer_`). El proveedor de servicios en la nube decide como se balancea la carga. diff --git a/content/programming/data-structures/_index.en.md b/content/programming/data-structures/_index.en.md index d3b46ca..f5eb48e 100644 --- a/content/programming/data-structures/_index.en.md +++ b/content/programming/data-structures/_index.en.md @@ -48,8 +48,8 @@ There are many types of data structures. Below are some useful categories to cla - *Lists*: Easy to insert/delete anywhere but sequential access is slow. - *Stacks*: LIFO (Last In First Out) access. Useful for undo/redo. - *Queues*: FIFO (First In First Out) access. Useful for event processing. -- *Trees*: Allow modeling hierarchical relationships like file directories or task dependencies. -- *Graphs*: Allow modeling interconnectivity networks like maps, social relationships, etc. +- *Trees*: Allow modelling hierarchical relationships like file directories or task dependencies. +- *Graphs*: Allow modelling interconnectivity networks like maps, social relationships, etc. - *Hashes / Dictionaries*: Associate elements with unique keys for ultra fast access. This classification is not exhaustive but gives an idea of the diversity of data structures and their different properties that allow us to efficiently model complex problems. diff --git a/content/programming/data-structures/stacks/index.es.md b/content/programming/data-structures/stacks/index.es.md index 5188ef1..ca33ccc 100644 --- a/content/programming/data-structures/stacks/index.es.md +++ b/content/programming/data-structures/stacks/index.es.md @@ -48,7 +48,7 @@ Las pilas tienen muchos usos en programación: - **Ejecución de expresiones matemáticas**: mediante una pila se puede verificar paréntesis, corchetes, llaves, etc. -- **Algoritmos y estructuras de datos**: como en el algoritmo quicksort y en la implementación de buses de datos (datapaths). +- **Algoritmos y estructuras de datos**: como en el algoritmo quicksort y en la implementación de buses de datos (data paths). ## Conclusión diff --git a/content/programming/intro/boolean-logic/index.es.md b/content/programming/intro/boolean-logic/index.es.md index 936fc26..0fc6b7c 100644 --- a/content/programming/intro/boolean-logic/index.es.md +++ b/content/programming/intro/boolean-logic/index.es.md @@ -34,7 +34,7 @@ Dentro de la lógica booleana, existen operaciones fundamentales que permiten ma ## La importancia de esta lógica en computación y programación -La computación moderna, en su esencia, es la manipulación de bits, esos unos y ceros que mencionamos. Cada operación que realiza una computadora, desde simples cálculos hasta la renderización de gráficos complejos, implica operaciones booleanas en algún nivel. +La computación moderna, en su esencia, es la manipulación de bits, esos unos y ceros que mencionamos. Cada operación que realiza una computadora, desde simples cálculos hasta la representación visual (*render*) de gráficos complejos, implica operaciones booleanas en algún nivel. En programación, la lógica booleana se utiliza en estructuras de control, como condiciones (if, else) y bucles, permitiendo a los programas tomar decisiones basadas en ciertas condiciones. diff --git a/content/programming/oop/_index.es.md b/content/programming/oop/_index.es.md index 450ba5a..3dc7cda 100644 --- a/content/programming/oop/_index.es.md +++ b/content/programming/oop/_index.es.md @@ -30,7 +30,7 @@ Secuencia ordenada de instrucciones que el programa debe seguir paso a paso. El La programación procedural es mejor para: - Problemas sencillos o algoritmos secuenciales. -- Código que no necesitará reusarse ni expandirse mucho. +- Código que no necesitará ser reutilizado ni expandirse mucho. - Casos donde el rendimiento y eficiencia son críticos. ### Programación orientada a objetos diff --git a/content/programming/oop/classes-objects/index.es.md b/content/programming/oop/classes-objects/index.es.md index cd1e9a3..f9a9d9a 100644 --- a/content/programming/oop/classes-objects/index.es.md +++ b/content/programming/oop/classes-objects/index.es.md @@ -27,7 +27,7 @@ class Persona: **Métodos**: Funciones que definen comportamientos. Por ejemplo, una `Persona` puede `caminar()`, `hablar()`, `comer()`, etc. Acceden a los atributos para implementar dicha funcionalidad. -**Constructor**: Método especial `__init__()` que se ejecuta al instanciar la clase y permite inicializar los atributos. +**Constructor**: Método especial `__init__()` que se ejecuta al generar un objeto a partir de la clase y permite inicializar los atributos. **Destructor**: Método `__del__()` que se ejecuta al eliminar la instancia liberando recursos. Opcional en algunos lenguajes. @@ -85,7 +85,7 @@ El objeto pepe tiene ahora **estado** (propiedades) y **comportamiento** (métod Un detalle importante en los métodos es cómo acceden a los atributos y otros métodos del objeto. Aquí entra otra diferencia entre lenguajes: -- **Self**: En Python, los atributos y métodos se acceden dentro de la clase anteponiendo `self`. Esto apunta al objeto instanciado. +- **Self**: En Python, los atributos y métodos se acceden dentro de la clase anteponiendo `self`. Esto apunta al objeto creado. ```python class Persona: diff --git a/content/programming/oop/four-pillars/_index.en.md b/content/programming/oop/four-pillars/_index.en.md index ab8e04c..3fe80e4 100644 --- a/content/programming/oop/four-pillars/_index.en.md +++ b/content/programming/oop/four-pillars/_index.en.md @@ -15,7 +15,7 @@ At the heart of OOP lie four fundamental concepts: Encapsulation, Inheritance, P - **Polymorphism** provides a way to use objects of different types through a common interface, enhancing flexibility and extensibility. - **Abstraction** allows us to create simplified models of complex systems, focusing on essential features and hiding unnecessary details. -As you continue your journey in software development, you'll find that mastering these concepts opens up new ways of thinking about and solving problems. Remember that OOP is not just about syntax or language features, it's a mindset for modeling complex systems and managing complexity in software. +As you continue your journey in software development, you'll find that mastering these concepts opens up new ways of thinking about and solving problems. Remember that OOP is not just about syntax or language features, it's a mindset for modelling complex systems and managing complexity in software. ## Learn more diff --git a/content/programming/oop/four-pillars/abstraction/index.es.md b/content/programming/oop/four-pillars/abstraction/index.es.md index 1b1e7b5..db70955 100644 --- a/content/programming/oop/four-pillars/abstraction/index.es.md +++ b/content/programming/oop/four-pillars/abstraction/index.es.md @@ -69,7 +69,7 @@ for figura in figuras: En este ejemplo: - `Figura` es una clase base abstracta que define la interfaz para todas las figuras. - `Rectangulo` y `Circulo` son clases concretas que implementan la interfaz `Figura`. -- No podemos instanciar `Figura` directamente, pero podemos usarla como un tipo común para todas las figuras. +- No podemos crear un objecto a partir de la clase `Figura` directamente, pero podemos usarla como un tipo común para todas las figuras. ### Implementando abstracción en Python diff --git a/content/programming/oop/four-pillars/encapsulation/index.es.md b/content/programming/oop/four-pillars/encapsulation/index.es.md index 7266088..aab9b13 100644 --- a/content/programming/oop/four-pillars/encapsulation/index.es.md +++ b/content/programming/oop/four-pillars/encapsulation/index.es.md @@ -109,7 +109,7 @@ En este ejemplo: Los beneficios del encapsulamiento son numerosos: -1. **Mejora de la mantenibilidad**: Los cambios en la implementación interna no afectan al código externo que utiliza la clase. +1. **Mejora de la capacidad de mantenimiento**: Los cambios en la implementación interna no afectan al código externo que utiliza la clase. 2. **Mayor seguridad**: Los atributos privados no pueden ser modificados accidentalmente desde fuera de la clase. 3. **Flexibilidad en la implementación**: Puedes cambiar cómo se almacenan o calculan los datos sin cambiar la interfaz pública. 4. **Mejor abstracción**: Los usuarios de la clase no necesitan conocer su funcionamiento interno. diff --git a/content/programming/oop/four-pillars/polymorphism/index.es.md b/content/programming/oop/four-pillars/polymorphism/index.es.md index 6e274ac..3254423 100644 --- a/content/programming/oop/four-pillars/polymorphism/index.es.md +++ b/content/programming/oop/four-pillars/polymorphism/index.es.md @@ -19,7 +19,7 @@ Existen dos tipos principales de polimorfismo en la programación orientada a ob - Se resuelve en tiempo de compilación. 2. **Polimorfismo en tiempo de ejecución (Polimorfismo dinámico)** - - Se logra a través de la *sobrescritura* de métodos. + - Se logra a través de *sobrescribir* de métodos. - Se resuelve en tiempo de ejecución. Python admite principalmente el polimorfismo en tiempo de ejecución, ya que es un lenguaje de tipado dinámico. Sin embargo, podemos demostrar conceptos similares al polimorfismo en tiempo de compilación también. @@ -58,9 +58,9 @@ print(sonido_animal(gato)) # Salida: ¡Miau miau! En este ejemplo, `sonido_animal()` funciona con cualquier objeto que tenga un método `hablar()`, independientemente de su clase. -### Sobrescritura de métodos +### Sobrescribir métodos -La sobrescritura de métodos es un aspecto clave del polimorfismo en tiempo de ejecución. Ocurre cuando una clase derivada define un método con el mismo nombre que un método en su clase base. +Sobrescribir métodos es un aspecto clave del polimorfismo en tiempo de ejecución. Ocurre cuando una clase derivada define un método con el mismo nombre que un método en su clase base. ```python class Figura: @@ -155,7 +155,7 @@ print(sonido_animal(gato)) # Salida: ¡Miau! # animal = Animal() ``` -Las clases base abstractas no pueden ser instanciadas y obligan a las clases derivadas a implementar ciertos métodos, asegurando una interfaz consistente. +Las clases base abstractas no pueden utilizarse para crear objetos y obligan a las clases derivadas a implementar ciertos métodos, asegurando una interfaz consistente. ### Aplicaciones en el mundo real diff --git a/content/programming/starting-concepts/io-operations/index.es.md b/content/programming/starting-concepts/io-operations/index.es.md index 27c0dc8..a14fb5b 100644 --- a/content/programming/starting-concepts/io-operations/index.es.md +++ b/content/programming/starting-concepts/io-operations/index.es.md @@ -86,7 +86,7 @@ pi = float(input("Ingresa el valor de pi: ")) #### Leyendo múltiples valores -Podemos pedir y leer varios valores en una misma línea separándolos con comas: +Podemos pedir y leer varios valores en una misma línea si los separamos con comas: ```python nombre, edad = input("Ingresa nombre y edad: ").split() diff --git a/content/software-engineering/sdlc/sdlc-deployment.en.md b/future/software-engineering/sdlc/sdlc-deployment.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-deployment.en.md rename to future/software-engineering/sdlc/sdlc-deployment.en.md diff --git a/content/software-engineering/sdlc/sdlc-implementation.en.md b/future/software-engineering/sdlc/sdlc-implementation.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-implementation.en.md rename to future/software-engineering/sdlc/sdlc-implementation.en.md diff --git a/content/software-engineering/sdlc/sdlc-introduction.en.md b/future/software-engineering/sdlc/sdlc-introduction.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-introduction.en.md rename to future/software-engineering/sdlc/sdlc-introduction.en.md diff --git a/content/software-engineering/sdlc/sdlc-maintenance.en.md b/future/software-engineering/sdlc/sdlc-maintenance.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-maintenance.en.md rename to future/software-engineering/sdlc/sdlc-maintenance.en.md diff --git a/content/software-engineering/sdlc/sdlc-planning.en.md b/future/software-engineering/sdlc/sdlc-planning.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-planning.en.md rename to future/software-engineering/sdlc/sdlc-planning.en.md diff --git a/content/software-engineering/sdlc/sdlc-system-design.en.md b/future/software-engineering/sdlc/sdlc-system-design.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-system-design.en.md rename to future/software-engineering/sdlc/sdlc-system-design.en.md diff --git a/content/software-engineering/sdlc/sdlc-testing.en.md b/future/software-engineering/sdlc/sdlc-testing.en.md similarity index 100% rename from content/software-engineering/sdlc/sdlc-testing.en.md rename to future/software-engineering/sdlc/sdlc-testing.en.md