<?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>Tus ceros y mis unos</title>
	<atom:link href="https://mikiorbe.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://mikiorbe.wordpress.com</link>
	<description>Blog de Miguel Orbegozo. Desarrollo entretenido</description>
	<lastBuildDate>Fri, 10 May 2013 18:31:18 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">3806599</site><cloud domain='mikiorbe.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>Tus ceros y mis unos</title>
		<link>https://mikiorbe.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://mikiorbe.wordpress.com/osd.xml" title="Tus ceros y mis unos" />
	<atom:link rel='hub' href='https://mikiorbe.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Primeros pasos con JMeter</title>
		<link>https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/</link>
					<comments>https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Fri, 10 May 2013 18:31:18 +0000</pubDate>
				<category><![CDATA[Pruebas Software]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=707</guid>

					<description><![CDATA[En esta entrada voy a hablar de JMeter, una herramienta de código abierto escrita en Java para realizar pruebas de carga y de rendimiento, principalmente de aplicaciones web aunque permite probar otras cosas como SOAP o Mail. Su instalación y ejecución es muy sencilla (debemos tener Java instalado). Descargamos la última versión desde la página [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>En esta entrada voy a hablar de <a href="http://jmeter.apache.org/" title="JMeter" target="_blank">JMeter</a>, una herramienta de código abierto escrita en Java para realizar pruebas de carga y de rendimiento, principalmente de aplicaciones web aunque permite probar otras cosas como SOAP o Mail.</p>
<p>Su instalación y ejecución es muy sencilla (debemos tener Java instalado). Descargamos la última versión desde la <a href="http://jmeter.apache.org/download_jmeter.cgi" title="Descarga de JMeter" target="_blank">página de descargas de JMeter</a>, que en el momento de escribir esta entrada es la 2.9 (que requiere Java 6 o superior). Descomprimimos el paquete descargado en un directorio a nuestra elección y dentro de la carpeta <em>/bin</em> de dicho directorio ejecutamos jmeter (<em>.bat</em> si estamos en Windows y <em>.sh</em> si estamos en Linux o Mac).</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png"><img data-attachment-id="709" data-permalink="https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/jmeter_01/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png" data-orig-size="1092,614" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Ventana principal de JMeter" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=300&#038;h=168" alt="Ventana principal de JMeter" width="300" height="168" class="aligncenter size-medium wp-image-709" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>En la ventana principal de JMeter, observamos en la parte izquierda el «Plan de Pruebas» y el  «Banco de Trabajo». Si nos situamos sobre cualquiera de ellos, con el botón derecho del ratón nos aparecerá el menú contextual que nos permite añadir componentes sobre cada uno.</p>
<p>Sobre el «Plan de Pruebas» lo habitual es añadir un «Grupo de Hilos» (<em>Añadir / Hilos (Usuarios) / Grupo de Hilos</em>). Un grupo de hilos representa el número de usuarios que ejecuta nuestro plan de pruebas. Para las primeras pruebas lo dejaremos sin tocar, es decir, con un hilo que realiza un único bucle.</p>
<p>Sobre el «Grupo de Hilos» añadiremos las peticiones que irá realizando cada uno de los hilos. Como hemos dicho lo más habitual es que sean peticiones HTTP, por lo que añadiremos una «Petición HTTP» (<em>Añadir / Muestreador / Petición HTTP</em>).</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png"><img data-attachment-id="710" data-permalink="https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/jmeter_02/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png" data-orig-size="1179,421" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Petición HTTP" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=300&#038;h=107" alt="Petición HTTP" width="300" height="107" class="aligncenter size-medium wp-image-710" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>En la imagen superior vemos que en la «Petición HTTP» podemos poner los parámetros de una petición: servidor, protocolo, método (GET, POST, etc.), ruta y demás. Por ahora ponemos:</p>
<ul>
<li>Servidor: google.com</li>
<li>Método: GET</li>
</ul>
<p>En el «Grupo de Hilos» también añadiremos un «Informe Agregado» (<em>Añadir / Receptor / Informe Agregado</em>). Esto nos creará un pequeño informe con los resultados de la prueba. Hay otros muchos receptores que incluyen gráficas, detalles de la petición y respuesta, etc.</p>
<p>Es aconsejable que guardemos nuestro plan de pruebas desde el menú <em>Archivo / Guardar Plan de Pruebas como</em>.</p>
<p>Ahora si pulsamos el botón <em>Arrancar</em> (o desde el menú <em>Lanzar / Arrancar</em>) ejecutaremos nuestra primera prueba con JMeter. Si seleccionamos el «Informe Agregado» veremos los resultados de nuestra prueba.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png"><img data-attachment-id="712" data-permalink="https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/jmeter_03/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png" data-orig-size="1147,405" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Informe Agregado ed la prueba" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=300&#038;h=105" alt="Informe Agregado ed la prueba" width="300" height="105" class="aligncenter size-medium wp-image-712" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Como vemos podremos ver el número de peticiones (muestreos), los tiempos en milisegundos (media, mediana, máximo, mínimo y la línea del 90%), el rendimiento en páginas por segundo y en Kb por segundo. En nuestro primer caso los tiempos son todos iguales porque hemos hecho un único muestreo. Para limpiar los resultados pulsaremos el botón de <em>Limpiar Todo</em> o desde el menú <em>Lanzar / Limpiar Todo</em>.</p>
<p>Otro receptor que yo suelo usar sobre todo al crear los planes de prueba es el de «Ver Árbol de Resultados» (no confundir con el de «Ver Resultados en Árbol»), que permite ver todos los datos de la petición y de la respuesta. Por ejemplo en este caso apreciamos cómo hay dos redirecciones antes de la respuesta definitiva.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png"><img loading="lazy" data-attachment-id="713" data-permalink="https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/jmeter_04/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png" data-orig-size="860,576" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Árbol de resultados" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=300&#038;h=200" alt="Árbol de resultados" width="300" height="200" class="aligncenter size-medium wp-image-713" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Y listo. Añadiendo más peticiones HTTP y modificando los hilos (más hilos y más bucles) ya podréis hacer unas pruebas reales (mejor contra vuestros servidores de prueba claro). Tened en cuenta que la máquina desde la que ejecutéis las pruebas también influye en el resultado, por lo que mejor que sea siempre la misma (para comparar resultados) y que en el momento de la prueba se dedique sólo a eso.</p>
<p>Estad atentos porque en breve publicaré una forma más cómoda para grabar las peticiones según navegamos en la web, así como algunos otros trucos y consejos para trabajar con JMeter.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2013/05/10/primeros-pasos-con-jmeter/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">707</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_01.png?w=300" medium="image">
			<media:title type="html">Ventana principal de JMeter</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_02.png?w=300" medium="image">
			<media:title type="html">Petición HTTP</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_03.png?w=300" medium="image">
			<media:title type="html">Informe Agregado ed la prueba</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/05/jmeter_04.png?w=300" medium="image">
			<media:title type="html">Árbol de resultados</media:title>
		</media:content>
	</item>
		<item>
		<title>Eliminar caché de acceso a unidades de red en Windows XP</title>
		<link>https://mikiorbe.wordpress.com/2013/04/26/eliminar-cache-de-acceso-a-unidades-de-red-en-windows-xp/</link>
					<comments>https://mikiorbe.wordpress.com/2013/04/26/eliminar-cache-de-acceso-a-unidades-de-red-en-windows-xp/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Fri, 26 Apr 2013 17:38:47 +0000</pubDate>
				<category><![CDATA[Entorno Desarrollo]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=702</guid>

					<description><![CDATA[Cuando accedemos a un recurso compartido o unidad de red en Windows XP (por ejemplo desde ejecutar en el menú de inicio o desde la barra de direcciones del explorador de Windows), nos pregunta el usuario y la contraseña. El usuario que introducimos se queda cacheado de forma que las siguientes veces que accedemos ya [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Cuando accedemos a un recurso compartido o unidad de red en Windows XP (por ejemplo desde ejecutar en el menú de inicio o desde la barra de direcciones del explorador de Windows), nos pregunta el usuario y la contraseña. El usuario que introducimos se queda cacheado de forma que las siguientes veces que accedemos ya no nos lo vuelve a preguntar.</p>
<p>Esto que es cómodo en principio, hay algunas ocasiones en que no es lo deseable. Por ejemplo si queremos ver si otro usuario tiene acceso.</p>
<p>Yo al final la manera más cómoda que he encontrado para eliminar esa caché es a través de la línea de comandos.</p>
<p>Para mostrar las unidades a las que estamos conectados:</p>
<p><em>net use</em></p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png"><img loading="lazy" data-attachment-id="703" data-permalink="https://mikiorbe.wordpress.com/2013/04/26/eliminar-cache-de-acceso-a-unidades-de-red-en-windows-xp/netuse_1/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png" data-orig-size="668,331" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="net use" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=300&#038;h=148" alt="net use" width="300" height="148" class="aligncenter size-medium wp-image-703" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Para eliminar la caché de una de las entradas:</p>
<p><em>net use \\unidad /delete</em><br />
<em>net use \\ip /delete</em></p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png"><img loading="lazy" data-attachment-id="704" data-permalink="https://mikiorbe.wordpress.com/2013/04/26/eliminar-cache-de-acceso-a-unidades-de-red-en-windows-xp/netuse_2/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png" data-orig-size="668,331" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="net use delete" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=300&#038;h=148" alt="net use delete" width="300" height="148" class="aligncenter size-medium wp-image-704" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>También podemos eliminar todas las entradas:</p>
<p><em>net use * /delete</em></p>
<p>Podemos comprobar que las entradas se han eliminado.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png"><img loading="lazy" data-attachment-id="705" data-permalink="https://mikiorbe.wordpress.com/2013/04/26/eliminar-cache-de-acceso-a-unidades-de-red-en-windows-xp/netuse_3/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png" data-orig-size="668,439" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="net use" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=300&#038;h=197" alt="net use" width="300" height="197" class="aligncenter size-medium wp-image-705" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Ahora si volvemos a intentar entrar en el recurso compartido nos volverá a solicitar el usuario y la contraseña.</p>
<p>Pongo el enlace a la ayuda completa del comando <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_use.mspx?mfr=true" title="net use" target="_blank">net use</a> (en inglés <img loading="lazy" data-attachment-id="9" data-permalink="https://mikiorbe.wordpress.com/2008/05/28/presentando-cakephp/gb/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" data-orig-size="16,11" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Inglés" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16" src="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=455" alt="Inglés"   class="alignnone size-full wp-image-9" />).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2013/04/26/eliminar-cache-de-acceso-a-unidades-de-red-en-windows-xp/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">702</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_1.png?w=300" medium="image">
			<media:title type="html">net use</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_2.png?w=300" medium="image">
			<media:title type="html">net use delete</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2013/04/netuse_3.png?w=300" medium="image">
			<media:title type="html">net use</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" medium="image">
			<media:title type="html">Inglés</media:title>
		</media:content>
	</item>
		<item>
		<title>Adiós 2011, ¡ya está aquí 2012!</title>
		<link>https://mikiorbe.wordpress.com/2012/01/02/adios-2011-ya-esta-aqui-2012/</link>
					<comments>https://mikiorbe.wordpress.com/2012/01/02/adios-2011-ya-esta-aqui-2012/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Mon, 02 Jan 2012 08:46:53 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=693</guid>

					<description><![CDATA[Este podría ser el resumen del año 2011 en este blog: Espero este año 2012 poder actualizar algo más. No me pongo objeivos, pero peor que 2011 será difícil.]]></description>
										<content:encoded><![CDATA[<p>Este podría ser el resumen del año 2011 en este blog:</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg"><img loading="lazy" data-attachment-id="692" data-permalink="https://mikiorbe.wordpress.com/desierto/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg" data-orig-size="320,240" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="desierto" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg?w=320" src="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg?w=455" alt="desierto" title="desierto"   class="aligncenter size-full wp-image-692" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg 320w, https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg?w=150&amp;h=113 150w, https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg?w=300&amp;h=225 300w" sizes="(max-width: 320px) 100vw, 320px" /></a></p>
<p>Espero este año 2012 poder actualizar algo más. No me pongo objeivos, pero peor que 2011 será difícil.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2012/01/02/adios-2011-ya-esta-aqui-2012/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">693</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2012/01/desierto.jpg" medium="image">
			<media:title type="html">desierto</media:title>
		</media:content>
	</item>
		<item>
		<title>Movimientos sociales en España</title>
		<link>https://mikiorbe.wordpress.com/2011/05/19/movimientos-sociales/</link>
					<comments>https://mikiorbe.wordpress.com/2011/05/19/movimientos-sociales/#respond</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Thu, 19 May 2011 06:52:39 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=686</guid>

					<description><![CDATA[Tengo cierto temor a que al final los movimientos que estamos viendo estos días en España sean tergiversados por unos o por otros. Por eso publico una imagen que circula por las redes sociales y que a mi modo de ver resumen muy bien el origen de los movimientos. Con el contenido de este manifiesto [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Tengo cierto temor a que al final los movimientos que estamos viendo estos días en España sean tergiversados por unos o por otros.</p>
<p>Por eso publico una imagen que circula por las redes sociales y que a mi modo de ver resumen muy bien el origen de los movimientos. Con el contenido de este manifiesto estoy completamente de acuerdo.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg"><img loading="lazy" data-attachment-id="687" data-permalink="https://mikiorbe.wordpress.com/2011/05/19/movimientos-sociales/manifiesto-acampados/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg" data-orig-size="529,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="manifiesto acampados" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg?w=220" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg?w=455" src="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg?w=455&#038;h=619" alt="" title="manifiesto acampados" width="455" height="619" class="aligncenter size-full wp-image-687" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg?w=455&amp;h=619 455w, https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg?w=110&amp;h=150 110w, https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg?w=220&amp;h=300 220w, https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg 529w" sizes="(max-width: 455px) 100vw, 455px" /></a></p>
<p>Prometo recuperar próximamente la temática del blog. <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2011/05/19/movimientos-sociales/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">686</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2011/05/manifiesto-acampados.jpg" medium="image">
			<media:title type="html">manifiesto acampados</media:title>
		</media:content>
	</item>
		<item>
		<title>Segundo cumpleaños</title>
		<link>https://mikiorbe.wordpress.com/2010/05/26/segundo-cumpleanos/</link>
					<comments>https://mikiorbe.wordpress.com/2010/05/26/segundo-cumpleanos/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Wed, 26 May 2010 06:56:31 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=666</guid>

					<description><![CDATA[Hoy hace dos años desde que empecé con este blog y al igual que hice en el primer cumpleaños realizaré un resumen de la temporada. Si hace un año estaba bastante satisfecho de la marcha del blog, este segundo año no lo estoy tanto. Mi insatisfacción se refiere sobre todo a lo poco que he [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Hoy hace dos años desde que empecé con este blog y al igual que hice en el <a title="Primer cumpleaños de TCYMU" href="https://mikiorbe.wordpress.com/2009/05/26/%c2%a1%c2%a1cumplimos-un-anito/">primer cumpleaños</a> realizaré un resumen de la temporada.</p>
<p><a href="http://www.flickr.com/photos/frozen-in-time/2263904827/"><img loading="lazy" data-attachment-id="667" data-permalink="https://mikiorbe.wordpress.com/2010/05/26/segundo-cumpleanos/cumple/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg" data-orig-size="1024,685" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="cumple" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=455" class="aligncenter size-medium wp-image-667" title="cumple" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=300&#038;h=200" alt="" width="300" height="200" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Si hace un año estaba bastante satisfecho de la marcha del blog, este segundo año no lo estoy tanto. Mi insatisfacción se refiere sobre todo a lo poco que he publicado este año. Cambios laborales y personales (mi segundo hijo) me hacen tener menos tiempo que dedicarle a esto. Sigo aprendiendo cosas pero no saco el tiempo para compartirlas con vosotros. Así que como propósito de enmienda o en grande en esa lista TODO tengo el conseguir ese tiempo para publicar al menos una vez al mes (lejos ya de la entrada o dos entradas semanales que me ponía como objetivo en un principio).</p>
<p>En cuanto a datos de acceso, sigo estando bastante contento. El promedio de visitas diarias ha subido y está en el entrono de las 80, con un record de 174 visitas en un día y 40.945 visitas totales. Para mí está bien.</p>
<p>En cuanto a temas, <a title="CakePHP en tus Ceros y Mis Unos" href="https://mikiorbe.wordpress.com/tag/cakephp/">CakePHP</a> sigue caliente (a ver si le dedico alguna entrada en un futuro próximo).</p>
<p>De nuevo daros las gracias a todos los que visitáis Tus Ceros y Mis Unos, ¡permaneced a la escucha!.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2010/05/26/segundo-cumpleanos/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">666</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/cumple.jpg?w=300" medium="image">
			<media:title type="html">cumple</media:title>
		</media:content>
	</item>
		<item>
		<title>Análisis estático de código en Hudson para proyectos Ant</title>
		<link>https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/</link>
					<comments>https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Thu, 13 May 2010 10:25:00 +0000</pubDate>
				<category><![CDATA[Entorno Desarrollo]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[Hudson]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=631</guid>

					<description><![CDATA[En esta entrada vamos a explicar cómo configurar algunas herramientas de análisis estático de código en Hudson para proyectos que utilicen Ant. Partimos de un servidor Hudson instalado (y con una JDK y Ant configurados) y un proyecto que utilice Ant para su construcción (tendremos su build.xml que compila las fuentes y crea un jar [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>En esta entrada vamos a explicar cómo configurar algunas herramientas de análisis estático de código en <a title="Hudson" href="http://hudson-ci.org/">Hudson</a> para proyectos que utilicen <a title="Ant" href="http://ant.apache.org/">Ant</a>.</p>
<p>Partimos de un <a title="Instalando Hudosn sobre Tomcat en Ubuntu" href="https://mikiorbe.wordpress.com/2008/11/10/instalando-hudson-sobre-tomcat-en-ubuntu-804/">servidor Hudson instalado</a> (y con una JDK y Ant configurados) y un proyecto que utilice Ant para su construcción (tendremos su <code>build.xml</code> que compila las fuentes y crea un jar por ejemplo).</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png"><img loading="lazy" data-attachment-id="646" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico0/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png" data-orig-size="795,407" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico0" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=455" class="aligncenter size-medium wp-image-646" title="hudsonEstatico0" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=300&#038;h=153" alt="" width="300" height="153" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Por ahora vamos a integrar tres herramientas de análisis estático de código: <a title="PMD" href="http://pmd.sourceforge.net/">PMD</a>, CPD (integrado en PMD) y <a title="FindBugs" href="http://findbugs.sourceforge.net/">FindBugs</a>. Necesitaremos descargar y extraer en un directorio ambas herramientas.</p>
<p>Partimos de un script de Ant como el que sigue:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot;?&gt;

&lt;project name=&quot;TCYMU&quot; default=&quot;compile&quot; basedir=&quot;.&quot;&gt;

	&lt;property name=&quot;src.dir&quot; value=&quot;${basedir}/src&quot;/&gt;
	&lt;property name=&quot;lib&quot;	value=&quot;${basedir}/lib&quot;/&gt;
	&lt;property name=&quot;classes&quot;	value=&quot;${basedir}/classes&quot;/&gt;

	&lt;target name=&quot;clean&quot; description=&quot;Limpia el proyecto&quot;&gt;
		&lt;delete dir=&quot;${classes}&quot;/&gt;
		&lt;delete dir=&quot;${dist}&quot;/&gt;
	&lt;/target&gt;	

	&lt;target name=&quot;init&quot; description=&quot;Crea el directorio de compilacion y destino&quot; depends=&quot;clean&quot;&gt;
		&lt;mkdir dir=&quot;${classes}&quot;/&gt;
		&lt;mkdir dir=&quot;${dist}&quot;/&gt;
		&lt;path id=&quot;compile.class.path&quot;&gt;
			&lt;pathelement path=&quot;${lib}/*.jar&quot;/&gt;
		&lt;/path&gt;
	&lt;/target&gt;	

	&lt;target name=&quot;compile&quot; description=&quot;Compilacion&quot; depends=&quot;init&quot;&gt;
		&lt;javac debug=&quot;on&quot; srcdir=&quot;${src.dir}&quot; destdir=&quot;${classes}&quot; classpathref=&quot;compile.class.path&quot;/&gt;
	&lt;/target&gt;

&lt;/project&gt;
</pre>
<p>Crearemos una nueva tarea en Hudson, introduciremos un nombre y seleccionaremos la opción de «Crear un proyecto de estilo libre».</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png"><img loading="lazy" data-attachment-id="648" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico1/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png" data-orig-size="534,157" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico1" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png?w=455" class="aligncenter size-medium wp-image-648" title="hudsonEstatico1" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png?w=300&#038;h=88" alt="" width="300" height="88" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png?w=150 150w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png 534w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Después seleccionaremos una JDK, configuraremos el control de versiones (en mi caso <a title="Subversion" href="http://subversion.tigris.org/">Subversion</a>) y en la sección de «Ejecutar» seleccionaremos «Ejecutar Ant» e introducimos el nombre de nuestra tarea de Ant para compilar. Con esto ya podríamos lanzar la primera ejecución en Hudson para comprobar que funciona.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png"><img loading="lazy" data-attachment-id="649" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico2/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png" data-orig-size="697,119" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico2" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=455" class="aligncenter size-medium wp-image-649" title="hudsonEstatico2" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=300&#038;h=51" alt="" width="300" height="51" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png"><img loading="lazy" data-attachment-id="650" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico4/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png" data-orig-size="623,319" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico4" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=455" class="aligncenter size-medium wp-image-650" title="hudsonEstatico4" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=300&#038;h=153" alt="" width="300" height="153" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Para integrar los tres análisis voy a utilizar una misma estrategia basada en variables de entorno que nos permitirá que nuestra configuración Ant sea válida tanto en local como en el servidor Hudson. Para ello en la configuración de Hudson definiremos dos variables de entorno que apunten a los directorios de PMD y FindBugs.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png"><img loading="lazy" data-attachment-id="651" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico3/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png" data-orig-size="976,207" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico3" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=455" class="aligncenter size-medium wp-image-651" title="hudsonEstatico3" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=300&#038;h=63" alt="" width="300" height="63" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Hecho esto modificamos el <code>build.xml</code> para incluir las nuevas tareas:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot;?&gt;

&lt;project name=&quot;TCYMU&quot; default=&quot;compile&quot; basedir=&quot;.&quot;&gt;

	&lt;property environment=&quot;env&quot;/&gt;
	&lt;property name=&quot;src.dir&quot; value=&quot;${basedir}/src&quot;/&gt;
	&lt;property name=&quot;lib&quot;	value=&quot;${basedir}/lib&quot;/&gt;
	&lt;property name=&quot;classes&quot;	value=&quot;${basedir}/classes&quot;/&gt;
	&lt;property name=&quot;reports&quot; value=&quot;${basedir}/reports&quot;/&gt;

	&lt;taskdef name=&quot;pmd&quot; classname=&quot;net.sourceforge.pmd.ant.PMDTask&quot;&gt;
		&lt;classpath&gt;
			&lt;pathelement location=&quot;${env.PMD_HOME}/lib/pmd-4.2.5.jar&quot;/&gt;
		&lt;/classpath&gt;
	&lt;/taskdef&gt;

	&lt;taskdef name=&quot;cpd&quot; classname=&quot;net.sourceforge.pmd.cpd.CPDTask&quot;&gt;
		&lt;classpath&gt;
			&lt;pathelement location=&quot;${env.PMD_HOME}/lib/pmd-4.2.5.jar&quot;/&gt;
		&lt;/classpath&gt;
	&lt;/taskdef&gt;

	&lt;taskdef name=&quot;findbugs&quot; classname=&quot;edu.umd.cs.findbugs.anttask.FindBugsTask&quot;&gt;
		&lt;classpath&gt;
			&lt;pathelement location=&quot;${env.FINDBUGS_HOME}/lib/findbugs-ant.jar&quot;/&gt;
		&lt;/classpath&gt;
	&lt;/taskdef&gt;

	&lt;target name=&quot;clean&quot; description=&quot;Limpia el proyecto&quot;&gt;
		&lt;delete dir=&quot;${classes}&quot;/&gt;
		&lt;delete dir=&quot;${dist}&quot;/&gt;
	&lt;/target&gt;

	&lt;target name=&quot;cleanReports&quot; description=&quot;Elimina el directorio de compilacion y destino&quot;&gt;
		&lt;delete dir=&quot;${reports}&quot;/&gt;
	&lt;/target&gt;

	&lt;target name=&quot;init&quot; description=&quot;Crea el directorio de compilacion y destino&quot; depends=&quot;clean&quot;&gt;
		&lt;mkdir dir=&quot;${classes}&quot;/&gt;
		&lt;mkdir dir=&quot;${dist}&quot;/&gt;
		&lt;path id=&quot;compile.class.path&quot;&gt;
			&lt;pathelement path=&quot;${lib}/*.jar&quot;/&gt;
		&lt;/path&gt;
	&lt;/target&gt;	

	&lt;target name=&quot;compile&quot; description=&quot;Compilacion&quot; depends=&quot;init&quot;&gt;
		&lt;javac debug=&quot;on&quot; srcdir=&quot;${src.dir}&quot; destdir=&quot;${classes}&quot; classpathref=&quot;compile.class.path&quot;/&gt;
	&lt;/target&gt;

	&lt;target name=&quot;pmd&quot;&gt;
		&lt;mkdir dir=&quot;${reports}&quot;/&gt;
		&lt;pmd rulesetfiles=&quot;ruleset.xml&quot;&gt;
			&lt;formatter type=&quot;xml&quot; toFile=&quot;${reports}/pmd.xml&quot;/&gt;
			&lt;fileset dir=&quot;${src.dir}&quot;&gt;
				&lt;include name=&quot;**/*.java&quot;/&gt;
			&lt;/fileset&gt;
		&lt;/pmd&gt;
	&lt;/target&gt;

	&lt;target name=&quot;cpd&quot;&gt;
		&lt;mkdir dir=&quot;${reports}&quot;/&gt;
		&lt;cpd minimumTokenCount=&quot;50&quot; format=&quot;xml&quot; outputFile=&quot;${reports}/cpd.xml&quot;&gt;
			&lt;fileset dir=&quot;${src.dir}&quot;&gt;
				&lt;include name=&quot;**/*.java&quot;/&gt;
			&lt;/fileset&gt;
		&lt;/cpd&gt;
	&lt;/target&gt;

	&lt;target name=&quot;findbugs&quot; depends=&quot;compile&quot;&gt;
		&lt;mkdir dir=&quot;${reports}&quot;/&gt;
		&lt;findbugs home=&quot;${env.FINDBUGS_HOME}&quot;
	              output=&quot;xml&quot;
	              outputFile=&quot;${reports}/findbugs.xml&quot;
	    	      jvmargs=&quot;-Xmx1024m&quot;&gt;
			&lt;sourcePath path=&quot;${src.dir}&quot; /&gt;
			&lt;class location=&quot;${classes}&quot; /&gt;
		&lt;/findbugs&gt;
	&lt;/target&gt;

&lt;/project&gt;
</pre>
<p>Las novedades que presenta son bastantes:</p>
<ul>
<li>Configuro la propiedad <code>environment</code> para tener acceso a las variables de entorno.</li>
<li>Configuramos un nuevo directorio que albergará el resultado de los distintos análisis. Es el directorio que he llamado <em>reports</em>.</li>
<li>Defino las tareas Ant que se incluyen con PMD y FindBugs mediante la etiqueta <code>taskdef</code>, y buscando los jars a través de las variables de entorno.</li>
<li>Defino la tarea <code>pmd</code> indicando xml como formato de salida, el directorio que contiene el código fuente y el archivo de salida. PMD puede realizar análisis en base a un buen número de <a title="Reglas PMD" href="http://pmd.sourceforge.net/rules/index.html">reglas</a>. Podemos configurar las reglas que utilizaremos bien mediante etiquetas anidadas en la tarea Ant o mediante un archivo separado de reglas (lo que se indica en la tarea Ant como <code>rulesetfiles</code>). En mi caso he utilizado para probar la configuración que aparece bajo «Add some rule references to it» en la sección de <a title="Crear un conjunto de reglas PMD" href="http://pmd.sourceforge.net/howtomakearuleset.html">crear un conjunto de reglas en la web de PMD</a>. En el siguiente enlace podemos encontrar más información sobre la <a title="Configuración Ant para PMD" href="http://pmd.sourceforge.net/ant-task.html">configuración de PMD</a>.</li>
<li>Defino la <code>cpd</code> de forma muy parecida a la de <code>pmd</code>. Se indica xml como formato de salida, el directorio que contiene el código fuente y el archivo de salida. Para CPD no hay archivo de reglas. En el siguiente enlace se puede encontrar más información sobre la <a title="Configuración Ant para CPD" href="http://pmd.sourceforge.net/cpd.html">configuración de CPD</a>.</li>
<li>Defino la tarea Ant para FindBugs. Además de directorio de fuentes y archivo y formato de salida, necesitamos indicarle el directorio de instalación de FindBugs y el directorio donde encontrar las clases compiladas ya que FindBugs las utiliza para su análisis. Por este último motivo declaramos la tarea de <code>findbugs</code> dependiente de la de compilación. Más información en el capítulo de <a title="Configuración Ant para FindBugs" href="http://findbugs.sourceforge.net/manual/anttask.html">tarea Ant de FindBugs</a>.</li>
</ul>
<p>Para la integración necesitaremos instalar algunos plugins para Hudson. Iremos al apartado de plugins dentro de la configuración de Hudson e instalaremos <a title="Static Analysis Utilities" href="http://wiki.hudson-ci.org/display/HUDSON/Static+Code+Analysis+Plug-ins">Static Analysis Utilities</a>, <a title="PMD Plug-in" href="http://wiki.hudson-ci.org/display/HUDSON/PMD+Plugin">PMD Plug-in</a>, <a title="Duplicate Code Scanner Plug-in" href="http://wiki.hudson-ci.org/display/HUDSON/DRY+Plugin">Duplicate Code Scanner Plug-in</a> y <a title="FindBugs Plug-in" href="http://wiki.hudson-ci.org/display/HUDSON/FindBugs+Plugin">FindBugs Plug-in</a>.</p>
<p>Por último modificaremos la configuración de nuestra tarea Hudson. En la sección de «Acciones para ejecutar después» activaremos el visualizador de PMD, CPD y FindBugs. En la configuración de ant lanzaremos las tareas <code>cleanReports</code>, <code>pmd</code>, <code>cpd</code> y <code>findbugs</code>.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png"><img loading="lazy" data-attachment-id="653" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico5/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png" data-orig-size="702,353" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico5" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=455" class="aligncenter size-medium wp-image-653" title="hudsonEstatico5" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=300&#038;h=150" alt="" width="300" height="150" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Tras mandar a Hudson que nos ejecute el proyecto obtendremos una salida similar a la siguiente:</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png"><img loading="lazy" data-attachment-id="654" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico6/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png" data-orig-size="732,346" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico6" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=455" class="aligncenter size-medium wp-image-654" title="hudsonEstatico6" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=300&#038;h=141" alt="" width="300" height="141" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>y podremos ver detalles de nuestro análisis siguiendo los enlaces:</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png"><img loading="lazy" data-attachment-id="655" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico7/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png" data-orig-size="835,321" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico7" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=455" class="aligncenter size-medium wp-image-655" title="hudsonEstatico7" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=300&#038;h=115" alt="" width="300" height="115" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png"><img loading="lazy" data-attachment-id="656" data-permalink="https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/hudsonestatico8/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png" data-orig-size="810,451" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="hudsonEstatico8" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=455" class="aligncenter size-medium wp-image-656" title="hudsonEstatico8" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=300&#038;h=167" alt="" width="300" height="167" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=600 600w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Hasta aquí esta entrada que seguro no será la última sobre Hudson, seguid atentos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2010/05/13/analisis-estatico-de-codigo-en-hudson-para-proyectos-ant/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">631</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico0.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico0</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico1.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico1</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico2.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico2</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico4.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico4</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico3.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico3</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico5.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico5</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico6.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico6</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico7.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico7</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/05/hudsonestatico8.png?w=300" medium="image">
			<media:title type="html">hudsonEstatico8</media:title>
		</media:content>
	</item>
		<item>
		<title>Url de conexión JDBC a Oracle RAC</title>
		<link>https://mikiorbe.wordpress.com/2010/04/29/url-de-conexion-jdbc-a-oracle-rac/</link>
					<comments>https://mikiorbe.wordpress.com/2010/04/29/url-de-conexion-jdbc-a-oracle-rac/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Thu, 29 Apr 2010 09:45:08 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Trucos]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=633</guid>

					<description><![CDATA[Recientemente uno de nuestros entornos ha migrado a Oracle RAC y hemos tenido el problemilla que os detallo a continuación. Parece ser que en Oracle RAC la URL de conexión a la BBDD mediante JDBC no permite una de sus versiones clásicas. Así por ejemplo una conexión del estilo: jdbc:oracle:thin:@&#60;HOST&#62;:1521:&#60;SID&#62; no funciona saltando la siguiente [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Recientemente uno de nuestros entornos ha migrado a <a title="Oracle RAC en Wikipedia ES" href="http://es.wikipedia.org/wiki/Oracle_RAC">Oracle RAC</a> y hemos tenido el problemilla que os detallo a continuación.</p>
<p>Parece ser que en Oracle RAC la URL de conexión a la BBDD mediante JDBC no permite una de sus versiones clásicas. Así por ejemplo una conexión del estilo:</p>
<p><code>jdbc:oracle:thin:@&lt;HOST&gt;:1521:&lt;SID&gt;</code></p>
<p>no funciona saltando la siguiente excepción:</p>
<p><code>java.sql.SQLException: Listener refused the connection with the following error:<br />
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor<br />
The Connection descriptor used by the client was:<br />
...</code></p>
<p>Para solucionarlo podemos utilizar la otra forma corta de url que aparece por ejemplo en este <a title="Listado de formatos de conexión JDBC" href="http://www.herongyang.com/jdbc/Summary-Connection-URL.html">listado de formatos de conexión JDBC</a> (en inglés <img loading="lazy" data-attachment-id="9" data-permalink="https://mikiorbe.wordpress.com/2008/05/28/presentando-cakephp/gb/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" data-orig-size="16,11" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Inglés" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16" class="alignnone size-full wp-image-9" title="Inglés" src="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=455" alt=""   />):</p>
<p><code>jdbc:oracle:thin:@//&lt;HOST&gt;:1521/&lt;SID&gt;</code></p>
<p>También podemos utilizar una URL en formato largo:</p>
<p><code>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=&lt;HOST&gt;(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=&lt;SID&gt;)))</code></p>
<p>Si tenemos varios servidores deberíamos poner una URL en el siguiente formato:</p>
<p><code>jdbc:oracle:thin:@&lt;HOST1&gt;^&lt;HOST2&gt;:1521:&lt;SID&gt;</code></p>
<p><code>jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)<br />
(ADDRESS=(PROTOCOL=TCP)(HOST=&lt;HOST1&gt;) (PORT=1521))<br />
(ADDRESS=(PROTOCOL=TCP)(HOST=&lt;HOST2&gt;) (PORT=1521))<br />
(CONNECT_DATA=(SERVICE_NAME=&lt;SID&gt;)))</code></p>
<p>aunque esto último no lo he podrido probar lo he visto en el <a title="JUG de Padova" href="http://www.jugpadova.it/articles/2007/04/11/jdbc-url-for-oracle-rac">JUG de Padova</a> (en inglés <img title="Inglés" src="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16&#038;h=11" alt="" width="16" height="11" />).</p>
<p>Espero que le pueda servir de ayuda a alguien.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2010/04/29/url-de-conexion-jdbc-a-oracle-rac/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">633</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" medium="image">
			<media:title type="html">Inglés</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" medium="image">
			<media:title type="html">Inglés</media:title>
		</media:content>
	</item>
		<item>
		<title>Redondeando en Java</title>
		<link>https://mikiorbe.wordpress.com/2010/02/27/redondeando-en-java/</link>
					<comments>https://mikiorbe.wordpress.com/2010/02/27/redondeando-en-java/#respond</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Fri, 26 Feb 2010 22:54:07 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Trucos]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=625</guid>

					<description><![CDATA[Si os habéis encontrado alguna vez con la necesidad de redondear un número en Java, habréis visto que no existe un método directo para hacerlo A veces se hace multiplicando pasando a entero y dividiendo, pero no es una forma fiable. La forma de hacerlo sería mediante el método setScale de la clase java.math.BigDecimal: Tenemos [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Si os habéis encontrado alguna vez con la necesidad de redondear un número en Java, habréis visto que no existe un método directo para hacerlo</p>
<p>A veces se hace multiplicando pasando a entero y dividiendo, pero no es una forma fiable.</p>
<p>La forma de hacerlo sería mediante el método <code>setScale</code> de la clase <code>java.math.BigDecimal</code>:</p>
<pre class="brush: java; title: ; notranslate">

public static double round(double value, int decimalDigits) {
	BigDecimal bd = new BigDecimal(value);
	bd = bd.setScale(decimalDigits, BigDecimal.ROUND_HALF_UP);
	return bd.doubleValue();
}

</pre>
<p>Tenemos varias opciones a la hora de redondear que podemos ver en la <a title="Javadoc de BigDecimal" href="http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html">documentación de BigDecimal</a>.</p>
<p>Espero que os ayude.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2010/02/27/redondeando-en-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">625</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>
	</item>
		<item>
		<title>Alerta de contenido no seguro en Internet Explorer</title>
		<link>https://mikiorbe.wordpress.com/2010/01/15/alerta-de-contenido-no-seguro-en-internet-explorer/</link>
					<comments>https://mikiorbe.wordpress.com/2010/01/15/alerta-de-contenido-no-seguro-en-internet-explorer/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Fri, 15 Jan 2010 19:06:08 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[Trucos]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=617</guid>

					<description><![CDATA[Estábamos desplegando una aplicación en un servidor seguro y al probar con Internet Explorer recibíamos en todas las páginas el siguiente mensaje. Este mensaje indica que en la respuesta a nuestra petición segura https se acceden algunas partes mediante el protocolo no seguro http. Esto es un riesgo de seguridad y por eso nos alerta. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Estábamos desplegando una aplicación en un servidor seguro y al probar con Internet Explorer recibíamos en todas las páginas el siguiente mensaje.</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png"><img loading="lazy" data-attachment-id="619" data-permalink="https://mikiorbe.wordpress.com/2010/01/15/alerta-de-contenido-no-seguro-en-internet-explorer/contenidonoseguro1/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png" data-orig-size="332,157" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="contenidoNoSeguro1" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png?w=332" class="aligncenter size-medium wp-image-619" title="contenidoNoSeguro1" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png?w=300&#038;h=141" alt="" width="300" height="141" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png?w=150 150w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png 332w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Este mensaje indica que en la respuesta a nuestra petición segura <a title="HTTPS en Wikipedia ES" href="http://es.wikipedia.org/wiki/HTTPS">https</a> se acceden algunas partes mediante el protocolo no seguro http. Esto es un riesgo de seguridad y por eso nos alerta.</p>
<p>Tras varias pruebas intentando localizar el contenido no seguro di con una gran <a title="Handling Mixed (HTTPS/HTTPS) Content" href="http://blogs.msdn.com/ieinternals/archive/2009/06/22/HTTPS-Mixed-Content-in-IE8.aspx">entrada de Eric Lawrence sobre el tema del contenido no seguro</a> (<a href="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif"><img loading="lazy" data-attachment-id="9" data-permalink="https://mikiorbe.wordpress.com/2008/05/28/presentando-cakephp/gb/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" data-orig-size="16,11" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Inglés" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=16" class="alignnone size-full wp-image-9" title="Inglés" src="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif?w=455" alt=""   /></a> en inglés) que me ayudó a solucionar el problema.</p>
<p>Por un lado desde el punto de vista del navegador podemos hacer que no nos aparezca la ventanita. Evidentemente no es la solución óptima el obligar a que el navegador no nos muestre un aviso de seguridad, pero para un aprieto (una demo por ejemplo) nos puede ayudar. Para ello abrimos las opciones del navegador («Herramientas-&gt;Opciones de Internet») y vamos a la pestaña de «Seguridad». En la parte de «Internet» pulsamos «Nivel personalizado&#8230;» y buscamos la opción de «Mostrar contenido mixto». Cambiamos de «Preguntar» a «Habilitar».</p>
<p><a href="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png"><img loading="lazy" data-attachment-id="620" data-permalink="https://mikiorbe.wordpress.com/2010/01/15/alerta-de-contenido-no-seguro-en-internet-explorer/contenidonoseguro2/" data-orig-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png" data-orig-size="360,70" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="contenidoNoSeguro2" data-image-description="" data-image-caption="" data-medium-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png?w=300" data-large-file="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png?w=360" class="aligncenter size-medium wp-image-620" title="contenidoNoSeguro2" src="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png?w=300&#038;h=58" alt="" width="300" height="58" srcset="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png?w=300 300w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png?w=150 150w, https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png 360w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Como desarrolladores debemos preocuparnos de que si nuestra aplicación va a ejecutarse bajo https nuestras páginas no llamen a contenido no cifrado. Para descubrir si hacemos peticiones http podemos utilizar el <a title="Web Developer para Firefox" href="https://addons.mozilla.org/es-ES/firefox/addon/60">Web Developer para Firefox</a> o una buena herramienta que también descubrí gracias al post mencionado anteriormente como es <a title="Fiddler" href="http://www.fiddler2.com/fiddler2/">Fiddler</a>.</p>
<p>En nuestro caso y tras ver que no hacíamos ninguna llamada http descubrimos que lo que ocurría es la posibilidad que señala Eric en su sitio. Parece ser que Internet Explorer marca como contenido no seguro una llamada a JavaScript del estilo:</p>
<p>&lt;br /&gt;<br />
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; id=&amp;quot;contentloadtag&amp;quot; src=&amp;quot;javascript:void(0)&amp;quot; &amp;gt;&lt;br /&gt;
</p>
<p>Con eliminar el parámetro src se solucionará el problema. Una de las librerías JavaScript que utilizábamos tenía una llamada de ese tipo.</p>
<p>Espero que os sea útil.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2010/01/15/alerta-de-contenido-no-seguro-en-internet-explorer/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">617</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro1.png?w=300" medium="image">
			<media:title type="html">contenidoNoSeguro1</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2008/05/gb.gif" medium="image">
			<media:title type="html">Inglés</media:title>
		</media:content>

		<media:content url="https://mikiorbe.wordpress.com/wp-content/uploads/2010/01/contenidonoseguro2.png?w=300" medium="image">
			<media:title type="html">contenidoNoSeguro2</media:title>
		</media:content>
	</item>
		<item>
		<title>Error en la comparación de String con la librería de tags de Struts2</title>
		<link>https://mikiorbe.wordpress.com/2009/12/17/error-en-la-comparacion-de-string-con-la-libreria-de-tags-de-struts2/</link>
					<comments>https://mikiorbe.wordpress.com/2009/12/17/error-en-la-comparacion-de-string-con-la-libreria-de-tags-de-struts2/#comments</comments>
		
		<dc:creator><![CDATA[Miguel]]></dc:creator>
		<pubDate>Thu, 17 Dec 2009 09:12:37 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Struts2]]></category>
		<category><![CDATA[Trucos]]></category>
		<guid isPermaLink="false">http://mikiorbe.wordpress.com/?p=610</guid>

					<description><![CDATA[Os voy a comentar un pequeño error que nos puede descolocar un poco cuando tratamos de comparar cadenas mediante la librería de etiquetas de Struts2 en nuestras páginas JSP. Si hacemos una comparación con Strings al estilo de: obtendremos el resultado esperado (mostrará el texto si nuestra propiedad vale «SI»), pero si la comparación es: [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Os voy a comentar un pequeño error que nos puede descolocar un poco cuando tratamos de comparar cadenas mediante la librería de etiquetas de <a title="Struts2" href="http://struts.apache.org/2.x/">Struts2</a> en nuestras <a title="JSP en Wikipedia ES" href="http://es.wikipedia.org/wiki/JavaServer_Pages">páginas JSP</a>.</p>
<p>Si hacemos una comparación con Strings al estilo de:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;s:if test=&quot;propiedad == 'SI'&quot;&gt;
  &lt;div&gt;Mostrar texto&lt;/div&gt;
&lt;/s:if&gt;
</pre>
<p>obtendremos el resultado esperado (mostrará el texto si nuestra propiedad vale «SI»), pero si la comparación es:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;s:if test=&quot;propiedad == 'S'&quot;&gt;
 &lt;div&gt;Mostrar texto&lt;/div&gt;
&lt;/s:if&gt;
</pre>
<p>veremos que aunque nuestra propiedad valga «S» no aparece el texto. Es decir, que cuando hacemos comparaciones de Strings de un sólo carácter nos falla. La responsable es la librería <a title="OGNL en Wikipedia ES" href="http://es.wikipedia.org/wiki/OGNL">OGNL</a> que evalúa las expresiones ya que al encontrar se un sólo carácter lo toma como un tipo Char y no un String.</p>
<p>Para solucionarlo nos basta cambiar las comillas:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;s:if test='propiedad == &quot;S&quot;'&gt;
  &lt;div&gt;Mostrar texto&lt;/div&gt;
&lt;/s:if&gt;
</pre>
<p>o bien escapar las comillas dobles:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;s:if test=&quot;propiedad == \&quot;S\&quot;&quot;&gt;
  &lt;div&gt;Mostrar texto&lt;/div&gt;
&lt;/s:if&gt;
</pre>
<p>Espero que le pueda servir a alguien.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mikiorbe.wordpress.com/2009/12/17/error-en-la-comparacion-de-string-con-la-libreria-de-tags-de-struts2/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">610</post-id>
		<media:content url="https://1.gravatar.com/avatar/a16fe3567f9a4621a44373f6a714c3b35d49baeddb687481c34bb2737b463168?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mikiorbe</media:title>
		</media:content>
	</item>
	</channel>
</rss>
