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: