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

<channel>
	<title>Sentido Web</title>
	<atom:link href="http://sentidoweb.com/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Tue, 16 Mar 2010 17:23:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WebSockets en HTML5</title>
		<link>http://sentidoweb.com/2010/03/16/websockets-en-html5-2.php</link>
		<comments>http://sentidoweb.com/2010/03/16/websockets-en-html5-2.php#comments</comments>
		<pubDate>Tue, 16 Mar 2010 17:23:29 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[websockets]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2228</guid>
		<description><![CDATA[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>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/16/websockets-en-html5-2.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enlaces rápidos (15-03-2010)</title>
		<link>http://sentidoweb.com/2010/03/15/enlaces-rapidos-15-03-2010-2.php</link>
		<comments>http://sentidoweb.com/2010/03/15/enlaces-rapidos-15-03-2010-2.php#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:32:52 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2224</guid>
		<description><![CDATA[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;)

	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>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/15/enlaces-rapidos-15-03-2010-2.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>INSERT IGNORE en MySQL</title>
		<link>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php</link>
		<comments>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php#comments</comments>
		<pubDate>Fri, 12 Mar 2010 09:01:08 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[ignore]]></category>
		<category><![CDATA[insert]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2222</guid>
		<description><![CDATA[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>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Procesos concurrentes en PHP</title>
		<link>http://sentidoweb.com/2010/03/11/procesos-concurrentes-en-php.php</link>
		<comments>http://sentidoweb.com/2010/03/11/procesos-concurrentes-en-php.php#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:50:14 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[concurrencia]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2219</guid>
		<description><![CDATA[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&#40;$unitsOfWork as $unit&#41; &#123;
 [...]]]></description>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/11/procesos-concurrentes-en-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lawnchair: &#8216;base de datos&#8217; clave-valor en Javascript</title>
		<link>http://sentidoweb.com/2010/03/09/lawnchair-base-de-datos-clave-valor-en-javascript.php</link>
		<comments>http://sentidoweb.com/2010/03/09/lawnchair-base-de-datos-clave-valor-en-javascript.php#comments</comments>
		<pubDate>Tue, 09 Mar 2010 17:11:20 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[base de datos]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2217</guid>
		<description><![CDATA[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&#40;'people'&#41;;
// Saving a document async
people.save&#40;&#123;name:'frank'&#125;, function&#40;r&#41; &#123;
    console.log&#40;r&#41;;
&#125;&#41;;
// [...]]]></description>
			<content:encoded><![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>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/09/lawnchair-base-de-datos-clave-valor-en-javascript.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPillow: librería PHP para CouchDB</title>
		<link>http://sentidoweb.com/2010/03/07/phpillow-libreria-php-para-couchdb.php</link>
		<comments>http://sentidoweb.com/2010/03/07/phpillow-libreria-php-para-couchdb.php#comments</comments>
		<pubDate>Sun, 07 Mar 2010 01:30:38 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2214</guid>
		<description><![CDATA[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 &#123; [...]]]></description>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/07/phpillow-libreria-php-para-couchdb.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Enlaces rápidos (05-03-2010)</title>
		<link>http://sentidoweb.com/2010/03/05/enlaces-rapidos-05-03-2010.php</link>
		<comments>http://sentidoweb.com/2010/03/05/enlaces-rapidos-05-03-2010.php#comments</comments>
		<pubDate>Fri, 05 Mar 2010 08:39:54 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2212</guid>
		<description><![CDATA[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.

	The Anatomy of a Whale &#8220;Twitter is over capacity&#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>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/05/enlaces-rapidos-05-03-2010.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Traduce usando Google y PHP</title>
		<link>http://sentidoweb.com/2010/03/03/traduce-usando-google-y-php.php</link>
		<comments>http://sentidoweb.com/2010/03/03/traduce-usando-google-y-php.php#comments</comments>
		<pubDate>Wed, 03 Mar 2010 17:12:45 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[translator]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2210</guid>
		<description><![CDATA[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&#40;'googleTranslate.class.php'&#41;;
 
/* Initialize the class translate class */
$gt = new GoogleTranslateWrapper&#40;&#41;;
$sampleText = "Bonjour [...]]]></description>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/03/traduce-usando-google-y-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar tu posición en Alexa mediante PHP</title>
		<link>http://sentidoweb.com/2010/03/02/mostrar-tu-posicion-en-alexa-mediante-php.php</link>
		<comments>http://sentidoweb.com/2010/03/02/mostrar-tu-posicion-en-alexa-mediante-php.php#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:12:48 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[alexa]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2206</guid>
		<description><![CDATA[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>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/02/mostrar-tu-posicion-en-alexa-mediante-php.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krumo: alternativa a var_dump</title>
		<link>http://sentidoweb.com/2010/03/01/krumo-alternativa-a-var_dump.php</link>
		<comments>http://sentidoweb.com/2010/03/01/krumo-alternativa-a-var_dump.php#comments</comments>
		<pubDate>Mon, 01 Mar 2010 21:55:12 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[krumo]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2201</guid>
		<description><![CDATA[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>
			<content:encoded><![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>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/01/krumo-alternativa-a-var_dump.php/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 4.841 seconds -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-17 07:07:30 -->
