<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2spanishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Sentido Web</title><link>http://sentidoweb.com</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sentidoweb" /><description>Publicación dirigida a los desarrolladores web e internautas apasionados por la programación, diseño, negocios y todo lo que ocurre en Internet.</description><language>en</language><lastBuildDate>Tue, 16 Mar 2010 10:23:29 PDT</lastBuildDate><generator>http://wordpress.org/?v=2.9.2</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sentidoweb" /><feedburner:info uri="sentidoweb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:emailServiceId>sentidoweb</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>WebSockets en HTML5</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/8JCMK9OlKP8/websockets-en-html5-2.php</link><category>Desarrollo web</category><category>Javascript</category><category>html5</category><category>websockets</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Tue, 16 Mar 2010 10:23:29 PDT</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2228</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>HTML5 introduce una característica que puede mejorar sustancialmente las aplicaciones web, los WebSockets, los cuales permite crear un canal de comunicación bi-direccional entre el cliente y el servidor, solucionando los problemas que presenta Ajax o Comet. El ancho de banda ahorrado tiene una proporción de 500:1 y una latencia de 3:1, resultados increíbles que hacen que los de Google anden muy interesandos en esta tecnología (el ahorro en aplicaciones como GMail puede ser considerable).</p>
<p>Por ahora sólo funciona en Google, pero un código de ejemplo sería el siguiente:</p>
<pre><code><pre class="javascript"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"WebSocket"</span> <span style="color: #000066; font-weight: bold;">in</span> window<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> ws = <span style="color: #003366; font-weight: bold;">new</span> WebSocket<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"ws://websockets.org:8787"</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">//this service bounces messages back</span>
  ws.<span style="color: #006600;">onopen</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #009900; font-style: italic;">// Web Socket is connected. You can send data by send() method.</span>
    ws.<span style="color: #006600;">send</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"message to send"</span><span style="color: #66cc66;">&#41;</span>; 
  <span style="color: #66cc66;">&#125;</span>;
  ws.<span style="color: #006600;">onmessage</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>evt<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #003366; font-weight: bold;">var</span> received_msg = evt.<span style="color: #006600;">data</span>; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>evt.<span style="color: #006600;">data</span><span style="color: #66cc66;">&#41;</span>;  <span style="color: #66cc66;">&#125;</span>;
  ws.<span style="color: #006600;">onclose</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #009900; font-style: italic;">/* websocket is closed.*/</span><span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"WebSocket Closed!"</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #66cc66;">&#123;</span>
  <span style="color: #009900; font-style: italic;">// the browser doesn't support WebSocket.</span>
  <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"Websocket is not supported in your browser"</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
