Hola,
Si alguna vez te has realizado la siguiente pregunta: Por qué usar Enum sobre Constantes en Java? o se les han realizado esa pregunta en el trabajo o en una entrevista, las ventajas son las siguientes:

¿Por qué enums?
  1. Constantes fácilmente relacionadas, más legibles y que expresan una clara intencionalidad.
  2. Ahorro en tiempo de ejecución y compilación, ya que typescript asigna sus valores como constantes declaradas por cada asignación.
  3. Fácilmente refactorizable.
Cuando no utilizar enums:
  • Cuando cualquiera de sus propiedades pueda ser reasignada en tiempo de ejecución.
  • Cuando se pretenda ampliar la cantidad de propiedades de forma indefinida. La naturaleza de un enum debe estar definida y constatada por la utilidad que se le vaya a dar.


Si se quiere profundizar más, tengan en cuenta lo siguiente:

Primero, en las versiones anteriores a la versión 1.5 o 5 de Java no existían los tipos de datos enum con lo que se debía usar constantes de la siguiente forma:

public static String COLOR_ROJO = "rojo";
public static String COLOR_VERDE = "verde";
public static String COLOR_AZUL = "azul";

A partir de la versión 5 de Java se incorporarón al lenguaje los tipos de datos enumerados con el objetivo de mejorar varios aspectos sobre el uso de las constantes.

Segundo, tener en cuenta sus definiciones:

const
Un dato que no va a ser modificador a lo largo de un programa, es una constante:

const DEFAULT_COLOR: string = 'red';

Esto es aplicable a un conjunto de datos también.

const DEFAULT_CONFIGURATION: any {
    APP_NAME: ‘Nombre de mi programa‘,
    AUTHOR: ‘Branko Fuenzalida’,
    BUILD: 34,
    VERSION: ‘1.0.0’
};

enum
Un conjunto de constantes relacionadas entre si por un factor común, es un Enum:

enum Colors { 
    enum Colors {
        Blue, // 0 Blue = 'BLUE',
        Green, // 1 Green = 'GREEN',
        Purple, // 2 Purple = 'PURPLE',
        Red // 3 Red = 'RED'
    }; 
};

Si no se indica un valor para cada propiedad, se le es asignado una consecución de números en incremento empezando por el cero.

Básicamente, un enum en Java es un conjunto fijo y relacionado de constantes como pueden ser los días de la semana y deberían usarse siempre que se necesite representar un conjunto de constantes con esas características. La característica de relacionado es importante, las constantes solo lo están por la convención que sigamos al darles un nombre. Los enums se definen de la siguiente forma:

public enum Dia { 
    LUNES, 
    MARTES, 
    MIERCOLES, 
    JUEVES, 
    VIERNES, 
    SABADO, 
    DOMINGO 
}

public enum Color { 

    ROJO("FF0000"), 
    VERDE("00FF00"), 
    AZUL("0000FF");

    private final String rgb; Color(String rgb) { this.rgb = rgb; } 

    public String getRGB() { return rgb; } 

}

Como son constantes por las convenciones del lenguaje se escriben en mayúscula. Pero los enum son algo más que constantes, la clase del tipo del enum puede definir métodos y otras propiedades, como el método getRGB del ejemplo anterior o en el siguiente caso que se usa el método values() y que se añade automáticamente a todos los enums.

for (Dia d : Dia.values()) {
    System.out.printf("El día de la semana %s", d);
}

for (Color c : Color.values()) {
    System.out.printf("El color %s tiene como RGB %s", c, c.getRGB());
}

