• El problema de concurrencia del agente y los fumadores resuelto en Java

    java planeta-codigo programacion

    Java

    Junto con los ejemplos de la cena de los filósofos y la barbería el de los fumadores es otro ejemplo clásico que se estudia en las asignaturas de sistemas operativos. Estos ejemplos necesitan de mecanismos de sincronización y concurrencia para su correcto funcionamiento al haber varios procesos y recursos compartidos que los procesos intentan utilizar de forma concurrente pero que no se debe permitir utilizando notificaciones entre procesos o algunas primitivas de sincronización, concurrencia e hilos que posee Java como mutex, locks o semáforos.


    Continuar leyendo...

  • El problema de concurrencia de la cena de los filósofos resuelto con Java

    java planeta-codigo programacion

    Java

    En un artículo de introducción sobre la programación concurrente en Java explicaba cuales eran la facilidades que proporciona este lenguaje para la programación concurrente en múltiples hilos. En él exponía dos ejemplos clásicos que se estudian en las asignaturas de sistemas operativos, uno de ellos era el de la cena de los filósofos donde varios filósofos sentados en una tabla durante una cena se dedican a pensar y cuando tienen hambre comen usando para ello dos tenedores que comparten con sus compañeros que se sientan a la izquierda y derecha.


    Continuar leyendo...

  • Consola de juegos retro con Lakka y una Raspberry Pi

    gnu-linux juegos planeta-codigo software-libre

    El propósito original de las Raspberry Pi era educativo y se ha hecho muy popular debido a su bajo precio y un buen trabajo de marketing. Sin embargo, puede utilizarse para muchos otros propósitos desde aprendizaje a programación, electrónica, servidor de archivos personales, descarga de películas, series y libros con torrent y también como una consola de juegos antiguos de arcade.
    Continuar leyendo...

  • Referencias a grupos de captura en expresiones regulares y reemplazos

    java planeta-codigo programacion

    Java

    Las expresiones regulares definen un patrón que permite encontrar coincidencias en cadenas de caracteres, reemplazar coincidencias o validar que las cadenas de caracteres cumplen el patrón. Las expresiones regulares son potentes expresiones que resultan útiles en muchos casos pero son expresiones que pueden llegar a ser complejas cuyo uso se aprende con la experiencia. Una de las funcionalidades que poseen es hacer referencia a grupos de captura anteriores en la propia expresión regular o en la cadena de reemplazo.


    Continuar leyendo...

  • Las 6+2 formas normales de las bases de datos relacionales

    planeta-codigo programacion

    En la universidad se explican las formas normales, en mi caso que yo recuerde hasta la tercera forma normal. Conocer la tercera forma normal suele ser suficiente pero en la teoría existe hasta la sexta forma normal. Cumplir las formas normales evita redundancias e inconsistencias en los datos a costa de crear más tablas que en algunos consultas puede hacerlas lentas. El proceso contrario de la normalización es la desnormalización, puede producir inconsistencias pero los datos son más sencillos y en algunos casos más rápido de consultar.
    Continuar leyendo...

  • 8º aniversario del blog

    blog planeta-codigo

    Blog Bitix

    Hoy se cumplen 8 años desde que creé y empecé a escribir en un blog, primeramente El blog de pico.dev y más tarde en Blog Bitix. Durante este tiempo he escrito 485 artículos entre ambos blogs, en Blog Bitix ya tengo más artículos escritos y publicados de los que he tenido en El blog de pico.dev. Ocho años ya son una cifra considerable y requiere gran constancia, dedicación, motivación, perseverancia y gran cantidad de tiempo. Muchos blogs no llegan a esta cifra.


    Continuar leyendo...

  • Análisis estático de código con PMD y un ejemplo

    java planeta-codigo programacion

    PMD

    El mantenimiento de un programa es la parte que más tiempo consume en su desarrollo y realmente son más los proyectos que hay que mantener que los que se empiezan desde cero. Por lo tanto el software se debe diseñar además de para funcionar correctamente y de forma suficientemente eficiente de tal forma que los futuros cambios sean en la medida de lo posible sencillos de realizar. Hay varios motivos por los que un software necesita mantenimiento según sus categorías:


    Continuar leyendo...

  • Conferencia BilboStack 2018

    planeta-codigo programacion

    A diferencia de los seis años anteriores este la BilboStack ha tenido lugar en el Palacio Euskalduna en vez de la Universidad de Deusto permitiendo un aforo aún mayor que el de la universidad y con unas salas más grandes y butacas más cómodas que las espartanas sillas de la uni en las que igualmente si se ponía atención y luego esfuerzo se aprendían cosas interesantes, muchos hemos pasado varios años en ellas.


    Continuar leyendo...

  • Gestión de peticiones, wiki y pages con GitLab

    planeta-codigo software software-libre

    GitLab

    Una de las cosas que me gustan de GitLab es que se puede usar en un servidor propio, la otra cosa que me gusta es que incluye varias herramientas casi imprescindibles para cualquier proyecto como gestión de peticiones para recoger las historias, wiki como documentación e información y pages para generar pequeños sitios web además de los repositorios de Git o el servidor de integración y entrega continua. Que GitLab incluya por defecto todas estas herramientas hace innecesario recurrir en la mayoría de los casos a varias herramientas especializadas que cubran estas necesidades como JIRA, Jenkins, MediaWiki o un servidor web para los sitios web.


    Continuar leyendo...

  • Integración y entrega continua con GitLab sobre Docker

    planeta-codigo software software-libre

    GitLab

    GitLab es una herramienta muy completa, una de las necesidades de los proyectos es tener teses y que estos se ejecuten con cada commit para asegurar que los cambios no introducen errores en las funcionalidades cubiertas por los teses, esto es la integración continua. La entrega inmediata es una vez que los teses se han ejecutado correctamente hacer el despliegue en los servidores de forma pasa el tiempo mínimo entre que una funcionalidad está desarrollada y esta se puede utilizar.


    Continuar leyendo...

  • Explicación del fallo de seguridad Meltdown y Spectre en los microprocesadores Intel

    hardware planeta-codigo seguridad software

    Los procesadores Intel se han visto afectados por un grave error de seguridad debido a que fueron diseñados con ejecución especulativa sin tener algunas consideraciones de seguridad, técnica empleada para aumentar el rendimiento pero que tiene efectos colaterales en la cache que pueden se aprovechados para realizar ataques side-channel con los que leer el contenido de la memoria del kernel, independientemente del sistema operativo utilizado.
    Continuar leyendo...

  • Artículo #5 de Yo apoyo al software libre

    planeta-codigo software-libre

    La última donación que hice a algún proyecto de software libre fue en mayo del 2017, desde entonces he recibido algunos ingresos por la publicidad AdSense que incluyó en el blog. Los ingresos por AdSense están empezando a ser bastantes constantes de al menos 1 € al día con lo que al mes se convierten en 30 €, un més bueno en 50 €, con lo que cada dos o tres meses recibo un ingreso.


    Continuar leyendo...

  • Hemeroteca #12

    blog java planeta-codigo programacion software software-libre tapestry gnu-linux

    Cuarto año de Blog Bitix y en febrero serán ocho desde que empecé con El blog del pico.dev. En los últimos seis meses he seguido publicando casi a dos artículos por semana y durante el 2017 ha sido casi siempre así, en este semestre han sido 48 artículos, que juntos con los 39 del primero son 87 durante el año 2017, mi mayor tasa de publicación en un año.

    En estas hemerotecas siempre repaso cual es la evolución de visitas e ingresos de AdSense que quizá a alguien más le resulte de interés. En Junio y Julio alcance unas 50K páginas vistas el mayor pico de visitas, aunque en meses posteriores han descendido, al principio lo achacaba a los meses vacacionales de verano pero luego se han mantenido no se si por alguna penalización de Google o algún artículo que recibía muchas visitas y haya descendido en su posicionamiento. En cualquier caso en los últimos meses del año las visitas han tenido una tendencia ascendente, de unas 40K páginas vistas y superior respecto a las de hace una año que comparándolas han sido de 25K en 2016 y de 38K en 2017 un crecimiento de un 85%. No está mal, si el año siguiente fuese igual me daría por muy satisfecho.


    Continuar leyendo...

  • GitLab, la completa herramienta integrada para desarrollo de software

    planeta-codigo software software-libre

    Al desarrollar software una herramienta de control de versiones como Git y otras como un gestor de peticiones, una herramienta de integración continua o despliegue contínuo o una wiki para documentación son necesarias. Hay productos específicos para cada uno de ellos pero GitLab proporciona en una único producto todas estas facilitando su instalación y administración estando integradas en el mismo producto.
    Continuar leyendo...

  • Como eliminar metainformación de las fotos en GNU/Linux

    gnu-linux planeta-codigo software-libre

    GNU

    Linux

    En los archivos de las fotos e imágenes además de su información visual gráfica, los millones de píxeles, se guarda información adicional relacionada con la misma, por ejemplo, con que modelo de cámara se realizó, la fecha y la hora a la que se realizó, e incluso la localización si la cámara dispone de GPS u otro medio de ubicación como posicionamiento mediante la red de datos móvil o WIFI.


    Continuar leyendo...