<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>gespadas.com</title>
	
	<link>http://gespadas.com</link>
	<description>Desarrollo, Diseño, Linux, Software Libre y Servicios Web</description>
	<lastBuildDate>Thu, 02 Sep 2010 16:57:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/espadas" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="espadas" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://gespadas.com/?pushpress=hub" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">espadas</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Tabla Periódica de los Elementos… de HTML5</title>
		<link>http://gespadas.com/tabla-periodica-html5/</link>
		<comments>http://gespadas.com/tabla-periodica-html5/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 12:47:25 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1742</guid>
		<description><![CDATA[Este es el proyecto más creativo que he visto en las últimas semanas. Se trata de la clásica Tabla Periódica de los Elementos, pero de etiquetas (tags) HTML5. Es totalmente interactiva, pues da una breve reseña de cada etiqueta al darle click a su &#8220;elemento&#8221; correspondiente. Link: Tabla Periódica de los Elementos. Via FanPage de [...]]]></description>
			<content:encoded><![CDATA[<p>Este es el proyecto más creativo que he visto en las últimas semanas. Se trata de la clásica <strong>Tabla Periódica de los Elementos</strong>, pero de etiquetas (tags) <a href="http://gespadas.com/blog/tag/html5/"><strong>HTML5</strong></a>.</p>
<p><a href="http://joshduck.com/periodic-table.html"><img src="http://lh4.ggpht.com/_zSE2Bkb9_-0/THkAmwyDB1I/AAAAAAAAAyk/3s6QwgheO-4/html5-tabla-periodica.png" alt="Tabla Periódica de los Elementos... de HTML5" style="display:block; clear:both; margin:20px auto; border:0;" /></a></p>
<p>Es totalmente interactiva, pues da una breve reseña de cada etiqueta al darle click a su &#8220;elemento&#8221; correspondiente.</p>
<p><strong>Link</strong>: <a href="http://joshduck.com/periodic-table.html">Tabla Periódica de los Elementos</a>.</p>
<p>Via <a href="http://www.facebook.com/pages/Arch-Linux/166486441169">FanPage de <strong>ArchLinux</strong> en <strong>Facebook</strong></a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/LSh2rBCuAf4NvzpzgS2zhM3cP4A/0/da"><img src="http://feedads.g.doubleclick.net/~a/LSh2rBCuAf4NvzpzgS2zhM3cP4A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LSh2rBCuAf4NvzpzgS2zhM3cP4A/1/da"><img src="http://feedads.g.doubleclick.net/~a/LSh2rBCuAf4NvzpzgS2zhM3cP4A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/5aMxHnXxrGQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/tabla-periodica-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminar el ^M al final de las líneas en VIM</title>
		<link>http://gespadas.com/eliminar-m-final-lineas-vim/</link>
		<comments>http://gespadas.com/eliminar-m-final-lineas-vim/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 18:23:02 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1737</guid>
		<description><![CDATA[Al editar cierto código fuente que descargué de un tercero, noté que al abrirlo en vim mostraba un ^M al final de cada una de las líneas del archivo, cosa que no sucedía al abrirlo en otro editor. Investigando un poco, me encontré con el motivo y la solución. El símbolo ^M es el típico [...]]]></description>
			<content:encoded><![CDATA[<p>Al editar cierto código fuente que descargué de un tercero, noté que al abrirlo en <strong>vim</strong> mostraba un <strong><code>^M</code></strong> al final de cada una de las líneas del archivo, cosa que no sucedía al abrirlo en otro editor.</p>
<p>Investigando un poco, me encontré con <a href="http://www.linuxquestions.org/questions/linux-software-2/%5Em-and-vim-213557/">el motivo y la solución</a>. El símbolo <strong><code>^M</code></strong> es el típico <strong>CR</strong> (<strong>Carriage Return</strong>) de los archivos de texto bajo <strong>DOS</strong> / <strong>Windows</strong>. Para eliminarlo, es sumamente simple usando el comando de sustitución de caracteres de <strong>vi</strong> / <strong>vim</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">:<span style="color: #000000;">1</span>,$ s<span style="color: #000000; font-weight: bold;">/</span>^M<span style="color: #000000; font-weight: bold;">//</span></pre></div></div>

<p><strong>1,$</strong> le indica al comando <strong>s</strong> que haga el reemplazo desde la primera línea hasta la última.</p>
<p>¡TIP! Para sacar el caracter <strong><code>^M</code></strong>, debemos presionar la combinación de teclas <strong>[Ctrl] + [V]</strong> y luego presionamos <strong>[Enter]</strong>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/8FgWQjopwF9tN_wg8KV7sMqojhI/0/da"><img src="http://feedads.g.doubleclick.net/~a/8FgWQjopwF9tN_wg8KV7sMqojhI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8FgWQjopwF9tN_wg8KV7sMqojhI/1/da"><img src="http://feedads.g.doubleclick.net/~a/8FgWQjopwF9tN_wg8KV7sMqojhI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/4b7zGM46tJk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/eliminar-m-final-lineas-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronizando la Hora del Sistema con Internet en Linux</title>
		<link>http://gespadas.com/sincronizando-hora-sistema-internet-linux/</link>
		<comments>http://gespadas.com/sincronizando-hora-sistema-internet-linux/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 14:30:57 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ArchLinux]]></category>
		<category><![CDATA[Hora]]></category>
		<category><![CDATA[Reloj]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1728</guid>
		<description><![CDATA[Básicamente el objetivo es sincronizar 3 cosas: Queremos que la hora &#8220;correcta&#8221; tomada de Internet sea usada en nuestro sistema (en mi caso ArchLinux) y además establecer la misma hora en el reloj de hardware (BIOS). Para que el procedimiento descrito a continuación funcione, asumo que tienen bien configurado su sistema en lo que respecta [...]]]></description>
			<content:encoded><![CDATA[<p>Básicamente el objetivo es sincronizar 3 cosas: Queremos que la hora &#8220;correcta&#8221; tomada de <strong>Internet</strong> sea usada en nuestro sistema (en mi caso <strong>ArchLinux</strong>) y además establecer la misma hora en el reloj de <strong>hardware</strong> (<strong>BIOS</strong>).</p>
<p>Para que el procedimiento descrito a continuación funcione, asumo que tienen bien configurado su sistema en lo que respecta a la zona horaria y configuraciones regionales (en <strong>ArchLinux</strong> dicha configuración se encuentra en <strong>/etc/rc.conf</strong>).</p>
<ol>
<li>Mostrar el reloj de hardware y el reloj del sistema para verificar las horas actuales.

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hwclock <span style="color: #660033;">--show</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">date</span></pre></div></div>

</li>
<li>Instalar <strong>ntpdate</strong>.
<ul>
<li>En <strong>ArchLinux</strong>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ yaourt <span style="color: #660033;">-S</span> ntpdate</pre></div></div>

</li>
<li>En <strong>Ubuntu</strong>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ntpdate</pre></div></div>

</li>
<li>En otras distros el proceso debe ser similar.</li>
</ul>
</li>
<li>Sincronizar el reloj del sistema con Internet.

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> ntpdate pool.ntp.org</pre></div></div>

</li>
<li>Sincronizar el reloj de hardware con nuestro sistema.

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> hwclock <span style="color: #660033;">--systohc</span></pre></div></div>

</li>
<li>Repetir el primer paso para verificar que todo esté bien.</li>
</ol>
<p>¡Eso es todo! ¿A poco no es una delicia trabajar con <strong>Linux</strong>?</p>
<p><strong>[Actualización 21-Agosto-2010]</strong> A pesar del éxito del procedimiento anterior, por algún motivo que desconozco, el reloj del sistema luego de unos días regresaba a estar mal configurado (me inclino a pensar que la batería de la motherboard de mi máquina ya anda baja, pero&#8230; <em>that&#8217;s not the point!</em>); entonces me puse a pensar en alguna solución rápida, sin tantas complicaciones: Ejecutar <strong>ntpdate</strong> y <strong>hwclock</strong> (pasos 3 y 4) en el proceso de arranque del sistema.</p>
<p>Primero pensé en incluirlos en <strong><code>~/.bashrc</code></strong>, pero había la complicación de que ambos comandos requerían permisos de <strong>root</strong> para ejecutarse&#8230; y luego, revisando en la documentación oficial (¿he mencionado que la documentación oficial de <strong>ArchLinux</strong> es lo mejor de lo mejor?), me topé con <a href="http://wiki.archlinux.org/index.php/Arch_Boot_Process">el proceso de booteo</a>, y entonces ¡se hizo la luz!, los comandos tenía que incluirlos en <strong><code>/etc/rc.local</code></strong> &#8230; ¡pero ojo!, no debemos anteponer el <strong>sudo</strong> a <strong>ntpdate</strong> y <strong>hwclock</strong> pues los comandos especificados en dicho archivo se ejecutan como <strong>root</strong>.</p>
<p>Piece of Cake ^_^</p>

<p><a href="http://feedads.g.doubleclick.net/~a/VhwDa67RuVj2x24ngtrSFugJwLk/0/da"><img src="http://feedads.g.doubleclick.net/~a/VhwDa67RuVj2x24ngtrSFugJwLk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VhwDa67RuVj2x24ngtrSFugJwLk/1/da"><img src="http://feedads.g.doubleclick.net/~a/VhwDa67RuVj2x24ngtrSFugJwLk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/IkTHfis6fDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/sincronizando-hora-sistema-internet-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plowshare – Descargando Archivos desde Rapidshare, MegaUpload, HotFile (y muchos más) desde la Terminal en Linux</title>
		<link>http://gespadas.com/plowshare-rapidshare-megaupload-hotfile-linux/</link>
		<comments>http://gespadas.com/plowshare-rapidshare-megaupload-hotfile-linux/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 13:34:15 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Internet / Web]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[DepositFiles]]></category>
		<category><![CDATA[FileFactory]]></category>
		<category><![CDATA[HotFile]]></category>
		<category><![CDATA[MediaFire]]></category>
		<category><![CDATA[MegaUpload]]></category>
		<category><![CDATA[Plowshare]]></category>
		<category><![CDATA[rapidshare]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1722</guid>
		<description><![CDATA[Me entero gracias a AlejandroCQ de la existencia de Plowshare, una completa herramienta para descargar y subir archivos a servicios de alojamiento de archivos (MegaUpload, RapidShare, HotFile, DepositFiles, MediaFire, FileFactory, Netload.in, Storage.to y otras más) mediante el uso de la terminal / consola en Linux. ¿Desesperado de los segundos o incluso minutos de espera en [...]]]></description>
			<content:encoded><![CDATA[<p>Me entero gracias a <a href="http://alejandrocq.wordpress.com/2010/08/08/plowshare-descargar-o-subir-archivos-de-megaupload-u-otros-desde-terminal/">AlejandroCQ</a> de la existencia de <a href="http://code.google.com/p/plowshare/"><strong>Plowshare</strong></a>, una completa herramienta para descargar y subir archivos a servicios de alojamiento de archivos (<strong>MegaUpload</strong>, <strong>RapidShare</strong>, <strong>HotFile</strong>, <strong>DepositFiles</strong>, <strong>MediaFire</strong>, <strong>FileFactory</strong>, <strong>Netload.in</strong>, <strong>Storage.to</strong> <a href="http://code.google.com/p/plowshare/wiki/Readme">y otras más</a>) mediante el uso de la terminal / consola en <strong>Linux</strong>.</p>
<p>¿Desesperado de los segundos o incluso minutos de espera en cada descarga? ¿Cansado de escribir tediosos <em>captchas</em>? ¡<strong>Plowshare</strong> se encarga automáticamente de ambas cosas!</p>
<h3>Instalar Plowshare</h3>
<p>En <strong>Archlinux</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ yaourt <span style="color: #660033;">-Sy</span> plowshare</pre></div></div>

<p>En <strong>Gentoo</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ emerge <span style="color: #660033;">-av</span> plowshare</pre></div></div>

<p>También existe un <a href="http://code.google.com/p/plowshare/downloads/list">.deb para <strong>Ubuntu</strong> y <strong>Debian</strong></a>.</p>
<h3>Ejemplos de uso</h3>
<p>Para descargar un archivo (uso más común):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ plowdown http:<span style="color: #000000; font-weight: bold;">//</span>www.rapidshare.com<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">86545320</span><span style="color: #000000; font-weight: bold;">/</span>archivo.rar</pre></div></div>

<p>Para descargar una lista de enlaces (un enlace por línea):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ plowdown enlaces.txt</pre></div></div>

<p>Igual que el anterior, pero agregando un &#8220;#&#8221; al inicio (comentando) de los enlaces descargados satisfactoriamente, genial para descargas posteriores.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ plowdown <span style="color: #660033;">-m</span> enlaces.txt</pre></div></div>

<p>Para limitar la tasa de descarga (restringir ancho de banda), usar K=Kbps, M=Mbps, G=Gbps:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ plowdown <span style="color: #660033;">-r</span> 50K http:<span style="color: #000000; font-weight: bold;">//</span>www.rapidshare.com<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">86545320</span><span style="color: #000000; font-weight: bold;">/</span>archivo.rar</pre></div></div>

<p>Para descargar un archivo usando una cuenta premium:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ plowdown <span style="color: #660033;">-a</span> usuario:password http:<span style="color: #000000; font-weight: bold;">//</span>www.megaupload.com<span style="color: #000000; font-weight: bold;">/</span>?<span style="color: #007800;">d</span>=<span style="color: #000000;">132348234</span></pre></div></div>

<p>Para más ejemplos de uso, incluyendo ejemplos para subir archivos, consulten la <a href="http://code.google.com/p/plowshare/wiki/Readme">documentación oficial</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/LXJb9AHdsOF04c_pCAnyexqVvSI/0/da"><img src="http://feedads.g.doubleclick.net/~a/LXJb9AHdsOF04c_pCAnyexqVvSI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LXJb9AHdsOF04c_pCAnyexqVvSI/1/da"><img src="http://feedads.g.doubleclick.net/~a/LXJb9AHdsOF04c_pCAnyexqVvSI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/LvSi7gyJcn0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/plowshare-rapidshare-megaupload-hotfile-linux/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Acelerar Internet en ArchLinux usando OpenDNS</title>
		<link>http://gespadas.com/acelerar-internet-en-archlinux-usando-opendns/</link>
		<comments>http://gespadas.com/acelerar-internet-en-archlinux-usando-opendns/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 16:30:34 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ArchLinux]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[OpenDNS]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1713</guid>
		<description><![CDATA[Al navegar o al utilizar Internet en general, uno podría pensar que la velocidad de la conexión es lo único que entra en juego, pero en cada solicitud de resolución de algún dominio, el servidor DNS de tu ISP no siempre es el más veloz. Un ejemplo: Hace unos días noté que al actualizar (pacman [...]]]></description>
			<content:encoded><![CDATA[<p>Al navegar o al utilizar <strong>Internet</strong> en general, uno podría pensar que la velocidad de la conexión es lo único que entra en juego, pero en cada solicitud de resolución de algún dominio, el servidor <strong>DNS</strong> de tu <strong>ISP</strong> no siempre es el más veloz.</p>
<p>Un ejemplo: Hace unos días noté que al actualizar (<code>pacman -Syu</code>) el <strong>ArchLinux</strong> de mi laptop, cada paquete se actualizaba a buena velocidad, pero al final de descargarse un paquete <strong>tardaba unos 15 segundos para descargar el siguiente</strong>, y como eran más de 200 paquetes a actualizar (ya tenía varias semanas que no actualizaba la laptop), era un tiempo extra excesivo, ¡y muy desesperante! Pero luego de configurar <strong>OpenDNS</strong>, ¡pacman volaba!</p>
<p>¿Cómo poremos acelerar <strong>Internet</strong> en <strong>ArchLinux</strong> usando <strong>OpenDNS</strong>? ¡Simple! Como <strong>root</strong> (o usando <strong>sudo</strong>), sigue los pasos:</p>
<ol>
<li>Instalamos <strong>DNSmasq</strong>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pacman <span style="color: #660033;">-S</span> dnsmasq</pre></div></div>

</li>
<li>Editamos <strong>/etc/dnsmasq.conf</strong> y buscamos por <strong>listen-address</strong>, asignándole el valor de <em>localhost</em>.

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">listen-address=127.0.0.1</pre></div></div>

</li>
<li>Editamos <strong>/etc/resolv.conf</strong> (<em>¡hagan un respaldo de este archivo!</em>), eliminamos su contenido y ponemos:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Route DNS requests through dnsmasq first</span>
nameserver 127.0.0.1
<span style="color: #666666; font-style: italic;"># First OpenDNS server</span>
nameserver 208.67.222.222
<span style="color: #666666; font-style: italic;"># Second OpenDNS server</span>
nameserver 208.67.220.220</pre></div></div>

</li>
<li>Para evitar que al reiniciar se reasignen los <strong>DNS</strong>, debemos editar <strong>/etc/conf.d/dhcpcd</strong> y dejarlo así:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Arguments to be passed to the DHCP client daemon</span>
&nbsp;
&nbsp;
<span style="color: #007800;">DHCPCD_ARGS</span>=<span style="color: #ff0000;">&quot;-q -C resolv.conf&quot;</span></pre></div></div>

</li>
<li>Finalmente, iniciamos el <strong>daemon</strong>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>dnsmasq start</pre></div></div>

</li>
<li>¡Ya puedes volar!</li>
<p>¡Gracias a <a href="http://www.archlinux-es.org/foros/viewtopic.php?f=9&#038;t=2410">The Clowny</a> por el tip!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/GiGB6Z3OJ2J0StMwjF4lVEEGxOQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/GiGB6Z3OJ2J0StMwjF4lVEEGxOQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GiGB6Z3OJ2J0StMwjF4lVEEGxOQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/GiGB6Z3OJ2J0StMwjF4lVEEGxOQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/mxDUPrZgtYw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/acelerar-internet-en-archlinux-usando-opendns/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Generar Números Aleatorios dentro de un Rango con JavaScript</title>
		<link>http://gespadas.com/generar-numeros-aleatorios-rango-javascript/</link>
		<comments>http://gespadas.com/generar-numeros-aleatorios-rango-javascript/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 14:26:33 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1704</guid>
		<description><![CDATA[Algo muy básico, pero que siempre es bueno recordar, es la manera de generar un número aleatorio dentro de un rango determinado usando JavaScript. La idea es la siguiente: Math.floor&#40;Math.random&#40;&#41; * &#40;MAX - MIN + 1&#41;&#41; + MIN; donde MIN es el número entero que delimita el rango inferior, y MAX&#8230; ¿es necesario decirlo? Como [...]]]></description>
			<content:encoded><![CDATA[<p>Algo muy básico, pero que siempre es bueno recordar, es la manera de generar un <strong>número aleatorio</strong> dentro de un rango determinado usando <strong>JavaScript</strong>. La idea es la siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>MAX <span style="color: #339933;">-</span> MIN <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> MIN<span style="color: #339933;">;</span></pre></div></div>

<p>donde MIN es el número entero que delimita el rango inferior, y MAX&#8230; ¿es necesario decirlo?</p>
<p>Como ejemplo, si deseamos generar un número aleatorio entre 25 y 75, la sentencia sería</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">75</span><span style="color: #339933;">-</span><span style="color: #CC0000;">25</span><span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">;</span></pre></div></div>

<p>o lo que es lo mismo</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">51</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ejemplo Completo Sencillo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
	&lt;meta charset=&quot;utf-8&quot; /&gt;
	&lt;title&gt;Generar Números Aleatorios dentro de un Rango&lt;/title&gt;
	<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
		<span style="color: #003366; font-weight: bold;">var</span> aleatorio <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">51</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">;</span>
		document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;p&gt;&quot;</span> <span style="color: #339933;">+</span> aleatorio <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/p&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>Ejemplo Completo Avanzado:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
	&lt;meta charset=&quot;utf-8&quot; /&gt;
	&lt;title&gt;Generar Números Aleatorios dentro de un Rango&lt;/title&gt;
	<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> aleatorio<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> min <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'min'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> max <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'max'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> res <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>max <span style="color: #339933;">-</span> min <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> min<span style="color: #339933;">;</span>
		document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'resultado'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> res.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;/head&gt;
&lt;body&gt;
	&lt;form &gt;
		&lt;label for=&quot;min&quot;&gt;Valor mínimo: &lt;/label&gt;
		&lt;input id=&quot;min&quot; /&gt;
		&lt;label for=&quot;max&quot;&gt;Valor máximo: &lt;/label&gt;
		&lt;input id=&quot;max&quot; /&gt;
		&lt;input type=&quot;button&quot; value=&quot;Calcular&quot; onClick=&quot;aleatorio();&quot;/&gt;
	&lt;/form&gt;
	&lt;p id=&quot;resultado&quot;&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>Fuente: <a href="http://www.devcurry.com/2010/08/generate-random-numbers-within-range.html">DevCurry</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/lx1yTIVuFrw8GlrMUtoOGXKu45s/0/da"><img src="http://feedads.g.doubleclick.net/~a/lx1yTIVuFrw8GlrMUtoOGXKu45s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/lx1yTIVuFrw8GlrMUtoOGXKu45s/1/da"><img src="http://feedads.g.doubleclick.net/~a/lx1yTIVuFrw8GlrMUtoOGXKu45s/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/fQKSeXCGgJs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/generar-numeros-aleatorios-rango-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Puedes ser un Diseñador Web?</title>
		<link>http://gespadas.com/puedes-ser-un-disenador-web/</link>
		<comments>http://gespadas.com/puedes-ser-un-disenador-web/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 13:11:55 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1700</guid>
		<description><![CDATA[¡Genial y divertido Diagrama de Flujo de los chicos de Six Revisions! Sigue el diagrama y conoceras si&#8230; ¿Puedes ser un Diseñador Web? Es obvio que no es requisito tener una Mac para convertirse en un excelente diseñador web (yo no tengo una Mac y no me interesa adquirir una), ¿pero a poco no está [...]]]></description>
			<content:encoded><![CDATA[<p>¡Genial y divertido <strong>Diagrama de Flujo</strong> de los chicos de <a href="http://sixrevisions.com/web_design/can-you-be-a-web-designer/">Six Revisions</a>!</p>
<p>Sigue el diagrama y conoceras si&#8230; ¿Puedes ser un <strong>Diseñador Web</strong>?</p>
<p><img src="http://lh3.ggpht.com/_zSE2Bkb9_-0/TE7YzwLxaaI/AAAAAAAAAxs/p4FKHpWsbBU/can-you-be-a-web-designer.jpg" alt="¿Puedes ser un Diseñador Web?" style="display:block; clear:both; margin:20px auto; border:0;" /></p>
<p>Es obvio que no es requisito tener una <strong>Mac</strong> para convertirse en un excelente <strong>diseñador web</strong> (yo no tengo una <strong>Mac</strong> y no me interesa adquirir una), ¿pero a poco no está entretenido el diagramita? LMAO!!!</p>
<p>¡Viva <strong>Linux</strong>!</p>
<p>Via <a href="http://thenextweb.com/shareables/2010/07/27/can-you-be-a-web-designer/">The Next Web</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/cu2QYm_hjaiwF_FU0tbC19k4ICE/0/da"><img src="http://feedads.g.doubleclick.net/~a/cu2QYm_hjaiwF_FU0tbC19k4ICE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cu2QYm_hjaiwF_FU0tbC19k4ICE/1/da"><img src="http://feedads.g.doubleclick.net/~a/cu2QYm_hjaiwF_FU0tbC19k4ICE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/PTJyNj50BxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/puedes-ser-un-disenador-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mostrar como Tabla HTML los detalles de los campos de las tablas de una base de datos MySQL con PHP</title>
		<link>http://gespadas.com/tablas-html-mysql-php/</link>
		<comments>http://gespadas.com/tablas-html-mysql-php/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 15:33:24 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Tablas]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1690</guid>
		<description><![CDATA[Creo que es el título más largo que he usado en un post&#8230; &#8220;Mostrar como Tabla HTML los detalles de los campos de las tablas de una base de datos MySQL con PHP&#8220;&#8230; no encontré una mejor forma de resumirlo. Hace poco tuve la necesidad de mostrar como tablas HTML los detalles de los campos [...]]]></description>
			<content:encoded><![CDATA[<p>Creo que es el título más largo que he usado en un post&#8230; &#8220;Mostrar como Tabla <strong>HTML</strong> los detalles de los campos de las tablas de una base de datos <strong>MySQL</strong> con <strong>PHP</strong>&#8220;&#8230; no encontré una mejor forma de resumirlo.</p>
<p>Hace poco tuve la necesidad de mostrar como tablas <strong>HTML</strong> los detalles de los campos (sus nombres, tipos, llaves, valores por defecto, etc) de las tablas de una base de datos <strong>MySQL</strong> en particular, utilizando <strong>PHP</strong>. Tomando <a href="http://davidwalsh.name/html-mysql-php">la idea de David</a>, la modifiqué y traduje según mis requerimientos (intentando dejar el script lo más general posible), y el resultado fué el siguiente código.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;es&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot; /&gt;
&lt;title&gt;Detalles de las Tablas de una Base da Datos&lt;/title&gt;
&nbsp;
&lt;style type=&quot;text/css&quot;&gt;
body			{ font-family: Arial, Verdana, Sans; font-size: 14px; }
table.tabla-bd		{ border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.tabla-bd th	{ background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.tabla-bd td	{ padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
&lt;/style&gt;
&nbsp;
&lt;/head&gt;
&lt;body&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;"># Datos de Conexión a la Base de datos
</span><span style="color: #666666; font-style: italic;"># (Hay que ajustarlos a tus necesidades particulares)
</span><span style="color: #000088;">$servidor</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">'miservidor'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$usuario</span>   <span style="color: #339933;">=</span> <span style="color: #0000ff;">'miusuario'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$password</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">'miclave'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$basedatos</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'mibasededatos'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Establecer la conexión a la Base de Datos
</span><span style="color: #000088;">$conexion</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$servidor</span><span style="color: #339933;">,</span><span style="color: #000088;">$usuario</span><span style="color: #339933;">,</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$basedatos</span><span style="color: #339933;">,</span><span style="color: #000088;">$conexion</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Consulta SQL que devuelve los nombres de las tablas de la Base de Datos
</span><span style="color: #000088;">$tablas</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SHOW TABLES'</span><span style="color: #339933;">,</span><span style="color: #000088;">$conexion</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Imposible mostrar tablas'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tabla</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tablas</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000088;">$nombreTabla</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tabla</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;h3&gt;Tabla: '</span><span style="color: #339933;">,</span><span style="color: #000088;">$nombreTabla</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;/h3&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Consulta SQL que devuelve los campos de cada tabla
</span>	<span style="color: #000088;">$campos</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SHOW COLUMNS FROM '</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombreTabla</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Imposible mostrar campos de '</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombreTabla</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Muestra como tabla HTML los detalles de los campos de la tabla correspondiente
</span>	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$campos</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;table class=&quot;tabla-bd&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Campo&lt;/th&gt;&lt;th&gt;Tipo&lt;/th&gt;&lt;th&gt;Nulo&lt;/th&gt;&lt;th&gt;Llave&lt;/th&gt;&lt;th&gt;Defecto&lt;/th&gt;&lt;th&gt;Extra&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$detalles</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$campos</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;tr&gt;'</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$detalles</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$detalle</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$valor</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;td&gt;'</span><span style="color: #339933;">,</span><span style="color: #000088;">$valor</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/tr&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Cerrar la conexión a la Base de Datos
</span><span style="color: #990000;">mysql_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conexion</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>¿Simple no? También podrías reutilizar el código anterior, por ejemplo: Si tienes una clase que encapsule el manejo de tus bases de datos, podrías usar el script anterior como método, y así invocarlo con un simple <code>$basedatos->mostrarTablas();</code> &#8230; bueno, es sólo una idea.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/uRSRJy6MhsKmFfGRzRBNfEvJloU/0/da"><img src="http://feedads.g.doubleclick.net/~a/uRSRJy6MhsKmFfGRzRBNfEvJloU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uRSRJy6MhsKmFfGRzRBNfEvJloU/1/da"><img src="http://feedads.g.doubleclick.net/~a/uRSRJy6MhsKmFfGRzRBNfEvJloU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/Mui7qokq9SE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/tablas-html-mysql-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validando un Email con PHP usando filter_var()</title>
		<link>http://gespadas.com/validar-email-php/</link>
		<comments>http://gespadas.com/validar-email-php/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:03:49 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[Filtros]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1682</guid>
		<description><![CDATA[Desde la salida de PHP 5.2.0, la extensión de filtros fué habilitada por defecto, y rápidamente se convirtió en una favorita entre los programadores de PHP. Sin embargo, el filtro para validar emails no era 100% efectivo, ya que no tomaba en cuenta algunos detalles; por ejemplo, filter_var('john@lennon', FILTER_VALIDATE_EMAIL) tomaba como válido el email, a [...]]]></description>
			<content:encoded><![CDATA[<p>Desde la salida de <strong>PHP 5.2.0</strong>, la <a href="http://php.net/filter">extensión de filtros</a> fué habilitada por defecto, y rápidamente se convirtió en una favorita entre los programadores de <a href="http://gespadas.com/blog/tag/php/"><strong>PHP</strong></a>.</p>
<p>Sin embargo, el filtro para validar emails no era 100% efectivo, ya que no tomaba en cuenta algunos detalles; por ejemplo, <code>filter_var('john@lennon', FILTER_VALIDATE_EMAIL)</code> tomaba como válido el email, a pesar de carecer del &#8220;.com&#8221;.</p>
<p>¿Cómo corregir esto? En <a href="http://www.electrictoolbox.com/php-email-validation-filter-var-updated/">The Electric Box</a> encontraron una solución bastante simple y concreta: usar las maravillosas <strong>expresiones regulares</strong>.</p>
<p>Usaremos una función que encapsule la validación de emails:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #990000;">filter_var</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #339933;">,</span> FILTER_VALIDATE_EMAIL<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/@.+\./'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Para probar su funcionamiento, aquí algunos ejemplos de uso:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john@lennon'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>             <span style="color: #666666; font-style: italic;">// 0</span>
<span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john@lennon.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>            <span style="color: #666666; font-style: italic;">// 0</span>
<span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john@lennon.com'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>         <span style="color: #666666; font-style: italic;">// 1</span>
<span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john@lennon.com.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>        <span style="color: #666666; font-style: italic;">// 0</span>
<span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john@lennon@beatles.com'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 0</span>
<span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john#lennon.com'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>         <span style="color: #666666; font-style: italic;">// 0</span>
<span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> validarEmail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'john@lennon.beatles.com'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 1</span></pre></div></div>

<p>En el ejemplo anterior se utilizó <em>cast</em> <code>(int)</code> para convertir a entero el booleano devuelto por la función, ergo, 0 = false = email inválido, 1 = true = email válido.</p>
<p>Sencillo, ¿verdad? ¡Comentarios bienvenidos!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/LKzmeimIOw_OU76oRmPr57rq_bE/0/da"><img src="http://feedads.g.doubleclick.net/~a/LKzmeimIOw_OU76oRmPr57rq_bE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LKzmeimIOw_OU76oRmPr57rq_bE/1/da"><img src="http://feedads.g.doubleclick.net/~a/LKzmeimIOw_OU76oRmPr57rq_bE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/UsH0pro9gok" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/validar-email-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manejo Básico de Arreglos en JavaScript</title>
		<link>http://gespadas.com/manejo-basico-de-arreglos-en-javascript/</link>
		<comments>http://gespadas.com/manejo-basico-de-arreglos-en-javascript/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 16:59:43 +0000</pubDate>
		<dc:creator>Gregorio Espadas</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://gespadas.com/blog/?p=1671</guid>
		<description><![CDATA[Los chicos de Mozilla han publicado &#8220;A re-introduction to JavaScript&#8221;, un interesante artículo con buenos tips incluso para los desarrolladores más experimentados. A continuación me permitiré traducir, extraer y resumir la sección en la que habla sobre arreglos (arrays). Declaración de Arreglos La forma vieja tradicional de crear arreglos: &#62; var animales = new Array&#40;&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>Los chicos de <strong>Mozilla</strong> han publicado <a href="https://developer.mozilla.org/en/a_re-introduction_to_javascript">&#8220;A re-introduction to JavaScript&#8221;</a>, un interesante artículo con buenos tips incluso para los desarrolladores más experimentados. A continuación me permitiré traducir, extraer y resumir la sección en la que habla sobre <strong>arreglos</strong> (<strong>arrays</strong>).</p>
<h3>Declaración de Arreglos</h3>
<p>La forma <del datetime="2010-07-19T16:30:49+00:00">vieja</del> tradicional de crear arreglos:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&gt;</span> <span style="color: #003366; font-weight: bold;">var</span> animales <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;perro&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;gato&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;ratón&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales.<span style="color: #660066;">length</span>
<span style="color: #CC0000;">3</span></pre></div></div>

<p>Una manera más conveniente y moderna:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&gt;</span> <span style="color: #003366; font-weight: bold;">var</span> animales <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;perro&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;gato&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;ratón&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales.<span style="color: #660066;">length</span>
<span style="color: #CC0000;">3</span></pre></div></div>

<p>Errores comunes (¡no cometerlos!):</p>
<ul>
<li>Dejar una coma al final de la declaración del arreglo causará inconsistencias entre navegadores.</li>
<li>El valor devuelto por arreglo.length no es necesariamente el número de elementos en el arreglo.</li>
</ul>
<p>Explicación del punto anterior:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&gt;</span> <span style="color: #003366; font-weight: bold;">var</span> animales <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;perro&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;gato&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;ratón&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;zorro&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&gt;</span> animales.<span style="color: #660066;">length</span>
<span style="color: #CC0000;">101</span></pre></div></div>

<p>Recuerda, la &#8220;longitud&#8221; del arreglo siempre será uno más que el índice mayor.</p>
<h3>Recorriendo un Arreglo</h3>
<p>Una forma ineficiente de recorrer un arreglo sería:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> a.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Hacer algo con a[i]</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Es ineficiente ya que se &#8220;calcula&#8221; la longitud del arreglo en cada iteración del ciclo. Una forma mejorada sería:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> long <span style="color: #339933;">=</span> a.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> long<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Hacer algo con a[i]</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Una forma más elegante:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> elemento<span style="color: #339933;">;</span> elemento <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Hacer algo con elemento</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Y la forma alternativa:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #000066; font-weight: bold;">in</span> a<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// Hacer algo con a[i]</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Manipulando elementos del Arreglo</h3>
<p>Para agregar de manera segura un elemento a un arreglo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">a<span style="color: #009900;">&#91;</span>a.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> elemento<span style="color: #339933;">;</span></pre></div></div>

<p>o bien</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">a.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>elemento<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Algunos de los métodos (los arreglos en <strong>JavaScript</strong> son considerados objetos) más utilizados para arreglos son:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">a.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">toLocaleString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">concat</span><span style="color: #009900;">&#40;</span>elemento<span style="color: #339933;">,</span> ..<span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span>separador<span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">pop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>elemento<span style="color: #339933;">,</span> ..<span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">reverse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">shift</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span>inicio<span style="color: #339933;">,</span> fin<span style="color: #009900;">&#41;</span>
a.<span style="color: #660066;">sort</span><span style="color: #009900;">&#40;</span>cmpfn<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Por supuesto, lo anterior es sólo un bosquejo del manejo de arreglos en <strong>JavaScript</strong>, pero es una buena guía rápida para empezar a usarlos en nuestros desarrollos.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/t1Buj8COEeaSJu2w1HfrQbdeVIg/0/da"><img src="http://feedads.g.doubleclick.net/~a/t1Buj8COEeaSJu2w1HfrQbdeVIg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/t1Buj8COEeaSJu2w1HfrQbdeVIg/1/da"><img src="http://feedads.g.doubleclick.net/~a/t1Buj8COEeaSJu2w1HfrQbdeVIg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/espadas/~4/MmgcfNG0ZT4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gespadas.com/manejo-basico-de-arreglos-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: gespadas.com @ 2010-09-02 17:59:52 -->
