<?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; php</title>
	<atom:link href="http://www.uebersoftware.com/category/php/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>Website deployments: Plain old Ant</title>
		<link>http://www.uebersoftware.com/2009/10/website-deployments-plain-old-ant/</link>
		<comments>http://www.uebersoftware.com/2009/10/website-deployments-plain-old-ant/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 20:26:29 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web2.0]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[webapps]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/?p=150</guid>
		<description><![CDATA[In the last entry I was mentioning several solutions for managing web site deployments and packaging for php webapps. Since with PHP there is usually no build process already at development time this has often to be established especially for test &#038; production &#8211; and yes there needs to be a build process if you [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://www.uebersoftware.com/2009/10/initialise-external-javascript-in-page-fragments/">last entry</a> I was mentioning several solutions for managing web site deployments and packaging for php webapps. Since with PHP there is usually no build process already at development time this has often to be established especially for test &#038; production &#8211; and yes there needs to be a build process if you do serious php web development.</p>
<p>Despite Sprocket or similar tools I decided to go for the plain old ANT approach. Why? It was the most practical tool, you have full control of what you are doing and the other tools did not quite what I wanted.</p>
<p>One part of this ant solution was to configure production setting in several source files. I rediscovered just how powerful and really simple this great tool is. Once you get used to is configure,combine,pack and deploy your php/js/html/css is a piece of cake:</p>
<p>Here some excerpts<br />
In order to have just one source file I defined some custom preprocessor variables in my various files:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//@@prod@@ $config['base_dir']=&quot;&quot;;</span>
<span style="color: #666666; font-style: italic;">/*@@dev@@*/</span> <span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'base_dir'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Foo/&quot;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!--@@js-dev-start@@ --&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;assets/js/jquery.plugin1.js&quot;&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='assets/js/jquery.plugin2.js'&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;assets/js/jquery.plugin3.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;assets/js/jquery.plugin4.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;assets/js/jquery.plugin5.js&quot;&gt;&lt;/script&gt;
&lt;!-- @@js-dev-end@@ --&gt;
&lt;!-- @@js-prod-start@@ &lt;script type=&quot;text/javascript&quot; src=&quot;assets/js/jsbuild.js&quot;&gt;&lt;/script&gt; @@js-prod-end@@ --&gt;</pre></div></div>

<p>then in ant this looks as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;echo</span> <span style="color: #000066;">message</span>=<span style="color: #ff0000;">&quot;Configuring PHP config for production&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;replaceregexp</span> <span style="color: #000066;">byline</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">flags</span>=<span style="color: #ff0000;">&quot;m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;regexp</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">&quot;^.*@@dev@@.*$&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;substitution</span> <span style="color: #000066;">expression</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fileset</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${build.dir}&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;include</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;php/config/*.php&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fileset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/replaceregexp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> 
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;replaceregexp</span> <span style="color: #000066;">byline</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">flags</span>=<span style="color: #ff0000;">&quot;m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;regexp</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">&quot;^.*@@prod@@(.*)$&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;substitution</span> <span style="color: #000066;">expression</span>=<span style="color: #ff0000;">&quot;\1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fileset</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${build.dir}&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;include</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;php/config/*.php&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fileset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/replaceregexp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>And for the javascript in my php &#8211; view files</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;echo</span> <span style="color: #000066;">message</span>=<span style="color: #ff0000;">&quot;Configuring referenced Javascript for production&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;replaceregexp</span> <span style="color: #000066;">flags</span>=<span style="color: #ff0000;">&quot;sg&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;regexp</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">&quot;@@js-dev-start@@[^\@]*@@js-dev-end@@&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;substitution</span> <span style="color: #000066;">expression</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fileset</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${build.dir}/php/view&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;include</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;**/*.php&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fileset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/replaceregexp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;replaceregexp</span> <span style="color: #000066;">byline</span>=<span style="color: #ff0000;">&quot;true&quot;</span>  <span style="color: #000066;">flags</span>=<span style="color: #ff0000;">&quot;m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;regexp</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">&quot;^.*@@js-prod-start@@(.*)@@js-prod-end@@.*$&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;substitution</span> <span style="color: #000066;">expression</span>=<span style="color: #ff0000;">&quot;\1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fileset</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${build.dir}/php/view&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;include</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;**/*.php&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fileset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/replaceregexp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Applying the concat task for js and css concatenation and apply java to invoke the yuicompressor and you&#8217;re done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/10/website-deployments-plain-old-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discovered Quercus</title>
		<link>http://www.uebersoftware.com/2009/08/discovered-quercus/</link>
		<comments>http://www.uebersoftware.com/2009/08/discovered-quercus/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 21:27:54 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Scalability]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://www.uebersoftware.com/?p=55</guid>
		<description><![CDATA[Scalability, security, pooling, long lived connections , container services in general are all aspects where Java has a lot to offer. PHP on the other side is good for fast development cycles with a low maintenance infrastructure, request response orientend with not so much support for long lived connections, caching etc. 
On one of my [...]]]></description>
			<content:encoded><![CDATA[<p>Scalability, security, pooling, long lived connections , container services in general are all aspects where Java has a lot to offer. PHP on the other side is good for fast development cycles with a low maintenance infrastructure, request response orientend with not so much support for long lived connections, caching etc. </p>
<p>On one of my favorite <a href="http://highscalability.com">sites </a>on scaling you can find out all the tricks how popular SNS and web 2.0 sites overcame the drawbacks of using such a scripting language in the long term, which served them well at the start for a quick front-end result. Why drawbacks? I agree scripting languages are actually a <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">trend</a>, think of Groovy or RoR,  however for a solid backend with good session data handling, distributed caching, management tools, security etc. I would still prefer a compiled language, statically typed, sandboxed with security features, with all the API&#8217;s and services like Java has to offer &#8211; or maybe C#. </p>
<p>So thinking of todays Social Networking Applications, most require a lot of session data a combined solution: scripting in the front-end and the JVM/JEE in the backend would maybe a good solution. The backend might be a messaging layer or business logic layer with domain oriented architecture or something else. </p>
<p>There it comes the guys from Caucho Resin, an appserver I have used actually once for a University project long long time ago, have implemented the complete PHP language in Java! They call it <a href="http://quercus.caucho.com/">Quercus</a> and as of the time of this post its version 3.1. Quercus is deployed as a standard webapp and can be run on any JEE container. A Drupal installation <a href="http://www.workhabit.com/labs/resin-backed-php-drives-4x-performance-improvements-drupal">apparently benefited</a> from a 4x improvements over standard mod_php. However for a fair performance  comparison it has to be compared with op-code caches &#8211; i heard good things about XCache &#8211; (php code compiled and cached), which typically reduces server load and increases the speed of PHP code anywhere from 2-10 times. Also lighthttp maybe faster than apache.</p>
<p>Performance aside, more important to me is actually to test if I can <a href="http://juixe.com/techknow/index.php/2007/10/11/run-php-web-applications-on-the-java-platform/">integrate </a>my php app with my JEE apps and share a Persistence layer /ORM cache as well as clustering aspects with e.g. <a href="http://rifers.org/blogs/gbevin/2007/8/1/clustered_drupal_terracotta">Terracotta</a>. I will defenetly follow up on this with some results of this technology &#8220;mash-up&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uebersoftware.com/2009/08/discovered-quercus/feed/</wfw:commentRss>
		<slash:comments>2</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>
