• Administrar secretos y proteger datos sensibles con Vault

    planeta-codigo programacion software

    Herramientas de aprovisionamiento como Chef, Puppet y Ansible solucionan el problema de la seguridad de los secretos de forma similar, utilizando una única clave de cifrado. Los datos cifrados están siempre a un secreto (contraseña, clave, …) de ser descifrados y generalmente no está bien protegidos dado que en un entorno elástico cada servidor necesita disponer de este secreto para descifrar los datos. Adicionalmente el acceso a los datos cifrados no está registrado de modo que si hay una intrusión no está claro que dato ha sido accedido y por quien. Utilizar variables de entorno para proporcionar secretos tampoco es seguro, y en entornos Docker suele usarse.
    Continuar leyendo...

  • Obtener los primeros, los últimos o los caracteres anteriores y posteriores de un archivo y el número de ocurrencias con head, tail y grep

    gnu-linux planeta-codigo

    GNU

    Linux

    Algunos archivos de texto tienen un tamaño de cientos de megas, a veces incluso sin ningún salto de línea. Visualizar el contenido de estos archivos en una aplicación con interfaz gráfica no suele ser posible porque la aplicación se queda bloqueada al intentar cargar tan enormes archivos. Incluso tampoco puede ser posible con un editor mucho más ligero como vim. Hacer un cat del archivo tampoco es útil.

    Sin embargo, sigue siendo necesario ver parte del contenido de estos archivos de texto grande para validar que el contenido de los mismos es el correcto. La opción que se puede utilizar es ver los primeros o últimos caracteres o lineas con los comandos head o tail usándolos de la siguiente forma.


    Continuar leyendo...

  • Recuperar datos eficientemente en GraphQL usando batching con data loaders

    java planeta-codigo programacion

    Al diferencia de una API REST donde cada recurso posee un endpoint propio en GraphQL los recursos están relacionados y forman un grafo. Por otro lado las propiedades devueltas en una consulta de GraphQL son las que se indiquen en la consulta en vez de prefijadas como en una API REST. Hay que tener en cuenta que GraphQL para recuperar las propiedades de las entidades usa un resolver y las recupera una a una, si se devuelve una lista de elementos y de cada uno de esos elementos otra propiedad para la que hay que generar una consulta adicional a la base de datos el rendimiento no será bueno. Los data loaders permiten recuperar las propiedades relacionadas de una colección de entidades eficientemente evitando el problema 1+N.
    Continuar leyendo...

  • Hemeroteca #15

    blog gnu-linux java planeta-codigo

    Blog Bitix

    Estos seis primeros meses del 2019 han transcurrido como todos los años anteriores, sigo manteniendo la constancia de publicar dos artículos nuevos y únicos, algunas semanas sólo uno las menos tres.

    En cuanto al blog durante este tiempo le he hecho un cambio de diseño para que el contenido quede centrado en la pantalla y tenga más espacio horizontal lo que creo hace más agradable la lectura del texto y los extractos de código se ven mejor con menos necesidad de hacer desplazamiento horizontal.


    Continuar leyendo...

  • Sobre la PlayStation 4, PlayStation 5 y Google Stadia

    juegos opinion planeta-codigo

    El Intel NUC que adquirí hace unos meses no es el ideal para jugar sobre todo por su pequeño tamaño y temperaturas, en mi caso como jugador ocasional es suficiente pero unido a que soy usuario de GNU/Linux hace que deba usar Wine o Steam para los juegos con lo que hay algunos juegos que me llaman la atención que no tengo disponibles. La PlayStation 4 está ya al final de su ciclo de vida, ya hay noticias de la PlayStation 5 y Google Stadia ofrecerá una nueva experiencia de juego ¿comprar una PlayStation 4? ¿o seguir con Diablo 3 mientras se lanzan la PlayStation 5 o a Stadia?.
    Continuar leyendo...

  • Orden de ejecución de las cláusulas de las sentencias SELECT de SQL

    planeta-codigo programacion

    PostgreSQL

    MySql

    El lenguaje SQL es un potente lenguaje declarativo usado en las bases de datos relacionales como MySQL o PostgreSQL. En el lenguaje SQL se declara que datos se quieren recuperar, qué condiciones han de cumplir cumplir y qué funciones se aplican a los datos pero no se define como han de recuperarse los datos, es la base de datos la que decide como guardarlos e interpretando la sentencia SQL la que decide cómo recuperarlos.


    Continuar leyendo...

  • Comprobar la seguridad de un sitio web que use SSL/TLS

    planeta-codigo seguridad software web

    Aunque un sitio web no trate datos sensibles como tarjetas de crédito o datos personales es muy recomendable que use el protocolo seguro HTTPS para proporcionar cifrado entre el servidor y el navegador del usuario para dotar de confidencialidad a las comunicaciones a la vez que evitar modificaciones por terceras personas de los datos transmitidos. Además, el buscador Google lo tiene en cuenta para el SEO o posicionamiento en su buscador.


    Continuar leyendo...

  • Historial y evolución de los precios en Amazon con CamelCamelCamel

    Haciendo un seguimiento de los precios en Amazon los de algunos productos se mantienen estables a lo largo del tiempo pero en la mayoría varían significativamente. Con la página CamelCamelCamel es posible conocer la evolución e historial de los precios de los productos en Amazon, su disponibilidad y saber si están en un periodo de precio alto o en su mínimo histórico.
    Continuar leyendo...

  • Formatear un dispositivo de almacenamiento compatible con Windows, macOS y Smart TV en GNU/Linux

    gnu-linux planeta-codigo

    Los dispositivos de almacenamiento se han de formatear con un sistema de archivos. Algunos de los sistemas de archivos están mejor soportados y son compatibles con una mayor número de sistemas y dispositivos, por tanto al formatear un dispositivo de almacenamiento ha de elegirse como sistema de archivos uno compatible, dependiendo del uso es más adecuado uno u otro. Para los dispositivos extraíbles la opción recomendable es exFAT o en su defecto NTFS o FAT.
    Continuar leyendo...

  • Metadatos e introspección en GraphQL

    java planeta-codigo

    Una API REST no ofrece introspección y por tanto hay que recurrir a un sistema de documentación que puede estar desactualizado y hay que mantener para conocer como usar la API y cuales son sus tipos y parámetros. Por el contrario GraphQL incorpora un sistema de introspección que permite conocer sus tipos y campos, a través del editor GraphiQL o si fuese necesario de forma automatizada con código.
    Continuar leyendo...

  • Pruebas de carga y rendimiento de un servicio web con Apache Bench

    planeta-codigo software web

    En algunos que un servicio devuelva los datos esperados no es suficiente, otros requisitos no funcionales o de términos de servicio son que sus tiempos de respuesta sean menores al especificado en sus requisitos, que sea capaz de soportar cierto número de peticiones concurrentes o de atender un número de peticiones por minuto. Para asegurar que el servicio es capaz de cumplir estos requisitos funcionales hay que utilizar herramientas que permitan evaluar su desempeño, una de ellas muy fácil de utilizar y que proporciona valiosa información es Apache Bench.
    Continuar leyendo...

  • Teses unitarios parametrizados con JUnit

    java planeta-codigo programacion

    Hay múltiples lenguajes y librerías donde cada una publica nuevas versiones. Una vez elegida una esa decisión no tiene que ser para siempre si las circunstancias de un proyecto cambian o una nueva versión incorpora las funcionalidades por las que se eligió otra. Si se reconsideran de nuevo el conjunto de todos los parámetros la decisión puede ser distinta. Esto me ha ocurrido al evaluar de nuevo JUnit comparándolo con Spock, teniendo en cuenta que en JUnit 5 han incorporado los teses parametrizados y el lenguaje que utiliza cada una de ellas.
    Continuar leyendo...