• Qué es, por qué y cómo activar un segundo factor de autenticación en Google, Amazon, PayPal y otros servicios

    planeta-codigo seguridad

    Las contraseñas son un mecanismo de seguridad empleado para autenticar a un usuario en un servicio al iniciar sesión. Pero las contraseñas son un mecanismo potencialmente débil, por ello varios de los servicios más importantes implementan mecanismos de seguridad adicionales para proteger en mayor medida las cuentas de los usuarios. El segundo factor de autenticación o 2FA es un mecanismo adicional, las contraseñas son algo que se conoce, el 2FA es algo que se tiene. Varios de los servicios más importantes como Google, Amazon y PayPal entre otros lo ofrecen y es recomendable activarlos en aquellos en los que lo hacen.
    Continuar leyendo...

  • Emitir trazas de las peticiones y respuestas HTTP con clientes Java

    java planeta-codigo programacion

    En las peticiones HTTP que se hacen unos microservicios a otros o a recursos externos son varias las cosas por las que una petición HTTP es capaz de fallar. El fallo es un código de estado distinto al correcto 200, ya sea petición invalida 400, un recurso no encontrado 404, credenciales requeridas 401, credenciales inválidas 403 o un error interno de servidor 500 entre otros códigos de estado, otras posibilidades son fallos de conexión de red. Añadir trazas de las peticiones que hacen los microservicios permite obtener información con la que averiguar cual es el motivo de fallo, si además emiten las trazas con las cabeceras y parámetros en formato de la herramienta curl es fácil probar y reproducir el mismo error o la misma acción.
    Continuar leyendo...

  • Cómo encontrar las mejores ofertas de juegos para consola y PC

    juegos

    En las diferentes tiendas digitales de venta de juegos cada semana o quincena hay nuevos juegos con importantes descuentos y ofertas con los que ahorrar, momento ideal para comprarlos a precio reducido aquellos que están en la lista de deseados y bajo seguimiento. Algunas tiendas de juegos envían notificaciones con los juegos en oferta de la lista de favoritos, otras páginas especializadas permiten además hacer un seguimiento del histórico de los precios y también recibir alertas cuando alguno de los juegos bajo seguimiento varía su precio con un descuento durante un periodo de unos días.
    Continuar leyendo...

  • Cómo depurar una aplicación Java con un IDE

    java planeta-codigo

    La depuración de un programa o debug permite ejecutar un programa de forma interactiva, paso a paso y examinar los valores de las variables. Esto proporciona valiosa información que permite comprobar el correcto funcionamiento de un programa o descubrir la causa de un error del que las trazas no proporcionan información suficiente. Los depuradores o debuggers son las aplicaciones que ejecutan el programa en modo depuración, permiten establecer puntos de ruptura, continuar la ejecución paso a paso o hasta el siguiente punto de ruptura e inspeccionar los valores de las variables. Los entornos integrados de desarrollo o IDE de Java como IntelliJ IDEA y eclipse ofrecen soporte para hacer depuración.
    Continuar leyendo...

  • Entorno de desarrollo Java para editar, compilar y ejecutar programas

    java planeta-codigo

    El entorno de desarrollo son la colección de herramientas necesarias para editar código fuente, compilarlo y ejecutar sus programas. El primer paso para aprender a programar en Java es disponer de un entorno de desarrollo con las herramientas mínimas necesarias para practicar y aplicar los conocimientos aprendidos de un curso de formación o utilizando algún libro sobre el lenguaje Java. El entorno mínimo necesario consta del JDK que incluye el compilador Java, otras herramientas que facilitan la programación son un editor avanzado o IDE con asistencia de código y una herramienta de construcción para automatizar tareas.
    Continuar leyendo...

  • Cómo deduplicar eventos de dominio

    java planeta-codigo programacion

    Las aplicaciones distribuidas utilizan la comunicación de mensajes para notificar de la ocurrencia de ciertos eventos en el sistema que los interesados reciben. En el envío y recepción de mensajes pueden ocurrir dos situaciones que hay que manejar, una es garantizar que cada mensaje se envíe al menos una vez para lo que se emplea el patrón outbox pattern y la segunda es no procesar un evento recibido por duplicado para lo que se emplea deduplicación de mensajes.
    Continuar leyendo...

  • Implementar un bus de comandos y consultas en Java

    java planeta-codigo programacion

    Un bus de comandos y consultas permite separar en una aplicación las operaciones de modificación y operaciones de obtención de datos. Esto permite si es requerido dos bases de datos diferentes utilizando CQRS, una base de datos para operaciones de modificación y una base de datos para operaciones de consulta. Aún teniendo solo una base de datos para ambas operaciones un bus de comandos y eventos permite independizar a la aplicación de las interfaces con las que se use ya sea REST, GraphQL, línea de comandos o mensajería como RabbitQM y crear manejadores de operaciones siguiendo los principios SOLID de diseño.
    Continuar leyendo...

  • Análisis y guía completa del juego Horizon Zero Dawn

    juegos

    Horizon Zero Dawn un juego de mundo abierto cuenta una historia de acción ambientada en un mundo donde existen unas máquinas metálicas con rasgos de animales, pero un mundo habitado por tribus con una tecnología de arcos y fechas que siguen una religión de la diosa Madre y que repudian y temen el mundo de los antiguos. Aloy quiere conocer porque es una paria en la tribu y en su búsqueda de respuestas a sus preguntas descubre muchas otras cosas del mundo en el que vive.
    Continuar leyendo...

  • Sobre la generación de consolas PlayStation 5 y Xbox Series X/S antes de que se comercialice y la renovación del hardware de PC

    juegos hardware opinion

    En un mes se comenzará la comercialización de la siguiente generación de consolas tanto de la Xbox Series X/S de Microsoft que sustituye a la Xbox One y una semana más tarde la PlayStation 5 de Sony que sustituye a la PlayStation 4 poco antes de la época navideña. Ambas consolas prometen ofrecer una calidad de juegos mucho mayores que los que ya eran en la generación que sustituyen, empezando por un hardware mucho más actual que el que tuvieron sus predecesoras que cuando salieron casi salieron anticuadas con respecto al hardware de la época.


    Continuar leyendo...

  • Implementar un bus de eventos de dominio en Java

    java planeta-codigo programacion

    Un bus de eventos es el mecanismo por el que los eventos de dominio de DDD son publicados, son tratados y enviados a sus receptores de forma directa, mediante un middleware u de otra forma. El concepto bus de eventos para eventos de dominio se materializa de forma muy sencilla en código, simplemente una interfaz con un método. Cambiando la implementación de la interfaz un bus de eventos envía los eventos a un sistema de mensajería como RabbitMQ, persiste los eventos en base de datos como parte del outbox pattern o simplemente los imprime en la consola como en el ejemplo del artículo.
    Continuar leyendo...

  • 3 formas de gestionar errores en los lenguajes de programación

    java planeta-codigo programacion

    El lenguaje de programación C utiliza códigos de retorno como forma de gestionar errores, Java con excepciones y Go y Rust de forma similar a C códigos de retorno pero con la posibilidad de devolver varios valores, uno para el valor en caso correcto y un valor en caso de error. La gestión de errores es parte esencial de los programas para que funcionen correctamente estando preparados en los casos error posibles.
    Continuar leyendo...

  • Trazabilidad en servicios distribuidos con Sleuth y Zipkin

    java planeta-codigo

    En un sistema complejo como una arquitectura de microservicios medir los tiempos de respuesta de cada uno de ellos ayuda a identificar si alguno se está comportando de forma anómala. Sleuth permite asignar un identificador global que es compartido por todos los microservicios invocados en la misma transacción, permite exportar los tiempos de respuesta a Zipkin que ofrece un panel web en el que identificar que llamadas se han hecho entre microservicios y cuales han sido sus tiempos de respuesta.
    Continuar leyendo...

  • Centralizar y consultar las trazas de las aplicaciones con Elasticsearch, Logstash y Kibana

    planeta-codigo programacion

    Las aplicaciones monolíticas solo generan un archivo de trazas, es fácil de monitorizar, basta con conectarse por SSH a la máquina de su entorno de ejecución y utilizar los comandos grep o tail o descargarlo para examinarlo con otra herramienta de forma local. Pero aún siendo una aplicación monolítica es raro que una organización tenga solo una aplicación sino varias diferentes y las aplicaciones complejas se dividen en varias aún siendo parte de la misma aplicación. Esto hace que haya múltiples aplicaciones en cuyo caso acceder por SSH a una máquina diferente en cada caso no es cómodo. En el caso de múltiples aplicaciones o aplicaciones basadas en microservicios se opta por centralizar las trazas provenientes de múltiples fuentes en una única herramienta, una de las herramientas es la combinación de Elasticsearch, Logstash y Kibana que forma la pila ELK.
    Continuar leyendo...

  • Funcionalidades que necesitan las aplicaciones basadas en microservicios y herramientas que las proporcionan

    planeta-codigo programacion

    Los microservicios aún algunas ventajas necesitan una infraestructura mucho más compleja y necesitan de varias funcionalidades que en una aplicación monolítica no son necesarias. Para desarrollar y mantener con éxito una aplicación nativa para la nube basada en microservicios hay varias herramientas individuales específicas que resuelven cada una un problema específico de los microservicios. En este artículo se identifica cuales son las áreas funcionales que necesitan los microservicios, algunas herramientas hay para cada una de esas herramientas y algunos criterios para elegir una u otra herramienta.
    Continuar leyendo...

  • Novedades de Java 15

    java planeta-codigo

    Algunas novedades de anteriores versiones que en la versión de Java 15 pasan a calificarse con el grado de producción y otras características como una segunda versión preliminar. Sin grandes cambios en el lenguaje tan destacables de versiones anteriores como las lambdas de Java 8 o los módulos de Java 9, en Java 15 se añaden las sealed classes.
    Continuar leyendo...