Ventajas de usar Enum sobre Constantes:
  • Algunas cosas que hacen de los enum muy interesantes es que al definir las constantes de este modo se obtiene «type safety» (Seguridad de tipos para disminuir o prevenir los errores de tipos). Si decimos que un método de una clase recibe un enum el compilador comprobará en tiempo de compilación que cuando lo usamos le pasemos realmente un valor de ese enum, cosa que con constantes definidas como int o String el compilador solo comprueba que pasemos un int o String y por tanto podremos pasar cualquier valor aunque no sea una de las constantes esperadas por el método.
  • Otra de las ventajas que ya se ve en ejemplo anterior es que los enums pueden tener comportamiento a través de los métodos que defina.
  • También, específicamente diseñadas para los enums existen las clases EnumSet y EnumMap que trabajan con enums de forma más eficiente que con Set y Map.
  • Además, los enums pueden ser usados en expresiones switch cosa que con constantes de tipo String solo podemos hacer a partir de la versión 7 de Java.
  • Para comparar valores de enums podemos hacerlo con el operador == o con el método equals. Usar el operador == tiene la ventaja de evitar un posible NullPointerException y de que el compilador comprueba que se estén comparando dos valores del mismo enum.
== nunca lanza NullPointerException
Dia dia = null; if (dia == Dia.LUNES); // se ejecuta
if (dia.equals(Dia.LUNES)); // lanza NullPointerException

== comprueba compatibilidad de tipos en tiempo de compilación
if (Dia.LUNES.equals(COLOR.ROJO)); // compila bien
if (DIA.LUNES == COLOR.ROJO); // no compila, incompatibilidad de tipos

Tomado literalmente de:
Hola,
Alguna vez han escuchado o usado el comando de Git: git cherry-pick


Pues acompañame y te lo explico.

git cherry-pick: Es un potente comando que permite que las confirmaciones arbitrarias de Git se elijan por referencia y se añadan al actual HEAD de trabajo. La ejecución de git cherry-pick es el acto de elegir una confirmación de una rama y aplicarla a otra. git cherry-pick puede ser útil para deshacer cambios. 
Por ejemplo, supongamos que una confirmación se aplica accidentalmente en la rama equivocada. Puedes cambiar a la rama correcta y ejecutar git cherry-pick en la confirmación para aplicarla a donde debería estar.

Ejemplo de uso:

git cherry-pick <commit-SHA>

En donde <commit_SHA> es el identificar corto del commit que se quiere seleccionar y que está conformado por 7 dígitos (mejor conocido como short SHA-1).

Como obtener el short SHA-1:
Ejecutando por consola el comando:

git log --oneline

Y se copia el código que aparecé al inicio de cada commit y listo, el comando completo de git cherry-pick quedaría así:

git cherry-pick 5677388

Que pasa si hay algún conflicto?
En caso de conflictos se soluciona igual que se hace durante un merge regular y luego se ejecuta lo siguiente:

git add .
git cherry-pick --continue

En caso de querer abortar la ejecución del comando git cherry-pick:

git cherry-pick --abort

Se debe tener en cuenta que aunque git cherry-pick es una herramienta útil, pero no siempre es una práctica recomendada. Ejecutar git cherry-pick puede generar confirmaciones duplicadas y, en muchos casos en los que su ejecución sí funcionaría, son preferibles las fusiones tradicionales. 
Por lo tanto, git cherry-pick es una herramienta útil solo en algunos casos

Algunos escenarios en los que es recomendable utilizar este comando:
  1. Se requiere probar en la rama principal algunas modificaciones especificas de alguna rama en particular.
  2. Se tiene una rama en donde se hicieron commits que nunca se subieron a la rama principal y se necesitan subir.
  3. Un bug encontrado en develop que se necesita subir a una rama hotfix que eventualmente se desplegará en Producción.

En resumen la ejecución del comando git cherry-pick es potente y cómoda, y resulta increíblemente útil en algunos casos. Pero, la ejecución de git cherry-pick no debería aplicarse equivocadamente en lugar de git merge o git rebase.

Nota:
Se recomienda que se lea con atención los mensajes del terminal, durante cada ejecución, puesto que si ocurre algún error, probablemente la terminal sugiera una solución.

Tomado de:
Bastet o Bast es una diosa del antiguo Egipto, adorada desde la Segunda Dinastía (2890 a. C.). 
Representa la protección, el amor y la armonía. 
Protectora de los hogares y templos. 
Fue la diosa de la guerra en el Bajo Egipto, región del Delta del Nilo, antes de la unificación de las culturas del antiguo Egipto.


