<?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>Über Software &#187; facebook</title>
	<atom:link href="http://www.uebersoftware.com/category/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.uebersoftware.com</link>
	<description>Opinions and thoughts on Software and Technology.</description>
	<lastBuildDate>Thu, 29 Apr 2010 06:04:30 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nuux &#8211; Launch of Location Aware Mobile Social Network &#8211; with focus on real-time</title>
		<link>http://www.uebersoftware.com/2009/12/nuux-launch-of-location-aware-mobile-social-network-with-focus-on-real-time/</link>
		<comments>http://www.uebersoftware.com/2009/12/nuux-launch-of-location-aware-mobile-social-network-with-focus-on-real-time/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 05:22:39 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web2.0]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[mobile development]]></category>
		<category><![CDATA[mobile social network]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/?p=192</guid>
		<description><![CDATA[Today, a main project of mine, Nuux is opening its doors officially for the public Beta! Nuux is a mobile social network dedicated to real-time social nightlife information. I would like to take the opportunity to let you know some details about this network and how it works. I will try not to make too [...]]]></description>
			<content:encoded><![CDATA[<p>Today, a main project of mine, <a title="Nuux.net" href="http://www.nuux.net">Nuux</a> is opening its doors officially for the public Beta! Nuux is a <strong>mobile</strong> social network dedicated to <strong>real-time social nightlife information</strong>. I would like to take the opportunity to let you know some details about this network and how it works. I will try not to make too much of a plug, but I am biased, since I&#8217;m the main person behind this, so reader beaware! <img src='http://www.uebersoftware.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ok, so Nuux is about real-time nightlife information. You can checkout live where friends are partying, checkin to locations and events, message your friends for free, see what&#8217;s the hottest venues and generally get insider information about a particular town. To get my motivation behind this project maybe I can explain how it all began:</p>
<p>I was going out with some friends and ended up in a place where we had already paid some cover charge but it was not good at all. How would it be to have some network to check-out what other places and events are like, right now? An app to see where your friends are right now, how they like it, see pics, and recommendations from people just like me?</p>
<p>The idea developed into what has become Nuux right now. Currently you can checkout Nuux as a <a title="Nuux" href="http://www.nuux.net">web platform</a>, a <a title="Nuux Mobile Site" href="http://m.nuux.net">mobile site</a>, and the <a title="Nuux Youtube Site" href="http://www.youtube.com/user/nuuxmobile">mobile application</a>. Nuux is tightly integrated into Facebook (Single Sign On, Friend Connect, Publish, Pictures Sharing etc.).  This means that for example the there is no actual friend building process required you can just use your connections from Facebook if you like, which are sync&#8217;ed on a daily basis.</p>
<p>The Mobile App, which is actually the main part is a 2ME Client available for most of the phones from Nokia, Samsung, SE, LG, Moto (other clients are comming, Blackberry the soonest in about a months time, then iPhone, Android).  The website currently only shows a small part of the functionality which is available in Nuux. For example you can let your friends know of your <a href="http://www.nuux.net/plans/myplans">Weekend Plans</a> by linking directly to a <a href="http://www.nuux.net/venues">venue </a>of your city. Venues can all be filled with user generated content &#8211; ratings, tags, comments, pics, and weekend plans. So you can find out what is going to be a popular venue in a particular city on all those attributes.</p>
<p>In the near future we will also offer an API, to enable fellow developers developing their own applications on the Nuux network. If you would like to be notified for an early access, please contact us on developers@nuux.net.</p>
<p>If you would like to get more info please check out the <a href="http://http://nuux.tumblr.com/">Nuux Blog</a>, or follow Nuux on <a href="http://www.twitter.com/nuuxlive">Twitter </a>. </p>
<p>And yes, please let me know what you think about it either in the comments or on <a href="http://nuux.uservoice.com/">uservoice</a>. </p>
<p>Thanks &#8211; and I promise this will be the first and only plug for Nuux, really!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/12/nuux-launch-of-location-aware-mobile-social-network-with-focus-on-real-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FB Series: Difference between IFrame and Connect Apps</title>
		<link>http://www.uebersoftware.com/2009/11/fbseries-difference-iframe-connect-apps/</link>
		<comments>http://www.uebersoftware.com/2009/11/fbseries-difference-iframe-connect-apps/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 12:51:13 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/?p=167</guid>
		<description><![CDATA[Writing about specifics on iFrame apps in Facebook development was on my list for quite some time. So now despite a lack of time, let&#8217;s just get out with the essential message:
When writing iFrame Apps, think of it like a Connect App. It is essentially the same.
I made  the long way round trying to [...]]]></description>
			<content:encoded><![CDATA[<p>Writing about specifics on iFrame apps in Facebook development was on my list for quite some time. So now despite a lack of time, let&#8217;s just get out with the essential message:</p>
<p>When writing iFrame Apps, think of it like a Connect App. <strong>It is essentially the same</strong>.</p>
<p>I made  the long way round trying to find out what are the specifics of a iFrame app in the Facebook Wiki, Forums, and Google. The Facebook Docs is very unclear about the concrete iFrame functionalities from my point of view. Start reading the Facebook docs substituting Connect with IFrame and you find it way easiert to get along, I found.</p>
<p>The only difference between a iFrame and a Facebook app are the size restrictments of 760px and some friend exchange functions, you probably will not be able to use as an app living inside FB. The other things are the same, since as an iFrame app you are technically another site living on a different server so all the cross-channel communication techniques and security models apply just like for an Connect app.</p>
<p>Also I would <strong>stay away from </strong>using <strong>XFBML </strong>whenever possible. XFBML works by parsing your HTML at runtime via Javascript and injecting iframes <em>within </em> your iframe when encountering a XFBML tag. When trying to use the XFBML language for display of Friend Selector, Permission dialogs etc. it tore my site apart and was generally unacceptable slow. I found that this architecture is probably not ready yet for production and it makes your site really slow at times.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/11/fbseries-difference-iframe-connect-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FB Series: AJAX &amp; Facebook debugging</title>
		<link>http://www.uebersoftware.com/2009/08/fb-series-ajax-and-facebook-debugging/</link>
		<comments>http://www.uebersoftware.com/2009/08/fb-series-ajax-and-facebook-debugging/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 16:25:45 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[debugging]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/?p=43</guid>
		<description><![CDATA[The php facebook client has a nice setting to track the different http calls between your app and facebook. You can enable this with:
$GLOBALS['facebook_config']['debug'] = true;
This will actually insert some script code to the header of every page served, in order to render the tracking code, if there is something to render:


&#60;script type="text/javascript"&#62;
var types = [...]]]></description>
			<content:encoded><![CDATA[<p>The php facebook client has a nice setting to track the different http calls between your app and facebook. You can enable this with:</p>
<p><code>$GLOBALS['facebook_config']['debug'] = true;</code></p>
<p>This will actually insert some script code to the header of every page served, in order to render the tracking code, if there is something to render:<br />
<code><br />
</code></p>
<pre id="line1">&lt;<span>script</span><span> type</span>=<span>"text/javascript"</span>&gt;
var types = ['params', 'xml', 'php', 'sxml'];
function getStyle(elem, style) {
  if (elem.getStyle) {
    return elem.getStyle(style);
  } else {
    return elem.style[style];
  }
}
function setStyle(elem, style, value) {
  if (elem.setStyle) {
    elem.setStyle(style, value);
  } else {
    elem.style[style] = value;
  }
}
function toggleDisplay(id, type) {
  for (var i = 0; i &lt; types.length; i++) {
    var t = types[i];
    var pre = document.getElementById(t + id);
    if (pre) {
      if (t != type || getStyle(pre, 'display') == 'block') {
        setStyle(pre, 'display', 'none');
      } else {
        setStyle(pre, 'display', 'block');
      }
    }
  }
  return false;
}
&lt;/<span>script</span>&gt;</pre>
<p>The catch is that the script code is always inserted, even if there were no facebook api calls involved. So the script code renders at the top for every page, also when its a JSON AJAX response. This means of course that the JSON will not be parsed on the browse &#8211; not good.</p>
<p>I now use other tools to track what requests are being sent back and forth instead between my application and facebook.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/08/fb-series-ajax-and-facebook-debugging/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FB Series: Integrating JS</title>
		<link>http://www.uebersoftware.com/2009/07/fb-series-integrating-js/</link>
		<comments>http://www.uebersoftware.com/2009/07/fb-series-integrating-js/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 15:03:00 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/2009/07/fb-series-integrating-js/</guid>
		<description><![CDATA[Where are we coming from 
Javascript one of the most popular language for web programming. Although it has been around for decades, &#8211; coming from Netscape 1995 &#8211; it was not until the advent of the Ajax and Web 2.0 when JavaScript came to the spotlight and brought more professional programming attention.
The OpenSource movement of [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: rgb(32, 18, 77);font-size:130%;" ><br /><span style="font-weight: bold;">Where are we coming from </span></span></p>
<p>Javascript one of the most popular language for web programming. Although it has been around for decades, &#8211; coming from Netscape 1995 &#8211; it was not until the advent of the Ajax and Web 2.0 when JavaScript came to the spotlight and brought more professional programming attention.</p>
<p>The OpenSource movement of JavaScript frameworks started in 2005 with prototype and script.aculo.us. Since then programming appealing JavaScript based Websites has become so much easier. Nowadays its litteraly possible to mash-up widgets with little to no JavaScript knowledge and set up a stunning page. I would however still recommend for someone not knowing JavaScript first to get the basics and maybe have some <a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference">JS Reference</a> &amp; <a href="https://developer.mozilla.org/en/Gecko_DOM_Reference">DOM Reference</a> handy.</p>
<p>Looking at the core functionality of todays frameworks what do we have?
<ul>
<li>DOM Traversal with CSS selectors to locate elements</li>
<li>DOM Modification: Create/remove/modify elements</li>
<li>Short syntax for adding/removing Events</li>
<li>Short syntax for Ajax Request</li>
<li>Animations (hide/show/toggle) &amp; Transition</li>
<li>User Interface Widgets (Drag &amp; drop, Tree, Grid, Datepicker, Model Dialog, Menu / Toolbar, Slider, Tabbed Pane)</li>
<li>Wide Browser Support</li>
</ul>
<p>
<div style="background-color: white; color: rgb(7, 55, 99); font-weight: bold;"><span style="font-size:130%;">Choosing a JS Framework</span></div>
<p>On the net you will find a mirrad of comparisons of popular frameworks. The most popular OpenSource  and free JS Frameworks available today are:</p>
<p>  * Prototype (&amp;Scriptaculous  for UI)<br />  * Dojo<br />  * jQuery<br />  * YUI<br />  * Mootools</p>
<p>I would say that all of those have their advantages and drawbacks and there&#8217;s not really an obvious winner. It really depends on what you use it for. Some helpful links that helped me choosing are:</p>
<p><a href="http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks">Wikipedia</a> &#8211; to get a feeling on the features<br /><a href="http://ajax.wikispaces.com/functional_comparison">unbiased functional comparison</a><br /><a href="http://goog_1247925525350/">Stackoverflow</a> comparing JQuery Dojo and more<br /><a href="http://blog.creonfx.com/javascript/mootools-vs-jquery-vs-prototype-vs-yui-vs-dojo-comparison-revised">Performance comparison</a></p>
<p>Choosing a framework, as mentioned, depends a bit on how you want to use JavaScript:</p>
<p><b>Plug-and-Play:</b>
<ul>
<li>Drop in a “calendar widget” or “tabbed navigation”</li>
<li>Little, to no, JavaScript experience required.</li>
<li>Just customize some options and go.</li>
<li>No flexibility.</li>
</ul>
<p>=&gt; Widgets</p>
<p><b>Some Assembly Required</b>
<ul>
<li>Write common utilities</li>
<li>Click a link, load a page via Ajax</li>
<li>Build a dynamic menu</li>
<li>Creating interactive forms</li>
<li>Use pre-made code to distance yourself from browser bugs.</li>
<li>Flexible, until you hit a browser bug.</li>
</ul>
<p>=&gt; Libraries</p>
<p><b>Down-and-Dirty</b>
<ul>
<li>Write all JavaScript code from scratch</li>
<li>Deal, directly, with browser bugs</li>
<li>Quirksmode is your lifeline</li>
<li>Excessively flexible, to the point of hinderance.</li>
</ul>
<p>=&gt; Raw Java Script</p>
<p>Of course you can also mix different approaches, as you can also mix Frameworks but of course in terms of maintainability and productivity it would better if you don&#8217;t have to.</p>
<p>For my personal use case I had the following requirements:
<ol>
<li>Easy to learn with minimal intuitive syntax</li>
<li>Lightweight solution</li>
<li>Availability of some widgets: Datepicker, Grid, maybe more</li>
<li>Appealing Web 2.0 effects</li>
<li>Production quality</li>
</ol>
<p>Right now I have choosen <a href="http://jquery.com/">jQuery</a> (incl. <a href="http://jqueryui.com/">jQuery UI</a>) and see how far I get with it. It was to me the most appealing in terms of the above criterias. I am not sure if I need a sophisticated data table, if so I might have another look at YUI data table which seems to me one of the <a href="http://yuiblog.com/blog/2008/10/15/datatable-260-part-one/">best widgets</a> for this (compare to e.g. <a href="http://www.datatables.net/">this</a> jQuery plugin).</p>
<p>For development i guess its essential to still have a good Javascript support in your IDE and a JavaScript debugger &#8211; I use Firebug and Netbeans for this. If you are into Eclipse I strongly suggest to take a look at <a href="http://www.aptana.com/">Aptana</a>, their IDE is really great for JavaScript and PHP, but unfortunately not optimal for Facebook development.</p>
<p>As a last hint: consider using Google <a href="http://code.google.com/apis/ajaxlibs/">Ajax Libs</a> for speed up JS loading on your clients. However do not use it in local development. It just does not work reliable (loads too late etc.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/07/fb-series-integrating-js/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FB Series: Choosing an PHP IDE</title>
		<link>http://www.uebersoftware.com/2009/07/fb-series-choosing-an-php-ide/</link>
		<comments>http://www.uebersoftware.com/2009/07/fb-series-choosing-an-php-ide/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 13:06:00 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/2009/07/fb-series-choosing-an-php-ide/</guid>
		<description><![CDATA[What are the contenders?
Netbeans 6.7 with PHP supportAptana 1.5 (standalone or Eclipse plugin)Zend Studio 6.1.2 (not free ;( )
My experiences:

Code completion/parser in Netbeans better than Aptana (Aptana also crashes / gets in a endless loop at points when it cannot parse / code assist a file resulting in java heap exhaustion / cpu up 50%)
Aptana [...]]]></description>
			<content:encoded><![CDATA[<p>What are the contenders?</p>
<p>Netbeans 6.7 with PHP support<br />Aptana 1.5 (standalone or Eclipse plugin)<br />Zend Studio 6.1.2 (not free ;( )</p>
<p>My experiences:
<ul>
<li>Code completion/parser in Netbeans better than Aptana (Aptana also crashes / gets in a endless loop at points when it cannot parse / code assist a file resulting in java heap exhaustion / cpu up 50%)</li>
<li>Aptana browser integration  &amp; debugger integration is better. I like the tab away browser, and the debugger xdebug works more reliable than in Netbeans &#8211; however still has its times when it does just not attach</li>
<li>Zend Studio: set up was not working ok for me, couldn&#8217;t get the debugger working. Script only debugging works.</li>
</ul>
<p>After switching back and forth between Aptana, Netbeans and Zend studio I guess I settled now with Netbeans. I might startup Aptana occasionally if i have debugger issues. It would be really great if the xdebugger would just work on Netbeans&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/07/fb-series-choosing-an-php-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FB Series: Java Guy starting with FB development</title>
		<link>http://www.uebersoftware.com/2009/07/fb-series-java-guy-starting-with-fb-development/</link>
		<comments>http://www.uebersoftware.com/2009/07/fb-series-java-guy-starting-with-fb-development/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 13:02:00 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[typesystem]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/2009/07/fb-series-java-guy-starting-with-fb-development/</guid>
		<description><![CDATA[I recently started with PHP development. Although I have had some small exposure to the
language before, this was my first real project.
What are the big differences to the Java (web) development experience? 

interpreted (no compiler to check for errors, just a parser)
dynamically typed (-&#62;no &#8220;parse-time&#8221; type checking in the IDE ..)
essential procedural, object handling completely [...]]]></description>
			<content:encoded><![CDATA[<p>I recently started with PHP development. Although I have had some small exposure to the<br />
language before, this was my first real project.</p>
<p><span style="font-weight: bold;font-size:100%;">What are the big differences to the Java (web) development experience? </span></p>
<ul>
<li>interpreted (no compiler to check for errors, just a parser)</li>
<li>dynamically typed (-&gt;no &#8220;parse-time&#8221; type checking in the IDE ..)</li>
<li>essential procedural, object handling completely rewrittten from version 4 to 5 now basic oo functionality</li>
<li>hunderts of statically callable base function; e.g. very easy to download &amp; store a file: $contents = file_get_contents($url). However you see that many things grew historically without a overall concept: how do you test the existence of a substring in a string strstr | strrpos | stripos (hint 0 equals false))</li>
<li>Very &#8220;close&#8221; to the HTTP request-response model</li>
<li>the script execution is determined by the HTTP request (e.g. check ignore_user_abort )</li>
<li>MySQL and Postgres integration modules for persistence</li>
<li>Caching, Pooling is different due to the fact that a PHP process in its pure form only lives during one Web request:3 ways a PHP can run in a Web Server:<br />
- as CGI wrapper: instance of the php interpreter created and destroyed    for every page request<br />
- module (e.g. mod_php, mod_fastcgi) in a multiprocessor web server like Apache. Apache/FastCGI can reuse php instances<br />
- plugin to web server</p>
<p>This means that connection pooling is <a href="http://uebersoftware.blogspot.com/2009/07/internet-scale-java-web-applications.html#pooling">not really possible</a>.<br />
Caching:<br />
- page scope: not necessary in php. All variables within includes are acessible<br />
- request scope: not supported natively, but can be implemented via session<br />
- session scope: see <a href="http://ch.php.net/manual/en/book.session.php">PHP Session</a>. Data stored within a text file in php/tmp or similar. Data must be serializable (It is not possible to serialize PHP built-in objects!)<br />
- application scope: does not exist</li>
<li>Generally faster code-test iterations.</li>
<li>Quick infrastructure setup: Apache, php, Apache-php integration (e.g. mod_php), Editor.</li>
<li>More difficult to manage complex/larger projects because:<br />
- interpreted &amp; dynamically typed: errors only found at runtime<br />
- Exception handling difficult<br />
- OO-shortcomings<br />
- &#8230;</li>
</ul>
<p>This is just a short list of my thoughts, not striving to achive completeness.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/07/fb-series-java-guy-starting-with-fb-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FB Series: Locally debug your PHP Facebook App</title>
		<link>http://www.uebersoftware.com/2009/07/fb-series-locally-debug-your-php-facebook-app/</link>
		<comments>http://www.uebersoftware.com/2009/07/fb-series-locally-debug-your-php-facebook-app/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 15:30:00 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[debugging]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/2009/07/fb-series-locally-debug-your-php-facebook-app/</guid>
		<description><![CDATA[Starting with Facebook applications is a rather a bumpy road. First there is the scattered and often not up-to-date documentation on the Facebook wiki. Its a pain to go through. But ok once you managed to get the important bits its ok.
What I am talking about is the testing. Its quite astonishing that this is [...]]]></description>
			<content:encoded><![CDATA[<p>Starting with Facebook applications is a rather a bumpy road. First there is the scattered and often not up-to-date documentation on the <a href="http://http//wiki.developers.facebook.com/">Facebook wiki</a>. Its a pain to go through. But ok once you managed to get the important bits its ok.</p>
<p>What I am talking about is the testing. Its quite astonishing that this is not thought through at all: Facebook does not offer a Test environment (!). So this means developers have to test their apps in the real Facebook which means. Developers have to create 2 apps one for test one for prod with different configurations canvas urls etc. as well as create <a href="http://wiki.developers.facebook.com/index.php?title=Test_Accounts">Testusers </a>- or they want to annoy their friends with test apps.</p>
<p>If your like me you prefer debugging to changelogginguploadtestchangeuploadtest cycles. With Facebook Apps this was not straigthforward so therefore here is a easy end-to-end explanation for you how to setup your php facebook app for local debugging &#8211; which i didnt find on the net.</p>
<p>Prerequisistes: You have apache and php 5.x installed.</p>
<ol>
<li>Set up your computer for portforwarding. <a href="http://www.portforward.com/">Portworward.com</a> has good explanations for all different kind of configurations and routers.</li>
<li>Get yourself a alias from <a href="http://dyndns.org/">dyndns.org</a>, something like myfacebookapp.dyndns.org pointing to your ip. In order to update your dynamic ip if you have one, install the <a href="http://www.dyndns.com/support/clients/">dyndns updater</a>.</li>
<li>Try accessing your apache file via your dyndyns alias(myfacebookapp.dyndns.org). Keep in mind that many routers do not support <a href="http://en.wikipedia.org/wiki/Loopback">ip loopback</a>, therefore you might need to go through a proxy to do that. Also make sure to configure your firewall to open the ports your forwarding.</li>
<li>If this all worked you are ready to setup your php environment. Startup (or install) your php ide of choice with integrated <a href="http://xdebug.org/docs/remote">xdebugging </a>for php (like <a href="http://netbeans.org/">Netbeans </a>6.7 or <a href="http://www.aptana.com/">Aptana </a>1.5)</li>
<li>You need to configure your php.ini file to support the xdebug. At the end of your php.ini file add:zend_extension_ts=&#8221;c:/php/ext/php_xdebug-2.0.5-5.2.dll&#8221;<br />
xdebug.remote_enable=on<br />
xdebug.remote_handler=dbgp<br />
xdebug.remote_mode=req<br />
xdebug.remote_host=localhost<br />
xdebug.remote_port=9000</p>
<p>As you see I use windows change your path to the xdebug .dll / .so as you need. You might need to download it from xdebug.org</li>
<li>Now you should be ready to startup a debug session of a file locally. Test it</li>
<li>In order to debug HTTP Sessions its important that you have the parameter XDEBUG_SESSION_START= (for Netbeans its XDEBUG_SESSION_START=netbeans-xdebug) in your request url. So this gets a bit tricky for facebook apps since facebook is calling the canvas url I think that cannot contain query params (I guess ..) . Anyway no need to try or think either there is a nice <a href="https://addons.mozilla.org/en-US/firefox/addon/3960">firefox plugin</a> that does that for us.</li>
</ol>
<p>That&#8217;s it: Fire up a debugging session in your ide, add a breakpoint in your facebook app and try access your facebook app from facebook. You should end up in your local debugging session.</p>
<p>If you enjoyed this post consider sharing :</p>
<p><script type="text/javascript" class="owbutton" src="http://www.onlywire.com/btn/button_1895"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/07/fb-series-locally-debug-your-php-facebook-app/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
