<?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>BodegaWeb &#187; Software</title>
	<atom:link href="http://bodegaweb.com/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://bodegaweb.com</link>
	<description>De todo un poco en internet</description>
	<lastBuildDate>Fri, 30 Apr 2010 04:37:20 +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>Como instalar Linux CentOS 5 facilmente</title>
		<link>http://bodegaweb.com/como-instalar-linux-centos-5-facilmente.html</link>
		<comments>http://bodegaweb.com/como-instalar-linux-centos-5-facilmente.html#comments</comments>
		<pubDate>Thu, 21 Jan 2010 06:04:00 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[Sistemas Operativos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=264</guid>
		<description><![CDATA[CentOS que significa Community ENTerprise Operating System es un sistema operativo basado en linux hecho especialmente para servidores, no es un sistema operativo casual para usuarios principiantes, es un sistema muy estable y seguro el cual no se debe de reiniciar constantemente ni usar sin precaucion. Regularmente es usado para servidores web, de aplicaciones profesionales, [...]]]></description>
			<content:encoded><![CDATA[<p>CentOS que significa Community ENTerprise Operating System es un sistema operativo basado en linux hecho especialmente para servidores, no es un sistema operativo casual para usuarios principiantes, es un sistema muy estable y seguro el cual no se debe de reiniciar constantemente ni usar sin precaucion. Regularmente es usado para servidores web, de aplicaciones profesionales, juegos y demas.</p>
<p>Un gran tutorial paso a paso para instalarlo se encuentra en:<a href="http://www.alcancelibre.org/staticpages/index.php/como-centos5-grafico" target="_blank"></p>
<p>http://www.alcancelibre.org/staticpages/index.php/como-centos5-grafico</a></p>
<p>Para descargar CentOS 5 gratis es en:<br />
<a href="http://mirror.centos.org/centos/5/isos/i386/" target="_blank">http://mirror.centos.org/centos/5/isos/i386/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/como-instalar-linux-centos-5-facilmente.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seo: Como optimizar nuestra paginacion para los buscadores (parte 1).</title>
		<link>http://bodegaweb.com/seo-como-optimizar-nuestra-paginacion-para-los-buscadores-parte-1.html</link>
		<comments>http://bodegaweb.com/seo-como-optimizar-nuestra-paginacion-para-los-buscadores-parte-1.html#comments</comments>
		<pubDate>Thu, 09 Jul 2009 15:19:41 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Seo]]></category>
		<category><![CDATA[buscadores]]></category>
		<category><![CDATA[goole]]></category>
		<category><![CDATA[optimizacion]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=251</guid>
		<description><![CDATA[En esta ocacion les traigo un consejo mas para Seo, es un consejo muy util y que no todos saben, con el cual aprovecharan al 100% la paginacion de sus sitios.
Con paginacion me refiero cuando tienen articulos, notas, paginas, de la forma en que aparece en la parte inferior algo como Pagina 1 2 3 [...]]]></description>
			<content:encoded><![CDATA[<p>En esta ocacion les traigo un consejo mas para Seo, es un consejo muy util y que no todos saben, con el cual aprovecharan al 100% la paginacion de sus sitios.<br />
Con paginacion me refiero cuando tienen articulos, notas, paginas, de la forma en que aparece en la parte inferior algo como Pagina 1 2 3 4 5 6 7 8.</p>
<p>Normalmente, si no lo tienen optimizado cada una de las paginas tiene el mismo titulo, ya sea la pagina 1, 2, 3, 4, 5, etc&#8230; todas comparten el titulo. Para lo que vamos a hacer es necesario tener conocimientos en php.</p>
<p>La idea es colocar un titulo unico para cada pagina de la paginacion, y estos titulos los vamos a conocer de 2 formas diferentes.</p>
<p>1. La primera es listando una serie de frases con las cuales nos queremos posicionar.<br />
2. La segunda es conociendo las frases de busqueda por las que han entrado a nuestro sitio desde buscadores, y aun no aparecemos en el puesto #1 o cercano. Esto lo podemos hacer con google analytics para conocer las entradas desde buscadores.</p>
<p>Ahora nos disponemos a hacer el listado completo de frases que serviran para los titulos de nuestra paginacion.</p>
<p>Ej:</p>
<blockquote><p>$titulos=array(<br />
&#8220;Autos deportivos&#8221;,<br />
&#8220;Fotos de Autos&#8221;,<br />
&#8220;Fotos de coches&#8221;,<br />
&#8220;Autos arreglados&#8221;);</p>
<p>//Debemos de saber la pagina actual, para extraer el titulo correspondiente.<br />
$titulo_actual=$titulos[$pagina];</p></blockquote>
<p>Ya conociendo el titulo de la pagina, debemos colocarlo en las etiquetas de &lt;title&gt;&lt;/title&gt; dentro del &lt;header&gt;&lt;/header&gt;.</p>
<blockquote><p>echo &#8220;&lt;title&gt;$titulo_actual&lt;/title&gt;&#8221;;</p></blockquote>
<p>Posteriormente lo colocaremos dentro de etiquetas &lt;h1&gt;  o &lt;h2&gt; en el contenido del sitio.</p>
<blockquote><p>echo &#8220;&lt;h2&gt;$titulo_actual&lt;/h2&gt;&#8221;;</p></blockquote>
<p>Ya con esto empezamos a optimizar la paginacion para los buscadores, teniendo un titulo unico de pagina y la frase optimizada dentro del contenido de nuestro sitio.</p>
<p>Y esto es todo, mas adelante publicare el consejo numero 2 para optimizar la paginacion para buscadores.</p>
<p>Seo y optimizacion para buscadores.</p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/seo-como-optimizar-nuestra-paginacion-para-los-buscadores-parte-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PhpMailer directo a Bandeja de Entrada (Hotmail)</title>
		<link>http://bodegaweb.com/phpmailer-directo-a-bandeja-de-entrada-hotmail.html</link>
		<comments>http://bodegaweb.com/phpmailer-directo-a-bandeja-de-entrada-hotmail.html#comments</comments>
		<pubDate>Fri, 08 May 2009 09:10:10 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[PhpMailer]]></category>
		<category><![CDATA[hotmail]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=213</guid>
		<description><![CDATA[PhpMailer es un sistema para enviar correos facilmente desde tu web. (Posteriormente explicaremos mas al respecto).
Lo curioso es que normalmente HOTMAIL manda a correo no deseado los mensajes provinientes de direcciones desconocidas.
Solo los que son &#8220;direcciones seguras&#8221; llegan a tu bandeja de entrada.
Cuando me puse a probar el &#8220;test_script&#8221; que viene en la libreria PHPMAILER [...]]]></description>
			<content:encoded><![CDATA[<p>PhpMailer es un sistema para enviar correos facilmente desde tu web. (Posteriormente explicaremos mas al respecto).</p>
<p>Lo curioso es que normalmente HOTMAIL manda a <strong>correo no deseado</strong> los mensajes provinientes de direcciones desconocidas.<br />
Solo los que son &#8220;direcciones seguras&#8221; llegan a tu <strong>bandeja de entrada</strong>.</p>
<p>Cuando me puse a probar el &#8220;<span style="color: #0000ff;"><strong>test_script</strong></span>&#8221; que viene en la libreria PHPMAILER me di cuenta que los correos llegaban directo a <strong>Bandeja de entrada</strong>.<br />
Hice varias pruebas con mis propios scripts, y todos llegaban a <strong>correo no deseado</strong> si la direccion no estaba en la <strong>lista segura</strong>.</p>
<p>Al percatarme de esto, hice modificaciones en el &#8220;<span style="color: #0000ff;"><strong>test_script</strong></span>&#8221; y fue que me di cuenta, que si dejamos en el titulo <strong>&#8220;PHPMailer SMTP&#8221; </strong>y como Attachment la imagen que viene por defecto <strong>$mail-&gt;AddAttachment(&#8220;images/phpmailer.gif&#8221;, &#8220;phpmailer.gif&#8221;);</strong> asi si llegaba directo a <strong>Bandeja de entrada</strong>.</p>
<h3>¿A que se debe esto?</h3>
<p>No lo se, quiza Hotmail de ciertos permisos, cuando llega ese &#8220;titulo&#8221; mas ese &#8220;archivo adjunto&#8221;.</p>
<p><strong>¿Quien se anima a hacer pruebas de spam con ese metodo?<br />
¿Llegara a bandeja de entrada siempre?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/phpmailer-directo-a-bandeja-de-entrada-hotmail.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Script AVG 15 Greasemonkey para Neobux</title>
		<link>http://bodegaweb.com/script-avg-15-greasemonkey-para-neobux.html</link>
		<comments>http://bodegaweb.com/script-avg-15-greasemonkey-para-neobux.html#comments</comments>
		<pubDate>Mon, 27 Apr 2009 20:58:29 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[Neobux.com]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[AVG]]></category>
		<category><![CDATA[greasemonkey neobux]]></category>
		<category><![CDATA[Script Neobux]]></category>
		<category><![CDATA[Sencillo script greasemonkey para neobux]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=210</guid>
		<description><![CDATA[Aqui les traigo una util herramienta que muchos han de estar esperando.
Un dato que te de la cantidad de clicks que el usuario ha dado en los ultimos 15 dias y el promedio. El AVG 15.
Con esta util herramienta evitaras contar uno a uno los clicks que dio en los ultimos 15 dias ya que [...]]]></description>
			<content:encoded><![CDATA[<p>Aqui les traigo una util herramienta que muchos han de estar esperando.</p>
<p>Un dato que te de la cantidad de clicks que el usuario ha dado en los ultimos 15 dias y el promedio. El AVG 15.</p>
<p>Con esta util herramienta evitaras contar uno a uno los clicks que dio en los ultimos 15 dias ya que te muestra automaticamente el numero de clicks y el AVG 15.</p>
<p><img title="greasemonkey neobux " src="http://arquitectoweb.com/servicios/neobux/chart_15d.jpg" alt="greasemonkey neobux " width="492" height="225" /></p>
<p><strong>SOLO USUARIOS GOLDEN O SUPERIOR</strong></p>
<p><a href="http://arquitectoweb.com/servicios/neobux/avg_15_days_neobux.user.js">Para instalar click aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/script-avg-15-greasemonkey-para-neobux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax en GreaseMonkey</title>
		<link>http://bodegaweb.com/ajax-en-greasemonkey.html</link>
		<comments>http://bodegaweb.com/ajax-en-greasemonkey.html#comments</comments>
		<pubDate>Mon, 27 Apr 2009 18:31:38 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=204</guid>
		<description><![CDATA[Ajax (Asynchronous JavaScript And XML) como muchos saben es una forma de cargar &#8220;codigo&#8221; sin tener que recargar o ir a otra pagina, de manera &#8220;oculta&#8221; y con Javascript.
Ajax es excelente para aplicaciones que necesitan una rapida actualizacion y constante.
Ahora bien, tambien es posible usar Ajax con GreaseMonkey, y esto te da un sin numero [...]]]></description>
			<content:encoded><![CDATA[<p>Ajax (Asynchronous JavaScript And XML) como muchos saben es una forma de cargar &#8220;codigo&#8221; sin tener que recargar o ir a otra pagina, de manera &#8220;oculta&#8221; y con Javascript.<br />
Ajax es excelente para aplicaciones que necesitan una rapida actualizacion y constante.</p>
<p>Ahora bien, tambien es posible usar Ajax con GreaseMonkey, y esto te da un sin numero de posibilidades, ya que puedes hacer llamadas a un servidor especifico para obtener datos y mostrarlos en la pagina deseada (con o sin permiso del dueño de la pagina).</p>
<p>Para hacer eso usamos esta sencilla funcion:<br />
<span id="more-204"></span></p>
<p><strong>Metodo Get.</strong></p>
<pre lang="javascript">
function get(url, cb) {
    GM_xmlhttpRequest({
        method: "GET",
        url: url,
        onload: function(xhr) { cb(xhr.responseText) }
    })
}</pre>
<p>y lo hacemos funcionar de la siguiente manera:</p>
<pre lang="javascript">
function inform(text) {
    alert("The HTML of the page: \n" + text);
}
get("http://www.google.com", inform);</pre>
<p><strong>Metodo Post.</strong></p>
<pre lang="javascript">
function post(url, data, cb) {
    GM_xmlhttpRequest({
        method: "POST",
        url: url,
        headers:{'Content-type':'application/x-www-form-urlencoded'},
        data:encodeURI(data),
        onload: function(xhr) { cb(xhr.responseText); }
    });
}</pre>
<p>Y su forma de uso es:</p>
<pre lang="javascript">
function inform(text) {
    alert("The HTML of the page: \n" + text);
}
post('http://www.flash-mx.com/mm/viewscope.cfm', 'userid=joe&#038;password=guessme', inform);
</pre>
<p>Espero les haya servido el sencillo ejemplo, y con un poco de imaginacion pueden crear grandes aplicaciones en GreaseMonkey.</p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/ajax-en-greasemonkey.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grafica de ganancias para Neobux</title>
		<link>http://bodegaweb.com/grafica-de-ganancias-para-neobux.html</link>
		<comments>http://bodegaweb.com/grafica-de-ganancias-para-neobux.html#comments</comments>
		<pubDate>Mon, 27 Apr 2009 09:09:24 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[Neobux.com]]></category>
		<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[greasemonkey neobux]]></category>
		<category><![CDATA[Neobux]]></category>
		<category><![CDATA[PTC]]></category>
		<category><![CDATA[Script Neobux]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Sencillo script greasemonkey para neobux]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=197</guid>
		<description><![CDATA[En Neobux es MUY importante saber si lo que estamos invirtiendo en rentar referidos nos esta dejando ganancias, y es por eso que he creado un nuevo sencillo script greasemonkey para neobux.
Greasemonkey Earnings and profits Neobux Chart Statistics.
Este script muestra 2 graficas nuevas en la seccion de &#8220;Statistics&#8220;. Ambas con los Egresos, Ingresos y Ganancias, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_190" class="wp-caption alignright" style="width: 210px"><a href="http://bodegaweb.com/wp-content/uploads/2009/04/neobux.jpg"><img class="size-full wp-image-190" title="Nuevo script greasemonkey para neobux" src="http://bodegaweb.com/wp-content/uploads/2009/04/neobux.jpg" alt=" Grafica de ganancias greasemonkey para neobux" width="200" height="77" /></a><p class="wp-caption-text"> </p></div>
<p>En <a title="¿Que es Neobux?" href="http://bodegaweb.com/?p=67" target="_blank">Neobux</a> es <strong>MUY </strong>importante saber si lo que estamos invirtiendo en rentar referidos nos esta dejando ganancias, y es por eso que he creado un <strong>nuevo</strong> <strong>sencillo script greasemonkey para neobux</strong>.</p>
<p>Greasemonkey Earnings and profits Neobux Chart Statistics.</p>
<p>Este script muestra 2 graficas nuevas en la seccion de <strong>&#8220;<span class="azul">Statistics</span>&#8220;. </strong>Ambas con los Egresos, Ingresos y Ganancias, diarias y de todo el mes.<br />
Es fundamental saber estos datos para ver si vamos bien o mal, por lo que esta grafica es un recurso basico que todos los Neobuxeros deben de tener.<br />
Funciona recopilando los datos que Neobux nos ofrece en la seccion Statistics, procesandolos y calculando los datos que normalmente tu haces en la calculadora o en tu cabeza.</p>
<p>Para instalarlo debes tener primero que nada la extension <a title="GreaseMonkey" href="http://bodegaweb.com/?p=65" target="_blank">GreaseMonkey (vease definicion)</a> .<br />
Posteriormente solo da click en alguno de estos archivos para su instalacion.</p>
<p><span style="color: #800000;"><strong><a title="Nuevo script Greasemonkey para neobux" href="http://arquitectoweb.com/servicios/neobux/in-out_neobux_chart_standard.user.js">SI TU CUENTA ES STANDARD<br />
</a></strong></span></p>
<p><span style="color: #ff6600;"><strong><a title="Grafica de ganancias para Neobux" href="http://arquitectoweb.com/servicios/neobux/in-out_neobux_chart_golden.user.js">SI TU CUENTA ES GOLDEN</a></strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/grafica-de-ganancias-para-neobux.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Calculadora de ganancias de NeoBux</title>
		<link>http://bodegaweb.com/calculadora-de-ganancias-de-neobux.html</link>
		<comments>http://bodegaweb.com/calculadora-de-ganancias-de-neobux.html#comments</comments>
		<pubDate>Sat, 25 Apr 2009 01:26:46 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[Neobux.com]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[greasemonkey neobux]]></category>
		<category><![CDATA[Neobux]]></category>
		<category><![CDATA[Programas para paginas ptc]]></category>
		<category><![CDATA[PTC]]></category>
		<category><![CDATA[Script Neobux]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=195</guid>
		<description><![CDATA[Navegando en internet me encontre una curiosa y efectiva calculadora de ganancias de Neobux, es cuestion de introducir unos cuantos datos para que la calculadora te diga cuanto puedes ganar diario, mensual, anual, cuantos dias tardas en recuperar la inversion y cuantos dias tardas en llegar a una Meta.
El sitio en cuestion es: http://getpaidtoinfo.com/neocalc/
Cabe mencionar [...]]]></description>
			<content:encoded><![CDATA[<p>Navegando en internet me encontre una curiosa y efectiva calculadora de ganancias de Neobux, es cuestion de introducir unos cuantos datos para que la calculadora te diga cuanto puedes ganar diario, mensual, anual, cuantos dias tardas en recuperar la inversion y cuantos dias tardas en llegar a una Meta.</p>
<p><strong>El sitio en cuestion es: <a href="http://getpaidtoinfo.com/neocalc/" target="_blank">http://getpaidtoinfo.com/neocalc/</a></strong></p>
<p>Cabe mencionar que estos calculos son relativos, depende de como actuen tus referidos, pero es muy aproximado.</p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/calculadora-de-ganancias-de-neobux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CheckBoxMate: Herramienta para seleccionar los Referidos</title>
		<link>http://bodegaweb.com/checkboxmate-herramienta-para-seleccionar-con-facilidad-los-referidos.html</link>
		<comments>http://bodegaweb.com/checkboxmate-herramienta-para-seleccionar-con-facilidad-los-referidos.html#comments</comments>
		<pubDate>Thu, 23 Apr 2009 08:01:53 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[CheckBoxMate]]></category>
		<category><![CDATA[Mozilla Firefox]]></category>
		<category><![CDATA[Neobux.com]]></category>
		<category><![CDATA[greasemonkey neobux]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Neobux]]></category>
		<category><![CDATA[Programas para paginas ptc]]></category>
		<category><![CDATA[PTC]]></category>
		<category><![CDATA[Script Neobux]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=189</guid>
		<description><![CDATA[Hoy paseandome por el foro de Neobux, vi que el compañero Lehoi posteo una util herramienta que puedes usar para tu propio beneficio.
Su nombre es CheckBoxMate y sirve  para seleccionar los boxes o los cuadros de seleccion de los referidos de forma rapida y sencilla.
Esto es util para cuando reciclas  muchos referidos al mismo tiempo, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_190" class="wp-caption alignright" style="width: 210px"><a href="http://bodegaweb.com/wp-content/uploads/2009/04/neobux.jpg"><img class="size-full wp-image-190" title="CheckBoxMate Neobux" src="http://bodegaweb.com/wp-content/uploads/2009/04/neobux.jpg" alt="CheckBoxMate Neobux" width="200" height="77" /></a><p class="wp-caption-text"> </p></div>
<p>Hoy paseandome por el foro de Neobux, vi que el compañero <span style="font-family: Helvetica,Arial,Geneva,sans-serif; font-size: 20px;">Lehoi</span> posteo una util herramienta que puedes usar para tu propio beneficio.</p>
<p>Su nombre es <strong>CheckBoxMate</strong> y sirve  para seleccionar los boxes o los cuadros de seleccion de los referidos de forma rapida y sencilla.</p>
<p>Esto es util para cuando reciclas  muchos referidos al mismo tiempo, en lugar de seleccionar uno a uno, de una ves seleccionas todos. Para evitar tanta explicacion les dejo un ejemplo grafico de la utilidad: <a title="CheckBoxMate Neobux" href="http://www.screentoaster.com/watch/stU0tXREVLR15YSVVYWlNQ" target="_blank">http://www.screentoaster.com/watch/stU0tXREVLR15YSVVYWlNQ</a></p>
<p>Para descargarlo acudan aqui:</p>
<p><strong>CheckBoxMate</strong><br />
<a title="CheckBoxMate" href="https://addons.mozilla.org/es-ES/firefox/addon/9740" target="_blank">https://addons.mozilla.org/es-ES/firefox/addon/9740</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/checkboxmate-herramienta-para-seleccionar-con-facilidad-los-referidos.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar PHP 4 en Windows</title>
		<link>http://bodegaweb.com/instalar-php-4-en-windows.html</link>
		<comments>http://bodegaweb.com/instalar-php-4-en-windows.html#comments</comments>
		<pubDate>Mon, 30 Mar 2009 21:33:45 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=104</guid>
		<description><![CDATA[En este post te enseñaremos como instalar PHP 4 en Windows, sabemos que no es la version mas actualizada y proximamente te traeremos el manual para instalar PHP 5 en cualquier sistema operativo.

1. En http://www.php.net/downloads.php dirígete a &#8220;Windows binaries&#8221; y descárgate la última versión estable del programa.
2. Descomprime el archivo que te acabas de bajar [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_124" class="wp-caption alignright" style="width: 160px"><a href="http://bodegaweb.com/wp-content/uploads/2009/03/5345php.jpg"><img class="size-thumbnail wp-image-124" title="PHP LOGO" src="http://bodegaweb.com/wp-content/uploads/2009/03/5345php-150x106.jpg" alt="5345php" width="150" height="106" /></a><p class="wp-caption-text"> </p></div>
<p>En este post te enseñaremos como instalar PHP 4 en Windows, sabemos que no es la version mas actualizada y proximamente te traeremos el manual para instalar PHP 5 en cualquier sistema operativo.</p>
<p><span id="more-104"></span></p>
<p><strong>1.</strong> En <strong><a href="http://www.php.net/downloads.php" target="_blank">http://www.php.net/downloads.php</a></strong> dirígete a &#8220;<strong>Windows binaries</strong>&#8221; y descárgate la última versión estable del programa.</p>
<p><strong>2.</strong> Descomprime el archivo que te acabas de bajar y extrae todos los archivos a una capeta temporal. (Nota: asegúrate de que tu sistema está configurado para ver todos los archivos, incluso los ocultos: en el explorador pestaña &#8220;ver&#8221; elige la opción: &#8220;Mostrar todos los archivos&#8221;).</p>
<p><strong>3.</strong> Copia todos los archivos     .dll desde la carpeta temporal que hemos creado a la Carpeta System (en w95/98 es c:\windows\system, mientras que en Windows NT es c:\WINNT)</p>
<p><strong>4.</strong> Cambia el nombre del archivo <strong>php.ini-dist</strong> a <strong>php.ini</strong> y cópialo en el directorio de windows <strong>c:\windows</strong> o <strong>c:\WINNT</strong>.</p>
<ul>
<li> En C, crea una carpeta con el nombre PHP4, y copia en ella el archivo <strong>PHP.EXE</strong></li>
<li> En c:\Archivos de programa\Apache Group\Apache\conf selecciona el archivo <strong>httpd.conf </strong>y ábrelo con un editor de textos (el bloc de notas por ejemplo).</li>
</ul>
<p><strong>5.</strong> Al final del archivo httpd.conf añade las siguientes líneas:</p>
<ul>
<li> ScriptAlias /php4/ &#8220;C:/php4/&#8221;</li>
<li> AddType Application/x-httpd-php .php</li>
<li> Action application/x.httpd-php &#8220;/php4/php.exe&#8221;</li>
<li> Action application/xhttpd-php .php3 (con esta última línea te aseguras de que si sigues algún ejercicio de php3, se ejecutará correctamente).</li>
</ul>
<p><strong>6.</strong> Guarda el archivo <strong>httpd.conf</strong>. (Nota:Asegurate de que lo guardas como un archivo de texto sin formato y no como .doc o .rtf o similar)</p>
<p><strong>7.</strong> Vete otra vez al menú de inicio reinicia el servidor apache, para recargar los archivos de configuración y que apache reconozca que se la ha añadido php.</p>
<p><strong>8.</strong> Crea un archivo: info.txt, con el mismo contenido que se a continuación, y guárdalo en c:\Archivo de programas\Apache Group\Apache\httdocs con el nombre info.php (esto es, cámbiale la extensión .txt por la extensión .php)</p>
<p><strong>9.</strong> Abre el navegador y escribe <strong>http://localhost/info.php</strong> tienes que ver una página con el logo de php e información sobre la versión de php que tienes instalada. Ya está instalado y puedes empezar a programar con php.</p>
<p>Recuerda que siempre que quieras ejecutar un archivo php en local tienes que:</p>
<p><strong>1.</strong> Ejecutar Apache<br />
<strong>2.</strong> Colocar las archivos en la carpeta en c:\Archivo de programas\Apache Group\Apache\httdocs<br />
<strong>3.</strong> En el navegador dirigirte a http://localhost/carpeta/archivo.php</p>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/instalar-php-4-en-windows.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Servidor de Sockets en PHP</title>
		<link>http://bodegaweb.com/servidor-de-sockets-en-php.html</link>
		<comments>http://bodegaweb.com/servidor-de-sockets-en-php.html#comments</comments>
		<pubDate>Mon, 30 Mar 2009 07:51:48 +0000</pubDate>
		<dc:creator>ramzax200</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Raymond Fain]]></category>
		<category><![CDATA[Servidor]]></category>
		<category><![CDATA[Sockets]]></category>

		<guid isPermaLink="false">http://bodegaweb.com/?p=86</guid>
		<description><![CDATA[Un servidor de sockets es un servidor que posibilita la comunicacion entre multiples computadoras por medio de sockets, consume mucho menos recursos y bandwitdh que la comunicacion http, y es ideal para los juegos Multijugadores y Online hechos con Action Script de Flash o cualquier otro programa o lenguaje.
En esta entrada te explicaremos de manera [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_124" class="wp-caption alignright" style="width: 160px"><a href="http://bodegaweb.com/wp-content/uploads/2009/03/5345php.jpg"><img class="size-thumbnail wp-image-124" title="Servidor de Sockets en PHP" src="http://bodegaweb.com/wp-content/uploads/2009/03/5345php-150x106.jpg" alt="Servidor de Sockets en PHP" width="150" height="106" /></a><p class="wp-caption-text"> </p></div>
<p>Un servidor de sockets es un servidor que posibilita la comunicacion entre multiples computadoras por medio de sockets, consume mucho menos recursos y bandwitdh que la comunicacion http, y es <strong>ideal </strong>para los juegos <strong>Multijugadores </strong>y <strong>Online </strong>hechos con Action Script de Flash o cualquier otro programa o lenguaje.</p>
<p>En esta entrada te explicaremos de manera rapida como Crear tu propio servidor de Sockets en PHP.</p>
<p><span id="more-86"></span></p>
<p>Fuente en Ingles: http://djz.hu/2007/07/26/php-socket-server-chat-gateway-for-flash-clients/</p>
<p>Primero que nada, no pienso escribir un manual paso a paso de &#8220;COMO CREAR UN SOCKET SERVER CON PHP PARA FLASH O JUEGOS MULTIJUGADORES EN 10 MINUTOS&#8221; o algo asi.<br />
Lo que haremos sera solo explicar el funcionamiento basico del servidor de sockets con php y comunicarlo con flash en un puerto determinado.</p>
<p>Presentare ademas del codigo del servidor de sockets, un sencillo archivo en Flash, capaz de demostrar el funcionamiento de Flash con un Servidor de Sockets en php.</p>
<p>La idea fundamental y la base del sistema la hemos extraido de aqui : <a href="http://www.kirupa.com/developer/flash8/php5sockets_flash8.htm" target="_blank">kirupa.com &#8211; PHP 5 Sockets with Flash 8</a></p>
<p>Para empezar necesitamos de preferencia un servidor dedicado propio, o un servidor virtual al cual podamos tener acceso a shell o crear demonios.</p>
<p>Entonces, necesitamos crear un demonio php, sin limite de tiempo de ejecucion. Asi podra correr ilimitadamente o hasta que se reinicie el server.</p>
<p><strong>Empezando con el codigo:</strong></p>
<p>Declaramos la IP address donde nos conectaremos y el puerto escucha. Recuerden que debe de estar abierto en caso que haya un firewall.</p>
<pre lang="php">#!/usr/bin/php -q

Vamos a crear un array para las conexiones de datos, (si lo usa para chatear, sería útil para almacenar apodos en el mismo.), Y empezar a crear y escuchar un socket. Por favor tenga en cuenta, que todo lo que se imprime con "echo" va a un archivo "log" en nuestro caso.
<pre lang="php"> $_sockets = array();

if (($master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) &lt; 0)
{
  echo "socket_create() failed, reason: " . socket_strerror($master) . "\n";
}

socket_set_option($master, SOL_SOCKET,SO_REUSEADDR, 1);

if (($ret = socket_bind($master, $address, $port)) &lt; 0)
{
  echo "socket_bind() failed, reason: " . socket_strerror($ret) . "\n";
}

if (($ret = socket_listen($master, 5)) &lt; 0)
{
  echo "socket_listen() failed, reason: " . socket_strerror($ret) . "\n";
}
else
{
  $started=time();
  echo "[".date('Y-m-d H:i:s')."] SERVER CREATED ( MAXCONN:".SOMAXCONN." ) \n";
  echo "[".date('Y-m-d H:i:s')."] Listening on ".$address.":".$port."\n";
}

$read_sockets = array($master);</pre>
<p>SOMAXCONN es una variable que establece el número de conexiones que puede manejar su máquina. En el mundo Unix se puede ajustar en tiempo de compilación del kernel, o se puede ajustar via sysctl.<br />
Después de esto vamos a crear un bucle persistente para tramitar las solicitudes.</p>
<pre lang="php">while (true)
{
  $changed_sockets = $read_sockets;
  $num_changed_sockets = socket_select($changed_sockets, $write = NULL, $except = NULL, NULL);

  foreach($changed_sockets as $socket)
  {
    if ($socket == $master)
    {
	   if (($client = socket_accept($master)) &lt; 0)
	   {
       echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
    	 continue;
	   }
	   else
	   {
	     array_push($read_sockets, $client);
	     echo "[".date('Y-m-d H:i:s')."] CONNECTED "."(".count($read_sockets)."/".SOMAXCONN.")\n";
	   }
    }
    else
    {
      $bytes = @socket_recv($socket, $buffer, 2048, 0);
      /*

      Here comes the core... <img src='http://bodegaweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> 

      */
    }
}</pre>
<p>Así pues, estos son los conceptos básicos. Hasta este punto, este código es casi el mismo que Raymond Fain del socketShell.php antes mencionados.</p>
<p>Como ya he comentado vamos a editar sólo una parte del código.<br />
Por lo que cada código que cito ahora, irá dentro de el bucle principal. Despues definiremos las funciones. Estas funciones se van fuera, el bucle.<br />
Lo ideal para realizar un servidor de sockets, es que cuente con los permisos "cross-domain-policy", ya que asi posibilita la interaccion entre servidores con flash.</p>
<p>El "Cross-domain-policy" es una serie de datos, en formato XML, que se parece a esto, en nuestro caso:<br />
Por lo tanto, almacenarla en una variable, y si se hace una solicitud debemos mostrarlo:</p>
<pre lang="php">if (preg_match("/policy-file-request/i", $buffer) || preg_match("/crossdomain/i", $buffer))
{
  echo "[".date('Y-m-d H:i:s')."] CROSSDOMAIN.XML REQUEST\n";
  $contents='';

  socket_write($socket,$contents);
  $contents="";

  $index = array_search($socket, $read_sockets);
  unset($read_sockets[$index]);
  socket_shutdown($socket, 2);
  socket_close($socket);
}</pre>
<p>Al recibir una peticion de cross-domain-policy debemos cerrar el socket, ya que si se envia correctamente el permiso entonces se abre un socket nuevo con la conexion adecuada.<br />
Ahora, cuando un usuario pierde la conexion, se sale del sitio o cualquier otra razon, debemos de cortar el socket y borrar sus variables.</p>
<pre lang="php">if (strlen($buffer) == 0)
{
  //we get the user's uniqe id from the database
  $id=$_sockets[intval($socket)]['nick'];

  $index = array_search($socket, $read_sockets);

  unset($read_sockets[$index]); // we clean up
  unset($_sockets[intval($socket)]); // we clean up our own data
  // cleaning up is essential when creating a daemon
  // we can't leave junk in the memory
  @socket_shutdown($socket, 2);
  @socket_close($socket);

  $allclients = $read_sockets; // reload active clients

  // $socket is now pointing to a dead resource id
  // but the send_Message() function will need it, I'll explain later

  send_Message($allclients, "");
  echo "[".date('Y-m-d H:i:s')."] QUIT ".$id."\n";
}</pre>
<p>Y ahora, la comunicacion real del socket:</p>
<pre lang="php">else
{
  $allclients = $read_sockets;
  array_shift($allclients);

  $piece = explode(" ",trim($buffer)); // we strip out all unwanted data
  $cmd = strtoupper($piece[0]);
}</pre>
<p>Suponiendo un codigo como el del protocolo IRC: <em><strong>MSG</strong> PARA MENSAJE</em></p>
<p>Debemos separar por medio del "espacio" para formar un array, y detectar el codigo que vamos a efectuar, despues, unir el resto que sera el "mensaje":</p>
<pre lang="php">if (!empty($piece[1])) $content = $piece[1];

switch ($cmd)
{
  case "IDENTIFY":
    $id = trim($piece[1]);
    $passwd = trim($piece[2]);
    send_Identify($allclients, $socket, $id, $passwd);
  break;

  case "MSG":
    $id = trim($piece[1]);
    $msg="";
    foreach ($piece as $key=&gt;$val)
    {
      if ($key &gt; "1") $msg.=$val." ";
    }
    $msg = trim($msg);
    send_Msg($allclients, $socket, $id, $msg);
  break;

  case "LIST":
    list_Users($allclients, $socket);
    break;
}</pre>
<p>Ahora, vamos con las funciones, declaradas despues del bucle. Debemos recalcar, que para enviar datos al cliente debemos de anexar un chr(0) por alguna razon de la comunicacion.</p>
<pre lang="php">function send_Identify($allclients, $socket, $id, $passwd)
{
  global $_sockets;
  $nicks = array();

  $dbconf = new DATABASE_CONFIG;

  $db_host = $dbconf-&gt;host;
  $db_base = $dbconf-&gt;database;
  $db_login = $dbconf-&gt;login;
  $db_password = $dbconf-&gt;password;

  foreach ($_sockets as $_socket)
  {
    foreach ($_socket as $key=&gt;$val)
    {
      if (empty($nicks[$val])) $nicks[$val]=1;
      else $nicks[$val]=$nicks[$val]+1;
    }
  }

  if (empty($nicks[$id]))
  {
    $s=1;
    //  Here will be a simple authentication.

    $link = mysql_connect($db_host, $db_login, $db_password);
    if (!$link) die("Could not connect:" . mysql_error() . "\n");

    $db_selected = mysql_select_db($db_base, $link);
    if (!$db_selected) die("Can't use $db_base :" . mysql_error() . "\n");

    $result = mysql_query("SELECT nick FROM members WHERE id='".intval($id)."' AND password='".crypt($passwd)."' AND active='1' LIMIT 1");
    $data = mysql_fetch_array($result);
    $name = $data['name'];
    $_sockets[intval($socket)]=array('id'=&gt;$id, 'nick'=&gt;$name);

    mysql_free_result($result);
    mysql_close($link);</pre>
<p>Es escencial que cerremos la conexion a la base de datos, que si no en un par de horas se acomularan los intentos de conexion a la base de datos y se colapsara el server.</p>
<pre lang="php">  }
  else $s=0;

  //   We'll answer to the flash in XML form.
  //   But we receive in plain text format.

  if ($s == 1)
  {
    $out = "";
    send_Message($allclients, "");
    // this goes to all active, identified clients
    echo "[".date('Y-m-d H:i:s')."] LOGIN ".$id."(".count($allclients)."/".SOMAXCONN.")\n";
  }
  else $out = "";

  socket_write($socket, $out.chr(0)); // write back to the client
}

function send_Msg($allclients,$socket,$id,$msg)
{
    global $_sockets;

    if (!empty($_sockets[intval($socket)]))
    {
        $nicks = array(); //amig fut a parancs ebben vannak a nickek.

        foreach ($_sockets as $_socket)
        {
             foreach ($_socket as $key=&gt;$val)
             {
                  // this check's the onliners
                  if (empty($nicks[$val])) $nicks[$val]=1;
                  else $nicks[$val]=$nicks[$val]+1; // we shouldn't have duplicated nicks, but what if...
             }
        }

        foreach($allclients as $client)
        {
            if (!empty($_sockets[$client]['nick']) &amp;&amp; ($_sockets[$client]['nick'] == $id))
            {
              $_client = $client;
              $out = "";
            }
            elseif(empty($nicks[$id]))
            //not online or something similar
            {
               //backto the sender
               $_client = $socket;
               $out = "";
            }
        }
    }
    else
    {
        //backto the sender
        $_client = $socket;
        $out = "";
    }
    if (!empty($out))
    {
       socket_write($socket, $out.chr(0)); //send to back ourself. we have to handle it in flash
       socket_write($_client, $out.chr(0)); //send to the recipient
    }
}</pre>
<p>Ahora creamos la funcion encargada de enviar un mensaje a todos los conectados:</p>
<pre lang="php">    function send_Message($allclients, $socket, $buf)
    {
      global $_sockets;

      foreach($allclients as $client)
      {
        @socket_write($client, $buf.chr(0));
      }
    }

    function list_Users($allclients,$socket)
    {
      global $_sockets;
      $out = "";
      foreach($allclients as $client)
      {
        if (!empty($_sockets[$client]['nick']) &amp;&amp; ($_sockets[$client]['nick'] != ""))
        {
          $out .= "";
        }
      }
      $out .= "";
      socket_write($socket, $out.chr(0));
    }
?&gt;</pre>
<p>Y eso es todo por parte de PHP, que basicamente es lo primordial para entender el funcionamiento, de ahi podemos agregar mas funciones y comandos.<br />
<strong><a href="http://bodegaweb.com/wp-content/uploads/2009/03/phpircgateway.rar" target="_blank">El archivo fuente PHP esta AQUI</a></strong><br />
El archivo FLASH lo publicare mas adelante.<br />
Les dejo un codigo BASH de regalo que es para arrancar el demonio php.</p>
<pre lang="php">#!/bin/sh
if [ "X$1" = "Xstart" ] ; then
    chmod +x /var/www/chat/phpircgateway.php
    /var/www/chat/phpircgateway.php &gt;&gt; /var/log/chat/chat.log &amp;
    echo "Starting chat"
fi</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://bodegaweb.com/servidor-de-sockets-en-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