Nombre egipcio: Bastet.​
Nombre griego: Bastis.
Deidad griega: Artemisa.

Mitología

Es la personificación de los cálidos rayos del Sol y ejercía sus poderes benéficos. Encarnaba los aspectos pacíficos de diosas peligrosas como Sejmet ​et, que expresaban las cualidades maléficas del Sol. Como ojo de Atum​, estaba asociada a la Luna y protegía los nacimientos y a las embarazadas de las enfermedades y los malos espíritus.

Es una diosa pacífica pero, cuando se enfada, se transforma en una leona, asimilándose a la diosa Sejmet y, algunas veces, es mucho más violenta que ésta. Al igual que el animal totémico que la representa, Bastet era una diosa impredecible que podía mostrarse tierna o feroz en cualquier momento.

Se la identificaba con la estrella Sirio, de quien se la consideraba Señora y con la deidad sumeria Inanna. Según algunos eruditos, como M. Oldfield Howey, su nombre significa la desgarradora, pese a su carácter principalmente benigno.

Culto

Su culto se remonta a los primeros tiempos de la civilización egipcia, habiendo ganado notoriedad más tarde, y se la menciona en los Textos de las Pirámides y el Libro de los muertos.

La antigua ciudad de Bubastis (hoy Zagazig, en el delta del Nilo) estaba consagrada a su culto, y de allí proceden centenares de gatos momificados que fueron enterrados en su memoria. Su culto fue tan importante que en sus templos se criaron gatos que eran su representación, y a la muerte de estos, eran cuidadosamente momificados, enterrándolos en tumbas específicas para ellos. Encontramos necrópolis de este tipo en Bubastis, Saqqara, Tanis, Beni Hassan y Tebas.


Los egipcios consideraban a los gatos como manifestaciones de la diosa Bastet y, cuenta la leyenda, que Egipto se rindió ante los persas cuando estos portaron gatos en sus escudos, ya que los persas sabían que los egipcios eran capaces de rendirse antes de lastimar a algún gato. Así fue como perdieron a la ciudad de Pelusio, la actual Puerto Saíd.

En la ciudad de Bubastis se celebraba en honor a esta diosa la "Fiesta de la embriaguez", donde se consumía vino en abundancia, se bailaba y se hacía sonar la música. Esta fiesta se realizaba para que la diosa Bastet se mostrara contenta y halagada, y de este modo no tomara el aspecto de una leona enfurecida.

Iconografía

Se representaba bajo la forma de un gato doméstico, o bien como una mujer con orejas, cola, dientes y ojos de gato, que siempre lleva un ankh (cruz de la vida egipcia) o en otros casos un sistro (instrumento musical) debido a que le agradaba especialmente que los humanos bailaran y tocaran música en su honor. Diosa de Bubastis, ciudad del Delta, en la que ya aparecen restos de su culto en torno a la IV dinastía.

Fuente:
Vasili Aleksándrovich Arjípov (en ruso: Василий Александрович Архипов; Zvorkovo, Óblast de Moscú, 30 de enero de 1926 - Zheleznodorozhny, Óblast de Moscú, 19 de agosto de 1998) fue un oficial naval soviético. Durante la crisis de los misiles en Cuba, impidió el lanzamiento de un misil nuclear y por tanto, una posible guerra nuclear. 


Thomas Blanton expresó en 2002, cuando era director del National Security Archive, que «un hombre llamado Vasili Arjípov salvó el mundo».

Crisis de los misiles de Cuba

