<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

	<channel>
		<title>Magazine - gestores-de-contenido</title>
		<link>http://www.genbetadev.com</link>
		<description>
Información sobre el sector de los desarrolladores, el desarrollo de aplicaciones, para móviles, desarrollo web, bases de datos, frameworks y lenguajes de programación		</description>
		<pubDate>2013-06-19 21:36:17</pubDate>

		<generator>http://www.genbetadev.com</generator>
                    <item>
      <title><![CDATA[Wordpress cumple diez años]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/wordpress-cumple-diez-anos</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/wordpress-cumple-diez-anos</guid>
      <pubDate>Mon, 27 May 2013 18:14:30 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img alt="Wordpress-10 años" src="http://img.genbetadev.com/2013/05/650_1000_Wordpress-10-aniversario.png" class="centro" /></p>

<p>La primera versión de <strong>Wordpress</strong> fue lanzada <strong>hace ya 10 años</strong>. Quizá este <span class="caps">CMS</span> ha sido uno de los responsables del nacimiento de muchos blogs. Sin desmerecer otras plataformas como Blogger o otros <span class="caps">CMS</span> de publicación como Drupal, sin duda Worpress es u<strong>na de las herramientas más usada para publicar en blogs</strong>, incluso para crear web de todo tipo.</p>

<p>Fue un 27 de Mayo de 2003 cuando <a href="http://wordpress.org/news/2003/05/wordpress-now-available/">se presentó oficialmente la versión 0.70</a>, por parte de su creador <a href="http://en.wikipedia.org/wiki/Matt_Mullenweg">Matt Mullenweg</a>. Completamente libre y con licencia <span class="caps">GPL</span> era una evolución de B2/Cafelog. Después llegaron los miles de plugins, librerías y plataforma libres basadas en Wordpress, como Lighpress.</p>

<p><!--more--></p>

<p>Muchas empresas usan Wordpress como gestor de contenidos como <span class="caps">CNN</span>, Pepsi, Yahoo, Adidas, <span class="caps">BBC</span>, Dell, Nokia o Adobe. No es de extrañar ya que se calcula que el 15% de las web en el mundo están construidas con Wordpress. La versión más descargada es la 3.5 (la última actualmente). Matt Mullenweg puede enorgullecerse que se han realizado hasta la fecha más de 66 millones de instalaciones de su plataforma.</p>

<p>Aprovechando el recopilatorio realizado por <a href="http://ayudawordpress.com/10-anos-de-wordpress-wp10/">Ayuda Wordpress</a>, enlazamos las distintas versiones por las que ha ido pasando Wordpress a lo largo de su historia. Sin contar las revisiones de seguridad, pero ya sabéis que casi nadie se libra de esos errores.</p>

<ul>
<li>Versión oficial de lanzamiento: <a href="http://wordpress.org/development/2003/05/wordpress-now-available/">0.70</a></li>
<li><a href="http://wordpress.org/development/2004/01/wordpress-10/">WP 1.0 “Miles Davis”</a> Enero 2004</li>
<li><a href="http://wordpress.org/development/2004/05/heres-the-beef/">WP 1.2  “Charles Mingus”</a>. Mayo 2004</li>
<li><a href="http://wordpress.org/development/2005/02/strayhorn/">WP 1.5 1.5 “Billy Strayhorn”</a>. Febrero 2005</li>
<li><a href="http://wordpress.org/development/2005/12/wp2/">WP 2.0 “Duke Ellington”</a>. Diciembre 2005</li>
<li><a href="http://wordpress.org/development/2007/01/ella-21/">WP 2.1 “Ella Fitzgerald”</a>. Enero 2007</li>
<li><a href="http://wordpress.org/development/2007/05/wordpress-22/">WP 2.2 “Stan Getz”</a>. Mayo 2007</li>
<li><a href="http://wordpress.org/development/2007/09/wordpress-23/">WP 2.3  “Dexter Gordon”.</a> Septiembre 2007</li>
<li><a href="http://wordpress.org/development/2008/03/wordpress-25-brecker/">WP 2.5 “Michael Brecker”</a>. Marzo 2008</li>
<li><a href="http://wordpress.org/development/2008/07/wordpress-26-tyner/">WP 2.6 “McCoy Tyner”</a>. Julio 2008</li>
<li><a href="http://wordpress.org/development/2008/12/coltrane/">WP 2.7 “John Coltrane”</a>. Diciembre 2008</li>
<li><a href="http://wordpress.org/development/2009/06/wordpress-28/">WP 2.8 “Chet Baker”</a>. Junio 2009</li>
<li><a href="http://wordpress.org/development/2009/12/wordpress-2-9/">WP 2.9 “Carmen McRae”</a>. Diciembre 2009</li>
<li><a href="http://wordpress.org/development/2010/06/thelonious/">WP 3.0 “Thelonious Monk”</a>. Junio 2010</li>
<li><a href="http://wordpress.org/news/2011/02/threeone/">WP 3.1 “Django Reinhardt”</a>- Febrero 2011</li>
<li><a href="http://wordpress.org/news/2011/07/gershwin/">WP 3.2 “George Gershwin”</a>. Julio 2011</li>
<li><a href="http://wordpress.org/news/2011/12/sonny/">WP 3.3 “Sonny Stitt”</a>. Diciembre 2011</li>
<li><a href="http://wordpress.org/news/2012/06/green/">WP 3.4 “Grant Green”</a>- Junio 2012</li>
<li><a href="http://wordpress.org/news/2012/12/elvin/">WP 3.5 “Elvin Jones”</a>. Diciembre 2012</li>
<li><a href="http://codex.wordpress.org/Version_3.6">WP 3.6</a> en breve</li>
</ul>

<p>Se ha creado una web oficial para celebrar este décimo aniversario y animando a la gente a compartir con el hashtag <strong>#wp10</strong> cómo te ha cambiado la vida. Seguro que a muchos blogger y desarrollador tienen mucho que decir.</p>

<p>Sitio web | <a href="http://www.wordpress.org">Wordpress</a> <br />
Más información | <a href="http://wp10.wordpress.net/">WP 10 aniversario</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Bolt, un CMS sencillo y rápido como un rayo ]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/bolt-un-cms-sencillo-y-rapido-como-un-rayo</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/bolt-un-cms-sencillo-y-rapido-como-un-rayo</guid>
      <pubDate>Thu, 14 Mar 2013 15:29:20 +0000</pubDate>

      <author>Fernando Siles</author>
      <description><![CDATA[
      <p><img alt="bolt" src="http://img.genbetadev.com/2013/03/Captura de pantalla 2013-03-14 a la(s) 11.png" class="centro" /></p>

	<p>Hablamos poco de <strong><span class="caps">CMS</span></strong> en este nuestro/vuestro blog <a href="http://www.genbetadev.com">Genbeta Dev</a>. A ver si nos enmendamos. Para empezar hoy os presentamos un <span class="caps">CMS</span> llamado <strong>Bolt</strong> cuya consideración está subiendo como la espuma entre la comunidad developer de buena parte de Europa ya que no sólo se centra en una buena experiencia para el editor o el usuario final sino que también <strong>se preocupa de hacer más fácil la vida para el desarrollador</strong>, aquel que se tiene que calentar la cabeza creando nuevos módulos, funcionalidades y themes (o adaptando los ya existentes a los requisitos de los clientes).<!--more--></p>

	<p>Bolt, como la mayoría de los <span class="caps">CMS</span>, está desarrollado en <strong><span class="caps">PHP</span></strong> aunque con la novedad de hacerlo a través de un <strong>framework basado en componentes de Symfony2</strong> llamado <a href="http://silex.sensiolabs.org/">Silex</a> (aunque su nombre se parezca mucho a mi apellido no tenía el gusto de conocerlo hasta hoy). Además se puede conectar indistintamente a <strong>MySQL, <span class="caps">SQL</span>ite o PostgreSQL</strong> (lo que le da flexibilidad) y utiliza el generador de templates <a href="http://twig.sensiolabs.org/">Twig</a> (también basado en Symfony2 y de la misma empresa que Silex) para que el código resultando sea limpio y fácil de trastear.</p>

	<p>Como no podía ser de otra forma, Bolt se trata de <strong>software libre y cuenta con una licencia <span class="caps">MIT</span></strong>. Además cuenta con una buena <a href="http://docs.bolt.cm/">documentación para desarrolladores</a> y puedes <em>forkear</em> (neolengua rules!) su <a href="https://github.com/bobdenotter/bolt">repositorio de Github</a> y darle tu toque personal.</p>

	<p>Habrá que ver si puede competir con gigantes de la talla de Wordpress, Drupal o Joomla pero desde luego siempre viene bien que haya más tipos de pescado en la lonja para la salud del medio.</p>

	<p>Vía | <a href="http://bolt.cm/">Bolt</a> (a través de un tuit de <a href="https://twitter.com/aNieto2k/status/311780327544721408">@aNieto2k</a>)</p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Spark, Drupal para los que de verdad piensan en el contenido ]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/spark-drupal-para-los-que-de-verdad-piensan-en-el-contenido</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/spark-drupal-para-los-que-de-verdad-piensan-en-el-contenido</guid>
      <pubDate>Tue, 13 Nov 2012 20:39:53 +0000</pubDate>

      <author>Fernando Siles</author>
      <description><![CDATA[
      <p><iframe width="650" height="405" src="http://www.youtube.com/embed/a53Wcq31LmY" frameborder="0" allowfullscreen></iframe></p>

	<p><strong><span class="caps">CMS</span></strong> es el acrónimo de Content Management System, lo que en el idioma cervantino viene a significar Sistema para la Gestión del Contenido. <strong>Drupal es un framework pero a su vez es un <span class="caps">CMS</span></strong> y muchas veces los desarrolladores olvidan (olvidamos) esto último, nos centramos en mil y una historias y dejamos un poco de lado que la acción de publicar contenido sea una experiencia agradable y productiva. <strong>Spark</strong> es una distribución todavía <strong>en fase alpha para Drupal 7</strong> (y en un futuro para Drupal 8) cuyo objetivo es esto último.<!--more--></p>

	<p>Surgido de algunas de las mentes más brillantes de la comunidad, a Spark se le empieza a conocer como el Pressflow (una distro muy popular y centrada en mejorar el rendimiento por defecto de Drupal) para la experiencia del editor y se centra en <strong>tres grandes áreas específicas</strong>:</p>

<ul>
<li>Edición in situ del contenido</li>
<li>Herramientas más flexibles para el posicionamiento del contenido</li>
<li>Una administración más amigable para terminales móviles</li></ul>

	<p>Además de todo lo relacionado con la integración multimedia y la gestión de flujos. </p>

	<p>Los vídeos (como el que encabeza este post) muestran <strong>un gran potencial</strong> (la <a href="http://demo.sparkdrupal.com/">demo</a> no tanto, pero no hay que olvidar que está en una fase muy temprana todavía) y pueden hacer pensar incluso en un <em>Wordpress killer</em> que pueda llegar a amenazar el dominio de WP en el mundo de la blogosfera y los nuevos mass media. Veremos a ver que depara el futuro.</p>

	<p>Vía | <a href="http://drupal.org/project/spark">drupal.org</a><br />
Sitio | <a href="http://www.sparkdrupal.com/">Spark Drupal</a><br />
En Genbeta Dev | <a href="http://www.genbetadev.com/desarrollo-web/omega-responsive-design-tambien-en-drupal">Omega, responsive design también en Drupal</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Drupal Developer Days Barcelona 2012: la comunidad internacional drupalera toma Barna y Twitter ]]></title>
      <link>http://www.genbetadev.com/actualidad/drupal-developer-days-barcelona-2012-la-comunidad-internacional-drupalera-toma-barna-y-twitter</link>
      <guid>http://www.genbetadev.com/actualidad/drupal-developer-days-barcelona-2012-la-comunidad-internacional-drupalera-toma-barna-y-twitter</guid>
      <pubDate>Mon, 18 Jun 2012 11:07:58 +0000</pubDate>

      <author>Fernando Siles</author>
      <description><![CDATA[
      <div class="caption-img"> <img alt="foto grupo drupal developer days" src="http://img.genbetadev.com/2012/06/foto_grupo_ddd.jpg" class="centro" /> <span>Encuentra a Wally&#8230;</span> </div>

	<p>Dos grandes eventos se han solapado este fin de semana en Barcelona. Por un lado ha estado el legendario festival Sonar. Por el otro se han celebrado los <strong>Drupal Developer Days</strong>, uno de los eventos más importantes de Drupal a nivel internacional enfocado al desarrollo. De hecho había primeras figuras mundiales de la comunidad Drupal y empresas multinacionales de postín. Vamos, un lujo y allí (en el Drupal Developer Days, no en el Sonar) ha estado <a href="http://www.genbetadev.com">Genbeta Dev</a> con un reportero de excepción&#8230; bueno, no, miento, conmigo, que de excepcional tengo bien poco. Podría haceros una espectacular reseña pero en los tiempos de Twitter todo se va contando al momento y lo mejor es <strong>recuperar esos tuits y que os hagáis una idea de lo que allí se coció sábado y domingo</strong> tanto en las charlas y sprints como en todo lo que rodeó al evento.<!--more--></p>

	<p><em>(Aviso que al ser un workshop de carácter internacional la gran mayoría de tuits son en inglés aunque alguno hay en español y lo mismo hasta alguno en catalá)</em></p>

	<p><script src="http://storify.com/kalimero/drupal-developer-days-barcelona-2012.js?border=false"></script><noscript>[<a href="http://storify.com/kalimero/drupal-developer-days-barcelona-2012" target="_blank">View the story &#8220;Drupal Developer Days Barcelona 2012&#8221; on Storify</a>]</noscript></p>

	<p>Y eso fue todo lo que los <strong>Drupal Developer Days Barcelona 2012</strong> han dado de sí. Nos vemos en el próximo evento.. ¡y recordad saludarme si me veis, que no muerdo (no siempre)!</p>

	<p>Foto | <a href="https://plus.google.com/photos/103138221614479310970/albums/5754694710901683617?banner=pwa">Joan Martinez Serres</a><br />
Más info | <a href="http://barcelona2012.drupaldays.org/program/sessions/accepted">Drupal Developer Days Barcelona 2012</a><br />
En Genbetadev | <a href="http://www.genbetadev.com/frameworks/drupal-day-profesionales-de-drupal-codo-a-codo-un-dia-en-barcelona">Drupal Day, profesionales de Drupal codo a codo un día en Barcelona</a><br />
En Genbetadev | <a href="http://www.genbetadev.com/desarrolladores/codemotion-espana-2012-lo-que-se-dijo-en-twitter">Codemotion España 2012, lo que se dijo en Twitter</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Manos en la masa, haciendo crecer nuestro árbol del repositorio de código ]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/manos-en-la-masa-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/manos-en-la-masa-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo</guid>
      <pubDate>Sun, 13 May 2012 12:01:03 +0000</pubDate>

      <author>Juan Quijano</author>
      <description><![CDATA[
      <p><img alt="Portada Manos en la Masa" src="http://img.genbetadev.com/2012/05/portadaManosEnLaMasa.jpg" class="centro" /></p>

	<p>Este es el tercer capítulo de la miniserie sobre Branching. Que se ha compuesto de <em>Labeling</em>, <em>Branching</em> y este, <em>Manos en la masa</em>. Y que trata sobre técnicas de división del desarrollo en el repositorio de código que <strong>nos haga más fácil el manejar la complejidad inherente</strong> a toda construcción de aplicaciones de software.</p>

	<p>Este ejemplo lo voy a mostrar en Visual Studio 11 beta contra un Team Foundation Service, pero es muy similar el realizarlo en Git, Mercurial o <span class="caps">SVN</span>. <strong>Lo importante no es la herramienta</strong>, si no tener claro que el uso de estas técnicas nos hace crecer en la madurez de nuestros equipos y nos facilita y prepara para cuando las cosas se tuercen <del>que es casi siempre</del>.<br />
<!--more--><br />
<h2>Haciendo un branch</h2><br />
Tengo un proyecto de GenbetaDev en mi repositorio de código en una cuenta de Team Foundation Service (en la Nube). Accedo a él, y selecciono el explorador del repositorio de código.</p>

	<p><img alt="Team Explorer" src="http://img.genbetadev.com/2012/05/branch04.jpg" class="centro_sinmarco" /></p>

	<p>En la ventana que se me abre, veo mi directorio de carpetas de proyectos, en donde abro la de GenbetaDev.</p>

	<p>Aquí me encuentro la carpeta troncal <em>Trunk</em> de mi desarrollo y <strong>de la cual quiero hacer una nueva rama</strong>. Para ello pulso con el botón derecho encima del nodo del cual quiero que salga la rama, y en el menú contextual selecciono “<em>Branching and Merging</em>”.</p>

	<p><img alt="Seleccionando Branch" src="http://img.genbetadev.com/2012/05/branch05.jpg" class="centro_sinmarco" /></p>

	<p>En el menú desplegable selecciono la opción “<em>Branch</em>”, y se me abre una ventana en donde le pongo un nombre <b>en el repositorio</b> a la carpeta que va a contener la nueva rama; qué versión del código original quiero copiar en el <em>Branch</em> (el último, una etiqueta específica, una fecha, etc.); y si quiero descargar la nueva rama en mi <em>workspaces</em> actual o convertirla en mi código por defecto.</p>

	<p><img alt="Seleccionando versión" src="http://img.genbetadev.com/2012/05/branch06.jpg" class="centro_sinmarco" /></p>

	<p>A continuación me solicita que haga un mapeado de la carpeta del repositorio de código a mi disco duro. Es decir, <strong>en qué carpeta local voy a guardar el código almacenado en el <em>Branch</em></strong>. Y aquí te voy a dar un consejillo.</p>

	<p><img alt="Creando workspace" src="http://img.genbetadev.com/2012/05/branch07.jpg" class="centro_sinmarco" /></p>

	<p>En desarrollos medios o pequeños, sin mucha complejidad, yo utilizo la misma carpeta para el <em>Trunk</em> y los <em>Branch</em>. Así me <strong>evito modificar el código en la rama inadecuada por no darme cuenta de cual solución estoy abriendo</strong>. Puede que no sea la mejor práctica, pero a mi me funciona muy bien para evitar errores.</p>

	<p>Una vez realizado esto, pulsamos el botón de “<em>Map</em>” y <strong>el sistema se pone a realizar el <em>branching</em> de nuestro código</strong>. Observándose en el explorador del repositorio, cuando finalice el proceso, nuestra nueva rama y el que está configurada como solución por defecto.</p>

	<p><img alt="Escogiendo target" src="http://img.genbetadev.com/2012/05/branch08.jpg" class="centro_sinmarco" /></p>

	<p><h2>Fundiendo ramas</h2><br />
La segunda parte del proceso, y<strong> sin duda la más difícil</strong>, es cuando tengo una rama y la quiero actualizar en el <em>Trunk</em>. O actualizar con el código de la principal, el código de una <em>Branch</em>.</p>

	<p>Para ello, desde la ventana del explorador del repositorio, pulso con el botón derecho sobre la rama que quiero fundir con otra, y escojo “<em>Merge</em>”. Abriéndose la ventana de un asistente en donde debo escoger cual es la rama destino para realizar la actualización y cual es la versión de código que nos queremos llevar.</p>

	<p><img alt="Seleccionando merge" src="http://img.genbetadev.com/2012/05/branch09.jpg" class="centro_sinmarco" /></p>

	<p>Acto y seguido el TF Service se pondrá a trabajar y <strong>añadirá y modificará los ficheros de forma automática, siempre que sea posible</strong>. Y en el caso de que no lo pueda hacer porque la modificación tiene posibilidades de no hacerse correctamente, entonces nos marca el <em>Merge</em> como manual y debemos de utilizar la herramienta de comparación de código para completar la unión.</p>

	<p>Pero de esta herramienta hablaré <strong>en el próximo capítulo</strong>,</p>

	<p>Más información | <a href="http://vsarbranchingguide.codeplex.com/">Visual Studio Team Foundation Server Branching and Merging Guide</a>  <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/es/ch04.html ">Git. Magia Con Los Branches</a> </p>

	<p>En GenbetaDev | <a href="http://www.genbetadev.com/gestores-de-contenido/etiquetando-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo" title="">Etiquetando,haciendo crecer nuestro árbol del repositorio de código</a>, <a href="http://www.genbetadev.com/gestores-de-contenido/branching-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo">Branching, haciendo crecer nuestro árbol del repositorio de código</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Branching, haciendo crecer nuestro árbol del repositorio de código]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/branching-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/branching-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo</guid>
      <pubDate>Tue, 08 May 2012 04:00:00 +0000</pubDate>

      <author>Juan Quijano</author>
      <description><![CDATA[
      <p><img alt="Portada Branching" src="http://img.genbetadev.com/2012/05/portadaBranching.jpg" class="centro_sinmarco" /></p>

	<p>En el artículo anterior de esta miniserie, estuve tratando sobre <strong>la necesidad básica de tener un repositorio de código</strong>. Y de una primera aproximación a la gestión más madura del trabajo por medio del etiquetado de versiones: <em>labeling</em>.</p>

	<p>En esta segunda parte, final, quiero dar un paso adelante y describir una técnica de separación de las líneas de desarrollo en el repositorio de código fuente que nos ayude, en gran medida, a organizar la complejidad inherente a todo desarrollo en equipo.</p>

	<p><em>Branching</em>, dicho de forma espantosa sería algo como “<em>rameando</em>” o ir haciendo ramas, se utiliza en los repositorios de código. <strong>No es algo novedoso, ni mucho menos</strong>. De hecho, al menos desde los años 70 ya existen aplicaciones como <em>CA Software Change Manager</em>, que permiten hacer branching; mucho antes de que algunos de nuestros lectores hubiese, tan siquiera nacido.</p>

	<p><!--more--></p>

	<p><h2>Porqué necesitamos hacer branching</h2><br />
Por ejemplo, estoy integrado en un equipo de cuatro personas haciendo un proyecto de una aplicación de gestión de una empresa de repuestos. Y empezamos a trabajar sobre el módulo de almacén.</p>

	<p>Vemos que vamos a necesitar hacer una pantalla típica de <span class="caps">CRUD</span>: alta, modificación, baja y listado de piezas. Para ir más deprisa <strong>vamos a trabajar los cuatro al mismo tiempo</strong> en  la misma pantalla, por lo cual vamos a trastear en el mismo código tanto en la capa de representación, en la de negocio y en la de acceso a datos.</p>

	<p>Para que no haya problemas, habilitamos la capacidad de <em>checkin</em> múltiple, así varios podemos tocar el mismo código al mismo tiempo, y mantenemos la coherencia del código por medio de <em>merges</em>. Cuando lo tenemos acabado y vemos que ha funcionado bien, <strong>le ponemos una etiqueta</strong>, y continuamos con la siguiente pantalla.</p>

	<p>Cuando tenemos terminado el módulo de almacén, y todas sus pantallas, volvemos a etiquetar y le damos al cliente el módulo para su puesta en producción. Y nos disponemos a continuar con el módulo de facturación, que está muy relacionado con el de almacén.Nos volvemos a repartir el  trabajo, y empezamos a modificar y añadir las líneas del nuevo código al ya existente de almacén.</p>

	<p>Y en esto nos encontramos que <strong>el cliente ha encontrado un fallo crítico y hay que corregirlo</strong> y publicar una actualización. Para ello nos hacemos una copia de seguridad, recuperamos la etiqueta, realizamos los arreglos, volvemos a etiquetar y se lo mandamos al cliente el módulo arreglado.</p>

	<p><em>¿Y ahora cómo vuelvo al código original, que aún no funciona y que está en desarrollo; y, además, le añado los arreglos añadidos en la nueva versión?</em></p>

	<p>La respuesta más obvia es, <strong>utilizando desarrollo en ramas</strong> (<em>branching</em>).</p>

	<p>Cuando he terminado de hacer el módulo de almacén, no solamente lo etiqueto si no que creo una nueva rama, que es una copia del código, en donde voy a ir desarrollando el nuevo módulo de facturación. Así, si tengo que modificar el módulo de almacén, <strong>no tengo que esperar a tener una versión funcional del de facturación</strong>, o andar haciendo copias de seguridad.</p>

	<p><img alt="Branching1" src="http://img.genbetadev.com/2012/05/branch01.jpg" class="centro" /></p>

	<p>Como se ve en la figura, <strong>este sistema es mucho más robusto y seguro</strong>. Y evito que los trabajos en un módulo me afecten al trabajo en los demás.</p>

	<p><h2>Diferentes sabores</h2><br />
Ahora que tengo claro que la complejidad del desarrollo del software me lleva de la mano a realizar ramas en mi repositorio de código, quiero compartir los dos primeros niveles de <em>branching</em> que utilizo con diariamente.</p>

	<p>El primero es una forma secuencial en donde tengo el tronco de la aplicación (siempre lista para ser desplegada), etiquetado cada punto de publicación y en donde <strong>las modificaciones y añadidos se inician, se completan y se unen al tronco por medio de una rama</strong>. Una vez terminada la misma, iniciaría otra rama para el siguiente módulo.</p>

	<p><img alt="Branching2" src="http://img.genbetadev.com/2012/05/branch02.jpg" class="centro" />  </p>

	<p>Esta forma de trabajo tiene la ventaja de ser muy ordenada y que la dirección de las actualizaciones siempre es del <em>branch</em> al <em>trunk</em>. Es decir, del nuevo desarrollo a la línea base. Como inconveniente, <strong>se complica hacer varios trabajos de forma simultánea</strong>. A menos que arranquemos tareas de similar duración que acaben al mismo tiempo o que no compartan nada de código (lo cual es difícil en cuanto empiezas a trabajar en capas). </p>

	<p>Lo más habitual es que el grafo del árbol de ramas alrededor  del tronco principal, sea de múltiples direcciones. No solamente de las ramas hacia el trunk, si no de este a diferentes ramas o, incluso, entre ramas diferentes.</p>

	<p><img alt="Branching3" src="http://img.genbetadev.com/2012/05/branch03.jpg" class="centro" /></p>

	<p>Así, por ejemplo, en la figura anterior he iniciado una corrección en el <em>trunk</em> mientras termino el módulo1. Ya que he terminado la corrección, hago un <em>merge</em> de este con el <em>branch</em> del módulo 2, para que esté actualizado; ya que hay cosas en la capa de negocio que están implicadas.</p>

	<p>Como se ve, con esta forma de trabajo <strong>voy a  tener una versión de la aplicación lista para ser publicada en cualquier momento</strong>. Aseguro el no tener que esperar a que se acabe un trabajo para iniciar otro. Y puedo mantener actualizado los módulos según lo necesite en cada caso.</p>

	<p><strong>El mayor inconveniente es la complejidad</strong>. Si somos varios equipos, y realizamos desarrollos cruzados, con puntos en común crecientes y que se deben mantener sincronizados, puedo tener un árbol con muchas ramas que llegue a ser confuso o difícil de abarcar.</p>

	<p>A partir de este punto de madurez, podemos ir ganando complejidad subdividiendo los trabajos incluso hasta tener una rama por Sprint o por tarea dentro de un Sprint. Teniendo siempre claro que el concepto subyacente es que el desarrollo no impida tener código funcionando en cualquier momento.</p>

	<p>Incluso podemos llegar a un sistema de <em>branching</em> similar a una publicación continua, en donde <strong>no trabajamos contra un tronco, si no con simultaneas ramas</strong>. Y donde se activan o desactivan las funcionalidades según tengamos finalizados y probados los módulos.</p>

	<p>Ahora solamente queda <strong>el pasar de la teoría a la práctica y ver un ejemplo</strong> en mi repositorio de código.</p>

	<p>Más información | <a href="http://vsarbranchingguide.codeplex.com/">Visual Studio Team Foundation Server Branching and Merging Guide</a>,  <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/es/ch04.html ">Git. Magia Con Los Branches</a><br />
En GenbetaDev | Etiquetando,haciendo crecer nuestro árbol del repositorio de código, <a href="http://www.genbetadev.com/herramientas/manejo-de-ramas-de-desarrollo-con-git">Manejo de ramas de desarrollo con git</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Etiquetando,haciendo crecer nuestro árbol del repositorio de código]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/etiquetando-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/etiquetando-haciendo-crecer-nuestro-arbol-del-repositorio-de-codigo</guid>
      <pubDate>Mon, 07 May 2012 04:00:00 +0000</pubDate>

      <author>Juan Quijano</author>
      <description><![CDATA[
      <p><img alt="Etiquetando, serie de Branching" src="http://img.genbetadev.com/2012/05/portada.jpg" class="centro" /></p>

	<p>Una de las cosas que más me sorprenden y escandalizan es <strong>la cantidad de empresas y compañeros que trabajan sin un repositorio de código</strong>. No conocen las virtudes de configurar un punto único en donde almacenar, versionar y recuperar las cientos o miles de horas/hombre invertidas en millones de líneas de programación.</p>

	<p>Cuando toca juntar las fuentes de dos o tres personas es un auténtico dolor, pero la cosa se hace imposible cuando lo ha de realizar todo un equipo o departamento. Haciéndose <strong>una costumbre el perder código</strong>, o tener una árbol de carpetas de &#8220;<em>copias de seguridad</em>&#8220; en el ordenador que se utiliza para hacer las publicaciones y que, generalmente, es el del líder del equipo.</p>

	<p>Pero incluso cuando se establece, por fin, un repositorio de código, se trabaja continuadamente en un mismo tronco (<em>trunk</em>). El cual soporta las modificaciones y actualizaciones más variopintas. Sufriendo roturas a causa de errores o el no poder publicar hasta que se termine la decimonovena modificación o arreglo.</p>

	<p>A estos equipos les invito a <strong>dar un paso en la escalera de la madurez</strong> del ecosistema y a leer esta serie que trata sobre la técnica de <strong>branching</strong>. Es decir, la forma de construir software alrededor de un núcleo estable, minimizando las causas de ruptura o de no disponibilidad.</p>

	<p>Y que voy a <strong>iniciar con el etiquetado</strong> de las versiones.</p>

	<p><!--more--><br />
<h2>Las herramientas</h2><br />
<img alt="Team Foundation Service" src="http://img.genbetadev.com/2012/05/TFSServices.jpg" class="centro_sinmarco" /></p>

	<p>En el núcleo tengo el repositorio de código, control de versiones y gestor de proyectos: el <strong>Team Foundation Service Preview</strong>. Que es una versión en la nube del Team Foundation Server 11; a la que me han dado acceso por invitación. De precios y costes aún no se ha anunciado nada, pero es un servicio muy completo que me permite hacer prácticamente todo lo que puedo hacer con <strong>un <span class="caps">TFS</span> 11 beta pero con la flexibilidad, escalabilidad, accesibilidad y disponibilidad que nos provee un sistema basado en la Cloud</strong>. Un ejemplo más del desarrollo del concepto SaaS.</p>

	<p>Para el que tenga máquina o que quiera trastear en un entorno local, puede utilizar el <a href="http://www.microsoft.com/visualstudio/11/es-es/downloads">Team Foundation Server 11 Beta</a>, que está disponible para su descarga y uso sin coste, hasta que salga la versión definitiva de pago. Y aún entonces, se va a publicar una versión gratuita. </p>

	<p>El acceso al repositorio de código lo hago desde <strong>Visual Studio 11 beta</strong>, el cual ha remozado totalmente el interfaz de la antigua versión. Y que llevo utilizando desde la versión  Developer  Preview presentada en el evento <span class="caps">BUILD</span> del año pasado.</p>

	<p>Pero tanto ahora como en el futuro <strong>puedo utilizar cualquier fabricante o versión de repositorio de código</strong> para poner en práctica el branching. Por ejemplo, un Visual Studio 2010 contra un <span class="caps">SVN</span>; o un Eclipse contra un <span class="caps">TFS</span>, o un Git; o incluso un muy poco aconsejable y anticuado sourcesafe.</p>

	<p><h2>Etiquetas, un primer paso</h2><br />
Una vez que he conseguido instalar el repositorio; y el equipo supere las primeras suspicacias y pérdidas de código por un uso inesperadamente sorprendente de los check-in, los check-out y las malas prácticas de copy, paste &amp; move de ficheros físicos; llega el momento en que <strong>se hace parte de la cultura corporativa</strong> tener todo el trabajo en un solo sitio compartido, seguro y que se realice el versionado de forma automática y sencilla.</p>

	<p>¿Pero qué pasa cuando hemos realizado una publicación en integración; y encontramos varios errores que hay que solucionar; y a los dos días nos damos cuenta que hemos roto la versión publicada y que hay que volver a la última válida? Pues <strong>que tenemos un desastre a la vista</strong>, ya que en esos dos días algunos ficheros han sido modificados, otros han sido borrados y la mayoría no se han tocado. Y, además, el impacto de cada uno de ellos en el resto de la aplicación depende de muchos otros factores.</p>

	<p>La forma más sencilla de poder acceder a una versión específica de mi código, es por medio del uso de <em>etiquetas</em>. Es decir, <strong>hago una instantánea de la evolución de mi aplicación en un momento dado</strong> y le doy un nombre para poder recuperarla como una unidad. Así no tengo que preocuparme de saber qué versión de cada fichero es la correcta para el momento específico, ni cual ha sido cambiada anterior o posteriormente. Es una especie de backup de los hitos importantes en el desarrollo de la aplicación. </p>

	<p><img alt="Etiquetando TFS11beta" src="http://img.genbetadev.com/2012/05/label01.jpg" class="centro" /></p>

	<p>En <span class="caps">TFS</span>, realizar etiquetados es algo tan sencillo como entrar en la pestaña del Team Explorer, y seleccionar el enlace del <em>Source Control Explorer</em> para abrir la ventana del <em>Explorador de Código</em>. Aquí pulso el botón derecho del ratón encima del nodo raíz del proyecto, o el nodo que queramos etiquetar, y selecciono &#8220;<em>Apply label</em>&#8220;. Así abrimos una ventana emergente en donde debemos introducir el título de la etiqueta y su descripción.</p>

	<p>Mi consejo: <strong>sé cuidadoso</strong>. En el título incluye la fecha y describe de forma expresiva lo que caracteriza a esta versión del código. Ten en cuenta que para recuperar esta instantánea tendrás que hacer un <em>Get specific version</em> por etiqueta. Y en el listado que se abre en una nueva ventana emergente, seleccionar la que almacena la versión que deseas recuperar. Por lo cual el título, cuanto más descriptivo mejor.</p>

	<p><img alt="Etiquetando don TFS11beta" src="http://img.genbetadev.com/2012/05/label02.jpg" class="centro" /><br />
<h2>Aquí no se acaba</h2><br />
Ahora si, puedo estar haciendo diabluras en el código y romper todo lo rompible, y <strong>puedo en cualquier momento recuperar un punto específico</strong> en donde las cosas aún funcionaban de forma correcta. Pero esto, insisto, es una solución muy básica. </p>

	<p>Los problemas empiezan a crecer cuando dos o más desarrolladores están modificando el mismo código al mismo tiempo. Ya que el sistema de etiquetas es lineal, por lo cual tarde o temprano<strong> tendremos un nudo gordiano</strong> en donde no hay forma de tener una versión estable del proyecto sin un gran y doloroso esfuerzo.</p>

	<p>Y aquí llegamos a los troncos y las ramas: <strong>branching</strong>.</p>

	<p>Más información | <a href="http://vsarbranchingguide.codeplex.com/">Visual Studio Team Foundation Server Branching and Merging Guide</a>,  <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/es/ch04.html ">Git. Magia Con Los Branches</a><br />
En GenbetaDev | <a href="http://www.genbetadev.com/herramientas/manejo-de-ramas-de-desarrollo-con-git">Manejo de ramas de desarrollo con git</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Estandarizando el acceso a Alfresco con CMIS]]></title>
      <link>http://www.genbetadev.com/java-j2ee/estandarizando-el-acceso-a-alfresco-con-cmis</link>
      <guid>http://www.genbetadev.com/java-j2ee/estandarizando-el-acceso-a-alfresco-con-cmis</guid>
      <pubDate>Thu, 15 Mar 2012 07:00:00 +0000</pubDate>

      <author>Ricardo Borillo</author>
      <description><![CDATA[
      <p><img alt="Banner Alfresco + CMIS" src="http://img.genbetadev.com/2012/03/650_1000_banner-cmis.png" class="centro" /></p>

	<p><a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis"><span class="caps">CMIS</span></a> (Content Management Interoperability Services), es un estándar abierto para el diseño de una <strong>capa de abstracción</strong> que permita el control de diversos gestores de contenidos y repositorios documentales de una forma genérica. Para ello, <span class="caps">CMIS</span> define un <strong>modelo de dominio</strong> y una serie de mecanismos <strong>estándares de comunicación</strong> como Web Services o <span class="caps">REST</span>ful <a href="http://atompub.org/">AtomPub</a>.</p>

	<p><a href="http://www.oasis-open.org/"><span class="caps">OASIS</span></a> es el reponsable de la gestión de este estándar desde Mayo de 2010, el cual contempla la gestión de dos tipos de objetos principalmente: directorios y documentos. A partir de estos, se establecerá una jerarquía de almacenamiento asignándo propiedades a ambos y complementándolos con el control de acceso a los mismos, control de versiones o incluso definiendo relaciones entre ellos.<!--more--></p>

	<p>Son muchos los gestores de contenidos que actualmente han apostado por <span class="caps">CMIS</span> a la hora de exponer su funcionalidad. Esto hace posible diseñar aplicaciones más flexibles y con un menor grado de acoplamiento, ya que la dependencia de un estándar y no de una implementación específica del software de gestión de contenidos permite poder migrar a otro proveedor de forma más sencilla.</p>

	<p><img alt="Capa de presentación vs servicios" src="http://img.genbetadev.com/2012/03/bindings.png" class="centro" /></p>

	<p>En este artículo y en sucesivas entregas profundizaremos en las bases de <span class="caps">CMIS</span>, en su implementación en Alfresco y en su uso desde las aplicaciones cliente que diseñemos.</p>

	<p><img alt="Arquitectura CMIS" src="http://img.genbetadev.com/2012/03/arquitectura-cmis.png" class="centro" /></p>

<h2><span class="caps">CMIS</span> y Java Content Repository</h2>

	<p>Antes de comenzar a analizar a fondo <span class="caps">CMIS</span>, una de las primera preguntas que nos puede surgir es, <strong>¿Porque otro estándar para el acceso abstracto a repositorios documentales si ya existe <a href="http://www.jcp.org/en/jsr/detail?id=170"><span class="caps">JCR</span></a>?</strong></p>

	<p>Al margen de que en <span class="caps">CMIS</span> se interopera no a nivel de lenguaje Java, sino a nivel <span class="caps">HTTP</span> (Web Services o <span class="caps">REST</span>), el foco de ambos estándares es distinto, con lo que son totalmente compatibles.</p>

	<p><img alt="Compatibilidad CMIS / JCR" src="http://img.genbetadev.com/2012/03/compatible.png" class="centro" style="width:400px;" /></p>

	<p>Lo más llamativo es que si usamos <a href="http://chemistry.apache.org/">Apache Chemistry</a> para implementar nuestro servidor, podemos hacer que cualquier repositorio que ya cumpla <span class="caps">JCR</span>, sea ahora accesible vía <span class="caps">CMIS</span> de forma directa.</p>

	<p>A continuación, podemos ver un gráfico muy descriptivo que explica cómo estos estándares interactuan entre ellos:</p>

	<p><a href="http://jonontech.com/wp-content/uploads/2009/11/JCRCMISOverview_v1.4.jpg"><img alt="CMIS vs JCR" src="http://img.genbetadev.com/2012/03/650_1000_jcr-cmis.jpg" class="centro" /></a></p>

	<p>Haz clic en la imagen anterior para ver el detalle completo :)</p>

<h2>El modelo de dominio</h2>

	<p><span class="caps">CMIS</span> acaba definiendo un modelo de dominio, de forma que nuestra aplicación deberá trabajar sobre este a la hora de acceder a los contenidos del repositorio.</p>

	<p><img alt="Modelo de dominio" src="http://img.genbetadev.com/2012/03/object-model.png" class="centro" /></p>

	<p>En el modelo de dominio vamos a manejar varios tipos de objetos: documentos, directorios, relaciones y políticas.</p>

	<p>En general, cualquier objeto del modelo va a poder tener propiedades a modo de metadatos, las cuales tendrán un ID conocido y un valor. Por ejemplo, cualquier objeto tiene definida una fecha de creación (cm:created) y la persona que lo creó (cm:creator). Por otra parte, e incluyendo los atributos anteriores, un directorio también podrá tener la referencia al padre o el nombre del directorio (cm:name). Podemos encontrar más detalles sobre los <a href="http://wiki.alfresco.com/wiki/CMIS_Model_Mapping">atributos mapeados entre <span class="caps">CMIS</span> y Alfresco</a> en su guía de referencia.</p>

	<p>Como conceptos avanzados, <span class="caps">CMIS</span> incorpora también el manejo de los privilegios de acceso a los objetos (<a href="http://es.wikipedia.org/wiki/Lista_de_control_de_acceso"><span class="caps">ACL</span></a>) y lo que se conoce como &#8220;interpretaciones&#8221; (renditions). Las renditions nos permiten la obtención de versiones especiales de los documentos en base a unos criterios, por ejemplo para la generación de un thumbnail.</p>

<h2>Bindings</h2>

	<p>Como detallábamos en la introducción, <span class="caps">CMIS</span> define al margen del modelo de dominio una serie de estándares de comunicación con el fin de favorecer la interoperabilidad de su arquitectura.</p>

	<p><img alt="Bindings CMIS" src="http://img.genbetadev.com/2012/03/bindings-cmis.png" class="centro" /></p>

	<p>Estos dos estándares son: Web Services para comunicación <span class="caps">SOAP</span>/XML y <span class="caps">REST</span>ful AtomPub para transmisión <span class="caps">HTTP</span> de documentos <span class="caps">ATOM</span> (extendidos con atributos definidos por <span class="caps">CMIS</span>).</p>

	<p>Sobre este modelo de comunicación, el repositorio que implemente <span class="caps">CMIS</span> deberá ofrecer los siguientes servicios:</p>

<ul>
<li><strong>Repositorio</strong>. Información y funcionalidades disponibles en el repositorio.</li>
<li><strong>Navegación</strong>. Navegación por la estructura de directorios.</li>
<li><strong>Objetos</strong>. Operaciones <span class="caps">CRUD</span> sobre objetos.</li>
<li><strong>Inserción multidirectorio</strong>. Gestión de la inyección de un mismo objeto en múltiples destinos.</li>
<li><strong>Búsqueda</strong>. Tratamiento de consultas con <span class="caps">CMISQL</span>.</li>
<li><strong>Versionado</strong>. Acceso a documentos y a sus versiones.</li>
<li><strong>Relaciones</strong>. Búsqued de objetos y de sus relaciones.</li>
<li><strong>Permisos</strong>. Gestión de las políticas de acceso y de los <span class="caps">ACL</span>s concretos de los objetos.</li>
</ul>

<h2>Conclusiones</h2>

	<p>En este artículos hemos presentado el estándar <span class="caps">CMIS</span> ofrecido por <span class="caps">OASIS</span> para conseguir un acceso abstracto a los repositorios documentales. En próximas entregas veremos cómo interactuar con Alfresco a través de <span class="caps">CMIS</span> y hacer uso de otras funcionalidades avanzadas de <span class="caps">CMIS</span> como las renditions o las búsquedas.</p>

<br />


	<p><span class="caps">OASIS</span> | <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis"><span class="caps">CMIS</span> Specification</a><br />
<span class="caps">CMIS</span> | <a href="http://www.oldschooltechie.com/blog/2009/11/23/cmis-domain-model">Domain model</a><br />
<span class="caps">JCR</span> | <a href="http://dev.day.com/content/ddc/blog/2009/05/jcrcmiscomparison.html"><span class="caps">JCR</span> &#8211; <span class="caps">CMIS</span> comparison</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Mezzanine, otro más en la familia de los CMS... pero esta vez el padre es Django]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/mezzanine-otro-mas-en-la-familia-de-los-cms-pero-esta-vez-el-padre-es-django</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/mezzanine-otro-mas-en-la-familia-de-los-cms-pero-esta-vez-el-padre-es-django</guid>
      <pubDate>Thu, 08 Mar 2012 16:44:06 +0000</pubDate>

      <author>Fernando Siles</author>
      <description><![CDATA[
      <p><img alt="mezzanine" src="http://img.genbetadev.com/2012/03/650_1000_mezzanine.jpg" class="centro_sinmarco" /></p>

	<p>Puede parecer que el mundo de los <strong><span class="caps">CMS</span></strong> está bastante abarrotado. Los hay de todos los colores, open source y propietarios, basados en <span class="caps">PHP</span>, en Java, en Ruby&#8230; Pero la verdad es que construidos sobre <strong>Django</strong> no hay muchos y, que diablos, cuantos más mejor, vivan la diversidad y la posibilidad de elección. El caso es que <strong>Mezzanine es un <span class="caps">CMS</span> basado en Django</strong>, con licencia <span class="caps">BSD</span> y que ha alcanzado recientemente su versión <strong>1.0</strong>.<!--more--></p>

	<p>Sus creadores (que reconocen sin pudor haberse inspirado en Wordpress) llevan dos años trabajando en el proyecto y la verdad es que tiene una pinta más que aceptable. Algunas de sus <strong>principales características</strong> son:</p>

<ul><li>Navigación semántica</li>
<li>Integración con Twitter Bootstrap, disqus, bit.ly o Google Analytics</li>
<li>Formularios HMTL5 que permiten drag&amp;drop y edición inline</li>
<li>Widgets configurables</li>
<li>Suite de testo</li></ul>

	<p>Además de todo lo que se le debe de pedir a cualquier <span class="caps">CMS</span> por cutre que sea: <span class="caps">URL</span>s amigables, sistema de blogs, templates personalizables, tags&#8230; Como añadido incorpora <strong>un sistema de ecommerce</strong> desarrollado por la misma gente de Mezzanine llamado <a href="http://cartridge.jupo.org/">Cartridge</a>.</p>

	<p>Tiene <a href="http://mezzanine.jupo.org/blog/">demo online</a>, abundante documentación, una lista de correo, tracker para incidencias y, como no, puedes hacerte <strong>tu propio fork</strong> cogiendo el código de su <a href="http://github.com/stephenmcd/mezzanine">repositorio de Github</a>. Ya sólo queda probarlo y ver que tal, aunque lo cierto es que, como comentabamos al principio del post, el de los <strong><span class="caps">CMS</span> es un terreno muy explotado y con soluciones realmente buenas en el mercado</strong>. Veremos a ver.</p>

	<p>Pd1: ¿de verdad los usuarios y desarrolladores de Django se llaman a si mismos <em>Djangonauts</em>? Bastante curioso, desde luego.</p>

	<p>Pd2: venga va, <a href="http://www.youtube.com/watch?v=Z4HG3-5Eu7I">enlacico</a> a ese temazo que es &#8216;Mezzanine&#8217; de los Massive Attack. ¡Vivan los 90s!</p>

	<p>Vía | <a href="http://groups.google.com/group/django-users/browse_thread/thread/c798413197b6f29b?pli=1">Django Users Google Group</a><br />
Más info | <a href="http://mezzanine.jupo.org/">Mezzanine</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Jira 5 en profundidad, reseña desde la misma Atlassian]]></title>
      <link>http://www.genbetadev.com/gestores-de-contenido/jira-5-en-profundidad-resena-desde-la-misma-atlassian</link>
      <guid>http://www.genbetadev.com/gestores-de-contenido/jira-5-en-profundidad-resena-desde-la-misma-atlassian</guid>
      <pubDate>Tue, 28 Feb 2012 18:05:45 +0000</pubDate>

      <author>Oscar Campos</author>
      <description><![CDATA[
      <p><img id="image78848" src="http://img.genbetadev.com/2012/02/jira_650.png" class="centro" alt="jira.png" /><br />

</p><p>&nbsp;</p>

	<p>El pasado veintidós de febrero Atlassian hacía pública la nueva versión de su <strong>buque insignia Jira 5</strong>. Jira es una aplicación/servicio web multiplataforma escrito en Java que permite la gestión de proyectos así como el seguimiento de errores e incidentes.</p>

	<p>Está <strong>ampliamente difundido</strong> en la industria del desarrollo de software y presenta licencia propietaria para gestión de equipo y proyectos de software propietario así como una <strong>licencia de uso gratuito</strong> para proyectos y equipos de <strong>Software Libre y/o Código Abierto</strong>.</p>

	<p>Como en Genbetadev queremos saber más sobre este nuevo lanzamiento, nos hemos puesto en contacto con <strong>el embajador</strong> de la compañía en nuestro país y le hemos preguntado acerca de su visión personal sobre la nueva versión y sobre el futuro inmediato de la estrategia de la compañía australiana.<!--more--></p>

	<p>Hemos asaltado a David Bonilla con preguntas relacionadas con lo que Jira 5 tiene que <strong>ofrecernos como desarrolladores</strong> y esto es lo que nos ha contado. </p>

	<p><strong>NOTA</strong>:<em> Los siguientes párrafos NO son una transcripción textual de la conversación mantenida con David Bonilla.</em></p>

	<p><h2>Aspectos Fundamentales</h2><br />

Esta nueva versión de Jira es<strong> muy interesante</strong> desde el punto de vista de los desarrolladores. Hay<strong> dos aspectos fundamentales</strong> en Jira 5 que lo hacen altamente atractivo y potente.</p>

	<p><h2>Las aplicaciones molan, pero las plataformas molan mucho más</h2><br />

Jira 5<strong> ha dado el paso</strong> para convertirse en una auténtica <strong>plataforma de desarrollo de software</strong>. Las aplicaciones molan, puedes utilizarlas y mejorar tu productividad o la de tu organización, pero las plataformas permiten una integración <strong>mucho más amplia</strong> con otros desarrolladores y ofrecen una mayor utilidad.</p>

	<p>Jira 5 permite que nuestros proyectos no solo sean parte de nuestra organización sino que ademas puedan <strong>ser compartidos</strong> hacia el exterior incluso con gente que no son usuarios de Jira.</p>

	<p><h3>Nueva <span class="caps">API</span>, nuevo espíritu</h3><br />

Atlassian contrató al estadounidense <a href="http://www.linkedin.com/in/manalang">Rich Manalang</a> que trabajaba para Oracle como <strong>Director de Estrategia de Producto</strong> para crear una nueva <strong>experiencia para desarrolladores</strong> en Atlassian y en su producto estrella que permitiera convertir a Jira en una plataforma atractiva para desarrolladores.</p>

	<p>Rich es un<strong> peso pesado</strong> dentro del panorama internacional, fue mencionado en la última Sping I/O por su fantástico artículo <a href="http://blogs.atlassian.com/2012/01/modern-principles-in-web-development/">Principios modernos del desarrollo web</a> que no dejó a nadie indiferente.</p>

	<p>En Jira 5 se ha conseguido que la <span class="caps">API</span>, a parte de ser buena, sea <strong>estable</strong>, así que Atlassian <strong>garantiza la perfecta compatibilidad</strong> de su <span class="caps">API</span> de plugins con todas las versiones de Jira 5.x algo de agradecer que seguro muchos desarrolladores para Facebook envidian y ansían para sí.</p>

	<p>Han sido varias las mejoras a la <span class="caps">API</span> de red que ahora no solo funcionan perfectamente para la extracción de datos sino que además ofrecen un <strong>punto de entrada</strong> facilitando la creación y modificación de los mismos.</p>

	<p><h3>Make Cash: Atlassian Plugin Exchange</h3><br />

Imaginemos que somos unos <strong>pirados de Java</strong> y lo que nos gusta es desarrollar plugins, pero también nos gusta comer, tres veces al día a ser posible. <a href="https://plugins.atlassian.com/plugin/home">Atlassian Plugin Exchange</a> es un espacio de alojamiento y distribución de plugins comerciales (o no) <strong>completamente gratuito</strong> que Atlassian brinda al desarrollador y las empresas a un coste de cero €.</p>

	<p>Podemos buscar plugins desde el propio Jira 5 e instalarlos al vuelo. Aún <strong>no se dispone de pasarela de pago</strong> pero esta planificada su inclusión en un futuro cercano con los costes habituales de servicio.</p>

	<p>Si lo que nos gusta es crear pero <strong>no disponemos de la financiación requerida</strong>, siempre podemos recurrir al <a href="http://www.bonillaware.com/marketing-para-plugins">marketing para plugins</a> del que el mismo David Bonilla escribió un estupendo artículo.</p>

	<p>Si lo que nos gusta es programar de <strong>forma independiente</strong> pero eso de comer nos llama mucho la atención, esta es una opción nada despreciable.</p>

	<p><h2>Jira 5 se vuelve social</h2><br />

El segundo cambio fundamental a nivel de <em>enterprise</em> y como cambio conceptual es que Jira da un giro (o Jira gira :P) a lo social en un intento de extraer a los equipos de geeks programadores de <strong>las profundidades de las cavernas</strong> para integrarlos en la vida del resto de la compañía.</p>

	<p><h3>Ser un Troll de las Cavernas mola, pero ya esta bien&#8230;</h3><br />

Ya no será necesario pintarse la cara como un <a href="http://es.wikipedia.org/wiki/Uruk-hai">Uruk-Hai</a> y permanecer aislados. Jira 5 permite la integración de la gestión de proyectos y desarrollo con <strong>aplicaciones puramente de negocio</strong>.</p>

	<p><h3>Aplicaciones de terceros</h3><br />

Se ha mejorado <strong>notablemente</strong> la <span class="caps">API</span> Rest de Jira por lo que también se ha permitido mejorar la integración de <strong>aplicaciones de terceros</strong> y la posibilidad de nuevas integraciones. Entre las aplicaciones de terceros que pueden integrarse destacan:<br />

<ul><li>Zendesk</li><li>Satisfaction</li><li>Google Apps</li><li>Tempo</li><li>Salesforce</li></ul></p>

	<p><h3>Todo son facilidades oiga</h3><br />

Como ejemplo de caso práctico supongamos que en nuestra compañía hay un comercial que <strong>identifica una oportunidad de negocio</strong> que requiere de conocimiento técnico que <del>obviamente</del> el no posee. Ahora puede crear la oportunidad de negocio en Salesforce y <strong>generar una tarea en Jira vinculada a la misma</strong> para que sea ejecutada por un técnico o por el equipo de desarrollo.</p>

	<p>Quien diga que eso no es una <strong>mejora de la comunicación interna</strong> de la compañía es un necio o un ciego, o lo que es aún peor, un <strong>mentiroso</strong>.</p>

	<p><h3>Bonus Track</h3><br />

La nueva <span class="caps">API</span> es muy<strong> potente</strong> y el <span class="caps">SDK</span> tiene cosas como un <strong>Maven con esteroides</strong> que te lo da todo &#8220;<em>prácticamente chupado</em>&#8220; (palabras textuales de Bonilla), además se añade la posibilidad de realizar pruebas sencillas en local mediante un servidor de Tomcat de forma trivial.</p>

	<p>Como curiosidad os dejo un enlace al <a href="https://plugins.atlassian.com/plugin/details/1105996">primer plugin de Jira 5</a> de la empresa española <a href="http://www.deiser.com/">Deiser</a>. </p>

	<p><h2>Conclusión</h2><br />

Parece que las novedades de Jira 5 son <strong>bastante jugosas</strong>, la verdad es que me encantaría poder echarle el diente en un equipo de desarrollo con experiencia y volumen. ¿Y a ti que te parece?.</p>

	<p>Más Información | <a href="http://www.bonillaware.com/jira5">Jira 5 Bonillaware</a>, <a href="http://www.atlassian.com/es/social-software-development-with-jira">Página oficial de Jira 5 en Castellano</a></p>      ]]></description>
      </item>
        	  <atom:link href="http://www.genbetadev.com/categoria/gestores-de-contenido/rss2.xml" rel="self" type="application/rss+xml" />
	</channel>

</rss>


