• Información básica del sistema y entorno de escritorio desde la terminal de GNU/Linux

    gnu-linux planeta-codigo

    GNU

    Linux

    Los comandos neofetch y screenfetch permiten obtener una información básica del sistema desde la terminal. Esta información permite saber la distribución GNU/Linux que se está usando, la versión del kernel de Linux, el número de paquetes instalados, que intérprete de comandos se usa y su versión, la resolución de la pantalla, el gestor de ventanas y su tema, la colección de iconos, terminal y fuente de la terminal, CPU, GPU y cantidad de memoria usada y total del sistema.


    Continuar leyendo...

  • Cobertura de código y mutation testing en pruebas unitarias con JaCoCo y PIT en Java

    java planeta-codigo programacion

    En el caso extremo una cobertura de código del cien por cien pero que no tenga ningún assert pasa los teses pero que en realidad no comprueba nada así que por si sola no es garantía de tener teses efectivos. Mutation testing da una medida adicional a la cobertura de los teses más completa y efectiva que simplemente la cobertura de código ejecutado por los teses unitarios.
    Continuar leyendo...

  • Ventajas de usar un tipo específico para los identificadores de las entidades en vez de un tipo básico

    java planeta-codigo programacion

    Java

    Hibernate

    jOOQ

    Al persistir una entidad de dominio en la base de datos su identificador se guarda como un tipo de datos soportado por la base de datos. Si es una base de datos relacional habitualmente es el equivalente a un bigint o en una base de datos de documentos quizá un UUID. En las entidades de dominio el tipo de datos usado para el identificador es el equivalente de la base de datos en el lenguaje de programación. Por ejemplo, si en una base de datos la clave primaria es un bigint el identificador en la entidad de dominio es un Long. Esto es lo mas simple pero tiene algún inconveniente.


    Continuar leyendo...

  • Microservicios con Spring Cloud, Consul, Nomad y Traefik

    java planeta-codigo programacion software software-libre

    Sin entrar a si los microservicios son adecuados o no son adecuados en una aplicación, está claro que si se utilizan estos tienen varias necesidades. Un servicio de registro y descubrimiento, configuración centralizada, tolerancia a fallos, gateway/load balancer/reverse proxy, trazabilidad y métricas, autenticación, orquestación, … Los microservicios quizá no sean un gran monolito, quizá mas pequeños y con funcinalidad más acotada, pero el hecho de que se comuniquen a través de un medio más complejo y menos fiable como la red en vez de una llamada a un método y sean más numerosos hacen que la complejidad sea incluso mayor. Este artículo propone un ejemplo con Spring Cloud para los servicios, Consul para el registro y descubrimiento, Nomad para la orquestación y Traefik como gateway.
    Continuar leyendo...

  • Guía de inicio del gestor de terminales y sesiones tmux

    gnu-linux planeta-codigo software

    Las personas que usan de forma intensiva la terminal seguramente usando un multiplexador de terminales como tmux su trabajo es facilitado. Tmux permite dividir una terminal en paneles, ventanas independiente y sesiones. Usando sus múltiples combinaciones de teclas se divide una terminal o una ventana de forma horizontal y vertical en paneles del tamaño que se desee pudiendo de esta forma visualizar al mismo tiempo varias terminales ubicadas en cada panel. También se puede crear una configuración para iniciar tmux con la misma disposición de paneles, ventanas y sesiones.
    Continuar leyendo...

  • Novedades de Java 13

    java planeta-codigo programacion

    Java

    Continuando las mejoras incrementales cada seis meses el 17 de septiembre se publico Java 13. Java 13 incorpora algunas nuevas características interesantes que mejoran un facilitan la lectura del código, entre las más destacadas están los bloques de texto y las expresiones switch mejoradas.

    Contenido del artículo

    Introducción

    Casi coincidiendo con la publicación de Java 13 se publicado Jakarta EE 8 que únicamente tiene como novedad que su propiedad ha pasado a estar baja la fundación Eclipse, es totalmente compatible con Java EE 8 y sus últimas mejoras, las novedades vendrán en versiones posteriores de Jakarta EE en las que se dará importancia a la tendencia de las aplicaciones para su funcionamiento en entornos orientados a la nube. Casi al mismo tiempo se ha publicado JavaFX 13 ya fuera del JDK en onde puede seguir su propio ciclo de publicaciones independiente del JDK.


    Continuar leyendo...

  • Librería editor de markdown JavaScript y procesador de markdown para generar HTML con Java

    java javascript planeta-codigo programacion

    JavaScript

    Algunas aplicaciones permiten escribir contenido para posteriormente mostrarse en una página web. Permitir introducir directamente en texto en formato HTML es peligroso ya que puede causar problemas si no es correcto y ha de validarse para no permitir introducir archivos CSS, archivos JavaScript u otras etiquetas que supongan un problema de seguridad o desmaqueten la página web. Una alternativa es utilizar como entrada texto en formato markdown y posteriormente transformarlo a contenido en formato HTML.


    Continuar leyendo...

  • Desempaquetado de PlayStation 4 Slim de 1 TB

    hardware juegos

    A pesar de estar la PlayStation 4 al final de su ciclo de vida igualmente puede ser un buen momento para comprarla por otros motivos. Como por ejemplo que ahora es cuando mejor catálogo de juegos posee y que se ofrece en un modelo slim que consume menos energía, es sensiblemente más pequeña, se calienta menos y es más silenciosa. Como usuario de GNU/Linux y un Intel NUC como ordenador personal una consola es una buena opción como plataforma de juegos sin complicaciones.
    Continuar leyendo...

  • La aplicación cliente de Steam en GNU/Linux

    gnu-linux planeta-codigo

    Durante unos años he estado sin jugar a juegos porque al haberme pasado a GNU/Linux creía que no se podía al menos a los juegos comerciales actuales, en GNU/Linux hay algunos juegos que funcionan perfectamente como juegos retro con RetroArch, SuperTux, OpenTTD o Battle for Wesnoth en entre algunos de diversos géneros. Pero la realidad es que con Wine y el cliente de Steam son dos posibilidades para jugar a algunos perfectamente y tener un catálogo que no llega a la altura de Windows pero bastante amplio.
    Continuar leyendo...

  • Ejemplo sencillo de como crear un documento PDF con Java y PDFBox

    java planeta-codigo programacion

    Leer un CSV, escribir un CSV, archivos excel, generar gráficas para visualizar datos junto con generar documentos PDF son tareas comunes de las aplicaciones como forma de exportar los datos de la base de datos de una aplicación. Generar un archivo PDF con PDFBox requiere unas pocas lineas de código para documentos con cierta complejidad quizá sea más adecuado usar la librería JasperReports.
    Continuar leyendo...

  • Generar credenciales de conexión a base de datos bajo demanda con Vault

    programacion planeta-codigo software

    Una de las funcionalidades proporcionada por Vault es generar credenciales dinámicas para la conexión a bases de datos. Generar las credenciales de forma dinámica proporciona varios beneficios: no hay unas credenciales que usen las aplicaciones que tengan un tiempo de vida indefinido, las aplicaciones no necesitan guardar en su configuración las credenciales, las credenciales se rotan de forma automática y los permisos para obtenerlas se pueden revocar de forma centralizada con Vault para cuales quiera bases de datos que se utilicen. Soporta las bases de datos más populares entre ellas PostgreSQL.
    Continuar leyendo...

  • Smartcards en vez de discos para una futura generación de consolas

    juegos opinion planeta-codigo

    Todo indica que el formato físico de los juegos está a punto de desaparecer en una futura generación de consolas no muy lejana como ya ha ocurrido en gran medida con la música o los libros. Pero los juegos digitales crean otros problemas que los juegos físicos no tienen y es el motivo por el que algunos usuarios son contrarios a solo los digitales, ¿sería posible solución a los problemas de los juegos físicos y de los digitales? Aquí teorizo sobre este tema y planteo una solución, las smartcards.
    Continuar leyendo...

  • Implementar tolerancia a fallos con Resilience4j

    java planeta-codigo

    Resilience4j

    Java

    Hystrix ha sido una de las primeras librerías en Java disponibles para implementar varios patrones de tolerancia a fallos en los microservicios. Desde hace un tiempo ha pasado a modo mantenimiento en el que ya no se incluyen nuevas características, una de las librerías recomendadas como sustituta es Resilience4j. Resilience4j proporciona las características similares con algunas ventajas adicionales.

    Los patrones útiles para aumentar la tolerancia a fallos debido a problemas de red o fallo de alguno de los múltiples servicios son:


    Continuar leyendo...