<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Alvaro&#039;s Weblog 200312518 &#187; Analisis 2</title>
	<atom:link href="http://asaes.wordpress.com/category/analisis-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://asaes.wordpress.com</link>
	<description>Analisis  2</description>
	<lastBuildDate>Sun, 05 Jul 2009 04:02:14 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='asaes.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/06d45dd6694e50d7b64b55761d416866?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Alvaro&#039;s Weblog 200312518 &#187; Analisis 2</title>
		<link>http://asaes.wordpress.com</link>
	</image>
			<item>
		<title>JUnit: uso de asserts en Netbeans 6.5.1</title>
		<link>http://asaes.wordpress.com/2009/07/05/junit-uso-de-asserts-en-netbeans-6-5-1/</link>
		<comments>http://asaes.wordpress.com/2009/07/05/junit-uso-de-asserts-en-netbeans-6-5-1/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 04:02:13 +0000</pubDate>
		<dc:creator>asaes</dc:creator>
				<category><![CDATA[Analisis 2]]></category>
		<category><![CDATA[6.5.1]]></category>
		<category><![CDATA[asserts]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://asaes.wordpress.com/?p=142</guid>
		<description><![CDATA[JUnit es una librería Java de código abierto que facilita la realización de pruebas de unidad aunque también se usa para correr pruebas de integración o funcionales. Básicamente facilita la construcción de tests y su ejecución conjunta.
JUnit tiene diversos paquetes: framework como paquete básico de marcos, runner para algunas clases abstractas y para la ejecución [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=142&subd=asaes&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>JUnit es una librería Java de código abierto que facilita la realización de pruebas de unidad aunque también se usa para correr pruebas de integración o funcionales. Básicamente facilita la construcción de tests y su ejecución conjunta.</p>
<p>JUnit tiene diversos paquetes: framework como paquete básico de marcos, runner para algunas clases abstractas y para la ejecución de pruebas, textui y swingui para interfaces de usuario y extensions para algunas contribuciones prácticas al marco. Antes de JUnit las pruebas de unidad se reducían a incluir un main en cada clase que permitiera probar su ejecución, poco cómodo y poco flexible.</p>
<p>Las pruebas que se pueden desarrollar sobre JUnit parten de un sencillo concepto: assert, un assert en una condición que debe cumplirse para considerar que nuestra clase probada funciona de la manera esperada.</p>
<p>NetBeans integra la librería JUnit de forma que es muy sencillo crear un test para una clase determinada. Además permite crear tests en el formato del JUnit v3.8.1, así como en la nueva versión v4.0 basada en anotaciones. Incluso es posible mezclar ambos tipos de tests.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="112" valign="top"><strong>Método</strong></td>
<td width="299" valign="top"><strong>Parámetros</strong></td>
<td width="187" valign="top"><strong>Significado</strong></td>
</tr>
<tr>
<td rowspan="4" width="112">assertEquals</td>
<td width="299">
<p align="center">(double   expected, double actual, double delta)</p>
</td>
<td width="187">Indica   si dos valores <em>double </em>son iguales dentro de un determinado delta</td>
</tr>
<tr>
<td width="299">
<p align="center">(float   expected, float actual, float delta)</p>
</td>
<td width="187">Indica   si dos valores <em>float </em>son iguales dentro de un determinado delta</td>
</tr>
<tr>
<td width="299">
<p align="center">(Object[] expecteds, Object[] actuals)</p>
</td>
<td width="187">Indica   si dos arrays de objetos son iguales</td>
</tr>
<tr>
<td width="299">
<p align="center">(Object expected, Object actual)</p>
</td>
<td width="187">Indica   si dos objetos son iguales</td>
</tr>
<tr>
<td width="112">assertFalse</td>
<td width="299">
<p align="center">(boolean condition)</p>
</td>
<td width="187">Comprueba   que la condición pasada es falsa</td>
</tr>
<tr>
<td width="112">assertNotNull</td>
<td width="299">
<p align="center">(Object object)</p>
</td>
<td width="187">Comprueba   que un objeto NO es nulo</td>
</tr>
<tr>
<td width="112">assertNotSame</td>
<td width="299">
<p align="center">(Object   unexpected, Object actual)</p>
</td>
<td width="187">Comprueba   que dos objetos NO se están refiriendo al mismo objeto (comparación de   identidad en vez de igualdad)</td>
</tr>
<tr>
<td width="112">assertNull</td>
<td width="299">
<p align="center">(Object object)</p>
</td>
<td width="187">Comprueba   que un objeto es nulo</td>
</tr>
<tr>
<td width="112">assertSame</td>
<td width="299">
<p align="center">(Object   unexpected, Object actual)</p>
</td>
<td width="187">Comprueba   que dos objetos se están refiriendo al mismo objeto (comparación de identidad   en vez de igualdad)</td>
</tr>
<tr>
<td width="112">assertTrue</td>
<td width="299">
<p align="center">(boolean condition)</p>
</td>
<td width="187">Comprueba   que la condición pasada es cierta</td>
</tr>
<tr>
<td width="112">Fail</td>
<td width="299">
<p align="center">()</p>
</td>
<td width="187">Provoca   que el test falle</td>
</tr>
</tbody>
</table>
<p><strong>Nota: todos los métodos tienen una segunda versión que acepta como primer parámetro un String en el que mandar.</strong></p>
<p><strong> </strong></p>
<p>JUnit incorpora las siguientes ventajas y modificaciones respecto a versiones anteriores:</p>
<ul>
<li>Las clases que contienen los métodos que representan las pruebas ya no tienen que ser subclases de junit.framework.TestCase</li>
<li>Los      métodos que representan las pruebas a realizar ya no tienen que tener el      prefijo &#8220;test&#8221; en su nombre sino que se indican con la anotación      @Test</li>
<li>Sustitución      del método &#8217;setUp&#8217; por la anotación o anotaciones @Before.</li>
<li>Sustitución      del método &#8216;tearDown&#8217; por la anotación o anotaciones @After.</li>
<li>Se pueden      realizar pruebas en donde el tiempo de ejecución es crítico. De manera que      una prueba falle si tarda más de X milisegundos en ser ejecutada.</li>
<li>Se pueden      realizar pruebas en donde se debe controlar que una excepción es lanzada.</li>
<li>Se pueden      desactivar pruebas, a través de la anotación @Ignore.</li>
</ul>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong><span style="text-decoration:underline;">Utilizar JUnit en Netbeans 6.5.1</span></strong></p>
<p><strong> </strong></p>
<p>Para utilizar JUnit en Netbeans 6.5.1 no tenemos que instalar nada ya que lo trae integrado. Basta con hacer los siguientes pasos:</p>
<ol>
<li>Creamos nuestra clase genérica con los métodos y      atributos.<a href="http://asaes.files.wordpress.com/2009/07/0.jpg"><img class="alignnone size-full wp-image-143" title="0" src="http://asaes.files.wordpress.com/2009/07/0.jpg?w=490&#038;h=217" alt="0" width="490" height="217" /></a></li>
<li>Seleccionamos la clase a la que le vamos a      realizar las pruebas. Le damos clic derecho &#8211;&gt; <strong><em>Tools</em></strong> &#8211;&gt;  <strong><em>Create      JUnit Tests<a href="http://asaes.files.wordpress.com/2009/07/1.jpg"><img class="alignnone size-full wp-image-144" title="1" src="http://asaes.files.wordpress.com/2009/07/1.jpg?w=490&#038;h=461" alt="1" width="490" height="461" /></a></em></strong></li>
<li>Elegimos el nombre de para la clase y el paquete y lo demás lo dejamos como esta.</li>
<p></p>
<li><a href="http://asaes.files.wordpress.com/2009/07/2.jpg"><img class="alignnone size-full wp-image-145" title="2" src="http://asaes.files.wordpress.com/2009/07/2.jpg?w=363&#038;h=426" alt="2" width="363" height="426" /></a></li>
<li>Se creara una nueva clase que contiene los métodos de prueba (uno por cada método de la clase original. Solo basta con agregarle la prueba, en nuestro caso un <em>assert.<a href="http://asaes.files.wordpress.com/2009/07/3.jpg"><img class="alignnone size-full wp-image-146" title="3" src="http://asaes.files.wordpress.com/2009/07/3.jpg?w=490&#038;h=206" alt="3" width="490" height="206" /></a></em></li>
<li>Ya hecho      implementado la prueba basta con ejecutarla, para ello nos vamos a la opción      <strong><em>Run</em></strong> del menú y luego a <strong><em>Test Project</em></strong>.<a href="http://asaes.files.wordpress.com/2009/07/4.jpg"><img class="alignnone size-full wp-image-147" title="4" src="http://asaes.files.wordpress.com/2009/07/4.jpg?w=490&#038;h=312" alt="4" width="490" height="312" /></a></li>
<li>Listo.  Se generan los resultados de la prueba      la cual podemos verificar.<a href="http://asaes.files.wordpress.com/2009/07/5.jpg"><img class="alignnone size-full wp-image-148" title="5" src="http://asaes.files.wordpress.com/2009/07/5.jpg?w=441&#038;h=280" alt="5" width="441" height="280" /></a></li>
</ol>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asaes.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asaes.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asaes.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asaes.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asaes.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asaes.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asaes.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asaes.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asaes.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asaes.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=142&subd=asaes&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asaes.wordpress.com/2009/07/05/junit-uso-de-asserts-en-netbeans-6-5-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7042f9e66861a20b90da04ad3bd2e141?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alvaro</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/07/0.jpg" medium="image" />

		<media:content url="http://asaes.files.wordpress.com/2009/07/1.jpg" medium="image">
			<media:title type="html">1</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/07/2.jpg" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/07/3.jpg" medium="image">
			<media:title type="html">3</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/07/4.jpg" medium="image">
			<media:title type="html">4</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/07/5.jpg" medium="image">
			<media:title type="html">5</media:title>
		</media:content>
	</item>
		<item>
		<title>Struts 2 Framework MVC</title>
		<link>http://asaes.wordpress.com/2009/06/28/struts-2-framework-mvc/</link>
		<comments>http://asaes.wordpress.com/2009/06/28/struts-2-framework-mvc/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 03:12:34 +0000</pubDate>
		<dc:creator>asaes</dc:creator>
				<category><![CDATA[Analisis 2]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[struts]]></category>
		<category><![CDATA[struts 2]]></category>

		<guid isPermaLink="false">http://asaes.wordpress.com/?p=134</guid>
		<description><![CDATA[Los frameworks pueden ser vistos como implementaciones de patrones de diseño que facilitan la reutilización de diseño y código.
Dado que MVC ha sido utilizado en muchas aplicaciones web, se han desarrollado un conjunto de frameworks que den soporte a áreas comunes en todas las aplicaciones MVC.
Apache Struts es una de estas frameworks
Creada por Craig McClanahan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=134&subd=asaes&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Los frameworks pueden ser vistos como implementaciones de patrones de diseño que facilitan la reutilización de diseño y código.<br />
Dado que MVC ha sido utilizado en muchas aplicaciones web, se han desarrollado un conjunto de frameworks que den soporte a áreas comunes en todas las aplicaciones MVC.</p>
<p>Apache Struts es una de estas frameworks</p>
<p>Creada por Craig McClanahan y donada a la Apache Software Foundation en el 2000 (pertenece a Apache Jakarta).</p>
<p>Provee librería de clases y TAG-LIBS que conforman el Controlador, la integración con el Modelo (o lógica de negocio) y facilitan la construcción de vistas.</p>
<p>El Modelo o lógica de negocio es la parte que nos corresponde desarrollar.</p>
<p>Struts 2 está basado en el patrón MVC (Modelo-Vista-Controlador), una arquitectura que busca reducir el acoplamiento dividiendo las responsabilidades en 3 capas claramente diferenciadas:</p>
<ul>
<li>El modelo, que hace referencia a los datos que maneja la aplicación y las reglas de negocio que operan sobre ellos y que se traducen en Struts 2 en las acciones.</li>
</ul>
<ul>
<li>La vista, encargada de generar la interfaz con la que la aplicación interacciona con el usuario. En Struts 2 equivale a los resultados.</li>
</ul>
<ul>
<li>El controlador, que comunica la vista y el modelo respondiendo a eventos generados por el usuario en la vista, invocando cambios en el modelo, y devolviendo a la vista la información del modelo necesaria para que pueda generar la respuesta adecuada para el usuario. El controlador se implementa en Struts 2 mediante el filtro FilterDispatcher</li>
</ul>
<p>Struts ofrece su propio componente controlador y proporciona integración con otras tecnologías para implementar el modelo, mediante tecnologías de acceso a datos como JDBC, y la vista, mediante JSP o XSLT. Además ofrece un sistema de tuberías que permite la comunicación entre el modelo que contiene los datos y las vistas que ofrecen estos datos a los usuarios y reciben sus órdenes.</p>
<p>Una aplicación Struts no es más que una Aplicación Web sobre el Framework de Struts.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/imagen1.png"><img class="alignnone size-full wp-image-135" title="Imagen1" src="http://asaes.files.wordpress.com/2009/06/imagen1.png?w=489&#038;h=244" alt="Imagen1" width="489" height="244" /></a></p>
<p>Struts 2 es, como el nombre sugiere, la nueva versión del popular framework de desarrollo web en Java Apache Struts. Sin embargo, contrariamente a lo que cabría esperar, el código de ambos tiene poco que ver, dado que Struts 2 no se basa en el código de Struts 1.x, sino en el de otro framework de desarrollo web en Java llamado WebWork, un framework que el creador de Struts consideraba superior a Struts 1.x en varios aspectos.</p>
<p><strong>Mejoras:</strong></p>
<ul>
<li>Facilitar el deploy de aplicaciones.</li>
<li>Diseño mejorado.</li>
<li>Nuevos tags incorporados</li>
<li>Mejora en la gestión de checkboxes.</li>
<li>Botones para cancelar flexibles.</li>
<li>Soporte para AJAX.</li>
<li>Integración sencilla para Spring.</li>
<li>Resultados especializados.</li>
<li>Formularios POJO (olvídate de los ActionForm).</li>
<li>Acciones POJO.</li>
<li>Añadir plugins fácilmente.</li>
<li>Integrar herramientas de profiling.</li>
<li>Reporte de errores más preciso.</li>
<li>Acciones fáciles de testear.</li>
<li>Valores por defecto para las configuraciones.</li>
<li>Controladores fáciles de customizar.</li>
<li>Integración de herramientas de debbuging.</li>
<li>Añadir nuevos tags fácilmente.</li>
</ul>
<p><strong>Ventajas</strong></p>
<p>La utilización de esta metodología conlleva una serie de ventajas que nos ayudan a reducir el tiempo requerido para el desarrollo y facilitar el mantenimiento de la aplicación web:</p>
<ul>
<li>Transporte automático de los datos introducidos en el cliente (JSP) hasta el controlador (Action) mediante formularios (ActionForm).</li>
<li>Transporte automático de los datos enviados por el controlador (Action) a la parte de presentación (JSP) mediante formularios (ActionForm).</li>
<li>Implementa la parte común a todas las aplicaciones en la parte de Controlador (ActionServlet); la parte particular de cada aplicación es fácilmente configurable (struts-config.xml).</li>
<li>La separación de los componentes en capas (MVC) simplifica notablemente el desarrollo y su mantenimiento.</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asaes.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asaes.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asaes.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asaes.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asaes.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asaes.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asaes.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asaes.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asaes.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asaes.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=134&subd=asaes&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asaes.wordpress.com/2009/06/28/struts-2-framework-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7042f9e66861a20b90da04ad3bd2e141?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alvaro</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/imagen1.png" medium="image">
			<media:title type="html">Imagen1</media:title>
		</media:content>
	</item>
		<item>
		<title>Enlace de un contenedor de servlets, Tomcat5.5, con servidor web, Apache, sobre Debian Lenny</title>
		<link>http://asaes.wordpress.com/2009/06/18/enlace-de-un-contenedor-de-servlets-tomcat5-5-con-servidor-web-apache-sobre-debian-lenny/</link>
		<comments>http://asaes.wordpress.com/2009/06/18/enlace-de-un-contenedor-de-servlets-tomcat5-5-con-servidor-web-apache-sobre-debian-lenny/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 22:36:11 +0000</pubDate>
		<dc:creator>asaes</dc:creator>
				<category><![CDATA[Analisis 2]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[enlazar]]></category>
		<category><![CDATA[jdk]]></category>
		<category><![CDATA[lenny]]></category>
		<category><![CDATA[mod-jk]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[tomcat5.5]]></category>

		<guid isPermaLink="false">http://asaes.wordpress.com/?p=123</guid>
		<description><![CDATA[Debemos tener instalado Apache2, Tomcat5.5 y Java JDK
Pasos para enlazar Apache con Tomcat:
1. Instalar mod-jk.
$ apt-get install libapache2-mod-jk
2. Editamos el archivo de configuración del mod-jk.
$ vim /etc/libapache2-mod-jk/workers.properties

Escribimos los siguiente:
workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=/usr/lib/jvm/jdk1.6.0_12  (su path de java jdk)
ps=/
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.cachesize=10
worker.ajp13_worker.cache_timeout=600
worker.ajp13_worker.socket_timeout=300

3. Creamos y editamos la configuración del mod_jk para el uso de apache.
$ touch /etc/apache2/mod_jk.conf
$ vim /etc/apache2/mod_jk.conf
Añadimos las siguientes líneas:
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkShmFile /var/log/apache2/mod_jk.shm
JkLogFile [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=123&subd=asaes&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Debemos tener instalado Apache2, Tomcat5.5 y Java JDK</strong></p>
<p>Pasos para enlazar Apache con Tomcat:</p>
<p>1. Instalar mod-jk.</p>
<p style="padding-left:30px;"><code>$ apt-get install libapache2-mod-jk</code></p>
<p>2. Editamos el archivo de configuración del mod-jk.</p>
<p style="padding-left:30px;"><code>$ vim /etc/libapache2-mod-jk/workers.properties<br />
</code></p>
<p style="padding-left:30px;">Escribimos los siguiente:</p>
<p style="padding-left:30px;"><code>workers.tomcat_home=/usr/share/tomcat5.5<br />
workers.java_home=/usr/lib/jvm/jdk1.6.0_12  (su path de java jdk)<br />
ps=/<br />
worker.list=ajp13_worker<br />
worker.ajp13_worker.port=8009<br />
worker.ajp13_worker.host=localhost<br />
worker.ajp13_worker.type=ajp13<br />
worker.ajp13_worker.cachesize=10<br />
worker.ajp13_worker.cache_timeout=600<br />
worker.ajp13_worker.socket_timeout=300<br />
</code></p>
<p>3. Creamos y editamos la configuración del mod_jk para el uso de apache.</p>
<p style="padding-left:30px;"><code>$ touch /etc/apache2/mod_jk.conf</code><br />
<code>$ vim /etc/apache2/mod_jk.conf</code></p>
<p style="padding-left:30px;">Añadimos las siguientes líneas:</p>
<p style="padding-left:30px;"><code>JkWorkersFile /etc/libapache2-mod-jk/workers.properties<br />
JkShmFile /var/log/apache2/mod_jk.shm<br />
JkLogFile /var/log/apache2/mod_jk.log<br />
JkLogLevel info<br />
JkLogStampFormat "[%a %b %d %H:%S %Y] "</code></p>
<p>4. Añadimos la declaración del módulo.</p>
<p style="padding-left:30px;"><code>$ vim /etc/apache2/mods-enabled/jk.load</code></p>
<p style="padding-left:30px;">Debajo del LoadModule ponemos:</p>
<p style="padding-left:30px;"><code>Include /etc/apache2/mod_jk.conf</code></p>
<p>5. Añadimos un nuevo Virtual Host en Apache.</p>
<p style="padding-left:30px;"><code>$ vim /etc/apache2/sites-enabled/000-default</code></p>
<p style="padding-left:30px;">Escribimos lo siguiente al final del archivo:</p>
<p style="padding-left:30px;"><code>&lt;VirtualHost *:8080&gt;<br />
ServerAdmin webmaster@localhost<br />
JkMount /* ajp13_worker<br />
&lt;LocationMatch ".*WEB-INF.*"&gt;<br />
deny from all<br />
&lt;/LocationMatch&gt;<br />
&lt;/VirtualHost&gt;</code></p>
<p>6. Añadimos el nuevo puerto a ser escuchado.</p>
<p style="padding-left:30px;"><code>$ vim /etc/apache2/ports.conf</code></p>
<p style="padding-left:30px;">Debajo de NameVirtualHost *:80 ponemos:</p>
<p style="padding-left:30px;"><code>NameVirtualHost *:8080</code></p>
<p style="padding-left:30px;">Y añadimos al final:</p>
<p style="padding-left:30px;"><code>Listen 8080</code></p>
<p>7.- Reiniciamos Apache y Tomcat.</p>
<p style="padding-left:30px;"><code>$ /etc/init.d/apache2 restart</code><br />
<code>$ /etc/init.d/tomcat5.5 restart<br />
</code></p>
<p>8.  Probamos.</p>
<p style="padding-left:30px;">En un explorador web colocamos la siguiente direccion:</p>
<h3 style="padding-left:30px;">http://localhost:8080/</h3>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot16.png"><img class="alignnone size-full wp-image-125" title="snapshot1" src="http://asaes.files.wordpress.com/2009/06/snapshot16.png?w=490&#038;h=345" alt="snapshot1" width="490" height="345" /></a></p>
<p>Listo!!!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asaes.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asaes.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asaes.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asaes.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asaes.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asaes.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asaes.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asaes.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asaes.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asaes.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=123&subd=asaes&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asaes.wordpress.com/2009/06/18/enlace-de-un-contenedor-de-servlets-tomcat5-5-con-servidor-web-apache-sobre-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7042f9e66861a20b90da04ad3bd2e141?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alvaro</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot16.png" medium="image">
			<media:title type="html">snapshot1</media:title>
		</media:content>
	</item>
		<item>
		<title>Comandos de Subversion, Investigación Hudson y Trac (Parte Teorica)</title>
		<link>http://asaes.wordpress.com/2009/06/14/comandos-de-subversion-investigacion-hudson-y-trac-parte-teorica/</link>
		<comments>http://asaes.wordpress.com/2009/06/14/comandos-de-subversion-investigacion-hudson-y-trac-parte-teorica/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 05:49:16 +0000</pubDate>
		<dc:creator>asaes</dc:creator>
				<category><![CDATA[Analisis 2]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[fallos]]></category>
		<category><![CDATA[gestor]]></category>
		<category><![CDATA[integracion continua]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[svnadmin]]></category>

		<guid isPermaLink="false">http://asaes.wordpress.com/?p=114</guid>
		<description><![CDATA[Comandos SVN
Desde el lado del cliente-programador, las cosas son más sencillas. A partir de que el programador se haya instalado el svn, hay cientos de comandos que puede utilizar para la interacción con el svn, entre ellos quisiera descatar algunos.
Comandos útiles
Conseguir el código:
svn checkout file:///ruta/hasta/repositorio/ProyectoA/trunk /directorio/de/trabajo/ProyectoA/
Detecta todos los cambios de fichero y árbol que el [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=114&subd=asaes&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h1>Comandos SVN</h1>
<p>Desde el lado del cliente-programador, las cosas son más sencillas. A partir de que el programador se haya instalado el svn, hay cientos de comandos que puede utilizar para la interacción con el svn, entre ellos quisiera descatar algunos.</p>
<p>Comandos útiles</p>
<p>Conseguir el código:<br />
<code>svn checkout file:///ruta/hasta/repositorio/ProyectoA/trunk /directorio/de/trabajo/ProyectoA/</code></p>
<p>Detecta todos los cambios de fichero y árbol que el cliente ha hecho en su copia local:<br />
<code>svn status</code></p>
<p>Actualizar el código del proyecto:<br />
<code>svn update</code></p>
<p>Tras modificar y guardar los cambios, se envian al server:<br />
<code>svn commit --message 'comentario'</code></p>
<p>Añadir archivos al código:<br />
<code>svn add /archivo-N/ --force </code></p>
<p>Borrar archivos:<br />
<code>svn delete archivo</code></p>
<p>Rechazar los cambios en un archivo:<br />
<code>svn revert archivo</code></p>
<p>Volver a una versión anterior determinada:<br />
<code>svn update -r N</code></p>
<p>Donde N denota la revisión N que a su vez representa el estado del sistema de ficheros del repositorio tras el envío de cambios N-ésimo.<br />
svn revert  para eliminar todos sus cambios locales.</p>
<p>Ver un informe de los cambios producidor:<br />
<code>svn log </code></p>
<p>Fijar una versión, crear una rama, etiquetandola con un nombre sencillo:<br />
Etiquetando la última versión:<br />
<code>svn copy file:///path/repositorio/trunk file:///path/repositorio/tags/0.01-prerelease -m "Version 0.01"</code></p>
<p>O bien especificando una revisión concreta:<br />
<code>svn copy -r 3 file:///path/repositorio/trunk file:///path/repositorio/tags/0.03-prerelease -m "Version 0.03" </code></p>
<p>Para hacer una copia limpia del código, y poderlo distribuir<br />
<code>svn export file:///path/repositorio/ProyectoA/trunk<br />
tar -cvf proyectoA.tar trunk<br />
gzip proyectoA.tar</code></p>
<p>Hacer copias de seguridad del repositorio:<br />
<code>svnadmin dump /paht/repositorio/ProyectoA | gzip -9 &gt; dump_svn_proyectoA.gz</code></p>
<p>Si se incluye en el CRON, se harán las copias de seguridad cada tanto de una manera automática.</p>
<h1>Comandos SvnAdmin</h1>
<p>Crear Repositorio<br />
<code>svnadmin create /usr/local/svn/repos</code></p>
<p>Comando para hacer un backup<br />
<code> svnadmin dump /home/javoaxian/repositorioSVN | gzip -9 &gt; respaldo_repositorio_2008-09-08.gz</code></p>
<p>Deltify<br />
comprime el repoitorio almacenado solo las diferencias respecto a la version anterior</p>
<p>Dump<br />
Vuclea el contenido del repositorio empleando un formato portable</p>
<p>Hotcopy<br />
Crea una copia de un repositorio de forma segura aunque este siendo usado</p>
<p>List-dblogs<br />
Muestra los archivos de historial de Berkeley DB asociados con el repositorio</p>
<p>List-unused-dblogs<br />
Muestra los archivos de historial de berkeley DB asociados con el repositorio y que ya no son usados. Pueden borrarse sin problemas, aunque podrian almacenarse para recuperarse de una perdida de datos catastrofica.</p>
<p>Load<br />
Carga una serie de revisiones en un repositorio a partir de un flujo de datos que emplee el mismo formato de volcado que el subcomando dump</p>
<p>Lstxns<br />
muestra la lsita de transacciones que todavia no han sido enviadas</p>
<p>Recover<br />
realiza una recuperacion en caso de error.</p>
<p>Rmtxns<br />
elimina las transacciones limpiamente.</p>
<p>Setlog<br />
sustituye el mensaje de historial de una revision en concreto por otro nuevo.</p>
<p>Verify<br />
Compruebala integridad del repositorio.</p>
<h1>Herramientas Para Integracion Continua</h1>
<p>Existen diversos productos en el mercado para la <a title="Integracion Continua" href="http://www.dosideas.com/wiki/Integracion_Continua">Integracion Continua</a>. La mayoria cuentan con una interfaz web que muestra el estado de los proyectos, ultimas corridas, e informes gráficos de diversos tipos.</p>
<ul>
<li> <a title="Hudson" href="http://www.dosideas.com/wiki/Hudson">Hudson</a></li>
<li> <a title="Luntbuild" href="http://www.dosideas.com/wiki/Luntbuild">Luntbuild</a></li>
<li> <a title="CruiseControl" href="http://www.dosideas.com/wiki/CruiseControl">CruiseControl</a></li>
<li> <a title="AntHill" href="http://www.dosideas.com/wiki/AntHill">AntHill</a></li>
<li> <a title="Continuum" href="http://www.dosideas.com/wiki/Continuum">Continuum</a></li>
</ul>
<h2>Hudson</h2>
<p>Esta herramienta de Integración Continua nos lleva un paso más allá de los resultados de nuestra solución de Ciclo de Vida, que es Maven. Es decir, ya no sólo se trata de paquetizar e integrar las distintas áreas de desarrollo de nuestro producto resolviendo las dependencias de código de los paquetes subdivididos, sino de que la integración sea efectiva, cumpla nuestros criterios de calidad y el tiempo empleado en la detección de errores y su resolución sea el menor posible. <a href="http://hudson.dev.java.net/">Hudson</a> nos proporciona una solución sencilla para llevarlo a cabo.</p>
<p>Podemos comparar a Hudson con una de las herramientas CI más consolidadas actualmente, que es CruiseControl, comprobando que, además de ofrecer mayor amplitud de funcionalidad, sus características vienen determinadas por la instalación sencilla de plugins.</p>
<p>Resumiendo, parte de las ventajas de Hudson vienen determinadas por:</p>
<ul>
<li>Fácil instalación y uso (un fichero WAR es toda la herramienta de instalación)</li>
<li>Plugins fácilmente extensibles</li>
<li>Soporte completo de Maven, lo que nos facilita enormemente la integración</li>
<li>Soporte para entornos “colaborativos” (múltiples equipos y grupos de proyectos)</li>
<li>Software Libre 100%</li>
<li>Sistema de alertas intuitivo para los desarrolladores</li>
<li>Muy pocos problemas “reportados” de esta herramienta</li>
</ul>
<h2>Maven</h2>
<p>De forma más detallada a nuestra introducción anterior, <a href="http://maven.apache.org/">Maven</a> es una herramienta de gestión y comprensión de proyectos de desarrollo de software, normalmente en Java, que nos permite compilar, testar integridad y compilación, desplegar, documentar y gestionar las dependencias de código de forma sencilla y extendible.</p>
<p>Maven es una herramienta abierta y libre (pertenece al Proyecto Apache) claramente orientada al trabajo en equipo, siendo esta es una de las principales razones por las que la elegimos como herramienta ideal para metodologías agiles de programación y posterior Integración Continua con otras herramientas software.</p>
<p>La herramienta es compleja pero fácil de usar y muy rápida a la hora de compilar y desplegar proyectos. Entre las ventajas de usar Maven como herramienta de desarrollo en el trabajo en equipo, podemos destacar:</p>
<p>La dependencia entre proyectos no es problema<br />
Un mismo proyecto se puede ejecutar en distintos entornos. Sólo hay que cambiar un archivo de configuración<br />
La integración del trabajo de desarrolladores es transparente<br />
Hay una maximización de la cohesión del código y una minimización del acoplamiento<br />
Fácil reutilización del código</p>
<p>Para los desarrolladores familiarizados con herramientas similares, como <a href="http://ant.apache.org/">Apache Ant</a>, Maven ofrece las mismas funcionalidades, con la diferencia de gestionar las dependencias de proyectos de una forma mucho más sencilla y comprensible, optimizando notablemente el tiempo de desarrollo en trabajos multiproyecto.</p>
<p>En definitiva y en nuestro caso, Maven nos proporciona una solución modular orientada al trabajo en equipo que elimina problemas de herramientas anteriores, como es la compleja resolución de dependencias, a la vez que nos permite integrar el trabajo con otras herramientas de Integración Continua. Es importante destacar para nuestro caso que se dispone de un plugin para proyectos JRuby.</p>
<h2>CruiseControl</h2>
<p><!-- start content -->CruiseControl es un framework para el proceso de <a title="Integracion Continua" href="http://www.dosideas.com/wiki/Integracion_Continua">Integracion Continua</a>. Incluye, aunque no es limitado, plugins para notificaciones por Email, <a title="Ant" href="http://www.dosideas.com/wiki/Ant">Ant</a>, y se puede usar con varias herramientas de control de versiones. Provee una interfaz web para ver el detalle del actual y anteriores build&#8217;s.</p>
<h1>Herramientas de Gestores de Fallos</h1>
<h2><span><strong>Trac</strong></span></h2>
<p><a href="http://trac.edgewall.com/" target="_top">http://trac.edgewall.com/</a></p>
<p>Trac es un poco más que un gestor de fallos: realmente es un sistema wiki y gestor de fallos integrado. Usa el enlace Wiki para conectar ejemplares, ficheros, grupos de cambios de control de versión, y simples páginas wiki. Es bastante simple de configurar, y se integra con Subversion</p>
<h2><span><strong>GNATS</strong></span></h2>
<p><a href="http://www.gnu.org/software/gnats/" target="_top">http://www.gnu.org/software/gnats/</a></p>
<p>GNU GNATS es uno de los gestores de fallos de código abierto más antiguos, y se usa extensamente. Su mayor fortaleza reside en la  diversidad de interfaces (no solamente puede ser usado a través de un navegador WEB, sino que también a través de correo electrónico o utilidades de línea de comandos), y el almacenamiento de los ejemplares en texto plano. El hecho de que los datos de todos los ejemplares se almacenen en ficheros de texto en el disco hace que sea más fácil escribir herramientas a medida para buscar y analizar sintácticamente los datos (por ejemplo,  para generar informes estadísticos). GNATS también puede absorber correos electrónicos de muchas maneras, y añadirlos a los ejemplares apropiados basados en patrones dentro de las cabeceras del correo electrónico, lo que hace que el registro de las conversaciones del usuario/desarrollador sean muy fáciles.</p>
<h2><span><strong>Scarab</strong></span></h2>
<h3><a href="http://scarab.tigris.org/" target="_top">http://scarab.tigris.org/</a></h3>
<p>Scarab está pensado para ser un gestor de fallos altamente parametizable y  con todas las características, ofreciendo más o menos el conjunto total de las características ofrecidas por otros gestores de fallos: entradas de datos, consultas, informes,  notificaciones a grupos interesados, acumulación colaborativa de comentarios,  y gestión de dependencias.</p>
<p>Se parametriza a través de páginas web administrativas. Se puede tener múltiples &#8220;módulos&#8221; (proyectos) activos en una única instalación de Scarab. Dentro de un módulo dado, se puede crear nuevos tipos de ejemplares (defectos, mejoras, tareas, peticiones de apoyo, etc.), y añadir atributos arbitrarios, para afinar el gestor a los requisitos específicos de tu proyecto.</p>
<h1 style="text-align:justify;">Tabla Compartiva</h1>
<table border="0" cellspacing="0" cellpadding="0" width="936" align="left">
<tbody>
<tr>
<td width="122">
<p align="center"><strong>Herramienta</strong></p>
</td>
<td width="93">
<p align="center"><strong>Proyecto Origen</strong></p>
</td>
<td width="53">
<p align="center"><strong>Open Source</strong></p>
</td>
<td width="70">
<p align="center"><strong>Free</strong></p>
</td>
<td width="75">
<p align="center"><strong>Lenguaje de Aplicación</strong></p>
</td>
<td width="108">
<p align="center"><strong>Numero de Desarrolladores Activos</strong></p>
</td>
<td width="97">
<p align="center"><strong>Otras Dependencias</strong></p>
</td>
<td width="80">
<p align="center"><strong>Subversion</strong></p>
</td>
<td width="72">
<p align="center"><strong>Añade Nuevos Proyectos</strong></p>
</td>
<td width="72">
<p align="center"><strong>Clona Proyectos</strong></p>
</td>
<td width="95">
<p align="center"><strong>Autenticacion de Usuario</strong></p>
</td>
</tr>
<tr>
<td width="122">
<p align="center"><strong>HUDSON</strong></p>
</td>
<td width="93">
<p align="center">java.net</p>
</td>
<td width="53">
<p align="center">si</p>
</td>
<td width="70">
<p align="center">si</p>
</td>
<td width="75">
<p align="center">java</p>
</td>
<td width="108">
<p align="center">5 a 10</p>
</td>
<td width="97">
<p align="center">JRE</p>
</td>
<td width="80">
<p align="center">si</p>
</td>
<td width="72">
<p align="center">si</p>
</td>
<td width="72">
<p align="center">si</p>
</td>
<td width="95">
<p align="center">si</p>
</td>
</tr>
<tr>
<td width="122">
<p align="center"><strong>CRUISECONTROL</strong></p>
</td>
<td width="93">
<p align="center">ThoughtWorks</p>
</td>
<td width="53">
<p align="center">no</p>
</td>
<td width="70">
<p align="center">Gratis para los pequeños equipos y   proyectos de código abierto</p>
</td>
<td width="75">
<p align="center">java</p>
</td>
<td width="108">
<p align="center">5</p>
</td>
<td width="97">
<p align="center">JRE, SCM cliente</p>
</td>
<td width="80">
<p align="center">si</p>
</td>
<td width="72">
<p align="center">Falla</p>
</td>
<td width="72">
<p align="center">no</p>
</td>
<td width="95">
<p align="center">si</p>
</td>
</tr>
<tr>
<td width="122">
<p align="center"><strong>CUNTINUUM</strong></p>
</td>
<td width="93">
<p align="center">ThoughtWorks</p>
</td>
<td width="53">
<p align="center">no existe</p>
</td>
<td width="70">
<p align="center">Edicion Gratuita Disponible</p>
</td>
<td width="75">
<p align="center">java</p>
</td>
<td width="108">
<p align="center">?</p>
</td>
<td width="97">
<p align="center">SCM cliente</p>
</td>
<td width="80">
<p align="center">si</p>
</td>
<td width="72">
<p align="center">si</p>
</td>
<td width="72">
<p align="center">no</p>
</td>
<td width="95">
<p align="center">si</p>
</td>
</tr>
</tbody>
</table>
<p>c</p>
<h1>Conclusion</h1>
<p>Hudson es una herramienta libre y abierta relativamente nueva de Integración Continua muy utilizada y de gran éxito en el entorno de desarrollo del software.  Su arquitectura basada en plugins y su fácil instalación la hacen una herramienta potente y fácil de usar. El desarrollo de plugins es una característica importante al destacar su flexibilidad.</p>
<p>Trac permite enlazar información entre una base de datos de errores de software, un sistema de control de versiones y el contenido de un wiki. También sirve como interfaz web de un sistema de control de versiones como Subversion, Git, Mercurial, Bazaar o Darcs.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asaes.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asaes.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asaes.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asaes.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asaes.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asaes.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asaes.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asaes.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asaes.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asaes.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=114&subd=asaes&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asaes.wordpress.com/2009/06/14/comandos-de-subversion-investigacion-hudson-y-trac-parte-teorica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7042f9e66861a20b90da04ad3bd2e141?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alvaro</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalación de Subversion + Trac + Hudson (Parte Practica)</title>
		<link>http://asaes.wordpress.com/2009/06/14/instalacion-de-subversion-trac-hudson-parte-practica/</link>
		<comments>http://asaes.wordpress.com/2009/06/14/instalacion-de-subversion-trac-hudson-parte-practica/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 05:27:20 +0000</pubDate>
		<dc:creator>asaes</dc:creator>
				<category><![CDATA[Analisis 2]]></category>

		<guid isPermaLink="false">http://asaes.wordpress.com/?p=47</guid>
		<description><![CDATA[Pasos para instalar subversion, trac y hudson en Debian Lenny
Instalando apache con webDAV
1. Instalar los paquetes Apache2, Subversion y libApache2-svn como usuario root.
$ su
$ apt-get install apache2 subversion libapache2-svn
2. Creamos una carpeta que sera nuestro repositorio
$ sudo mkdir  /var/svn-repos
3. A continuación le indicamos a Subversion que es un repositorio:
$ svnadmin create /var/svn-repos/practica1
4.Creamos un grupo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=47&subd=asaes&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Pasos para instalar subversion, trac y hudson en Debian Lenny</p>
<p>Instalando apache con webDAV</p>
<p>1. Instalar los paquetes Apache2, Subversion y libApache2-svn como usuario root.</p>
<pre style="padding-left:30px;"><code>$ su
$ apt-get install apache2 subversion libapache2-svn</code></pre>
<p>2. Creamos una carpeta que sera nuestro repositorio</p>
<p style="padding-left:30px;"><code>$ sudo mkdir  /var/svn-repos</code></p>
<p>3. A continuación le indicamos a Subversion que es un repositorio:</p>
<p style="padding-left:30px;"><code>$ svnadmin create /var/svn-repos/practica1</code></p>
<p>4.Creamos un grupo y le agregamos un usuario</p>
<p style="padding-left:30px;"><code>$ groupadd subversion<br />
$ addgroup usuario subversion</code></p>
<p>5. Ponemos permisos para que el servidor web pueda modificar el repositorio:</p>
<p style="padding-left:30px;"><code>$ chown -R www-data.subversion /var/svn-repos<br />
$ chmod -R 770 /var/svn/repos/*</code></p>
<p>Configurar apache con soporte de webDAV y enlazarlo con subversion</p>
<p>6. Modificamos el archivo siguiente:</p>
<p style="padding-left:30px;"><code>$ vim /etc/apache2/mods-available/dav_svn.conf</code></p>
<p>7. Le agregamos las siguientes lineas al final:</p>
<p style="padding-left:30px;"><code>&lt;Location /svn_p1&gt;</code></p>
<p style="padding-left:60px;"><code>DAV svn<br />
SVNPath /var/svn-repos/practica1<br />
AuthType Basic<br />
AuthName "Subversion Repository"<br />
AuthUserFile /etc/apache2/dav_svn.passwd<br />
Require valid-user</code></p>
<p style="padding-left:30px;"><code>&lt;/Location&gt;<br />
</code></p>
<p>8.  Creamos el archivo de autenticación:</p>
<p style="padding-left:30px;"><code>$ htpasswd -c /etc/subversion/passwd usuario</code></p>
<p>9. Reiniciamos apache</p>
<p style="padding-left:30px;"><code>$ /etc/init.d/apache2 restart</code></p>
<p>10. Abrimos el explorador e insertamos la direccion:</p>
<p style="padding-left:30px;"><code>http://localhost/svn_p1</code></p>
<p>11. Nos muestra lo siguiente</p>
<p style="padding-left:30px;"><span style="font-size:130%;"><strong>svn &#8211; Revision 0: /</strong></span></p>
<p>Creamos un proyecto nuevo en el repositorio</p>
<p>12. Lo primero es, en un directorio temporal, crear el directorio del proyecto:</p>
<p style="padding-left:30px;"><code>~$ cd tmp/<br />
~/tmp$ mkdir hola_mundo</code></p>
<p>Creación de un repositorio con la estructura básica (trunk,branches,tags)</p>
<p>13. Se acostumbra tener tres directorios dentro de un proyecto: branches donde están las ramas del proyecto, tags las diferentes versiones y trunk donde está la versión actual del proyecto. Para ello realizamos lo siguiente:</p>
<p style="padding-left:30px;"><code>~/tmp$ cd hola_mundo/<br />
~/tmp/hola_mundo$ mkdir branches tags trunk<br />
</code></p>
<p>14. A continuación importamos todo eso al repositorio:</p>
<p style="padding-left:30px;"><code>~/tmp/hola_mundo$ cd ..<br />
~/tmp$ svn import hola_mundo http://localhost/svn_p1 -m "Creando la estructura del proyecto"<br />
</code></p>
<p style="padding-left:60px;">Ya podemos borrar el archivo temporal.</p>
<p>16. El siguiente paso es obtener una copia de trabajo de los archivos:</p>
<p style="padding-left:30px;"><code>$ svn checkout http://localhos/svn_p1/trunk practica1</code></p>
<p style="padding-left:60px;">Fijese que obtuvimos trunk, (no es necesario por ahora los otros directorio). El practica1 del final es una indicación del directorio donde se va a grabar la copia de trabajo.</p>
<p>Creación de un proyecto java, hola mundo, y ubicarlo en el trunk del respositorio</p>
<p>17. A continuación vamos a adicionar dos nuevos archivos al proyecto: hola_mundo.java. Lo primero es crear el archivo:</p>
<p style="padding-left:30px;"><code>$ cd practica1/<br />
$ vim hola_mundo.c<br />
</code><br />
con el siguiente contenido:</p>
<p style="padding-left:60px;"><code>public class HolaMundo {<br />
public static void main(String[] args) {<br />
System.out.println("Hola Mundo");<br />
}<br />
}</code></p>
<p>18. Lo adicionamos al proyecto:</p>
<p style="padding-left:30px;"><code>$ svn add hola_mundo.java</code></p>
<p>19. Finalmente enviamos todos los cambios al repositorio:</p>
<p><code>$ svn commit -m "Se adicionó el programa hola_mundo.java"</code></p>
<p><img class="alignnone size-full wp-image-85" title="snapshot3" src="http://asaes.files.wordpress.com/2009/06/snapshot32.png?w=490&#038;h=128" alt="snapshot3" width="490" height="128" /><a href="http://asaes.files.wordpress.com/2009/06/snapshot27.png"><img class="alignnone size-full wp-image-88" title="snapshot2" src="http://asaes.files.wordpress.com/2009/06/snapshot27.png?w=489&#038;h=105" alt="snapshot2" width="489" height="105" /></a></p>
<p>Modificar el aspecto utilizando un css elaborado para darle buen<br />
aspecto al front-end web de subversion</p>
<p>20. Descargamos ReposStyle.zip <a href="http://www.reposstyle.com/#download" target="_blank">aqui</a></p>
<p>21. Lo descomprimos en la carpeta root de apache</p>
<p><code>$ cd /var/www<br />
$ unzip carpeta_donde_se_descargo/repos-style-2.0.zip</code></p>
<p>22. Agregamos la siguiente linea despues de SVNPath /var/svn-repos/practica1</p>
<p style="padding-left:30px;"><code>SVNIndexXSLT "/repos-web/view/repos.xsl"</code></p>
<p>23. Cambiamos los permisos a la carpeta:</p>
<p style="padding-left:30px;"><code>$ chown -R www-data.subversion /var/www<br />
$ chmod -R 755 /var/www</code></p>
<p>24. Reiniciamos apache</p>
<p style="padding-left:30px;"><code>$ /etc/init.d/apache2 restart</code></p>
<p>25. Verificamos la pagina</p>
<p style="padding-left:30px;"><code>http://localhost/svn_p1</code></p>
<p style="padding-left:30px;"><a href="http://asaes.files.wordpress.com/2009/06/snapshot41.png"><img class="alignnone size-full wp-image-89" title="snapshot4" src="http://asaes.files.wordpress.com/2009/06/snapshot41.png?w=490&#038;h=105" alt="snapshot4" width="490" height="105" /></a></p>
<p>Listo!!!!</p>
<p>Instalando Trac</p>
<p>1. Primero instalamos algunos paquetes para que funcione trac con subversion</p>
<p><code>$ apt-get install trac python-setuptools libapache2-mod-python</code></p>
<p>2. Editamos un archivo de apache para integrar python</p>
<p><code>$ vim /etc/apache2/sites-available/default</code></p>
<p>3. La seccion Directory /var/www/ debe quedar asi<br />
<code>[...]</code></p>
<p>Options Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
AddHandler mod_python .py<br />
PythonHandler mod_python.publisher<br />
PythonDebug On</p>
<p>[...]</p>
<p>4. Creamos la base de datos de trac</p>
<p><code>$ mkdir /srv/trac</code></p>
<p>5. Inicializamos el proyecto</p>
<p><code>$ trac-admin /srv/trac/practica1 initenv</code></p>
<p>6. Dejamos todas las opciones por default menos &#8220;Path to repository [/path/to/repos]&#8221; que seria:</p>
<p><code>Path to repository [/path/to/repos]&gt; /srv/svn-repos/practica1</code></p>
<p>7. Le cambiamos propietario a la carpeta</p>
<p><code>$ chown -R www-data.www-data /srv/trac/proyecto</code></p>
<p>8. Es el momento de comprobar que trac y su unión con el repositorio de subversion funcionan correctamente, para ello lanzaremos el servidor incluido en trac:</p>
<p><code>$ tracd -p 8080 /srv/trac/proyecto</code></p>
<p>9. Abriendo la URL http://localhost:8080/ deberíamos ver disponible nuestro proyecto, “<em>practica1</em>“.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot52.png"><img class="alignnone size-full wp-image-90" title="snapshot5" src="http://asaes.files.wordpress.com/2009/06/snapshot52.png?w=490&#038;h=128" alt="snapshot5" width="490" height="128" /></a></p>
<p>10. Comprobamos que la función de “Browse Source” funciona correctamente.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot61.png"><img class="alignnone size-full wp-image-91" title="snapshot6" src="http://asaes.files.wordpress.com/2009/06/snapshot61.png?w=490&#038;h=227" alt="snapshot6" width="490" height="227" /></a><a href="http://asaes.files.wordpress.com/2009/06/snapshot71.png"><img class="alignnone size-full wp-image-92" title="snapshot7" src="http://asaes.files.wordpress.com/2009/06/snapshot71.png?w=490&#038;h=227" alt="snapshot7" width="490" height="227" /></a></p>
<p>Configurar trac para que soporte el proyecto creado en subversion</p>
<p>11. Bien, ahora editamos la configuración para que Apache pase las peticiones que vayan a /trac a nuestro conjunto de proyectos en /srv/trac.<br />
Editando el fichero /etc/apache2/conf.d/trac.conf añadimos antes del cierre de  lo siguiente:</p>
<p><code>$ vim /etc/apache2/conf.d/trac.conf</code></p>
<p style="padding-left:30px;"><code><br />
SetHandler mod_python<br />
PythonInterpreter main_interpreter<br />
PythonHandler trac.web.modpython_frontend<br />
PythonOption PYTHON_EGG_CACHE /tmp/python_egg_cache<br />
PythonOption TracEnvParentDir /srv/trac</code></p>
<p>12. Reinciamos Apache:</p>
<p><code>$ /etc/init.d/apache2 restart</code></p>
<p>13. Probamos la pagina</p>
<p><code>http://localhost/trac</code></p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot62.png"><img class="alignnone size-full wp-image-93" title="snapshot6" src="http://asaes.files.wordpress.com/2009/06/snapshot62.png?w=490&#038;h=227" alt="snapshot6" width="490" height="227" /></a></p>
<p>Listo!!!</p>
<p>Instalando Hudson</p>
<p>1.  Antes de poder instalar Hudson debemos instalar java y tomcat, lo hacemos de la siguiente manera:</p>
<p><code>$ apt-get install sun-java6-jdk</code><br />
<code>$ apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps</code></p>
<p>2. Modificar el archivo para que tomcat deshabilitarle la seguridad ya que si no le agregamos esta linea nos muestra error</p>
<p><code>$ vim /etc/default/tomcat5.5</code></p>
<p>3. Agregar al final</p>
<p><code>TOMCAT5_SECURITY=no</code></p>
<p>4. Probamos si tomcat esta funcionando escribiendo en un browser: http://localhost:8180. Si todo anda bien deberemos crear un usuario administrador con un rol. Para eso editamos el archivo tomcat-users.xml y luego reiniciamos el servidor:</p>
<p><code>$ vim /var/lib/tomcat5.5/conf/tomcat-users.xml</code></p>
<p><code>&lt;!--<br />
&lt;role rolename="tomcat"/&gt;<br />
&lt;role rolename="role1"/&gt;<br />
&lt;user username="tomcat" password="tomcat" roles="tomcat"/&gt;<br />
&lt;user username="both" password="tomcat" roles="tomcat,role1"/&gt;<br />
&lt;user username="role1" password="tomcat" roles="role1"/&gt;<br />
--&gt;<br />
&lt;role rolename="manager"/&gt;<br />
&lt;role rolename="admin"/&gt;<br />
&lt;user username="user" password="secreto" roles="manager"/&gt;<br />
&lt;user username="hudson-admin" password="secreto" roles="admin"/&gt;<br />
&lt;/tomcat-users&gt;</code></p>
<p>5.  Abrimos el administrador de Tomcat, aquí nos pedira el usuario y contraseña que recien agregamos en tomcat-users.xml. Para esto escribimos la siguiente direccion en el browser: <code>http://localhost:8180/manager/html</code>. En la sección apropiada agregamos el archivo hudson.war para poder desplegarlo en el contenedor.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot81.png"><img class="alignnone size-full wp-image-94" title="snapshot8" src="http://asaes.files.wordpress.com/2009/06/snapshot81.png?w=490&#038;h=227" alt="snapshot8" width="490" height="227" /></a></p>
<p>6. Creamos el directorio de trabajo de Hudson y le otorgamos permisos:</p>
<p><code>$ mkdir /home/hudson</code><br />
<code>chown -R tomcat55:nogroup /home/hudson/<br />
chmod -R 755 /home/hudson/</code></p>
<p>7. En el archivo /etc/init.d/tomcat6 agregamos a la variable JAVA_OPTS la variable -DHUDSON_HOME con el valor del directorio de trabajo de hudson que definimos en el paso 6.</p>
<p><code>$ vim vim /etc/init.d/tomcat5.5</code></p>
<p>8. Debe quedar asi</p>
<p><code>JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_BASE/temp -DHUDSON_HOME=/home/hudson"<br />
</code></p>
<p>9. Reiniciamos Tomcat</p>
<p><code>$ /etc/init.d/tomcat5.5 restart</code></p>
<p>10. Bueno&#8230;ahora el ultimo paso es probar si hudson esta andando escribiendo en el browser la dirección: http://localhost:8180/hudson</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot91.png"><img class="alignnone size-full wp-image-95" title="snapshot9" src="http://asaes.files.wordpress.com/2009/06/snapshot91.png?w=489&#038;h=240" alt="snapshot9" width="489" height="240" /></a></p>
<p>Configurar hudson para que efectue al menos 3 construcciones exitosas a partir del repositorio web</p>
<p>11. Antes debemos enlazar nuestro repositorio con hudson. Para ello nos vamos a la opcion Manage Hudson &#8211;&gt; Configure System</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot102.png"><img class="alignnone size-full wp-image-96" title="snapshot10" src="http://asaes.files.wordpress.com/2009/06/snapshot102.png?w=490&#038;h=245" alt="snapshot10" width="490" height="245" /></a></p>
<p>12. Tenemos que añadir el path del JDK</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot121.png"><img class="alignnone size-full wp-image-97" title="snapshot12" src="http://asaes.files.wordpress.com/2009/06/snapshot121.png?w=490&#038;h=159" alt="snapshot12" width="490" height="159" /></a></p>
<p>13. Tenemos que añadir el path de Ant</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot131.png"><img class="alignnone size-full wp-image-98" title="snapshot13" src="http://asaes.files.wordpress.com/2009/06/snapshot131.png?w=490&#038;h=150" alt="snapshot13" width="490" height="150" /></a></p>
<p>14. Guardamos con el boton Save</p>
<p>15. Ahora creamos un nuevo Job</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot112.png"><img class="alignnone size-full wp-image-99" title="snapshot11" src="http://asaes.files.wordpress.com/2009/06/snapshot112.png?w=489&#038;h=240" alt="snapshot11" width="489" height="240" /></a></p>
<p>16. Elegimos el nombre y elegimos la opcion &#8220;Build a free-style software project&#8221;y le damos Ok</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot141.png"><img class="alignnone size-full wp-image-100" title="snapshot14" src="http://asaes.files.wordpress.com/2009/06/snapshot141.png?w=490&#038;h=245" alt="snapshot14" width="490" height="245" /></a></p>
<p>17. Ahora hay que definir donde esta nuestro repositorio, en nuestro caso Subversion y colocamos la URL de nuetro Repositorio, click en Save.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot151.png"><img class="alignnone size-full wp-image-101" title="snapshot15" src="http://asaes.files.wordpress.com/2009/06/snapshot151.png?w=490&#038;h=157" alt="snapshot15" width="490" height="157" /></a></p>
<p>Enlazar trac con la exploración de hudson mediange el plugin de<br />
hudson y trac.</p>
<p>18. Para añadir el plugin hay que ir a la opcion Manage Hudson &#8211;&gt; Manage Plugins y buscamos el plugin lo habilitamos y listo.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot171.png"><img class="alignnone size-full wp-image-102" title="snapshot17" src="http://asaes.files.wordpress.com/2009/06/snapshot171.png?w=489&#038;h=222" alt="snapshot17" width="489" height="222" /></a></p>
<p>19. Ahora nos vamos al Job creado y nos vamos a la opcion Configure y ya esta habilitada la opcion Trac Website, escribimos la URL de trac y listo.</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot261.png"><img class="alignnone size-full wp-image-103" title="snapshot26" src="http://asaes.files.wordpress.com/2009/06/snapshot261.png?w=490&#038;h=36" alt="snapshot26" width="490" height="36" /></a></p>
<p>20. Para crear construcciones exitosas hay que darle la opcion Build Now y Listo</p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot191.png"><img class="alignnone size-full wp-image-104" title="snapshot19" src="http://asaes.files.wordpress.com/2009/06/snapshot191.png?w=490&#038;h=227" alt="snapshot19" width="490" height="227" /></a><a href="http://asaes.files.wordpress.com/2009/06/snapshot211.png"><img class="alignnone size-full wp-image-107" title="snapshot21" src="http://asaes.files.wordpress.com/2009/06/snapshot211.png?w=489&#038;h=222" alt="snapshot21" width="489" height="222" /></a><a href="http://asaes.files.wordpress.com/2009/06/snapshot202.png"><img class="alignnone size-full wp-image-108" title="snapshot20" src="http://asaes.files.wordpress.com/2009/06/snapshot202.png?w=489&#038;h=222" alt="snapshot20" width="489" height="222" /></a></p>
<p><a href="http://asaes.files.wordpress.com/2009/06/snapshot222.png"><img class="alignnone size-full wp-image-109" title="snapshot22" src="http://asaes.files.wordpress.com/2009/06/snapshot222.png?w=489&#038;h=222" alt="snapshot22" width="489" height="222" /></a></p>
<h2><span style="color:#000000;"><strong>UID del disco</strong></span></h2>
<p><span style="color:#000000;"><strong><a href="http://asaes.files.wordpress.com/2009/06/snapshot231.png"><img class="alignnone size-full wp-image-110" title="snapshot23" src="http://asaes.files.wordpress.com/2009/06/snapshot231.png?w=490&#038;h=46" alt="snapshot23" width="490" height="46" /></a><a href="http://asaes.files.wordpress.com/2009/06/snapshot241.png"><img class="alignnone size-full wp-image-111" title="snapshot24" src="http://asaes.files.wordpress.com/2009/06/snapshot241.png?w=490&#038;h=366" alt="snapshot24" width="490" height="366" /></a><br />
</strong></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asaes.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asaes.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asaes.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asaes.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asaes.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asaes.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asaes.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asaes.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asaes.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asaes.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asaes.wordpress.com&blog=4360805&post=47&subd=asaes&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asaes.wordpress.com/2009/06/14/instalacion-de-subversion-trac-hudson-parte-practica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7042f9e66861a20b90da04ad3bd2e141?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alvaro</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot32.png" medium="image">
			<media:title type="html">snapshot3</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot27.png" medium="image">
			<media:title type="html">snapshot2</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot41.png" medium="image">
			<media:title type="html">snapshot4</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot52.png" medium="image">
			<media:title type="html">snapshot5</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot61.png" medium="image">
			<media:title type="html">snapshot6</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot71.png" medium="image">
			<media:title type="html">snapshot7</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot62.png" medium="image">
			<media:title type="html">snapshot6</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot81.png" medium="image">
			<media:title type="html">snapshot8</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot91.png" medium="image">
			<media:title type="html">snapshot9</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot102.png" medium="image">
			<media:title type="html">snapshot10</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot121.png" medium="image">
			<media:title type="html">snapshot12</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot131.png" medium="image">
			<media:title type="html">snapshot13</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot112.png" medium="image">
			<media:title type="html">snapshot11</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot141.png" medium="image">
			<media:title type="html">snapshot14</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot151.png" medium="image">
			<media:title type="html">snapshot15</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot171.png" medium="image">
			<media:title type="html">snapshot17</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot261.png" medium="image">
			<media:title type="html">snapshot26</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot191.png" medium="image">
			<media:title type="html">snapshot19</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot211.png" medium="image">
			<media:title type="html">snapshot21</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot202.png" medium="image">
			<media:title type="html">snapshot20</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot222.png" medium="image">
			<media:title type="html">snapshot22</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot231.png" medium="image">
			<media:title type="html">snapshot23</media:title>
		</media:content>

		<media:content url="http://asaes.files.wordpress.com/2009/06/snapshot241.png" medium="image">
			<media:title type="html">snapshot24</media:title>
		</media:content>
	</item>
	</channel>
</rss>