• Novedades de Java 16

    java planeta-codigo

    En Java 16 los cambios en el lenguaje no son tan notables que en versiones anteriores, aún así el calendario se sigue manteniendo y en cada versión se incluyen mejoras incrementales destacables. Se publica la versión final y lista para producción de algunas características y se añaden nuevas en forma de vista previa.
    Continuar leyendo...

  • Repositorio de artefactos privado con Nexus

    java planeta-codigo programacion

    Los repositorios de software almacenan los artefactos, son utilizados por las herramientas de construcción que los descargan y almacenan de forma local para posteriores usos las dependencias que los proyectos declaran en el archivo de construcción. Los desarrolladores de los artefactos publican en los repositorios de software las nuevas versiones. Nexus es un repositorio de software con soporte para repositorios de software de varios tipos, Maven para Java, imágenes de Docker, paquetes npm para JavaScript además de artefactos para los lenguajes Python y Go.
    Continuar leyendo...

  • Acceso simple y seguro a sistemas remotos con Boundary

    gnu-linux planeta-codigo

    Boundary es otra herramienta de HashiCorp dedicada a la seguridad. Vault está centrada en el almacenamiento de secretos, Boundary está centrada en otro aspecto de la seguridad que es el acceso a sistemas remotos. Una herramienta mejor adaptada y teniendo en cuenta las propiedades dinámicas de los sistemas actuales. Es una alternativa a los métodos de VPN, bastión y firewall que se utilizan para permitir estos accesos remotos.
    Continuar leyendo...

  • 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

    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

    Java

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