Skip to content

Commit

Permalink
Merge branch 'master' into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
tommygonzaleza authored Apr 8, 2024
2 parents a08ba14 + 1cb5ba2 commit 9bc0d28
Show file tree
Hide file tree
Showing 19 changed files with 687 additions and 249 deletions.
Binary file added src/assets/images/nano_editor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 33 additions & 2 deletions src/content/how-to/what-is-python-used-for.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,42 @@ Este proceso de aprendizaje automático cuenta con varias librerías que hacen e

- TensorFlow
- Keras
- PyTorch
- PyTorch

### Python para Ciberseguridad

Python se utiliza ampliamente en la ciberseguridad debido a su simplicidad, versatilidad y extenso ecosistema de bibliotecas. Permite a los profesionales de la ciberseguridad automatizar tareas rutinarias, analizar datos de seguridad y desarrollar herramientas y sistemas para proteger los activos digitales. Aquí están algunos de los casos de uso más comunes de Python en ciberseguridad:

**Automatización de Tareas de Seguridad:** Los scripts de Python pueden automatizar tareas rutinarias como el escaneo de vulnerabilidades, el monitoreo del tráfico de red y el envío de alertas por actividades sospechosas. Esto reduce la carga de trabajo manual sobre los equipos de seguridad y aumenta la eficiencia de las operaciones de seguridad.

**Pruebas de Penetración:** Python se utiliza extensamente en pruebas de penetración para identificar vulnerabilidades en redes y aplicaciones. Se utiliza para desarrollar scripts y herramientas que simulan ataques cibernéticos para probar la fortaleza de los sistemas de seguridad. Bibliotecas como scapy para la manipulación de paquetes e Impacket para la creación y decodificación de protocolos de red son populares entre los probadores de penetración.

**Análisis Forense:** Python ayuda en investigaciones forenses digitales automatizando el análisis de archivos, logs y restos de datos para descubrir evidencia de ataques cibernéticos o actividades maliciosas. Bibliotecas como Volatility para análisis de memoria y pytsk3 para acceder a imágenes de disco son comúnmente utilizadas en aplicaciones forenses.

**Desarrollo de Herramientas de Seguridad:** Python se utiliza a menudo para desarrollar herramientas de seguridad personalizadas, incluyendo sistemas de detección de intrusiones (IDS), escáneres de red y scripts de automatización de seguridad. La flexibilidad de Python permite el rápido desarrollo y despliegue de tales herramientas.

**Análisis de Malware:** Python soporta el análisis de malware, ayudando a los profesionales de la seguridad a entender el comportamiento del software malicioso. Herramientas desarrolladas en Python pueden automatizar el proceso de disección de malware, extrayendo sus características y entendiendo su impacto. Bibliotecas como pefile para analizar archivos PE y yara-python para la identificación y clasificación de malware son clave en este proceso.

**Análisis de Datos e Investigación de Seguridad:** Las poderosas bibliotecas de análisis de datos de Python, como pandas y NumPy, se utilizan para procesar y analizar grandes conjuntos de datos de eventos y logs de seguridad. Este análisis ayuda a identificar patrones, anomalías y tendencias en las amenazas cibernéticas.

**Scrapping Web para Inteligencia de Amenazas:** Las bibliotecas de Python como BeautifulSoup y Scrapy pueden utilizarse para rastrear la web en busca de datos de inteligencia de amenazas. Esto incluye recopilar información sobre nuevas vulnerabilidades, tácticas de actores de amenazas e indicadores de compromiso (IoCs).

**Criptografía y Encriptación:** Python soporta diversas operaciones criptográficas, lo que hace posible desarrollar canales de comunicación seguros, encriptar información sensible y asegurar la integridad de los datos. Bibliotecas como cryptography y PyCrypto proporcionan implementaciones de algoritmos y protocolos criptográficos.

**Bibliotecas y Herramientas Populares:**

- Scapy: Para la manipulación de paquetes y el descubrimiento de redes.
- Impacket: Para trabajar con protocolos de red.
- Volatility: Para el análisis de memoria forense.
- Wireshark: Aunque no es una biblioteca, Python puede utilizarse para automatizar tareas en Wireshark para el análisis de paquetes.
- BeautifulSoup y Scrapy: Para el scrapping web.
- Cryptography y PyCrypto: Para funciones criptográficas.
- Pandas y NumPy: Para el análisis de datos.
- Yara-python: Para la identificación de malware.

### Python para Data Science

