La Normalización:
Es un proceso de diseño de bases de datos relacionales que aplica un conjunto de reglas para organizar los datos y reducir la redundancia. 
Su objetivo principal es evitar la duplicación de información, prevenir anomalías de inserción, actualización y eliminación, y garantizar la integridad de los datos mediante la creación de tablas más pequeñas y la definición de relaciones entre ellas. Se logra aplicando diferentes formas normales (como la Primera, Segunda y Tercera Forma Normal), que son etapas secuenciales para refinar la estructura de la base de datos.


Objetivos clave de la normalización
  • Reducir la redundancia de datos: Se evita almacenar la misma información en múltiples lugares, lo que simplifica las actualizaciones y el mantenimiento.
  • Prevenir anomalías: Se minimizan errores al insertar nuevos datos, actualizar registros existentes o eliminar información, ya que los datos relacionados se encuentran en un solo lugar.
  • Garantizar la integridad de los datos: Asegura la consistencia y exactitud de la información al relacionarla a través de claves.
Proceso y formas normales
La normalización se realiza a través de un proceso iterativo, aplicando reglas de forma secuencial. Las formas normales más comunes son: 
  1. Primera Forma Normal (1NF): Asegura que cada columna contenga valores atómicos (indivisibles) y que no haya grupos de columnas repetidos en una misma tabla.
  2. Segunda Forma Normal (2NF): Requiere que la tabla esté en 1NF y que todos los atributos no-clave dependan completamente de la clave primaria.
  3. Tercera Forma Normal (3NF): Requiere que la tabla esté en 2NF y que los atributos no-clave no dependan de forma transitiva de la clave primaria (es decir, un atributo no debe depender de otro atributo que no sea clave).
  4. Cuarta Forma Normal (4NF): La normalización a la cuarta forma normal (4FN) se enfoca en eliminar las dependencias multivalor no triviales, asegurando que cada tabla contenga una sola relación independiente entre sus atributos. Para lograr esto, si una tabla tiene múltiples relaciones independientes (como habilidades y lenguajes de un empleado), se divide la tabla en tablas separadas, manteniendo la integridad de los datos y reduciendo la redundancia.
¿Qué es una dependencia multivalor?
Una dependencia multivalor ocurre cuando una clave tiene valores múltiples para atributos que no están relacionados entre sí, pero que dependen de la misma clave.

Ejemplo: 
Una tabla de Empleado con las columnas ID_Empleado, Habilidad y Idioma. Un empleado puede tener múltiples habilidades y múltiples idiomas, pero las habilidades y los idiomas no están interrelacionados (por ejemplo, el hecho de que un empleado hable francés no afecta a su habilidad de programar en Python).

¿Cómo normalizar a 4FN?
  • Verificar la 3FN: Asegúrate de que la base de datos ya cumpla con la tercera forma normal (3FN).
  • Identificar dependencias multivalor: Busca tablas que representen más de una relación independiente. En el ejemplo anterior, la tabla Empleado tiene dos relaciones independientes: una entre empleado y habilidad, y otra entre empleado e idioma.
  • Crear tablas separadas: Si se detecta una dependencia multivalor, se deben crear tablas nuevas para cada relación independiente.La tabla original Empleado con ID_Empleado y Habilidad.
  • Una nueva tabla Empleado_Idioma con ID_Empleado e Idioma.
  • Nota: Esto solo aplica si no hay una interdependencia entre las columnas. Si una habilidad solo puede realizarse en un idioma específico, la relación no es independiente y la tabla original no violaría la 4FN.
  • Garantizar que cada tabla tenga una sola relación: El objetivo es que cada tabla represente un único tipo de relación independiente.
Beneficios de la 4FN
  • Elimina la redundancia: Evita repetir datos innecesariamente.
  • Previene anomalías: Reduce los problemas de inserción, actualización y eliminación de datos.
  • Mejora la integridad de los datos: Al tener menos redundancia, la probabilidad de inconsistencias disminuye.
Hola,
Sabian que en Postman existen funciones para diferentes temas, hoy les hablare de la función: $guid

En Postman, la función $guid se utiliza para generar automáticamente un identificador único universal (UUID). Para usarlo, simplemente escribe {{$guid}} en cualquier campo de la solicitud (URL, cuerpo, encabezados) para que Postman genere un nuevo UUID cada vez que se ejecute la solicitud.
Grafana es una plataforma de análisis y visualización de código abierto que permite a los usuarios monitorear y analizar métricas de diversas fuentes de datos a través de paneles interactivos y personalizables. Funciona conectándose a diferentes fuentes de datos (como bases de datos, servicios en la nube y sistemas de monitoreo), extrayendo información y transformándola en gráficos, paneles y alertas para facilitar la comprensión de tendencias y el rendimiento de aplicaciones e infraestructuras en tiempo real.


Cómo funciona:
  1. Conexión a fuentes de datos: Grafana se conecta a sus fuentes de datos existentes, como bases de datos de series temporales (ej: Prometheus, InfluxDB), servicios en la nube (ej: Azure, DynamoDB) o sistemas de registro (ej: Loki).
  2. Consulta y procesamiento de datos: Una vez conectado, Grafana puede consultar los datos. Utiliza plugins para interactuar con estas fuentes, y ofrece herramientas de transformación para manipular y combinar datos directamente en la plataforma.
  3. Visualización en paneles: Los datos se transforman en visualizaciones como histogramas, gráficos, mapas geográficos, etc. y se organizan en "paneles de control" interactivos y dinámicos.
  4. Generación de alertas: Se pueden configurar alertas para ser notificadas cuando una métrica supere un umbral definido. Las notificaciones pueden enviarse por correo electrónico, Slack u otros servicios.
  5. Análisis y colaboración: Los usuarios pueden explorar los datos para identificar tendencias, solucionar problemas o tomar decisiones informadas. Los paneles se pueden compartir fácilmente con otros miembros del equipo a través de enlaces o instantáneas.
