• Ejemplo práctico de ServiceLoader con ServiceProvider de Java Money

    java planeta-codigo programacion

    Una aplicación que trabaje con importes y diferentes divisas necesitará ratios de conversión, estos ratios de conversión deberemos obtenerlos de algún servicio. Con la API de Java Money que aun en Java 8 no está incorporada en el JDK aunque si como una librería podremos trabajar de forma cómoda con importes, divisas y ratios. En este artículo explicaré un ejemplo de uso práctico de la clase ServiceLoader y como obtener ratios del servicio Open Exchange Rates.
    Continuar leyendo...

  • Implementación de máquina de estados finita (FSM) con Java 8

    java planeta-codigo programacion

    Es raro pero no he encontrado una librería adecuada en Java con una implementación de una máquina de estados. Stateless4j puede ser una candidata pero también tiene algunas deficiencias que pueden hacer que no nos sirva. Basándome en Stateless4j y usando Java 8 he creado una implementación de FSM con una funcionalidad similar y más ligera donde una única instancia de la máquina de estados es independiente del número de instancias de objetos en las que se use.
    Continuar leyendo...

  • A Microsoft no le importa que uses Windows u Office sin licencia

    microsoft opinion planeta-codigo software-libre

    Si Microsoft quisiera no habría usuarios de Windows sin la correspondiente licencia de uso. Pero lo consiente, tampoco le importa que para un uso personal se haga de forma «pirata». Pocos días después del señalado 29 de julio Windows 10 aparecerá en las redes de compartición de archivos y páginas de descarga, también pocos días después aparecerá un programa que evite el sistema de validación como ha ocurrido con anteriores versiones.
    Continuar leyendo...

  • Cómo trabajar con importes, ratios y divisas en Java

    java planeta-codigo programacion

    Aún en Java 8 no tenemos una API incluida en el JDK dedicada al manejo de importes, divisas y conversiones. Si la especificación JSR-354 se incluye en alguna versión podremos hacer uso de ella sin necesidad de ninguna dependencia adicional, pero si tenemos necesidad ahora podemos usar la librería que ha producido la especificación. Usando las clases y métodos de la API evitaremos hacer y mantener una implementación nosotros mismos que además seguro no llega al nivel de esta.
    Continuar leyendo...

  • Crear y usar un repositorio en Docker Hub

    gnu-linux planeta-codigo

    ¿Por qué se habla tanto de Docker y despierta tanto interés si la tecnología ya existía desde hace tiempo tanto en otros sistemas operativos como en Linux? Uno de los éxitos que ha contribuido a ellos es Docker Hub, un repositorio de imágenes en el que cualquiera puede contribuir con las suyas. Esto hace que pueda encontrarse cualquier herramienta de las populares y empezar a usarlas en muy pocos minutos.
    Continuar leyendo...

  • Aplicaciones multicontenedor con Docker Compose

    gnu-linux planeta-codigo

    Continuando la serie de artículos sobre Docker, otra de las herramientas disponibles en el ecosistema y que nos facilitará enormemente el administrar aplicaciones compuestas por varios contenedores relacionados entre sí es Docker Compose. Definiendo en un archivo los contenedores que forman parte de una aplicación podemos iniciarlos, pararlos, eliminarlos o ver su estado como si de una unidad se tratara.
    Continuar leyendo...

  • Servicio para obtener ratios de conversión entre divisas

    java planeta-codigo programacion

    ¿Trabajas con importes en diferentes divisas y necesitas hacer conversiones entre ellas? Si es el caso necesitas obtener los ratios de conversión entre divisas de alguna fuente de forma regular y de forma automatizada ya que se varían constantemente (en minutos) según diversos factores. Hay diferentes fuentes para obtenerlos y empresas que ofrecen las cotizaciones como producto, en este artículo comentaré una con suficiente detalle como para integrarla en cualquier aplicación.
    Continuar leyendo...

  • Nueva visita a Herramientas para un proyecto Java

    java opinion planeta-codigo programacion

    Las tecnologías para desarrollar una aplicación son un medio para resolver las necesidades del negocio o un cliente, no un fin. Pero esto no quiere decir que la elección sea trivial o poco importante, realizar las elecciones adecuadas según lo requisitos puede evitar complicaciones en un futuro. Para un proyecto basado en la plataforma Java esta es mi selección de herramientas de las que conozco.
    Continuar leyendo...

  • Patrón múltiples vistas de un mismo dato en Tapestry

    java planeta-codigo programacion tapestry

    Un proyecto grande contendrá muchos archivos de código fuente, poseer gran cantidad de archivos puede ser una molestia al trabajar con ellos al tener que buscarlos o abrilos. En el caso de las aplicaciones web puede darse el caso de que un mismo dato tenga un archivo diferente por cada forma de visualizarlo, para reducir el número de archivos en estos casos uso el siguiente patrón cuando trabajo con Apache Tapestry con el soporte que ofrece pero que puede ser igualmente aplicado de forma similar a otros frameworks.
    Continuar leyendo...

  • Alternativa a Hibernate u ORM y ejemplo de jOOQ

    java programacion planeta-codigo

    Los ORMs nos han facilitado el acceso a los datos de una base de datos relacional. Han solucionado algunos problemas pero traído consigo otros nuevos como el problema N+1 o la pérdida de control del modelo relacional. jOOQ forma parte de una nueva generación de herramientas que puede sustituir o complementar a otras como Hibernate. Y después de haberlo usado considero que puede ser factible.
    Continuar leyendo...

  • 10 razones para seguir usando Java

    java opinion planeta-codigo programacion

    Con ya dos décadas de vida y a lo largo de este tiempo Java se ha convertido en uno de los lenguajes más empleados para programar a día de hoy. En este periodo han surgido otros lenguajes en la propia plataforma de la JVM como Groovy, Scala o Clojure y fuera de ella como C#, Python, Ruby, PHP, Go o Dart ofreciendo algunas cosas adicionales o supliendo algunas carencias de Java. Aún con toda esta competencia esta es mi lista de 10 razones por las que creo que Java sigue siendo una de las mejores opciones.
    Continuar leyendo...