El 27 de octubre de 1962, durante la crisis de los misiles de Cuba, un grupo de once destructores de la armada de los Estados Unidos y el portaviones USS Randolph ubicó al submarino B-59 soviético clase Foxtrot, con armas nucleares, cerca de Cuba y comenzaron a lanzar cargas de profundidad para forzar al submarino a emerger e identificarse. Las cargas produjeron un apagón del sistema eléctrico del submarino (a excepción de las luces de emergencia). La temperatura comenzó a subir así como la concentración de CO2. Algunos marineros se desmayaron por ello. El capitán del submarino, Valentín Grigórievich Savitsky, creyendo que la guerra ya habría empezado, quiso lanzar un misil nuclear. A pesar de que los soviéticos habían sido informados de que se estaban utilizando cargas de profundidad de prácticas, es probable que esa información no llegara al B-59.

Los tres oficiales a bordo en el submarino (Savitsky, el oficial político Iván Semiónovich Máslennikov, y el segundo al mando Arjípov) tenían autorización para lanzar el misil si acordaban hacerlo por unanimidad. En ese momento comenzaron una discusión en la que solo Arjípov estaba en contra del lanzamiento,​ quien finalmente persuadió a Savitsky para emerger el submarino y esperar órdenes de Moscú. Se evitó así una posible guerra nuclear.​ Las acciones tomadas por Arjípov sirvieron, en parte, como inspiración para la película estadounidense Marea roja.

Vida posterior

Después de la crisis de los misiles de Cuba, Arjípov continuó en la armada soviética. Fue ascendido a contralmirante en 1975 y se convirtió en jefe de la Academia naval Kírov. Fue ascendido a vicealmirante en 1981 y se retiró a mediados de los años 80. Posteriormente se asentó en Zheleznodorozhny, en el Óblast de Moscú, donde murió en 1998.

En la conferencia conmemorativa del 40.º aniversario de la crisis de los misiles de Cuba celebrado en La Habana el 13 de octubre de 2002, Robert McNamara, Secretario de Defensa de Estados Unidos durante la crisis, admitió que la guerra nuclear había estado más cerca de lo que la gente había pensado.

En el libro Kubínskaya Samba Kvarteta Fokstrótov de Aleksandr Mozgovoy, del 2002, retiró al comandante Vadim Pávlovich Orlov, un participante en los eventos, presentándolos menos dramáticos, diciendo que el capitán perdió los estribos pero que finalmente se calmó.

Tomado de:
Arnulfo de Metz (cerca del río Mosela, 31 de agosto de 582-Remiremont, 18 de julio de 640), conocido como san Arnulfo de Metz, fue un obispo franco y consejero e intendente del palacio de los merovingios de Austrasia, cargo al que renunció para abrazar la vida eremítica. Es venerado como santo por la Iglesia católica como la Ortodoxa.

Conocido como el 'patrono de la cerveza'. «No bebáis agua, bebed cerveza», dijo san Arnulfo a los fieles de su diócesis al constatar los estragos de una epidemia causada por la baja calidad del agua en los pozos de la región.


San Arnulfo dedicó gran parte de sus esfuerzos a prevenir a la gente de la época y a los miembros de su feligresía sobre los peligros, a menudo mortales, de beber agua contaminada, ya que frecuentemente sucedía que los pozos estaban contaminados, sugiriendo en su lugar la bebida de la cerveza fermentada. A la postre y por sus milagros se convirtió en el patrono de los cerveceros.

Del matrimonio de su hijo Ansegisel con Bega, hija de Pipino de Landen, nace Pipino de Heristal, bisabuelo de Carlomagno, es decir que en él se encuentra uno de los orígenes de la Dinastía Carolingia. Por esta vía, es antepasado de buena parte de los monarcas europeos, como Hugo Capeto, Enrique VIII de Inglaterra y Luis XIV de Francia; y en la actualidad, Carlos III del Reino Unido, Felipe VI de España, Federico X de Dinamarca, Carlos XVI Gustavo de Suecia y Harald V de Noruega son lejanos descendientes de Arnulfo de Metz. Esta genealogía es clave para las reconstrucciones prosopográficas que hace Christian Settipani buscando encontrar linajes ancestrales.

Cada 18 de Julio se conmemora su día en la Iglesia Católica Ortodoxa.