En los ultimpos años ha aumentando el uso de [Python para Data Science](https://4geeks.com/es/lesson/datascience-con-python) y se ha convertido en uno de los principales lenguajes para la visualización y tratamientos de datos actualmente lo cual era de esperar. Py posee librerías extremadamente potentes que permiten generar representaciones visuales como pueden ser los siguientes:
En los últimos años ha aumentando el uso de [Python para Data Science](https://4geeks.com/es/lesson/datascience-con-python) y se ha convertido en uno de los principales lenguajes para la visualización y tratamientos de datos actualmente lo cual era de esperar. Py posee librerías extremadamente potentes que permiten generar representaciones visuales como pueden ser los siguientes:

- Líneas, barras y marcadores.
- Subgráficos y ejes.
Expand Down
34 changes: 33 additions & 1 deletion src/content/how-to/what-is-python-used-for.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,39 @@ This machine learning process has several libraries that make the job much easie

- TensorFlow
- Keras
- PyTorch
- PyTorch

### Python for Cybersecurity


Python is widely used in cybersecurity due to its simplicity, versatility, and extensive library ecosystem. It enables cybersecurity professionals to automate routine tasks, analyze security data, and develop tools and systems for securing digital assets. Here are some of the most common use cases of Python in cybersecurity:

**Automation of Security Tasks:** Python scripts can automate routine tasks such as scanning for vulnerabilities, monitoring network traffic, and sending alerts for suspicious activities. This reduces the manual workload on security teams and increases the efficiency of security operations.

**Penetration Testing:** Python is extensively used in penetration testing to identify vulnerabilities in networks and applications. It's used to develop scripts and tools that simulate cyber attacks to test the strength of security systems. Libraries like scapy for packet manipulation and Impacket for crafting and decoding network protocols are popular among penetration testers.

**Forensic Analysis:** Python aids in digital forensic investigations by automating the analysis of files, logs, and data remnants to uncover evidence of cyber attacks or malicious activities. Libraries like Volatility for memory analysis and pytsk3 for accessing disk images are commonly used in forensic applications.

**Development of Security Tools:** Python is often used to develop custom security tools, including intrusion detection systems (IDS), network scanners, and security automation scripts. The flexibility of Python allows for the quick development and deployment of such tools.

**Malware Analysis:** Python supports malware analysis, helping security professionals understand the behavior of malicious software. Tools developed in Python can automate the process of dissecting malware, extracting its characteristics, and understanding its impact. Libraries such as pefile for analyzing PE files and yara-python for malware identification and classification are key to this process.

**Data Analysis and Security Research:** Python's powerful data analysis libraries, such as pandas and NumPy, are used to process and analyze large datasets of security events and logs. This analysis helps in identifying patterns, anomalies, and trends in cyber threats.

**Web Scrapping for Threat Intelligence:** Python's libraries like BeautifulSoup and Scrapy can be used to scrape the web for threat intelligence data. This includes gathering information on new vulnerabilities, threat actor tactics, and indicators of compromise (IoCs).

**Cryptography and Encryption:** Python supports various cryptographic operations, making it possible to develop secure communication channels, encrypt sensitive information, and ensure data integrity. Libraries like cryptography and PyCrypto provide implementations of cryptographic algorithms and protocols.

Popular Libraries and Tools in Python for Cybersecurity:

- Scapy: For packet manipulation and network discovery.
- Impacket: For working with network protocols.
- Volatility: For forensic memory analysis.
- Wireshark: Although not a library, Python can be used to automate tasks in Wireshark for packet analysis.
- BeautifulSoup and Scrapy: For web scraping.
- cryptography and PyCrypto: For cryptographic functions.
- pandas and NumPy: For data analysis.
- yara-python: For malware identification.

### Python for Data Science

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
slug: "todo-lo-necesario-para-empezar-usar-sqlalchemy"
title: "Todo lo que necesitas saber sobre SQLAlchemy"
subtitle: "SQLAlchemy es el ORM más popular para Python, comience a usarlo en 8 minutos"
subtitle: "SQLAlchemy es el ORM más popular para Python, comience a usarlo en 8 minutos."
cover_local: "../../assets/images/e16d59ad-4c11-4ca0-8bfc-5a9d147c6c2e.jpeg"
date: "2023-06-22T19:44:22+00:00"
textColor: "white"
Expand Down Expand Up @@ -41,7 +41,7 @@ user.last_name = "Ross"
# Agrega el user a la base de datos
db.session.add(user)

# Parecido al commit de GIT, lo que hace esta función es guardar todos los cambios que hayas hecho
# Parecido al commit de Git, lo que hace esta función es guardar todos los cambios que hayas hecho
db.session.commit()
```

Expand Down Expand Up @@ -69,7 +69,8 @@ El primer paso sería definir nuestro modelo:
```py
class Person(Base):
__tablename__ = "person"
# Aquí definimos el nombre de la tabla 'Person'

# Aquí definimos el nombre de la tabla "Person"
# Ten en cuenta que cada columna es también un atributo normal de primera instancia de Python.
id = Column(Integer, primary_key = True)
name = Column(String(250), nullable = False)
Expand Down Expand Up @@ -105,7 +106,7 @@ Hay 3 formas para obtener información de la base de datos:
all_people = Person.query.all()
all_people = list(map(lambda x: x.serialize(), all_people))

# Obtener un único registro en función de su clave principal, que en este caso es el "id" de la persona (solo funciona con las primary key)
# Obtener un único registro en función de su clave principal, que en este caso es el "id" de la persona (solo funciona con las claves principales)
person = Person.query.get(3)

# Obtener un grupo de registros en función de una consulta, en este caso, el string "alex" en la columna "name"
Expand Down Expand Up @@ -139,7 +140,7 @@ Una transacción es una secuencia de operaciones (como INSERT, UPDATE, SELECT) r

Todas las transacciones deben asegurar 4 propiedades principales (conocidas como propiedades ACID): Atomicidad, Consistencia, Aislamiento y Durabilidad.

![Transactions](https://github.com/breatheco-de/content/blob/master/src/assets/images/tran-1.png?raw=true)
![Propiedades ACID](https://github.com/breatheco-de/content/blob/master/src/assets/images/tran-1.png?raw=true)

Una transacción termina con `COMMIT` o `ROLLBACK`.

Expand All @@ -155,7 +156,7 @@ Sin embargo, cuando usas el comando COMMIT los cambios en tu base de datos será

El comando `ROLLBACK` restaura tu base de datos hasta tu último COMMIT. También puedes usarlo con el comando SAVEPOINT para saltar a un punto que hayas guardado durante una transacción en curso.

Del mismo modo, si usas UPDATE para hacer cambios en tu base de datos, puedes deshacerlos usando el comando ROLLBACK pero solo si aún no has usado el comando COMMIT de esta forma:
Del mismo modo, si usas UPDATE para hacer cambios en tu base de datos, puedes deshacerlos usando el comando ROLLBACK, pero solo si aún no has usado el comando COMMIT de esta forma:

```py
db.session.rollback()
Expand Down
38 changes: 10 additions & 28 deletions src/content/lesson/everything-you-need-to-start-using-sqlalchemy.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
slug: "everything-you-need-to-start-using-sqlalchemy"
title: "Everything you need to know about SQLAlchemy"
subtitle: "SQLAlchemy is the most popular ORM for Python, start using it in 8min"
subtitle: "SQLAlchemy is the most popular ORM for Python, start using it in 8 min."
cover_local: "../../assets/images/e16d59ad-4c11-4ca0-8bfc-5a9d147c6c2e.jpeg"
date: "2023-06-22T19:44:22+00:00"
textColor: "white"
Expand All @@ -15,13 +15,13 @@ tags: ["SQL Alchemy","Python"]

SQL Alchemy is an [Object-Relational Mapper/Mapping-tool](https://en.wikipedia.org/wiki/Object-relational_mapping), or ORM: a library that developers use to create databases and manipulate their data without the need of knowing/using SQL.

There are other alternatives in Python like Peewee, and other languages have their own ORM's like PHP Eloquent or Java Hibernate.
There are other alternatives in Python, like Peewee, and other languages have their own ORMs like PHP Eloquent or Java Hibernate.

## Why use ORM?

ORM's have gained popularity because dealing with SQL language directly requires a lot of effort in many cases. The goal of any ORM is to simplify the maintenance of your data. This is done by creating ***objects*** to deal with database interactions.
ORMs have gained popularity because dealing with SQL language directly requires a lot of effort in many cases. The goal of any ORM is to simplify the maintenance of your data. This is done by creating ***objects*** to deal with database interactions.

With ORM's you won't have to type SQL again (95% of the time) and you will be able to work with objects.
With ORMs you won't have to type SQL again (95% of the time), and you will be able to work with objects.

### Example:

Expand All @@ -45,7 +45,7 @@ db.session.add(user)
db.session.commit()
```

Just use the `db.session.commit()` function and everything you have done with your code will be translated into SQL language code.
Just use the `db.session.commit()` function, and everything you have done with your code will be translated into SQL language code.

## Let's review the most typical database operations

Expand All @@ -69,7 +69,8 @@ The first step will be defining our model:
```py
class Person(Base):
__tablename__ = "person"
# Here we define columns for the table 'Person'

# Here we define columns for the table "Person"
# Notice that each column is also a normal Python instance attribute
id = Column(Integer, primary_key = True)
name = Column(String(250), nullable = False)
Expand All @@ -84,7 +85,7 @@ class Person(Base):

### INSERT: Inserting a record into the database

To insert a record in the database, it is first necessary to have the instance to be added. Then, add it to the database session and complete the action with a commit. The following code visualizes this functionality (replace `<username_value>` and `<email_value>` with the actual values you want to add):
To insert a record in the database, it is first necessary to have the instance added. Then, add it to the database session and complete the action with a commit. The following code visualizes this functionality (replace `<username_value>` and `<email_value>` with the actual values you want to add):

```py
person = Person(username = <username_value>, email = <email_value>)
Expand Down Expand Up @@ -139,15 +140,15 @@ A transaction is a sequence of operations (such as INSERT, UPDATE, SELECT) perfo

All transactions must ensure 4 main properties (known as ACID properties): Atomicity, Consistency, Isolation and Durability.

![Transactions](https://github.com/breatheco-de/content/blob/master/src/assets/images/tran-1.png?raw=true)
![ACID Properties](https://github.com/breatheco-de/content/blob/master/src/assets/images/tran-1.png?raw=true)

A transaction ends with `COMMIT` or `ROLLBACK`.

### COMMIT: session.commit()

The `COMMIT` command is used to permanently save the changes made in a transaction within the database.

When you use INSERT, UPDATE or DELETE, the changes made with these commands are not permanent, the changes made can be undone or, in other words, we can go back.
When you use INSERT, UPDATE or DELETE, the changes made with these commands are not permanent; the changes made can be undone or, in other words, we can go back.

However, when you use the COMMIT command, the changes in your database will be permanent.

Expand Down Expand Up @@ -231,22 +232,3 @@ Finally, our 'Pizza' looks like this:
![SQL Pizza model rollback](https://github.com/breatheco-de/content/blob/master/src/assets/images/sql-4.png?raw=true)

... I'm a bit hungry after reading this lesson!! Aren't you??



















4 changes: 2 additions & 2 deletions src/content/lesson/how-to-use-github-codespaces.es.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Las empresas modernas ya no permiten a los desarrolladores trabajar en sus computadoras locales; usan entornos de desarrollo en la nube. Codespaces es la propuesta de GitHub para entornos de desarrollo en la nube.

> **En palabras simples**: Codespaces es una tecnología que crea -en cuestión de segundos- computadoras y entornos de desarrollo en la nube, listos para ser usados por desarrolladores de software.
> **En palabras simples**: Codespaces es una tecnología que crea *en cuestión de segundos* computadoras y entornos de desarrollo en la nube, listos para ser usados por desarrolladores de software.
Al enseñar habilidades relacionadas con la programación, los entornos de desarrollo como Codespaces se han convertido en una de nuestras principales herramientas en 4Geeks. Como estudiante, se te anima a usar estos entornos, ya que acelerarán tu aprendizaje por lo menos en un orden de magnitud, eliminando toda la fricción que conlleva la configuración y permitiéndote enfocarte en tu código.

Expand All @@ -24,7 +24,7 @@ Con Codespaces, puedes abrir cualquier repositorio en un entorno de desarrollo e

GitHub llama a cada entorno de codificación un "codespace". Si comienzas a trabajar en un proyecto y creas una nueva computadora en la nube para trabajar en tu proyecto, esta nueva computadora será un "codespace".

> 💻 Cada codespace es una computadora -virtual-.
> 💻 Cada codespace es una computadora **virtual**.
- Tu lista de Codespaces (computadoras) actuales está aquí: [github.com/codespaces](https://github.com/codespaces). (Probablemente, esté vacío, ya que apenas estás aprendiendo sobre esto).
- La forma recomendada de crear un nuevo codespace es desde un repositorio de GitHub (si necesitas aprender qué es GitHub, piensa en él como una unidad de disco duro en línea de código, donde cada carpeta es uno de tus proyectos).
Expand Down
Loading

0 comments on commit 9bc0d28

Please sign in to comment.