Como buscar el log de un servicio en Grafana con loki?
Ingresar a Grafana -> Home -> Explore -> loki, en "Label filters" en el primer filtro se debe seleccionar la opción: 'namespace' y ahí colocar el namespace del servicio a buscar; luego agregar otro filtro y seleccionar la opción: 'app' y ahí colocar el nombre del servicio a buscar. Posteriormente, presionar el botón de buscar y listo.

Como buscar el log por rango de fecha y tiempo en un servicio?
Buscar la opción: 'Local browser time' la del icono del reloj, en la opción de: "Absolute time rage" en From (Fecha y hora de inicio) y To (Fecha y hora de finalización), luego presionar el botón: Apply time range y listo, el sistema buscar en el log del servicio en ese rango de fecha y hora.

Puedo exportar un log de un POD en Grafana?
Sí, puedes exportar logs de un POD en Grafana, pero para eso necesitas usar una integración con un sistema de gestión de logs como Loki. Grafana en sí mismo no maneja los logs, sino que los visualiza desde fuentes de datos como Loki, que está diseñado para almacenar y consultar logs.

Como hacerlo?
Despues de buscar el log del servicio, oprimir el botón: 'Query inspector' -> 'Data' y luego seleccionar, si se descarga en CSV o el txt: listo.


Un "servicio pass-through" es un servicio o función que permite la transferencia directa de datos, señales o materiales entre un sistema y otro, sin procesarlos ni modificarlos en el medio.


Este concepto se aplica en diversos ámbitos, desde la tecnología de diagnóstico automotriz (Pass-Thru) que conecta a talleres con servidores de fabricantes para actualizar software, hasta sistemas de transferencia de materiales en salas limpias (pass box), pasando por la funcionalidad de audio/video en equipos electrónicos y el impacto del tipo de cambio en la economía (efecto pass-through).

Ejemplos comunes de "servicio pass-through":
  • Diagnóstico automotriz (Pass-Thru): Las herramientas de diagnóstico permiten a los talleres descargar software y datos directamente de los fabricantes de vehículos para actualizar módulos, realizar diagnósticos precisos y programar componentes.
  • Sistemas de transferencia en salas limpias (Pass Box): Permiten el paso de materiales entre diferentes áreas controladas sin comprometer la esterilidad del ambiente, utilizando un sistema de puertas y enclavamientos para evitar la contaminación.
  • Audio y vídeo: Un procesador de audio o video puede tener una función pass-through que envía señales HDMI IN directamente al televisor conectado a HDMI OUT, incluso cuando el procesador está apagado.
  • Redes y finanzas: En el ámbito financiero, el efecto pass-through describe cómo las variaciones en el tipo de cambio (como el del dólar) se trasladan a los precios internos de la economía. En redes, un router puede usar el modo IP Pass Through para asignar directamente la dirección IP pública del proveedor a un dispositivo cliente.
  • Tecnología de Realidad Virtual (VR Pass-through): Las gafas de realidad virtual permiten ver el entorno físico exterior a través de sus cámaras, permitiendo al usuario interactuar con el mundo real sin quitarse el casco.
Hola,
Alguna vez se han preguntado cual es la diferencia entre API Gateway y Transit Gateway en AWS, pues yo si y aquí te explico:


API Gateway
  • Función: Es un servicio que actúa como puerta de entrada para exponer y gestionar APIs (REST, HTTP, WebSocket).
  • Uso: Se usa cuando querés que clientes (apps web, móviles, servicios externos) consuman tus APIs de forma segura y controlada.
Características:
  1. Maneja autenticación, autorización y seguridad (OAuth, IAM, API Keys).
  2. Hace rate limiting, throttling, logging, CORS.
  3. Se integra con Lambda, ECS, EC2, S3, DynamoDB, etc.
  4. Ideal para microservicios y arquitecturas serverless.
Ejemplo: 
Una app móvil que consume servicios de backend mediante un endpoint expuesto con API Gateway.

Transit Gateway
  • Función: Es un hub de red para interconectar VPCs y on-premises (via VPN o Direct Connect).
  • Uso: Se usa cuando tenés múltiples VPCs (en la misma región o distintas) y querés gestionarlas como una sola red centralizada.
Características:
  1. Simplifica la conectividad entre muchas VPCs (sin necesidad de hacer peering entre todas).
  2. Escalable y con mayor rendimiento que el peering clásico.
  3. Compatible con multicuenta y multirregión.
  4. Maneja el enrutamiento centralizado.
Ejemplo: 
Una empresa con varias VPCs (producción, pruebas, seguridad, analítica) que necesita conectarlas entre sí y también con el datacenter físico.

Resumen corto:
API Gateway → maneja tráfico de usuarios hacia tus APIs.
Transit Gateway → maneja tráfico de red entre tus VPCs/on-premises.
Hola,
En una cola de tipo topic en RabbitMQ, la routing key (clave de enrutamiento) es una cadena que se utiliza para determinar a qué colas se debe enrutar un mensaje. Esta cadena, compuesta por palabras separadas por puntos, permite definir patrones de enrutamiento complejos utilizando comodines como * (para una palabra) y # (para cero o más palabras).


