• Windows 10 y Office 2016 tan fáciles de usar sin licencia como siempre

    microsoft opinion planeta-codigo windows

    Comentaba en un artículo que es sorprendente que Microsoft con la capacidad que tiene y estando los dispositivos conectados a internet mayoritariamente no sea capaz de evitar usar su software sin licencia. Estoy a punto de ver si con Windows 10 y Office 2016 sigue siendo tan fácil como siempre. También tendré una muestra de la injusta fama de Windows pero que permite Microsoft por el bloatware que preinstalan los fabricantes de dispositivos con su sistema operativo.
    Continuar leyendo...

  • Yo apoyo al software libre, tú también

    planeta-codigo software-libre

    Hay múltiples formas con las que colaborar con el software libre, una muy importante es usándolo y al final de cierto tiempo uno se plantea de colaborar de otras formas para devolver un poquito de todo lo que nos ha ofrecido. Así pues, podemos colaborar realizando o mejorando la traducción de algún programa que usemos, promocionándolo entre nuestros conocidos o escribiendo en un blog sobre él, enviando informes de error o si tenemos los conocimientos aportando código para corregir algún error o añadiéndole alguna funcionalidad, depende de tiempo y conocimiento que tengamos también. Otra forma es realizando alguna donación económica aunque sea una pequeña cantidad a algún proyecto o software que nos resulte de interés. Después de recibir el ingreso de AdSense por la publicidad de esta bitácora este es mi caso.
    Continuar leyendo...

  • Publicado Apache Tapestry 5.4

    java planeta-codigo tapestry programacion

    Apache Tapestry

    Después 38 betas (han sido tantas porque era barato hacerlas) y una única candidata a publicación, 4 años desde la anterior versión mayor (5.3) y varias versiones menores de esta, la versión final de Apache Tapestry 5.4 ha sido publicada. Esta nueva versión incorpora más de 300 correcciones de errores, casi 200 mejoras y varias novedades destacadas centradas en la integración con JavaScript siguiendo la evolución actual de las aplicaciones web con un peso mayor en el lado del cliente. De esta manera el JavaScript se basa en el uso de RequireJS proporcionando a las aplicaciones todas las bondades que los módulos proporcionan como organizar mejor el JavaScript de las aplicaciones, no polucionar el ámbito global evitando conflictos entre librerías y carga de dependencias de forma dinámica. También se proporciona soporte built-in para CofeeScript y LESS.


    Continuar leyendo...

  • Cómo buscar los enlaces rotos de un sitio web

    planeta-codigo web

    Ya tengamos un sitio web, una bitácora, o una aplicación web es recomendable comprobar cada cierto tiempo los enlaces rotos. Las páginas pueden desaparecer o cambiar de dirección y esto provocará páginas no encontradas en los enlaces que las referenciasen. Usando herramientas que automaticen la tarea podemos encontrar enlaces rotos de forma efectiva y rápida.
    Continuar leyendo...

  • Monitorizar estado de sitios web con Uptime Robot

    planeta-codigo programacion

    Uptime Robot

    Los sitios web que ofrecen su servicio de forma ininterrumpida por diferentes causas pueden dejar de funcionar ya sea porque se ha perdido la conexión con la base de datos, se ha llenado el disco de la máquina impidiendo su normal funcionamiento u otras causas. En algunos tipos de servicio como páginas de presencia en internet puede dar una mala imagen pero en los sitios de comercio electrónico la pérdida del servicio es especialmente importante ya que además implica perder ventas o clientes. Para conocer de la forma más inmediata posible el mal funcionamiento y poder restaurar el servicio podemos usar alguna herramienta que monitorice su estado. Para monitorizar el funcionamiento de sitios web una de ellas muy sencilla es Uptime Robot.


    Continuar leyendo...

  • Información y métricas de la aplicación con Spring Boot Actuator

    java planeta-codigo programacion spring

    Desarrollar una aplicación no solo implica implementar su funcionalidad, esa aplicación ha de mantenerse funcionando en su entorno de producción. Monitorizar y disponer de información sobre el estado ayuda a mantenerla funcionando sin ninguna caída de servicio u obtener métricas para mejorar su funcionamiento. Entre las numerosas funcionalidades ofrecidas por Spring para las aplicaciones Java está Spring Boot Actuator que precisamente nos proporcionará métricas e información interesantes de serie pudiendo implementar nueva según la necesidades.
    Continuar leyendo...

  • Configuración de una aplicación en diferentes entornos con Spring Cloud Config

    java planeta-codigo programacion spring

    La configuración de una aplicación suele varíar según el entorno en el que se ejecuta, la opción recomendada es que este externalizada y que el artefacto que se despliega en cada entorno sea el mismo. Con Spring Cloud Config en vez de guardar la configuración en un archivo de la propia máquina donde se instala podemos guardar de forma centralizada en un repositorio y que la aplicación obtenga la versión más actualizada cuando se inicia. En este ejemplo explicaré como crear el servidor de configuraciones con Spring Cloud Config y un ejemplo de cliente con Spring Boot que le solicita su configuración según su entorno.
    Continuar leyendo...

  • Validar objetos con Spring Validation, ejemplo registros de jOOQ

    java planeta-codigo programacion

    jOOQ es una alternativa a Hibernate que devuelve la base de datos a primer plano en una aplicación. Por la importancia en cualquier aplicación de los datos propone que la base de datos sea la única fuente de la verdad. Para los modelos es patente al generarse a partir del esquema de la base de datos para las validaciones se puede hacer con restricciones de integridad pero si queremos conocer los errores detalladamente que se produzcan puede que deseemos usar Spring Validation.
    Continuar leyendo...

  • Obtener datos de múltiples tablas con jOOQ

    java planeta-codigo programacion

    jOOQ no proporciona la misma transparencia de acceso a una base de datos relacional que un ORM. Para validar los datos podemos usar Spring Validation y para obtener datos de múltiples tablas lo que comento en este artículo. Usando jOOQ podemos exprimir todo el potencial del lenguaje SQL, comprobación de tipos por el compilador de argumentos y resultados, usar la base de datos como única fuente de la verdad, diferentes formas de acceso a la base de datos usando el patrón Active Record, directamente SQL, …
    Continuar leyendo...

  • Java para tareas de scripting con JBang y Gradle

    java planeta-codigo programacion

    Para programar pequeños scripts normalmente se suele emplear el intérprete de comandos en GNU/Linux bash o si es algo complejo un lenguaje interpretado como Python, Ruby o Groovy. Pero no pienses que Java no puede ser empleado para tareas de scripting, en este artículo muestro que problemas presentan los lenguajes interpretados o dinámicos, que ventajas tiene usar Java y finalmente como usarlo con la misma sencillez que un lenguaje interpretado para el nicho funcional de los scripts.
    Continuar leyendo...

  • Múltiples esquemas o bases de datos con jOOQ y Spring en Java

    java planeta-codigo programacion

    Aún en las aplicaciones monolíticas que comparten una única base de datos tratamos de dividirla en varios servicios que manejen cierto nicho de información con la intención de que un cambio en una parte sea transparente para las otras partes. Cada servicio de la aplicación monolítica podría potencialmente convertirse en un microservicio y en este caso para que cada microservicio tenga un ciclo de vida independiente compartir la base de datos es algo a evitar. Incluso en las aplicaciones monolíticas podemos querer guardar cada nicho de información en su propio esquema para evitar acoplamiento entre las diferentes partes o también como forma de tener varios servidores de bases de datos y escalar la aplicación en cierta forma. En estos casos necesitaremos que la aplicación acceda a varios esquemas o bases de datos simultáneamente, con jOOQ y Spring es bastante sencillo.
    Continuar leyendo...

  • El patrón de diseño Observer y una forma de implementarlo en Java

    java planeta-codigo programacion

    Otro de los patrones de diseño que en algún momento nos puede ser útil es el patrón Observer. Podemos usar este patrón si tenemos la necesidad de realizar acciones como consecuencia del cambio de estado o cierta circunstancia de un objeto. El patrón Observer nos permite mantener desacoplados el objeto que emite el evento y el objeto que recibe el evento e independizar al objeto observable del número de observadores que tenga.
    Continuar leyendo...