• Estrategia de batalla básica en el juego World of Warships Legends

    juegos

    El juego World of Warships es un juego de estrategia en el que la habilidad en el manejo del mando o disparo no es tan importante para ser un jugador que tenga un nivel por encima de la media. Otra parte importante de este juego es el juego en equipo en la que cada miembro según clase de barco y características ha de desempeñar su papel para que el equipo consiga la victoria. Conocer la misión de cada barco, las características de barco propio y del contrario junto con otras nociones básicas como que objetivos enemigos son los prioritarios, dónde posicionarse y que errores comunes no cometer también contribuyen a ser un mejor jugador.
    Continuar leyendo...

  • Analítica web en el servidor sin JavaScript en el cliente con GoAccess

    planeta-codigo web

    Google Analytics es la herramienta más utilizada para implementar la funcionalidad de analítica en un sitio web. Es fácil de usar, de implementar, no requiere mantenimiento de infraestructura propia, es gratuita, ofrece numerosas funcionalidades que ayudan enormemente a obtener información del sitio web, de los usuarios, obtener informes. Sin embargo, Google Analytics es una tercera parte con la que se comparte la información del sitio web que supone una pérdida de privacidad y protección de datos del sitio web y requiere instalar un script de JavaScript que ralentiza la carga de las páginas web. GoAccess ofrece analítica web en tiempo real que al contrario que Analytics obtiene los datos únicamente desde el lado del servidor basándose en los archivos del log del servidor web, es software libre y es utilizable sin necesidad de involucrar a terceras partes.
    Continuar leyendo...

  • Análisis y guía del juego de rol For the King

    juegos

    El juego de rol For the King no destaca por tener los gráficos más avanzados o una historia muy elaborada. Lo compensa con una muy buena implementación de lo esencial en un juego de rol con múltiples clases de personajes, estadísticas en cada atributo, equipo y objetos, un sistema de combate sencillo, rápido y bien implementado basado en estadística que requiere pensar en la acción a realizar durante el turno de combate. Un juego sencillo a la vez que bastante entretenido en la categoría de juego de rol, estrategia, exploración de mazmorras y combate por turnos.
    Continuar leyendo...

  • Hemeroteca #18

    blog planeta-codigo

    Blog Bitix

    Una cosa es escribir artículos de ejemplo y otra usarlos en una empresa que factura unos cuantos cientos de millones de euros cuyo servicio es considerado crítico en producción. Por ejemplo por citar algunos artículos de este año, algo como la autenticación de los usuarios con Keycloak no es sencillo implementarlo e integrarlo en una organización con numerosos sistemas ya funcionando, o implementar un segundo factor de autenticación, o un sistema para realizar las traducciones, o trazabilidad con Sleuth y Zipkin, o tener una herramienta para consultas SQL en producción con SQLPad, o definir una autoridad de certificación, o disponer de una arquitectura de referencia en grado de producción de las aplicaciones Consul, Vault y Nomad de HashiCorp. No solo es usarlo hay que mantenerlo, definir un plan para intervenciones comunes como realizar copias de seguridad de las bases de datos o actualizaciones a nuevas versiones sin que afecte al servicio. Así que los artículos quizá estén muy bien pero hay algunas cosas más a tener en cuenta para aplicarlos en un caso de producción en un organización.


    Continuar leyendo...

  • Artículo #8 de Yo apoyo al software libre

    planeta-codigo software-libre

    Con este artículo continúo haciendo de vez en cuando una pequeña donación a algunos programas que utilizo habitualmente y proyectos que me parecen importántes e útiles con la intención de apoyar su desarrollo aunque sean cantidades pequeñas. Este es ya el octavo artículo de donación que escribo y poco a poco las cantidades que he donado ya empiezan a ser respetables.
    Continuar leyendo...

  • Para qué sirve la palabra clave final en el código fuente Java

    java planeta-codigo

    Java

    Algunas personas y en algunos proyectos Java añaden en la declaración de cada parámetro de un método o variable local la palabra reservada final.

    La palabra final tiene su utilidad pero hacerlo de forma indiscriminada y en la totalidad de cada parámetro y variable local de cada método hace más verboso el código sin proporcionar una utilidad significativa porque Java ya en ciertas circunstancias considera a muchas variables efectivamente como final, si al escribir el código se sigue la recomendación de no hacer nunca asignaciones sobre variables que son parámetros y se prefiere crear una nueva variable local en vez de modificar el valor de una existente.


    Continuar leyendo...

  • Internacionalizar, localizar y dar formato a cadenas, números, importes y fechas en Java

    java planeta-codigo

    La internacionalización y localización son funcionalidades habitualmente necesarias de implementar en una aplicación. La localización ha de tener en cuenta los diferentes literales para cada idioma y no hardcodearlos en el código fuente de la aplicación, las diferentes formas plurales de los lenguajes, el formato de números e importes, fechas e incluso utilizar la forma correcta para ordenar cadenas alfabéticamente.
    Continuar leyendo...

  • La herramienta Weblate para traducir una aplicación a múltiples idiomas

    planeta-codigo programacion software-libre

    La internacionalización (i18n) y localización (i10n) en un proyecto de software es muy habitual y necesario cuando la aplicación ha de soportar múltiples lenguajes, países, regiones, culturas o en el mismo país diferentes idiomas oficiales según la región. La traducción necesita un flujo de trabajo coordinado entre los desarrolladores de la aplicación que realizan la internacionalización y los traductores que realizan la localización. Para facilitar el flujo de trabajo y funcionalidades útiles para los traductores hay herramientas específicas para la tarea, una herramienta para traducciones de software libre es Weblate.
    Continuar leyendo...

  • Tipos de arquitecturas de aplicaciones de software

    programacion planeta-codigo

    Con el paso de los años las arquitectura recomendadas han cambiado. En el caso de las aplicaciones web pasando por la arquitectura spaghetti, a la por capas y finalmente con una mezcla de hexagonal, domain-driven-design o DDD y dependiendo del caso siendo RESTful, utilizando CQRS, estándo dirigida por eventos o event-driven y en los casos en los que su aplicación es útil usando event sourcing.
    Continuar leyendo...

  • Guía básica sobre teclados mecánicos para ordenador

    hardware planeta-codigo

    Los teclados mecánicos son un producto de mayor calidad que los teclados de membrana más baratos. Los teclados mecánicos son apreciados por sus usuarios por la diferencia de tacto en la pulsación de las teclas, durabilidad, personalización y formatos de tamaños. Los teclados mecánicos son más caros pero para los usuarios que hacen un uso intensivo de ellos durante muchas horas son una mejora significativa en la escritura y pulsación de teclas.
    Continuar leyendo...

  • Autenticación con OpenID/OAuth en cualquier web con Nginx y de forma nativa con Spring Boot

    java planeta-codigo programacion software-libre

    La autenticación permite identificar a los usuarios en una aplicación, en muchas es una necesidad para no permitir accesos no autorizados a la información que proporcionan o realizar las acciones que ofrecen. Las aplicaciones heredadas o legacy en ocasiones no es posible modificarlas y cuando una organización tiene varias aplicaciones gestionar los usuarios en cada una de ellas de forma individual se convierte en un problema. OpenID Connect proporciona la autenticación en el protocolo OAuth 2, con este protocolo las aplicaciones pueden delegar la autenticación a un proveedor de autenticación y ser este la que identifique a los usuarios y los gestione de forma forma centralizada además de proporcionar un inicio de sesión único o single-sing-on a varias aplicaciones. El servidor web Nginx tiene proxys que permiten añadir autenticación OAuth 2 a cualquier servicio web y las aplicaciones de Spring Boot pueden implementarlo de forma nativa.
    Continuar leyendo...

  • Crear un archivo Zip con Java, comprimir y descomprimir datos

    java planeta-codigo programacion

    Java

    Desde las primeras versiones de Java en el JDK se incluyen clases en el paquete java.util.zip que heredan de las del paquete java.io del sistema de entrada y salida con las que crear archivos comprimidos en formato Zip y comprimir datos en este formato. Comprimir los archivos que permite reducir sensiblemente el tamaño de algunos tipos de archivos como los basados en texto o ciertos archivos que de por si no están comprimidos. En otros tipos de archivo que en su formato ya están comprimidos como las imágenes JPEG o WebP la reducción de tamaño no es tan grande. Al contrario que los los algoritmos de compresión para imágenes JPEG y WebP que son com pérdida de datos, los algoritmos de compresión de archivos son sin pérdida, esto quiere decir que los datos obtenidos al comprimirlos y posteriormente descomprimirlos son exactamente los mismos que los originales.


    Continuar leyendo...

  • Herramienta para ejecutar consultas SQL en la base de datos de producción

    software-libre programacion

    No siempre las aplicaciones proporcionan los datos que se necesitan. A veces para obtener cierta información de forma puntual o para corregir un dato que no se puede hacer desde la aplicación es necesario lanzar una consulta SQL a la base de datos relacional. Esto no es lo ideal, simplemente en ocasiones es lo más simple y rápido. Por otro lado, para tareas de análisis algunos usuarios necesitan una forma de tener acceso a los datos y obtener gráficas para analizarlos. En el artículo comento varias herramientas para tener acceso a las diferentes bases de datos ya sean de producción o del entorno de QA.
    Continuar leyendo...