Elaboración:

Intercambios (Exchanges) tipo Topic:
Los intercambios tipo topic son un tipo de exchange en RabbitMQ que permite un enrutamiento flexible basado en patrones de palabras clave en la routing key.

Clave de Enrutamiento (Routing Key):
El productor incluye una routing key en el mensaje, que actúa como una dirección para el intercambio.

Vinculaciones (Bindings):
Las colas se vinculan al exchange con patrones de vinculación (binding patterns) que pueden coincidir con la routing key del mensaje.

Comodines en las Vinculaciones:
Los patrones de vinculación pueden usar * (asterisco) para coincidir con una sola palabra y # (almohadilla) para coincidir con cero o más palabras, permitiendo un enrutamiento más flexible.

Ejemplo:
Si un mensaje tiene la routing key "news.sport.2024", y una cola tiene una vinculación con el patrón "news.#", el mensaje se enrutará a esa cola porque la vinculación coincide con la routing key.

En resumen:
La routing key y las vinculaciones con patrones en un exchange tipo topic permiten un control preciso de a qué colas se envían los mensajes, basándose en la estructura y el contenido de la routing key.


Hola,
Como se pueden descartar los cambios de clases a las cuales ya se les hizo COMMIT en GIT, pero aún no se les ha realizo el PUSH?


Se realiza de la siguiente forma:

Resetear el commit (rehacerlo sin esa clase)

git reset --soft HEAD~1

Esto revierte el último commit pero deja los archivos como estaban en staging, osea, mantiene los cambios para poderlos versionar nuevamente.

Hola,

Sabían que los humanos se clasifican internamente de acuerdo a sus generaciones y esto viene "clasificado" desde el año 1901, acompañamé en esta corta y efectiva explicación generacional.

Generación Grandiosa:

  • Nacidos entre los años 1901 y 1927.
  • Vivieron la Gran Depresión y lucharon algunos en la Primera Guerra Mundial y muchos en la Segunda Guerra Mundial.
  • Son resilientes, trabajadores y patriotas.
Generación Silenciosa:
  • Nacidos entre los años 1928 y 1945.
  • Crecieron en tiempos difíciles.
  • Son disciplinados, prudentes y enfocados en la estabilidad.
Baby Boomers:
  • Nacidos entre los años 1946 y 1964.
  • Crecieron en la prosperidad de la posguerra.
  • Son idealistas, ambiciosos y orientados a la carrera.
Generación X:
  • Nacidos entre los años 1965 y 1980.
  • Influyeron en tiempos de cambio.
  • Son independientes, escépticos y orientados a lograr un equilibrio.
Millennials:
  • Nacidos entre los años 1981 y 1996.
  • Alcanzaron la mayoría de edad en la era digital.
  • Siempre conectados, orientados a la meta e inquisitivos.
Generación Z:
  • Nacidos entre los años 1997 y 2012.
  • Crecieron con teléfonos inteligentes.
  • Son creadores, realistas y socialmente conscientes.
Generación Alfa:
  • Nacidos entre los años 2013 y 2024.
  • Hijos de los Millennials.
  • Son nativos digitales, viven inmersos en la tecnología.
Generación Beta:
  • Nacidos desde el año 2025.
  • Todavía en desarrollo.
  • Crecerán rodeados de IA (Inteligencia Artificial) y la automatización.
  • Son de mente digital y siempre conectados.
  • Se espera que sean dependientes de la IA.


Hola,
Conocen en Java que es HashMap y que es Hashtable y saben sus principales diferencias?

La definición rápida es que son estructuras de datos que almacenan elementos en pares clave-valor, permitiendo acceder a los valores de manera rápida mediante sus claves.

¿Cuándo usar cada uno?
  • Usa HashMap en la mayoría de los casos, especialmente si no necesitas sincronización o prefieres sincronizar de forma explícita con Collections.synchronizedMap() o usando otras herramientas (ConcurrentHashMap).
  • Usa Hashtable solo si necesitas un mapa sincronizado y no quieres manejar sincronización manualmente, aunque hoy en día se recomienda usar ConcurrentHashMap para concurrencia en lugar de Hashtable.
HashMap
Parte de: java.util (desde Java 1.2) Es una implementación de la interfaz Map en Java.
Permite claves y valores nulos: Sí, permite una clave nula y múltiples valores nulos.
No es sincronizado: No es thread-safe; si varios hilos acceden y modifican el mapa, debe sincronizarse externamente.
Rendimiento: Generalmente más rápido que Hashtable por no tener sincronización interna.
Iteradores: Son fail-fast — si el mapa se modifica mientras se itera, lanzan ConcurrentModificationException.

Nota:
Fail-fast es un comportamiento en Java donde una colección (como ArrayList, HashMap, etc.) lanza una excepción si es modificada estructuralmente mientras se la recorre (por ejemplo, con un Iterator), fuera del propio iterador.

Hashtable
  • Parte de: java.util (desde Java 1.0) Es una implementación de la interfaz Map en Java.
  • No permite claves o valores nulos: Lanzará NullPointerException si intentas insertar clave o valor null.
  • Es sincronizado: Todos sus métodos están sincronizados (thread-safe para accesos concurrentes).
  • Rendimiento: Más lento que HashMap por la sincronización interna.
  • Iteradores: No son fail-fast.