<p><a href="http://java.sys-con.com/node/1315473">HTML5 Web Sockets: A Quantum Leap in Scalability for the Web</a></p>
<p>Vía / <a href="http://www.dzone.com/links/rss/html5_web_sockets_a_quantum_leap_in_scalability_f.html">DZone</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/8i3l_cyVVkUZV054R3_7Z2ai0ic/0/da"><img src="http://feedads.g.doubleclick.net/~a/8i3l_cyVVkUZV054R3_7Z2ai0ic/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8i3l_cyVVkUZV054R3_7Z2ai0ic/1/da"><img src="http://feedads.g.doubleclick.net/~a/8i3l_cyVVkUZV054R3_7Z2ai0ic/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=8JCMK9OlKP8:AuaHKGOw0No:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=8JCMK9OlKP8:AuaHKGOw0No:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=8JCMK9OlKP8:AuaHKGOw0No:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>HTML5 introduce una característica que puede mejorar sustancialmente las aplicaciones web, los WebSockets, los cuales permite crear un canal de comunicación bi-direccional entre el cliente y el servidor, solucionando los problemas que presenta Ajax o Comet. El ancho de banda ahorrado tiene una proporción de 500:1 y una latencia de 3:1, resultados increíbles que hacen [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/16/websockets-en-html5-2.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/16/websockets-en-html5-2.php</feedburner:origLink></item><item><title>Enlaces rápidos (15-03-2010)</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/ANCw_pmJvJw/enlaces-rapidos-15-03-2010-2.php</link><category>Quicklinks</category><category>cassandra</category><category>couchdb</category><category>mongodb</category><category>nosql</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Mon, 15 Mar 2010 05:32:52 PDT</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2224</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Más enlaces rápidos, sobre todo basados en NoSQL (por favor, que no lo conviertan en un término que usen los guays y los gurús&#8230;)</p>
<ul>
	<li><a href="http://github.com/alexbilbie/codeigniter-mongodb-library">CodeIgniter library for interfacing with MongoDB</a></li>
	<li><a href="http://technosophos.com/content/mongodb-5-things-every-php-developer-should-know-about-mongodb">5 Things Every PHP Developer Should Know About MongoDB</a></li>
	<li><a href="http://codemonkeyism.com/dark-side-nosql/">The dark side of NoSQL</a></li>
	<li><a href="http://github.com/peterneubauer/neo4j-php-wrapper/">neo4j-php-wrapper: Integración entre PHP y Neo4j</a></li>
	<li><a href="http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model">WTF is a SuperColumn? An Intro to the Cassandra Data Model</a></li>
	<li><a href="http://radar.oreilly.com/2010/03/oracle-to-mysql.html">MySQL migration and risk management</a></li>
	<li><a href="http://www.catswhocode.com/blog/getting-started-with-couchdb-tutorial-a-beginners-guide">Getting started with CouchDB: a beginner’s guide</a></li>
	<li><a href="http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html">How FarmVille Scales to Harvest 75 Million Players a Month</a></li>
	<li><a href="http://try.redis-db.com/">Tutorial y demo de redis</a></li>
	<li><a href="http://facets.endeca.com/2010/03/let%E2%80%99s-not-let-%E2%80%9Cnosql%E2%80%9D-go-the-way-of-%E2%80%9Cweb-2-0%E2%80%9D/">Let’s not let “NoSQL” go the way of “Web 2.0”</a></li>
	<li><a href="http://about.digg.com/blog/saying-yes-nosql-going-steady-cassandra">Saying Yes to NoSQL; Going Steady with Cassandra</a></li>
	<li><a href="http://www.mongodb.org/display/DOCS/MongoDB,+CouchDB,+MySQL+Compare+Grid">MongoDB, CouchDB, MySQL  Compare Grid</a></li>
	<li><a href="http://try.mongodb.org/">MongoDB shell testing</a></li>
	<li><a href="http://nosql-database.org/">Your Ultimate Guide to theNon &#8211; Relational Universe!</a></li>
	<li><a href="http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/">Choosing a non-relational database; why we migrated from MySQL to  MongoDB</a></li>
	<li><a href="http://philsturgeon.co.uk/news/2010/03/codeigniter-2">CodeIgniter 2.0: Everything you need to know</a></li>
	<li><a href="http://blog.nahurst.com/visual-guide-to-nosql-systems">Visual Guide to NoSQL Systems</a> (vía <a href="http://youare.com/jlantunez/2010/03/15/5130644">@jlantunez</a>)</li>
