• blog-stack java planeta-codigo programacion

    En el artículo de iniciación a la programación concurrente en Java explicaba las facilidades que proporciona este lenguaje para la programación de tareas con varios hilos que implica la sincronización y bloqueo mediante varias primitivas como semáforos o locks, ponía el ejemplo y su código de dos de los típicos ejemplos que suelen usarse en las asignaturas de sistemas operativos, el problema de los filósofos y el del barbero.

  • blog-stack java planeta-codigo programacion

    Hasta Java 5 para hacer un bucle desde 0 a N elementos había que usar una variable para mantener un contador, hacer una comparación para comprobar si se había llegado al límite e incrementar la variable en la siguiente ejecución. El código era bastante verboso y dado que los bucles son una construcción básica de cualquier lenguaje de programación es empleada numerosas veces en cualquier algoritmo. Antes de Java 5 un bucle for de 0 a 5 y de una colección se realizaba de la siguiente manera:

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

  • blog-stack java planeta-codigo programacion

    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.

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

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

  • blog blog-stack hemeroteca java planeta-codigo planeta-linux 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 interesantes de apoyarles económicamente aunque sea pequeña.

  • blog-stack java planeta-codigo planeta-linux programacion seguridad

    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 handsake del protocolo TLS.

  • blog-stack gnu-linux planeta-codigo planeta-linux programacion

    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.

  • blog-stack opinion planeta-codigo planeta-linux

    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.

  • blog-stack gnu-linux planeta-codigo planeta-linux 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.

  • blog-stack gnu-linux planeta-codigo planeta-linux 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.

  • blog-stack gnu-linux microsoft opinion planeta-codigo planeta-linux

    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.

  • blog-stack gnu-linux opinion planeta-codigo planeta-linux

    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.


Yo apoyo al software libre