Hola,

Sabían acaso que en ningún otro idioma en la historia humana se ha iniciado una pregunta con un signo de interrogación, cerrándolo al final. 

Solo el idioma Español lo hace y lo hace por una razón tan lógica como hermosa.


La RAE dice que hay que usarlo siempre, pero no todo el mundo lo hace.

Pero que exista, que esté ahí, que haya sido inventado solo para nosotros, dice mucho del hermoso y complicado idioma que hablamos.

El Castellano no necesita parecerse a ningún otro idioma, puesto que cuando pregunta, lo hace a su manera. El signo de apertura no es solo un símbolo, es una señal de cortesía para el lector, una manera de decirle: "esto es una pregunta, prepárate", y en tiempos de ruido y confusión, esa claridad es más revolucionaria que nunca.


Historia:

En 1754, la Real Academia Española (RAE) propuso un cambio revolucionario: usar dos signos, uno al principio y otro al final, para marcar con claridad las oraciones interrogativas. 

Era un invento tipográfico, sí, pero también una decisión política, ya que, en vez de imitar al francés o al inglés, el Español afirmaba que su gramática necesitaba su propio ritmo, y que la claridad no era un defecto, sino una virtud.

El primer símbolo, invertido, anunciaba desde el inicio el tono de la frase, que era una pregunta.


Pasaron años para que las personas lo aceptara, mucho pensaban que era una excentricidad, un exceso, una doble marca innecesaria, pero con el tiempo, el signo invertido se volvió natural, lógico e inconfundible.

El símbolo en sí define una curva con un punto, esto surgió debido a que en la Edad Media, los copistas latinos usaban la palabra "quaestio" (pregunta) al final de las frases interrogativas.

Con el tiempo, esa palabra se fue reduciendo a una letra Q sobre una O, después la Q se curvó, la O se convirtió en punto y así nació el símbolo "?".

Fue una evolución caligráfica, una abreviatura manuscrita que sobrevivió a la imprenta y se convirtió en norma tipográfica.

Porque la interrogación no es una invención moderna, es una letra que se hizo gesto, una pregunta que se convirtió en forma en el idioma español y castellano y, al darle un doble signo, la hizo aún más clara, más directa, más musical y también más hermosa.


Otros idiomas lo han debatido, algunos escritores lo han elogiado y muchos estudiantes lo temen cuando aprenden castellano, pero nadie ha logrado que funcione igual de bien en otra lengua.

Antes del siglo XVIII los textos en Español no tenían signos fijos, se usaban guiones, rayas o nada y era el lector quien debía adivinar por el tono o por el contexto, cuándo una frase era una pregunta o una exclamación, y a veces lógicamente, se equivocaba.

Hoy, ningún hispanohablante duda que al leer: "¿vas a venir?", no es lo mismo que vas a venir, ya que la pregunta está marcada desde el principio, y eso da una ventaja única: se sabe el tono desde la primera palabra de cada frase.

Basado en un twitt de: Iván Fernández Amil.

La Rebelión de los Comuneros refiere al levantamiento armado que estalló en la Nueva Granada en 1781, principalmente asociado a la revuelta en el Socorro (entonces provincia de Santa Fe) que culmina parcialmente con las capitulaciones de Zipaquirá en junio, y continua en una segunda etapa como un amplio movimiento que involucró pobladores de los llanos, Neiva, Nariño, Cauca (actual Valle del Cauca) y la costa atlántica.


La insurrección comunera tiene por causa inmediata las medidas tomadas por el regente visitador Juan Francisco Gutiérrez de Piñeres, quien aumentó el impuesto de alcabala; estableció impuestos a la sal, el tabaco y los juegos de cartas; e impuso nuevos gravámenes a los textiles de algodón. Los cambios se enmarcaban en el contexto de las llamadas reformas borbónicas que pretendían, entre otras cosas, imponer mayores gravámenes a las élites criollas y recomponer los resguardos indígenas con el objeto de rematar tierras a favor de la Real Hacienda.

Las decisiones tomadas, de por sí impopulares, se hicieron más ofensivas por la aplicación de métodos arbitrarios y violentos usados por los recaudadores de impuestos. La insurrección comunera expresó a una variada mezcla de reivindicaciones, no sólo por sus diferentes causas, sino porque involucró sectores rurales y urbanos, así como sectores con intereses económicos y sociales diferenciados. Desde otra perspectiva, la revuelta comunera formó parte de una serie de luchas libradas en el conjunto de las colonias españolas en América.

El Fondo Comuneros de la Biblioteca Nacional constituye el universo documental en que se apoya la presente visita guiada. El Fondo, constituido por 18 volúmenes, contiene una rica documentación sobre el proceso: títulos de capitanes, minutas de sanciones, papeles sueltos, cartas entre comunes, decretos, edictos, bandos, instrucciones, planes de recaudo, relaciones de cuentas, informes de funcionarios reales, partes militares, nombramientos, documentos reservados, correspondencia varia, causas seguidas contra comuneros, testimonios y declaraciones de algunos de los principales protagonistas del proceso, juicios, embargos, sentencias, representaciones, oficios y actas emitidas por las distintas instancias de gobierno desde el local hasta el virreinal. La rica documentación ilustra las complejas configuraciones del proceso, las disímiles perspectivas e intereses de los sectores sociales involucrados y la amplia geografía cubierta por el movimiento comunero.

