<?xml version="1.0" encoding="iso-8859-1"?>
<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" >
	<channel>
		<title>peivem.com</title>
		<link>http://www.peivem.com/</link>
		<pubDate>Sun, 01 Aug 2010 04:38:21 -0400</pubDate>
		<description>desarrollo multimedia</description>
		<generator>http://www.peivem.com/</generator>
		<language>es-CL</language>

		<item>
		<title><![CDATA[...y peivem.com no va más...]]></title>
		<link>http://www.peivem.com/?post=136</link>
		<comments>http://www.peivem.com/?post=136#comentarios</comments>
		<pubDate>Mon, 08 Mar 2010 13:29:57 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[3D]]></category>
		<guid>http://www.peivem.com/?post=136</guid>
		<description><![CDATA[<p>Bueno&hellip; eso. Tal como dice el título, desde hoy en adelante dejaré morir a <a href="http://www.peivem.com/" target="_blank">peivem.com</a>.</p>
<p>Nuevamente volveré a ser un esclavo de wordpress. En verdad no me
quiero complicar mucho, porque últimamente no he tenido tiempo como
para mantener al día mi sitio, asique decidí irme por el lado fácil:
usar wordpress, bajar una plantilla y listo.</p>
<p>Asique desde ahora los invito a que visiten mi nuevo blog en <a href="http://www.sebastianbarria.com/blog/">http://www.sebastianbarria.com/blog/</a>, pues será aquí donde iré publicando mis nuevos artículos.</p>
<p>Gracias a todos por el apoyo!!!</p>]]></description>
		<content:encoded><![CDATA[<p>Bueno&hellip; eso. Tal como dice el título, desde hoy en adelante dejaré morir a <a href="http://www.peivem.com/" target="_blank">peivem.com</a>.</p>
<p>Nuevamente volveré a ser un esclavo de wordpress. En verdad no me
quiero complicar mucho, porque últimamente no he tenido tiempo como
para mantener al día mi sitio, asique decidí irme por el lado fácil:
usar wordpress, bajar una plantilla y listo.</p>
<p>Asique desde ahora los invito a que visiten mi nuevo blog en <a href="http://www.sebastianbarria.com/blog/">http://www.sebastianbarria.com/blog/</a>, pues será aquí donde iré publicando mis nuevos artículos.</p>
<p>Gracias a todos por el apoyo!!!</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=136</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[Nuevo proyecto: THE GEEK TOOLBOX]]></title>
		<link>http://www.peivem.com/?post=135</link>
		<comments>http://www.peivem.com/?post=135#comentarios</comments>
		<pubDate>Wed, 03 Mar 2010 12:35:08 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid>http://www.peivem.com/?post=135</guid>
		<description><![CDATA[<p>Les presento mi nuevo proyecto:</p>
<p><img src="http://www.thegeektoolbox.com/img/logo.gif" alt="" width="198" height="71" /></p>
<p><a href="http://www.thegeektoolbox.com" target="_blank">http://www.thegeektoolbox.com</a></p>
<p>Este
es un sitio (multilenguaje) que pretende ayudarte en muchas de las
tareas "geek" que realizas a diario. Desde codificar una palabra hasta
cambiar el tamaño a imágenes (para crear miniaturas, por ejemplo).</p>
<p>Por ahora está en versión beta, pero pretendo ir agregando varias funcionalidades (cerca de 20 por ahora).</p>
<p>Espero que lo vayan conociendo y en lo posible le sirva a muchos de ustedes.</p>]]></description>
		<content:encoded><![CDATA[<p>Les presento mi nuevo proyecto:</p>
<p><a href="http://www.thegeektoolbox.com/" target="_blank"><img src="http://www.thegeektoolbox.com/img/logo.gif" alt="" width="320" height="114" /></a></p>
<p><a href="http://www.thegeektoolbox.com" target="_blank">http://www.thegeektoolbox.com</a></p>
<p>Este es un sitio (multilenguaje) que pretende ayudarte en muchas de las tareas "geek" que realizas a diario. Desde codificar una palabra hasta cambiar el tamaño a imágenes (para crear miniaturas, por ejemplo).</p>
<p>Por ahora está en versión beta, pero pretendo ir agregando varias funcionalidades (cerca de 20 por ahora).</p>
<p>Espero que lo vayan conociendo y en lo posible le sirva a muchos de ustedes.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=135</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[Terremoto en Chile]]></title>
		<link>http://www.peivem.com/?post=134</link>
		<comments>http://www.peivem.com/?post=134#comentarios</comments>
		<pubDate>Mon, 01 Mar 2010 01:04:39 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Multimedia]]></category>
		<guid>http://www.peivem.com/?post=134</guid>
		<description><![CDATA[<p><img src="http://www.peivem.com/uploads/terremoto_en_chile/resumen.jpg" alt="" width="198" height="149" /></p>
<p>Como muchos de ustedes ya sabrán, el viernes 26 de Febrero de 2010,
a las 03:34am hubo un terremoto en chile, con intensidad 8.3° en la
escala de Richter (según los gringos, fue de 8.8), con epicentro en la
región del Bio-Bio, a 90 kmx. de Concepción. En Santiago, el terremoto
fue de 7° y se extendió desde la regiónd e Valparaíso a la Araucanía.</p>
<p>Algunas regiones (sobre todo hacia el sur) están completamente
destruídas. El gran problema que se presentó es que luego de el
terremoto, varias réplicas, marejadas y tsunamis terminaron por
destruir lo poco que quedó en pie y hasta el momento (2 días después)
se han registrado 711 fallecidos y 110 réplicas del terremoto.</p>]]></description>
		<content:encoded><![CDATA[<p>Como muchos de ustedes ya sabrán, el viernes 26 de Febrero de 2010, a las 03:34am hubo un terremoto en chile, con intensidad 8.3° en la escala de Richter (según los gringos, fue de 8.8), con epicentro en la región del Bio-Bio, a 90 kmx. de Concepción. En Santiago, el terremoto fue de 7° y se extendió desde la regiónd e Valparaíso a la Araucanía.</p>
<p>Algunas regiones (sobre todo hacia el sur) están completamente destruídas. El gran problema que se presentó es que luego de el terremoto, varias réplicas, marejadas y tsunamis terminaron por destruir lo poco que quedó en pie y hasta el momento (2 días después) se han registrado 711 fallecidos y 110 réplicas del terremoto.</p>
<p>En muchas partes del país, aún no se restablece el suministro de agua y luz, y existen graves problemas de comunicación y abastecimiento.</p>
<p>Muchas personas necesitan ayuda. Acá les dejo el post más completo que encontré al respecto.</p>
<p><a href="http://todosporunmundomejor.wordpress.com/2010/03/01/terremoto-en-chile-aprende-como-puedes-ayudar-tu/" target="_blank">http://todosporunmundomejor.wordpress.com/2010/03/01/terremoto-en-chile-aprende-como-puedes-ayudar-tu/</a></p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=134</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[thumbGen (Wordpress Plugin)]]></title>
		<link>http://www.peivem.com/?post=133</link>
		<comments>http://www.peivem.com/?post=133#comentarios</comments>
		<pubDate>Thu, 18 Feb 2010 00:47:59 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid>http://www.peivem.com/?post=133</guid>
		<description><![CDATA[<p>thumbGen es un plugin para Wordpress que desarrollé con el objetivo
de poder generar thumbnails de cualquier imágen rápidamente. Esto lo
hice ya que Wordpress es muy limitado en el manejo de imágenes y con
una función como esta se pueden autogenerar imágenes para todo el sitio
y de manera muy eficiente.</p>]]></description>
		<content:encoded><![CDATA[<p>thumbGen es un plugin para Wordpress que desarrollé con el objetivo de poder generar thumbnails de cualquier imágen rápidamente. Esto lo hice ya que Wordpress es muy limitado en el manejo de imágenes y con una función como esta se pueden autogenerar imágenes para todo el sitio y de manera muy eficiente.</p>
<p>Por ahora la documentación del plugin la hice en inglés (ya pronto la haré en español) con el objetivo de que el plugin sirva a todo el mundo y no sólo a los que hablamos en español.</p>
<p>Acá les dejo la URL:</p>
<p><a href="http://www.sebastianbarria.com/thumbgen/" target="_blank">http://www.sebastianbarria.com/thumbgen/</a></p>
<p>Y por supuesto, espero sus comentarios al respecto :)</p>
<p>Aprovecho este post para mostrales mi nuevo sitio oficial: http://www.sebastianbarria.com/ espero poder comenzar a postear pronto en ese sitio para poder migrar todo mi contenido y continuar con este blog en esa url.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=133</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[Algunos trucos en PHP]]></title>
		<link>http://www.peivem.com/?post=132</link>
		<comments>http://www.peivem.com/?post=132#comentarios</comments>
		<pubDate>Thu, 11 Feb 2010 09:22:07 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid>http://www.peivem.com/?post=132</guid>
		<description><![CDATA[<p>En todos los lenguajes de programación, es conocido que cada
programador trabaja a su manera, y muchas veces (sobre todo cuando algo
es programado por alguien "avanzado") no entendemos el código que hacen
las demás personas. ¿Será porque usan "trucos"?.</p>
<p>En este caso, vamos a ver algunas formas de optimizar el código para trabajar más rápido y de pasadita poder entender cuando vemos que alguien programa así.</p>]]></description>
		<content:encoded><![CDATA[<p>En todos los lenguajes de programación, es conocido que cada programador trabaja a su manera, y muchas veces (sobre todo cuando algo es programado por alguien "avanzado") no entendemos el código que hacen las demás personas. ¿Será porque usan "trucos"?.</p>
<p>En este caso, vamos a ver algunas formas de optimizar el código para trabajar más rápido y de pasadita poder entender cuando vemos que alguien programa así.</p>
<h3>Resumir los <em>if...else</em></h3>
<p>La sentencia if...else está compuesta de tres partes escenciales:</p>
<ol>
<li><strong><em>if ( xxx )</em></strong> (xxx es lo que estamos condicionando)</li>
<li><strong><em>{ yyy }</em></strong> (yyy es lo que deseamos que suceda si el if anterior es positivo)</li>
<li><strong><em>else { zzz }</em></strong> (zzz es lo que deseamos que suceda en caso contrario)</li>
</ol>
<p>En base a estos tres elementos, podemos utilizar una sola línea para "resumir" la sentencia:</p>
<pre>xxx?yyy:zzz;</pre>
<p>La línea anterior quiere decir que "si <em>xxx </em>es correcto, entonces haz <em>yyy</em>; si no, haz <em>zzz</em>". Veamos un ejemplo práctico:</p>
<p>Supongamos que estamos dentro de un <em>for</em>. Tenemos un contador en la variable <em>$count</em> y queremos mostrarlo en pantalla. Sería algo así:</p>
<pre>if($count>0){ $miVariable="mayor a cero"; }<br />else{ $miVariable="cero"; }<br />echo $miVariable;</pre>
<p>Esto se puede resumir en:</p>
<pre>$miVariable=$count>0?"mayor a cero":"cero";<br />echo $miVariable;</pre>
<h3>Ahorrar líneas de <em>echo</em></h3>
<p>Muchas veces se define una variable y luego se imprime en pantalla el resultado. Generalmente se hace así:</p>
<pre>$miVariable="xxx";<br />echo $miVariable;</pre>
<p>Esto se podría resumir así:</p>
<pre>echo $miVariable="xxx";</pre>
<p>Como ven, no es necesario volver a escribir la variable en una nueva línea. Se puede hacer el <em>echo</em> en el mismo momento en que se define la variable. La idea de esto no es "ahorrar KB" sino que ahorrar tiempo.</p>
<p>El ejemplo del punto anterior podría escribirse así:</p>
<pre>echo $miVariable=$count>0?"mayor a cero":"cero";</pre>
<p>O incluso así, si no es necesario guardar los datos en una variable:</p>
<pre>echo $count>0?"mayor a cero":"cero";</pre>
<p>Por ahora les dejo sólo estas...cuando me acuerde de otras las iré agregando :)</p>
<p> </p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=132</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[Extraer números de una cadena en AS2]]></title>
		<link>http://www.peivem.com/?post=131</link>
		<comments>http://www.peivem.com/?post=131#comentarios</comments>
		<pubDate>Mon, 18 Jan 2010 09:46:55 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Multimedia]]></category>
		<guid>http://www.peivem.com/?post=131</guid>
		<description><![CDATA[<p>Seguiendo con las funciones pequeñas para flash (pero útiles si se
está desarrollando aplicaciones complejas), les dejo esta otra función
que permite extraer sólo los números de una cadena. Podría decirse que esta función es el "antónimo" de la que publiqué anteriormente para <a href="http://www.peivem.com/?post=129">formatear miles</a>.</p>
<p>Por ejemplo, si tenemos un texto en formato $125.188, esta función nos devolverá 125188. Como verán, es muy útil para comparar precios...</p>]]></description>
		<content:encoded><![CDATA[<p>Seguiendo con las funciones pequeñas para flash (pero útiles si se está desarrollando aplicaciones complejas), les dejo esta otra función que permite extraer sólo los números de una cadena. Podría decirse que esta función es el "antónimo" de la que publiqué anteriormente para <a href="http://www.peivem.com/?post=129">formatear miles</a>.</p>
<p>Por ejemplo, si tenemos un texto en formato $125.188, esta función nos devolverá 125188. Como verán, es muy útil para comparar precios.</p>
<pre>function soloNumeros(n){<br />    s="";<br />    for(iNumeros=0;iNumeros<n.length;iNumeros++){<br />        s+=!isNaN(n.charAt(iNumeros))?n.charAt(iNumeros):"";<br />    }<br />    return Number(s);<br />}</pre>
<p>Hay muchas maneras de hacer esta función pero esta fue la que yo probé y que me funcionó a la perfección.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=131</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[¿Tienes algo que preguntarme?]]></title>
		<link>http://www.peivem.com/?post=130</link>
		<comments>http://www.peivem.com/?post=130#comentarios</comments>
		<pubDate>Fri, 15 Jan 2010 16:27:29 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid>http://www.peivem.com/?post=130</guid>
		<description><![CDATA[<p>Aunque probablemente muchos de ustedes ya conozcan el sitio <a href="http://www.formspring.me/" target="_blank">formspring.me</a>, que permite recibir preguntas anónimas (y contestarlas, por supuesto). Además puede conectarse a varias redes sociales o servicios para hacer más "placentera" la experiencia.</p>
<p>Yo recién me vengo enterando para que sirve... en verdad hace tiempo que tenía la noción, pero no me había creado una cuenta, hasta ahora.</p>
<p>Asique acá les dejo mi cuenta por si quieren preguntarme algo :)</p>
<p><a href="http://www.formspring.me/sebastianbarria" target="_blank">http://www.formspring.me/sebastianbarria</a></p>]]></description>
		<content:encoded><![CDATA[<p>Aunque probablemente muchos de ustedes ya conozcan el sitio <a href="http://www.formspring.me/" target="_blank">formspring.me</a>,
que permite recibir preguntas anónimas (y contestarlas, por supuesto).
Además puede conectarse a varias redes sociales o servicios para hacer
más "placentera" la experiencia.</p>
<p>Yo recién me vengo enterando
para que sirve... en verdad hace tiempo que tenía la noción, pero no me
había creado una cuenta, hasta ahora.</p>
<p>Asique acá les dejo mi cuenta por si quieren preguntarme algo :)</p>
<p><a href="http://www.formspring.me/sebastianbarria" target="_blank">http://www.formspring.me/sebastianbarria</a></p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=130</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[Formatear miles en Flash (AS2)]]></title>
		<link>http://www.peivem.com/?post=129</link>
		<comments>http://www.peivem.com/?post=129#comentarios</comments>
		<pubDate>Thu, 14 Jan 2010 10:27:19 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Multimedia]]></category>
		<guid>http://www.peivem.com/?post=129</guid>
		<description><![CDATA[<p><img src="http://www.peivem.com/uploads/formatear_miles/resumen.jpg" alt="" /></p>
<p>Estoy desarrollando una aplicación en Flash (AS2) y me encontré en
la necesidad de formatear números para que se muestren automáticamente
separados por miles, es decir, que el número 12345678 se vea como
$12.345.678.</p>
<p>Buscando y buscando por internet no pude dar con
nada que fuese fácil de implementar y preciso para lo que necesitaba,
asique tuve que desarrollar la función... y me acordé de mi pobre blog
que con tanto trabajo que tengo no he podido actualizar, asique les
dejo la función por si a alguno de ustedes les sirve.</p>]]></description>
		<content:encoded><![CDATA[<p>Estoy desarrollando una aplicación en Flash (AS2) y me encontré en la necesidad de formatear números para que se muestren automáticamente separados por miles, es decir, que el número 12345678 se vea como $12.345.678.</p>
<p>Buscando y buscando por internet no pude dar con nada que fuese fácil de implementar y preciso para lo que necesitaba, asique tuve que desarrollar la función... y me acordé de mi pobre blog que con tanto trabajo que tengo no he podido actualizar, asique les dejo la función por si a alguno de ustedes les sirve.</p>
<pre>function formatearMiles(numero){<br />    var str=new String(numero);<br />    var n=[];<br />    str=str.split("");<br />    count=Math.ceil(str.length/3)-1;<br />    for(i=str.length-1;i>=0;i-=3){<br />        num1=str[i]?str[i]:"";<br />        num2=str[i-1]?str[i-1]:"";<br />        num3=str[i-2]?str[i-2]:"";<br />        n[count]=num3+num2+num1;<br />        count--;<br />    }<br />    str=n.join(".");<br />    return "$"+str;<br />}</pre>
<p>Para llamarla solo deben escribir <em>formatearMiles(123456);</em> y listo. Si quieren pueden guardarlo en una variable o hacer un trace para ver el resultado.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=129</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[Administrar banners en Wordpress]]></title>
		<link>http://www.peivem.com/?post=128</link>
		<comments>http://www.peivem.com/?post=128#comentarios</comments>
		<pubDate>Tue, 29 Dec 2009 10:08:06 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid>http://www.peivem.com/?post=128</guid>
		<description><![CDATA[<p>En uno de los trabajos que estuve haciendo por estos días, me topé
con la necesidad de administrar los banners del sitio, de tal manera
que se pudiesen agregar los links e imágenes a partes específicas del
sitio. Por supuesto que además de eso, tendría que poderse llevar un
control de cuantas veces se le hace click a cada banner, para después
poder rendir cuentas o realizar un seguimiento del proceso.</p>
<p>El tema es que, buscando plugins, no di con ninguno que me
permitiera hacer todo eso al mismo tiempo. Entonces se me
prendió la ampolleta y se me ocurrieron dos alternativas para solucionar este problema...</p>]]></description>
		<content:encoded><![CDATA[<p>En uno de los trabajos que estuve haciendo por estos días, me topé con la necesidad de administrar los banners del sitio, de tal manera que se pudiesen agregar los links e imágenes a partes específicas del sitio. Por supuesto que además de eso, tendría que poderse llevar un control de cuantas veces se le hace click a cada banner, para después poder rendir cuentas o realizar un seguimiento del proceso.</p>
<p>El tema es que, buscando plugins, no di con ninguno que me permitiera hacer todo eso al mismo tiempo (si alguien conoce un buen plugin, por favor que lo ponga en los comentarios). Entonces se me prendió la ampolleta y se me ocurrieron dos alternativas para solucionar este problema:</p>
<h3>1.- Links de Wordpress + Google Analytics</h3>
<p>Esta primera idea es un poco técnica, pues requiere que la persona que administre el sitio sepa como configurar y ver la información de <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a>, lo cual es un poco complejo porque requiere utilizar javascript para hacer el trackeo de los banners del sitio... por lo tanto: idea desechada.</p>
<h3>2.- Links de Wordpress + plugin de estadísticas</h3>
<p>Esta idea es la que utilicé. El plugin que (a mi juicio) permite ver las estadísticas de manera más clara es el <a href="http://blog.ericlamb.net/projects/wp-click-track/" target="_blank">WP Click Tracker</a>. Este plugin permite agregar links manualmente y automáticamente (los links internos del sitio) y recibir estadísticas de cada uno de ellos, aunque para efectos de mi administrador de banners, yo lo configuré para que no trackee ninguna URL automática, sino solamente las que yo le pida.</p>
<p>Por supuesto que estoy utilizando un plugin externo porque wordpress no almacena estadísticas de los clicks en los links.</p>
<p>En resumidas cuentas, el proceso para agregar un banner consta de 3 pasos escenciales:</p>
<ol>
<li>Agregar el link al plugin que llevará las estadísticas de los clicks.<br /></li>
<li>Agregar la imagen que quieras utilizar como banner a la librería de medios.</li>
<li>Agregar el link utilizarndo la foto y la url que te obtuvimos en los pasos anteriores y asociarlo a alguna categoría específica para que lo muestre en alguna parte definida del blog.<br /></li>
</ol>
<p>Con este sistema podremos mostrar el banner que queramos en la posición que definamos en la integración, y las estadísticas las podremos ver en la pestaña "Reports" del plugin "WP Click Tracker".</p>
<p>De todas formas, para quienes no estén muy familiarizados con el administrador de Wordpress o para quienes quieran ver algo más gráfico, les dejo <a href="http://www.peivem.com/uploads/administrar_banners_en_wordpress/paso_a_paso.zip">un zip con las imágenes paso a paso</a>.</p>
<h3>Integración con Wordpress</h3>
<p>El tema es como integrar el sistema con Wordpress para que muestre los banners en la posición que queramos. Fácil. Lo primero que tenemos que hacer es utilizar el siguiente código y ponerlo en la parte donde queramos que vayan los banners:</p>
<pre><?php<br />$bm = get_bookmarks("category_name=NOMBREDELACATEGORIA&orderby=rating&order=ASC");<br />foreach($bm as $bookmark){}<br />    echo "<a href='".$bookmark->link_url."' target='_blank'>";<br />    echo "<img src='".$bookmark->link_image."' alt='".$bookmark->link_name."'>";<br />    echo "</a>";<br />}<br />?></pre>
<p>Como verán, en el código anterior llamamos a todos los links de la categoría NOMBREDELACATEGORIA (nótese que es el "NOMBRE" y no el "SLUG"), y los ordenamos por "rating". Esto nos permitirá definir la posición en que queremos que aparezca cada banner.</p>
<p>El nombre de la categoría que escojamos obviamente tendrá relación con los banners. Un ejemplo puede ser "BannerPrincipal" o "Banner200x200". El tema es que sea una categoría fácil de reconocer para saber donde aparecerá el banner que escogimos.</p>
<h3>En conclusión</h3>
<p>Yo armé y probé el sistema y me funcionó a la perfección. Si quieren pueden probar con algún otro sistema de estadísticas, y luego cuentan que tal les pareció.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=128</wfw:commentRss>
		</item>
		<item>
		<title><![CDATA[setTimeout() y setInterval()]]></title>
		<link>http://www.peivem.com/?post=127</link>
		<comments>http://www.peivem.com/?post=127#comentarios</comments>
		<pubDate>Sat, 21 Nov 2009 11:22:15 -0400</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Multimedia]]></category>
		<guid>http://www.peivem.com/?post=127</guid>
		<description><![CDATA[<p><img src="http://www.peivem.com/uploads/settimeout/resumen.jpg" alt="" /></p>
<p>Aunque no son muy conocidas por quienes están comenzando en el tema
de la programación, estas dos funciones son una maravilla. Son
funciones existentes en varios lenguajes de programación, como en
Javascript y en Actionscript, que nos sacarán de varios apuros y nos
permitirán optimizar y mejorar nuestros códigos.</p>
<p>Su objetivo principal es el de definir un tiempo para esperar a
ejecutar alguna otra función. Por ejemplo, si necesito mostrar una
alerta y que desaparezca en 3 segundos más, o si necesito que un reloj
vaya actualizándose cada 1 segundo.</p>]]></description>
		<content:encoded><![CDATA[<p>Aunque no son muy conocidas por quienes están comenzando en el tema de la programación, estas dos funciones son una maravilla. Son funciones existentes en varios lenguajes de programación, como en Javascript y en Actionscript, que nos sacarán de varios apuros y nos permitirán optimizar y mejorar nuestros códigos.</p>
<p>Su objetivo principal es el de definir un tiempo para esperar a ejecutar alguna otra función. Por ejemplo, si necesito mostrar una alerta y que desaparezca en 3 segundos más, o si necesito que un reloj vaya actualizándose cada 1 segundo.</p>
<h3>setTimeout()</h3>
<p>Esta función permite definir un tiempo específico para que se ejecute una tarea una sola vez. Se utiliza de la siguiente manera:</p>
<pre>var t = setTimeout(funcion,tiempo);</pre>
<h3>setInterval()</h3>
<p>Este función permite ejecutar una tarea infinitas veces cada una cierta cantidad de tiempo. Se utiliza de la siguiente manera:</p>
<pre>var t = setTimeout(funcion,tiempo);</pre>
<blockquote>El tiempo de ambas funciones se mide en milisegundos, es decir, que 1000=1 segundo </blockquote>
<h3>clearTimeout()</h3>
<p>Esta función permite anular alguna llamada específica a setTimeout() o setInterval(). Se utiliza de la siguiente manera:</p>
<pre>clearTimeout(t);</pre>
<p>Donde <em>t</em> corresponde a la variable que se definió para almacenar la llamada a alguna de las otras dos funciones.</p>
<p>Hay que tener cuidado de saber bien donde se definió la variable <em>t</em>, pues si está definida dentro de otra función o de un movieClip (en el caso de Actionscript), no va a funcionar si no se "rutea" bien la llamada a esa variable.</p>
<h3>Vamos a un ejemplo práctico</h3>
<h4>Javascript</h4>
<p>Vamos a realizar un contador como ejemplo. Este es el código que debemos utilizar:</p>
<pre>var tiempoInicial=10;<br />function tiempo(){<br />    tiempoInicial--;<br />    document.getElementById('tiempo').innerHTML=tiempoInicial;<br />    if(tiempoInicial==0){<br />        clearTimeout(t);<br />        alert("fin");<br />    }<br />}<br />var t = setInterval(tiempo,1000);<br /></pre>
<p>Al principio del script se define la variable "tiempoInicial", que será la misma que iremos utilizando para ir contando hacia atrás.</p>
<blockquote>
<p>La variable no se puede llamar "tiempo", pues la función que utilizaremos se llama tiempo y si ambas se llamasen igual javascript no sabría si nos estamos refiriendo a la función o a la variable.</p>
<p>El div dentro del cual se mostrarán los segundos restantes se llama tiempo también, y este no generará ningún conflicto con la funcion tiempo, ya que no es un elemento de javascript, sino uno de HTML.</p>
</blockquote>
<p>Luego definimos la función tiempo, que lo que hace es restar un segundo a la variable tiempoInicial, mostrarla dentro del DIV cuyo ID es "tiempo", y luego verificar: si el tiempo es igual a 0, anula el intervalo de tiempo que se define inicialmente, es decir que deja de llamar a la función tiempo() cada un segundo.</p>
<p>Bajo la función se llama a la función setInterval y se define que el tiempo de intervalo sea cada un segundo (1000 ms). Antes de llamarla, se define la variable <em>t</em>, que es la que almacenará el intervalo para luego poder anularlo con clearTimeout desde dentro de la función.</p>
<p>Como este javascript se carga al principio de la página, en la práctica suceden 3 cosas:</p>
<ol>
<li>se define el tiempo inicial</li>
<li>se define la función tiempo()</li>
<li>se establece el intervalo de tiempo</li>
</ol>
<p>Estas cosas no vuelven a ejecutarse porque la página ya se cargó, pero el setInterval deja en memoria que se debe llamar a la función tiempo() cada un segundo eternamente, o hasta que se anule con la función clearInterval.</p>
<p><a href="http://www.peivem.com/uploads/settimeout/contador_javascript.zip">Descargar el archivo de ejemplo</a></p>
<p>Actionscript</p>
<p>Para actionscript la función es exactamente la misma, solamente que el número de segundos restantes debe mostrarse de otra manera. No voy a profundizar mucho en esta versión pero les dejo el archivo de ejemplo para que lo analicen ustedes mismos.</p>
<p><a href="http://www.peivem.com/uploads/settimeout/contador_actionscript.zip">Descargar el archivo de ejemplo</a></p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=127</wfw:commentRss>
		</item>

	</channel>
</rss>