• El patrón Open Session in View, qué es, ventajas, problemas y alternativas

    java planeta-codigo programacion

    En patrón Open Session in View lo que hace es mantener abierta la conexión a la base de datos durante toda la petición a un servidor. Esto tiene la ventaja de que en cualquier momento es posible recuperar datos de la base de datos, incluso desde las vistas pero tiene inconvenientes ya que las conexiones a la base de datos son un recurso escaso. Si además durante la petición se hacen peticiones a otros servicios que añaden tiempo de procesamiento la aplicación es posible que tenga problemas de escalabilidad con muchos usuarios y peticiones durante un corto periodo de tiempo.
    Continuar leyendo...

  • El problema de seguridad tabnabbing y phishing en los enlaces en nuevas pestañas a páginas externas y cómo solucionarlo

    planeta-codigo seguridad web

    A medida que las personas dependen en mayor medida para operar en internet como compras, acceso a cuentas bancarias o trámites administrativos la seguridad de las aplicaciones web es más crítica. Una parte de la seguridad es responsabilidad del usuario pero otra parte importante es responsabilidad del sitio web. Un potencial problema de seguridad está en los simples y aparentemente inocentes enlaces abiertos en nuevas páginas si al mismo tiempo es posible insertar contenido en la página que otros usuarios obtengan. El resultado es una vulnerabilidad de tabnabbing y phishing.
    Continuar leyendo...

  • La concurrencia en la plataforma Java con Project Loom

    java planeta-codigo

    Desde la publicación de Java 8 junto con el nuevo calendario de publicación las mejoras en la plataforma Java y en el lenguaje han sido constantes y significativas. Las mejoras continúan en cada nueva versión y hay muchas otras en preparación para ser publicadas cuando estén listas. Una de ellas muy prometedoras es una nueva implementación de los threads mucho más ligera que han existido desde la primera versión. Estos harán innecesarios en la mayoría de los casos los más complicados modelos programación asíncrona, la programación reactiva, la programación mediante callbacks y las construcciones async/await.
    Continuar leyendo...

  • La controversia sobre el sistema de inicio systemd adoptado en GNU/Linux

    gnu-linux planeta-codigo

    systemd ya tiene una década de desarrollo, ha sido adoptado como sistema de inicio en las distribuciones GNU/Linux más importantes como Debian, Ubuntu, Fedora o Arch Linux y derivadas. Durante este tiempo ha recibido múltiples críticas en varios aspectos. Sigue evolucionando cambiando aspectos importantes de cómo han sido siempre las distribuciones, uno de los próximos es posible que sea systemd-homed con la intención de hacer portables y autocontenidos las carpetas de inicio de los usuarios.
    Continuar leyendo...

  • Introducción y uso básico de la distribución GNU/Linux Fedora Silverblue

    gnu-linux planeta-codigo

    Fedora Silbervlue es una distribución innovadora es su forma de sistema base usando OSTree e instalar aplicaciones gráficas con Flatpak y de paquetes de linea de comandos con Toolbox. Todas estas tecnologías le permiten considerarse una distribución rolling-release tanto en el sistema como aplicaciones y paquetes. Estas tecnologías y forma de actualizar el sistema hace que sea mucho menos propenso a errores que los tradicionales en las distribuciones GNU/Linux de actualización de paquetes, ¿la siguiente generación de distribuciones serán como Fedora Silverblue?.
    Continuar leyendo...

  • Análisis y guía del juego de estrategia Frostpunk

    juegos

    Frostpunk ha sido uno de los juegos con los que he disfrutado mucho de los pocos que he jugado hasta el momento en la PlayStation 4. Su historia diferente y el tener que tener que tomar decisiones difíciles para conseguir la supervivencia de la colonia lo hacen distinto a los muchos otros juegos disponibles. No es muy largo pero acabado activa nuevos modos de juego para seguir jugándolo.
    Continuar leyendo...

  • Copia de seguridad, restauración y carga de datos en PostgreSQL y MySQL

    planeta-codigo programacion

    Siempre es recomedable tener una copia de seguridad de algo tan importante como suelen ser los datos en una base de datos. Esa copia de seguridad sirve para en caso de desastre restaurar la mayor parte de los datos, también sirven para restaurarlos en otras máquinas diferentes a la principal. Tanto PostgreSQL como MySQL tienen comandos para hacer copias de seguridad y restaurarlas, también tiene opciones para cargar datos de forma masiva de forma rápida y más eficiente que con sentencias SQL.
    Continuar leyendo...

  • Renombrar múltiples archivos en GNOME

    gnu-linux planeta-codigo

    Tienes unas decenas de archivos ya sean documentos, imágenes, fotos o archivos de música con nombres que quieres cambiar pero como son muchos hacerlo uno a uno es una tarea que requiere mucho tiempo. Por suerte GNOME posee una utilidad para realizar el renombrado de múltiples archivos, basta seleccionar los archivos a renombrar en el explorador de archivos o Nautilus y pulsar la tecla F2, con el diálogo que se muestra se introduce el nombre del archivo y el formato de la secuencia que se desee para asignar a cada archivo un nombre único y en pocos segundos se realiza el renombrado.
    Continuar leyendo...

  • Sobre el futuro de las distribuciones GNU/Linux y los sistemas operativos

    gnu-linux planeta-codigo

    Linux es uno de los mejores sistemas operativos actuales y sobre todo usable y completo. Eso no quiere decir que en el futuro no tan lejano haya cambios importantes en como hemos conocido las distribuciones de GNU/Linux hasta hoy. Ya se están produciendo cambios y surgiendo nuevas basadas en tecnologías y principios significativamente diferentes que mejoran algunas deficiencias de la actual generación en la que están basadas la mayoría de las distribuciones más populares actuales.
    Continuar leyendo...

  • Tres contribuciones al proyecto Apache Tapestry, actualización de la página web, artwork del logotipo y arquetipo Maven quickstart

    planeta-codigo tapestry

    Apache Tapestry

    El framework Apache Tapestry para el desarrollo de aplicaciones Java basadas en componentes es un de los proyectos que sigo desde hace mucho tiempo. Hasta el día de hoy no he encontrado y probado nada mejor en lo que he visto con diferencia para el propósito de desarrollar aplicaciones web en el que el HTML es generado en el lado del servidor. Está basado en componentes y se consigue una alta productividad y reutilización en el mismo proyecto y diferentes proyectos. En marzo del 2020 se publicó la versión 5.5.0.


    Continuar leyendo...

  • 50+ comandos básicos y útiles de GNU/Linux

    gnu-linux planeta-codigo

    Desde la línea de comandos hay disponibles una colección de comandos útiles para realizar ciertas tareas de forma rápida y sencilla. Los comandos se pueden incluir en scripts de bash o pequeños programas para el intérprete de comandos y componer la entrada de unos comandos con la salida de otros a través de tuberías dándoles más versatilidad.
    Continuar leyendo...

  • Argumentos de línea de comandos con JCommander en una aplicación Java

    java planeta-codigo

    Java

    En Java la librería JCommander simplifica procesar los argumentos de línea de comandos complejas. Los argumentos de un programa de línea de comandos pueden ser requeridos, opcionales, con múltiples valores y las opciones escribirse de forma abreviada o de forma larga, además de emitir una pequeña guía de uso del comando con esta información y descripciones.

    Otras posibilidades que ofrece JCommander son convertir los argumentos a un tipo determinado, especificar el separador para los valores, validaciones personalizadas, cambiar el separador entre el nombre del argumento y los valores, internacionalización, parámetros dinámicos, sintaxis complejas donde varios comandos tengas su propia lista de argumentos. En la documentación de JCommander están explicadas con ejemplos.


    Continuar leyendo...

  • Animaciones y transformaciones 2D y 3D con CSS

    planeta-codigo web

    HTML

    En la antigüedad para añadir algo de dinamismo a las páginas había que hacerlo mediante código JavaScript, por ejemplo, para hacer que una imagen cambiase por otra cuando el ratón pasaba por encima. Con las nuevas versiones de CSS esto se realiza con selectores de CSS en la hoja de estilos. Ahora es posible hacer muchas cosas sin necesidad de utilizar código JavaScript, dos de ellas son las transformaciones 2D, 3D y animaciones. No solo es más fácil crear las animaciones con CSS sin requerir crear código que es más difícil de modificar sino que también ofrece mejor rendimiento.


    Continuar leyendo...

  • Introducción al juego de batallas navales World of Warships Legends para consola

    juegos

    World of Warships es un juego de competición entre jugadores ambientado en batallas navales. Tienen un componente de rol a poder elegir barcos cada uno con diferentes estadísticas, capitanes e inspiraciones o módulos pero en lo que creo que destaca sobre otros juegos por internet con otros jugadores es que este tienen un alto componente de estrategia y de juego en equipo que es decisivo para conseguir la victoria, no dependiendo tanto de la habilidad con el apuntado o habilidad en el manejo del mando aunque también es importante lo es en menor medida. Es gratuito y está disponible para PlayStation 4 y Xbox, su versión para PC es un poco distinta estando disponible a través Steam.
    Continuar leyendo...

  • Generar enlaces a páginas y de eventos en Apache Tapestry

    tapestry planeta-codigo

    Apache Tapestry

    Una de las partes esenciales de una aplicación web es generar enlaces a otras páginas, enlaces a los manejadores de los formularios que procesan los datos enviados, enlaces a manejadores de solicitudes AJAX. Generar enlaces no solo es necesario para ser usados dentro de la misma aplicación web sino también para ser usados en el código JavaScript, en correos electrónicos u informes.

    La ventaja de utilizar un framework es que estos facilitan el desarrollo y en el caso de generar enlaces suelen incluir soporte. Pero también es importante que la facilidad que proporcionan los frameworks para generarlos no sea concatenando y hardcodeado cadenas. Si es así en el momento de querer renombrar una página o manejador de evento se convierte en un problema por la inseguridad que plantea para realizar el refactor, más en una aplicación grande. Y esto puede dar el caso de que algunos refactors no se aborden por miedo a romper cosas, a la larga es un problema para el desarrollo futuro y el mantenimiento de la aplicación.


    Continuar leyendo...