Autor: Rigoberto Rueda Santos, profesor del Departamento de Historia de la Pontificia Universidad Javeriana.

Causas principales:
  • Aumento de impuestos: Las reformas borbónicas introdujeron o aumentaron impuestos como el de alcabala, el de la Armada de Barlovento y el de la sal, tabaco y aguardiente.
  • Limitaciones a la producción: Se prohibió la siembra de tabaco en algunos territorios, afectando la economía de la región.
  • Contexto de las Reformas Borbónicas: Estas reformas buscaban centralizar el poder en la corona y mejorar la economía colonial, lo que generó fricciones con las élites criollas.
Desarrollo de la insurrección:

Inicio en El Socorro:
  • El 16 de marzo de 1781, en El Socorro, la población protestó contra las nuevas medidas fiscales, simbolizado por Manuela Beltrán, quien rompió el edicto que establecía el impuesto para la Armada de Barlovento.
Expansión de la revuelta:
  • La inconformidad se extendió a pueblos cercanos y la revuelta se convirtió en un movimiento más amplio que involucró a gran parte del virreinato.
Marcha a Santafé:
  • Los comuneros se organizaron y marcharon hacia Santafé, formando un ejército popular.
Capitulaciones de Zipaquirá:
  • El arzobispo Antonio Caballero y Góngora negoció con los líderes comuneros, lo que resultó en las Capitulaciones de Zipaquirá, que incluían la reducción de impuestos y la abolición de algunos de ellos.
Perdón general:
  • Se concedió el perdón a todos los participantes de la rebelión.
Conclusión:
La Insurrección de los Comuneros fue un importante acontecimiento en la historia de Colombia, que reflejó el descontento de la población con las políticas coloniales y sentó las bases para futuros movimientos independentistas. Se considera una muestra de resistencia popular ante las medidas impositivas y las limitaciones a la producción. Según la Biblioteca Nacional de Colombia, la revuelta se convirtió en un símbolo de lucha contra el dominio español y sentó las bases para la independencia de Colombia.

Fuente:
Hola,
Si han escuchado este concepto y no tienen claro que es, les explico facilmente.
Un API de experiencia es una capa de APIs diseñadas para facilitar la integración entre servicios backend y las interfaces de usuario (web, móvil, terceros). Se enfocan en adaptar los datos y funcionalidades de los sistemas internos para que sean más eficientes y fáciles de consumir desde el frontend.


¿Cómo funciona a nivel de desarrollador?
Como desarrollador, trabajar con un API de experiencia implica:

1. Diseñar una API adaptada a la necesidad del frontend:
  • Agregar o transformar datos desde varias fuentes (bases de datos, microservicios, APIs externas).
  • Simplificar la respuesta para que el frontend reciba solo lo necesario.
2. Usar principios de diseño como:
  • GraphQL o REST optimizado: Para evitar múltiples llamadas al backend.
  • Agregación de datos: Combinar respuestas de varias APIs internas en una sola.
  • Normalización y caching: Para mejorar rendimiento y evitar carga innecesaria en los servicios backend.
3. Implementarlo en una arquitectura de 3 capas:
  • API de Experiencia (Frontend-facing API)
  • API de Procesos (Orquestación de lógica de negocio)
  • API de Sistema (Acceso a datos y sistemas internos)
Hola,
La respuesta a esta pregunta es la siguiente:

El cero (0) es un número par.

Se considera par porque es divisible por 2 sin dejar residuo (0 / 2 = 0) y porque se encuentra entre dos números impares (-1 y 1) en la secuencia numérica.



Hola,

Si están trabajando con Terraform y en su archivo de configuración inicial (extensión .tf), tienen el siguiente bloque:

provider "aws" { 
    region = "us-west-2" 
    access_key = "my-access-key" 
    secret_key = "my-secret-key"
}


No es recomendable tener las credenciales a vista de todo el mundo, lo que se debe hacer por buenas practicas es lo siguiente:
  1. Abrir consola del IDE.
  2. Escribir el comando: aws configure
  3. Ingresar los datos que ahí se piden de acces_key, secret_key, region y format
  4. Presionar la tecla: enter
Cuando el sistema termine exitosamente, ya estas credenciales quedaron creadas como variables de ambiente y Terraform puede utilizarlas en cualquier momento, sin necesidad de que queden visibles para el programador.
Y ya se puede eliminar el bloque: provider "aws" {} del archivo de configuración inicial (extensión .tf).
Quedando así, el seteo de dichas credenciales a través de la consola de AWS.

Hola,
VS Code ofrece un buen modo de vista previa para archivos .md.


Para abrir un archivo con este modo, se hace clic derecho en el archivo en el árbol de documentos de VS Code y presionar clic en "Abrir vista previa".

También se puede usar el atajo de teclado:

En windows: Ctrl + Shift + V

En MAC: command + Shift + V

Tomado de:

Hola, 

Sabían que pueden configurar variables de entorno de forma dinámica en Postman con Java?

Yo no, lo aprendí hace poco.

Pues para crear y configurar variables de entorno dinámicas en Postman, se deben de realizar los siguientes pasos:


1. Abrir el Postman.

