Buscar
Social
Ofertas laborales ES
miércoles
abr282010

Cambia la opinión de nuestra comunidad sobre el cloud computing

Hace unos 18 meses hicimos una encuesta sobre cloud computing. En aquel momento, más de la mitad de los que respondieron la encuesta no sabían que era el cloud computing, y apenas un 5% estaba desarrollando o evaluando el usarlo. "Ni ahora ni nunca" usaré cloud computing tuvo otro 10% de respuestas.


Este mes hemos repetido la encuesta. En esta ocasión, algo menos de un 30% no saben qué es el cloud computing. Un 15% está ya desarrollando aplicaciones cloud computing o ya las tienen producción (frente a un 2% hace 18 meses) y la respuesta que más se está dando la gente es que todavía no lo está usando, pero que probablemente lo use en el futuro (aproximadamente un 40% de las respuestas). Hace 18 meses sólo un 20% de la gente creía que quizás en el futuro usaría cloud computing.


Como todas las ideas radicalmente nuevas cloud computing se encontró con un rechazo bastante frontal por parte de mucha gente al principio (inclusive en nuestra comunidad). Ahora, como refleja la encuesta, la opinión ha cambiado bastante. Simplificando mucho las cosas, creo que en estos 18 meses hemos ido de una opinión mayoritaria de "no entiendo qué es eso, y además no va ir a ningún sitio" a "puede tener sentido, dependiendo para que se quiera usar".


Como ya he defendido en varias ocasiones en este portal yo creo que el futuro de prácticamente todos los CPD es salir de las empresas y estar en la nube. Obviamente, queda mucho para llegar allí. Pero, al menos según la encuesta de javaHispano, en los últimos 18 meses se ha dado un pequeño paso en esa dirección.

miércoles
abr282010

Apache Maven 3.0-beta-1

Esta semana la fundación Apache ha anunciado Apache Maven 3.0-beta-1. Buena parte de los cambios de esta versión son cambios de arquitectura interna para facilitar implementaciones futuras de nueva funcionalidad. Entre los objetivos de Maven 3.0 también está el hacer más fácil de usar la herramienta y mejorar su rendimiento.


Maven 3.0 soporta OSGI y proporciona "hooks" dentro del ciclo de vida del proyecto que permiten ejecutar tareas necesarias para compilar, empaquetar o desplegar un proyecto. A través del proyecto Polyglot Maven, soporta archivos POM escritos en otros lenguajes distintos de XML; por ejemplo Groovy o JRuby. Así, en vez de escribir:

 

  <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.5</version>
       <scope>test</scope>
     </dependency>

            
Podría escribirse

 

 

dependencies {  

 

	 dependency { groupId 'junit'; artifactId 'junit'; version '4.7'; scope 'test' }     
}

 

Aquí tenéis más información sobre las novedades de Maven 3.0. 


Maven 3.0 está tratando de ser compatible con Maven 2.X. También es compatible con la mayor parte de los plugins. En el futuro, para Maven 3.1 hay planes para cambiar el API de estos plugins, pero en esta versión se va a mantener.

 

¿Qué opinais del soporte de Maven para Groovy, Scala, Ruby y Clojure en los archivos POM?

lunes
abr262010

JavaHispano Podcast - 084 - Noticias Abril 2010 (a)

lunes
abr262010

Gerrit Code Review, control de versiones más allá de Git

Gerrit Code Review es un sistema de control de versiones implementado prácticamente en su totalidad en Java que trata de ir más allá de Git. El proyecto, desarrollado por Google, contiene dentro a JGit, un porte de Git a Java, Jetty para ejecutar la interfase web, una implementación de SSL 100% desarrollada en Java y añade cierta funcionalidad sobre la típica de Git, siendo la más destacable el soporte formal para las revisiones de código.


En Git habitualmente uno realiza commits contra el repositorio local hasta que está preparado para enviar los cambios al repositorio remoto. Cuando los envía, puede enviarlos a la rama principal o a alguna otra rama. Y en algún momento se supone que los cambios de las otras ramas se fundirán con la rama principal. En Gerrit se da soporte a hacer commits para realizar revisión de código.


