• Cifrado y descifrado como servicio con Vault

    gnu-linux planeta-codigo

    Implementar la seguridad en una aplicación no es sencillo, cuando un sistema se compone de múltiples aplicaciones los posibles fallos de seguridad se multiplican. Vault es una herramienta que permite centralizar y delegar varios aspectos de las aplicaciones relativos a la seguridad, uno de ellos es el cifrado y descifrado de los datos para su almacenamiento y recuperación de una base de datos. Entre sus funcionalidades Vault ofrece como servicio el cifrado y descifrado de datos.
    Continuar leyendo...

  • Las anotaciones de Java y ejemplo de procesador de anotaciones en tiempo de compilación

    java planeta-codigo

    Las anotaciones añadidas en Java 5 son muy utilizadas por múltiples librerías entre ellas Hibernate, Spring o Immutables. Desde Java 6 se ofrece una API para el procesamiento de las anotaciones en tiempo de compilación que permiten generar archivos de código fuente o emitir mensajes de error. Los procesadores de anotaciones son invocados por el compilador de Java permitiendo extender su comportamiento. En el artículo se muestra una implementación para generar clases que implementan el patrón Builder y otro para realizar comprobaciones.
    Continuar leyendo...

  • Guía de instalación de GNU/Linux para la Raspberry Pi

    gnu-linux planeta-codigo

    El propósito original del computador de pequeño tamaño Raspberry Pi es el educativo y aprendizaje de progamación e introducción a la electrónica, sin embargo, debido a su bajo coste y ser una computador de propósito general es utilizado con otros múltiples propósitos. El primer paso para empezar a usar una Raspberry Pi es instalarle un sistema operativo, dos opciones son el ofrecido por la fundación de la Raspberry Pi o la versión ofrecida por Ubuntu.
    Continuar leyendo...

  • Introducción a DDD y arquitectura hexagonal con un ejemplo de aplicación en Java

    planeta-codigo programacion

    La arquitectura de una aplicación define la estructura, organización y relación entre los componentes de la misma. En aplicaciones complejas utilizar DDD y arquitectura hexagonal son una opción recomendada. Hay varios libros técnicos dedicados a cada uno de ellos. En este artículo hago una introducción a DDD y arquitectura hexagonal y proporciono un ejemplo con el código fuente con el que implementar, analizar y ejecutar los conceptos teóricos en los que se basan.
    Continuar leyendo...

  • Licencias de software libre y diferencias con software privativo y de código abierto

    planeta-codigo software-libre

    Hay varias categorías de licencias de software que los desarrolladores como autores del software le asignan al software que crean o en el caso de empresas le asignan para proteger su propiedad intelectual. En la década de los años 80 Richard Stallman lanzo el movimiento de software libre creando software equivalente al de UNIX utilizando una licencia de software libre con unos principios éticos. Otras categorías de licencias son las privativas y las de código abierto.
    Continuar leyendo...

  • Después de dos años de comprar un Intel NUC, ¿cambiaría algo en el futuro?

    hardware planeta-codigo opinion

    La tecnología informática sigue avanzado, no todos los días o semanas hay cambios pero con el paso de los semestres y lanzamientos de nuevos productos o estándares que se hacen cada año las mejoras son incrementales. Entre la adquisición de un ordenador y la necesidad del siguiente las mejoras son apreciables. Un procesador significativamente más potente, memoria RAM en cantidades absurdamente grandes, almacenamiento SSD a unos precios mucho más económicos, en mayores cantidades o aún más rápidos. No se cual será mi siguiente equipo a mi Intel NUC dependerá de la situación de los productos disponibles en el mercado y mis necesidades, el requisito de que sea lo más pequeño que me satisfaga seguirá manteniéndose, a partir de ahí depende de cosas de cómo evolucionen los juegos en la nube y si tengo fibra en vez de ADSL.
    Continuar leyendo...

  • Qué es la variable PATH del sistema y cómo cambiarla en GNU/Linux

    planeta-codigo gnu-linux

    Al ejecutar un comando en la terminal el intérprete de comandos de GNU/Linux lo busca en los directorios especificados en la variable de entorno del sistema PATH, esta variable de entorno contiene una lista de directorios separados por el caracter : en la que se busca por orden. Al instalar un paquete seguramente el programa ejecutable se instale en /usr/bin, directorio que por defecto está incluido en la variable PATH.
    Continuar leyendo...

  • En Java, ¿los argumentos se pasan por valor o por referencia?

    java planeta-codigo

    En el lenguaje de programación Java los punteros no existen de la misma forma que en otros lenguajes como C o C++. En Java existen los punteros o referencias pero no son libres de apuntar a cualquier dirección de memoria del programa, en C y C++ lenguajes más destinados a la programación de sistemas y cercanos al lenguaje de la máquina ofrecen manipulación de punteros pudiendo obtener un puntero con la dirección de memoria de una variable.
    Continuar leyendo...

  • Documentación para registrar las decisiones de arquitectura en software e infraestructura

    planeta-codigo programacion

    Las tareas de un programador no consisten únicamente en escribir líneas de código o de un arquitecto decidir que usar o no usar y como. Una tarea importante de un programador o un arquitecto debe ser también escribir o mantener documentación actualizada. La arquitectura empleada en una aplicación permite conocer cuáles son sus componentes y piezas específicas de las que se compone sin tener que analizar el código fuente. La arquitectura de una aplicación puede ser de muchas formas, las decisiones de arquitectura también son un aspecto susceptible de ser documentadas, que permitan conocer cuáles fueron las motivaciones para elegir entre unas opciones y otras y que cambios de arquitectura ha sufrido una aplicación y por que motivos.
    Continuar leyendo...

  • Analítica web con Matomo como alternativa a Google Analytics

    planeta-codigo web

    Matomo es una alternativa a Google Analytics con funciones similares que cubren las necesidades de la mayoría de sitios web. Es software libre con algunas funciones premium que requieren comprar una licencia anual de uso. Matomo se puede hospedar on-premise que requiere administrar esa infraestructura o en la nube ofrecida por la propia Matomo. En el artículo muestro en un ejemplo como empezar a usar Matomo en un sitio web con Docker.
    Continuar leyendo...

  • 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...