• Integración de servicios y sistemas con Apache Camel

    java planeta-codigo

    Apache Camel es una librería específica para realizar tareas de integración que ya proporciona e implementa múltiples protocolos de comunicación, formatos de datos, componentes y patrones de integración. Ya tiene implementada toda esta funcionalidad que no hay que implementar en el caso de una aplicación con código propio. Al ser una librería es posible integrarlo en cualquier tipo de aplicación, en el artículo se muestra cómo utilizarlo en una aplicación de Spring Boot en un ejemplo.
    Continuar leyendo...

  • Servidor mock para imitar peticiones y respuestas de servicios HTTP con WireMock

    java planeta-codigo

    Los microservicios aportan varias ventajas pero también algunos inconvenientes que si no son manejados generan sus propios problemas. Una dificultad de los servicios por las dependencias entre ellos es poder desarrollarlos y probarlos en local, algunos microservicios son complejos con dependencia sobre bases de datos, sistemas de envío de mensajes u otros servicios. Si un microservicio necesita iniciar en local o en entorno todas sus dependencias el desarrollo se vuelve complejo y lento. Para facilitar el desarrollo una opción es utilizar un servidor mock que imite las respuestas para las peticiones que se necesite de uno o varios servicios.
    Continuar leyendo...

  • Formas de generar un número aleatorio en un rango con Java

    java planeta-codigo

    En Java hay varias formas de generar números aleatorios, la clase Random permite generar números aleatorios individuales y desde Java 8 con la adición de streams permite obtener una secuencia de números aleatorios de tamaño determinado o indefinido. La clase Math también permite generar números aleatorios aunque es más recomendable usar la clase Random. Finalmente, en caso de querer un identificativo único universal está la clase UUID que genera números aleatorios de 128 bits que se representan mediante caracteres alfanuméricos.
    Continuar leyendo...

  • Los niveles de madurez REST, ejemplo con HATEOAS y documentación con Swagger de un servicio con Spring Boot

    java planeta-codigo

    Los niveles de madurez de una API implementada con las convenciones REST trata de aplicar los conceptos y semántica de la web y el protocolo HTTP a un servicio web. Muchas APIs que dicen ser REST no cumplen con todos los niveles de madurez para ser considerada RESTful que incluyen HATEOAS para crear enlaces entre los recursos y HAL para codificar los datos. Muchas se quedan en el nivel 2 al hacer uso únicamente de recursos y verbos, llegar a cumplir el nivel 3 para incluir controles hypermedia tiene algunas ventajas adicionales. Spring Boot proporciona soporte para crear una API que soporte el nivel de madurez 3 de REST y Springdoc permite generar la documentación de la API con Swagger.
    Continuar leyendo...

  • Prueba y opinión sobre jugar mediante streaming

    juegos opinion

    Cada una de las empresas más importantes en el sector de los juegos ya tienen sus servicios de juego en la nube o mediante streaming, en unos años puede ser la opción preferente de muchos jugadores dejando a las consolas como hardware dedicado a comprar obsoletas. El principal requerimiento del juego mediante streaming es tener una buena conexión a internet que sea estable y con un ancho de banda superior de al menos 35 Mbps para la máxima calidad. Ahora que tengo una conexión con fibra óptica he probado uno de estos servicios, GeForce NOW, por la buena experiencia que he tenido me replanteo las opciones a futuro para un nueva computadora, no teniendo que ser un equipo de más de 700 € ni requerir una tarjeta gráfica dedicada, puede ser de nuevo un pequeño y compacto Intel NUC.
    Continuar leyendo...

  • Análisis, guía y consejos del juego roguelike Darkest Dungeon

    juegos

    Si hay un juego en el que no hay una decisión perfecta o en el que hay que hacer sacrificios ese es Darkest Dungeon. Seguir avanzando en una mazmorra supone un riesgo, tocar un objeto sin la provisión adecuada puede tener efectos muy negativos, a veces para completar una misión hay que sacrificar un héroe, equiparse con un abalorio aparte de los efectos positivos la mayoría tiene efectos negativos. Darkest Dungeon es un juego difícil en el que en gran medida para completarlo hace falta conocerlo muy bien, sin una guía y consejos es muy difícil llegar al su final o requeriría mucho tiempo para aprender todos sus trucos, con algunos de ellos el éxito no está asegurado pero hay mayor probabilidad de conseguirlo. Está guía es introductoria no es exhaustiva para completarla incluye varios enlaces con mucha información para profundizar más.
    Continuar leyendo...

  • Cómo documentar una API REST con Swagger implementada con Spring Boot

    java planeta-codigo

    Una API REST no está obligada a publicar una definición de su API, sin embargo, para quien deba usar API es muy útil disponer de su documentación para usarla correctamente y descubrir de qué endpoints se compone, métodos HTTP, cuales son sus parámetros, el esquema de los cuerpos de la petición y de los resultados, los tipos de los datos y sus formatos, los códigos de retorno devueltos, las cabeceras y su autenticación. OpenAPI permite definir la interfaz de una aplicación de forma agnóstica de la tecnología y lenguaje en el que se implementa, por otro lado Swagger a partir de esa definición permite generar una interfaz HTML con su documentación. La librería Springdoc junto con Spring Boot permite generar tanto la especificación de la API como la documentación simplemente añadiendo una dependencia y varias anotaciones en la implementación de la API.
    Continuar leyendo...

  • Hemeroteca #19

    blog planeta-codigo

    Blog Bitix

    Ya son casi 600 artículos los que he escrito en el blog, con este número de artículos en alguna ocasión al escribir un nuevo artículo a veces tengo que mirar si ya he escrito sobre ello o algo muy similar para no escribir lo mismo con otras palabras. Estos últimos meses muchas semanas solo he escrito un artículo en vez de dos, un poco por no dedicar tanto tiempo al blog pero más por falta de ideas que no me requieran mucho tiempo de investigación, ideas sobre cosas que me gustaría aprender y compartir tengo pero algunas de ellas para poder escribir me requerirían primero una buena cantidad de tiempo de investigación. Y algunos de esos temas sobre los que me gustaría aprender más son cosas muy específicas ni demasiado populares con lo que para el objetivo de seguir haciendo que el blog tenga más visitas no son los más adecuados.


    Continuar leyendo...

  • Los autómatas del juego de la vida de Conway y la hormiga Langton con su implementación en Java

    java planeta-codigo programacion

    Algunos procesos que aparentemente son complejos siguen reglas muy simples, y aún siguiendo reglas muy simples dan lugar a muchos posibles comportamientos diferentes. Los sistemas que implementan y aplican estas reglas simples se les conoce como autómatas. Los autómatas no poseen inteligencia artificial, no aprenden ni toman decisiones en base a anteriores resultados, los autómatas simplemente siguen sus reglas de comportamiento en el estado del sistema. Dos autómatas conocidos son el juego de la vida de John Horton Conway publicado en 1970 y la hormiga de Langton de Chris Langton publicado en 1986.
    Continuar leyendo...

  • Me cambio del ADSL a la fibra de Pepephone

    opinion planeta-codigo

    El ADSL me ha sido suficiente para mis necesidades y era una opción algo más barata que la fibra. He retrasado el paso del ADSL a fibra todo lo que he podido hasta que por motivos de la compañía de mi servicio de internet me ha obligado. Las compañías están sustituyendo el par de cobre de teléfono con el que funciona el ADSL por la fibra. La fibra ofrece posibilidades que el ADSL no es capaz de ofrecer y el precio ligeramente superior de la fibra compensa para aquellos usuarios que quieran un ancho de banda notablemente superior. He estado varios años con el ADSL de Pepephone y ahora seguiré con la fibra de Pepephone.
    Continuar leyendo...

  • Cómo crear y poner subtítulos a un vídeo

    gnu-linux planeta-codigo software-libre

    Los subtítulos permiten mostrar una transcripción en texto del audio y diálogos en vídeos, películas y series. Algunos reproductores de vídeo permiten seleccionar la pista de subtítulos embebidos en los propios vídeos o añadir nuevas pistas de subtítulos a los vídeos. Hay programas editores que permiten crear y modificar los archivos de subtítulos. También hay algunas páginas de las que descargar los archivos subtítulos.
    Continuar leyendo...

  • Implementación de los algoritmos de ordenación bubble sort, merge sort y quicksort en Java

    java planeta-codigo

    Hay una buena cantidad de algoritmos de ordenación conocidos, entre los más conocidos está el bubble sort, el merge sort y el quicksort. No es imprescindible conocerlos todos ni implementarlos ya que las librerías y clases del JDK ya los implementan. Sin embargo, son utilizados como ejemplo para implementar un algoritmo al empezar a programar en un lenguaje de programación.
    Continuar leyendo...

  • Herramientas de línea de comandos para monitorizar GNU/Linux

    gnu-linux planeta-codigo

    A veces un proceso del sistema consume gran cantidad de procesador, memoria o realiza muchas operaciones de lectura o escritura en el almacenamiento, simplemente se desea obtener o monitorizar cierta información del sistema. Hay varias herramientas en GNU/Linux para monitorizar los procesos del sistema, en almacenamiento, la red y temperatura de componentes, otros comandos permiten obtener información de los principales componentes hardware y software de la computadora.
    Continuar leyendo...

  • Cómo ordenar arrays y colecciones de objetos en Java

    java planeta-codigo

    Al implementar un algoritmo es común querer iterar los elementos de una colección en un orden según un criterio, por ejemplo, si se trata de números de menor a mayor, si se trata de fechas de menor a mayor y si se trata de personas por orden alfabético del nombre, de menor a mayor edad o de menor a mayor antigüedad en la empresa, también es posible la necesidad de iterar en orden inverso. El JDK de Java proporciona interfaces para implementar la ordenación de objetos y que ya implementan algunos de los algoritmos de ordenación conocidos.
    Continuar leyendo...

  • Conceptos teóricos generales de los procesadores de computadora

    hardware planeta-codigo

    Los procesadores es uno de los principales circuitos integrados que posee toda computadora. Es el encargado de ejecutar el código de los programas y gobierna el resto de componentes. A pesar de su pequeño tamaño son elementos con gran complejidad, para aumentar su rendimiento se aplican diferentes técnicas que los procesadores han incorporando de forma paulatina. Al hablar de procesadores hay varios conceptos que es necesario comprender.
    Continuar leyendo...