• Transpiling de ECMAScript 6 a 5, Uglify y ESLint con Gulp

    javascript planeta-codigo programacion

    JavaScript

    Este artículo es una combinación de varias cosas que forman el actual estado del arte en JavaScript. Gulp como ejecutor de tareas, traducción o transpiling de ECMAScript 6 a ECMAcript 5 con Babel, Uglify como minificador y ofuscador de código y ESLint como verificador del código.

    Dos de los navegadores web más importantes como Chrome y Firefox ya soportan gran parte de la especificación de ECMAScript 6 que añade nuevas funcionalidades al lenguaje JavaScript que comento en Introducción al JavaScript de ECMAScript 6. Sin embargo, hasta que prácticamente toda la totalidad de dispositivos soporten ECMAScript 6, formada por la diversidad actual de dispositivos en las que se incluyen los dispositivos móviles es necesario traducir el código JavaScript a la especificación ECMAScript 5. Haciendo esta traducción podemos usar ES6 y al mismo tiempo soportar todos los dispositivos. Hacer transpiling es necesario si el código será accedido desde internet de forma pública para cualquiera y queremos usar las nuevas características de ECMAScript 6. Si se tratase de una aplicación en un entorno controlado de uso interno en el que se usasen los navegadores que soporten ES6 el transpiling no sería imprescindible.


    Continuar leyendo...

  • Cómo implementar correctamente y por qué los métodos equals y hashCode de los objetos Java

    java planeta-codigo programacion

    Los métodos equals y hashCode son esenciales en las colecciones de objetos. Para su correcta implementación es necesario conocer unas cuantas propiedades que han de cumplir estos métodos. Pueden parecer sencillos pero no lo son tanto y una mala implementación posiblemente produzca algún tipo de error o comportamiento anómalo indeseado. En el siguiente artículo comento varias formas de implementarlos de forma sencilla y correcta.
    Continuar leyendo...

  • Introducción al JavaScript de ECMAScript 6

    javascript planeta-codigo programacion

    Con ECMAScript 6 se han incorporado al lenguaje varias novedades como nuevas palabras reservadas para definir variables y constantes, símbolos, interpolación de variables en cadenas, desestructuración, forma abreviada para declarar funciones, nueva sintaxis más sencilla para definir clases, objetos de tipo Map y Set, Promises como alternativa a callbacks, el protocolo Iterator y generadores, además de algunas otras cosas que si como yo no habías dedicado tiempo a aprender mejor JavaScript aún te resulten novedosas.
    Continuar leyendo...

  • Desempaquetado bombillas LED de PHILIPS

    Sustituyendo las bombillas incandescentes por bombillas LED o de bajo consumo de aquellas que usemos más habitualmente (salón, habitaciones y baño) podemos ahorrar de forma significativa en iluminación en la factura de electricidad. Su coste aunque más caro llega a compensar pasados unos meses tanto por su menor consumo como por su mayor vida útil.
    Continuar leyendo...

  • Guardar contraseñas de forma segura con KeePassXC

    gnu-linux planeta-codigo

    KeePassXC

    La mayor parte de servicios usan aún como forma de autenticación el método de usuario y contraseña. Si la contraseña proporcionada conocida solo por su usuario es correcta el sistema confía en que el usuario es quien dice ser. Las contraseñas deberían ser difíciles de averiguar, se recomienda que tenga una longitud mínima de 8 caracteres y que contenga letras en minúscula y mayúscula, números y símbolos. Sin embargo, cuanto más larga, fuerte y difícil sea de averiguar más difícil es recordarla.


    Continuar leyendo...

  • Instalar programas con Homebrew en macOS

    apple planeta-codigo

    Para no tener que descargar binarios e instalarlos manualmente y estar pendiente de nuevas versiones que se publiquen en un futuro en macOS está Homebrew. Homebrew es un gestor de paquetes similar a los existentes en las distribuciones GNU/Linux con el que podremos buscar software, instalar, actualizar, ver que hemos instalado, cuales están desactualizados, iniciar y parar servicios y desinstalar los paquetes o programas. Esta es una guía básica sobre como instalar software en macOS con Homebrew y como instalar iTerm2 que es una mejor terminal que la propia del sistema con iterm.
    Continuar leyendo...

  • Usar una imagen de fondo aleatoria al cargar una página web

    javascript planeta-codigo programacion

    Para darle un toque de estilo a la bitácora he usado unas cuantas texturas de fondo obtenidas de Subtle Patterns. Son unas imágenes con un patrón repetitivo de colores suaves y poco llamativos que podemos usar como fondo de una página web, son de libre uso respetando la licencia Creative Commons - Reconocimiento - Compartir igual. Podemos encontrar texturas en las siguientes categorías y motivos:

    En el momento de escribir este artículo hay 400+ texturas con diferentes patrones para temas claros, oscuros, … Como tenemos muchas podemos usar varias y hacer que se cargue una diferente de forma aleatoria cada vez que se visualiza una página variando un poco el estilo de la página cada vez que se carga. En el momento de escribir este artículo es lo que hago en Blog Bitix con el siguiente código JavaScript, puedes probar a recargar la página y verás que se carga otra textura de fondo.


    Continuar leyendo...

  • Mi primer Mac, yo usuario de GNU/Linux

    apple gnu-linux planeta-codigo

    Hace ya más de un lustro pase de usar Windows a usar GNU/Linux incluso en el trabajo, ahora por motivos laborales no me queda opción que usar un Mac, el primer Mac que usaré. En casa a nivel personal seguiré usando la distribución Arch Linux y antes de empezar a usar un Mac seguirá siendo así, ¿usar un Mac me hará cambiar de opinión y usaré un producto de Apple incluido a nivel personal en un futuro?
    Continuar leyendo...

  • Histórico de datos, auditoría y diferencias entre objetos con Javers en Java

    java planeta-codigo programacion

    Por seguridad, por auditoría o histórico de datos una aplicación puede requerir no solo guardar los valores actuales de los datos que maneja sino también las versiones anteriores y los cambios en cada valor de los mismos. En Java hay una librería llamada Javers que nos proporciona funcionalidades como comparación, snapshots, persistencia y un lenguaje de consulta para hacer búsquedas.
    Continuar leyendo...

  • Elegir una distribución GNU/Linux según el usuario, uso o equipo

    gnu-linux planeta-codigo software-libre

    En GNU/Linux hay multitud de distribuciones, no existe la mejor distribución sino aquella que mejor se adapta según el usuario o sus preferencias. En muchas distribuciones hay posibilidad de elegir diferentes sabores según el entorno de escritorio. Para usuarios nuevos, intermedios, avanzados, para servidor, que requieren pocos recursos o con menor cantidad de software no libre.
    Continuar leyendo...

  • Añadir botones selectores de opciones a select múltiple de bootstrap-select

    java javascript planeta-codigo programacion tapestry

    Apache Tapestry

    Java

    La librería bootstrap-select nos permite crear elementos select enriquecidos con más funcionalidades que las propias ofrecidas por el navegador para seleccionar una única opción o para seleccionar múltiples opciones. Usando esta librería y añadiendo algunos atributos a las etiquetas HTML select, optgroup y option añadirá varias funcionalidades interesantes como comento en Componente select de Apache Tapestry con funcionalidades adicionales usando bootstrap-select.

    Una de las opciones que añade es poniendo en la etiqueta select el atributo data-actions-box son dos botones para seleccionar todas las opciones o para deseleccionar todas las opciones.


    Continuar leyendo...

  • Componente select múltiple en Apache Tapestry

    java javascript planeta-codigo programacion tapestry

    Apache Tapestry

    Java

    El framework basado en componentes Apache Tapestry incorpora una amplia colección de componentes que nos bastarán en la mayoría de casos que necesitemos. Para los casos en que deseemos un componente con un comportamiento específico podemos construir uno completamente nuevo basado en otros existentes incluyendo los propios nuestros, de una librería o incluidos en Tapestry.

    En Tapestry hay múltiples componentes con los que construir formularios para que el usuario pueda introducir datos, ser enviados por el navegador y procesados en el servidor. Hay componentes de formulario desde checkboxes, radios, select, inputs, … con soporte para HTML 5.


    Continuar leyendo...

  • Componente select de Apache Tapestry con funcionalidades adicionales usando bootstrap-select

    java javascript planeta-codigo programacion tapestry

    Apache Tapestry

    Java

    El selector de opciones implementado en los navegadores es muy simple pudiendo seleccionar un elemento de una lista, mostrar los elementos agrupados por categorías o seleccionar múltiples elementos pero mostrándolos en formato de una lista en vez de como un desplegable. bootstrap-select es una librería que utiliza los estilos de Bootstrap y que añade algunas funcionalidades más a los componentes de selección de opciones de los formularios de una página web.


    Continuar leyendo...