Los tres milagros de Arnulfo de Metz
  1. El primero de los milagros ocurre cuando Arnulfo lanzó su anillo de obispo al río Mosela, atormentado por las guerras y sus pecados, rogándole a Dios que se lo devolviera en caso de absolución. Años más tarde, un pescador llevó un pez a la cocina del obispado, dentro del cual se encontró el anillo. Este se conserva en la catedral de Metz.
  2. El segundo milagro ocurrió cuando decidió renunciar como Obispo. En ese momento, se produjo un incendio en los sótanos del Palacio Real que amenazaba con extenderse a la ciudad de Metz. El amor a su pueblo y su coraje hizo que se pusiese frente al fuego pronunciando la frase «Si Dios quiere que me consuma, estoy en sus manos». El incendio se detuvo de inmediato.
  3. Y el tercer milagro, que lo convertiría en santo patrono de los cerveceros: Tras su fallecimiento, los habitantes de Metz pidieron que su cuerpo fuese trasladado de nuevo a su ciudad para ser enterrado en su iglesia. El camino que llevaría de vuelta a san Arnulfo era demasiado largo, por lo que se decidió parar la procesión ceremonial en la ciudad de Champigneulles, Francia. Los fieles que pretendieron adquirir cervezas en una taberna se encontraron con que sólo quedaba un tarro, que tendrían que repartir entre todos. Pero, para su asombro, el tarro de cerveza nunca se terminaba, por lo que todos y cada uno de ellos pudieron saciar su sed.


“Del sudor del hombre y del amor de Dios, la cerveza vino al mundo”

Basado en:

Hola,
Los siguientes métodos, permiten recibir dos fechas en formato UnixTime y escriben en un System.out.println cual es la fecha mas antigua y retornan cual es la fecha mas reciente en formato UnixTime, en java.

Forma #1 con la clase Instant:

public static Long compareUnixTimesWithInstant(Long unixTime1, Long unixTime2) {

// Convertir los UnixTime a objetos de fecha y hora
Instant date1 = Instant.ofEpochSecond(unixTime1);
Instant date2 = Instant.ofEpochSecond(unixTime2);

// Formateador para mostrar las fechas de forma legible
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
.withZone(ZoneId.systemDefault());

// Comparar las fechas y mostrar cual es la más antigua
if (date1.isBefore(date2)) {
System.out.println("La fecha mas antigua es: " + formatter.format(date1));
// retorna la fecha mas reciente
return unixTime2;
} else {
System.out.println("La fecha mas antigua es: " + formatter.format(date2));
// retorna la fecha mas reciente
return unixTime1;
}

}


Forma #2 con la clase Date:

public static Long compareUnixTimesDate(Long unixTime1, Long unixTime2) {

// Convertir los UnixTime a objetos Date
Date date1 = new Date(unixTime1 * 1000);
Date date2 = new Date(unixTime2 * 1000);

// Comparar las fechas y mostrar cual es la más antigua
if (date1.before(date2)) {
System.out.println("La fecha mas antigua es: " + date1);
// retorna la fecha mas reciente
return unixTime2;
} else {
System.out.println("La fecha mas antigua es: " + date2);
// retorna la fecha mas reciente
return unixTime1;
}

}
Hola,

El siguiente método en Java permite convertir una fecha de tipo Long en formato UnixTime a Date:

public static Date convertUnixTimeToDate(Long calendarUnixTime) {
    // Multiplicar por 1000 para convertir de segundos a milisegundos
    long timestamp = calendarUnixTime * 1000;
    return new Date(timestamp);
}

El valor de entrada es: 1724940994L

Y retorna lo siguiente: Thu Aug 29 09:16:34 COT 2024
Hola,


Para evitar que el SonarCloud cuando este escaneando un repositorio marque advertencia por: Duplications



Se debe implementar el siguiente comando:
sonar.cpd.exclusions=**/NombreClaseJava.java,**/NombreModulo/**

En la clase:
sonar-project.properties

Y listo, así, el SonarCloud omitirá revisar la duplicidad en las clases y módulos configurados en ese comando.