</ul>
<p>Me hizo gracia esta frase: &#8220;NoSQL is for very smart people who need a very sharp knife.&#8221; espero un día cumplir ambas condiciones <img src='http://sentidoweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://feedads.g.doubleclick.net/~a/4XWTlVGsCHiKqdz8b-d-QwFtRHY/0/da"><img src="http://feedads.g.doubleclick.net/~a/4XWTlVGsCHiKqdz8b-d-QwFtRHY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4XWTlVGsCHiKqdz8b-d-QwFtRHY/1/da"><img src="http://feedads.g.doubleclick.net/~a/4XWTlVGsCHiKqdz8b-d-QwFtRHY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=ANCw_pmJvJw:kpd3WRdcjNQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=ANCw_pmJvJw:kpd3WRdcjNQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=ANCw_pmJvJw:kpd3WRdcjNQ:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Más enlaces rápidos, sobre todo basados en NoSQL (por favor, que no lo conviertan en un término que usen los guays y los gurús&amp;#8230;)

	CodeIgniter library for interfacing with MongoDB
	5 Things Every PHP Developer Should Know About MongoDB
	The dark side of NoSQL
	neo4j-php-wrapper: Integración entre PHP y Neo4j
	WTF is a SuperColumn? An Intro to the Cassandra Data [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/15/enlaces-rapidos-15-03-2010-2.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/15/enlaces-rapidos-15-03-2010-2.php</feedburner:origLink></item><item><title>INSERT IGNORE en MySQL</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/k-B0QuFCcPg/insert-ignore-en-mysql.php</link><category>MYSQL</category><category>Quicklinks</category><category>ignore</category><category>insert</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Fri, 12 Mar 2010 01:01:08 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2222</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Muchas veces realizamos inserts y nuestras comprobaciones son erróneas e intentamos insertar registros duplicados, dándonos un error gordo en MySQL. Para evitar esto, normalmente se usa un REPLACE cuando la situación permite reemplazar los valores nuevos por los actuales, pero cuando esto no es posible, nos tenemos que pegar con el código buscando la comprobación que no hacemos correctamente. Para evitar esto: insertar algo ya existente, MySQL ofrece la posibilidad de ignorar el insert cuando no se puede insertar:</p>
<pre><code><pre class="sql"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">IGNORE</span> 
  <span style="color: #993333; font-weight: bold;">INTO</span> tabla 
    <span style="color: #66cc66;">&#40;</span>id, valor, ...<span style="color: #66cc66;">&#41;</span> 
  <span style="color: #993333; font-weight: bold;">VALUES</span> 
    <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>, <span style="color: #ff0000;">'valor, ...) </span></pre></code></pre>
<p>Cada día aprendo algo nuevo, aunque a veces deberían darme con la Biblia de MySQL (775 páginas) en la cabeza por no conocer antes esto.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/q9QfFH5vAyTq03mD88dxCgGESQM/0/da"><img src="http://feedads.g.doubleclick.net/~a/q9QfFH5vAyTq03mD88dxCgGESQM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/q9QfFH5vAyTq03mD88dxCgGESQM/1/da"><img src="http://feedads.g.doubleclick.net/~a/q9QfFH5vAyTq03mD88dxCgGESQM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=k-B0QuFCcPg:cLpVd3p4Hi4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=k-B0QuFCcPg:cLpVd3p4Hi4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=k-B0QuFCcPg:cLpVd3p4Hi4:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Muchas veces realizamos inserts y nuestras comprobaciones son erróneas e intentamos insertar registros duplicados, dándonos un error gordo en MySQL. Para evitar esto, normalmente se usa un REPLACE cuando la situación permite reemplazar los valores nuevos por los actuales, pero cuando esto no es posible, nos tenemos que pegar con el código buscando la comprobación [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php</feedburner:origLink></item><item><title>Procesos concurrentes en PHP</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/9oOZ8HPNebQ/procesos-concurrentes-en-php.php</link><category>PHP</category><category>concurrencia</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Thu, 11 Mar 2010 09:50:14 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2219</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Buen script que nos puede ser muy útil cuando tenemos que ejecutar varios procesos concurrentes, por ejemplo realizar tareas de administración simultáneas. Para ello es necesario utilizar la función <em>pcntl_fork()</em>. El ejemplo es bastante sencillo, pero podemos personalizar el número de procesos que queremos que se ejecuten concurrentemente:</p>
<pre><code><pre class="php"><span style="color: #3E6D8F;">$maxChildren</span> = <span style="color: #cc66cc;">4</span>;
<span style="color: #3E6D8F;">$numChildren</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #723b00;">foreach</span><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$unitsOfWork</span> <span style="color: #723b00;">as</span> <span style="color: #3E6D8F;">$unit</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #3E6D8F;">$pids</span><span style="color: #66cc66;">&#91;</span><span style="color: #3E6D8F;">$numChildren</span><span style="color: #66cc66;">&#93;</span> = pcntl_fork<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #723b00;">if</span><span style="color: #66cc66;">&#40;</span>!<span style="color: #3E6D8F;">$pids</span><span style="color: #66cc66;">&#91;</span><span style="color: #3E6D8F;">$numChildren</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #808080; font-style: italic;">// do work</span>
    doWork<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$unit</span><span style="color: #66cc66;">&#41;</span>;
      <a href="http://www.php.net/posix_kill"><span style="color: #000066;">posix_kill</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/getmypid"><span style="color: #000066;">getmypid</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #cc66cc;">9</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span> <span style="color: #723b00;">else</span> <span style="color: #66cc66;">&#123;</span>
      <span style="color: #3E6D8F;">$numChildren</span>++;
      <span style="color: #723b00;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$numChildren</span> == <span style="color: #3E6D8F;">$maxChildren</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        pcntl_wait<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$status</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #3E6D8F;">$numChildren</span>--;
      <span style="color: #66cc66;">&#125;</span>
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
<p><a href="http://blog.perplexedlabs.com/2010/03/02/php-forking-to-concurrency/">PHP Forking to Concurrency with pcntl_fork()</a></p>
<p>Via / <a href="http://www.phpdeveloper.org/news/14164">PHPDeveloper.org</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/THfEcfAX3tpfBHrxo3UkejiDoow/0/da"><img src="http://feedads.g.doubleclick.net/~a/THfEcfAX3tpfBHrxo3UkejiDoow/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/THfEcfAX3tpfBHrxo3UkejiDoow/1/da"><img src="http://feedads.g.doubleclick.net/~a/THfEcfAX3tpfBHrxo3UkejiDoow/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=9oOZ8HPNebQ:N9WS_6bjK_c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=9oOZ8HPNebQ:N9WS_6bjK_c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=9oOZ8HPNebQ:N9WS_6bjK_c:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Buen script que nos puede ser muy útil cuando tenemos que ejecutar varios procesos concurrentes, por ejemplo realizar tareas de administración simultáneas. Para ello es necesario utilizar la función pcntl_fork(). El ejemplo es bastante sencillo, pero podemos personalizar el número de procesos que queremos que se ejecuten concurrentemente:
$maxChildren = 4;
$numChildren = 0;
foreach&amp;#40;$unitsOfWork as $unit&amp;#41; &amp;#123;
 [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/11/procesos-concurrentes-en-php.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/11/procesos-concurrentes-en-php.php</feedburner:origLink></item><item><title>Lawnchair: ‘base de datos’ clave-valor en Javascript</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/gSlF_iP5p4o/lawnchair-base-de-datos-clave-valor-en-javascript.php</link><category>Javascript</category><category>base de datos</category><category>json</category><category>nosql</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Tue, 09 Mar 2010 09:11:20 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2217</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Lawnchair</strong> es una base de datos documental basada en JSON y que funciona en el cliente (Javascript). Puede venir muy bien para desarrollo de aplicaciones para móviles. Es muy fácl de usar y permite operaciones de escritura, lectura, búsqueda y eliminación.</p>
<pre><code><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> people = <span style="color: #003366; font-weight: bold;">new</span> Lawnchair<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'people'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #009900; font-style: italic;">// Saving a document async</span>
people.<span style="color: #006600;">save</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span><span style="color: #000066;">name</span>:<span style="color: #3366CC;">'frank'</span><span style="color: #66cc66;">&#125;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>r<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    console.<span style="color: #006600;">log</span><span style="color: #66cc66;">&#40;</span>r<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #009900; font-style: italic;">// Specifying your own key</span>
people.<span style="color: #006600;">save</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>key:<span style="color: #3366CC;">'whatever'</span>, <span style="color: #000066;">name</span>:<span style="color: #3366CC;">'dracula'</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>
<p><a href="http://brianleroux.github.com/lawnchair/">Lawnchair</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/hFxUBuHeM__5XBtGylpU2Lqvjz4/0/da"><img src="http://feedads.g.doubleclick.net/~a/hFxUBuHeM__5XBtGylpU2Lqvjz4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hFxUBuHeM__5XBtGylpU2Lqvjz4/1/da"><img src="http://feedads.g.doubleclick.net/~a/hFxUBuHeM__5XBtGylpU2Lqvjz4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=gSlF_iP5p4o:bZugeeNXZW8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=gSlF_iP5p4o:bZugeeNXZW8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=gSlF_iP5p4o:bZugeeNXZW8:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Lawnchair es una base de datos documental basada en JSON y que funciona en el cliente (Javascript). Puede venir muy bien para desarrollo de aplicaciones para móviles. Es muy fácl de usar y permite operaciones de escritura, lectura, búsqueda y eliminación.
var people = new Lawnchair&amp;#40;'people'&amp;#41;;
// Saving a document async
people.save&amp;#40;&amp;#123;name:'frank'&amp;#125;, function&amp;#40;r&amp;#41; &amp;#123;
    console.log&amp;#40;r&amp;#41;;
&amp;#125;&amp;#41;;
// [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/09/lawnchair-base-de-datos-clave-valor-en-javascript.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/09/lawnchair-base-de-datos-clave-valor-en-javascript.php</feedburner:origLink></item><item><title>PHPillow: librería PHP para CouchDB</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/kz06dAbnPDQ/phpillow-libreria-php-para-couchdb.php</link><category>Bases de datos</category><category>PHP</category><category>couchdb</category><category>nosql</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Sat, 06 Mar 2010 17:30:38 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2214</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>PHPillow</strong> es una librería PHP que nos permite interactuar con CouchDB (base de datos documental de Apache basada en JSON).</p>
<p>Ahora que el NoSQL es una alternativa a las bases de datos relacionales, esta librería nos ayudará bastante a la hora de realizar nuestra aplicación, ya que el código es bastante sencillo.</p>
<pre><code><pre class="php"><span style="color: #000000; font-weight: bold;">class</span> myBlogDocument extends phpillowDocument <span style="color: #66cc66;">&#123;</span> 
  protected <a href="http://www.php.net/static"><span style="color: #000066;">static</span></a> <span style="color: #3E6D8F;">$type</span> = <span style="color: #ff0000;">'blog_entry'</span>; 
  protected <span style="color: #3E6D8F;">$requiredProperties</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'title'</span>, <span style="color: #ff0000;">'text'</span>, <span style="color: #66cc66;">&#41;</span>; 
  public <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> 
    <span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">properties</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span> 
      <span style="color: #ff0000;">'title'</span> =&gt; <span style="color: #000000; font-weight: bold;">new</span> phpillowStringValidator<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, 
      <span style="color: #ff0000;">'text'</span> =&gt; <span style="color: #000000; font-weight: bold;">new</span> phpillowTextValidator<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, 
      <span style="color: #ff0000;">'comments'</span> =&gt; <span style="color: #000000; font-weight: bold;">new</span> phpillowDocumentArrayValidator<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'myBlogComments'</span> <span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#41;</span>; 
    parent::__construct<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; 
  <span style="color: #66cc66;">&#125;</span> 
  protected <span style="color: #000000; font-weight: bold;">function</span> generateId<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> 
    <span style="color: #723b00;">return</span> <span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">stringToId</span><span style="color: #66cc66;">&#40;</span> <span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">storage</span>-&gt;<span style="color: #006600;">title</span> <span style="color: #66cc66;">&#41;</span>; 
  <span style="color: #66cc66;">&#125;</span> 
  protected <span style="color: #000000; font-weight: bold;">function</span> <a href="http://www.php.net/gettype"><span style="color: #000066;">getType</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> 
    <span style="color: #723b00;">return</span> self::<span style="color: #3E6D8F;">$type</span>; 
  <span style="color: #66cc66;">&#125;</span> 
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
<p><a href="http://arbitracker.org/phpillow.html">PHPillow</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/GCkdqO4sy2DuqJQ13K5SizQ3OdI/0/da"><img src="http://feedads.g.doubleclick.net/~a/GCkdqO4sy2DuqJQ13K5SizQ3OdI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GCkdqO4sy2DuqJQ13K5SizQ3OdI/1/da"><img src="http://feedads.g.doubleclick.net/~a/GCkdqO4sy2DuqJQ13K5SizQ3OdI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=kz06dAbnPDQ:8BVHq3ORCaw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=kz06dAbnPDQ:8BVHq3ORCaw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=kz06dAbnPDQ:8BVHq3ORCaw:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>PHPillow es una librería PHP que nos permite interactuar con CouchDB (base de datos documental de Apache basada en JSON).
Ahora que el NoSQL es una alternativa a las bases de datos relacionales, esta librería nos ayudará bastante a la hora de realizar nuestra aplicación, ya que el código es bastante sencillo.
class myBlogDocument extends phpillowDocument &amp;#123; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/07/phpillow-libreria-php-para-couchdb.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/07/phpillow-libreria-php-para-couchdb.php</feedburner:origLink></item><item><title>Enlaces rápidos (05-03-2010)</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/VZqv9VHkHGA/enlaces-rapidos-05-03-2010.php</link><category>Quicklinks</category><category>cassandra</category><category>mongodb</category><category>nosql</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Fri, 05 Mar 2010 00:39:54 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2212</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Voy a tener que cambiar el título de estos posts por &#8220;Enlaces rápidos sobre NoSQL&#8221;, porque al final es sobre lo que más enlazo.</p>
<ul>
	<li><a href="http://engineering.twitter.com/2010/02/anatomy-of-whale.html">The Anatomy of a Whale</a> &#8220;Twitter is over capacity&#8221;</li>
	<li><a href="http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html">PHP Compiler Performance</a></li>
	<li><a href="http://css.dzone.com/articles/cassandra-nosql-database">Cassandra NoSQL Database an Apache Top Level Project</a></li>
	<li><a href="http://blog.oridoki.com/2009/01/20/php-mi-estado-en-skype/">PHP – Mi estado en Skype</a></li>
	<li><a href="http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview-with-ryan-king">Cassandra @ Twitter: An Interview with Ryan King</a></li>
	<li><a href="http://josephscott.org/archives/2010/02/database-indexes-on-domain-names/">Database Indexes on Domain Names</a></li>
	<li><a href="http://www.michaelwales.com/2010/02/what-does-hiphop-php-mean-for-codeigniter/">Qué puede significar HipHop para CodeIgniter</a></li>
	<li><a href="http://zenmachine.wordpress.com/2010/03/01/mongodb-and-redis-for-an-url-shortener/">MongoDB and Redis for an URL shortener</a></li>
	<li><a href="http://nosql.mypopescu.com/post/392418792/translate-sql-to-mongodb-mapreduce">Translate SQL to MongoDB MapReduce</a></li>
	<li><a href="http://www.netconcepts.com/google-keyword-tool-annualizer/">Google Keyword Tool Analizer</a></li>
	<li><a href="http://www.blackhatfun.com/?p=25">How to crack a CAPTCHA</a></li>
	<li><a href="http://nosql.mypopescu.com/post/420820637/cassandra-usecases-survey-results">Cassandra Usecases: Survey Results</a></li>
	<li><a href="http://nosql.mypopescu.com/post/422286341/6-valid-questions-for-every-nosql-project">6 Valid Questions for Every (NoSQL) Project</a></li>
	<li><a href="http://www.yafla.com/dforbes/Getting_Real_about_NoSQL_and_the_SQL_Isnt_Scalable_Lie/">Getting Real about NoSQL and the SQL-Isn&#8217;t-Scalable Lie</a></li>
	<li><a href="http://nosql.mypopescu.com/post/424164220/sql-is-scalable-sql-scalability-isnt-for-everyone">SQL is scalable. SQL scalability isn&#8217;t for everyone. NoSQL isn&#8217;t for  everyone either</a></li>
	<li><a href="http://www.umiacs.umd.edu/~jimmylin/MapReduce-book-20100219.pdf">MapReduce Book</a> (PDF)</li>
</ul>
<p><a href="http://feedads.g.doubleclick.net/~a/0S2f3kj7uTEq_OS3WuKXSSWFUbU/0/da"><img src="http://feedads.g.doubleclick.net/~a/0S2f3kj7uTEq_OS3WuKXSSWFUbU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0S2f3kj7uTEq_OS3WuKXSSWFUbU/1/da"><img src="http://feedads.g.doubleclick.net/~a/0S2f3kj7uTEq_OS3WuKXSSWFUbU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=VZqv9VHkHGA:xc9VJ4rLyxQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=VZqv9VHkHGA:xc9VJ4rLyxQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=VZqv9VHkHGA:xc9VJ4rLyxQ:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Voy a tener que cambiar el título de estos posts por &amp;#8220;Enlaces rápidos sobre NoSQL&amp;#8221;, porque al final es sobre lo que más enlazo.

	The Anatomy of a Whale &amp;#8220;Twitter is over capacity&amp;#8221;
	PHP Compiler Performance
	Cassandra NoSQL Database an Apache Top Level Project
	PHP – Mi estado en Skype
	Cassandra @ Twitter: An Interview with Ryan King
	Database Indexes on [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/05/enlaces-rapidos-05-03-2010.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/05/enlaces-rapidos-05-03-2010.php</feedburner:origLink></item><item><title>Traduce usando Google y PHP</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/4J3nfZVaoGU/traduce-usando-google-y-php.php</link><category>PHP</category><category>Google</category><category>translator</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Wed, 03 Mar 2010 09:12:45 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2210</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Interesante librería que hace uso de Google Translator para traducir un texto en un idioma a otro. Aunque el API de Google está solo en Java o Javascript, el autor de la librería ha creado un wrapper para que esté disponible desde PHP.</p>
<pre><code><pre class="php"><span style="color: #723b00;">require_once</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'googleTranslate.class.php'</span><span style="color: #66cc66;">&#41;</span>;
 
<span style="color: #808080; font-style: italic;">/* Initialize the class translate class */</span>
<span style="color: #3E6D8F;">$gt</span> = <span style="color: #000000; font-weight: bold;">new</span> GoogleTranslateWrapper<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$sampleText</span> = <span style="color: #ff0000;">"Bonjour de cette partie du monde"</span>;
 
<span style="color: #808080; font-style: italic;">/* translate(string, to_language, from_language) */</span>
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #3E6D8F;">$gt</span>-&gt;<span style="color: #006600;">translate</span><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$sampleText</span> , <span style="color: #ff0000;">"en"</span>, <span style="color: #ff0000;">"fr"</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>
<p><a href="http://www.codediesel.com/php/google-translation-php-wrapper/">Google Translation PHP wrapper</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/7MQr2XWQFTVzbHgC4WFHbZzMXjA/0/da"><img src="http://feedads.g.doubleclick.net/~a/7MQr2XWQFTVzbHgC4WFHbZzMXjA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7MQr2XWQFTVzbHgC4WFHbZzMXjA/1/da"><img src="http://feedads.g.doubleclick.net/~a/7MQr2XWQFTVzbHgC4WFHbZzMXjA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=4J3nfZVaoGU:_aiVUJQV0i0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=4J3nfZVaoGU:_aiVUJQV0i0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=4J3nfZVaoGU:_aiVUJQV0i0:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Interesante librería que hace uso de Google Translator para traducir un texto en un idioma a otro. Aunque el API de Google está solo en Java o Javascript, el autor de la librería ha creado un wrapper para que esté disponible desde PHP.
require_once&amp;#40;'googleTranslate.class.php'&amp;#41;;
 
/* Initialize the class translate class */
$gt = new GoogleTranslateWrapper&amp;#40;&amp;#41;;
$sampleText = "Bonjour [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/03/traduce-usando-google-y-php.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/03/traduce-usando-google-y-php.php</feedburner:origLink></item><item><title>Mostrar tu posición en Alexa mediante PHP</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/owJB19nQIdM/mostrar-tu-posicion-en-alexa-mediante-php.php</link><category>PHP</category><category>alexa</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Tue, 02 Mar 2010 06:12:48 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2206</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>El ranking de Alexa es uno de los más famosos que hay, y es bastante utilizado a la hora de vender publicidad u otros aspectos comerciales. Dispone de un API que permite obtener el ranking de una web, por lo que podemos hacer una llamada y obtener los datos para poder mostrarlos en nuestra web.</p>
<p>La clase es muy sencilla:</p>
<pre><code><pre class="php"><span style="color: #000000; font-weight: bold;">class</span> AlexaRank <span style="color: #66cc66;">&#123;</span>
  public <span style="color: #000000; font-weight: bold;">function</span> getRequestUri<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$domain</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #723b00;">return</span> <span style="color: #ff0000;">'http://data.alexa.com/data?cli=10&amp;dat=s&amp;url='</span> . <span style="color: #3E6D8F;">$domain</span>;
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  public <span style="color: #000000; font-weight: bold;">function</span> parse<span style="color: #66cc66;">&#40;</span> <span style="color: #3E6D8F;">$httpResponse</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <a href="http://www.php.net/preg_match"><span style="color: #000066;">preg_match</span></a><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'#&amp;lt;popularity url=&quot;(.*?)&quot; text=&quot;([0-9]+){1,}&quot;&amp;gt;#si'</span>, <span style="color: #3E6D8F;">$httpResponse</span>, <span style="color: #3E6D8F;">$p</span> <span style="color: #66cc66;">&#41;</span>;
    <span style="color: #3E6D8F;">$res</span> = <span style="color: #66cc66;">&#40;</span> <span style="color: #3E6D8F;">$p</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span> ? <a href="http://www.php.net/number_format"><span style="color: #000066;">number_format</span></a><span style="color: #66cc66;">&#40;</span> <a href="http://www.php.net/intval"><span style="color: #000066;">intval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$p</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #cc66cc;">0</span>;
    <span style="color: #723b00;">return</span> <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">','</span>, <span style="color: #ff0000;">''</span>, <span style="color: #3E6D8F;">$res</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
<p><a href="http://php-html.net/tutorials/php-class-to-retrieve-alexa-rank/">Php Class to Retrieve Alexa Rank</a></p>
<p>Vía / <a href="http://www.dzone.com/links/php_class_to_retrieve_alexa_rank.html">DZone</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/EImU-fblYoh4GyvaY4ATmGh3eh0/0/da"><img src="http://feedads.g.doubleclick.net/~a/EImU-fblYoh4GyvaY4ATmGh3eh0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EImU-fblYoh4GyvaY4ATmGh3eh0/1/da"><img src="http://feedads.g.doubleclick.net/~a/EImU-fblYoh4GyvaY4ATmGh3eh0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=owJB19nQIdM:fio6n7zzJHI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=owJB19nQIdM:fio6n7zzJHI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=owJB19nQIdM:fio6n7zzJHI:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>El ranking de Alexa es uno de los más famosos que hay, y es bastante utilizado a la hora de vender publicidad u otros aspectos comerciales. Dispone de un API que permite obtener el ranking de una web, por lo que podemos hacer una llamada y obtener los datos para poder mostrarlos en nuestra web.
La [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/02/mostrar-tu-posicion-en-alexa-mediante-php.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/02/mostrar-tu-posicion-en-alexa-mediante-php.php</feedburner:origLink></item><item><title>Krumo: alternativa a var_dump</title><link>http://feedproxy.google.com/~r/sentidoweb/~3/cjYSd5tGalw/krumo-alternativa-a-var_dump.php</link><category>PHP</category><category>debug</category><category>krumo</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">displaynone</dc:creator><pubDate>Mon, 01 Mar 2010 13:55:12 PST</pubDate><guid isPermaLink="false">http://sentidoweb.com/?p=2201</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Krumo</strong> es una librería que realiza lo mismo que var_dump, pero dándole un formato más amigable. Permite cambiarle el formato mediante skins.</p>
<p><img src="http://sentidoweb.com/wp-content/uploads/2010/03/krumo-300x205.png" alt="krumo" width="300" height="205" class="center" /></p>
<p>Una alternativa a tener en cuenta, yo personalmente uso bastante <em>var_dump</em> y a veces es un poco lío seguir en debug de objetos grandes.</p>
<p><a href="http://krumo.sourceforge.net/">Krumo</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/c3zA5L4H2nmRw8EGyC8sL-UZ0BI/0/da"><img src="http://feedads.g.doubleclick.net/~a/c3zA5L4H2nmRw8EGyC8sL-UZ0BI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/c3zA5L4H2nmRw8EGyC8sL-UZ0BI/1/da"><img src="http://feedads.g.doubleclick.net/~a/c3zA5L4H2nmRw8EGyC8sL-UZ0BI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sentidoweb?a=cjYSd5tGalw:q6A756AktM0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=cjYSd5tGalw:q6A756AktM0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sentidoweb?a=cjYSd5tGalw:q6A756AktM0:tKBiNdHYW3c"><img src="http://feeds.feedburner.com/~ff/sentidoweb?d=tKBiNdHYW3c" border="0"></img></a>
</div>]]></content:encoded><description>Krumo es una librería que realiza lo mismo que var_dump, pero dándole un formato más amigable. Permite cambiarle el formato mediante skins.

Una alternativa a tener en cuenta, yo personalmente uso bastante var_dump y a veces es un poco lío seguir en debug de objetos grandes.
Krumo</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sentidoweb.com/2010/03/01/krumo-alternativa-a-var_dump.php/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://sentidoweb.com/2010/03/01/krumo-alternativa-a-var_dump.php</feedburner:origLink></item></channel></rss>
