<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Poesía binaria</title>
	<atom:link href="http://totaki.com/poesiabinaria/feed/" rel="self" type="application/rss+xml" />
	<link>http://totaki.com/poesiabinaria</link>
	<description>Programación, Tecnología y Software Libre</description>
	<pubDate>Fri, 12 Mar 2010 10:05:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Funciones con nombres raros, y cortos (PHP, Javascript ,C)</title>
		<link>http://totaki.com/poesiabinaria/2010/03/funciones-con-nombres-raros-y-cortos-php-javascript-c/</link>
		<comments>http://totaki.com/poesiabinaria/2010/03/funciones-con-nombres-raros-y-cortos-php-javascript-c/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 10:05:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[c]]></category>

		<category><![CDATA[caracteres]]></category>

		<category><![CDATA[corto]]></category>

		<category><![CDATA[funciones]]></category>

		<category><![CDATA[js]]></category>

		<category><![CDATA[nombre]]></category>

		<category><![CDATA[programacion]]></category>

		<category><![CDATA[raros]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=350</guid>
		<description><![CDATA[




El objetivo de la programación, además de escribir poco (ya sabemos que todos los que programamos no queremos dejarnos las manos escribiendo), es hacer nuestro código mantenible, y para eso es necesario que nuestras funciones y métodos tengan nombres descriptivos.
Es decir, podemos definir 20 funciones: a(), b(), c(),&#8230; y mientras hacemos el programa tener un [...]]]></description>
			<content:encoded><![CDATA[<!-- Easy AdSense V2.82 -->
<!-- Post[count: 2] -->
<div class="ezAdsense adsense adsense-leadin" style="float:right;margin:12px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-8801914383539770";
/* Poesía Binaria Publi 234x60 */
google_ad_slot = "3016322508";
google_ad_width = 234;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p>El objetivo de la programación, además de escribir poco (ya sabemos que todos los que programamos no queremos dejarnos las manos escribiendo), es hacer nuestro código mantenible, y para eso es necesario que nuestras funciones y métodos tengan nombres descriptivos.<br />
Es decir, podemos definir 20 funciones: a(), b(), c(),&#8230; y mientras hacemos el programa tener un mapa mental de todas ellas, y utilizarlas, pero dentro de 6 meses, cuando vayamos a hacer la versión 2.0 de nuestro programa, ¿nos acordaremos de para qué valía cada función? Seguramente no; pero siempre que hacemos un for, lo más normal es escribir: &#8220;for (i=0;&#8230;.&#8221;, &#8220;for (j=0;&#8230;&#8230;)&#8221;, etc, eso sí que sale automático <img src='http://totaki.com/poesiabinaria/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Podemos, por ejemplo, tener nombres descriptivos, pero tal vez sean demasiado largos y muchos de ellos empezarán por las mismas letras, lo cual podemos considerarlo improductivo.</p>
<p>Si habéis curioseado <a href="http://www.prototypejs.org/">prototype</a> o <a href="http://jquery.com/">JQuery</a>, veréis cómo hay una llamada que se repite: <strong>$()</strong> y ella sola, con lo corta que es, hace maravillas para obtener objetos en Javascript. Los que hayan curioseado <a href="http://www.gnu.org/software/gettext/">gettext</a> recordarán la función <strong>_()</strong>, que sirve para traducir un mensaje. Estas funciones tienen en común que no vamos a parar de llamarlas en nuestros programas, sabemos lo que hacen y necesitamos una forma corta de llamarlas, ya que si desde nuestro programa llamamos a la función <em>gettext()</em> unas 2000 veces, estaríamos escribiendo 12000 caracteres de más, y en Javascript, si por ejemplo queremos llamar a <em>document.getElementById()</em>, con $() (no es lo único que hace) unas 60 veces, estaremos escribiendo unas 1320letras de más (y en Javascript eso se traduce en más transferencia por nuestra parte).</p>
<p>Pero cuando vamos a hacer una aplicación, todo se utiliza más o menos a un ritmo similar, aunque encontraremos tal vez funciones de formateo que llamemos constantemente, y esas funciones podrán tener un nombre <em>raro</em> que puede ser un símbolo. Pero con lo caprichosos que son los lenguajes de programación, ¿qué símbolos podemos utilizar? Deben ser caracteres con los que podamos empezar una <strong>función</strong>.<br />
Aquí van algunos ejemplos para funciones PHP:</p>
<ul>
<li>    €();</li>
<li>    ¡();</li>
<li>    ç();</li>
<li>    º();</li>
<li>    ½();</li>
<li>    _(); Pertenece a gettext</li>
<li>    ł();</li>
<li>    ¶();</li>
<li>   ŧ();</li>
<li>    ←();</li>
</ul>
<p>C sólo permite el uso de _()</p>
<p>En Javascript, tenemos por ejemplo los siguientes:</p>
<ul>
<li>$() Ojo con jquery y prototype</li>
<li>_()</li>
<li>º()</li>
<li>ª()</li>
<li>ß()</li>
<li>ð()</li>
<li>ŋ()</li>
<li>ħ()</li>
<li>ł()</li>
</ul>
<p>Hay algunos más, pero no es plan de abusar, y no quiere decir que <strong>tenemos que</strong> usarlos, sólo que tenemos esa posibilidad; también muchos caracteres dependen de la codificación que utilicemos, por lo tanto pueden darnos ciertos problemas en el futuro (sobre todo en Javascript).</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/03/funciones-con-nombres-raros-y-cortos-php-javascript-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>trim(), un gran amigo (PHP, C++, C)</title>
		<link>http://totaki.com/poesiabinaria/2010/03/trim-un-gran-amigo-php-c-c/</link>
		<comments>http://totaki.com/poesiabinaria/2010/03/trim-un-gran-amigo-php-c-c/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 16:59:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[basica]]></category>

		<category><![CDATA[cadenas]]></category>

		<category><![CDATA[funcion]]></category>

		<category><![CDATA[trim]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=348</guid>
		<description><![CDATA[A mi entender, es una de las funciones más útiles que se han inventado, como programador de PHP estoy harto de utilizarlo para filtrar información (caracteres a la derecha y a la izquierda, ya sean espacios, caracteres especiales o algún carácter que yo utilice para el control de la información).
Sabemos que el usuario final no [...]]]></description>
			<content:encoded><![CDATA[<p>A mi entender, es una de las funciones más útiles que se han inventado, como programador de PHP estoy harto de utilizarlo para filtrar información (caracteres a la derecha y a la izquierda, ya sean espacios, caracteres especiales o algún carácter que yo utilice para el control de la información).<br />
Sabemos que el usuario final no nos va a dejar las cosas fáciles, puesto que a veces, nos llena un campo con &#8220;intros&#8221; al principio y al final; o la información, después de pasar por HTTP, lectura de un archivo XML o por otros tratamientos, tal vez tenga un retorno de carro al final; por eso, a veces es útil hacer:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$cadena</span><span class="sy0">=</span><a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$cadena</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>Pero ahora estamos en C++, bien quería postear también el código en C++, así que decidí googlear un poco para ver esto:</p>
<div class="codecolorer-container cpp " style="overflow:auto;white-space:nowrap;width:580px;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="cpp codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co2">#include &lt;string&gt;</span><br />
<span class="kw4">const</span> std<span class="sy4">::</span><span class="me2">string</span> whiteSpaces<span class="br0">&#40;</span> <span class="st0">&quot; <span class="es1">\f</span><span class="es1">\n</span><span class="es1">\r</span><span class="es1">\t</span><span class="es1">\v</span>&quot;</span> <span class="br0">&#41;</span><span class="sy4">;</span><br />
<br />
<span class="kw4">void</span> trimRight<span class="br0">&#40;</span> std<span class="sy4">::</span><span class="me2">string</span><span class="sy3">&amp;</span> str,<br />
&nbsp; &nbsp; &nbsp; <span class="kw4">const</span> std<span class="sy4">::</span><span class="me2">string</span><span class="sy3">&amp;</span> trimChars <span class="sy1">=</span> whiteSpaces <span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp;std<span class="sy4">::</span><span class="me2">string</span><span class="sy4">::</span><span class="me2">size_type</span> pos <span class="sy1">=</span> str.<span class="me1">find_last_not_of</span><span class="br0">&#40;</span> trimChars <span class="br0">&#41;</span><span class="sy4">;</span><br />
&nbsp; &nbsp;str.<span class="me1">erase</span><span class="br0">&#40;</span> pos <span class="sy2">+</span> <span class="nu0">1</span> <span class="br0">&#41;</span><span class="sy4">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw4">void</span> trimLeft<span class="br0">&#40;</span> std<span class="sy4">::</span><span class="me2">string</span><span class="sy3">&amp;</span> str,<br />
&nbsp; &nbsp; &nbsp; <span class="kw4">const</span> std<span class="sy4">::</span><span class="me2">string</span><span class="sy3">&amp;</span> trimChars <span class="sy1">=</span> whiteSpaces <span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp;std<span class="sy4">::</span><span class="me2">string</span><span class="sy4">::</span><span class="me2">size_type</span> pos <span class="sy1">=</span> str.<span class="me1">find_first_not_of</span><span class="br0">&#40;</span> trimChars <span class="br0">&#41;</span><span class="sy4">;</span><br />
&nbsp; &nbsp;str.<span class="me1">erase</span><span class="br0">&#40;</span> <span class="nu0">0</span>, pos <span class="br0">&#41;</span><span class="sy4">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw4">void</span> trim<span class="br0">&#40;</span> std<span class="sy4">::</span><span class="me2">string</span><span class="sy3">&amp;</span> str, <span class="kw4">const</span> std<span class="sy4">::</span><span class="me2">string</span><span class="sy3">&amp;</span> trimChars <span class="sy1">=</span> whiteSpaces <span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp;trimRight<span class="br0">&#40;</span> str, trimChars <span class="br0">&#41;</span><span class="sy4">;</span><br />
&nbsp; &nbsp;trimLeft<span class="br0">&#40;</span> str, trimChars <span class="br0">&#41;</span><span class="sy4">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>Con esto podemos jugar con nuestros textos&#8230; </p>
<p>Ahora vamos al caso de C, muchos se siguen preguntando&#8230; pero si C es un lenguaje muy antiguo, ¿aún se sigue usando? Pues sí ! Aunque muchas cosas sean horribles de programar en C, a pelo, se sigue usando, y aún le queda mucha vida a este lenguaje. Por eso, veremos dos funciones trim() especiales para C:</p>
<div class="codecolorer-container c " style="overflow:auto;white-space:nowrap;width:580px;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br /></div></td><td><div class="c codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co2">#include &lt;stdio.h&gt;</span><br />
<span class="co2">#include &lt;string.h&gt;</span><br />
<br />
<span class="kw4">char</span> <span class="sy0">*</span>trim<span class="br0">&#40;</span><span class="kw4">char</span> <span class="sy0">*</span>s<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw4">char</span> <span class="sy0">*</span>start <span class="sy0">=</span> s<span class="sy0">;</span><br />
<br />
&nbsp; <span class="coMULTI">/* Nos comemos los espacios al inicio */</span><br />
&nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="sy0">*</span>start <span class="sy0">&amp;&amp;</span> isspace<span class="br0">&#40;</span><span class="sy0">*</span>start<span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="sy0">++</span>start<span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw4">char</span> <span class="sy0">*</span>i <span class="sy0">=</span> start<span class="sy0">;</span><br />
&nbsp; <span class="kw4">char</span> <span class="sy0">*</span>end <span class="sy0">=</span> start<span class="sy0">;</span><br />
<br />
&nbsp; <span class="coMULTI">/* Nos comemos los espacios al final */</span><br />
&nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="sy0">*</span>i<span class="br0">&#41;</span><br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <span class="sy0">!</span>isspace<span class="br0">&#40;</span><span class="sy0">*</span><span class="br0">&#40;</span>i<span class="sy0">++</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; end <span class="sy0">=</span> i<span class="sy0">;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; <span class="coMULTI">/* Escribimos el terminados */</span><br />
&nbsp; <span class="sy0">*</span>end <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">return</span> start<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw4">char</span> <span class="sy0">*</span>trim2<span class="br0">&#40;</span><span class="kw4">char</span> <span class="sy0">*</span>s<span class="sy0">,</span> <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy0">*</span>trimChars<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw4">char</span> <span class="sy0">*</span>start <span class="sy0">=</span> s<span class="sy0">;</span><br />
<br />
&nbsp; <span class="coMULTI">/* Nos comemos los caracteres al principio */</span><br />
&nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="sy0">*</span>start <span class="sy0">&amp;&amp;</span> strpbrk<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw4">const</span> <span class="kw4">char</span><span class="sy0">*</span><span class="br0">&#41;</span>start<span class="sy0">,</span> trimChars<span class="br0">&#41;</span><span class="sy0">==</span>start<span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="sy0">++</span>start<span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw4">char</span> <span class="sy0">*</span>i <span class="sy0">=</span> start<span class="sy0">;</span><br />
&nbsp; <span class="kw4">char</span> <span class="sy0">*</span>end <span class="sy0">=</span> start<span class="sy0">;</span><br />
<br />
&nbsp; <span class="coMULTI">/* Nos comemos los caracteres al final */</span><br />
&nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="sy0">*</span>i<span class="br0">&#41;</span><br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> strpbrk<span class="br0">&#40;</span>i<span class="sy0">++,</span> trimChars<span class="br0">&#41;</span><span class="sy0">!=</span>i<span class="sy0">-</span><span class="nu0">1</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; end <span class="sy0">=</span> i<span class="sy0">;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; <span class="coMULTI">/* Coloramos el perminador */</span><br />
&nbsp; <span class="sy0">*</span>end <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">return</span> start<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw4">int</span> main<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw4">char</span> mi_cadena<span class="br0">&#91;</span><span class="nu0">30</span><span class="br0">&#93;</span><span class="sy0">=</span><span class="st0">&quot;<span class="es1">\f</span><span class="es1">\n</span> Cadena; <span class="es1">\t</span>Sucia <span class="es1">\n</span><span class="es1">\t</span> ;&quot;</span><span class="sy0">;</span><br />
&nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Mi cadena inicialmente: <span class="es1">\&quot;</span>%s<span class="es1">\&quot;</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> mi_cadena<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Mi cadena tras trim(): <span class="es1">\&quot;</span>%s<span class="es1">\&quot;</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> trim<span class="br0">&#40;</span>mi_cadena<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Mi cadena tras trim2(): <span class="es1">\&quot;</span>%s<span class="es1">\&quot;</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> trim2<span class="br0">&#40;</span>mi_cadena<span class="sy0">,</span><span class="st0">&quot;;<span class="es1">\f</span><span class="es1">\n</span><span class="es1">\t</span>&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>En C también podremos tener nuestro trimleft y nuestro trimright y creo que es fácil sacarlo desde esta función general, ya que *start se mueve indicando el principio de la cadena, y con end, y es ese movimiento (que aunque perdemos algo de memoria) el que hace que se recorte la cadena; además, como buena función de C, perdemos la cadena que inicialmente teníamos.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/03/trim-un-gran-amigo-php-c-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comprobación de IP invertida / Reverse IP Lookup</title>
		<link>http://totaki.com/poesiabinaria/2010/02/comprobacion-de-ip-invertida-reverse-ip-lookup/</link>
		<comments>http://totaki.com/poesiabinaria/2010/02/comprobacion-de-ip-invertida-reverse-ip-lookup/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 10:29:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Comunicación]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Interneteando]]></category>

		<category><![CDATA[comprobacion]]></category>

		<category><![CDATA[dinero]]></category>

		<category><![CDATA[hosting]]></category>

		<category><![CDATA[inversa]]></category>

		<category><![CDATA[ip]]></category>

		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=344</guid>
		<description><![CDATA[Desde hace mucho tiempo he utilizado CuWhois para hacer esta comprobación, ofrece muchos servicios interesantes para Webmasters y recomendaciones para posicionar mejor las webs, aunque desde hace tiempo, la comprobación de IP invertida no es tan completa como antes. Por ejemplo, hace unos años, probándola sobre este mismo dominio, daba unos 70 resultados de páginas [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace mucho tiempo he utilizado <a href="http://www.cuwhois.com/">CuWhois</a> para hacer esta comprobación, ofrece muchos servicios interesantes para Webmasters y recomendaciones para posicionar mejor las webs, aunque desde hace tiempo, la comprobación de IP invertida no es tan completa como antes. Por ejemplo, hace unos años, probándola sobre este mismo dominio, daba unos 70 resultados de páginas que compartían esta misma IP (tengo un hosting compartido para esta web); ahora me dice que tengo 8 vecinos, y sólo me dice 6 de ellos.</p>
<p>Hoy gracias al <a href="http://www.facebook.com/hostarting">página de Facebook de Hostarting</a> he descubierto <a href="http://www.yougetsignal.com/tools/web-sites-on-web-server/">YouGetSignal</a>, y aquí hay un listado más completo de las webs que encontramos en el servidor (dependiendo de con quién tengamos contratado el dominio nos convencerá mejor mirar en una u otra página, y siempre está bien que si encontramos información interesante la comprobemos a mano), y si tenemos un hosting compartido podemos ver cuánto se aprovecha nuestra empresa de hosting de nosotros y a veces, estimar más o menos cuánto están cobrando por un mismo servidor. :S Pero al menos nos da una idea aproximada de la carga que puede tener.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/02/comprobacion-de-ip-invertida-reverse-ip-lookup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>La web a mi gusto: Descargar contenidos de Moodle rápidamente</title>
		<link>http://totaki.com/poesiabinaria/2010/02/la-web-a-mi-gusto-descargar-contenidos-de-moodle-rapidamente/</link>
		<comments>http://totaki.com/poesiabinaria/2010/02/la-web-a-mi-gusto-descargar-contenidos-de-moodle-rapidamente/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 17:14:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Interneteando]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[campus]]></category>

		<category><![CDATA[chickenfoot]]></category>

		<category><![CDATA[clases]]></category>

		<category><![CDATA[colegio]]></category>

		<category><![CDATA[greasemonkey]]></category>

		<category><![CDATA[modificar]]></category>

		<category><![CDATA[moodle]]></category>

		<category><![CDATA[scripts]]></category>

		<category><![CDATA[trigger]]></category>

		<category><![CDATA[universidad]]></category>

		<category><![CDATA[virtual]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=341</guid>
		<description><![CDATA[Quiero continuar con una serie de posts que llevarán una temática parecida: muchas páginas web funcionan de una forma fija, pero a mí me incomoda bastante esa forma de funcionar, pero como necesito cubrir mis necesidades, intento que funcionen como yo quiero.
Tras esa gran descripción, quiero introducir mi problema:
Moodle es un sistema ampliamente aceptado como [...]]]></description>
			<content:encoded><![CDATA[<p>Quiero continuar con una serie de posts que llevarán una temática parecida: muchas páginas web funcionan de una forma fija, pero a mí me incomoda bastante esa forma de funcionar, pero como necesito cubrir mis necesidades, intento que funcionen como yo quiero.<br />
Tras esa gran descripción, quiero introducir mi problema:<br />
Moodle es un sistema ampliamente aceptado como solución web académica, tiene muchas opciones y está muy bien, personalmente, en la Universidad, los profesores <em>cuelgan</em> apuntes, ejercicios y más material a la web, lo malo es que cuando llego a una página, me gusta descargar a mi disco duro todos los contenidos (pdfs, documentos, etc), y para ello invierto mucho tiempo.<br />
Para ello viene bien una extensión para Firefox: <a href="http://groups.csail.mit.edu/uid/chickenfoot/">Chickenfoot</a>, también podemos utilizar <a href="http://www.greasespot.net/">Greasemonkey</a> (también hay extensiones para IE y Safari).</p>
<p>Sin más preámbulos, el script utilizado para que Moodle descargue los contenidos más rápido es el siguiente:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">var</span> alltags <span class="sy0">=</span> <span class="kw2">new</span> Array<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw2">function</span> detecta_pdf<span class="br0">&#40;</span>cont<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> url_match <span class="sy0">=</span> <span class="sy0">/</span>https<span class="sy0">?:</span>\<span class="sy0">/</span>\<span class="sy0">/</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="sy0">-</span>\w\.<span class="br0">&#93;</span><span class="sy0">+</span><span class="br0">&#41;</span><span class="sy0">+</span><span class="br0">&#40;</span><span class="sy0">:</span>\d<span class="sy0">+</span><span class="br0">&#41;</span><span class="sy0">?</span><span class="br0">&#40;</span>\<span class="sy0">/</span><span class="br0">&#40;</span><span class="br0">&#91;</span>\w<span class="sy0">/</span>_\.<span class="br0">&#93;</span><span class="sy0">*</span><span class="br0">&#40;</span>\<span class="sy0">?</span>\S<span class="sy0">+</span><span class="br0">&#41;</span><span class="sy0">?</span><span class="br0">&#41;</span><span class="sy0">?</span><span class="br0">&#41;</span><span class="sy0">?/;</span><br />
&nbsp; <span class="kw2">var</span> contenido<span class="sy0">=</span>cont.<span class="me1">match</span><span class="br0">&#40;</span>url_match<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; document.<span class="me1">location</span><span class="sy0">=</span>contenido<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw2">function</span> pdfplay<span class="br0">&#40;</span>que<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> cont<span class="sy0">=</span>que.<span class="me1">innerHTML</span><span class="sy0">;</span><br />
&nbsp; que.<span class="me1">innerHTML</span><span class="sy0">=</span><span class="st0">''</span><span class="sy0">;</span><br />
&nbsp; detecta_pdf<span class="br0">&#40;</span>cont<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw2">function</span> CogeElementoPorClase<span class="br0">&#40;</span>tipo<span class="sy0">,</span> clase<span class="sy0">,</span> quehacer<span class="br0">&#41;</span> <br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> alltags<span class="sy0">=</span>document.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span>tipo<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> i<span class="sy0">&lt;</span>alltags.<span class="me1">length</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>alltags<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">className</span><span class="sy0">==</span>clase<span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; quehacer<span class="br0">&#40;</span>alltags<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<br />
CogeElementoPorClase<span class="br0">&#40;</span><span class="st0">'div'</span><span class="sy0">,</span> <span class="st0">'resourcepdf'</span><span class="sy0">,</span> pdfplay<span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>La función <strong>CogeElementoPorClase()</strong> es la misma que utilicé en <a href="http://totaki.com/poesiabinaria/2009/08/%c2%a1la-web-a-mi-gusto/">este post anterior</a> para modificar la web de mi proveedor de hosting.</p>
<p>Tras ello debemos crear un <strong>trigger</strong>, es decir será el evento con el que se disparará automáticamente el script que acabamos de hacer; por ejemplo, para la Universidad de Málaga podemos decir que el script se dispare cuando la página a la que accedemos sea: <strong>http://*.cv.uma.es/mod/resource/view.php?id=*</strong>.</p>
<p>En principio el script fue pensado para los PDFs (el acrobat reader tarda bastante en abrirse cuando tienes que abrir más de 10 PDFs), pero puede servir para cualquier contenido. Por otra parte, aunque no está muy optimizado (la necesidad me llevó a hacer el script rápidamente) espero que os sea útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/02/la-web-a-mi-gusto-descargar-contenidos-de-moodle-rapidamente/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Andanzas en Facebook: Diálogos</title>
		<link>http://totaki.com/poesiabinaria/2010/02/andanzas-en-facebook-dialogos/</link>
		<comments>http://totaki.com/poesiabinaria/2010/02/andanzas-en-facebook-dialogos/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 18:07:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[HTML]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[aplicaciones]]></category>

		<category><![CDATA[dialogos]]></category>

		<category><![CDATA[entorno]]></category>

		<category><![CDATA[facil]]></category>

		<category><![CDATA[juegos]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=332</guid>
		<description><![CDATA[Una de las posibilidades que nos brinda la plataforma Facebook para crear aplicaciones es la de tener diálogos con el Look&#38;Feel de la propia red social. Y todo esto sin crujirnos la cabeza para hacerlos. Podemos hacer diálogos simples (con un botón) o de decisión (con dos botones), y además pueden ser pop-ups:
o contextuales:
Para ello [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las posibilidades que nos brinda la plataforma Facebook para crear aplicaciones es la de tener diálogos con el <em>Look&amp;Feel</em> de la propia red social. Y todo esto sin crujirnos la cabeza para hacerlos. Podemos hacer diálogos simples (con un botón) o de decisión (con dos botones), y además pueden ser pop-ups:</p>
<p><a href="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/confucio.jpg"><img class="aligncenter size-medium wp-image-337" title="Diálogo Pop-up" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/confucio-300x105.jpg" alt="Diálogo Pop-up" width="300" height="105" /></a>o contextuales:</p>
<p><a href="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/context.jpg"><img class="aligncenter size-medium wp-image-338" title="Diálogo contextual de Facebook" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/context-300x131.jpg" alt="Diálogo contextual de Facebook" width="300" height="131" /></a>Para ello sólo bastan algunas líneas de FBJS:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">var</span> usuario_pulsa_ok <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="co1">// Ejecutaremos este código cuando el usuario acepte el diálogo</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">var</span> dialog <span class="sy0">=</span> <span class="kw2">new</span> Dialog<span class="br0">&#40;</span>Dialog.<span class="me1">DIALOG_POP</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dialog.<span class="me1">onconfirm</span> <span class="sy0">=</span> usuario_pulsa_ok<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dialog.<span class="me1">showMessage</span><span class="br0">&#40;</span><span class="st0">'Test de diálogo'</span><span class="sy0">,</span> <span class="st0">'Sólo tienes una salida ! Pulsar Ok'</span><span class="sy0">,</span> <span class="st0">'Ok'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>Con este código vemos un diálogo simple con un texto y un mensaje de Ok, si quisiéramos hacer este diálogo contextual deberíamos cambiar <strong>DIALOG_POP</strong> por <strong>DIALOG_CONTEXTUAL</strong>. Y si quisiéramos que el diálogo se cerrara automáticamente pasados unos segundos:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace">setTimeout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> dialog.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span><span class="sy0">,</span> <span class="nu0">2000</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// Cerrar tras 2 segundos</span></div></td></tr></tbody></table></div>
<p>Un diálogo de dos botones sería también así de fácil (basta con cambiar de método a la hora de mostrarlo:<strong>showMessage</strong> por <strong>showChoice</strong>. Quedaría así:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">var</span> cerrar <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// Se ejecutará esto cuando el usuario cancele el diálogo (responda no a la pregunta, o lo cierre)</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> aceptar <span class="sy0">=</span> funcion <span class="br0">&#40;</span><span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// Se ejecutará esto cuando el usuario acepte la pregunta.</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> dialog <span class="sy0">=</span> <span class="kw2">new</span> Dialog<span class="br0">&#40;</span>Dialog.<span class="me1">DIALOG_POP</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; dialog.<span class="me1">oncancel</span> <span class="sy0">=</span> cerrar<span class="sy0">;</span><br />
&nbsp; &nbsp; dialog.<span class="me1">onconfirm</span> <span class="sy0">=</span> aceptar<span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; dialog.<span class="me1">showChoice</span><span class="br0">&#40;</span><span class="st0">'¿Esta seguro?'</span><span class="sy0">,</span> <span class="st0">'¿De verdad que no te gusta la nueva versión de Facebook?'</span><span class="sy0">,</span> <span class="st0">'Sí, prefiero la anterior'</span><span class="sy0">,</span> <span class="st0">'No, renovarse o morir'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>Ahora sólo queda una cuestión pendiente, estos diálogos aún tienen más posibilidades, aunque están llenas de bugs, dentro de los diálogos se acepta texto, imágenes, divs, tablas y lo que queramos, aunque hay que introducirlo todo de una forma especial y no siempre va a funcionar. Sólo necesitamos crear una fb-string:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc2">&lt;fb:js-string var<span class="sy0">=</span><span class="st0">&quot;loquequierodentrodeldialogo&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;imagen.jpg&quot;</span> <span class="sy0">/</span>&gt;</span>Esto es lo que podemos hacer con el diálogo<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;&lt;<span class="sy0">/</span>fb:js-string&gt;</span></div></td></tr></tbody></table></div>
<p>Y podemos hacer esto más sencillo con una función en PHP que introduzca los contenidos dentro del tag:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">function</span> facebook_fbstr<span class="br0">&#40;</span><span class="re0">$var</span><span class="sy0">,</span> <span class="re0">$string</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">'&lt;fb:js-string var=&quot;'</span><span class="sy0">.</span><span class="re0">$var</span><span class="sy0">.</span><span class="st_h">'&quot;&gt;'</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">.</span><span class="re0">$string</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">.</span><span class="st_h">'&lt;/fb:js-string&gt;'</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>Así cuando llamemos al diálogo, sólo tendremos que poner:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace">dialog.<span class="me1">showMessage</span><span class="br0">&#40;</span>loquequierodentrodeldialogo<span class="sy0">,</span> <span class="st0">'Pulsa Ok'</span><span class="sy0">,</span> <span class="st0">'Ok'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>Aunque esta última característica es muy bonita, puede ser que en ocasiones necesitemos para que funcione correctamente eliminar las cookies del navegador, o incluso cerrar y reabrir sesión, y ya sabemos que a un usuario normal no le podemos decir eso, ya que se cabrearía y no usaría nuestra aplicación (a no ser que fuera vital para su existencia); tampoco le podemos decir que la culpa la tiene Facebook ya que aunque los usuario vean todos los días fallar a Facebook, cuando pasa en tu aplicación, la culpa la tienes tú&#8230; por lo tanto, me reservo para una futura entrega una solución un poco más original para hacer que siempre funcionen los diálogos más complicados.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/02/andanzas-en-facebook-dialogos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hacer que Facebook coja una buena imagen de nuestra web cuando nos enlacen</title>
		<link>http://totaki.com/poesiabinaria/2010/02/hacer-que-facebook-coja-una-buena-imagen-de-nuestra-web-cuando-nos-enlacen/</link>
		<comments>http://totaki.com/poesiabinaria/2010/02/hacer-que-facebook-coja-una-buena-imagen-de-nuestra-web-cuando-nos-enlacen/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 00:05:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[Interneteando]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[atractivos]]></category>

		<category><![CDATA[links]]></category>

		<category><![CDATA[metadatos]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=328</guid>
		<description><![CDATA[Facebook es la red de moda, y si queremos promocionar nuestra web o nuestros servicios, éste es un buen punto de partida. Por otra parte, puede ser que usuarios de Facebook enlacen a nuestra web o nuestro blog y para tener nuevos visitantes queremos hacer nuestro link atractivo: poner una imagen y una descripción es [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-329" title="fb_publish" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/fb_publish-300x142.jpg" alt="fb_publish" width="300" height="142" />Facebook es la red de moda, y si queremos promocionar nuestra web o nuestros servicios, éste es un buen punto de partida. Por otra parte, puede ser que usuarios de Facebook enlacen a nuestra web o nuestro blog y para tener nuevos visitantes queremos hacer nuestro link atractivo: poner una imagen y una descripción es muy interesante. (En la imagen, tenemos el contraejemplo (un link poco atractivo para nuevos visitantes).</p>
<p>Pero todo esto se puede arreglar con dos líneas en el <em>header</em> de nuestra web:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc2">&lt;<a href="http://december.com/html/4/element/link.html"><span class="kw2">link</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;image_src&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;image/jpeg&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://midominio.com/imagen.jpg&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;description&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;Descripción de mi web&quot;</span> <span class="sy0">/</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Aunque el metadato <strong>description</strong> es muy utilizado; decido incluirlo aquí ya que Facebook es de donde extrae información. La línea anterior sirve para especificar una imagen; así nuestro enlace quedará de la siguiente manera:</p>
<p><a href="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/fb_publish2.jpg"><img class="aligncenter size-medium wp-image-334" title="fb_publish2" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/fb_publish2-300x151.jpg" alt="fb_publish2" width="300" height="151" /></a></p>
<p>Para buscar imágenes más originales podemos hacer una captura de pantalla de nuestra web, o una fracción de nuestro logotipo, eso sí, la imagen tampoco debe pesar demasiado y la relación de aspecto debe ser 1:1, es decir, una imagen cuadrada.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/02/hacer-que-facebook-coja-una-buena-imagen-de-nuestra-web-cuando-nos-enlacen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Día de buenas noticias para el software libre</title>
		<link>http://totaki.com/poesiabinaria/2010/02/dia-de-buenas-noticias-para-el-software-libre/</link>
		<comments>http://totaki.com/poesiabinaria/2010/02/dia-de-buenas-noticias-para-el-software-libre/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 15:54:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[código abierto]]></category>

		<category><![CDATA[interoperabilidad]]></category>

		<category><![CDATA[moviles]]></category>

		<category><![CDATA[openoffice]]></category>

		<category><![CDATA[software libre]]></category>

		<category><![CDATA[symbian]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=324</guid>
		<description><![CDATA[Hoy parece que es un  buen día, me he levantado con dos buenas noticias.
Symbian ya es Software Libre, una muy buena noticia, ya podemos investigar cómo está hecho y desde luego quieren que la comunidad intervenga en hacer mejoras. Podemos ver más información acerca de esto: PC World, Symbian Developer Community.
La segunda gran noticia de [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy parece que es un  buen día, me he levantado con dos buenas noticias.</p>
<p><a href="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/aplicaciones-symbian.jpg"><img class="alignleft size-medium wp-image-325" title="aplicaciones-symbian" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/02/aplicaciones-symbian-300x176.jpg" alt="aplicaciones-symbian" width="300" height="176" /></a><a href="http://www.symbian.org" target="_blank">Symbian</a> ya es Software Libre, una muy buena noticia, ya podemos investigar cómo está hecho y desde luego quieren que la comunidad intervenga en hacer mejoras. Podemos ver más información acerca de esto: <a href="http://www.pcworld.idg.com.au/article/335048" target="_blank">PC World</a>, <a href="http://developer.symbian.org/wiki/index.php/Category:Platform_Opening" target="_blank">Symbian Developer Community</a>.</p>
<p>La segunda gran noticia de hoy es que la Administración española, está obligada a comunicarse entre administraciones y con los ciudadanos utilizando estándares abiertos. Lo leí <a href="http://www.publico.es/ciencias/291511" target="_blank">aquí</a> esta mañana, y tal y como dicen, ahora mismo la página del <a href="http://www.defensordelpueblo.es/" target="_blank">Defensor del pueblo</a>, si queremos utilizar nuestro certificado digital <strong>necesitamos</strong> Internet Explorer, mientras<a href="http://www.caracol.com.co/nota.aspx?id=940299" target="_blank"> cada vez más gente</a> rechaza el uso de este para cosas serias; puede que ese antiguo sistema tenga los días contados. Por otra parte, como ciudadanos deberíamos ver más a menudo cómo se comunican con nosotros con documentos OpenDocument, y deberían aceptarnos a nosotros estos documentos. Toda <a href="http://boe.es/boe/dias/2010/01/29/pdfs/BOE-A-2010-1331.pdf" target="_blank">esta parrafada</a> (es un PDF del BOE) es muy bonita, deberíamos esperar antes de cantar victoria a ver la implementación de todo esto, tal vez luego encontremos desarrollos hechos sin mucha gana con respecto a las webs y firmas digitales, y documentos OpenDocument (muy bien) que se note a la legua que están hechos con MS. Word y luego copiados y pegados (mal). De todas formas, enhorabuena, es un buen primer paso.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/02/dia-de-buenas-noticias-para-el-software-libre/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Una idea acerca de la web de RENFE</title>
		<link>http://totaki.com/poesiabinaria/2010/02/una-idea-acerca-de-la-web-de-renfe/</link>
		<comments>http://totaki.com/poesiabinaria/2010/02/una-idea-acerca-de-la-web-de-renfe/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 19:41:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Interneteando]]></category>

		<category><![CDATA[rediseño]]></category>

		<category><![CDATA[renfe]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=320</guid>
		<description><![CDATA[Todos los que hemos tenido que utilizar la web de Renfe alguna vez, hemos sufrido sus daños y seguimos con sus secuelas.
Encontraréis un nuevo rediseño de la web aquí.
Porque encima de que algunas empresas quieren vender un producto o servicio, y nosotros queremos comprarlo, no se preocupan de mejorar sus webs para hacerlo posible. Podríamos [...]]]></description>
			<content:encoded><![CDATA[<p>Todos los que hemos tenido que utilizar la web de Renfe alguna vez, hemos sufrido sus daños y seguimos con sus secuelas.</p>
<p>Encontraréis un <a href="http://www.kekoponte.com/2010/02/los-antonios-ya-no-van-en-tren/" target="_blank">nuevo rediseño de la web aquí</a>.</p>
<p>Porque encima de que algunas empresas quieren vender un producto o servicio, y nosotros queremos comprarlo, no se preocupan de mejorar sus webs para hacerlo posible. Podríamos tener la posibilidad de contratar los servicios con otra empresa que tuviera una web mejor, pero como ocurre en este y otros muchos casos suelen ser las empresas únicas empresas que lo ofrecen.</p>
<p>Es el caso de ALSA o grupo Avanza, con algunos trayectos, canal cliente Movistar sólo funciona en IE (y a veces); cuyas webs a veces dan más de un calentamientos de cabeza al usuario; y muchas tiendas online&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/02/una-idea-acerca-de-la-web-de-renfe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web hosting: Malas experiencias con Honesting</title>
		<link>http://totaki.com/poesiabinaria/2010/01/web-hosting-malas-experiencias-con-honesting/</link>
		<comments>http://totaki.com/poesiabinaria/2010/01/web-hosting-malas-experiencias-con-honesting/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 01:20:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[experiencias]]></category>

		<category><![CDATA[honesting]]></category>

		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=313</guid>
		<description><![CDATA[De esto hace ya algún tiempo (Enero-Febrero de 2006), pero aún sigo dolido.
Tenía un proyecto web, que estaba tomando algo de forma, tenía un número considerable de visitas, y estaba muy contento con él, me costó mucho esfuerzo y aunque el hosting no era caro, era lo que me podía permitir. Bien, empecé con esta [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://totaki.com/poesiabinaria/wp-content/uploads/2010/01/hosting.jpg"><img class="alignleft size-medium wp-image-314" title="hosting" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/01/hosting-300x225.jpg" alt="hosting" width="300" height="225" /></a>De esto hace ya algún tiempo (Enero-Febrero de 2006), pero aún sigo dolido.</p>
<p>Tenía un proyecto web, que estaba tomando algo de forma, tenía un número considerable de visitas, y estaba muy contento con él, me costó mucho esfuerzo y aunque el hosting no era caro, era lo que me podía permitir. Bien, empecé con esta empresa un tiempo antes y todo fue bien, hay que reconocer que llegué a mandar tickets de soporte a las 4:00 AM y me respondían enseguida; pero en verano de 2005, un exploit de Joomla se cargó todas las webs del servidor (curioso, una seguridad tremenda), y no restauraron mi copia de seguridad porque tenían webs más prioritarias (bueno, pasa)&#8230; y a finales de 2005, empecé a notar cómo <strong>no se leían los tickets que</strong> enviaba, es decir, cuando tenía algún problema, yo detallaba las pruebas que ya había hecho, y me empezaban a repetir lo que había puesto, es más en las respuestas no tenían en cuenta lo de los mensajes anteriores, por lo que al final debía resumir en cada mensaje todo lo hablado anteriormente, y cualquier problema se convertía en un calvario de varios días (al menos tardaban relativamente poco en contestar).</p>
<p>Pero un día me encuentro con que no puedo ver mi correo (y ya que, aunque tenían teléfono nunca lo cogían), accedo al panel de control, envío un ticket, y me habían cortado el servicio (la web tampoco funcionaba) por enviar SPAM&#8230; luego me dicen que excedí la transferencia de correo (cosa improbable porque en las estadísticas de correo saliente todo era normal), la reactivan y a los dos días me cortan de nuevo el servicio, y me cuesta 5 tickets que me lo rehabiliten, pero a la tercera vez que me lo quitan no me dicen nada, tardan todo el día en contestar para decirme que he excedido el uso de CPU y que&#8230; mi página estaba mal diseñada (a ellos no les importaba cómo estuviera diseñada mi web); por lo de la CPU es relativo, es normal que si intentan meter a 2000 usuarios en la misma máquina, el servicio no vaya todo lo bien que debería, llevaba 2 años con la web con ellos sin problemas. Pero lo más curioso es que todos los problemas empezaron 15 días después de pagar la cuota anual&#8230;</p>
<p>Después de muchos tickets (que borraron antes de que pudiera copiarlos) conseguí que me subieran una copia de seguridad a la red para poder descargarla, eso sí, durante el tiempo que estuvo la copia de seguridad colgada, no tuvo ningún sistema de seguridad (ni contraseña para descargar ni nada), es decir, dejaron mis contraseñas, mis mails, información privada mía y de casi 2000 usuarios de la web descargable por todo el mundo. Tras haberme quejado mil veces por toda la red, aquí va la 1001, no es una empresa seria <strong>y menos aún honesta</strong>. Y además, <a href="http://foros.internautas.org/viewtopic.php?t=8335" target="_blank">no</a> <a href="http://www.ciao.es/honesting_com__803090" target="_blank">soy</a> <a href="http://blog.arkangel.info/2007/01/12/honesting/" target="_blank">el único</a> <a href="http://www.oscarworld.es/content/view/97/136/" target="_blank">que</a> <a href="http://thefuckingshit.blogia.com/2005/101301--cambio-de-hosting-.php" target="_blank">lo ha </a><a href="http://10goto10.muchohosting.com/?m=200710" target="_blank">pasado mal</a> <a href="http://marcoantonio.name/2007/02/02/dios-que-pena-me-da/" target="_blank">con esta</a> gente. Aunque, según veo comentarios, todavía sigue haciendo de las suyas.</p>
<p>Fui a la oficina del consumidor, y me dijeron que la única solución era poner una denuncia porque la oficina era ilocalizable, le mandaron una carta oficial y llegó de vuelta, y a los teléfonos que les dí no les cogieron ni una vez.</p>
<p>Una cosa más, el encargado de esta pseudoempresa, se crea mil perfiles en foros, Ciao, y mil sitios, pero si os paráis a leer tranquilamente, esos clones no aportan mucha información y lo único que aportan es repetido, no viene a cuento y da la casualidad de que sólo entran para hacer ruido.</p>
<p>Foto original de <a href="http://www.flickr.com/photos/johnseb/3425464/" target="_blank">John Seb</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/01/web-hosting-malas-experiencias-con-honesting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Crea tu avatar en 3D</title>
		<link>http://totaki.com/poesiabinaria/2010/01/crea-tu-avatar-en-3d/</link>
		<comments>http://totaki.com/poesiabinaria/2010/01/crea-tu-avatar-en-3d/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 01:55:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Interneteando]]></category>

		<category><![CDATA[3D]]></category>

		<category><![CDATA[avatar]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[personalizado]]></category>

		<category><![CDATA[redes]]></category>

		<category><![CDATA[sociales]]></category>

		<guid isPermaLink="false">http://totaki.com/poesiabinaria/?p=310</guid>
		<description><![CDATA[Nacen cientos de servicios web al mes, pero hoy, vía rm -rf /, he descubierto uno que me ha sorprendido!
En principio, parece la típica página para crear avatares, pero con un detalle añadido, son en 3D, queda bien, queda gracioso, pero es que además están animados (son animaciones de unos 5 segundos, no es mucho, [...]]]></description>
			<content:encoded><![CDATA[<p>Nacen cientos de servicios web al mes, pero hoy, vía<a href="http://phyx.wordpress.com/" target="_blank"> rm -rf /</a>, he descubierto uno que me ha sorprendido!</p>
<p>En principio, parece la típica página para crear avatares, pero con un detalle añadido, son en 3D, queda bien, queda gracioso, pero es que además están animados (son animaciones de unos 5 segundos, no es mucho, y a lo mejor cuando las veas 5 veces ya cansan, pero mira)&#8230;</p>
<p>Pero al entrar en la página, hay una opción que me agrada: <strong>Your own photo</strong>; y sí, te permite subir tu foto y crearte un carácter en 3D, como tú, no es instantáneo, pero en unos 10 minutos (siguiendo unas instrucciones) tienes un muñecajo en 3D personalizado&#8230; y todo gratis (no sé qué tratamiento harán con la imagen, pero para poner una foto en Facebook está muy bien).</p>
<p>La web es: <a href="http://www.avatara.com" target="_blank">www.avatara.com</a></p>
<p>Yo tuve que subir la foto 3 veces porque me falló, supongo que será un poco la saturación del servidor, ya que crear los avatares 3D no tiene que ser una tarea muy ligera, y si además hay muchas peticiones de lo mismo, llegará un momento que no se pueden atender todas.</p>
<p>Os dejo aquí el mío:</p>
<p><a href="http://totaki.com/poesiabinaria/wp-content/uploads/2010/01/yo_wink.gif"><img class="aligncenter size-full wp-image-311" title="yo_wink" src="http://totaki.com/poesiabinaria/wp-content/uploads/2010/01/yo_wink.gif" alt="yo_wink" width="328" height="400" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://totaki.com/poesiabinaria/2010/01/crea-tu-avatar-en-3d/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
