• 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...

  • Nuevo diseño en Blog Bitix

    blog planeta-codigo

    Blog Bitix

    En diciembre de 2013 pasé de utilizar Blogger a usar Octopress creando la bitácora Blog Bitix. Octopress fue una gran mejora a la hora de editar el contenido y gestionar las imágenes o trozos de código con gist. Hace relativamente poco que he pasado a utilizar Octopress pero desde hace un tiempo quería personalizar mucho más el diseño de la bitácora. Estaba esperando a ver como avanzaba el desarrollo de la siguiente versión sin embargo va lentamente por mucho que hayan dicho ya en el 15 de enero que Octopress 3 de está en camino, aún en mayo no hay ninguna nueva noticia desde entonces.


    Continuar leyendo...

  • Programación de juegos y 3D en Java con jMonkeyEngine

    java programacion planeta-codigo

    jMonkeyEngine

    Java

    Erróneamente se sigue pensado que Java es un lenguaje lento en ejecución, en las primeras versiones era cierto pero hoy la realidad es que con las mejoras introducidas en cada versión de Java y la máquina virtual el rendimiento actual es comparable a C y C++. En la programación de juegos y 3D gran parte del proceso de representación gráfica se ha descargado de la CPU a las cada vez más potentes tarjetas gráficas, la potencia de estas GPU son las que determinan la capacidad de proceso gráfico y la calidad gráfica de los juegos.


    Continuar leyendo...