<?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/"
	>

<channel>
	<title>República I.T.</title>
	<atom:link href="http://www.republicait.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.republicait.com</link>
	<description>Progamación, Tecnología y mucho más...</description>
	<lastBuildDate>Thu, 25 Feb 2010 16:30:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Asignación de Permisos con Operadores Binarios</title>
		<link>http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/</link>
		<comments>http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 04:50:38 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[operadores binarios]]></category>
		<category><![CDATA[permisos]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=312</guid>
		<description><![CDATA[Introducción
En este post veremos como utilizar operaciones binarias para la asignación de permisos y la verificación de los mismos.
Un Poco de Historia
Números Binarios
Las operaciones realizadas por una computadora son hechas a base de los bit 1 y 0, cada número decimal puede ser representado en su respectivo número binario.
Asi por ejemplo vemos la siguiente tabla, [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En este post veremos como utilizar operaciones binarias para la asignación de permisos y la verificación de los mismos.</p>
<h3>Un Poco de Historia</h3>
<h4>Números Binarios</h4>
<p>Las operaciones realizadas por una computadora son hechas a base de los bit 1 y 0, cada número decimal puede ser representado en su respectivo número binario.<br />
Asi por ejemplo vemos la siguiente tabla, la cual usaremos para trabajar con los permisos:</p>
<table>
<tbody>
<tr>
<td></td>
<td>2<sup>4</sup></td>
<td>2<sup>3</sup></td>
<td>2<sup>2</sup></td>
<td>2<sup>1</sup></td>
<td>2<sup>0</sup></td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>4</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>8</td>
<td>0</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>16</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
<h4>Operadores Binarios</h4>
<ul>
<li><strong>Operador lógico AND (&amp;):</strong>El operador lógico AND compara si dos bits estan encendidos, osea si su valor es 1, si ambos bits estan encendidos el resultado sera 1, en caso contrario, el resultado sera 0.</li>
<li><strong>Operador lógico OR (|):</strong>El operador lógico OR compara si alguno de los bits se encuentran encedidos, si algunos de los bits esta encendido retorna 1, a diferencia del AND, el OR solo retorna 0 cuando ambos bits se encuentran apagados.</li>
<li><strong>Operador lógico NOT (~):</strong>El operador lógico NOT convierte el valor del bit actual a su valor opuesto, osea de 1 lo coloca en 0 y viceversa.</li>
</ul>
<h4><span id="more-312"></span>Tabla de la Verdad</h4>
<p>Sean A y B dos bits con el valor de 1 y 0 respectivamente, las tablas de verdad para los operadores lógicos serian las siguientes:<br />
<em>A=1, B=0</em></p>
<table>
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<td>AND (&amp;)</td>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>A</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>B</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
</td>
<td>
<table>
<tbody>
<tr>
<td>OR (|)</td>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>A</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>B</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
</table>
</td>
<td>
<table>
<tbody>
<tr>
<td></td>
<td></td>
<td>NOT (~)</td>
</tr>
<tr>
<td>A</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>B</td>
<td>0</td>
<td>1</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<h3>Los valores TRUE y FALSE en PHP</h3>
<p>En PHP la evulacion de que alguna condicion sea cierta o falsa es un poco complicada, técnicamente hablando, en PHP cualquiera expresion es cierta (TRUE) si el resultado final es <strong>DISTINTO</strong> de los siguientes valores:</p>
<ul>
<li>false</li>
<li>0 (cero entero)</li>
<li>0.0 (cero flotante)</li>
<li>La cadena &#8220;0&#8243;</li>
<li>Una cadena vacía</li>
<li>Un arreglo con cero elementos</li>
<li>NULL</li>
</ul>
<p>Para una mayor referencia, visita la documentación de PHP en linea</p>
<ul>
<li><a href="http://www.php.net/manual/en/language.types.boolean.php" target="_blank">PHP Booleans</a></li>
<li><a href="http://www.php.net/manual/en/types.comparisons.php" target="_blank">PHP type comparisions</a></li>
</ul>
<h3>Permisos y Operadores Binarios</h3>
<p>En base a los puntos previos de los operadores binarios y como PHP evalua los valores TRUE y FALSE, vamos a demostrar como se pueden asignar permisos de escritura (WRITE), edición (EDIT) y de eliminar (DELETE).</p>
<h4>Script PHP</h4>
<pre class="brush:php">&lt;?php
/**
* Asignacion de permisos utilizando operadores binarios
* WRITE		= 2 (0010 en binario)
* EDIT		= 4 (0100 en binario)
* DELETE	= 8 (1000 en binario)
*/
define('WRITE',	2);
define('EDIT',	4);
define('DELETE',8);

//Asignamos los permisos de WRITE y EDIT a la variable $perm
$perm = WRITE | EDIT; //el valor asignado es 0110 (operador or)

//Verificamos cada permiso
if($perm &amp; WRITE){ // 0110 &amp; 0010 = 0010
echo 'WRITE asignado&lt;br /&gt;';
}
if($perm &amp; EDIT){ // 0110 &amp; 0100 = 0100
echo 'EDIT asignado&lt;br /&gt;';
}
if($perm &amp; DELETE){ //0110 &amp; 1000 = 0000
echo 'DELETE asignado&lt;br /&gt;';
}

//Ahora verificamos la negacion de los permisos
//  $perm = 0110, ~$perm = 1001

if(~$perm &amp; WRITE){ // 1001 &amp; 0010 = 0000
echo 'WRITE no esta asignado&lt;br /&gt;';
}
if(~$perm &amp; EDIT){ // 1001 &amp; 0100 = 0000
echo 'EDIT no esta asignado&lt;br /&gt;';
}
if(~$perm &amp; DELETE){ // 1001 &amp; 1000 = 1000
echo 'DELETE no esta asignado&lt;br /&gt;';
}
?&gt;</pre>
<p>Resultado al ejecutar el script:<br />
<code><br />
WRITE asignado<br />
EDIT asignado<br />
DELETE no esta asignado<br />
</code></p>
<blockquote><p>Nota: En PHP se hace facil este uso dado que la cadena &#8220;0000&#8243; al final es evaluada a false, mientras que en las otras cadenas seran evaluadas a true dado que tiene al menos un valor que la hace distinto de cero.</p></blockquote>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="historia de operadores binarias">historia de operadores binarias</a></li><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="operadores asignado en php">operadores asignado en php</a></li><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="operadores binarios and or not">operadores binarios and or not</a></li><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="OPERADORES BINARIOS EN BASES DE DATOS">OPERADORES BINARIOS EN BASES DE DATOS</a></li><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="permisos binarios">permisos binarios</a></li><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="permisos en PHP con numeros binarios">permisos en PHP con numeros binarios</a></li><li><a href="http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/" title="tabla de verdad de los operadores logicos de dos bits">tabla de verdad de los operadores logicos de dos bits</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 2.088 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2010/01/09/asignacion-de-permisos-con-operadores-binarios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detectar Acceso Móvil con ASP</title>
		<link>http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/</link>
		<comments>http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 21:44:36 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[móvil]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=296</guid>
		<description><![CDATA[Introducción
Este es un pequeño artículo de como detectar si se esta accediendo desde un dispositivo movil con un script ASP. La idea general es poder utilizar el script desde cualquier servidor que soporte la ejecucion de paginas ASP y/o ASP .Net.
Nota: Este script esta basado en: http://www.codeproject.com/KB/aspnet/mobiledetect.aspx
A diferencia del script original, este script remueve la [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>Este es un pequeño artículo de como detectar si se esta accediendo desde un dispositivo movil con un script ASP. La idea general es poder utilizar el script desde cualquier servidor que soporte la ejecucion de paginas ASP y/o ASP .Net.</p>
<blockquote><p><strong>Nota:</strong> Este script esta basado en: <a href="http://www.codeproject.com/KB/aspnet/mobiledetect.aspx" target="_blank">http://www.codeproject.com/KB/aspnet/mobiledetect.aspx</a></p>
<p>A diferencia del script original, este script remueve la verificación por la propiedad IsMobileDevice lo que impide que se ejecute en versiones anteriores del .Net Framework</p></blockquote>
<h3><span id="more-296"></span>Script Completo:</h3>
<pre class="brush:csharp">&lt;%@ Page Language="C#" AutoEventWireup="true" ContentType="text/plain" %&gt;
&lt;script type="text/C#" runat="server"&gt;
void Page_Load(object sender, EventArgs e)
{
    // Variable para almacenar el resultado de la deteccion
    bool isMobile = false;

    //Obtenemos el contexto actual
    HttpContext context = HttpContext.Current;

    //Variable que almacena la firma del navegador
    string userAgent = context.Request.ServerVariables["HTTP_USER_AGENT"];

    //Verificamos primero por la variable HTTP_X_WAP_PROFILE
    if (context.Request.ServerVariables["HTTP_X_WAP_PROFILE"] != null)
    {
        isMobile = true;
    }

    //Procedemos a verificar la firma del navegador
    else if (userAgent != null)
    {
        //Lista posible de dispositivos
        string[] mobiles =
        {
            "midp", "j2me", "avant", "docomo",
            "novarra", "palmos", "palmsource",
            "240x320", "opwv", "chtml",
            "pda", "windows ce", "mmp/",
            "blackberry", "mib/", "symbian",
            "wireless", "nokia", "hand", "mobi",
            "phone", "cdm", "up.b", "audio",
            "SIE-", "SEC-", "samsung", "HTC",
            "mot-", "mitsu", "sagem", "sony"
            , "alcatel", "lg", "eric", "vx",
            "NEC", "philips", "mmm", "xx",
            "panasonic", "sharp", "wap", "sch",
            "rover", "pocket", "benq", "java",
            "pt", "pg", "vox", "amoi",
            "bird", "compal", "kg", "voda",
            "sany", "kdd", "dbt", "sendo",
            "sgh", "gradi", "jb", "dddi",
            "moto", "iphone"
        };

        //Recorremos el arreglo de los dispositivos
        // y verificamos vs la firma del navegador
        foreach (string mobile in mobiles)
        {
            if (userAgent.ToLower().IndexOf(mobile.ToLower()) != -1)
            {
                isMobile = true;
                break;
            }
        }
    }
    //Imprimimos el resultado
    Response.Write("UserAgent: " + userAgent.ToLower() + "\n");
    Response.Write("IsMobile: " + isMobile + "\n");
    Response.Write(".Net Framework: "+Environment.Version.ToString());
}
&lt;/script&gt;</pre>
<p><strong>Muestra de la salida obtenida</strong></p>
<p><code>UserAgent: mozilla/5.0 (windows; u; windows nt 6.1; es-es; rv:1.9.1.5) gecko/20091102 firefox/3.5.5 (.net clr 3.5.30729)<br />
IsMobile: False<br />
.Net Framework: 2.0.50727.4927</code></p>
<blockquote><p><strong>Nota:</strong> En este ejemplo utilize el metodo indexOf para comprobar el userAgent vs el dispositivo, como sugerencia, se puede utilizar expresiones regulares para hacer el script mas completo.</p></blockquote>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="asp net identificar dispositivo">asp net identificar dispositivo</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar acceso desde sipositivo mobil">detectar acceso desde sipositivo mobil</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar dispositivos moviles con asp">detectar dispositivos moviles con asp</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar pantalla de navegador movil">detectar pantalla de navegador movil</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar dispositivo movil con ASP NET">detectar dispositivo movil con ASP NET</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="ASP net Detectar Navegador Mobil">ASP net Detectar Navegador Mobil</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar iphone en asp net">detectar iphone en asp net</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar si es un dispositivo movil desde aps">detectar si es un dispositivo movil desde aps</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="detectar si el dispositivo es movil visita la web usando asp">detectar si el dispositivo es movil visita la web usando asp</a></li><li><a href="http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/" title="asp detectar navegador movil">asp detectar navegador movil</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 5.857 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/11/10/detectar-acceso-movil-asp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Captura de pantalla de una WEB utilizando Wordpress</title>
		<link>http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/</link>
		<comments>http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 14:45:45 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=286</guid>
		<description><![CDATA[En este artículo veremos como tomar el screenshot de página WEB utilizando el servicio de toma de pantallas de Wordpress.
La URL donde se encuentra este servicio es:
http://s.wordpress.com/mshots/v1/
El formato para indicar cual es la página WEB de donde capturar la pantalla es:
http://s.wordpress.com/mshots/v1/{DIRECCION_URL}?w={WIDTH}
Donde {DIRECCION_URL} es la dirección URL codificada y {WIDTH} representa el tamaño de la imagen [...]]]></description>
			<content:encoded><![CDATA[<p>En este artículo veremos como tomar el screenshot de página WEB utilizando el servicio de toma de pantallas de Wordpress.</p>
<p>La URL donde se encuentra este servicio es:</p>
<pre>http://s.wordpress.com/mshots/v1/</pre>
<p>El formato para indicar cual es la página WEB de donde capturar la pantalla es:</p>
<pre>http://s.wordpress.com/mshots/v1/{DIRECCION_URL}?w={WIDTH}</pre>
<p>Donde <code>{DIRECCION_URL}</code> es la dirección URL codificada y <code>{WIDTH}</code> representa el tamaño de la imagen que deseamos generar, asi por ejemplo, si deseamos tomar un screenshot de Google cuyo tamaño sea de 500px el formato seria:</p>
<pre>http://s.wordpress.com/mshots/v1/http%3A%2F%2Fgoogle.com%2F?w=500</pre>
<p>Este servicio lo podemos integrar desde nuestro propio sitio WEB mediante un script PHP el cual reciba como parametros la URL y el tamaño de la imagen.<span id="more-286"></span></p>
<p>Ejemplo:</p>
<pre class="brush:php">&lt;?php
//Direccion URL del servicio de wordpress
define('SERVICE_URL','http://s.wordpress.com/mshots/v1/');

/**
* Funcion para tomar screenshots utilizando el servicio de wordpress
* @param string $url
* @param int $width
* @return string
*/
function takeScreenshot($url,$width)
{
    $url = urlencode($url);
    $request = SERVICE_URL."{$url}?w={$width}";
    return $request;
}
?&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Captura de Pantalla de una WEB&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;img src="&lt;?php echo takeScreenshot('http://www.google.com',500); ?&gt;" /&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="webs mShots">webs mShots</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="capturar pantalla con php">capturar pantalla con php</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="captura de pantalla de una web">captura de pantalla de una web</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="captura web plugin wordpress">captura web plugin wordpress</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="como captura imagen web con GWT">como captura imagen web con GWT</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="mshots">mshots</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="pantallazo php">pantallazo php</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="php capturas web">php capturas web</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 4.746 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>¿Cómo tomar el screenshot de una WEB?</title>
		<link>http://www.republicait.com/2009/09/20/tomar-screenshot-web/</link>
		<comments>http://www.republicait.com/2009/09/20/tomar-screenshot-web/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 15:30:44 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Configuración]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[X11]]></category>
		<category><![CDATA[Xvfb]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=264</guid>
		<description><![CDATA[Introducción
En este post veremos como tomar un screenshot de una página web utilizando la linea de comandos de Linux.
Los requerimientos necesarios son:

Sistema operativo Linux
Framebuffer Virtual del Servidor X (Xvfb)
Navegador Firefox
ImageMagick

Xvfb
En el Sistema Windows X, Xvfb es un servidor X11 que realiza todas las operaciones gráficas en memoria sin necesidad de utilizar una pantalla. Con esta [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En este post veremos como tomar un screenshot de una página web utilizando la linea de comandos de Linux.<br />
Los requerimientos necesarios son:</p>
<ul>
<li>Sistema operativo Linux</li>
<li>Framebuffer Virtual del Servidor X (Xvfb)</li>
<li>Navegador Firefox</li>
<li>ImageMagick</li>
</ul>
<h3>Xvfb</h3>
<p>En el Sistema Windows X, Xvfb es un servidor X11 que realiza todas las operaciones gráficas en memoria sin necesidad de utilizar una pantalla. Con esta herramienta vamos a crear una especie de pantalla virtual para iniciar Firefox en ella y luego tomar el screenshot.<span id="more-264"></span></p>
<p>En la siguiente imagen se muestra como installar Xvfb</p>
<div id="attachment_267" class="wp-caption aligncenter" style="width: 592px"><a href="http://www.republicait.com/wp-content/uploads/2009/09/xvfb-install.png"><img class="size-full wp-image-267  " title="xvfb-install" src="http://www.republicait.com/wp-content/uploads/2009/09/xvfb-install.png" alt="Instalando Xvfb" width="582" height="350" /></a><p class="wp-caption-text">Instalando Xvfb</p></div>
<p>Una vez instalado, procedemos a editar el siguiente archivo <code>/etc/dbus-1/system.d/xorg-server.conf</code> para poder arrancar nuesta pantalla virtual</p>
<p>El contenido actual es:</p>
<pre class="brush:xml">&lt;!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"&gt;
&lt;busconfig&gt;
 &lt;policy context="default"&gt;
 &lt;allow own="org.x.config.display0"/&gt;
 &lt;allow send_destination="org.x.config.display0"/&gt;
 &lt;allow send_interface="org.x.config.display0"/&gt;
 &lt;allow own="org.x.config.display1"/&gt;
 &lt;allow send_destination="org.x.config.display1"/&gt;
 &lt;allow send_interface="org.x.config.display1"/&gt;
 &lt;/policy&gt;
&lt;/busconfig&gt;</pre>
<p>Agregamos la pantalla numero 2:</p>
<pre class="brush:xml">&lt;!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"&gt;
&lt;busconfig&gt;
 &lt;policy context="default"&gt;
 &lt;allow own="org.x.config.display0"/&gt;
 &lt;allow send_destination="org.x.config.display0"/&gt;
 &lt;allow send_interface="org.x.config.display0"/&gt;
 &lt;allow own="org.x.config.display1"/&gt;
 &lt;allow send_destination="org.x.config.display1"/&gt;
 &lt;allow send_interface="org.x.config.display1"/&gt;
 &lt;allow own="org.x.config.display2"/&gt;
 &lt;allow send_destination="org.x.config.display2"/&gt;
 &lt;allow send_interface="org.x.config.display2"/&gt;
 &lt;/policy&gt;
&lt;/busconfig&gt;</pre>
<p>Ahora el siguiente paso es iniciar nuestra pantalla virtual, ejecutamos el siguiente commando:</p>
<p><code>$ Xvfb :2 -ac -screen :0 1024x768x24 2&gt;&amp;1 &gt; /dev/null &amp;</code></p>
<p>Esto nos debe iniciar nuestro servicio de Xvfb, para verificar que se esta ejecutando ejecutamos el siguiente comando:</p>
<p><code>$ ps auxx | grep Xvfb</code></p>
<h3>Firefox</h3>
<p>El siguiente paso ahora es iniciar Firefox en nuestra pantalla virtual y como parametro le pasamos la URL que debe cargar</p>
<p><code>$ firefox --display=:2 http://www.google.com -silent -nosplash -fullscreen 2&gt;&amp;1 &gt; /dev/null &amp;</code></p>
<p>Verificamos si en efecto se creo el proceso:</p>
<p><code>$ ps auxx | grep firefox</code></p>
<p>Luego procedemos a tomar el screenshot con el siguiente comando:</p>
<p><code>$ xwd -root -out -display :2 screen.xwd</code></p>
<h3>ImageMagick</h3>
<p>ImageMagick es una herramienta para manipular imagenes mediante linea de comandos.</p>
<p>Procedemos a installar ImageMagick</p>
<div id="attachment_272" class="wp-caption aligncenter" style="width: 602px"><a href="http://www.republicait.com/wp-content/uploads/2009/09/install-imagemagick.png"><img class="size-full wp-image-272 " title="install-imagemagick" src="http://www.republicait.com/wp-content/uploads/2009/09/install-imagemagick.png" alt="Instalando ImageMagick" width="592" height="367" /></a><p class="wp-caption-text">Instalando ImageMagick</p></div>
<p>Luego convertimos la imagen capturada a otro formato, como PNG por ejemplo.</p>
<p><code>$ convert screen.xwd screen.png</code></p>
<p>Resultado Final:</p>
<p style="text-align: center;">
<div id="attachment_279" class="wp-caption aligncenter" style="width: 594px"><a href="http://www.republicait.com/wp-content/uploads/2009/09/screen.png"><img class="size-full wp-image-279  " title="screen" src="http://www.republicait.com/wp-content/uploads/2009/09/screen.png" alt="Resultado del Screenshot" width="584" height="328" /></a><p class="wp-caption-text">Resultado del Screenshot</p></div>
<p>Para finalizar, hay que cerrar los procesos de firefox y Xvfb</p>
<p><code>$ kill `pidof firefox`</code></p>
<p><code>$ kill `pidof Xvfb`</code></p>
<h3>Script Completo</h3>
<p>A continuación un pequeño script con el código para tomar el screenshot, como parámetro se le pasa la URL:</p>
<pre class="brush:shell">DISPLAY_NUMBER=:2
Xvfb $DISPLAY_NUMBER -ac -screen :0 1024x768x24 2&gt;&amp;1 &gt; /dev/null &amp;
sleep 10
firefox --display=$DISPLAY_NUMBER $1 -silent -nosplash -fullscreen 2&gt;&amp;1 &gt; /dev/null &amp;
sleep 10
xwd -root -out -display $DISPLAY_NUMBER screen.xwd
convert screen.xwd screen.png
rm screen.xwd
kill `pidof firefox`
kill `pidof Xvbf`
echo "[DONE]"</pre>
<p>Para ejecutarlo:</p>
<p><code>$ ./take-screenshot http://www.google.com</code></p>
<h3>Notas Finales</h3>
<p>Como firefox se esta ejecutando en una pantalla virtual y no lo estamos cerrando de forma correcta (matando el proceso), es necesario eliminar el archivo que pide la restauracion de firefox.</p>
<p><code>$ rm /home/{USER_HOME}/.mozilla/firefox/{PROFILE_NAME}.default/sessionstore.js</code></p>
<p>Donde <code>{USER_HOME}</code> es el usuario donde se esta ejecutando firefox y <code>{PROFILE_NAME}</code> es el nombre del profile que se creo cuando se ejecuto firefox.</p>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="comando para tomar screen shot">comando para tomar screen shot</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="Xorg/X11 framebuffer server (Xvfb)">Xorg/X11 framebuffer server (Xvfb)</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="website screenshot linux">website screenshot linux</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="tomar un screenshot">tomar un screenshot</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="tomar screenshots prototype">tomar screenshots prototype</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="start firefox show screenshots web">start firefox show screenshots web</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="screenshot páginas web línea de comando">screenshot páginas web línea de comando</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="screenshot javascript">screenshot javascript</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="root take screenshot user DISPLAY">root take screenshot user DISPLAY</a></li><li><a href="http://www.republicait.com/2009/09/20/tomar-screenshot-web/" title="linux take snapshot webpage">linux take snapshot webpage</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 5.301 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/09/20/tomar-screenshot-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Object Model (POM)</title>
		<link>http://www.republicait.com/2009/07/24/project-object-model/</link>
		<comments>http://www.republicait.com/2009/07/24/project-object-model/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 20:49:23 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Administración de Proyectos]]></category>
		<category><![CDATA[Configuración]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[pom]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=232</guid>
		<description><![CDATA[Introducción
El POM es un archivo XML que representa la estructura de un proyecto Maven, este archivo lleva por nombre pom.xml, actualmente la versión soportada por Maven es la 4.0.
Se puede decir que un archivo POM esta compuesto de los siguientes elementos o secciones:

Elementos básicos.
Información del proyecto.
Módulos.
Herencia.
Dependencias.
Propiedades.
Configuración de construcción del proyecto.
Configuración del entorno de construcción.

Entorno del [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>El POM es un archivo XML que representa la estructura de un proyecto Maven, este archivo lleva por nombre pom.xml, actualmente la versión soportada por Maven es la 4.0.</p>
<p>Se puede decir que un archivo POM esta compuesto de los siguientes elementos o secciones:</p>
<ol>
<li>Elementos básicos.</li>
<li>Información del proyecto.</li>
<li>Módulos.</li>
<li>Herencia.</li>
<li>Dependencias.</li>
<li>Propiedades.</li>
<li>Configuración de construcción del proyecto.</li>
<li>Configuración del entorno de construcción.
<ul>
<li>Entorno del proyecto.</li>
<li>Entorno de Maven.</li>
</ul>
</li>
</ol>
<p><span id="more-232"></span></p>
<pre>&lt;project&gt;
 &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

 &lt;!-- Elementos básicos --&gt;
 &lt;groupId&gt;...&lt;/groupId&gt;
 &lt;artifactId&gt;...&lt;/artifactId&gt;
 &lt;version&gt;...&lt;/version&gt;
 &lt;packaging&gt;...&lt;/packaging&gt;

 &lt;!-- Información del proyecto --&gt;
 &lt;name&gt;...&lt;/name&gt;
 &lt;description&gt;...&lt;/description&gt;
 &lt;url&gt;...&lt;/url&gt;
 &lt;inceptionYear&gt;...&lt;/inceptionYear&gt;
 &lt;licenses&gt;...&lt;/licenses&gt;
 &lt;organization&gt;...&lt;/organization&gt;
 &lt;developers&gt;...&lt;/developers&gt;
 &lt;contributors&gt;...&lt;/contributors&gt;

 &lt;!-- Módulos --&gt;
 &lt;modules&gt;...&lt;/modules&gt;

 &lt;!-- Herencia --&gt;
 &lt;parent&gt;...&lt;/parent&gt;
 &lt;dependencyManagement&gt;...&lt;/dependencyManagement&gt;

 &lt;!-- Dependencias --&gt;
 &lt;dependencies&gt;...&lt;/dependencies&gt;

 &lt;!-- Propiedades --&gt;
 &lt;properties&gt;...&lt;/properties&gt;

 &lt;!-- Configuración de construcción del proyecto --&gt;
 &lt;build&gt;...&lt;/build&gt;
 &lt;reporting&gt;...&lt;/reporting&gt;

 &lt;!-- Entorno del proyecto --&gt;
 &lt;issueManagement&gt;...&lt;/issueManagement&gt;
 &lt;ciManagement&gt;...&lt;/ciManagement&gt;
 &lt;mailingLists&gt;...&lt;/mailingLists&gt;
 &lt;scm&gt;...&lt;/scm&gt;

 &lt;!-- Entorno de Maven --&gt;
 &lt;prerequisites&gt;...&lt;/prerequisites&gt;
 &lt;repositories&gt;...&lt;/repositories&gt;
 &lt;pluginRepositories&gt;...&lt;/pluginRepositories&gt;
 &lt;distributionManagement&gt;...&lt;/distributionManagement&gt;
 &lt;profiles&gt;...&lt;/profiles&gt;

&lt;/project&gt;</pre>
<h3>Definiciones</h3>
<p><strong>groupId:</strong><br />
Es el nombre del paquete o grupo al que pertenece el proyecto, como por ejemplo <code>com.csd-web.utils</code></p>
<p><strong>artifactId:</strong><br />
Es el nombre del proyecto o del módulo a desarollar, por ejemplo <code>logger</code></p>
<p><strong>version:</strong><br />
Es la versión actual del módulo o proyecto, por ejemplo <code>0.1</code></p>
<p><strong>modules:</strong><br />
Es una lista de los módulos que componen el proyecto, esto se utiliza cuando se trata de  un proyecto multimódulo.</p>
<p><strong>parent:</strong><br />
Esta etiqueta se utiliza si nuestro proyecto pertenece a un proyecto padre del cual debe heredar ciertas características, todos los proyectos tienen como padre SuperPOM por defecto</p>
<p><strong>dependencyManagement:</strong><br />
En esta etiqueta se indican cuales seran las dependencias de los proyectos hijos que deben heredar del POM padre.</p>
<p><strong>dependencies:</strong><br />
Aquí se especifican todas las dependencias desde otros proyectos externos para que Maven los incluya en el momento de construir el proyecto.</p>
<p><strong>properties:</strong><br />
Son las propiedades o variables que se pueden definir a la hora de la construcción del proyecto.</p>
<h3>Ejemplo de un POM</h3>
<p>Aqui les muestro el archivo POM del proyecto <a title="SLF4J" href="http://www.slf4j.org" target="_blank">SLF4J</a></p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd"&gt;

 &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

 &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
 &lt;artifactId&gt;slf4j-parent&lt;/artifactId&gt;
 &lt;version&gt;1.5.8&lt;/version&gt;

 &lt;packaging&gt;pom&lt;/packaging&gt;
 &lt;name&gt;SLF4J&lt;/name&gt;

 &lt;url&gt;http://www.slf4j.org&lt;/url&gt;

 &lt;organization&gt;
 &lt;name&gt;QOS.ch&lt;/name&gt;
 &lt;url&gt;http://www.qos.ch&lt;/url&gt;
 &lt;/organization&gt;
 &lt;inceptionYear&gt;2005&lt;/inceptionYear&gt;

 &lt;properties&gt;
 &lt;/properties&gt;

 &lt;modules&gt;
 &lt;module&gt;slf4j-api&lt;/module&gt;
 &lt;module&gt;slf4j-simple&lt;/module&gt;
 &lt;module&gt;slf4j-nop&lt;/module&gt;
 &lt;module&gt;slf4j-jdk14&lt;/module&gt;
 &lt;module&gt;slf4j-log4j12&lt;/module&gt;
 &lt;module&gt;slf4j-jcl&lt;/module&gt;
 &lt;module&gt;slf4j-ext&lt;/module&gt;
 &lt;module&gt;jcl-over-slf4j&lt;/module&gt;
 &lt;module&gt;jcl104-over-slf4j&lt;/module&gt;
 &lt;module&gt;log4j-over-slf4j&lt;/module&gt;
 &lt;module&gt;jul-to-slf4j&lt;/module&gt;
 &lt;module&gt;integration&lt;/module&gt;
 &lt;module&gt;slf4j-site&lt;/module&gt;
 &lt;module&gt;slf4j-migrator&lt;/module&gt;
 &lt;/modules&gt;

 &lt;dependencies&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;junit&lt;/groupId&gt;
 &lt;artifactId&gt;junit&lt;/artifactId&gt;
 &lt;version&gt;3.8.1&lt;/version&gt;
 &lt;scope&gt;test&lt;/scope&gt;
 &lt;/dependency&gt;
 &lt;/dependencies&gt;

 &lt;dependencyManagement&gt;
 &lt;dependencies&gt;

 &lt;dependency&gt;
 &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
 &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
 &lt;version&gt;${project.version}&lt;/version&gt;
 &lt;/dependency&gt;

 &lt;dependency&gt;
 &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
 &lt;artifactId&gt;slf4j-jdk14&lt;/artifactId&gt;
 &lt;version&gt;${project.version}&lt;/version&gt;
 &lt;/dependency&gt;

 &lt;dependency&gt;
 &lt;groupId&gt;log4j&lt;/groupId&gt;
 &lt;artifactId&gt;log4j&lt;/artifactId&gt;
 &lt;version&gt;1.2.14&lt;/version&gt;
 &lt;/dependency&gt;

 &lt;/dependencies&gt;
 &lt;/dependencyManagement&gt;

 &lt;build&gt;
 &lt;resources&gt;
 &lt;resource&gt;
 &lt;directory&gt;src/main/resources&lt;/directory&gt;
 &lt;filtering&gt;true&lt;/filtering&gt;
 &lt;/resource&gt;
 &lt;/resources&gt;

 &lt;plugins&gt;
 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
 &lt;configuration&gt;
 &lt;source&gt;1.3&lt;/source&gt;
 &lt;target&gt;1.3&lt;/target&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
 &lt;configuration&gt;
 &lt;forkMode&gt;once&lt;/forkMode&gt;
 &lt;reportFormat&gt;plain&lt;/reportFormat&gt;
 &lt;trimStackTrace&gt;false&lt;/trimStackTrace&gt;
 &lt;excludes&gt;
 &lt;exclude&gt;**/AllTest.java&lt;/exclude&gt;
 &lt;exclude&gt;**/PackageTest.java&lt;/exclude&gt;
 &lt;/excludes&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;        

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
 &lt;executions&gt;
 &lt;execution&gt;
 &lt;phase&gt;package&lt;/phase&gt;
 &lt;goals&gt;
 &lt;goal&gt;jar&lt;/goal&gt;
 &lt;/goals&gt;
 &lt;/execution&gt;
 &lt;/executions&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;
 &lt;configuration&gt;
 &lt;aggregate&gt;true&lt;/aggregate&gt;
 &lt;excludePackageNames&gt;org.slf4j.migrator:org.slf4j.migrator.*&lt;/excludePackageNames&gt;
 &lt;links&gt;
 &lt;link&gt;

http://java.sun.com/j2se/1.5.0/docs/api

 &lt;/link&gt;
 &lt;/links&gt;
 &lt;groups&gt;
 &lt;group&gt;
 &lt;title&gt;SLF4J packages&lt;/title&gt;
 &lt;packages&gt;org.slf4j:org.slf4j.*&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;SLF4J extensions&lt;/title&gt;
 &lt;packages&gt;org.slf4j.profiler:org.slf4j.ext:org.slf4j.instrumentation:org.slf4j.agent&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;Jakarta Commons Logging packages&lt;/title&gt;
 &lt;packages&gt;org.apache.commons.*&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;Apache log4j&lt;/title&gt;
 &lt;packages&gt;org.apache.log4j&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;java.util.logging (JUL) to SLF4J bridge&lt;/title&gt;
 &lt;packages&gt;org.slf4j.bridge&lt;/packages&gt;
 &lt;/group&gt;

 &lt;/groups&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;/plugins&gt;

 &lt;/build&gt;

 &lt;profiles&gt;
 &lt;profile&gt;
 &lt;id&gt;skipTests&lt;/id&gt;
 &lt;properties&gt;
 &lt;maven.test.skip&gt;true&lt;/maven.test.skip&gt;
 &lt;/properties&gt;
 &lt;/profile&gt;
 &lt;profile&gt;
 &lt;id&gt;osgi&lt;/id&gt;
 &lt;modules&gt;
 &lt;module&gt;osgi-over-slf4j&lt;/module&gt;
 &lt;module&gt;slf4j-osgi-test-bundle&lt;/module&gt;
 &lt;module&gt;slf4j-osgi-integration-test&lt;/module&gt;
 &lt;/modules&gt;

 &lt;repositories&gt;
 &lt;repository&gt;
 &lt;id&gt;m2apache.snapshots&lt;/id&gt;
 &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
 &lt;releases&gt;
 &lt;enabled&gt;false&lt;/enabled&gt;
 &lt;/releases&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/repository&gt;

 &lt;repository&gt;
 &lt;id&gt;springframework.org&lt;/id&gt;
 &lt;name&gt;Springframework Maven SNAPSHOT Repository&lt;/name&gt;
 &lt;url&gt;http://static.springframework.org/maven2-snapshots/&lt;/url&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/repository&gt;

 &lt;/repositories&gt;

 &lt;pluginRepositories&gt;
 &lt;pluginRepository&gt;
 &lt;id&gt;apache.snapshots&lt;/id&gt;
 &lt;name&gt;Apache Snapshot Plugin Repository&lt;/name&gt;
 &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
 &lt;releases&gt;
 &lt;enabled&gt;false&lt;/enabled&gt;
 &lt;/releases&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/pluginRepository&gt;
 &lt;/pluginRepositories&gt;

 &lt;/profile&gt;
 &lt;/profiles&gt;

 &lt;pluginRepositories&gt;
 &lt;pluginRepository&gt;
 &lt;id&gt;apache.snapshots&lt;/id&gt;
 &lt;name&gt;Apache Snapshot Plugin Repository&lt;/name&gt;
 &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
 &lt;releases&gt;
 &lt;enabled&gt;false&lt;/enabled&gt;
 &lt;/releases&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/pluginRepository&gt;
 &lt;/pluginRepositories&gt;

 &lt;reporting&gt;
 &lt;plugins&gt;
 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-site-plugin&lt;/artifactId&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-project-info-reports-plugin&lt;/artifactId&gt;
 &lt;reportSets&gt;
 &lt;reportSet&gt;&lt;reports/&gt;&lt;/reportSet&gt;
 &lt;/reportSets&gt;
 &lt;/plugin&gt;        

 &lt;plugin&gt;
 &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
 &lt;version&gt;2.1&lt;/version&gt;
 &lt;configuration&gt;
 &lt;descriptors&gt;
 &lt;descriptor&gt;
 src/main/assembly/source.xml
 &lt;/descriptor&gt;
 &lt;/descriptors&gt;
 &lt;finalName&gt;slf4j-${project.version}&lt;/finalName&gt;
 &lt;appendAssemblyId&gt;false&lt;/appendAssemblyId&gt;
 &lt;outputDirectory&gt;target/site/dist/&lt;/outputDirectory&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-jxr-plugin&lt;/artifactId&gt;
 &lt;reportSets&gt;
 &lt;reportSet&gt;
 &lt;reports&gt;
 &lt;report&gt;jxr&lt;/report&gt;
 &lt;report&gt;test-jxr&lt;/report&gt;
 &lt;/reports&gt;
 &lt;/reportSet&gt;
 &lt;/reportSets&gt;
 &lt;configuration&gt;
 &lt;aggregate&gt;true&lt;/aggregate&gt;
 &lt;javadocDir&gt;target/site/api/&lt;/javadocDir&gt;
 &lt;linkJavadoc&gt;true&lt;/linkJavadoc&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;/plugins&gt;

 &lt;/reporting&gt;

 &lt;scm&gt;
 &lt;connection&gt;scm:svn:http://svn.slf4j.org/repos/slf4j/trunk&lt;/connection&gt;
 &lt;developerConnection&gt;scm:svn:https://svn.slf4j.org/repos/slf4j/trunk&lt;/developerConnection&gt;
 &lt;url&gt;http://svn.slf4j.org/viewvc/slf4j/trunk/&lt;/url&gt;
 &lt;/scm&gt;

 &lt;distributionManagement&gt;
 &lt;site&gt;
 &lt;id&gt;pixie&lt;/id&gt;
 &lt;url&gt;scp://pixie/var/www/www.slf4j.org/htdocs/&lt;/url&gt;
 &lt;/site&gt;

 &lt;repository&gt;
 &lt;id&gt;pixie&lt;/id&gt;
 &lt;url&gt;scp://pixie/var/mvnrepo/&lt;/url&gt;
 &lt;/repository&gt;

 &lt;/distributionManagement&gt;

&lt;/project&gt;</pre>
<h3>Enlaces Externos</h3>
<p>Algunos enlaces en los cuales puedes encontrar una referencia mas completa acerca de los archivos POM</p>
<ul>
<li><a title="Project Object Model (POM) de Maven" href="http://www.elholgazan.com/2007/08/project-object-model-pom-de-maven.html" target="_blank">Project Object Model (POM) de Maven</a></li>
<li><a title="The Maven 2 POM demystified" href="http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html" target="_blank">The Maven 2 POM demystified</a></li>
<li><a title="Introduction to the POM" href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html" target="_blank">Introduction to the POM</a></li>
</ul>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="pom acceso a properties">pom acceso a properties</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="Project Object Model">Project Object Model</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="Project Object Model (POM)">Project Object Model (POM)</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="project pom">project pom</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="proyecto multimódulo en maven">proyecto multimódulo en maven</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 22.988 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/07/24/project-object-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHING</title>
		<link>http://www.republicait.com/2009/02/24/phing/</link>
		<comments>http://www.republicait.com/2009/02/24/phing/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 01:07:26 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Configuración]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[builders]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=171</guid>
		<description><![CDATA[






Introducción
PHING (PHing Is Not GNU make), es una herramienta basada en el constructor (builder) de aplicaciones Java, Apache Ant, con la diferencia de que PHING es para construir aplicaciones escritas en PHP.
La estructura de la aplicación se describe en un archivo XML llamado build.xml, en este archivo podemos encontrar el nombre de la aplicación a [...]]]></description>
			<content:encoded><![CDATA[<h3 style="text-align: justify;">
<div class="mceTemp mceIEcenter">
<dl id="attachment_172" class="wp-caption aligncenter" style="width: 221px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-172" title="phing logo" src="http://www.republicait.com/wp-content/uploads/2009/02/logo.png" alt="phing logo" width="211" height="74" /></dt>
</dl>
</div>
</h3>
<h3>Introducción</h3>
<p style="text-align: justify;">PHING (<strong>PH</strong>ing <strong>I</strong>s <strong>N</strong>ot <strong>G</strong>NU make), es una herramienta basada en el constructor (builder) de aplicaciones Java, <a href="http://ant.apache.org/" target="_blank">Apache Ant</a>, con la diferencia de que PHING es para construir aplicaciones escritas en PHP.</p>
<p style="text-align: justify;">La estructura de la aplicación se describe en un archivo XML llamado <code>build.xml</code>, en este archivo podemos encontrar el nombre de la aplicación a construir, una descripción de la misma, la carpeta donde se encuentra nuestro código fuente, la carpeta de destino que contendrá la última versión de la aplicación y las tareas (tasks) que este debe ejecutar.</p>
<p style="text-align: justify;">Esta herramienta es muy útil, por lo general, cuando se tiene una ruta  específica de un conjunto de librerías de utilidades que pueden formar parte de cualquier aplicación. Se puede hacer referencia a esta ruta desde su IDE de PHP, pero luego, tenie que asegurarse de copiarla cuando ya tiene su producto final.</p>
<p style="text-align: justify;"><span id="more-171"></span></p>
<p style="text-align: justify;">También cuando se trabaja con diferentes configuraciones, ya sea el servidor de desarrollo o el de producción debe asegurarse de copiar y/o subir la configuración correcta, esto sin tomar en cuenta que la PC del programador pueda tener otra configuración. Este problema se resuelve con PHING, ya que a la hora de construir la aplicación solo basta con decirle que configuración debe cargar.</p>
<p>Enlace de descarga: <a href="http://phing.info/trac/wiki/Users/Download" target="_blank">http://phing.info/trac/wiki/Users/Download</a></p>
<p>Instalación y Documentación: <a href="http://phing.info/docs/guide/current/" target="_blank">http://phing.info/docs/guide/current/</a></p>
<h3>Ejemplo del archivo build.xml</h3>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project
	name="Proyecto de prueba"
	default="stage"
	basedir="."
	description="Archivo Build del Proyecto de Prueba"&gt;

	&lt;!--  Ruta que contendra la aplicacion web final --&gt;
	&lt;property name="build.dir" value="../build" /&gt;

	&lt;!-- Ruta de los archivos fuentes --&gt;
	&lt;property name="src.dir" value="./app" /&gt;

	&lt;!--
	PHP COMMONS LIBS - PCL
	Configuracion de la libreria de utilidades comunes

	pcl.src.dir:
	Es la ruta donde se encuentra los archivos fuente de PCL

	pcl.out.dir:
	Es la ruta donde se copiara las utiliades dentro de la aplicacion
	--&gt;
	&lt;property name="pcl.src.dir" value="../PCL" /&gt;
	&lt;property name="pcl.out.dir" value="${build.dir}/libs/PCL" /&gt;

	&lt;!-- Incluye los archivos fuente de la aplicacion --&gt;
	&lt;fileset dir="${src.dir}" id="srcfiles"&gt;
		&lt;include name="**" /&gt;
	&lt;/fileset&gt;

	&lt;!--
	- Incluye los archivos del proyecto PCL
	- Excluye archivos de Zend Studio for Eclipse (ZSE) - opcional
	--&gt;
	&lt;fileset dir="${pcl.src.dir}" id="pclfiles"&gt;
		&lt;include name="**" /&gt;
		&lt;exclude name=".cache/**" /&gt;
		&lt;exclude name=".settings/**" /&gt;
		&lt;exclude name=".project" /&gt;
	&lt;/fileset&gt;

	&lt;!-- Prepara el directorio de destino --&gt;
	&lt;target
		name="init"
		description="Preparando el directorio destino ==&gt; ${build.dir}"&gt;

		&lt;echo message="Preparando el directorio ${build.dir}" /&gt;
		&lt;delete dir="${build.dir}" failonerror="true" /&gt;
		&lt;mkdir dir="${build.dir}" /&gt;
		&lt;mkdir dir="${build.dir}/libs"/&gt;
		&lt;!--
		Crea el directorio de destino de PCL
		--&gt;
		&lt;mkdir dir="${pcl.out.dir}" /&gt;
	&lt;/target&gt;

	&lt;!-- Construye la aplicacion WEB PHP --&gt;
	&lt;target
		name="build"
		depends="init"
		description="Construye la aplicacion WEB"&gt;

		&lt;!--
		Copia los archivos fuentes de la aplicacion
		--&gt;
		&lt;echo message="Copiando archivos desde ${src.dir}" /&gt;
		&lt;copy todir="${build.dir}"&gt;
			&lt;fileset refid="srcfiles" /&gt;
		&lt;/copy&gt;

		&lt;!--
		Copia los archivos de configuracion de la aplicacion
		--&gt;
		&lt;echo message="Copiando configuracion desde ${config.dir}" /&gt;
		&lt;copy todir="${build.dir}"&gt;
			&lt;fileset dir="${config.dir}"&gt;
				&lt;include name="**" /&gt;
			&lt;/fileset&gt;
		&lt;/copy&gt;

		&lt;!--
		Copia los archivos de PCL dentro de la carpeta de destino
		--&gt;
		&lt;echo message="Copiando archivos PCL desde ${pcl.src.dir}" /&gt;
		&lt;copy todir="${pcl.out.dir}"&gt;
			&lt;fileset refid="pclfiles" /&gt;
		&lt;/copy&gt;
	&lt;/target&gt;

	&lt;!-- Carga la configuracion del servidor de desarrollo de la aplicación --&gt;
	&lt;target
		name="stage"
		description="Construir con la configuracion de desarrollo"&gt;

		&lt;!--
		Llamado a build con la configuracion de desarrollo
		--&gt;
		&lt;phingcall target="build"&gt;
			&lt;property name="config.dir" value="./config/stage" /&gt;
		&lt;/phingcall&gt;

		&lt;echo message="-----------------------------------" /&gt;
		&lt;echo message="  APLICACION CONSTRUIDA CON EXITO  " /&gt;
		&lt;echo message="CONFIGURACION DE DESARROLLO CARGADA" /&gt;
		&lt;echo message="-----------------------------------" /&gt;
	&lt;/target&gt;

	&lt;!-- Carga la configuración del servidor de produccion de la aplicacion --&gt;
	&lt;target
		name="production"
		description="Construir con la configuracion de produccion"&gt;

		&lt;!--
		Llamado a phing con la configuracion de produccion
		--&gt;
		&lt;phingcall target="build"&gt;
			&lt;property name="config.dir" value="./config/production" /&gt;
		&lt;/phingcall&gt;

		&lt;echo message="-----------------------------------" /&gt;
		&lt;echo message="  APLICACION CONSTRUIDA CON EXITO  " /&gt;
		&lt;echo message="CONFIGURACION DE PRODUCCION CARGADA" /&gt;
		&lt;echo message="-----------------------------------" /&gt;
	&lt;/target&gt;
&lt;/project&gt;</pre>
<p style="text-align: justify;">Para construir la aplicación con este archivo, nos vamos por linea de comandos hasta la ruta donde se encuentra nuestro proyecto y ejecutamos:</p>
<pre>Carga la configuración stage por defecto

<code>{RUTA_DEL_PROYECTO}&gt; phing</code>

Carga la configuración de produccion

<code>{RUTA_DEL_PROYECTO}&gt; phing production</code></pre>
<h3>Integracion del PHING con ZSE</h3>
<p style="text-align: justify;">Podemos crear un proyecto en el ZSE que contenga nuestro archivo build.xml y ejecutar el PHING desde el ZSE para construir nuestro proyecto.</p>
<p>Para esto nos vamos al menú <code>Project -&gt; Properties -&gt; Builders -&gt; New... -&gt; Program -&gt; OK</code></p>
<p>Name: Phing</p>
<p>Location: <code>{RUTA_DE_INSTALACIÓN_DEL_PHING}</code></p>
<p>Working Directory: <code>{RUTA_DEL_PROYECTO}</code></p>
<p>Arguments: Aqui se puede colocar que configuración se desea cargar, por defecto toma <code>stage (desarrollo)</code></p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_179" class="wp-caption aligncenter" style="width: 510px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-179" title="phing zse configuration" src="http://www.republicait.com/wp-content/uploads/2009/02/phing-zse-config.jpg" alt="phing and zse" width="500" height="402" /></dt>
</dl>
</div>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/02/24/phing/" title="phing">phing</a></li><li><a href="http://www.republicait.com/2009/02/24/phing/" title="archivos de configuracion pcl">archivos de configuracion pcl</a></li><li><a href="http://www.republicait.com/2009/02/24/phing/" title="PCL - PHP Commons Libs">PCL - PHP Commons Libs</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 2.376 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/02/24/phing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Herramientas para un servidor de desarrollo</title>
		<link>http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/</link>
		<comments>http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 03:33:05 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[red5]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=123</guid>
		<description><![CDATA[En este artículo veremos algunos programas y herramientas que nos serán muy útiles a la hora de preparar una pc para que funcione como nuestro servidor de desarrollo.
Cada una de estas herramientas realizan una tarea especifica distinta una de la otra, por lo cual le brinda a nuestro servidor una variedad de funcionalidades para poder [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">En este artículo veremos algunos programas y herramientas que nos serán muy útiles a la hora de preparar una pc para que funcione como nuestro servidor de desarrollo.</p>
<p style="text-align: justify;">Cada una de estas herramientas realizan una tarea especifica distinta una de la otra, por lo cual le brinda a nuestro servidor una variedad de funcionalidades para poder desarrollar nuestra aplicación ya sea en java, php, ruby, etc.</p>
<blockquote style="text-align: justify;">
<p style="text-align: justify;"><strong>Nota:</strong> Todas estas herramientas que mencionaremos son gratis, free, sin costos.</p>
</blockquote>
<p style="text-align: justify;">
<h3 style="text-align: justify;">1. Sistema Operativo</h3>
<h4 style="text-align: justify;"><a href="http://www.ubuntu.com/products/whatIsubuntu/serveredition" target="_blank"><img class="size-full wp-image-126 alignleft" title="Ubuntu logo" src="http://www.republicait.com/wp-content/uploads/2009/01/icon-ubuntu.png" alt="Ubuntu logo" width="40" height="40" /></a></p>
<p><a href="http://www.ubuntu.com/products/whatIsubuntu/serveredition" target="_blank">Ubuntu Server Edition</a></h4>
<p style="text-align: justify;">Ubuntu Server Edition es una distribución de Linux basada en <a href="http://www.debian.org/index.es.html" target="_blank">Debian</a> la cual utilizaremos como el sistema operativo de nuestro servidor de desarrollo, para obtenerla, debes dirigirte a su <a href="http://www.ubuntu.com/getubuntu/download" target="_blank">página descargas</a> la cual ofrece distintas formas de poder descargar esta distribución.<span id="more-123"></span></p>
<p style="text-align: justify;">Cabe destacar que esta distribución no ofrece un entorno de escritorio visual por defecto, como por ejemplo <a href="http://www.gnome.org/" target="_blank">Gnome</a> dado que esta orientado para un entorno de servidor y los gráficos pueden reducir la disponibilidad de recursos de nuestra pc.</p>
<p style="text-align: justify;">Algunas otras opciones:</p>
<ul style="text-align: justify;">
<li>Fedora Project</li>
<li>Debian</li>
<li>OpenSolaris</li>
</ul>
<h3 style="text-align: justify;">2. Accesibilidad</h3>
<h4 style="text-align: justify;"><a href="http://www.proftpd.org/" target="_blank">ProFTPD</a></h4>
<p style="text-align: justify;">ProfFTPD es un servidor FTP orientado principalmente a plataformas Linux, la instalación y configuración no requiere de una gran experiencia bajo el entorno Linux, su archivo de configuración proporciona comentarios que les sirve de ayuda para saber que sección estan afectando.</p>
<h4 style="text-align: justify;"><a href="http://www.openssh.com/index.html" target="_blank">OpenSSH</a></h4>
<p style="text-align: justify;">OpenSSH es una herramienta con la cual se pueden establecer una conexión segura con el servidor mediante el protocolo SSH, dado que nuestro sistema operativo es Linux, esta es una excelente herramienta para poder utilizar la consola o terminal de nuestro servidor desde cualquier punto.</p>
<h3 style="text-align: justify;">3. Servidores WEB</h3>
<h4>
<div class="mceTemp">
<dl id="attachment_153" class="wp-caption alignleft" style="width: 99px;">
<dt class="wp-caption-dt"><a href="http://httpd.apache.org/" target="_blank"><img class="size-full wp-image-153" title="apache logo" src="http://www.republicait.com/wp-content/uploads/2009/01/apache.jpg" alt="apache logo" width="89" height="40" /> </a></dt>
</dl>
</div>
<p><a href="http://httpd.apache.org/" target="_blank">Apache HTTP Server Project</a></h4>
<p style="text-align: justify;">Apache es un servidor WEB desarrollado y mantenido por <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> con el proposito de ofrecer un servidor de alto rendimiento, sin costos, configurable y con funcionalidades o modulos que se pueden adaptar para la generación de páginas WEB dinámicas desde un lenguaje o script de programación, como por ejemplo PHP. Una alternativa para el servidor apache es: <a href="http://www.lighttpd.net/" target="_blank">Ligth HTTPd</a>.</p>
<h4>
<div class="mceTemp">
<dl id="attachment_155" class="wp-caption alignleft" style="width: 67px;">
<dt class="wp-caption-dt"><a href="http://tomcat.apache.org/" target="_blank"><img class="size-full wp-image-155" title="tomcat logo" src="http://www.republicait.com/wp-content/uploads/2009/01/tomcat.gif" alt="tomcat logo" width="57" height="40" /></a></dt>
</dl>
</div>
<p><a href="http://tomcat.apache.org/" target="_blank">Apache Tomcat</a></h4>
<p style="text-align: justify;">Apache Tomcat es un servidor WEB orientado para servir aplicaciones desarrolladas con el lenguaje de progrmación Java utilizando las tecnologias <a href="http://java.sun.com/products/servlet/index.jsp" target="_blank">Java Servlets</a> y <a href="http://java.sun.com/products/jsp/">Java Server Pages</a>, forma tambien parte del Apache Software Foundation. Una alternativa al servidor apache tomcat es <a href="http://www.caucho.com/" target="_blank">Resin</a>.</p>
<h4>
<div class="mceTemp">
<dl id="attachment_158" class="wp-caption alignleft" style="width: 111px;">
<dt class="wp-caption-dt"><a href="http://osflash.org/red5" target="_blank"><img class="size-full wp-image-158" title="red5 logo" src="http://www.republicait.com/wp-content/uploads/2009/01/red5logo.png" alt="red5 logo" width="101" height="40" /></a></dt>
</dl>
</div>
<p><a href="http://osflash.org/red5" target="_blank">Red5</a></h4>
<p style="text-align: justify;">Red5 es un servidor WEB desarrollado en Java como una alternativa al <a href="http://www.adobe.com/es/products/flashmediaserver/" target="_blank">Flash Media Server (FMS)</a> para el desarrollo de aplicaciones WEB utilizando la tecnología <a href="http://www.adobe.com/es/products/flex/" target="_blank">Adobe Flex</a>, como por ejemplo, el desarrollo de aplicaciones de Streaming utilizando el protocolo <a href="http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol" target="_blank">RTMP</a>.</p>
<h3>4. Programación</h3>
<h4>Interpretes</h4>
<p style="text-align: justify;">Dado que el sistema operativo seleccionado para el servidor es una distribución Linux, estas en su mayoría brinda soporte para los siguientes lenguajes interpretados:</p>
<ul>
<li>PHP</li>
<li>Perl</li>
<li>Python</li>
<li>Ruby</li>
</ul>
<p style="text-align: justify;">En caso tal no soporte alguno de los lenguajes mencionados, Ubuntu consta con un <a href="http://doc.ubuntu-es.org/Repositorios_desde_Ubuntu" target="_blank">repositorio de programas</a> en el cual puedes encontrar el intérprete necesario.</p>
<h4>Compiladores</h4>
<p style="text-align: justify;">Actualmente en las mayorías de las distribuciones Linux existe una coleccion de compiladores conocida como <a href="http://gcc.gnu.org/" target="_blank">GCC (<em>GNU Compiler Collection</em>)</a>, el cual brinda soporte a distintos lengajes como C/C++ y Java.</p>
<h3>5. Bases de Datos</h3>
<h4>
<div class="mceTemp">
<dl id="attachment_163" class="wp-caption alignleft" style="width: 77px;">
<dt class="wp-caption-dt"><a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank"><img class="size-full wp-image-163" title="MySQL Logo" src="http://www.republicait.com/wp-content/uploads/2009/01/logo_mysql_sun_a.gif" alt="MySQL Logo" width="67" height="40" /></a></dt>
</dl>
</div>
<p><a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank">Mysql Community Server</a></h4>
<p style="text-align: justify;">MySQL es un<em> </em>servidor de base de datos de alto rendimiento, conocido también como RDBMS (<em>Relational Data Base Management System</em>) desarrollado actualmente por Sun Microsystems. La versión <em>Community</em>, es la versión gratis del servidor. MySQL es compatible con la mayoría de los lenguajes de programación y puede ser accedido desde una aplicación de escritorio o WEB.</p>
<p style="text-align: justify;">Otras bases de datos que se pueden instalar son:</p>
<ul>
<li><a href="http://db.apache.org/derby/" target="_blank">Apache Derby</a></li>
<li><a href="http://hsqldb.org/" target="_blank">HSQLDB</a></li>
<li><a href="http://www.postgresql.org/" target="_blank">PostgreSQL</a></li>
</ul>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="herramientas para un servidor">herramientas para un servidor</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="captura de pantalla al instalar servidor apache derby">captura de pantalla al instalar servidor apache derby</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="servidor de versiones gratis">servidor de versiones gratis</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="linux servidor desarrollo">linux servidor desarrollo</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="herramientas para instalar flashmediaserver en debian">herramientas para instalar flashmediaserver en debian</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="herramientas de un servidor">herramientas de un servidor</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="herramientas de desarrollo en el servidor">herramientas de desarrollo en el servidor</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="herramienta it">herramienta it</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="crear servidor RTMP">crear servidor RTMP</a></li><li><a href="http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/" title="compartir el escritorio flex3 and red5">compartir el escritorio flex3 and red5</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 6.722 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/01/17/herramientas-para-un-servidor-de-desarrollo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando un ambiente de desarrollo &#8211; Parte IV</title>
		<link>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/</link>
		<comments>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 16:51:53 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[zend studio for eclipse]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=96</guid>
		<description><![CDATA[Introducción
En esta sección veremos como configurar el ZSE para que funcione con MySQL.
Zend Studio for Eclipse y MySQL
Lo primero que tenemos que hacer es abrir la vista del explorador de fuentes de datos, para esto nos vamos al menu Window -&#62; Show View -&#62; Other..., seleccionamos la carpeta Connectivity -&#62; Data Source Explorer
Ahora creamos nuestra [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En esta sección veremos como configurar el ZSE para que funcione con MySQL.</p>
<h3>Zend Studio for Eclipse y MySQL</h3>
<p style="text-align: justify;">Lo primero que tenemos que hacer es abrir la vista del explorador de fuentes de datos, para esto nos vamos al menu <code>Window -&gt; Show View -&gt; Other...</code>, seleccionamos la carpeta <code>Connectivity -&gt; Data Source Explorer</code></p>
<div id="attachment_100" class="wp-caption aligncenter" style="width: 290px"><img class="size-full wp-image-100" title="Zend Studio for Eclipse - Show View" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-view-others.jpg" alt="Zend Studio for Eclipse - Show View" width="280" height="414" /><p class="wp-caption-text">Zend Studio for Eclipse - Show View</p></div>
<p style="text-align: justify;">Ahora creamos nuestra conexión con el servidor MySQL, para esto, damos click derecho sobre la carpeta <code>SQL Databases</code> y seleccionamos <code>New...</code>, esto nos mostrará el asistente para establecer la conexión, lo que haremos es conectarnos con la base de datos de prueba de MySQL test. En el <code>Connection Name</code> colocamos <code>MySQL Test</code>, en <code>URL</code> colocamos <code>jdbc:mysql://localhost:3306/test</code>, en <code>User root</code> y el <code>Password</code> lo dejamos en blanco. Luego damos click en <code>Test connection</code> para confirmar los parametros de la conexión y si todo esta bien, damos click en <code>Finish</code>.<span id="more-96"></span></p>
<div id="attachment_101" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-101" title="Zend Studio for Eclipse - New Database Connection Wizard" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-new-db-con.jpg" alt="Zend Studio for Eclipse - New Database Connection Wizard" width="500" height="441" /><p class="wp-caption-text">Zend Studio for Eclipse - New Database Connection Wizard</p></div>
<blockquote><p><strong>Nota:</strong> Por defecto, la instalación del paquete XAMPP crea el usuario root sin contraseña</p></blockquote>
<p style="text-align: justify;">Una vez creada nuestra configuración, damos click derecho sobre <code>MySQL Test</code> y seleccionamos <code>Connect</code>, navegamos hasta <code>SQL Databases -&gt; MySQL Test (MySQL v. {VERSION}) -&gt; MySQL Test -&gt; Schemas -&gt; MySQL Test -&gt; Tables</code>, damos click derecho sobre la carpeta <code>Tables</code> y seleccionamos <code>New Table...</code>, esto nos mostrará el asistente para crear una nueva tabla, dejamos los valores iniciales por defecto y damos click en <code>Next</code> para crear los campos de nuestra tabla. Creamos una tabla de prueba con dos campos, id de tipo INTEGER UNSIGNED y value tipo VARCHAR de 30 caracteres.</p>
<p style="text-align: justify;">
<div id="attachment_103" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-103" title="Zend Studio for Eclipse - New Table Wizard" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-new-table-wizard.jpg" alt="Zend Studio for Eclipse - New Table Wizard" width="500" height="503" /><p class="wp-caption-text">Zend Studio for Eclipse - New Table Wizard</p></div>
<p style="text-align: justify;">Damos click en <code>Next</code> para crear nuestra llave primaria, en el nombre colocamos <code>PRIMARY KEY</code>, seleccionamos el campo <code>id</code> y damos click en <code>Finish</code>. Se generará automaticamente las sentencias <code>DDL</code> para la creación de nuestra tabla.</p>
<pre>CREATE TABLE test_table (
	id INTEGER UNSIGNED NOT NULL,
	value VARCHAR(30) NOT NULL,
	PRIMARY KEY (id)
);</pre>
<p>Para ejecutar estas sentencias, damos click derecho sobre el código DDL y seleccionamos Execute All</p>
<div id="attachment_106" class="wp-caption aligncenter" style="width: 477px"><img class="size-full wp-image-106" title="Zend Studio for Eclipse - SQL Editor" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-sqleditor-execute.jpg" alt="Zend Studio for Eclipse - SQL Editor" width="467" height="404" /><p class="wp-caption-text">Zend Studio for Eclipse - SQL Editor</p></div>
<p style="text-align: justify;">Una vez ejecutadas las sentencias, refrescamos la carpeta <code>Tables</code> de nuestro explorador de datos para que se muestre la tabla que acabamos de crear.</p>
<div id="attachment_108" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-108" title="Zend Studio for Eclipse - Data Source Explorer View" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-dse-view.jpg" alt="Zend Studio for Eclipse - Data Source Explorer View" width="500" height="217" /><p class="wp-caption-text">Zend Studio for Eclipse - Data Source Explorer View</p></div>
<p>Con esto tenemos un ambiente configurado listo para:</p>
<ul>
<li>Depurar una aplicación Web.</li>
<li>Trabajar en conjunto con otros programadores.</li>
<li>Acceso directo a la base de datos.</li>
</ul>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/" title="eclipse data source explorer mysql">eclipse data source explorer mysql</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/" title="Ambiente Connection Execute">Ambiente Connection Execute</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/" title="ambiente de desarrollo it">ambiente de desarrollo it</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/" title="ambientes de desarrollo y testing - servidores">ambientes de desarrollo y testing - servidores</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/" title="ambientes ¿testing? bases de datos">ambientes ¿testing? bases de datos</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 9.971 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando un ambiente de desarrollo &#8211; Parte III</title>
		<link>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/</link>
		<comments>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 13:36:22 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[svn commit]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=70</guid>
		<description><![CDATA[Introducción
En esta sección veremos como configurar el ZSE con Zend Debugger.
ZSE y Zend Debugger
El siguiente paso es configurar el ZSE con el Zend Debugger, por defecto, el ZSE ya viene con los valores predeterminados del Zend Debugger, lo que haremos es verificar esos datos, para esto nos vamos al menu Window -&#62; Preferences, luego navegamos [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En esta sección veremos como configurar el ZSE con Zend Debugger.</p>
<h3>ZSE y Zend Debugger</h3>
<p style="text-align: justify;">El siguiente paso es configurar el ZSE con el Zend Debugger, por defecto, el ZSE ya viene con los valores predeterminados del Zend Debugger, lo que haremos es verificar esos datos, para esto nos vamos al menu <code>Window -&gt; Preferences</code>, luego navegamos en el arbol hasta el nodo <code>PHP -&gt; Debug -&gt; Installed Debuggers</code>, damos click en <code>Zend Debugger</code> y presionamos el boton <code>Configure</code> para ver sus parametros.</p>
<div id="attachment_74" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-74" title="Zend Studio for Eclipse - Zend Debugger Preferences" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-zd-configuration.jpg" alt="Zend Studio for Eclipse - Zend Debugger Preferences" width="500" height="521" /><p class="wp-caption-text">Zend Studio for Eclipse - Zend Debugger Preferences</p></div>
<p>Dejamos estos valores por defecto.<span id="more-70"></span></p>
<p style="text-align: justify;">El archivo dummy.php es el que establece la conexión con el debugger el cual debemos crear bajo la ruta <code>C:\xampp\htdocs\local.testapp.com</code> con las siguientes líneas de codigo:</p>
<pre>&lt;?php
@ini_set('zend_monitor.enable', 0);
if(@function_exists('output_cache_disable')) {
    @output_cache_disable();
}
if(isset($_GET['debugger_connect']) &amp;&amp; $_GET['debugger_connect'] == 1) {
    if(function_exists('debugger_connect'))  {
        debugger_connect();
        exit();
    } else {
        echo "No connector is installed.";
    }
}
?&gt;</pre>
<p style="text-align: justify;">Ahora vamos crear nuestro archivo <code>testdebug.php</code>, para esto damos click derecho sobre la carpeta <code>testapp [trunk]</code> y nos vamos al menu <code>New -&gt; PHP File</code>, en <code>File Name</code> colocamos <code>testdebug.php</code> y damos click en <code>Finish</code>, hacemos doble click sobre el archivo creado y agregamos las siguientes líneas de codigo:</p>
<pre>&lt;?php
$str = 'Debugger test';
$pattern = '^Deb.*$';
$match = ereg($pattern,$str);
if($match)
{
    echo 'Match';
}
else
{
    echo 'Doesn\'t Match';
}
?&gt;</pre>
<p style="text-align: justify;">Ahora procedemos a crear una configuration para depurar nuestro archivo, para esto nos vamos al menu <code>Run -&gt; Debug Configurations...</code> y damos doble click sobre <code>PHP Web Page</code>, como nombre colocamos <code>TESTAPP-DEBUG-CONFIG</code>; creamos un nuevo servidor PHP que apunte a nuestro host virtual, damos click en el boton <code>New</code>, como nombre colocamos <code>TESTAPP-LOCAL-SERVER</code> y en la URL colocamos <code>http://local.testapp.com</code> y damos click en <code>Finish</code></p>
<div id="attachment_76" class="wp-caption aligncenter" style="width: 550px"><img class="size-full wp-image-76" title="Zend Studio for Eclipse - Debug Configuration" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-debugger-configuration.jpg" alt="Zend Studio for Eclipse - Debug Configuration" width="540" height="419" /><p class="wp-caption-text">Zend Studio for Eclipse - Debug Configuration</p></div>
<p>Damos click en Test Debugger y debemos obtener el mensaje de confirmación</p>
<div id="attachment_79" class="wp-caption aligncenter" style="width: 513px"><img class="size-full wp-image-79" title="Zend Studio for Eclipse - Debugger Success" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-debugger-confirmation.jpg" alt="Zend Studio for Eclipse - Debugger Success" width="503" height="295" /><p class="wp-caption-text">Zend Studio for Eclipse - Debugger Success</p></div>
<p style="text-align: justify;">El siguiente paso es especificar el archivo a depurar, para esto hacemos click en <code>Browse</code> y seleccionamos <code>testapp -&gt; testdebug.php</code>, le quitamos el check a <code>Break at First Line</code>, damos click en <code>Apply</code> y luego en <code>Close</code>.</p>
<div id="attachment_80" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-80" title="Zend Studio for Eclipse - Debugger Configuration Preview" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-debugger-configuration-preview.jpg" alt="Zend Studio for Eclipse - Debugger Configuration Preview" width="500" height="385" /><p class="wp-caption-text">Zend Studio for Eclipse - Debugger Configuration Preview</p></div>
<p style="text-align: justify;">Ahora creamos un <code>break point</code> en nuestro archivo, para esto hacemos doble click sobre cualquier número de línea a la izquierda del código, el <code>break point</code> se debe marcar con un círculo azul. Para iniciar la depuración nos vamos a nuestro ícono del <code>debug</code> y seleccionamos la configuración <code>TESTAPP-DEBUG-CONFIG</code></p>
<div id="attachment_85" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-85" title="Zend Studio for Eclipse - Starting the debugger" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-debugger-start.jpg" alt="Zend Studio for Eclipse - Starting the debugger" width="500" height="321" /><p class="wp-caption-text">Zend Studio for Eclipse - Starting the debugger</p></div>
<p style="text-align: justify;">Al darle click a nuestra configuración, se nos preguntará si deseamos abrir la perspectiva del debugger y le damos <code>Yes</code>, con esto se abre la perspectiva del debugger y estamos listos para depurar nuestro archivo. En esta perspectiva se puede ver diferentes aspectos de nuestro archivo, como por ejemplo valores que toman las variables en tiempo de ejecución hasta el <code>break point</code>, los procesos que se estan ejecutando, etc.</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 540px"><img class="size-full wp-image-87" title="Zend Studio for Eclipse - Debugger Perspective" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-debugger-perspective.jpg" alt="Zend Studio for Eclipse - Debugger Perspective" width="530" height="377" /><p class="wp-caption-text">Zend Studio for Eclipse - Debugger Perspective</p></div>
<p style="text-align: justify;">Ya que tenemos todo funcionando, es hora de agregar nuestro archivo al repositorio, para esto, damos click derecho sobre el archivo y nos vamos a <code>Team -&gt; Add to Version Control</code>, inmediatemente veremos que nuestro archivo aparece ahora con un símbolo de más, una vez agregado, le damos un commit a nuestro archivo para que este disponible para los demas programadores, para esto damos click derecho sobre el archivo y nos vamos a <code>Team -&gt; Commit...</code>, escribimos un comentario y damos <code>OK</code>, en caso tal el repositorio este restringido por cuentas de usuario, se les pedirá sus credenciales para hacer el <code>Commit<code>.</code></code></p>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 483px"><img class="size-full wp-image-92" title="Zend Studio for Eclipse - SVN Commit" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-svn-commit-wizard.jpg" alt="Zend Studio for Eclipse - SVN Commit" width="473" height="413" /><p class="wp-caption-text">Zend Studio for Eclipse - SVN Commit</p></div>
<p style="text-align: justify;">Para ver el historial de los cambios realizados, damos click derecho sobre el archivo y nos vamos al menu <code>Team -&gt; Show History</code></p>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-93" title="Zend Studio for Eclipse - SVN History" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-svn-history.jpg" alt="Zend Studio for Eclipse - SVN History" width="500" height="189" /><p class="wp-caption-text">Zend Studio for Eclipse - SVN History</p></div>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="añadir un archivo javascript a eclipse">añadir un archivo javascript a eclipse</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="zend studio debugger">zend studio debugger</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="configurar Zend studio">configurar Zend studio</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="agregar botones zend studio">agregar botones zend studio</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="debug zend studio for eclipse">debug zend studio for eclipse</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="dummy php file debug">dummy php file debug</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="eclipse debug marcar linea debug">eclipse debug marcar linea debug</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="eclipse debugging php does not break in first line">eclipse debugging php does not break in first line</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="extjs debugger">extjs debugger</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="gwt depurar breakpoint eclipse">gwt depurar breakpoint eclipse</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 2.133 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configurando un ambiente de desarrollo &#8211; Parte II</title>
		<link>http://www.republicait.com/2008/12/31/configurando-un-ambiente-de-desarrollo-parte-2/</link>
		<comments>http://www.republicait.com/2008/12/31/configurando-un-ambiente-de-desarrollo-parte-2/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 05:10:18 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[zend studio for eclipse]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=33</guid>
		<description><![CDATA[Introducción
En esta parte veremos como configurar el Zend Studio for Eclipse con Subclipse.
Algunos requisitos/conocimientos que se deben tener en cuenta:

Algun acceso a un servidor de subversion (svnserve) con una cuenta de usuario válida.
Los comandos checkout, commit, update de subversion.

Zend Studio for Eclipse (ZSE)
Zend Studio for Eclipse (ZSE) es un IDE propietario desarrollado por Zend Technologies [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En esta parte veremos como configurar el Zend Studio for Eclipse con Subclipse.</p>
<p>Algunos requisitos/conocimientos que se deben tener en cuenta:</p>
<ul>
<li>Algun acceso a un servidor de subversion (svnserve) con una cuenta de usuario válida.</li>
<li>Los comandos checkout, commit, update de subversion.</li>
</ul>
<h3>Zend Studio for Eclipse (ZSE)</h3>
<p style="text-align: justify;">Zend Studio for Eclipse (ZSE) es un IDE propietario desarrollado por <a href="http://www.zend.com/" target="_blank">Zend Technologies</a> basado en <a href="http://www.eclipse.org/">Eclipse</a>. ZSE esta diseñado para el desarrollo de aplicaciones ricas en Internet (RIA&#8217;s) utilizando PHP como su lenguaje de programación.<span id="more-33"></span></p>
<p style="text-align: justify;">Zend tambien ofrece una herramienta gratuita basada en Eclipse conocida como <a href="http://www.zend.com/en/community/pdt" target="_blank">PDT (PHP Development Tools)</a>. Nos enfocamos en el uso de ZSE dado que el PDT ya viene configurado con el Zend Debugger. Puedes obtener el ZSE en el siguiente enlace <a href="http://www.zend.com/en/products/studio/" target="_blank">http://www.zend.com/en/products/studio/</a></p>
<p style="text-align: justify;">Una vez obtenemos el ZSE, seguimos los pasos del instalador y luego abrimos el <code>DefaultWorkspace</code> que se genera con el ZSE.</p>
<p style="text-align: center;">
<div id="attachment_44" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-44" title="Zend Studio for Eclipse Home" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-home.jpg" alt="Zend Studio for Eclipse Home" width="500" height="303" /><p class="wp-caption-text">Zend Studio for Eclipse Home</p></div>
<h3>Subclipse</h3>
<p>Subclipse es un plugin para Eclipse desarrollado por <a href="http://www.tigris.org/" target="_blank">Tigris</a> con la finalidad de agregar las funcionalidades y herramientas de trabajar con <a href="http://subversion.tigris.org/" target="_blank">Subversion</a></p>
<p>Para instalarlo como plugin del ZSE, lo podemos hacer siguiendo los mismos pasos como si fuera para Eclipse, la guía se encuentra en la siguiente dirección <a href="http://subclipse.tigris.org/install.html" target="_blank">http://subclipse.tigris.org/install.html</a>. Realizar los pasos del 1 al 11.</p>
<p>Una vez reiciniciado el ZSE, procedemos a crear nuestro proyecto utilizando el comando checkout del subversion.</p>
<h4>Paso 1: Cambiar de workspace</h4>
<p>Para esto nos vamos al menu <code>File -&gt; Switch Workspace -&gt; Other</code> y colocamos la ruta de nuestro host virutal y presionamos OK</p>
<div id="attachment_53" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-53" title="Zend Studio for Eclipse Workspace" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-workspace-change.jpg" alt="Zend Studio for Eclipse Workspace" width="500" height="303" /><p class="wp-caption-text">Zend Studio for Eclipse Workspace</p></div>
<p>Esto nos reiniciara el ZSE, una vez cargado, cerramos la ventana de Welcome, quedando disponible nuestro entorno de trabajo.</p>
<h4>Paso 2: Checkout de nuestro proyecto</h4>
<p>En este paso accederemos a nuestro repositorio (previamente configurado) y cargaremos los archivos de trabajo dentro de nuestra carpeta, para esto nos vamos al menu: <code>File -&gt; New -&gt; Other</code>. Aparecerá el asistente para crear un nuevo proyecto.</p>
<p>Seleccionamos la segunda carpeta <code>SVN</code>, damos click a <code>Checkout Projects from SVN</code> y damos click en <code>Next.</code></p>
<div id="attachment_56" class="wp-caption aligncenter" style="width: 516px"><img class="size-full wp-image-56" title="Zend Studio for Eclipse New Wizard" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-wizards-new.jpg" alt="Zend Studio for Eclipse New Wizard" width="506" height="512" /><p class="wp-caption-text">Zend Studio for Eclipse New Wizard</p></div>
<blockquote><p><strong>Nota:</strong> Actualmente aparecen dos carpetas de SVN, esto se debe a que el ZSE trae por defecto otros plugins para trabajar con subversion.</p></blockquote>
<p style="text-align: justify;">En la siguiente ventana seleccionamos <code>Create a new repository location</code> y damos click en <code>Next</code>. Colocamos la direccion url de nuestro proyecto, por ejemplo <code>svn://yoursvnserver.com/testapp</code> y damos click en <code>Next</code>. Luego damos click en la carpeta <code>trunk</code> y presionamos <code>Next</code>.</p>
<p style="text-align: justify;">
<div id="attachment_58" class="wp-caption aligncenter" style="width: 516px"><img class="size-full wp-image-58" title="Zend Studio for Eclipse - Subclipe checkout wizard" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-svn-checkout-wizard.jpg" alt="Zend Studio for Eclipse - Subclipe checkout wizard" width="506" height="512" /><p class="wp-caption-text">Zend Studio for Eclipse - Subclipe checkout wizard</p></div>
<p style="text-align: justify;">En la siguiente ventana seleccionamos <code>Check out as project configured using the New Project Wizard</code> y damos click en <code>Finish</code>. Nuevamente se abre el asistente de nuevo proyecto, esta vez seleccionamos la carpeta <code>PHP</code>, damos click en <code>PHP Project</code> y luego en <code>Next</code>.</p>
<div id="attachment_60" class="wp-caption aligncenter" style="width: 516px"><img class="size-full wp-image-60" title="Zend Studio for Eclipse - PHP Project Wizard" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-php-project-wizard.jpg" alt="Zend Studio for Eclipse - PHP Project Wizard" width="506" height="512" /><p class="wp-caption-text">Zend Studio for Eclipse - PHP Project Wizard</p></div>
<p style="text-align: justify;">Luego, en la siguiente ventana, colocamos <code>testapp</code> en <code>Project name</code> y damos click en <code>Finish</code>. En caso tal se nos solicite la confirmación de <code>overwrite</code>, presionamos <code>OK</code>. El resultado final debe lucir así:</p>
<div id="attachment_61" class="wp-caption aligncenter" style="width: 516px"><img class="size-full wp-image-61" title="Zend Studio for Eclipse - PHP Explorer View" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-view-php-explorer.jpg" alt="Zend Studio for Eclipse - PHP Explorer View" width="506" height="512" /><p class="wp-caption-text">Zend Studio for Eclipse - PHP Explorer View</p></div>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2008/12/31/configurando-un-ambiente-de-desarrollo-parte-2/" title="crear un proyecto en zend studio">crear un proyecto en zend studio</a></li><li><a href="http://www.republicait.com/2008/12/31/configurando-un-ambiente-de-desarrollo-parte-2/" title="zend checkout from">zend checkout from</a></li><li><a href="http://www.republicait.com/2008/12/31/configurando-un-ambiente-de-desarrollo-parte-2/" title="zend studio svn proyect checkout">zend studio svn proyect checkout</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 3.528 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2008/12/31/configurando-un-ambiente-de-desarrollo-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