2. Crear un request (Request#1) dentro de Postman (como un servicio).

3. Posteriormente, dentro de este request, ingresar en la pestaña: Scripts y escribir el siguiente código:

var jsonData = JSON.parse(pm.response.text());

pm.enviroment.set("myVariableDinamic", + jsonData.variableResponse);

console.log(jsonData.variableResponse); // Para ver el valor que llego, mediante la opción de console del postman


4. Después de esto, cualquier otro request que se inicie y requiera utilizar la variable dinámica, solamente se le debe de configurar en la pestaña: Headers, como Value de una Key, ejemplo:

Key                                    Value

Authorization                {{myVariableDinamic}}


5. Eso es todo, al ejecutar el (Request#1) y si su response es correcto (status 200) la variable de entorno que se configuro, se actualizara automáticamente al llegar en ese request exitoso.

Permitiendo así, que se ejecute desde cualquier otro Request creado en el Postman.



El Libro de Enoc o Libro de Henoc (abreviado 1 Enoc) es un libro intertestamentario, que forma parte del canon de la Biblia de la Iglesia ortodoxa de Etiopía y la Iglesia ortodoxa de Eritrea, pero no es reconocido como canónico por las demás Iglesias cristianas o personas judías.


La obra es una compilación, y sus componentes fueron escritos en Israel por judíos de las escuelas ortodoxas jasídica o farisea. Su carácter compuesto aparece claramente a partir de las diferencias palpables en la escatología, en los puntos de vista sobre el origen del pecado y del carácter e importancia del Mesías que se encuentran en partes delimitadas por diversidad del asunto. Los críticos coinciden en que las partes más antiguas son las incluidas en los capítulos I - XXXVI y (en términos generales) LXXI - CIV.​

Una investigación dirigida por el Reverendo R. H. Charles, especialista inglés, divide esta parte en al menos dos componentes distintos. El análisis y la datación de Charles son:
  • I- XXXVI, la parte más antigua, compuesta antes del año 170 a. C.;
  • XXXVII - LXX, LXXXIII - XC, escrita entre 166-161 a. C.;
  • los capítulos XCI – CIV entre los años 134-95 a. C.;
  • el Libro de las Parábolas entre 94 - 64 a. C.;
  • el Libro de la Física Celestial, LXXII - LXXVIII, LXXXII, LXXIX, de fecha indeterminada.​
También conocido como '1 Enoc' (en ge'ez: maṣḥafa hēnok), atribuido a Enoc, el bisabuelo de Noé. El libro de Enoc contiene material único sobre los orígenes de los demonios y gigantes (nefilim), e inclusive sirenas (cap. XIX, 2), y sobre por qué algunos ángeles cayeron del cielo, así como una explicación de por qué el diluvio, como es narrado en el Génesis, habría sido moralmente necesario, y una exposición profética del reinado de mil años del Mesías.

Contenido

La primera parte del Libro de Enoc describe la caída de los Vigilantes, los ángeles que engendraron a los Nefilim. El resto del libro describe las visitas de Enoch al cielo en forma de viajes, visiones y sueños, y sus revelaciones.
El libro consta de cinco secciones principales bastante distintas:
  • El libro de los vigilantes (1 Enoc 1–36)
  • El libro de las parábolas de Enoc (1 Enoc 37–71) (también llamado Similitudes de Enoc)
  • El Libro astronómico (1 Enoc 72–82) (también llamado el Libro de las Luminarias Celestiales o Libro de Luminarias)
  • El libro de las visiones de los sueños (1 Enoch 83–90) (también llamado el Libro de los sueños)
  • La epístola de Enoc (1 Enoc 91–108)
La mayoría de los estudiosos creen que estas cinco secciones fueron originalmente obras independientes​ (con diferentes fechas de composición), en sí mismas producto de muchos arreglos editoriales, y solo más tarde fueron redactadas en lo que ahora se llama 1 Enoc.

Se trata de un libro apocalíptico perteneciente a la apocalíptica judía.

En el capítulo 7 (7, 3-6) narra la caída de los Vigilantes, que engendraron con mujeres a los nephilim o ‘gigantes’. (A estos también se refiere el pasaje de Génesis 6:1-7):
Ellos devoraron todo el trabajo de los hombres hasta que estos ya no alcanzaron alimentarlos más. Entonces los gigantes se volvieron contra los hombres y empezaron a devorarlos y empezaron a pecar contra los pájaros, y contra las bestias y los peces y a devorar unos la carne de los otros y se bebieron la sangre. Entonces la tierra acusó a los violentos por todo lo que se había hecho en ella.

Se acusa a los ángeles guardianes por haber desviado su misión y encarnado la explotación, la opresión, la destrucción de los ecosistemas, la guerra, el oro, la vanidad, la brujería, la fornicación y el engaño (8:1-3). «Y como parte de la humanidad era aniquilada, su clamor subió al cielo» (8: 4). Los arcángeles Miguel, Sariel (Uriel), Rafael y Gabriel, al ver la sangre derramada y la injusticia se dijeron que «la tierra desolada grita hasta las puertas del cielo por la destrucción de sus hijos». Dios los envía entonces a encadenar a los Vigilantes y a destruir a los gigantes «pues han oprimido a los humanos». Los ángeles caídos rogaron a Enoc que intercediese por ellos y los gigantes ante Dios.

Luego el libro describe la visita de Enoc al cielo en forma de una visión, y sus revelaciones. Una parte significativa del texto se dedica a describir los movimientos de los cuerpos celestes, en relación con el viaje de Enoc al cielo, con el objetivo de detallar el calendario base de las fiestas de la Ley.

Buena parte del libro se dedica a denunciar a los opresores y reyes de la tierra y anuncia su derrota final: «Este castigo con que son castigados los ángeles es un testimonio para los reyes y los poderosos que poseen la superficie de la Tierra» (67:12; 2Pedro 2:4). «Desgracia para los que edifican la iniquidad y la opresión y cimientan sobre el fraude, porque serán derrumbados de repente y no habrá paz en ellos... Habrá un cambio... los justos serán victoriosos» (50:1-2). «Desgracia para vosotros ricos, porque os confiáis en vuestras riquezas, seréis privados de ellas» (94:6-8).

Se encuentra una referencia a los Vigilantes en el Libro de Daniel 4, 17: "Es la sentencia dictada por los Vigilantes, la cuestión decidida por los Santos, para que sepa todo ser viviente que el Altísimo domina sobre el reino de los hombres: se lo da a quien le place y exalta al más humilde de los hombres."

El Libro de Enoc asume la continuidad del discurso de los profetas y anticipo del mensaje cristiano, enfatizando en la venida del Hijo del Hombre. Es una expresión de la literatura apocalíptica como esperanza de los humildes.

Manuscritos

Las únicas versiones íntegras de este libro que se conservan están en ge'ez, lengua litúrgica de la Iglesia etíope, pero son conocidas varias partes en griego, y un fragmento en latín. También ha sido encontrado, en Antínoe, un fragmento en copto (93:3-8) y, además en Qumrán fueron hallados múltiples fragmentos en arameo​ y uno en hebreo (4Q317). La tradición atribuía su autoría a Enoc (transcrito también como Henoc o en inglés Enoch), bisabuelo de Noé. En la actualidad hay muchos opositores del Libro y su contenido debido a su descripción detallada de los motivos del diluvio y el futuro de la humanidad. La Teología liberal cristiana y judía moderna están abiertamente en guerra contra la literatura del Libro por lo cual no debe causar sorpresa la resistencia que sufre de parte de muchos frentes teológicos modernos sean cristianos o judíos.

Diferenciación

Se conocen otros tres Libros de Enoc: el Segundo Libro de Enoc (2 Enoc), escrito a finales del siglo I o después y conservado en eslavo eclesiástico; el más tardío (de composición posterior al siglo V), Tercer Libro de Enoc (3 Enoc), en hebreo; y el Enoc copto (4 Enoc), que data del siglo V y del cual apenas se han encontrado partes. Este artículo solo hace referencia a 1 Enoc.

Partes

El libro que hoy se conoce fue editado tal vez en el siglo I de nuestra era, y consta de varias partes escritas entre los siglos III a. C. y I d. C. Estas partes son:
  • Libro del Juicio
Capítulos 1 al 5, trata las palabras de bendición de Enoc a los justos, que vivirán cuando los impíos sean condenados. Se estima que su composición data de antes del 200 a. C..
  • Libro de los Vigilantes o Caída de los ángeles
Capítulos 6 a 36, se centra en el tema de los Vigilantes (ángeles) que interpretando Génesis, dice que estos ángeles tuvieron relaciones sexuales con mujeres y engendraron gigantes (nephilim), seres famosos que desataron la violencia sobre la tierra y pervirtieron a la humanidad. Además, el Libro de los Vigilantes se caracteriza por unir y complementar las historias de los Vigilantes con la historia del Diluvio universal, presentes en el génesis, y hace una descripción detallada del mundo y los cielos en las fábulas e imaginería popular judaica de su tiempo. Fue escrito antes del 160 a. C.
  • Libro de las parábolas o El mesías y el reino
Capítulos 37 a 71, de carácter mesiánico, profetiza la venida del Hijo del Hombre, la caída de los reyes y poderosos y el día del Elegido. Es la única parte que no se ha encontrado en los manuscritos de Qumrán. Escrito después del 63 a. C. a finales del siglo I a. C. o en el siglo I.
  • Libro del cambio de las luminarias celestiales o Libro astronómico
Capítulos 72 a 82, expone en detalle el antiguo calendario solar hebreo, en concordancia con el Libro de los Jubileos, que en 4.17 cita este libro de las luminarias del cielo. Fue escrito entre el 250 y el 190 a. C.
  • Libro de los sueños
Capítulos 83 a 90, refiere dos visiones apocalípticas obtenidas por Enoc en sueños; la primera simplemente anuncia que la Tierra será destruida y la segunda es una historia de la humanidad y de Israel hasta el fin de los tiempos, en la que los actores son representados como animales simbólicos. Escrito entre los años 161 y 125 a. C.
  • Carta de Enoc y Apocalipsis de las semanas
Capítulos 91 a 105, divide la historia en diez «semanas», interpretando el pasado y proyectándose escatológicamente al futuro. Escrito después del año 135 a. C., probablemente entre el 110 y el 60 a. C.
  • Fragmentos
Capítulos 106 y 107, parecen ser una parte del Libro de Noé, que se ha perdido pero que está presente en los manuscritos del Mar Muerto. Predice los crímenes de la humanidad y el advenimiento de tiempos mesiánicos con el triunfo de los justos. El capítulo 108 explícitamente dice que es otro Libro de Enoc y falta en varios manuscritos.

Curiosidades:
  1. La película Noé del año 2014 del director Darren Aronosfky habla sobre los Vigilantes y su castigo en la Tierra.

URL de descarga en PDF de recopilación del Libro de Enoc:

Tomado de:
Hola,

Si como yo nunca habían escuchado de este método HTTP y pensaban que solo existía el PUT (para actualizar) acompañamé te lo explico:

El método PATCH es un verbo HTTP utilizado para actualizar parcialmente un recurso en un servidor. A diferencia de PUT, que reemplaza todo el recurso, PATCH solo modifica los campos especificados en la petición.


Ejemplo de uso:

Si tienes un recurso en una API con este JSON:

{
    "id": 1,
    "nombre": "Producto A",
    "precio": 100,
    "stock": 50
}

Y envías una solicitud PATCH con:

{
    "precio": 120
}

El servidor actualizará solo el campo precio, dejando el resto sin cambios.

A nivel del front, esto se enviaría en la cabecera típica de una petición PATCH:

PATCH /productos/1 HTTP/1.1
Content-Type: application/json

Casos de uso y resumen:
  • Modificar un solo campo sin afectar los demás.
  • Aplicar cambios incrementales en datos grandes.
  • Puedes modificar uno o varios campos en una misma solicitud.
  • Solo se actualizan los campos enviados, sin afectar los demás.
Finalmente, con PATCH puedes actualizar uno o varios campos a la vez. No hay límite en la cantidad de atributos que puedes modificar en una sola petición, siempre y cuando el servidor lo soporte.
Hola,
Primero y antes de nombrar los planetas de nuestro Sistema Solar, saben: Qué es un planeta?
La definición easy es:
Un planeta es un astro que gira alrededor de una estrella enorme y con una temperatura muy alta; los planetas no tienen luz propia, sino que reflejan la luz sobre ellos.
Se desplazan de forma elíptica.
Y los planetas de nuestro Sistema Solar se clasifican según su composición, los cuales pueden ser Rocosos (Internos) y Gaseosos (Exteriores).


Los Planetas Rocosos:
En nuestro Sistema Solar, los planetas Rocosos son:
  1. Mercurio (más cercano al sol y más pequeño),
  2. Venus (más brillante en la noche terrestre),
  3. La Tierra (nuestro hogar, único planeta que tiene agua en estado líquido),
  4. Marte (el planeta rojo),
Los Planetas Gaseosos:
En nuestro Sistema Solar, los planetas Gaseosos son:
  1. Júpiter (el más grande),
  2. Saturno (el segundo más grande),
  3. Urano (el gigante helado),
  4. Neptuno (último del Sistema solar, el gemelo de Urano),
Los Planetas Enanos:
Pero eso no es todo, igualmente, existen los denominados Planetas Enanos, los cuales definen toda una nueva clase de cuerpos celestes que no pueden categorizarse como planetas o cuerpo menor del sistema solar, la definición de la UAI afirma que los objetos que respecto al Sol estén más allá de la órbita de Neptuno reciben el nombre de objetos trasneptunianos. Si un objeto celeste cumple con la definición de planeta enano y pertenece también al grupo de los transneptunianos, se denominará entonces plutoide, está definición fue creada por la Unión Astronómica Internacional (UAI) y según ellos, un planeta enano es aquel cuerpo celeste que:
  • Está en órbita alrededor de una estrella similar al Sol.
  • Tiene suficiente masa para que su propia gravedad haya superado la fuerza de un cuerpo rígido, de manera que adquiera un equilibrio hidrostático (forma casi esférica) aunque, por ejemplo, Haumea, no tiene una forma esférica, sino más bien «chata».
  • No es un satélite de un planeta ni de otro cuerpo no estelar.
  • No ha limpiado la vecindad de su órbita, es decir, la comparte con otros objetos.
Los Planetas Enanos:
En nuestro Sistema Solar, los planetas Enanos son:
  1. Ceres (objeto astronómico más grande del cinturón de asteroides,),
  2. Plutón (el antiguo 9no Planeta de nuestro Sistema Solar hasta el año 24 de Agosto del 2006),
  3. Eris (el objeto transneptuniano más masivo),
  4. Makemake (uno de los objetos más grandes del exterior de nuestro vecindario solar),
  5. Haumea (es un planeta enano y plutoide y debe su nombre a la diosa hawaiana de la natalidad),
Hola,

Alguna vez han escuchado el concepto de: "Tierra de Nadie", pues es un término que puede tener varios significados según el contexto, acompañamé te lo explico de forma easy:
  • Concepto geopolítico: Se refiere a un territorio que no está bajo el control de ningún estado o gobierno. Puede ser una zona deshabitada o en disputa.
  • Historia y guerra: En conflictos bélicos, especialmente en la Primera y Segunda Guerra Mundial, era el espacio entre dos trincheras enemigas, peligroso y sin dueño.
  • Cultura y entretenimiento: Se ha usado en películas, libros, series y videojuegos para describir lugares peligrosos, abandonados o sin ley.
  • Expresión figurada: Se usa para describir situaciones de incertidumbre o falta de control, como en el trabajo o en relaciones personales.
En el contexto de la guerra, "Tierra de Nadie" se refiere al espacio entre las posiciones de dos fuerzas enemigas, generalmente en un frente de batalla.


Características clave:
  1. Zona peligrosa: Quien entraba corría alto riesgo, ya que ambas partes podían disparar sin restricciones.
  2. Frecuente en la Primera Guerra Mundial: Entre trincheras opuestas, solía estar lleno de alambre de púas, cráteres de explosiones y cuerpos caídos.
  3. Difícil de conquistar: Avanzar por esta área era casi suicida sin cobertura o estrategias específicas.
Un ejemplo clásico es el frente occidental de la Primera Guerra Mundial, donde la "tierra de nadie" entre trincheras podía extenderse desde unos pocos metros hasta varios kilómetros.