• 4 formas de hacer un bucle for en Java

    java planeta-codigo programacion

    La forma habitual en Java de hacer un bucle es con una sentencia for o while pero con el añadido de los iteradores en Java 5 no hace falta tener una variable para conservar el índice del bucle. Ya en Java 8 se han añadido los streams que ofrecen otras nuevas formas de iterar sobre los elementos de una colección en este último caso con técnicas propias de lenguajes funcionales.
    Continuar leyendo...

  • Iniciación a la programación concurrente en Java

    java planeta-codigo programacion

    Java proporciona en su API numerosas primitivas para realizar programación concurrente. La programación concurrente permite realizar varias tareas simultáneamente aprovechando los múltiples núcleos de los procesadores modernos con un tiempo de ejecución total para un conjunto de tareas significativamente menor. Dos de los problemas de concurrencia más conocidos son el problema de los filósofos y del barbero que en este artículo muestro como implementar usando varias de las primitivas ofrecidas por Java.
    Continuar leyendo...

  • Iniciar rápido un proyecto de Java con Gradle o de Spring con Spring Initializr

    java planeta-codigo programacion

    Gradle

    Spring

    Java

    Cuando se empieza un proyecto nuevo desde cero se debe disponer de una herramienta de construcción, una estructura de directorios que siga las convenciones de la herramienta de construcción, añadir las dependencias que vayamos a utilizar y alguna clase que muestre algo al ejecutarlo para comprobar que disponemos de la infraestructura básica de compilación, teses, generación de artefactos e inicio de proyecto.

    Dado que las clases Java hay que compilarlas para facilitar la tarea están las herramientas de construcción y estas siguen una serie de convenciones en la estructura de directorios además de requerir algunos archivos. En un proyecto de duración de varios meses o años el tiempo dedicado a crear esta infraestructura básica es despreciable y no complicado si nos basamos en un proyecto similar del que copiar, sin embargo, para hacer alguna prueba rápida es costoso.


    Continuar leyendo...

  • Portlets con el framework Apache Tapestry y Apache Pluto

    java planeta-codigo programacion tapestry

    Los portales ofrecen una solución para los casos de uso de integración de aplicaciones, edición de contenido a modo de CMS, agregación de blogs, foros, colaboración entre personas, red social entre otros. La pieza fundamental de un portal en Java es un portlet. Desarrollar un portlet usando la API directamente no es simple, algunos frameworks que usaríamos para desarrollar aplicaciones y páginas web son usables para desarrollar portlets, Apache Tapestry es uno de ellos como muestro con un ejemplo en este artículo.
    Continuar leyendo...

  • Introducción a los portales y ejemplo de portlet con Liferay

    java planeta-codigo programacion

    Muchas organizaciones usan portales para mantener su presencia en internet. Los portales son herramientas muy versátiles que incluyen la gestión de contenidos y flujo de trabajo para publicarlo, foros, blog, … Liferay es uno de los más conocidos que usa la plataforma Java. La unidad básica funcional de un portal es un portlet que en ciertos aspectos son similares en otros diferentes a lo que son los servlets en las aplicaciones web Java.
    Continuar leyendo...

  • Hemeroteca #11

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

    Desde hace ya tiempo escribir y publicar en el blog es una de las cosas que realmente me gustan y me motivan a pesar de que el blog me requiere mucho tiempo de mi tiempo personal, cada artículo me exige entre 5 y 10 horas de dedicación durante el fin de semana y en mi tiempo libre. Es satisfactorio ver que cada semana y cada mes el número de visitas aumentan a un ritmo rozando los dos dígitos y que también se nota en los ingresos por publicidad de AdSense que en parte dono a alguno de los proyectos de software libre que usó o me parecen interesante apoyarles económicamente aunque sea de forma pequeña.


    Continuar leyendo...

  • Autenticación mutua de cliente y servidor con certificados

    java planeta-codigo programacion seguridad web

    OpenSSL

    Los certificados no solo sirven para autenticar a un servidor o acceder solo a aquellos en los que confiamos. El servidor también puede autenticar a los clientes mediante un certificado como alternativa a usar un usuario y contraseña ya sea una autenticación BASIC o un formulario personalizado. Al igual que en el cliente usa el certificado de la autoridad de certificación en la que confía para validar el que presenta el servidor, el servidor puede requerir que el cliente también proporcione un certificado que el servidor valida según las autoridades de certificación en las que confía, en ambos casos el servidor o cliente usan su clave privada para iniciar la conexión segura con el handshake del protocolo TLS.


    Continuar leyendo...

  • Usar la base de datos NoSQL MongoDB con Java

    java planeta-codigo programacion

    MongoDB

    Java

    En un artículo anterior hacía una pequeña introducción a la base de datos NoSQL MongoDB comentando sus características, como empezar a usarla con Docker y como lanzar algunos comandos para crear bases de datos y colecciones junto las operaciones básicas de inserción, actualización, eliminación y búsquedas con consultas desde la shell que ofrece MongoDB para esta base de datos que guarda documentos.

    La shell sirve para hacer estas consultas pero el caso de uso principal es usarlo desde una aplicación con alguno de los lenguajes de programación para los que se proporciona un controlador. MongoDB se puede usar desde cualquiera de los lenguajes de programación más populares entre ellos Java. En este artículo muestro con un ejemplo como realizar las operaciones que utilizaba desde la shell de MongoDB pero desde una aplicación Java.


    Continuar leyendo...

  • Así trata Pepephone a sus clientes

    opinion planeta-codigo

    Pepephone

    El martes 30 de mayo Pepephone me enviaba y a todos sus clientes un correo informándome que el día anterior habían tenido una caída de servicio en el ADSL y que si había sido afectado que lo sentían. La caída del servicio había sido durante unas cuatro horas de la noche del día anterior y de la madrugada del mismo día. En mi caso por ese horario no había resultado afectado por la caída del servicio y si no llega a ser por el correo que Pepephone me envió no me hubiese enterado.


    Continuar leyendo...

  • Introducción a la base de datos NoSQL MongoDB

    gnu-linux planeta-codigo programacion

    En unos pocos años las bases de datos NoSQL se han dado a conocer ampliamente. Resuelven algunas problemáticas para las que las bases de datos relacionales más longevas no proporcionan una solución totalmente satisfactoria como el escalado horizontal y un modelo de datos normalizado en varias tablas, filas y columnas predefinidas y significativamente diferente del modelo de datos usados por las aplicaciones. La base de datos NoSQL MongoDB que almacena documentos se adecua mejor a cierto tipo de requerimientos.
    Continuar leyendo...

  • Introducción a la base de datos relacional PostgreSQL

    gnu-linux planeta-codigo programacion

    De todas las funcionalidades que tiene SQL muchos desarrolladores solo usamos un pequeño conjunto de las posibilidades del lenguaje. Algunas bases de datos no implementan muchas posibilidades del lenguaje SQL y no son usables en esos sistemas, PostgreSQL es una de las bases de datos relacionales que mejor soporta el estándar ANSI-SQL. Conociendo sus posibilidades podremos implementar funcionalidades de forma más sencilla o con mejor rendimiento.
    Continuar leyendo...

  • Sobre el ataque de ransomware que ha sufrido Telefonica y otras empresas

    gnu-linux microsoft opinion planeta-codigo

    Microsoft

    Windows 10

    El día 12 de mayo de 2017 se produjo un ataque informático de tipo ransomware que afectó a varias empresas entre ellas Telefonica. El ataque se aprovecha de una vulnerabilidad conocida en los sistemas con el sistema operativo Windows no parcheados y vulnerables y para la cual Microsoft ya había publicado un parche de seguridad que la corregía. El programa ransomware WannaCry era extremadamente peligroso ya que cifra los archivos y documentos locales o en unidades a las que tuviese acceso el sistema afectado solicitando para recuperarlos 300 dólares en bitcoins.


    Continuar leyendo...

  • Sobre el anuncio de Shuttleworth de abandonar Unity y Mir y volver a GNOME en Ubuntu

    gnu-linux opinion planeta-codigo

    Ubuntu

    Canonical

    Hace unas semanas el fundador de Ubuntu, Mark Shuttleworth, una de las distribuciones más populares de GNU/Linux publicaba que abandona dos de sus proyectos más conocidos, la interfaz Unity y el servidor gráfico Mir. Uno de ellos la interfaz Unity en favor de GNOME que se materializará en la siguiente versión de Ubuntu, la 17.10 o 18.04 LTS. Al mismo tiempo daba a conocer que abandonaba el desarrollo de su servidor gráfico Mir en favor de su alternativa y más aceptada en la comunidad Wayland.


    Continuar leyendo...