• Herramientas de reconocimiento de texto en imágenes con OCR

    java gnu-linux planeta-codigo

    Un programa de reconocimiento de caracteres o OCR permite obtener el texto de una imagen o fotografía tomada con la cámara de un teléfono inteligente, captura de pantalla, scanner u otro medio. Al programa OCR se le proporciona la imagen y este genera como resultado el texto reconocido, si la imagen es de buena calidad el reconocimiento de caracteres es bastante preciso. Hay programas OCR de línea de comandos, con interfaz gráfica, en línea sin necesidad de instalar software y también es posible realizar OCR desde en un programa con un lenguaje de programación como Java.
    Continuar leyendo...

  • Las clases y librerías básicas de Java para bases de datos relacionales

    java planeta-codigo

    Las aplicaciones suelen delegar el guardado del estado y de los datos que tratan en sistemas especializados en almacenar datos. Las bases de datos relacionales son sistemas que han probado su eficacia y utilizad durante las últimas décadas de la computación. Aún con la aparición de múltiples bases de datos NoSQL alternativas las bases de datos relacionales se seguirán utilizando o incluso combinando diferentes tipos de bases de datos en un mismo sistema. Java proporciona desde sus primeras versiones el paquete java.sql con varias clases para el acceso a bases de datos relacionales, aunque el acceso a las bases de datos relacionales se suele utilizar a través de librerías es útil conocer estas clases de Java que constituyen los conceptos fundamentales de acceso a base de datos y que las librerías internamente son las que usan.
    Continuar leyendo...

  • Programas basados en consola con Java usando Lanterna

    java planeta-codigo

    Todavía hoy en día la terminal no ha desaparecido, y no lo hará, aún habiendo pasado ya algunas décadas de la aparición de las interfaces gráficas. Algunas ventajas de la terminal es que conociendo los comandos es más fácil realizar una tarea que con un programa basado en una ventana con botones que hay que pulsar usando el ratón, además las tareas usando comandos se pueden automatizar con scripts y combinar varios donde la entrada de uno sea la salida de otros dando lugar a funcionalidades mucho más complejas que las que realizan los comandos individualmente.
    Continuar leyendo...

  • Los conceptos de encapsulación, herencia, polimorfismo y composición de la programación orientada a objetos

    java programacion

    La programación orientada a objetos es un paradigma adoptado por todos lenguajes modernos y publicados en las últimas décadas. La programación orientada a objetos proporciona una sintaxis en el lenguaje para definir abstracciones que hacen sencillo utilizar conceptos cuya implementación es compleja. La encapsulación, la abstracción, la herencia, el polimorfismo, la composición y la inyección de dependencias son conceptos fundamentales a conocer en la programación orientada a objetos.
    Continuar leyendo...

  • Convertir texto o imagen a arte de caracteres ASCII

    gnu-linux planeta-codigo software-libre

    El arte ASCII es utilizar caracteres para obtener una composición que simula una imagen o dibujo. Es posible convertir texto a arte de caracteres ASCII o una imagen en formato svg, jpeg o png a texto. En GNU/Linux hay herramientas de línea de comandos que permiten crear arte ASCII tanto para texto como para imágenes. En internet también hay disponibles páginas que ofrecen el servicio de generar arte ASCII sin necesidad de instalar ningún software en la propia computadora.
    Continuar leyendo...

  • Autenticación con segundo factor de autenticación en SSH

    gnu-linux seguridad software-libre

    El servicio SSH permite el acceso a equipos remotos a un usuario desde cualquier ubicación en la que se encuentre el usuario siempre que tenga conectividad desde el punto de acceso a internet y el equipo remoto. La autenticación se realiza mediante un usuario y contraseña o mediante clave privada y pública, adicionalmente SSH también se puede configurar para requerir un segundo factor de autenticación o 2FA que consituye una segunda clave.
    Continuar leyendo...

  • Análisis de la serie de juegos de plataformas Trine

    juegos planeta-codigo

    La serie de juegos Trine destacan por su nivel artístico gráfico y como juego de plataformas con puzles, incluso el primer Trine destaca en esto. Los juegos están basados en las aventuras de tres personajes un caballero, un mago y una ladrona cuya historia es narrada antes de cada nivel y está completamente doblada al español. El objetivo es llegar al final de cada nivel empleando una combinación de habilidades de cada personaje pero para darle más diversión al juego es posible completarlo con varios niveles de dificultad o como objetivos adicionales encontrar todo los orbes de experiencia, algunos de los cuales están un poco escondidos.
    Continuar leyendo...

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