<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A Coder's Corner</title>
	<atom:link href="http://gfaraj.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gfaraj.wordpress.com</link>
	<description>Blog de tecnologia y programación</description>
	<lastBuildDate>Thu, 26 Jan 2012 11:47:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gfaraj.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>A Coder's Corner</title>
		<link>http://gfaraj.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gfaraj.wordpress.com/osd.xml" title="A Coder&#039;s Corner" />
	<atom:link rel='hub' href='http://gfaraj.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Custom Sorting for ListBox in C#</title>
		<link>http://gfaraj.wordpress.com/2008/07/31/custom-sorting-for-listbox-in-c/</link>
		<comments>http://gfaraj.wordpress.com/2008/07/31/custom-sorting-for-listbox-in-c/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 07:22:33 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[listbox]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[sorted]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/?p=45</guid>
		<description><![CDATA[Applying a custom sort to a Windows Forms ListBox is not a trivial task. One would think setting the Sorted property to true and implementing the IComparable interface in the item class would be enough. Well, it&#8217;s not that simple. Custom sorting a ListBox requires a new implementation of the whole sorting algorithm, by deriving [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=45&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Applying a custom sort to a Windows Forms <em>ListBox</em> is not a trivial task. One would think setting the <strong>Sorted</strong> property to <strong>true</strong> and implementing the <em>IComparable</em> interface in the item class would be enough. Well, it&#8217;s not that simple. Custom sorting a <em>ListBox</em> requires a new implementation of the whole sorting algorithm, by deriving <em>ListBox</em> and overriding the protected <strong>Sort</strong> method. The following code illustrates how you would override <strong>Sort</strong> and implement a quicksort algorithm that sorts the items according to their <em>IComparable</em> implementation. Don&#8217;t forget that <strong>Sort</strong> is only called when the <strong>Sorted</strong> property goes from <strong>false</strong> to <strong>true</strong>.</p>
<pre class="code"><span style="color:blue;">protected override void </span><span style="color:#020002;">Sort</span>()
{
    <span style="color:#020002;">QuickSort</span>(0, <span style="color:#020002;">Items</span>.<span style="color:#020002;">Count </span>- 1);
}

<span style="color:blue;">private void </span><span style="color:#020002;">QuickSort</span>(<span style="color:blue;">int </span><span style="color:#020002;">left</span>, <span style="color:blue;">int </span><span style="color:#020002;">right</span>)
{
    <span style="color:blue;">if </span>(<span style="color:#020002;">right </span>&gt; <span style="color:#020002;">left</span>)
    {
        <span style="color:blue;">int </span><span style="color:#020002;">pivotIndex </span>= <span style="color:#020002;">left</span>;
        <span style="color:blue;">int </span><span style="color:#020002;">pivotNewIndex </span>= <span style="color:#020002;">QuickSortPartition</span>(<span style="color:#020002;">left</span>, <span style="color:#020002;">right</span>, <span style="color:#020002;">pivotIndex</span>);

        <span style="color:#020002;">QuickSort</span>(<span style="color:#020002;">left</span>, <span style="color:#020002;">pivotNewIndex </span>- 1);
        <span style="color:#020002;">QuickSort</span>(<span style="color:#020002;">pivotNewIndex </span>+ 1, <span style="color:#020002;">right</span>);
    }
}

<span style="color:blue;">private int </span><span style="color:#020002;">QuickSortPartition</span>(<span style="color:blue;">int </span><span style="color:#020002;">left</span>, <span style="color:blue;">int </span><span style="color:#020002;">right</span>, <span style="color:blue;">int </span><span style="color:#020002;">pivot</span>)
{
    <span style="color:blue;">var </span><span style="color:#020002;">pivotValue </span>= (<span style="color:#2b91af;">IComparable</span>)<span style="color:#020002;">Items</span>[<span style="color:#020002;">pivot</span>];
    <span style="color:#020002;">Swap</span>(<span style="color:#020002;">pivot</span>, <span style="color:#020002;">right</span>);

    <span style="color:blue;">int </span><span style="color:#020002;">storeIndex </span>= <span style="color:#020002;">left</span>;
    <span style="color:blue;">for </span>(<span style="color:blue;">int </span><span style="color:#020002;">i </span>= <span style="color:#020002;">left</span>; <span style="color:#020002;">i </span>&lt; <span style="color:#020002;">right</span>; ++<span style="color:#020002;">i</span>)
    {
        <span style="color:blue;">if </span>(<span style="color:#020002;">pivotValue</span>.<span style="color:#020002;">CompareTo</span>(<span style="color:#020002;">Items</span>[<span style="color:#020002;">i</span>]) &gt;= 0)
        {
            <span style="color:#020002;">Swap</span>(<span style="color:#020002;">i</span>, <span style="color:#020002;">storeIndex</span>);
            ++<span style="color:#020002;">storeIndex</span>;
        }
    }

    <span style="color:#020002;">Swap</span>(<span style="color:#020002;">storeIndex</span>, <span style="color:#020002;">right</span>);
    <span style="color:blue;">return </span><span style="color:#020002;">storeIndex</span>;
}

<span style="color:blue;">private void </span><span style="color:#020002;">Swap</span>(<span style="color:blue;">int </span><span style="color:#020002;">left</span>, <span style="color:blue;">int </span><span style="color:#020002;">right</span>)
{
    <span style="color:blue;">var </span><span style="color:#020002;">temp </span>= <span style="color:#020002;">Items</span>[<span style="color:#020002;">left</span>];
    <span style="color:#020002;">Items</span>[<span style="color:#020002;">left</span>] = <span style="color:#020002;">Items</span>[<span style="color:#020002;">right</span>];
    <span style="color:#020002;">Items</span>[<span style="color:#020002;">right</span>] = <span style="color:#020002;">temp</span>;
}</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=45&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2008/07/31/custom-sorting-for-listbox-in-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Spread Firefox : Version 3.0</title>
		<link>http://gfaraj.wordpress.com/2008/06/18/spread-firefox-version-30/</link>
		<comments>http://gfaraj.wordpress.com/2008/06/18/spread-firefox-version-30/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 23:19:20 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[honduras]]></category>
		<category><![CDATA[spread]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/?p=44</guid>
		<description><![CDATA[Ha salido la nueva version de Firefox, el browser popular y open-source de Mozilla. El primer dia de lanzamiento ha recibido más de 8 millones de descargas a nivel mundial. La organización de Guinness World Records está viendo si ha llegado a ser un record mundial. Los invito a bajarlo de aqui y que de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=44&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.populoria.com/files/wordpress/SpreadFirefoxVersion3.0_F1C5/image.png"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;margin:0 10px 0 0;" border="0" alt="image" align="left" src="http://www.populoria.com/files/wordpress/SpreadFirefoxVersion3.0_F1C5/image_thumb.png" width="244" height="173"></a> Ha salido la nueva version de Firefox, el browser popular y open-source de Mozilla. El primer dia de lanzamiento ha recibido más de 8 millones de descargas a nivel mundial. La organización de Guinness World Records está viendo si ha llegado a ser un record mundial. Los invito a bajarlo de <a href="http://www.spreadfirefox.com/en-US/worldrecord" target="_blank">aqui</a> y que de paso vean cuantas personas han bajado Firefox 3.0 de sus paises. Los numeros de Centro America y alrededores al momento de escribir este articulo son: </p>
<p><strong>Honduras</strong>: 1,114<br /><strong>Guatemala</strong>: 4,481<br /><strong>El</strong> <strong>Salvador</strong>: 2,664<br /><strong>Costa</strong> <strong>Rica</strong>: 9,425<br /><strong>Mexico</strong>: 96,962<br /><strong>Panamá</strong>: 2,840</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=44&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2008/06/18/spread-firefox-version-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>

		<media:content url="http://www.populoria.com/files/wordpress/SpreadFirefoxVersion3.0_F1C5/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone tiene problemas con el Caller-ID afuera de USA</title>
		<link>http://gfaraj.wordpress.com/2008/05/06/iphone-tiene-problemas-con-el-caller-id-afuera-de-usa/</link>
		<comments>http://gfaraj.wordpress.com/2008/05/06/iphone-tiene-problemas-con-el-caller-id-afuera-de-usa/#comments</comments>
		<pubDate>Tue, 06 May 2008 23:39:38 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[appsupport]]></category>
		<category><![CDATA[callerid]]></category>
		<category><![CDATA[honduras]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/?p=43</guid>
		<description><![CDATA[En regiones que no usan 10 digitos para un numero telefonico, el iPhone no puede identificar el contacto que esta llamando o mandando un SMS. Existen patches que ayudan, pero no terminan de arreglar el problema. De todos modos, deberian instalar AppSupport Patch, el cual lo pueden encontrar en el Installer en la categoria Tweaks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=43&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En regiones que no usan 10 digitos para un numero telefonico, el iPhone no puede identificar el contacto que esta llamando o mandando un SMS. Existen patches que ayudan, pero no terminan de arreglar el problema. De todos modos, deberian instalar AppSupport Patch, el cual lo pueden encontrar en el Installer en la categoria Tweaks (1.1.4). Este patch hace que el iPhone reconozca numeros que vienen en la forma <strong>+YYYXXXXXXXX</strong>, donde <strong>YYY</strong> es el codigo de pais. Ahora, el problema todavia existe si en tus contactos has almacenado los numeros sin este formato. Por esta razon, hice <em>iContactFix</em>.</p>
<p>El iPhone puede sincronizar contactos con Microsoft Outlook. <em>iContactFix</em> es un programa sencillo que se comunica con Outlook para modificar los numeros de telefono de los contactos. Por los momentos, el fix es unicamente intencionado para ser usado en Honduras. Pero seguramente podrian cambiar el programa para satisfacer las necesidades de otros paises.</p>
<p>Antes de correrlo, asegurense que tienen las opciones de telefono correctamente puestas en Windows. En Vista, se van a <em>Start-&gt;Control Panel-&gt;Phone and Modem Options</em>. Ahi modifiquen la &#8220;location,&#8221; o agreguen una nueva si no existe, y ponganle que estan en Honduras. Eso es todo. Si despues de correrlo, los contactos no tienen el simbolo <strong>+</strong> al principio, entonces es porque no han hecho este paso correctamente.</p>
<p>El codigo y el ejecutable se encuentran <a title="iContactFix" href="http://www.populoria.com/files/iContactFix/iContactFix.rar">aqui</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=43&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2008/05/06/iphone-tiene-problemas-con-el-caller-id-afuera-de-usa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Deploying a Symfony Project on GoDaddy Shared Hosting</title>
		<link>http://gfaraj.wordpress.com/2008/04/25/deploying-a-symfony-project-on-godaddy-shared-hosting/</link>
		<comments>http://gfaraj.wordpress.com/2008/04/25/deploying-a-symfony-project-on-godaddy-shared-hosting/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 19:13:04 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/?p=41</guid>
		<description><![CDATA[Recently, I had the task of deploying my Symfony project on my GoDaddy shared Linux hosting. I ran into some problems, and I thought I would share in hope of helping any other poor soul who might run into the same problems. First of all, you should follow the steps here. It does not require [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=41&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently, I had the task of deploying my <a href="http://www.symfony-project.org" target="_blank">Symfony</a> project on my <a href="http://www.godaddy.com" target="_blank">GoDaddy</a> shared Linux hosting. I ran into some problems, and I thought I would share in hope of helping any other poor soul who might run into the same problems.</p>
<p>First of all, you should follow the steps <a href="http://trac.symfony-project.com/wiki/InstallingSymfonyOnSharedHostNoSsh" target="_blank">here</a>. It does not require you to freeze the project to deploy it. I find that useful for projects that are not yet stable and need to deploy a &#8220;beta&#8221; version. Also, make sure you have PHP 5 as the default in your GoDaddy Hosting settings.</p>
<p>Next, you need to modify the <em>.htaccess</em> file. Go ahead and uncomment the RewriteBase line in the default symfony .htaccess file:</p>
<pre>  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  RewriteBase /</pre>
<p>This should prevent &#8216;www.myhost.com/mymodule&#8217; from getting a 404 error from GoDaddy. Now, at least you might get forwarded to <strong>your</strong> 404 module/action. This is, at least, some proof that you&#8217;re moving forward. If you turn on logging (logging is turned off for production configurations by default), you might see the following:</p>
<pre>  1	Info Context	initialization
  2	Info Controller	initialization
  3	Info Routing	match route [default_index] "/:module"
  4	Info Request	request parameters array ( 'module' =&gt; 'index.php', 'action' =&gt; 'index',)
  5	Info Controller	dispatch request
  6	Info Controller	action "indexphp/index" does not exist</pre>
<p>As you can see, the module/action resolution is very wrong. This, of course, results in Symfony forwarding to your 404 module/action. Well, it turns out that adding one line to your <em>php5.ini</em> fixes this.</p>
<pre>  cgi.fix_pathinfo = 1</pre>
<p>This worked nicely for me, and I hope it works for you. I&#8217;m posting my full <em>php5.ini</em> and <em>.htaccess</em> files for completeness.</p>
<p><strong>Addendum</strong><br />
It has come to my attention that some people are still having problems after making the changes described here. You might want to try one more change. In your application&#8217;s config/settings.yml file, set the following setting:</p>
<pre>prod:
  .settings:
     path_info_key: REDIRECT_URL
</pre>
<p><strong><br />
php5.ini</strong></p>
<pre>register_globals = off
allow_url_fopen = off

expose_php = Off
max_input_time = 60
variables_order = "EGPCS"
extension_dir = ./
upload_tmp_dir = /tmp
precision = 12
SMTP = relay-hosting.secureserver.net
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
memory_limit = 20000000
session.gc_maxlifetime = 72000

#log_errors = On
#error_log = php_error.log
#display_errors = On
#error_reporting  =  E_ALL

magic_quotes_gpc = false
cgi.fix_pathinfo = 1

[Zend]
zend_extension=/usr/local/zo/ZendExtensionManager.so
zend_extension=/usr/local/zo/4_3/ZendOptimizer.so</pre>
<p><strong>.htaccess</strong></p>
<pre>Options +FollowSymLinks +ExecCGI

  RewriteEngine On

  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  RewriteBase /

  # we skip all files with .something
  RewriteCond %{REQUEST_URI} \..+$
  RewriteCond %{REQUEST_URI} !\.html$
  RewriteRule .* - [L]

  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]

# big crash from our front web controller
ErrorDocument 500 "&lt;h2&gt;Application error&lt;/h2&gt;symfony application failed to start properly"</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=41&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2008/04/25/deploying-a-symfony-project-on-godaddy-shared-hosting/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Random Ramblings : Religion</title>
		<link>http://gfaraj.wordpress.com/2008/01/30/random-ramblings-religion/</link>
		<comments>http://gfaraj.wordpress.com/2008/01/30/random-ramblings-religion/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 21:16:00 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Off-topic]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/?p=40</guid>
		<description><![CDATA[Why is everyone so sure about unproven theories? Atheists are completely sure there are no gods; theists are sure that there is a god or gods. In fact, they are so sure, they&#8217;re willing to fight and even kill to defend their beliefs. &#8220;Did Sam kill the cat?&#8221; I don&#8217;t know.  &#8220;Does God exist?&#8221; I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=40&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Why is everyone so sure about unproven theories? Atheists are completely sure there are no gods; theists are sure that there is a god or gods. In fact, they are so sure, they&#8217;re willing to fight and even kill to defend their beliefs.</p>
<p>&#8220;Did Sam kill the cat?&#8221; I don&#8217;t know.  &#8220;Does God exist?&#8221; I don&#8217;t know. Don&#8217;t be afraid of not knowing, it&#8217;s the only state of mind which will allow you to look for the truth.</p>
<p>But how are you certain that you&#8217;re right? &#8220;It&#8217;s called faith, I feel it in my heart.&#8221; Yes, I also have faith that tomorrow I&#8217;ll win the lottery, but that doesn&#8217;t make it true, nor more probable.</p>
<p>I respect everyone&#8217;s right to believe in whatever they please; the problem is that you don&#8217;t. Why do you have to push your beliefs onto everyone else? Is it maybe because deep-down inside you&#8217;re really not sure about your beliefs and don&#8217;t want to be the only one. A lie believed by many becomes truth; or so you might think.</p>
<p>Anyways, I think it&#8217;s enough for today.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=40&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2008/01/30/random-ramblings-religion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Boost.Bind Ala Javascript</title>
		<link>http://gfaraj.wordpress.com/2008/01/18/boostbind-ala-javascript/</link>
		<comments>http://gfaraj.wordpress.com/2008/01/18/boostbind-ala-javascript/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 06:12:08 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/2008/01/18/boostbind-ala-javascript/</guid>
		<description><![CDATA[I&#8217;ve recently started learning Javascript. As a C++ programmer, I thought I&#8217;d write a Javascript version of Boost.Bind; just for fun. Javascript closures make this a fairly simple task, actually. Let&#8217;s get right into the code.   function bind(f) { if (f === null) return function() {}; var args = Array.prototype.slice.call(arguments); args.shift(); return function () [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=39&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently started learning Javascript. As a C++ programmer, I thought I&#8217;d write a Javascript version of Boost.Bind; just for fun. Javascript closures make this a fairly simple task, actually.</p>
<p>Let&#8217;s get right into the code.</p>
<pre> 
function bind(f)
{
    if (f === null)
        return function() {};

    var args = Array.prototype.slice.call(arguments);
    args.shift();

    return function ()
    {
        var argsCopy = args.slice(0);
        var start = expandArgs(argsCopy, arguments);
        return f.apply(null, argsCopy.concat(Array.prototype.slice.call(arguments, start)));
    };
}</pre>
<p>Simple enough? The <em>expandArgs</em> function will be shown at the end. Now for some example usage.</p>
<pre><span style="color:#0000ff;">function</span> <span style="color:#010001;">foo</span>(<span style="color:#010001;">a</span>, <span style="color:#010001;">b</span>, <span style="color:#010001;">c</span>)
{
    <span style="color:#010001;">alert</span>(<span style="color:#010001;">a</span> + <span style="color:#a31515;">', '</span> + <span style="color:#010001;">b</span> + <span style="color:#a31515;">', '</span> + <span style="color:#010001;">c</span>);
}

<span style="color:#010001;">bind</span>(foo, 1)(2, 3);  <span style="color:#008000;">// 1, 2, 3 </span><span style="color:#010001;">bind</span>(foo, 1, 2)(3);  <span style="color:#008000;">// 1, 2, 3 </span><span style="color:#010001;">bind</span>(foo, <span style="color:#010001;">_3</span>, <span style="color:#010001;">_2</span>, <span style="color:#010001;">_1</span>)(1, 2, 3);  <span style="color:#008000;">// 3, 2, 1 </span><span style="color:#010001;">bind</span>(foo, <span style="color:#010001;">_2</span>, <span style="color:#010001;">_2</span>, <span style="color:#010001;">_2</span>)(1, 2, 3);  <span style="color:#008000;">// 2, 2, 2 </span><span style="color:#010001;">bind</span>(foo, <span style="color:#010001;">_2</span>, 10)(1, 2, 3);  <span style="color:#008000;">// 2, 10, 3</span></pre>
<p>Another function, called <em>bindMember</em>, will bind a function to an object, so the <strong>this</strong> object refers to it. It also does the same parameter binding as the original <em>bind</em>.</p>
<pre> 
function bindMember(f, o)
{
    if (f === null)
        return function() {};
    else if (o === null)
        return f;

    var args = Array.prototype.slice.call(arguments);
    args.shift();
    args.shift();

    return function ()
    {
        var start = 0;

        if (o.constructor == BindArg)
        {
            var arg = o.index;
            o = arguments[arg - 1];
            if (arg &gt; start)
                start = arg;
        }

        var argsCopy = args.slice(0);
        start = expandArgs(argsCopy, arguments, start);
        return f.apply(o, argsCopy.concat(Array.prototype.slice.call(arguments, start)));
    };
}</pre>
<p>As you can see, it&#8217;s very similar to <em>bind</em>, except it does an extra check to see if the object passed was a bind-argument. Here are some examples of its usage.</p>
<pre><span style="color:#0000ff;">var</span> <span style="color:#010001;">o</span> = { <span style="color:#010001;">name</span> : <span style="color:#a31515;">'someobject'</span> };

<span style="color:#0000ff;">function</span> <span style="color:#010001;">foo</span>(<span style="color:#010001;">a</span>, <span style="color:#010001;">b</span>, <span style="color:#010001;">c</span>)
{
    <span style="color:#010001;">alert</span>(<span style="color:#0000ff;">this</span>.<span style="color:#010001;">name</span> + <span style="color:#a31515;">', '</span> + <span style="color:#010001;">a</span> + <span style="color:#a31515;">', '</span> + <span style="color:#010001;">b</span> + <span style="color:#a31515;">', '</span> + <span style="color:#010001;">c</span>);
}

<span style="color:#010001;">bindMember</span>(foo, <span style="color:#010001;">o</span>, 1)(2, 3);  <span style="color:#008000;">// someobject, 1, 2, 3 </span><span style="color:#010001;">bindMember</span>(foo, <span style="color:#010001;">o</span>, 1, 2)(3);  <span style="color:#008000;">// someobject, 1, 2, 3 </span><span style="color:#010001;">bindMember</span>(foo, <span style="color:#010001;">o</span>, <span style="color:#010001;">_3</span>, <span style="color:#010001;">_2</span>, <span style="color:#010001;">_1</span>)(1, 2, 3);  <span style="color:#008000;">// someobject, 3, 2, 1 </span><span style="color:#010001;">bindMember</span>(foo, <span style="color:#010001;">_1</span>, 10, <span style="color:#010001;">_2</span>, <span style="color:#010001;">_3</span>)(<span style="color:#010001;">o</span>, 1, 2);  <span style="color:#008000;">// someobject, 10, 1, 2</span></pre>
<p>That&#8217;s it. Be aware that this was merely done as an experiment, with the purpose of learning Javascript. I have not done any benchmarks to study the efficiency of these functions. If anyone has time to do them, please let me know the results. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Note that you could also make these functions part of the Function prototype, if you wish. That would allow writing <em>foo.bind(1)(2, 3)</em> if you find that more readable.</p>
<p>The rest of the code is as follows:</p>
<pre><span style="color:#0000ff;">function</span> <span style="color:#010001;">BindArg</span>(<span style="color:#010001;">i</span>)
{
    <span style="color:#0000ff;">this</span>.<span style="color:#010001;">index</span> = <span style="color:#010001;">i</span>;
}

<span style="color:#0000ff;">for</span> (<span style="color:#0000ff;">var</span> <span style="color:#010001;">i</span>=1; <span style="color:#010001;">i</span> &lt; 10; ++<span style="color:#010001;">i</span>)
{
    <span style="color:#0000ff;">var</span> <span style="color:#010001;">arg</span> = <span style="color:#0000ff;">new</span> <span style="color:#010001;">BindArg</span>(<span style="color:#010001;">i</span>);
    <span style="color:#0000ff;">this</span>[<span style="color:#a31515;">'_'</span> + <span style="color:#010001;">i</span>] = <span style="color:#010001;">arg</span>;
}

<span style="color:#0000ff;">function</span> <span style="color:#010001;">expandArgs</span>(<span style="color:#010001;">args</span>, <span style="color:#010001;">arguments</span>, <span style="color:#010001;">start</span>)
{
    <span style="color:#0000ff;">if</span> (<span style="color:#010001;">start</span> == <span style="color:#0000ff;">null</span>)
        <span style="color:#010001;">start</span> = 0;

    <span style="color:#0000ff;">for</span> (<span style="color:#0000ff;">var</span> <span style="color:#010001;">i</span>=0; <span style="color:#010001;">i</span> &lt; <span style="color:#010001;">args</span>.<span style="color:#010001;">length</span>; ++<span style="color:#010001;">i</span>)
    {
        <span style="color:#0000ff;">if</span> (args[i] &amp;&amp; <span style="color:#010001;">args</span>[<span style="color:#010001;">i</span>].<span style="color:#010001;">constructor</span> == <span style="color:#010001;">BindArg</span>)
        {
            <span style="color:#0000ff;">var</span> <span style="color:#010001;">arg</span> = <span style="color:#010001;">args</span>[<span style="color:#010001;">i</span>].<span style="color:#010001;">index</span>;
            <span style="color:#0000ff;">if</span> (<span style="color:#010001;">arg</span> &gt; 0 &amp;&amp; <span style="color:#010001;">arg</span> &lt;= <span style="color:#010001;">arguments</span>.<span style="color:#010001;">length</span>)
            {
                <span style="color:#010001;">args</span>[<span style="color:#010001;">i</span>] = <span style="color:#010001;">arguments</span>[<span style="color:#010001;">arg</span> - 1];
                <span style="color:#0000ff;">if</span> (<span style="color:#010001;">arg</span> &gt; <span style="color:#010001;">start</span>)
                    <span style="color:#010001;">start</span> = <span style="color:#010001;">arg</span>;
            }
            <span style="color:#0000ff;">else </span>                <span style="color:#010001;">args</span>[<span style="color:#010001;">i</span>] = <span style="color:#0000ff;">null</span>;
        }
    }

    <span style="color:#0000ff;">return</span> <span style="color:#010001;">start</span>;
}</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=39&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2008/01/18/boostbind-ala-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Populoria &#8211; Tu guia local</title>
		<link>http://gfaraj.wordpress.com/2007/12/30/populoria-tu-guia-local/</link>
		<comments>http://gfaraj.wordpress.com/2007/12/30/populoria-tu-guia-local/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 01:15:26 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[bares]]></category>
		<category><![CDATA[discos]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[guia]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[lugares]]></category>
		<category><![CDATA[populoria]]></category>
		<category><![CDATA[restaurantes]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/2007/12/30/populoria-tu-guia-local/</guid>
		<description><![CDATA[Hola todos, Ayudenme a probar un sitio que he estado haciendo. Se llama Populoria y es un sitio colaborativo que intenta reunir informacion de lugares y eventos locales. Por ahorita, estan las ciudades mas importantes de los paises latino americanos, pero a medida que se ocupe se pueden agregar mas ciudades y paises. El sitio [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=38&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola todos,</p>
<p>Ayudenme a probar un sitio que he estado haciendo. Se llama Populoria y es un sitio colaborativo que intenta reunir informacion de lugares y eventos locales. Por ahorita, estan las ciudades mas importantes de los paises latino americanos, pero a medida que se ocupe se pueden agregar mas ciudades y paises.</p>
<p>El sitio es:    <a href="http://www.populoria.com">www.populoria.com</a></p>
<p>El sitio todavia no está totalmente terminado. Les agradeceria que lo probaran y si encuentran problemas o sugerencias, que me las comuniquen, preferiblemente por medio del Bugtrack (en el menu hay uno que dice “beta” y abajo de ese esta “bugtrack”).</p>
<p>Gracias!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=38&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2007/12/30/populoria-tu-guia-local/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Functors</title>
		<link>http://gfaraj.wordpress.com/2007/11/02/functors/</link>
		<comments>http://gfaraj.wordpress.com/2007/11/02/functors/#comments</comments>
		<pubDate>Fri, 02 Nov 2007 16:03:25 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/2007/11/02/functors/</guid>
		<description><![CDATA[En C++ le llamamos functors a objectos que pueden actuar como funciones. Esto se logra por medio de la sobrecarga al operator(), que permite cualquier cantidad de parametros. Ahora, ¿para qué usamos functors? Son utiles mas que todo cuando se ocupa una funcion que guarde estado. Por ejemplo, una funcion que revise si sus dos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=37&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En C++ le llamamos <strong>functors</strong> a objectos que pueden actuar como funciones. Esto se logra por medio de la sobrecarga al <strong>operator</strong>(), que permite cualquier cantidad de parametros. Ahora, ¿para qué usamos functors? Son utiles mas que todo cuando se ocupa una funcion que guarde estado. Por ejemplo, una funcion que revise si sus dos parametros son iguales.</p>
<pre><span style="color:#0000ff;">bool</span> <span style="color:#010001;">equal</span><span style="color:#008000;">(</span><span style="color:#0000ff;">int</span> <span style="color:#010001;">x</span><span style="color:#008000;">,</span> <span style="color:#0000ff;">int</span> <span style="color:#010001;">y</span><span style="color:#008000;">)
{
 </span> <span style="color:#0000ff;">return</span> <span style="color:#010001;">x</span> <span style="color:#008000;">==</span> <span style="color:#010001;">y</span><span style="color:#008000;">;
}</span></pre>
<p>A esta funcion siempre hay que pasarle dos parametros. Es una funcion bien sencilla, y no es de mucha utilidad ya que hace lo mismo que el <strong>operator</strong>==. Ahora, ¿qué tal si queremos llamar a la funcion varias veces con el mismo parametro para <strong>x</strong>, pero cambiar <strong>y</strong>? Usamos un <strong>functor</strong> para guardar el valor de <strong>x</strong>.</p>
<pre><span style="color:#0000ff;">struct</span> <span style="color:#010001;">equal </span><span style="color:#008000;">
{
 </span> <span style="color:#0000ff;">int</span> <span style="color:#010001;">x</span><span style="color:#008000;">;
 </span> <span style="color:#010001;">equal</span><span style="color:#008000;">(</span><span style="color:#0000ff;">int</span> <span style="color:#010001;">x</span><span style="color:#008000;">)</span> <span style="color:#008000;">:</span> <span style="color:#010001;">x</span><span style="color:#008000;">(</span><span style="color:#010001;">x</span><span style="color:#008000;">)</span> <span style="color:#008000;">{}

 </span> <span style="color:#0000ff;">bool</span> <span style="color:#0000ff;">operator</span><span style="color:#008000;">()(</span><span style="color:#0000ff;">int</span> <span style="color:#010001;">y</span><span style="color:#008000;">)</span> <span style="color:#0000ff;">const
 </span> <span style="color:#008000;">{
 </span>     <span style="color:#0000ff;">return</span> <span style="color:#010001;">x</span> <span style="color:#008000;">==</span> <span style="color:#010001;">y</span><span style="color:#008000;">;
 </span> <span style="color:#008000;">}
}; 

</span><span style="color:#0000ff;">int</span> <span style="color:#010001;">main</span><span style="color:#008000;">()
{
 </span> <span style="color:#010001;">equal</span> <span style="color:#010001;">e</span><span style="color:#008000;">(</span>10<span style="color:#008000;">);
 </span> <span style="color:#010001;">e</span><span style="color:#008000;">(</span>10<span style="color:#008000;">);</span> <span style="color:#008000;">// 10 == 10
 </span> <span style="color:#010001;">e</span><span style="color:#008000;">(</span>2<span style="color:#008000;">);</span> <span style="color:#008000;">// 10 == 2
 </span> <span style="color:#010001;">e</span><span style="color:#008000;">(-</span>10<span style="color:#008000;">);</span> <span style="color:#008000;">// 10 == -10
}</span></pre>
<p>La estructura <strong>equal</strong> es un functor. La podrias usar para pasarla a los algoritmos de la libreria estandar. Por ejemplo, para buscar un elemento de cierto valor en un <strong>vector</strong>.</p>
<p><em><span style="color:#010001;">Nota</span><span style="color:#008000;">:</span> <span style="color:#010001;">Algunos</span> <span style="color:#010001;">algoritmos</span> <span style="color:#010001;">de</span> <span style="color:#010001;">la</span> <span style="color:#010001;">libreria</span> <span style="color:#010001;">estandar</span> <span style="color:#010001;">tienen</span> <span style="color:#010001;">requerimientos</span> <span style="color:#010001;">para</span> <span style="color:#010001;">los</span> <span style="color:#010001;">functors</span><span style="color:#008000;">. </span><span style="color:#010001;">Para</span> <span style="color:#010001;">mas</span> <span style="color:#010001;">informacion</span><span style="color:#008000;">,</span> <span style="color:#010001;">lean</span> <span style="color:#010001;">sobre</span> <span style="color:#010001;">std</span><span style="color:#008000;">::</span><span style="color:#010001;">unary_function</span> <span style="color:#010001;">y</span> <span style="color:#010001;">std</span><span style="color:#008000;">::</span><span style="color:#010001;">binary_function</span><span style="color:#008000;">.</span></em></p>
<pre><span style="color:#0000ff;">int</span> <span style="color:#010001;">main</span><span style="color:#008000;">()
{
 </span> <span style="color:#010001;">std</span><span style="color:#008000;">::</span><span style="color:#010001;">vector</span><span style="color:#008000;">&lt;</span><span style="color:#0000ff;">int</span><span style="color:#008000;">&gt;</span> <span style="color:#010001;">v</span><span style="color:#008000;">(</span>10<span style="color:#008000;">,</span> 15<span style="color:#008000;">);
 </span> <span style="color:#010001;">find_if</span><span style="color:#008000;">(</span><span style="color:#010001;">v</span><span style="color:#008000;">.</span><span style="color:#010001;">begin</span><span style="color:#008000;">(),</span> <span style="color:#010001;">v</span><span style="color:#008000;">.</span><span style="color:#010001;">end</span><span style="color:#008000;">(),</span> <span style="color:#010001;">equal&lt;int&gt;</span><span style="color:#008000;">(</span>10<span style="color:#008000;">));
}</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p><em><span style="color:#008000;"></span></em>Si ya saben un poco de la libreria estandar, van a saber que ya existe una funcion <em>std::find</em>, que hace esto sin necesidad de un functor. Lo util de hacerlo en un functor es que se puede encadenar con otros functors. Por ejemplo, se puede hacer un functor <strong>not_</strong>, de modo que <strong>not_</strong>(<strong>equal</strong>&lt;<strong>int</strong>&gt;(10)) sea igual que usar el <strong>operator</strong>!=. De hecho, ya existen <em>std::equal</em> y <em>std::not1</em>. Ahora, para hacerlo bien y con templates:</p>
<pre><span style="color:#0000ff;">template</span> <span style="color:#008000;">&lt;</span><span style="color:#0000ff;">typename</span> <span style="color:#010001;">T</span><span style="color:#008000;">&gt;
</span><span style="color:#0000ff;">struct</span> <span style="color:#010001;">equal_t
</span><span style="color:#008000;">{
 </span> <span style="color:#010001;">T</span> <span style="color:#010001;">x</span><span style="color:#008000;">;
 </span> <span style="color:#010001;">equal_t</span><span style="color:#008000;">(</span><span style="color:#010001;">T</span> <span style="color:#0000ff;">const</span><span style="color:#008000;">&amp;</span> <span style="color:#010001;">x</span><span style="color:#008000;">)</span> <span style="color:#008000;">:</span> <span style="color:#010001;">x</span><span style="color:#008000;">(</span><span style="color:#010001;">x</span><span style="color:#008000;">)</span> <span style="color:#008000;">{}

 </span> <span style="color:#0000ff;">template</span> <span style="color:#008000;">&lt;</span><span style="color:#0000ff;">typename</span> <span style="color:#010001;">Y</span><span style="color:#008000;">&gt;
 </span> <span style="color:#0000ff;">bool</span> <span style="color:#0000ff;">operator</span><span style="color:#008000;">()(</span><span style="color:#010001;">Y</span> <span style="color:#0000ff;">const</span><span style="color:#008000;">&amp;</span> <span style="color:#010001;">y</span><span style="color:#008000;">)</span> <span style="color:#0000ff;">const
 </span> <span style="color:#008000;">{
     </span> <span style="color:#0000ff;">return</span> <span style="color:#010001;">x</span> <span style="color:#008000;">==</span> <span style="color:#010001;">y</span><span style="color:#008000;">;
 </span> <span style="color:#008000;">}
}; 

// Esto nos permite hacer equal(valor) en vez de equal_t&lt;tipo&gt;(valor) </span><span style="color:#0000ff;">
template</span> <span style="color:#008000;">&lt;</span><span style="color:#0000ff;">typename</span> <span style="color:#010001;">T</span><span style="color:#008000;">&gt;
</span><span style="color:#010001;">equal_t</span><span style="color:#008000;">&lt;</span><span style="color:#010001;">T</span><span style="color:#008000;">&gt;</span> <span style="color:#010001;">equal</span><span style="color:#008000;">(</span><span style="color:#010001;">T</span> <span style="color:#0000ff;">const</span><span style="color:#008000;">&amp;</span> <span style="color:#010001;">x</span><span style="color:#008000;">)
{
 </span> <span style="color:#0000ff;">return</span> <span style="color:#010001;">equal_t</span><span style="color:#008000;">&lt;</span><span style="color:#010001;">T</span><span style="color:#008000;">&gt;(</span><span style="color:#010001;">x</span><span style="color:#008000;">);
} 

// Sobrecarga para que funcione equal("hola")
</span><span style="color:#0000ff;">template</span> <span style="color:#008000;">&lt;</span><span style="color:#0000ff;">typename</span> <span style="color:#010001;">T</span><span style="color:#008000;">,</span> <span style="color:#0000ff;">int</span> <span style="color:#010001;">N</span><span style="color:#008000;">&gt; </span><span style="color:#010001;">
equal_t</span><span style="color:#008000;">&lt;</span><span style="color:#010001;">T</span> <span style="color:#0000ff;">const</span><span style="color:#008000;">*&gt;</span> <span style="color:#010001;">equal</span><span style="color:#008000;">(</span><span style="color:#010001;">T</span> <span style="color:#0000ff;">const</span> <span style="color:#008000;">(&amp;</span><span style="color:#010001;">x</span><span style="color:#008000;">)[</span><span style="color:#010001;">N</span><span style="color:#008000;">])
{
 </span> <span style="color:#0000ff;">return</span> <span style="color:#010001;">equal_t</span><span style="color:#008000;">&lt;</span><span style="color:#010001;">T</span> <span style="color:#0000ff;">const</span><span style="color:#008000;">*&gt;(</span><span style="color:#010001;">x</span><span style="color:#008000;">);
} 

</span><span style="color:#0000ff;">int</span> <span style="color:#010001;">main</span><span style="color:#008000;">()
{
 </span> <span style="color:#010001;">std</span><span style="color:#008000;">::</span><span style="color:#010001;">vector</span><span style="color:#008000;">&lt;</span><span style="color:#010001;">std</span><span style="color:#008000;">::</span><span style="color:#010001;">string</span><span style="color:#008000;">&gt;</span> <span style="color:#010001;">v</span><span style="color:#008000;">(</span>10<span style="color:#008000;">,</span> <span style="color:#a31515;">"hola"</span><span style="color:#008000;">);
 </span> <span style="color:#010001;">find_if</span><span style="color:#008000;">(</span><span style="color:#010001;">v</span><span style="color:#008000;">.</span><span style="color:#010001;">begin</span><span style="color:#008000;">(),</span> <span style="color:#010001;">v</span><span style="color:#008000;">.</span><span style="color:#010001;">end</span><span style="color:#008000;">(),</span> <span style="color:#010001;">equal</span><span style="color:#008000;">(</span><span style="color:#a31515;">"mundo"</span><span style="color:#008000;">));
}</span></pre>
<p><a href="http://11011.net/software/vspaste"></a>Esa clase soporta cualquier tipo que tenga sobrecargado el <strong>operator</strong>==. Esto se puede extender mucho mas que lo que hemos visto aqui. Más adelante explicaré como se implementan functors más complicados, como los que se ven en <a href="http://boost.org/libs/bind/bind.html">Boost.Bind</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=37&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2007/11/02/functors/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
		<item>
		<title>Como Hacer Aplicaciones en Facebook</title>
		<link>http://gfaraj.wordpress.com/2007/09/11/como-hacer-aplicaciones-en-facebook/</link>
		<comments>http://gfaraj.wordpress.com/2007/09/11/como-hacer-aplicaciones-en-facebook/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 19:12:27 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/2007/09/11/como-hacer-aplicaciones-en-facebook/</guid>
		<description><![CDATA[Facebook es una comunidad en linea originalmente orientada a estudiantes de universidad, que ahora esta abierta al publico. Facebook te permite, a traves de su extenso API, crear aplicaciones que todos sus usuarios pueden usar. Aqui vamos a ver como crear una aplicacion, usando una que yo hice de ejemplo. Pueden agregar la aplicacion de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=34&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.facebook.com">Facebook</a> es una comunidad en linea originalmente orientada a estudiantes de universidad, que ahora esta abierta al publico. Facebook te permite, a traves de su extenso API, crear aplicaciones que todos sus usuarios pueden usar. Aqui vamos a ver como crear una aplicacion, usando una que yo hice de ejemplo. Pueden agregar la aplicacion de ejemplo, <a href="http://apps.facebook.com/marquee/">aqui</a>. Si necesitan mas información, visiten estas paginas:</p>
<ul>
<li><a href="http://developers.facebook.com/get_started.php" title="http://developers.facebook.com/get_started.php">http://developers.facebook.com/get_started.php</a></li>
<li><a href="http://developers.facebook.com/resources.php" title="http://developers.facebook.com/resources.php">http://developers.facebook.com/resources.php</a></li>
<li><a href="http://developers.facebook.com/step_by_step.php" title="http://developers.facebook.com/step_by_step.php">http://developers.facebook.com/step_by_step.php</a></li>
<li><a href="http://developers.facebook.com/anatomy.php" title="http://developers.facebook.com/anatomy.php">http://developers.facebook.com/anatomy.php</a></li>
<li><a href="http://developers.facebook.com/documentation.php" title="http://developers.facebook.com/documentation.php">http://developers.facebook.com/documentation.php</a></li>
</ul>
<p>Tomen en cuenta que Facebook no les da web hosting para su aplicacion, asi que tendran que conseguirlo aparte. Si necesitan una base de datos, ésta tendrá que ser aparte también. Vayan <a href="http://www.facebook.com/developers">aqui</a> y agreguen el <i>Developer application</i> a su Facebook. Ahora ya pueden pedir una nueva llave para su aplicacion. Esta llave se usa para identificar únicamente a su aplicacion. Si ya tienen el URL del servidor que usaran para la aplicacion, pueden ir agregandola ahi mismo. Una buena explicación de que poner en cada campo está <a href="http://developers.facebook.com/step_by_step.php">aqui</a>.</p>
<p>Desde este punto asumo que tienen listo el web hosting para la aplicación. Bajen el <i>PHP (4 and 5) Client Library</i> de <a href="http://developers.facebook.com/resources.php">aqui</a> y ponganlo en el directorio de la aplicación.</p>
<p>Ahora, empezar a programar. La aplicación de ejemplo, <i>Marquee</i>, contiene 2 archivos importantes. Uno de ellos es <b>config.php</b> que tiene cosas comunes e inicialización. El otro es <b>index.php</b> que es la pagina principal de la aplicación.</p>
<p><b>config.php</b></p>
<pre>
&lt;?php

require_once(<span style="color:#a31515;">'client/facebook.php')</span>;

$fb_apikey = <span style="color:#a31515;">'&lt;Aqui va el API key&gt;'</span>;
$fb_secret = <span style="color:#a31515;">'&lt;Aqui va el Secret&gt;'</span>;

$facebook = <span style="color:#0000ff;">new</span> Facebook($fb_apikey, $fb_secret);
$user = $facebook-&gt;require_login();

$app_callbackurl = <span style="color:#a31515;">'http://www.tuservidor.com/marquee/'</span>;

<span style="color:#0000ff;">try
</span>{
    <span style="color:#0000ff;">if</span> (!$facebook-&gt;api_client-&gt;users_isAppAdded())
        $facebook-&gt;redirect($facebook-&gt;get_add_url());
}
<span style="color:#0000ff;">catch</span> (Exception $ex)
{
    $facebook-&gt;set_user(null, null);
    $facebook-&gt;redirect($app_callbackurl);
}

// Incluye la clase Database que simplemente es// una utilidad que hice para consultar una base de datos
require_once(<span style="color:#a31515;">'database.php')

</span>?&gt;</pre>
<p>Como pueden ver, este archivo es bien sencillo. Preparamos las cosas comunes que se usaran en otros lugares.</p>
<p>Antes de proseguir, tendremos que introducir un termino: FBML. FBML, Facebook Markup Language, es un lenguaje basado en XML que es usado para facilitar la integración de las aplicaciones en Facebook. Provee muchas funciones que son bien utiles para los desarrolladores.</p>
<p>Si tu aplicación quiere poner una caja en el perfil del usuario, vas a tener que llamar la función <i>profile_setFBML</i>. Como el nombre lo sugiere, esta función agarra de parametro el codigo FBML que ira en esa caja. Si se manda una cadena vacia, la caja desaparece del perfil del usuario.</p>
<p><b>index.php</b></p>
<pre>&lt;?php

require_once(<span style="color:#a31515;">'config.php'</span>);
require_once(<span style="color:#a31515;">'marquee.php'</span>);

<span style="color:#0000ff;">if</span> (isset($_REQUEST[<span style="color:#a31515;">'marquee_text'</span>]))
{
    $text = $_REQUEST[<span style="color:#a31515;">'marquee_text'</span>];

    $fbml = <span style="color:#a31515;">'&lt;fb:fbml version="1.1"&gt;'</span> .
                <span style="color:#a31515;">'&lt;fb:subtitle&gt;'</span> .
                    <span style="color:#a31515;">'&lt;fb:action href="http://www.facebook.com/apps/application.php?api_key=2bc05a98791e24c98c9b5c94407664d8"&gt;Home&lt;/fb:action&gt;'</span> .
                    <span style="color:#a31515;">'&lt;fb:action href="http://apps.facebook.com/marquee"&gt;Marquee&lt;/fb:action&gt;'</span> .
                <span style="color:#a31515;">'&lt;/fb:subtitle&gt;'</span> .
                <span style="color:#a31515;">'&lt;a href="http://apps.facebook.com/marquee"&gt;'</span> .
                get_marquee_code($text) .
                <span style="color:#a31515;">'&lt;/a&gt;'</span> .
            <span style="color:#a31515;">'&lt;/fb:fbml&gt;'</span>;

    $facebook-&gt;api_client-&gt;profile_setFBML($fbml, $user);

    $database = <span style="color:#0000ff;">new</span> Database();
    $database-&gt;query(<span style="color:#a31515;">"update fb_marquee set value='"</span> . $database-&gt;quote($text) . <span style="color:#a31515;">"' where uid = $user"</span>);
}
<span style="color:#0000ff;">else
</span>{
    $database = <span style="color:#0000ff;">new</span> Database();
    $result = $database-&gt;query(<span style="color:#a31515;">"select * from fb_marquee where uid = $user"</span>);
    <span style="color:#0000ff;">if</span> (<span style="color:#0000ff;">sizeof</span>($result) == 0)
    {
        $text = <span style="color:#a31515;">"Hello, world!"</span>;
        $result = $database-&gt;query(<span style="color:#a31515;">"insert into fb_marquee (uid, value) values ($user, '"</span> . $database-&gt;quote($text) . <span style="color:#a31515;">"')"</span>);
    }
    <span style="color:#0000ff;">else
</span>    {
        $text = $result[0]-&gt;value;
    }
}

?&gt;

&lt;div style=<span style="color:#a31515;">"margin: 10px;"</span>&gt;

&lt;fb:dashboard&gt;
  &lt;fb:create-button href=<span style="color:#a31515;">"invite.php"</span>&gt;Invite your friends!&lt;/fb:create-button&gt;
&lt;/fb:dashboard&gt;
&lt;br /&gt;

&lt;div style=<span style="color:#a31515;">"width: 50%"</span>&gt;
Add a scrolling LED marquee to your profile to let your friends know what<span style="color:#a31515;">'s going on. Announce it!
</span>&lt;/div&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;div style=<span style="color:#a31515;">"width: 100%; margin-left: 20%; margin-right: 20%;"</span>&gt;
&lt;span style=<span style="color:#a31515;">"text-align: center;"</span>&gt;&lt;b&gt;Preview&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;?php
    echo get_marquee_code($text);
?&gt;
&lt;/div&gt;

&lt;br /&gt;
Enter the text you want shown in the marquee. &lt;br /&gt;
Enter each message in its own line; they will be separated appropriately.&lt;br /&gt;
&lt;br /&gt;
&lt;form action=<span style="color:#a31515;">""</span> method=<span style="color:#a31515;">"get"</span>&gt;
    &lt;textarea name=<span style="color:#a31515;">"marquee_text"</span> cols=<span style="color:#a31515;">"50"</span> rows=<span style="color:#a31515;">"7"</span>&gt;&lt;?php echo $text; ?&gt;&lt;/textarea&gt;&lt;br /&gt;
    &lt;input name=<span style="color:#a31515;">"submit"</span> type=<span style="color:#a31515;">"submit"</span> value=<span style="color:#a31515;">"Save"</span>&gt;
&lt;/form&gt;

&lt;/div&gt;</pre>
<p>Este archivo es un poco más grande, pero si lo ven bien es PHP sencillo con elementos de XHTML y FBML al final. La parte interesante es:</p>
<pre style="width:99%;height:210px;">    $fbml = <span style="color:#a31515;">'&lt;fb:fbml version="1.1"&gt;'</span> .
                <span style="color:#a31515;">'&lt;fb:subtitle&gt;'</span> .
                    <span style="color:#a31515;">'&lt;fb:action href="http://www.facebook.com/apps/application.php?api_key=2bc05a98791e24c98c9b5c94407664d8"&gt;Home&lt;/fb:action&gt;'</span> .
                    <span style="color:#a31515;">'&lt;fb:action href="http://apps.facebook.com/marquee"&gt;Marquee&lt;/fb:action&gt;'</span> .
                <span style="color:#a31515;">'&lt;/fb:subtitle&gt;'</span> .
                <span style="color:#a31515;">'&lt;a href="http://apps.facebook.com/marquee"&gt;'</span> .
                get_marquee_code($text) .
                <span style="color:#a31515;">'&lt;/a&gt;'</span> .
            <span style="color:#a31515;">'&lt;/fb:fbml&gt;'</span>;

    $facebook-&gt;api_client-&gt;profile_setFBML($fbml, $user);</pre>
<p>Aqui va el codigo que irá en la caja del perfil de usuario. Como pueden ver, tiene dos links (<i>fb:action</i>) en el subtitulo, uno es &#8220;Home&#8221; y el otro &#8220;Marquee&#8221;. Tambien, contiene el codigo que pone el <i>marquee</i> en la caja, a traves de la funcion <i>get_marquee_code</i>.</p>
<p>Asi se ve la caja:</p>
<p><a href="http://gfaraj.files.wordpress.com/2007/09/image.png"><img src="http://gfaraj.files.wordpress.com/2007/09/image-thumb.png?w=399&#038;h=111" style="border:0 none;" alt="image" border="0" height="111" width="399" /></a></p>
<p>Asi se ve <b>index.php</b>:</p>
<p><a href="http://gfaraj.files.wordpress.com/2007/09/image1.png"><img src="http://gfaraj.files.wordpress.com/2007/09/image-thumb1.png?w=576&#038;h=380" style="border:0 none;" alt="image" border="0" height="380" width="576" /></a><br />
Espero esto haya ayudado a los que estan empezando a hacer aplicaciones de Facebook. Cualquier pregunta la pueden hacer a traves de comentarios en este articulo.</p>
<p>Addendum : Como Invitar Amigos</p>
<pre>
// Agarremos la lista de amigos que ya tienen la aplicacion instalada
$rs = $facebook-&gt;api_client-&gt;fql_query(
	"select uid " .
	"from user " .
	"where has_added_app=1 and uid IN " .
	"   (SELECT uid2 FROM friend WHERE uid1 = $user)");

$arFriends = "";

//  Construimos una lista de estos amigos
if ($rs)
{
	for ( $i = 0; $i &lt; count($rs); $i++ )
	{
		if ($arFriends != "")
			$arFriends .= ",";

		$arFriends .= $rs[$i]["uid"];
	}
}

// El URL para referrals
$sNextUrl = urlencode("&amp;refuid=" . $user);

//  Construimos el FBML que ira en el mensaje de invitacion
$invfbml = &lt;&lt;&lt;FBML
You've been invited to add Marquee!
&lt;fb:name uid="$user" firstnameonly="true" shownetwork="false"/&gt; wants you to add Marquee to keep posted on your announcements!
&lt;fb:req-choice url="http://www.facebook.com/add.php?api_key=$fb_apikey&amp;next=$sNextUrl" label="Add Marquee!" /&gt;
FBML;

?&gt;

&lt;fb:request-form type="Marquee" action="index.php?c=skipped" content="&lt;?=htmlentities($invfbml)?&gt;" invite="true"&gt;
	&lt;fb:multi-friend-selector max="20" actiontext="Here are your friends who don't have Marquee. Invite them to add it!" showborder="true" rows="5" exclude_ids="&lt;?=$arFriends?&gt;" /&gt;
&lt;/fb:request-form&gt;
</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=34&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2007/09/11/como-hacer-aplicaciones-en-facebook/feed/</wfw:commentRss>
		<slash:comments>355</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>

		<media:content url="http://gfaraj.files.wordpress.com/2007/09/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://gfaraj.files.wordpress.com/2007/09/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Concepts</title>
		<link>http://gfaraj.wordpress.com/2007/08/04/concepts/</link>
		<comments>http://gfaraj.wordpress.com/2007/08/04/concepts/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 17:34:39 +0000</pubDate>
		<dc:creator>gfaraj</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[c++09]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[standard]]></category>

		<guid isPermaLink="false">http://gfaraj.wordpress.com/2007/08/04/concepts/</guid>
		<description><![CDATA[Una de las principales adiciones al lenguaje en el proximo estandar seran los Concepts. La libreria estandar tiene muchos conceptos que solo estan escritos en el documento. Para enforzarlos, es muy comun que los que implementan la libreria tengan que usar varios trucos que se pueden hacer tediosos y dificil de manejar. Ademas de eso, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=28&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Una de las principales adiciones al lenguaje en el proximo estandar seran los <strong>Concepts</strong>. La libreria estandar tiene muchos conceptos que solo estan escritos en el documento. Para enforzarlos, es muy comun que los que implementan la libreria tengan que usar varios trucos que se pueden hacer tediosos y dificil de manejar. Ademas de eso, cuando un usuario de la libreria no cumple los requisitos de estos conceptos, los mensajes de error son bien dificil de interpretar, especialmente para alguien que acaba de empezar a aprender C++. Veamos un ejemplo:</p>
<pre style="width:99%;height:137px;"><span style="color:#0000ff;">#include</span> <span style="color:#a31515;">&lt;list&gt;
</span><span style="color:#0000ff;">#include</span> <span style="color:#a31515;">&lt;algorithm&gt;

</span><span style="color:#0000ff;">int</span> <span style="color:#010001;">main</span>()
{
    <span style="color:#010001;">std</span>::<span style="color:#010001;">list</span>&lt;<span style="color:#0000ff;">int</span>&gt; <span style="color:#010001;">l</span>;
    <span style="color:#010001;">std</span>::<span style="color:#010001;">sort</span>(<span style="color:#010001;">l</span>.<span style="color:#010001;">begin</span>(), <span style="color:#010001;">l</span>.<span style="color:#010001;">end</span>());
}</pre>
<p>Este codigo produce el siguiente error en Visual C++ 2005 (<em>Nota:</em> este codigo realmente produce 6 errores en este compilador, lo recorte por brevedad):<a href="http://11011.net/software/vspaste"></a></p>
<pre style="width:99%;height:72px;">error C2784: 'reverse_iterator&lt;_RanIt&gt;::difference_type std::operator -(const std::reverse_iterator&lt;_RanIt&gt; &amp;,const std::reverse_iterator&lt;_RanIt2&gt; &amp;)' :
             could not deduce template argument for 'const std::reverse_iterator&lt;_RanIt&gt; &amp;'
             from 'std::list&lt;_Ty&gt;::_Iterator&lt;_Secure_validation&gt;'</pre>
<p>Un programador experienciado podria entender que <strong>sort</strong> esta tratando de usar el <strong>operator-</strong> con los iteradores, y ese operador solo es permitido para iteradores <em>random-access</em>. Los iteradores de <strong>list</strong> no son <em>random-access</em>, asi que no tienen este operador sobrecargado. Alguien que acaba de empezar C++ quedaria muy confundido y talvez no sabe que <strong>list</strong> tiene una funcion <strong>sort</strong> como miembro.</p>
<p>Aqui es donde entran los <strong>Concepts</strong>. Esos conceptos que solo estan escritos en los documentos del estandar podran ser expresados en codigo. Esto dara una mucho mejor manera para revisar requisitos de los templates. Por ejemplo, comparemos la declaracion de la funcion <strong>sort</strong>, usando la tipica actual con la que se usaria con concepts:</p>
<pre style="width:99%;height:153px;"><span style="color:#0000ff;">template</span> &lt;<span style="color:#0000ff;">typename</span> <span style="color:#010001;">RanIter</span>&gt;
<span style="color:#0000ff;">void</span> <span style="color:#010001;">sort</span>(<span style="color:#010001;">RanIter</span> <span style="color:#010001;">begin</span>, <span style="color:#010001;">RanIter</span> <span style="color:#010001;">end</span>);   <span style="color:#008000;">// actualidad

</span><span style="color:#0000ff;">template</span> &lt;<span style="color:#0000ff;">typename</span> <span style="color:#010001;">Iter</span>&gt;
<span style="color:#0000ff;">requires</span> <span style="color:#010001;">RAIterator</span>&lt;<span style="color:#010001;">Iter</span>&gt;
<span style="color:#0000ff;">void</span> <span style="color:#010001;">sort</span>(<span style="color:#010001;">Iter</span> <span style="color:#010001;">begin</span>, <span style="color:#010001;">Iter</span> <span style="color:#010001;">end</span>);         <span style="color:#008000;">// usando concepts

</span><span style="color:#0000ff;">template</span> &lt;<span style="color:#010001;">RAIterator</span> <span style="color:#010001;">Iter</span>&gt;
<span style="color:#0000ff;">void</span> <span style="color:#010001;">sort</span>(<span style="color:#010001;">Iter</span> <span style="color:#010001;">begin</span>, <span style="color:#010001;">Iter</span> <span style="color:#010001;">end</span>);         <span style="color:#008000;">// sintaxis alterno</span></pre>
<p>En este ejemplo, <em>RAIterator</em> es un <strong>concept</strong> que representa un <em>random-access</em> iterator definido previo a la declaracion de <strong>sort</strong>. Volviendo al primer ejemplo, si usamos concepts, el mensaje de error reduciria considerablemente a algo asi:</p>
<pre style="width:99%;height:19px;"><span style="color:#010001;">error</span>: <span style="color:#010001;">no</span> <span style="color:#010001;">concept</span> <span style="color:#010001;">map</span> <span style="color:#010001;">for</span> <span style="color:#010001;">requirement</span> <span style="color:#010001;">RAIterator</span>&lt;<span style="color:#010001;">std</span>::<span style="color:#010001;">_List_iterator</span>&lt;<span style="color:#010001;">int</span>&gt;&gt;</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Esto es sin duda mucho mas claro que recibir 6 errores como vimos arriba. Pero, ¿son los concepts solo utiles para producir mejores mensajes de error? No, tienen mucho mas uso que eso. Como ilustración, veamos el ejemplo de <strong>enable_if</strong> que vimos en un <a href="http://gfaraj.wordpress.com/2007/07/04/usando-enable_if-para-seleccionar-templates/">articulo anterior</a>, ahora usando concepts.</p>
<pre style="width:99%;height:308px;"><span style="color:#0000ff;">template</span> &lt;<span style="color:#010001;">IsIntegral</span> <span style="color:#010001;">T</span>&gt;
<span style="color:#0000ff;">typename</span> <span style="color:#010001;">T</span> <span style="color:#010001;">mod</span>(<span style="color:#010001;">T</span> <span style="color:#010001;">a</span>, <span style="color:#010001;">T</span> <span style="color:#010001;">b</span>)        <span style="color:#008000;">// #1
</span>{
    <span style="color:#0000ff;">return</span> <span style="color:#010001;">a</span> % <span style="color:#010001;">b</span>;
}

<span style="color:#0000ff;">template</span> &lt;<span style="color:#010001;">IsFloat</span> <span style="color:#010001;">T</span>&gt;
<span style="color:#010001;">T</span> <span style="color:#010001;">mod</span>(<span style="color:#010001;">T</span> <span style="color:#010001;">a</span>, <span style="color:#010001;">T</span> <span style="color:#010001;">b</span>)                 <span style="color:#008000;">// #2
</span>{
    <span style="color:#0000ff;">return</span> <span style="color:#010001;">std</span>::<span style="color:#010001;">fmod</span>(<span style="color:#010001;">a</span>, <span style="color:#010001;">b</span>);
}

<span style="color:#0000ff;">int</span> <span style="color:#010001;">main</span>()
{
    <span style="color:#010001;">mod</span>(4, 2);             <span style="color:#008000;">// OK, llama #1
</span>    <span style="color:#010001;">mod</span>(1.0, 10.0);        <span style="color:#008000;">// OK, llama #2
</span>    <span style="color:#010001;">mod</span>(<span style="color:#a31515;">"hola"</span>, <span style="color:#a31515;">"mundo"</span>);  <span style="color:#008000;">// error
</span>}</pre>
<p>Pueden notar que este codigo es mucho más elegante que el que usa <strong>enable_if</strong>. Naturalmente, el error que muestra en la ultima linea será mucho mas claro también. Otra utilidad de los concepts es poder excluir ciertas funciones de una clase dependiendo de los requisitos que cumplan los parametros del template. Por ejemplo:</p>
<pre style="width:99%;height:293px;"><span style="color:#0000ff;">auto</span> <span style="color:#0000ff;">concept</span> <span style="color:#010001;">LessThanComparable</span>&lt;<span style="color:#0000ff;">typename</span> <span style="color:#010001;">T</span>&gt; {
    <span style="color:#0000ff;">bool</span> <span style="color:#0000ff;">operator</span>&lt;(<span style="color:#010001;">T</span>, <span style="color:#010001;">T</span>);
}

<span style="color:#0000ff;">template</span> &lt;<span style="color:#0000ff;">typename</span> <span style="color:#010001;">T</span>&gt;
<span style="color:#0000ff;">struct</span> <span style="color:#010001;">list
</span>{
    <span style="color:#0000ff;">requires</span> <span style="color:#010001;">LessThanComparable</span>&lt;<span style="color:#010001;">T</span>&gt; <span style="color:#0000ff;">void</span> <span style="color:#010001;">sort</span>();
};

<span style="color:#0000ff;">struct</span> <span style="color:#010001;">X</span> {};

<span style="color:#0000ff;">void</span> <span style="color:#010001;">f</span>(<span style="color:#010001;">list</span>&lt;<span style="color:#0000ff;">int</span>&gt; <span style="color:#010001;">l1</span>, <span style="color:#010001;">list</span>&lt;<span style="color:#010001;">X</span>&gt; <span style="color:#010001;">l2</span>)
{
    <span style="color:#010001;">l1</span>.<span style="color:#010001;">sort</span>();     <span style="color:#008000;">// OK, 'int' cumple con LessThanComparable
</span>    <span style="color:#010001;">l2</span>.<span style="color:#010001;">sort</span>();     <span style="color:#008000;">// error, list&lt;X&gt; no tiene 'sort' porque X no tiene operator&lt; definido
</span>}</pre>
<p>Aqui pueden ver como definir un <strong>concept</strong>, <em>LessThanComparable</em>, que define el requisito de tener <strong>operator&lt;</strong> definido para T. El template <strong>list</strong> define una funcion <strong>sort</strong> solo si el tipo T cumple con los requisitos de <em>LessThanComparable</em>. Esto permite no deshabilitar toda la clase <strong>list</strong> solo por una funcion. Creo que eso es todo por hoy. Hay cosas que no vimos, como los concept maps y los axioms, pero tendrá que ser otro dia. Uno de los principales autores de <strong>Concepts</strong> es Douglas Gregor, y aqui esta su <a href="http://conceptgcc.wordpress.com">blog</a>. Espero que esten igual de emocionados con esto como yo lo estoy. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gfaraj.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gfaraj.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gfaraj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gfaraj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gfaraj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gfaraj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gfaraj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gfaraj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gfaraj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gfaraj.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gfaraj.wordpress.com&amp;blog=1048023&amp;post=28&amp;subd=gfaraj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gfaraj.wordpress.com/2007/08/04/concepts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bc26d1c720c60c5a9e68dbbe52d4ee26?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gfaraj</media:title>
		</media:content>
	</item>
	</channel>
</rss>