Estos commits deben ser revisados por otros desarrolladores, los cuales pueden añadir comentarios o solicitar modificaciones. Pueden definirse varias políticas para la aceptación del código, como que un usuario con permisos especiales cuando considere que ha terminado la revisión de código lo acepte la rama principal, o se acepte cuando consiga un número determinado de votos de varios usuarios.


Gerrit se distribuye como un war que puede desplegarse en cualquier contenedor de Servlets, pero dentro del war va empaquetado un Jetty y el war es auto ejecutable. En la actualidad Gerrit sólo depende de Git para ejecutar ciertos comandos relacionados con diffs (los desarrolladores tienen intención también de implementar esto); por el resto es absolutamente Java.


Esto tiene varias ventajas cuando se le compara con un sistema de control de versiones tradicional. Éstos sistemas de control de versiones (CVS, SVN, Git...) suelen estar basados en un montón de comandos de Unix, por lo que es necesario que todos los commiters tenga un usuario creado en la máquina, y que su usuario tenga permisos para ejecutar esos comandos. Esto hace que configurar una de estas máquinas de modo completamente seguro no sea trivial.


Gerrit al ser 100% Java y al realizar (prácticamente) todo el trabajo la máquina virtual no requiere que los commiters tengan usuarios creados en la máquina. Además, ofrece una interfaz web de administración que permite crear usuarios y controlar todos sus permisos de un modo sencillo.


La principal desventaja de Gerrit a día de hoy probablemente sea que realizar una copia de seguridad del repositorios más complicado de lo que suele ser en el resto de los sistemas de control de versiones, donde es suficiente con copiar todo lo que se encuentra debajo de un directorio determinado. Gerrit depende de una base de datos (soporta actualmente HSQL, MySQL y Postgres). Para realizar una copia de seguridad es necesario también realizar la copia de la base de datos. En el caso de HSQL (que se ejecuta en el mismo espacio de memoria que la aplicación) hay que parar el servidor. En el caso de MySQL y Postgres es necesario utilizar alguna herramienta de administración.


Gerrit se distribuye bajo licencia Apache. Como ya he mencionado, Google está detrás de él y es usado por proyectos como Android, así que está más que demostrado su valía. También es empleado por otras compañías como HTC, Motorola y Sony Ericsson (aunque pudiese parecer lo contrario por la lista de usuarios, Gerrit no tiene ninguna funcionalidad específica para desarrollar soluciones para movilidad; la lista de usuarios probablemente esté sesgada por el hecho de que Android ha sido el primer proyecto de entidad en usarlo.

 

Si estás interesado en aprender algo más sobre Gerrit, aquí tienes su documentación. 

viernes
abr232010

Taller Integración Continua

Hace un par de semanas/meses estoy trabajando en un taller o tutorial en línea sobre el montaje de una plataforma de integración contínua usando Hudson, Ant, JUnit, Emma y Sonar.

Finalmente esta semana creo que el taller es publicable y es útil para quien lo quiera desarrollar. La idea tras la publicación es que cualquier persona, esté o no familiarizada con estas herramientas (incluidas Java y Tomcat) pueda desarrollarlo completamente y que le sirva como material de referencia en el futuro para realizar un montaje similar. Además creo que en la red hay bastantes recursos sobre este tema pero hay muy poco en español.

Los temas del taller son:

  1. Introducción.
  2. Instalación y configuración.
    1. Instalación en Windows.
    2. Instalación en Linux.
    3. Instalación de Apache ANT.
    4. Instalación de Apache Maven.
    5. Instalación y Configuración de VisualSVN Server
  3. Configurar proyecto de ejemplo
  4. Creación de un Proyecto Básico con Hudson
  5. Plugins
    1. Pruebas unitarias con JUnit
    2. Cobertura de código con Emma.
  6. Sonar
    1. Instalación de MySQL.
    2. Instalación de SONAR.
    3. Integración con Hudson.
    4. Análisis del código fuente.
  7. Administración de Hudson.
    1. Preguntas Comunes.
  8. Recomendaciones para una instalación.
  9. Referencias.

Espero todo tipo de opiniones, sugerencias y críticas para mejorar el contenido. Igualmente procuraré notificar las actualizaciones que realice a través de mi weblog.