<?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>Alejandro Rodríguez &#187; apuntes</title>
	<atom:link href="http://www.alejandrorodriguez.info/category/apuntes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alejandrorodriguez.info</link>
	<description>Un blog personal</description>
	<lastBuildDate>Fri, 09 Dec 2011 19:55:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;Depurando&#8221; PHP con la consola de Firebug. (Truchada comoda)</title>
		<link>http://www.alejandrorodriguez.info/2010/11/depurando-php-con-la-consola-de-firebug-truchada-comoda/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=depurando-php-con-la-consola-de-firebug-truchada-comoda</link>
		<comments>http://www.alejandrorodriguez.info/2010/11/depurando-php-con-la-consola-de-firebug-truchada-comoda/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 16:56:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=354</guid>
		<description><![CDATA[Con tan solo 3 pasos tendrás listo tu script para poder relizar un seguimiento a lo que pasa en tu código php utilizando la consola de FireBug.

Sigue los siguientes pasos&#8230;
Paso 1: En el inicio de tu archivo poner el siguiente código

require_once 'Depurador.php';
$depurador=new Depurador(true);
Paso 2:En el &#60;head&#62; agregar el siguiente bloque Javascript:

&#60;script type=&#34;text/javascript&#34;&#62;
// &#60;![CDATA[
function _mylog(que, tipo){
	if [...]]]></description>
			<content:encoded><![CDATA[<p>Con tan solo 3 pasos tendrás listo tu script para poder relizar un seguimiento a lo que pasa en tu código php utilizando la consola de FireBug.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" title="Clipboard01" src="http://www.alejandrorodriguez.info/wp-content/Clipboard011.jpg" alt="Clipboard01" width="480" height="287" /></p>
<p>Sigue los siguientes pasos&#8230;</p>
<p>Paso 1: En el inicio de tu archivo poner el siguiente código</p>
<pre class="brush: php;">
require_once 'Depurador.php';
$depurador=new Depurador(true);</pre>
<p>Paso 2:En el &lt;head&gt; agregar el siguiente bloque Javascript:</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
// &lt;![CDATA[
function _mylog(que, tipo){
	if ( typeof console == 'object') {
		switch (tipo) {
			default:
			case &quot;log&quot;:
				console.log(que); // Mostrar el log
				break;
			case &quot;warn&quot;:
				console.warn(que); // Mostrar el log
				break;
			case &quot;error&quot;:
				console.error(que); // Mostrar el log
				break;
		}
	}
}
// ]]&gt;
&lt;/script&gt;
</pre>
<p>Paso 3:Finalmente antes del &lt;/body&gt; agregar este otro bloque de código</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
&lt;?php echo $depurador-&gt;viewDatos(); ?&gt;
&lt;/script&gt;
</pre>
<p>Teniendo todo lo anterior configurado en tu archivo ahora podrás en todo momento hacer llamadas al depurador para pasarle datos. Todos los datos que le pases serán parseados en la consola de Firebug.</p>
<p>Para pasar información observa algunos ejemplos</p>
<pre class="brush: php;">
&lt;?php
$aMatriz=array(&quot;uno&quot;, &quot;dos&quot;, &quot;tres&quot;);
/*
* Envio datos al depurador
* El primer parametro es el dato propiamente dicho
* El segundo parametro es un titulo o referencia a tu gusto. Pa´identificar que es el dato
* El tercero es el tipo de mensaje de consola si es log, warn o error
*/
$depurador-&gt;addDatos($aMatriz, &quot;Matriz1&quot;, &quot;log&quot;);
// Ejemplo enviando String´s
$nombre=&quot;Alejandro Rodriguez&quot;;
$depurador-&gt;addDatos($nombre, &quot;Quien soy?&quot;, &quot;warn&quot;);
// Ejempplo enviando datos Boolean
$lDato1=true;
$depurador-&gt;addDatos($lDato1, &quot;Boolean&quot;, &quot;warn&quot;);
$lDato2=false;
$depurador-&gt;addDatos($lDato2, &quot;Boolean&quot;, &quot;log&quot;);
// Más matrices
$aMatriz2=array(&quot;uno&quot;=&gt;&quot;alto&quot;, &quot;dos&quot;=&gt;&quot;medio&quot;, &quot;tres&quot;=&gt;&quot;bajo&quot;);
$depurador-&gt;addDatos($aMatriz2, &quot;Matriz2&quot;, &quot;log&quot;);
$aMatriz3[]=array(&quot;nombre&quot;=&gt;&quot;Alejandro&quot;, &quot;apellido&quot;=&gt;&quot;Rodriguez&quot;, &quot;web&quot;=&gt;&quot;www.alejandrorodriguez.info&quot;) ;
$aMatriz3[]=array(&quot;nombre&quot;=&gt;&quot;Adobe User Group&quot;, &quot;apellido&quot;=&gt;&quot;Granada&quot;, &quot;web&quot;=&gt;&quot;www.adobe-user-group-granada.es&quot;) ;
$aMatriz3[]=array(&quot;nombre&quot;=&gt;&quot;Mediterranean&quot;, &quot;apellido&quot;=&gt;&quot;Adobe User Group&quot;, &quot;web&quot;=&gt;&quot;www.maug.es&quot;) ;
$depurador-&gt;addDatos($aMatriz3, &quot;Matriz3&quot;, &quot;log&quot;);
// Y más ejemplos que tu puedas inventarte...
?&gt;
</pre>
<p><a href="http://www.alejandrorodriguez.info/descargas/depurador.zip">Descargar ficheros</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2010/11/depurando-php-con-la-consola-de-firebug-truchada-comoda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloqueando comentarios en Wordpress desde SQL</title>
		<link>http://www.alejandrorodriguez.info/2010/11/bloqueando-comentarios-en-wordpress-desde-sql/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bloqueando-comentarios-en-wordpress-desde-sql</link>
		<comments>http://www.alejandrorodriguez.info/2010/11/bloqueando-comentarios-en-wordpress-desde-sql/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 09:45:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=342</guid>
		<description><![CDATA[Las siguientes lineas fueron preparadas para ejecutarse en las distintas bbdd de los wordpress &#8220;fantasmas&#8221; que tenemos por allí y de esa forma evitar nos lleguen los emails de los comentarios y ante la falta de tiempo de instalar en cada uno de ellos algun antispam.  Para más info pues los option_name se coinciden con lso form [...]]]></description>
			<content:encoded><![CDATA[<p>Las siguientes lineas fueron preparadas para ejecutarse en las distintas bbdd de los wordpress &#8220;fantasmas&#8221; que tenemos por allí y de esa forma evitar nos lleguen los emails de los comentarios y ante la falta de tiempo de instalar en cada uno de ellos algun antispam.  Para más info pues los option_name se coinciden con lso form field name Así que lo dicho aquí las líneas.</p>
<pre>
update wp_options set option_value='1' where option_name='default_pingback_flag';

update wp_options set option_value='0' where option_name='default_ping_status';

update wp_options set option_value='0' where option_name='default_comment_status';

update wp_options set option_value='1' where option_name='require_name_email';

update wp_options set option_value='1' where option_name='comment_registration';

update wp_options set option_value='1' where option_name='close_comments_for_old_posts';

update wp_options set option_value='0' where option_name='thread_comments';

update wp_options set option_value='1' where option_name='page_comments';

update wp_options set option_value='0' where option_name='comments_notify';

update wp_options set option_value='0' where option_name='moderation_notify';

update wp_options set option_value='1' where option_name='comment_moderation';

update wp_options set option_value='0' where option_name='comment_whitelist';</pre>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;1&#8242; where option_name=&#8217;default_pingback_flag&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;0&#8242; where option_name=&#8217;default_ping_status&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;0&#8242; where option_name=&#8217;default_comment_status&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;1&#8242; where option_name=&#8217;require_name_email&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;1&#8242; where option_name=&#8217;comment_registration&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;1&#8242; where option_name=&#8217;close_comments_for_old_posts&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;0&#8242; where option_name=&#8217;thread_comments&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;1&#8242; where option_name=&#8217;page_comments&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;0&#8242; where option_name=&#8217;comments_notify&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;0&#8242; where option_name=&#8217;moderation_notify&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;1&#8242; where option_name=&#8217;comment_moderation&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">update wp_options set option_value=&#8217;0&#8242; where option_name=&#8217;comment_whitelist&#8217;;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2010/11/bloqueando-comentarios-en-wordpress-desde-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows SP3 + Acronis + Imposible compartir archivos [SOLUCIONADO]</title>
		<link>http://www.alejandrorodriguez.info/2010/10/windows-sp3-acronis-imposible-compartir-archivos-solucionado/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=windows-sp3-acronis-imposible-compartir-archivos-solucionado</link>
		<comments>http://www.alejandrorodriguez.info/2010/10/windows-sp3-acronis-imposible-compartir-archivos-solucionado/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 14:12:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=336</guid>
		<description><![CDATA[La solución a un dolor de cabeza que se inicio cuando reinstale el portátil  la maquina principal con Win XP + SP3
Desde ese momento no pude compartir mas los archivos entre estos dos terminales.
Luego de mucho intentar, probar mil cosas, consultar a colegas, y de todo&#8230; Al fín di con la solución a mi problema gracias a la [...]]]></description>
			<content:encoded><![CDATA[<p>La solución a un dolor de cabeza que se inicio cuando reinstale el portátil  la maquina principal con Win XP + SP3</p>
<p>Desde ese momento no pude compartir mas los archivos entre estos dos terminales.</p>
<p>Luego de mucho intentar, probar mil cosas, consultar a colegas, y de todo&#8230; Al fín di con la solución a mi problema gracias a la web: <a href="http://winhlp.com/node/40" target="_blank">WinHlp</a></p>
<p>Mi problema puntual se pudo identificar desde el Visor de Sucesos &gt; Sistema &gt; Donde aparecían errores del tipo Srv identificados como el suceso 2011 al ver el detalle del error tenemos el siguiente mensaje</p>
<blockquote><p>El parámetro de configuración &#8220;irpstacksize&#8221; del servidor es demasiado pequeño para que el servidor pueda usar un dispositivo local. Aumente el valor de este parámetro.</p></blockquote>
<p>El tema es que al parecer el Acronis hace algo de las suyas y desaparece una entrada del registro. En síntesis la solución finalmente es sencilla. Agregar la siguiente entrada</p>
<p>HKEY_LOCAL_MACHINE<br />
\SYSTEM<br />
\CurrentControlSet<br />
\Services<br />
\LanmanServer<br />
\Parameters<br />
<strong>IRPStackSize DWORD 0&#215;00000014 (20)</strong></p>
<p>Para más información leer el post de <a href="http://winhlp.com/node/40" target="_blank">WinHlp</a> y la descripción del parámetro  <a href="http://support.microsoft.com/kb/285089/es" target="_blank">IRPStackSize</a></p>
<p>Gracias <a href="http://www.poisonclub.com.ar" target="_blank">Sebas</a>! por el soporte!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2010/10/windows-sp3-acronis-imposible-compartir-archivos-solucionado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache +urls amigables +rewritebase</title>
		<link>http://www.alejandrorodriguez.info/2010/07/apache-urls-amigables-rewritebase/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=apache-urls-amigables-rewritebase</link>
		<comments>http://www.alejandrorodriguez.info/2010/07/apache-urls-amigables-rewritebase/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 08:38:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=300</guid>
		<description><![CDATA[Acostumbrado a trabajar con VHosts para las urls amigables hago esta nota mental gracias a mi compañero @ReviewST y que para  poder trabajar con urls amigables en alias debemos tener en cuenta de poner en el  .htaccess RewriteBase /nombre_del_alias/ 
Es importante recordar de eliminarlo o documentarlo cuando publicamos el sitio en el servidor real.
]]></description>
			<content:encoded><![CDATA[<p>Acostumbrado a trabajar con VHosts para las urls amigables hago esta nota mental gracias a mi compañero <a href="http://twitter.com/reviewst" target="_blank">@ReviewST</a> y que para  poder trabajar con urls amigables en alias debemos tener en cuenta de poner en el  .htaccess <span style="color: #008000;">RewriteBase /nombre_del_alias/ </span></p>
<p>Es importante recordar de eliminarlo o documentarlo cuando publicamos el sitio en el servidor real.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2010/07/apache-urls-amigables-rewritebase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>create funcion en mysql</title>
		<link>http://www.alejandrorodriguez.info/2010/04/create-function-en-mysql/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=create-function-en-mysql</link>
		<comments>http://www.alejandrorodriguez.info/2010/04/create-function-en-mysql/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 11:25:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=294</guid>
		<description><![CDATA[Para no olvidarme&#8230;
Necesitaba recorrer las actuaciones de las collas y solo tomar los 5 mejores resultados de las mismas.
CREATE FUNCTION spf_ultimas5( p_collaID INT) returns int
READS SQL DATA
NOT DETERMINISTIC
begin
DECLARE puntos_totales,puntos INT DEFAULT 0;
DECLARE done INT DEFAULT 0;
DECLARE rs CURSOR FOR
select punts_r
from actuacions
where collaID=p_collaID
order by punts_r  desc
limit 0,5 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN rs;
repetir: [...]]]></description>
			<content:encoded><![CDATA[<p>Para no olvidarme&#8230;</p>
<p>Necesitaba recorrer las actuaciones de las collas y solo tomar los 5 mejores resultados de las mismas.</p>
<p>CREATE FUNCTION spf_ultimas5( p_collaID INT) returns int</p>
<p>READS SQL DATA<br />
NOT DETERMINISTIC</p>
<p>begin<br />
DECLARE puntos_totales,puntos INT DEFAULT 0;<br />
DECLARE done INT DEFAULT 0;<br />
DECLARE rs CURSOR FOR<br />
select punts_r<br />
from actuacions<br />
where collaID=p_collaID<br />
order by punts_r  desc<br />
limit 0,5 ;<br />
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;<br />
OPEN rs;<br />
repetir: LOOP<br />
FETCH rs INTO puntos;</p>
<p>IF done=1 THEN<br />
LEAVE repetir;<br />
END IF;<br />
SET  puntos_totales = puntos_totales  + puntos;<br />
END LOOP  repetir;<br />
CLOSE rs;<br />
RETURN puntos_totales ;<br />
end;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2010/04/create-function-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>buscando un contenido en archivos</title>
		<link>http://www.alejandrorodriguez.info/2010/01/buscando-un-contenido-en-archivos/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=buscando-un-contenido-en-archivos</link>
		<comments>http://www.alejandrorodriguez.info/2010/01/buscando-un-contenido-en-archivos/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 11:40:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=279</guid>
		<description><![CDATA[En el día de hoy me he encontrado conque necesitaba buscar un nombre de usuario de una bbdd en una carpeta enorme de un sitio en particular y que por x motivo ese user y pass de la bbdd podrían estar en diversos lugares asi que grcias a Dany2 de Convive  que me ha [...]]]></description>
			<content:encoded><![CDATA[<p>En el día de hoy me he encontrado conque necesitaba buscar un nombre de usuario de una bbdd en una carpeta enorme de un sitio en particular y que por x motivo ese user y pass de la bbdd podrían estar en diversos lugares asi que grcias a Dany2 de <a href="http://www.comvive.es/">Convive </a> que me ha tirado la línea de código pues la dejo aquí apuntada para futuros usos <img src='http://www.alejandrorodriguez.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>find directorio -name &#8220;*.php&#8221; -exec grep -l lo_que_busco {} \;</p>
<p>Luego probare otra linea que me ha pasado que serviría para reemplazar incluso. Algo as:</p>
<p>find directorio -name &#8220;*.php&#8221; -exec grep -l lo_que_busco {} \;  -exec sed -i &#8217;s/pass_old/pass_new/&#8217; {} \;</p>
<p>* Ojo esta última aún no la he probado y me aconsegjoq ue la probar en un entorno cerrado para no cargarme algo <img src='http://www.alejandrorodriguez.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2010/01/buscando-un-contenido-en-archivos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VirtualHost + Apache 2.2 en Microsoft Windows XP</title>
		<link>http://www.alejandrorodriguez.info/2009/11/virtualhost-apache-2-2-en-microsoft-windows-xp/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=virtualhost-apache-2-2-en-microsoft-windows-xp</link>
		<comments>http://www.alejandrorodriguez.info/2009/11/virtualhost-apache-2-2-en-microsoft-windows-xp/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 14:07:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[virtualhost]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=272</guid>
		<description><![CDATA[:::Borrador:::
Para poder configurar diversos sitios en nuestro ordenador y que de esta forma podamos tener todos corriendo sin la utilización de alias ni tampoco la necesidad de tener que editar continuamente el DocumentRoot. Podemos hacer uso de los Virtual Host
De esta forma podremos lograr acceder a nuestros diversos sitios de formas como
http://sitio1.localhost, http://sitio2.localhost, &#8230;, http://el-nombre-que-quieran.lo-que-quieran
En [...]]]></description>
			<content:encoded><![CDATA[<p>:::Borrador:::</p>
<p>Para poder configurar diversos sitios en nuestro ordenador y que de esta forma podamos tener todos corriendo sin la utilización de alias ni tampoco la necesidad de tener que editar continuamente el DocumentRoot. Podemos hacer uso de los Virtual Host</p>
<p>De esta forma podremos lograr acceder a nuestros diversos sitios de formas como</p>
<p>http://sitio1.localhost, http://sitio2.localhost, &#8230;, http://el-nombre-que-quieran.lo-que-quieran</p>
<p>En mi caso particular utilizo XAMPP por lo cual las rutas serán orientativas</p>
<p>Los pasos a seguir son los siguientes</p>
<ul>
<li>editar el archivo <strong>httpd-vhosts.conf</strong> ,previo backup del mismo, normalmente en <em>/xampp/apache/conf/extra/</em></li>
<li>Eliminar el comentario (#) de la línea <strong>NameVirtualHost *:80</strong></li>
<li>Especificar un grupo <strong>VirtualHost </strong>para nuestro localhost. Es importante tener en cuenta que el <strong>Document Root </strong>debe coincidir con el que tenemos configurado en el <strong>httpd.conf</strong>, normalmente en <em>/xampp/apache/conf/</em><br />
<span style="color: #008000;">&lt;VirtualHost *:80&gt;<br />
DocumentRoot &#8220;d:/xampp/htdocs&#8221;<br />
ServerName localhost:80<br />
&lt;/VirtualHost&gt;</span></li>
<li>Especificar un grupo <strong>VirtualHost </strong>para el sitio deseado<br />
<span style="color: #008000;">&lt;VirtualHost *:80&gt;<br />
ServerAdmin info@example.com<br />
DocumentRoot /sitios/tudominio.com/www<br />
ServerName tudominio.sufijo<br />
ServerAlias www.tudominio.sufijo<br />
ErrorLog logs/error_log<br />
CustomLog logs/access_log common<br />
&lt;/VirtualHost&gt;</span></li>
<li>Configurar el nivel de seguridad para la ruta<br />
<span style="color: #008000;">&lt;Directory &#8220;/sitios/tudominio.com/www/&#8221;&gt;<br />
Options Indexes FollowSymLinks Includes ExecCGI<br />
AllowOverride All<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;</span></li>
<li>Configurar el archivo <strong>hosts </strong>de nuestro ordenador (<em>c:\windows\system32\drivers\etc\hosts</em>)<br />
Agregando líneas, para cada sitio que estemos utilizando, con el contenido:<br />
127.0.0.1    tudominio.sufijo</li>
</ul>
<p>Nota: Si accederdas desde otros ordenadores y quires utilizar esta forma de acceso deberas seguramente editar el archivo <strong>hosts</strong> del ordenador y en lugar de 127.0.0.1 introducir la ip del ordenador que contiene el Web Server.</p>
<p>Nota: Esto es un borrador temporal y será editado en breve</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2009/11/virtualhost-apache-2-2-en-microsoft-windows-xp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Contando palabras y caracteres con Firefox</title>
		<link>http://www.alejandrorodriguez.info/2009/10/contando-palabras-y-caracteres-con-firefox/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=contando-palabras-y-caracteres-con-firefox</link>
		<comments>http://www.alejandrorodriguez.info/2009/10/contando-palabras-y-caracteres-con-firefox/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 10:21:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=265</guid>
		<description><![CDATA[Muchas veces pense que sería útil esto pero nunca lo busque ahora que lo busque y lo encontre para no olvidarme lo apunto aquí
Word Count Plus    1.2.3
por S Waters
https://addons.mozilla.org/es-ES/firefox/addon/4718
]]></description>
			<content:encoded><![CDATA[<p>Muchas veces pense que sería útil esto pero nunca lo busque ahora que lo busque y lo encontre para no olvidarme lo apunto aquí</p>
<h2 dir="ltr" lang="en-US"><span>Word Count Plus    1.2.3</span></h2>
<h4>por <a href="https://addons.mozilla.org/es-ES/firefox/user/115255">S Waters</a></h4>
<p><a href="https://addons.mozilla.org/es-ES/firefox/addon/4718" target="_blank">https://addons.mozilla.org/es-ES/firefox/addon/4718</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2009/10/contando-palabras-y-caracteres-con-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache2 y mod_rewrite</title>
		<link>http://www.alejandrorodriguez.info/2009/08/apache2-y-mod_rewrite/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=apache2-y-mod_rewrite</link>
		<comments>http://www.alejandrorodriguez.info/2009/08/apache2-y-mod_rewrite/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 10:14:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=254</guid>
		<description><![CDATA[Bajo Ubuntu Server y con Apache2 se pueden habilitar modulos mediante el comando &#8220;a2enmod&#8221; de forma tal que para habilitar el mod_rewrite podemos ejecutar desde consola &#8220;a2enmod rewrite&#8221; y quedará todo listo para poder tener habilitado ese modulo.
Ah tener en cuenta de verificar como se encuentra el AllowOverride que para qeu funcione debemos tenerlo en [...]]]></description>
			<content:encoded><![CDATA[<p>Bajo Ubuntu Server y con Apache2 se pueden habilitar modulos mediante el comando &#8220;a2enmod&#8221; de forma tal que para habilitar el <strong>mod_rewrite</strong> podemos ejecutar desde consola &#8220;<strong>a2enmod rewrite</strong>&#8221; y quedará todo listo para poder tener habilitado ese modulo.</p>
<p>Ah tener en cuenta de verificar como se encuentra el <strong>AllowOverride </strong>que para qeu funcione debemos tenerlo en <strong>All </strong>y no en <span style="text-decoration: line-through;">None</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2009/08/apache2-y-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery para principiantes</title>
		<link>http://www.alejandrorodriguez.info/2009/07/jquery-para-principiantes/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=jquery-para-principiantes</link>
		<comments>http://www.alejandrorodriguez.info/2009/07/jquery-para-principiantes/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 19:52:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apuntes]]></category>

		<guid isPermaLink="false">http://www.alejandrorodriguez.info/?p=242</guid>
		<description><![CDATA[Esta entrada es vecina de la de Linux  pues es un recopilatorio de cosas que he ido necesitando y con las que he ido trabajando en jQuery espero que les sirvan y seguire editando a medida que vayan surgiendo nuevos apuntes.
Garantizarme este todo listo para operar con los Ids  es mejor trabajar dentro de esta [...]]]></description>
			<content:encoded><![CDATA[<p>Esta entrada es vecina de la de Linux  pues es un recopilatorio de cosas que he ido necesitando y con las que he ido trabajando en jQuery espero que les sirvan y seguire editando a medida que vayan surgiendo nuevos apuntes.<span id="more-242"></span></p>
<p><strong>Garantizarme este todo listo para operar con los Ids  es mejor trabajar dentro de esta function.</strong><br />
$(document).ready(function() {<br />
// lo que quiera<br />
});</p>
<p><strong>Agregar una clase a un id</strong><br />
$(&#8217;#popDiselo&#8217;).addClass(&#8217;opcioHo&#8217;);</p>
<p><strong>Mostrar todos los li que tienen un class especifico</strong><br />
$(&#8221;li.colorLateral&#8221;).show();</p>
<p><strong>Capturar valor del elemento de formulario</strong><br />
$(&#8221;#algo&#8221;).val()</p>
<p><strong>Capturar valor del elemento id html</strong><br />
$(&#8221;#parrafo1&#8243;).html()</p>
<p><strong>Mete contenido en el id especificado. Soporta html tags</strong><br />
$(&#8221;#algo&#8221;).html( &#8216;contenido&#8217;)</p>
<p><strong>Me genera la cadena de datos que puedo querer enviar tipo</strong><br />
single=Single&amp;multiple=Multiple&amp;multiple=Multiple3&amp;check=check1&amp;check=check2&amp;radio=radio2<br />
var datos= $(&#8221;#form&#8221;).serialize();</p>
<p><strong>Puedo usarla en conjunción con el post:</strong><br />
datos=    &#8217;accion=diselo&amp;&#8217;+$(&#8221;#frmDiselo&#8221;).serialize();<br />
$.post(&#8217;ajax.gateway.php&#8217;, datos,&#8230;..</p>
<p><strong>Mostrar un ID</strong><br />
$(&#8217;#popDiselo&#8217;).show();</p>
<p><strong>Ocultar un ID</strong><br />
$(&#8217;#popDiselo&#8217;).hide();</p>
<p><strong>Definir acciones para cuando hagan click en un elemento.</strong><br />
$(&#8217;#btnDiseloCerrar&#8217;).click(function() {<br />
$(&#8217;#popDiselo&#8217;).hide();<br />
});</p>
<p><strong>Enviar datos y recibir respuesta…</strong><br />
$.post(&#8217;ajax.gateway.php&#8217;, datos,<br />
function (resp) {<br />
//resp[0]<br />
}, &#8220;json&#8221;);</p>
<p><strong>Cambiando atributos dinámicamente. Ej. Src de una imagen</strong><br />
$(&#8221;#imatgeQ&#8221;).attr(&#8221;src&#8221;, &#8220;./game/img/juegos/&#8221;+resp[0]);</p>
<p><strong>Timers (esto no es jQuery pero lo necesite <img src='http://www.alejandrorodriguez.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</strong><br />
setInterval(&#8221;dummy()&#8221;, 1000);</p>
<p><strong>Comunicarse via GET y Json</strong><br />
$.getJSON(&#8217;gateway.proc.php?accion=hotbutton&#8217;,<br />
function parsearData(resp) {<br />
$(&#8221;#resultado_hotbutton&#8221;).html(resp['resultado']);<br />
}<br />
);</p>
<p><strong>Un poco de efectos</strong><br />
$(&#8221;#resultado_hotbutton&#8221;).fadeIn(&#8217;slow&#8217;).animate({opacity: 1.0}, 3000).fadeOut(&#8217;slow&#8217;, function() {<br />
$(this).hide();<br />
$(&#8221;#resultado_hotbutton&#8221;).html(&#8221;&#8230;&#8221;);<br />
$(&#8221;#resultado_hotbutton&#8221;).show();<br />
});</p>
<p><strong>Recorre una matriz retornada desde php</strong><br />
$.each(resp[1], function(i,item){<br />
frases+=item+&#8221;&lt;br /&gt;&#8221;;<br />
})</p>
<p><strong>otra forma&#8230;</strong></p>
<p>$.each(resp['bids'], function(i,item){<br />
estiloCSS=(item[3]==&#8221;1&#8243; ) ?&#8221;Estilo8Red&#8221;:&#8221;Estilo8&#8243;    // Definir que estilo usar<br />
contenido = contenido + &#8216; &lt;tr bgcolor=&#8221;#ebebeb&#8221; &gt; &lt;td align=&#8221;center&#8221;&gt;&#8217;+ item[0]+&#8217;&lt;/td&gt;&lt;td align=&#8221;center&#8221;&gt;&#8217;+ item[1]+&#8217;&lt;/td&gt; &lt;td align=&#8221;center&#8221; &gt;&#8217;+ item[2]+&#8217;&lt;/td&gt;&lt;/tr&gt;&#8217; ;<br />
})</p>
<p><strong>y otra forma&#8230;</strong></p>
<p>$.each(resp[3], function(i,item){<br />
informacion+=&#8217;&lt;li&gt;&#8217;;<br />
informacion+=&#8217;&lt;h4&gt;&#8217;;<br />
informacion+=&#8217;&lt;a href=&#8221;operadores_detalle.php?informacionID=&#8217;+item["informacionID"]+&#8217;&#8221;&gt;&#8217;;<br />
informacion+=item["titulo"];<br />
informacion+=&#8217;&lt;/a&gt;&#8217;;<br />
informacion+=&#8217;&lt;/h4&gt;&#8217;;<br />
informacion+=&#8217;&lt;p&gt;&#8217;;<br />
informacion+=item["fecha"];<br />
informacion+=&#8217;&lt;br /&gt;&#8217;;<br />
informacion+=item["entradilla"];<br />
informacion+=&#8217;&lt;/p&gt;&#8217;;<br />
informacion+=&#8217;&lt;/li&gt;\r\n&#8217;;<br />
idx_informacion++;<br />
})</p>
<p><strong>Traductor requiere .js especial</strong><br />
$(&#8217;#text&#8217;).translate(&#8217;ca&#8217;, &#8216;en&#8217;);</p>
<p><strong>Aplicar una clase a varios ID´s</strong><br />
$(&#8217;#frmDiselo_ok, #frmDiselo_ko&#8217;).addClass(&#8221;desaparece&#8221;);</p>
<p>Acciones consecutivas. En el ejemplo agrego una clase a un DIV y luego lo muestro<br />
$(&#8217;#popDiselo&#8217;).addClass(&#8217;opcioHo&#8217;).show();</p>
<p><strong>Capturar valor de un Radio Button</strong><br />
$(&#8217;input:radio&#8217;).click(function(){<br />
valor = $(this).attr(&#8221;value&#8221;);<br />
})</p>
<p>$(&#8221;.wr_cv div form blockquote&#8221;).before(&#8221;algo&#8221;);</p>
<p>console.log( $(&#8221;input[@name='modalidad']:checked&#8221;).val() );</p>
<p><strong>Esto es del player de flash que uso para flvs y audios y asi no me olvido&#8230;</strong><br />
audio.sendEvent(&#8217;STOP&#8217;);<br />
audio.sendEvent(&#8217;LOAD&#8217;, &#8216;./game/audios/&#8217;+mp3);</p>
<p><strong>Enviar Formularios<br />
</strong></p>
<p>$(&#8221;#myform&#8221;).ajaxForm({<br />
url: &#8220;mypage.php&#8221;,<br />
type: &#8220;POST&#8221;<br />
});</p>
<p><strong>Lectura de atributos<br />
</strong></p>
<p>$(this).attr(&#8221;rel&#8221;);</p>
<p><strong>Controlando los timeout´s<br />
</strong></p>
<p>// fuente: http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=715<br />
$.ajax({<br />
url : &#8216;ajaxurl.json&#8217;,<br />
type : &#8216;get&#8217;,<br />
data :  {name : &#8216;value&#8217;},<br />
dataType : &#8216;json&#8217;,<br />
timeout : 20000,<br />
tryCount : 0,<br />
retryLimit : 3,<br />
success : function(json) {<br />
//do something<br />
},<br />
error : function(xhr, textStatus, errorThrown ) {<br />
if (textStatus == &#8216;timeout&#8217;) {<br />
this.tryCount++;<br />
if (this.tryCount &lt;= this.retryLimit) {<br />
//try again<br />
$.ajax(this);<br />
return;<br />
}<br />
alert(&#8217;We have tried &#8216; + this.retryLimit + &#8216; times and it is still not working. We give in. Sorry.&#8217;);<br />
return;<br />
}<br />
if (xhr.status == 500) {<br />
alert(&#8217;Oops! There seems to be a server problem, please try again later.&#8217;);<br />
} else {<br />
alert(&#8217;Oops! There was a problem, sorry.&#8217;);<br />
}<br />
}<br />
});</p>
<p><strong>Resetear los campos de un formulario</strong></p>
<p>$(&#8217;#frmFichaRecomendar&#8217;).each (function(){<br />
this.reset();<br />
});</p>
<p><strong>Copiar al Clipboard</strong></p>
<p>http://code.google.com/p/zeroclipboard/<br />
$(&#8217;a#copy-description&#8217;).zclip({<br />
path:&#8217;js/ZeroClipboard.swf&#8217;,<br />
copy:$(&#8217;p#description&#8217;).text()<br />
});</p>
<p><strong>Estado de un CheckBox</strong></p>
<p><span style="white-space: pre;"> </span>/**</p>
<p><span style="white-space: pre;"> </span> * checkout/datos entrega</p>
<p><span style="white-space: pre;"> </span> */</p>
<p><span style="white-space: pre;"> </span>$(&#8221;#entrega_igual_general&#8221;).change(function() {<span style="white-space: pre;"> </span></p>
<p><span style="white-space: pre;"> </span>if ( $(this).is(&#8217;:checked&#8217;)) {</p>
<p><span style="white-space: pre;"> </span>_mylog(&#8221;SI&#8221;);</p>
<p><span style="white-space: pre;"> </span>} else {</p>
<p><span style="white-space: pre;"> </span>_mylog(&#8221;NO&#8221;);</p>
<p><span style="white-space: pre;"> </span>}</p>
<p><span style="white-space: pre;"> </span>});<span style="white-space: pre;"> </span></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>/**</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span> * checkout/datos entrega</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span> */</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>$(&#8221;#entrega_igual_general&#8221;).change(function() {<span style="white-space: pre;"> </span></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>if ( $(this).is(&#8217;:checked&#8217;)) {</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>_mylog(&#8221;SI&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>} else {</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>_mylog(&#8221;NO&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3124px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>});<span style="white-space: pre;"> </span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alejandrorodriguez.info/2009/07/jquery-para-principiantes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

