<?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>Tim Anderson's ITWriting &#187; php</title>
	<atom:link href="http://www.itwriting.com/blog/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.itwriting.com/blog</link>
	<description>Tech writing blog</description>
	<lastBuildDate>Thu, 02 Sep 2010 12:36:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>XML literals come to PHP via Facebook: XHP</title>
		<link>http://www.itwriting.com/blog/2225-xml-literals-comes-to-php-at-facebook-xhp.html</link>
		<comments>http://www.itwriting.com/blog/2225-xml-literals-comes-to-php-at-facebook-xhp.html#comments</comments>
		<pubDate>Wed, 10 Feb 2010 08:19:38 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xhp]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/2225-xml-literals-comes-to-php-at-facebook-xhp.html</guid>
		<description><![CDATA[<p>Facebook engineer Marcel Laverdet has written up the XHP project on which he has been working at Facebook, and which he says is “quickly becoming a cornerstone of front-end PHP development at Facebook”. XHP enables XML fragments to be valid PHP expressions. In addition, most HTML elements have been pre-defined as variables. The project <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/2225-xml-literals-comes-to-php-at-facebook-xhp.html">XML literals come to PHP via Facebook: XHP</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/566-microsoft-discusses-next-gen-msdn-on-facebook.html' rel='bookmark' title='Permanent Link: Microsoft discusses next-gen MSDN &#8230; on Facebook'>Microsoft discusses next-gen MSDN &#8230; on Facebook</a></li>
<li><a href='http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html' rel='bookmark' title='Permanent Link: Salesforce.com linking with Facebook, Amazon'>Salesforce.com linking with Facebook, Amazon</a></li>
<li><a href='http://www.itwriting.com/blog/1314-flash-library-for-facebook-silverlight-library-for-myspace.html' rel='bookmark' title='Permanent Link: Flash library for Facebook, Silverlight library for MySpace'>Flash library for Facebook, Silverlight library for MySpace</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Facebook engineer Marcel Laverdet has <a href="http://www.facebook.com/notes/facebook-engineering/xhp-a-new-way-to-write-php/294003943919">written up</a> the XHP project on which he has been working at Facebook, and which he says is “quickly becoming a cornerstone of front-end PHP development at Facebook”. XHP enables XML fragments to be valid PHP expressions. In addition, most HTML elements have been pre-defined as variables. The project is hosted on github and you can read a <a href="http://wiki.github.com/facebook/xhp/">quick summary here</a>. PHP inventor Rasmus Lerdorf has had a <a href="http://toys.lerdorf.com/archives/54-A-quick-look-at-XHP.html">quick look</a> and says:</p>
<blockquote><p>The main interest, at least to me, is that because PHP now understands the XML it is outputting, filtering can be done in a context-sensitive manner. The <a href="http://php.net/filter">input filtering</a> built into PHP can not know which context a string is going to be used in. If you use a string inside an on-handler or a style attribute, for example, you need radically different filtering from it being used as regular XML PCDATA in the html body. Some will say this form is more readable as well, but that isn&#8217;t something that concerns me very much.</p>
</blockquote>
<p>Lerdorf goes on to express concern about performance, but says that in combination with <a href="http://pecl.php.net/package/APC">APC</a> caching it is much better, and with <a href="http://wiki.github.com/facebook/hiphop-php/">HipHop</a> compilation to native code becomes “a viable approach”.</p>
<p>One of the benefits here is that getting XML markup out of quoted strings means that it can be checked as it is parsed, so that errors are caught earlier. There are parallels with Microsoft’s work on <a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx">Linq</a> (Language Integrated Query) which pulls database queries into the language, and <a href="http://msdn.microsoft.com/en-us/library/bb687701.aspx">XML literals in Visual Basic 9.0</a>. Ideally, developers should not have to hide code such as SQL, XML or Javascript within strings that are not checked for valid syntax until runtime.</p>
<p>This might also re-ignite the <a href="http://www.infoq.com/news/2007/03/CSharp-XML">debate</a> <a href="http://iqueryable.com/CommentView,guid,a40f0be3-a9e4-4b3c-9adb-dd66a8b91a27.aspx">about</a> <a href="http://logicaloptimizer.blogspot.com/2009/05/problem-with-c-40.html">whether</a> XML literals should be in C#, now also gaining more attention because of the popularity of ASP.NET MVC.</p>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/566-microsoft-discusses-next-gen-msdn-on-facebook.html' rel='bookmark' title='Permanent Link: Microsoft discusses next-gen MSDN &#8230; on Facebook'>Microsoft discusses next-gen MSDN &#8230; on Facebook</a></li>
<li><a href='http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html' rel='bookmark' title='Permanent Link: Salesforce.com linking with Facebook, Amazon'>Salesforce.com linking with Facebook, Amazon</a></li>
<li><a href='http://www.itwriting.com/blog/1314-flash-library-for-facebook-silverlight-library-for-myspace.html' rel='bookmark' title='Permanent Link: Flash library for Facebook, Silverlight library for MySpace'>Flash library for Facebook, Silverlight library for MySpace</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/2225-xml-literals-comes-to-php-at-facebook-xhp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Zend really the PHP company?</title>
		<link>http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html</link>
		<comments>http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html#comments</comments>
		<pubDate>Sat, 09 May 2009 08:52:00 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[microsoft]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web authoring]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html</guid>
		<description><![CDATA[<p>I’m at Yahoo! Hack day in London – not hacking, but here for sessions on topics such as YUI (Yahoo! User Interface Library) and PHP.</p> <p>I had a brief chat with Rasmus Lerdorf who is speaking later. I asked him about Zend, which presents itself as the PHP company (that is actually the slogan <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html">Is Zend really the PHP company?</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html' rel='bookmark' title='Permanent Link: Zend PHP Framework adds support for Adobe Flex, AMF'>Zend PHP Framework adds support for Adobe Flex, AMF</a></li>
<li><a href='http://www.itwriting.com/blog/283-php-zend-framework-will-go-visual.html' rel='bookmark' title='Permanent Link: PHP Zend Framework will go visual'>PHP Zend Framework will go visual</a></li>
<li><a href='http://www.itwriting.com/blog/540-steve-ballmer-post-yahoo-we-will-be-a-php-shop.html' rel='bookmark' title='Permanent Link: Steve Ballmer: post Yahoo, we will be a PHP shop'>Steve Ballmer: post Yahoo, we will be a PHP shop</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I’m at Yahoo! Hack day in London – not hacking, but here for sessions on topics such as <a href="http://developer.yahoo.com/yui/">YUI</a> (Yahoo! User Interface Library) and PHP.</p>
<p>I had a brief chat with <a href="http://lerdorf.com/bio.php">Rasmus Lerdorf</a> who is speaking later. I asked him about <a href="http://www.zend.com">Zend</a>, which presents itself as the PHP company (that is actually the slogan on its web site). Is it really?</p>
<p>Lerdorf says Zend has no special status. While acknowledging its contribution, he says there are 1300 PHP <a href="http://www.php.net/cvs-php.php" target="_blank">committers</a>, and only 6 work for Zend. He emphasises that PHP is a community project and that decisions are made by consensus, influenced by who is actually willing to write the code, not by Zend or any company.</p>
<p>I also asked about <a href="http://www.eclipse.org/pdt/">PDT</a> (PHP Development Tools), the Eclipse-based open source IDE. Lerdorf says there are lots of PHP IDEs, and people who use generic editors for PHP, and none has any more status than any other; he doesn’t use PDT.</p>
<p>From my perspective as press, there are only two organizations who ever encourage me to write about PHP. One is Zend; the other is Microsoft, keen to establish Windows as a credible PHP platform (Lerdorf says PHP on Windows has made enormous progress in the last couple of years). Zend does seem to do more than any other company to promote PHP for commercial and corporate development.</p>
<p>Lerdorf is not surprised. We’re developers, he says, we don’t do PR.</p>
<p>Zend’s effort is broadly beneficial to the PHP community – provided that it does not give a false impression of who owns PHP.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:545a1240-1cd7-48fe-8f8a-e094954334f8" class="wlWriterSmartContent">Technorati Tags: <a href="http://technorati.com/tags/php" rel="tag">php</a>,<a href="http://technorati.com/tags/zend" rel="tag">zend</a>,<a href="http://technorati.com/tags/yahoo+hack+day" rel="tag">yahoo hack day</a>,<a href="http://technorati.com/tags/rasmus+lerdorf" rel="tag">rasmus lerdorf</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html' rel='bookmark' title='Permanent Link: Zend PHP Framework adds support for Adobe Flex, AMF'>Zend PHP Framework adds support for Adobe Flex, AMF</a></li>
<li><a href='http://www.itwriting.com/blog/283-php-zend-framework-will-go-visual.html' rel='bookmark' title='Permanent Link: PHP Zend Framework will go visual'>PHP Zend Framework will go visual</a></li>
<li><a href='http://www.itwriting.com/blog/540-steve-ballmer-post-yahoo-we-will-be-a-php-shop.html' rel='bookmark' title='Permanent Link: Steve Ballmer: post Yahoo, we will be a PHP shop'>Steve Ballmer: post Yahoo, we will be a PHP shop</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Microsoft Expression Web causes PHP error</title>
		<link>http://www.itwriting.com/blog/1179-microsoft-expression-web-causes-php-error.html</link>
		<comments>http://www.itwriting.com/blog/1179-microsoft-expression-web-causes-php-error.html#comments</comments>
		<pubDate>Fri, 23 Jan 2009 19:19:31 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web authoring]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/1179-microsoft-expression-web-causes-php-error.html</guid>
		<description><![CDATA[<p>I ran into a strange and surprising PHP error today. I’m working on a little PHP application which has a login page. The login script calls session_start() to start or resume a PHP session. It was working OK so I decided to decorate the page a little (I was working in Eclipse). I like <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/1179-microsoft-expression-web-causes-php-error.html">Microsoft Expression Web causes PHP error</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/320-microsoft-to-support-php-in-expression-web-20.html' rel='bookmark' title='Permanent Link: Microsoft to support PHP in Expression Web 2.0'>Microsoft to support PHP in Expression Web 2.0</a></li>
<li><a href='http://www.itwriting.com/blog/2492-microsoft-expression-blend-is-too-hard-to-learn.html' rel='bookmark' title='Permanent Link: Microsoft Expression Blend is too hard to learn'>Microsoft Expression Blend is too hard to learn</a></li>
<li><a href='http://www.itwriting.com/blog/667-expression-blend-25-problems-with-silverlight-20-beta-2.html' rel='bookmark' title='Permanent Link: Expression Blend 2.5 problems with Silverlight 2.0 Beta 2'>Expression Blend 2.5 problems with Silverlight 2.0 Beta 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I ran into a strange and surprising PHP error today. I’m working on a little PHP application which has a login page. The login script calls session_start() to start or resume a PHP session. It was working OK so I decided to decorate the page a little (I was working in Eclipse). I like to try a variety of tools, so I ran up Microsoft’s Expression Web, added an image, then re-ran the script to see how it looked.</p>
<p>The answer was not good, because I now had an error:</p>
<p><img src="http://www.itwriting.com/images/php-error.gif" /> </p>
<blockquote><p>Warning: session_start(): Cannot send session cookie – headers already sent</p>
</blockquote>
<p>I puzzled over this for some time. The error was in line 0 of my login page. I couldn’t see anything that was different from before, except the static image that meant nothing to PHP.</p>
<p>Eventually I worked it out. Eclipse (running on Windows) created the PHP files using ANSI. On saving, Expression Web silently changed them to UTF-8. That in itself was no bad thing – it’s usually a better choice – though I reckon it should ask. The bigger problem was that Expression also added a BOM (byte order mark) to the beginning of the file. This is actually optional for UTF-8, and most non-Windows editors do not add it. It happens to flummox PHP, which interprets them who-knows-how and sends some output to the browser, preventing session_start from working.</p>
<p>This is particularly painful to debug since most editors do not display the BOM; they simply use it to confirm the character set in use. So you can have file A which works, and file B which does not, and they are character-by-character identical.</p>
<p>One way to see and remove the BOM is to open it with Edit.com, which does not understand it at all:</p>
<p><img src="http://www.itwriting.com/images/bom.gif" /> </p>
</p>
<p>I guess both Expression and PHP could do better here. The bit that puzzles me is that I can’t be the first to run into this. Doesn’t Microsoft know that its UTF-8 BOM breaks PHP files, at least on the two versions I tried (<a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> on Windows and PHP 5.2.1 on Linux)? I can’t even see a preference in Expression that would prevent it being written. And if you remove it, and then re-edit in Expression, it carefully writes it back. Unlike Adobe’s Dreamweaver, which leaves well alone.</p>
<p>PS if you want to know all about BOMs, <a href="http://unicode.org/faq/utf_bom.html" target="_blank">see here</a>.</p>
<p><strong>Update</strong>: See comments – apparently this was fixed in Expression Web 2.0. Tina Clarke discusses the problem <a href="http://any-expression.com/expression-web/tutorials/authoring-tab.htm" target="_blank">here</a>.</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ca25c5c1-1559-4141-960c-ebfb74a2b140" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/php" rel="tag">php</a>, <a href="http://technorati.com/tags/bom" rel="tag">bom</a>, <a href="http://technorati.com/tags/unicode" rel="tag">unicode</a>, <a href="http://technorati.com/tags/utf-8" rel="tag">utf-8</a>, <a href="http://technorati.com/tags/microsoft+expression+web" rel="tag">microsoft expression web</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/320-microsoft-to-support-php-in-expression-web-20.html' rel='bookmark' title='Permanent Link: Microsoft to support PHP in Expression Web 2.0'>Microsoft to support PHP in Expression Web 2.0</a></li>
<li><a href='http://www.itwriting.com/blog/2492-microsoft-expression-blend-is-too-hard-to-learn.html' rel='bookmark' title='Permanent Link: Microsoft Expression Blend is too hard to learn'>Microsoft Expression Blend is too hard to learn</a></li>
<li><a href='http://www.itwriting.com/blog/667-expression-blend-25-problems-with-silverlight-20-beta-2.html' rel='bookmark' title='Permanent Link: Expression Blend 2.5 problems with Silverlight 2.0 Beta 2'>Expression Blend 2.5 problems with Silverlight 2.0 Beta 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/1179-microsoft-expression-web-causes-php-error.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Salesforce.com linking with Facebook, Amazon</title>
		<link>http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html</link>
		<comments>http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html#comments</comments>
		<pubDate>Mon, 03 Nov 2008 19:04:33 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[amazon]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[salesforce.com]]></category>
		<category><![CDATA[web authoring]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html</guid>
		<description><![CDATA[<p>I&#8217;m at the Dreamforce conference in San Francisco, where Marc Benioff, CEO of Salesforce.com, and co-founder Parker Harris, are presenting new features in the force.com platform.</p> <p>The first is a built-in ability to publish your Force.com data as a public web site. The service is currently in &#8220;developer preview&#8221; and set for full release <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html">Salesforce.com linking with Facebook, Amazon</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/1908-salesforce-com-partners-with-adobe-for-flash-builder-for-force-com.html' rel='bookmark' title='Permanent Link: Salesforce.com partners with Adobe for Flash Builder for Force.com'>Salesforce.com partners with Adobe for Flash Builder for Force.com</a></li>
<li><a href='http://www.itwriting.com/blog/570-amazon-ebay-facebook-the-risk-of-building-your-business-on-a-third-party-platform.html' rel='bookmark' title='Permanent Link: Amazon, eBay, FaceBook: the risk of building your business on a third-party platform'>Amazon, eBay, FaceBook: the risk of building your business on a third-party platform</a></li>
<li><a href='http://www.itwriting.com/blog/350-facebook-comet-fireeagle-at-future-of-web-apps.html' rel='bookmark' title='Permanent Link: Facebook, Comet, FireEagle at Future of Web Apps'>Facebook, Comet, FireEagle at Future of Web Apps</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at the <a href="http://www.salesforce.com/dreamforce/DF08/" target="_blank">Dreamforce</a> conference in San Francisco, where Marc Benioff, CEO of Salesforce.com, and co-founder Parker Harris, are presenting new features in the force.com platform.</p>
<p>The first is a built-in ability to publish your Force.com data as a public web site. The service is currently in &#8220;developer preview&#8221; and set for full release in 2009. Even in preview, it&#8217;s priced per page view on your site. For example, if you have the low-end Group Edition, you get 50,000 page views free; but if you exceed that limit, you pay $1000 per month for up to 1,000,000 further page views. It would be unfortunate if you had 50,001 page views one month.</p>
<p>The second announcement relates to Facebook integration. This is a set of tools and services that lets you use Facebook APIs within a Force.com application, and create Facebook applications that use force.com data. Sheryl Sandberg, Facebook COO, says this is &#8220;Enterprise meets social&#8221;. The problem: Facebook is consumer-focused, more play than work. Sandberg says this deal will launch Facebook into the Enterprise. This will be an interesting one to watch.</p>
<p>Third, there are new tools linking Force.com with Amazon&#8217;s S3 and EC2. Tools for S3 wrap Amazon&#8217;s API with Apex code (Apex is the language of Force.com) so you can easily add unlimited storage to your Force.com application. Tools for EC2 delivers pre-built Amazon Virtual Machines (AMIs) that have libraries for accessing Force.com data and applications. The first AMI is for PHP, and simplifies the business of building a PHP application that extends a Force.com solution.</p>
<p>Interesting that Salesforce.com is providing two new ways to build public web sites that link to Force.com &#8211; one on its own platform, the other using PHP and in future Ruby, Java (I presume) etc.</p>
<p>It&#8217;s worth noting that you could already do this by using the SOAP API for Force.com, and there are already wrappers for languages including PHP. This is mainly about simplifying what you could already do.</p>
<p>More information is at <a href="http://developer.force.com/" target="_blank">developer.force.com</a>.</p>
<p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5ee312d4-6cbd-467f-966d-f1248dabc19d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/facebook" rel="tag">facebook</a>, <a href="http://technorati.com/tags/salesforce.com" rel="tag">salesforce.com</a>, <a href="http://technorati.com/tags/dreamforce" rel="tag">dreamforce</a>, <a href="http://technorati.com/tags/marc%20benioff" rel="tag">marc benioff</a>, <a href="http://technorati.com/tags/amazon" rel="tag">amazon</a></div></p>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/1908-salesforce-com-partners-with-adobe-for-flash-builder-for-force-com.html' rel='bookmark' title='Permanent Link: Salesforce.com partners with Adobe for Flash Builder for Force.com'>Salesforce.com partners with Adobe for Flash Builder for Force.com</a></li>
<li><a href='http://www.itwriting.com/blog/570-amazon-ebay-facebook-the-risk-of-building-your-business-on-a-third-party-platform.html' rel='bookmark' title='Permanent Link: Amazon, eBay, FaceBook: the risk of building your business on a third-party platform'>Amazon, eBay, FaceBook: the risk of building your business on a third-party platform</a></li>
<li><a href='http://www.itwriting.com/blog/350-facebook-comet-fireeagle-at-future-of-web-apps.html' rel='bookmark' title='Permanent Link: Facebook, Comet, FireEagle at Future of Web Apps'>Facebook, Comet, FireEagle at Future of Web Apps</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/1024-salesforcecom-linking-with-facebook-amazon.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When will PHP Developer Tools be mainstream at Eclipse?</title>
		<link>http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html</link>
		<comments>http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html#comments</comments>
		<pubDate>Tue, 21 Oct 2008 07:35:26 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html</guid>
		<description><![CDATA[<p>I’ve been doing a little PHP work and enjoying it; I like PHP 5.x much better than earlier versions. My PHP development setup is based on Eclipse and the PHP Developer Tools project, or PDT, and one thing I noticed when I set this up is that it is awkward to use PDT with <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html">When will PHP Developer Tools be mainstream at Eclipse?</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/1128-php-development-tools-20-released-joins-official-eclipse-galileo-release.html' rel='bookmark' title='Permanent Link: PHP Development Tools 2.0 released, joins official Eclipse &ldquo;Galileo&rdquo; release'>PHP Development Tools 2.0 released, joins official Eclipse &ldquo;Galileo&rdquo; release</a></li>
<li><a href='http://www.itwriting.com/blog/1536-survey-ranks-developer-tools-and-reveals-what-developers-care-about-most.html' rel='bookmark' title='Permanent Link: Survey ranks developer tools, and reveals what developers care about most'>Survey ranks developer tools, and reveals what developers care about most</a></li>
<li><a href='http://www.itwriting.com/blog/977-silverlight-20-is-released-eclipse-tools-for-silverlight-announced.html' rel='bookmark' title='Permanent Link: Silverlight 2.0 is released, Eclipse tools for Silverlight announced'>Silverlight 2.0 is released, Eclipse tools for Silverlight announced</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I’ve been doing a little PHP work and enjoying it; I like PHP 5.x much better than earlier versions. My PHP development setup is based on Eclipse and the <a href="http://www.eclipse.org/pdt/">PHP Developer Tools project</a>, or PDT, and one thing I <a href="http://www.itwriting.com/blog/714-debugging-php-code-to-fix-a-wordpress-problem.html">noticed</a> when I set this up is that it is awkward to use PDT with Eclipse 3.4, or <a href="http://www.eclipse.org/ganymede/">Ganymede</a>. I ran into problems again when I updated my Ganymede Eclipse to the latest releases, this time on Windows as it happens. PDT stopped working, and I had to <a href="http://www.eclipse.org/pdt/downloads/">download</a> a newer “integration build” of PDT as well as an update to the Eclipse <a href="http://www.eclipse.org/dltk/">Dynamic Languages Toolkit</a> (DLTK), using a manual download and import process instead of the built-in Eclipse online update. I also had to remove the Ruby Development Tools as these relied on an earlier version of the DLTK; there might be a way round this but my priority was to get PDT working. </p>
<p>I’m getting this pain because I want to use PDT 2.0 and Eclipse3.4, instead of the older PDT 1.0.3 which has an all-in-one download based on Eclipse 3.3. “All-in-one” means that you download a bundle which includes both Eclipse and PDT, and treat it as a separate standalone IDE. The question though: why wasn’t the PDT properly integrated with Ganymede, which brings together multiple Eclipse projects with the promise that they will all work together? </p>
<p>I looked in the Eclipse PDT newsgroup and found some discussion on the subject. Apparently the PDT team felt it was just too difficult to manage the dependencies. More depressing is that apparently the team feels the same way about Galileo, the follow-up to Ganymede expected in June 2009. It means that the PDT stays outside the mainstream of Eclipse projects, reducing its visibility.</p>
<p>Conspiracy theorists might surmise that major PDT contributors like <a href="http://www.zend.com/en/">Zend</a>, which has its own commercial IDE called <a href="http://www.zend.com/en/products/studio/">Zend Studio</a> which uses both Eclipse and PDT, might enjoy keeping the free version low-profile. That (or some other reason) might also explain why Zend Studio uses a 1.x version of PDT along with Eclipse 3.4, which is not meant to work. It turns out that Zend Studio uses PDT 1.0.5, whereas the latest public download (unless you go directly to the source) is 1.0.3. If 1.05 works fine with Eclipse 3.4, why isn’t the public all-in-one based on this combination?</p>
<p>I like the PDT, and my patched together Ganymede + PDT 2.x works very well. Debugging seems more stable since I updated it. Personally I’d like to see PDT get more prominence within the Eclipse community, and for it to be packaged as part of Galileo rather than being left on the sidelines.</p>
<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fe561a11-b5b4-46af-b8e4-63d0b4df7d53" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/php" rel="tag">php</a>, <a href="http://technorati.com/tags/pdt" rel="tag">pdt</a>, <a href="http://technorati.com/tags/eclipse" rel="tag">eclipse</a>, <a href="http://technorati.com/tags/zend" rel="tag">zend</a>, <a href="http://technorati.com/tags/open+source" rel="tag">open source</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/1128-php-development-tools-20-released-joins-official-eclipse-galileo-release.html' rel='bookmark' title='Permanent Link: PHP Development Tools 2.0 released, joins official Eclipse &ldquo;Galileo&rdquo; release'>PHP Development Tools 2.0 released, joins official Eclipse &ldquo;Galileo&rdquo; release</a></li>
<li><a href='http://www.itwriting.com/blog/1536-survey-ranks-developer-tools-and-reveals-what-developers-care-about-most.html' rel='bookmark' title='Permanent Link: Survey ranks developer tools, and reveals what developers care about most'>Survey ranks developer tools, and reveals what developers care about most</a></li>
<li><a href='http://www.itwriting.com/blog/977-silverlight-20-is-released-eclipse-tools-for-silverlight-announced.html' rel='bookmark' title='Permanent Link: Silverlight 2.0 is released, Eclipse tools for Silverlight announced'>Silverlight 2.0 is released, Eclipse tools for Silverlight announced</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Future of Web Apps 2008 Day One: Web is DVD, desktop VHS</title>
		<link>http://www.itwriting.com/blog/969-future-of-web-apps-2008-day-one-web-is-dvd-desktop-vhs.html</link>
		<comments>http://www.itwriting.com/blog/969-future-of-web-apps-2008-day-one-web-is-dvd-desktop-vhs.html#comments</comments>
		<pubDate>Fri, 10 Oct 2008 08:57:40 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web authoring]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/969-future-of-web-apps-2008-day-one-web-is-dvd-desktop-vhs.html</guid>
		<description><![CDATA[<p>I&#8217;m at London&#8217;s dreary Excel centre for Carson&#8217;s Future of Web Apps conference, just before the opening of day two. Yesterday was a mixed bag; good when speakers talk technical; bad when they descend into marketing. The origins of the conference are as a start-up incubator; developers and entrepreneurs getting together to see what&#8217;s <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/969-future-of-web-apps-2008-day-one-web-is-dvd-desktop-vhs.html">Future of Web Apps 2008 Day One: Web is DVD, desktop VHS</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/135-notes-on-the-future-of-web-apps.html' rel='bookmark' title='Permanent Link: Notes on the Future of Web Apps'>Notes on the Future of Web Apps</a></li>
<li><a href='http://www.itwriting.com/blog/1830-future-of-web-apps-cheers-the-independent-web.html' rel='bookmark' title='Permanent Link: Future of Web Apps cheers the independent Web'>Future of Web Apps cheers the independent Web</a></li>
<li><a href='http://www.itwriting.com/blog/343-web-identity-facebook-iphone-debated-at-future-of-web-apps-conference.html' rel='bookmark' title='Permanent Link: Web identity, Facebook, iPhone debated at Future of Web Apps conference'>Web identity, Facebook, iPhone debated at Future of Web Apps conference</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at London&#8217;s dreary Excel centre for Carson&#8217;s <a href="http://london2008.futureofwebapps.com/" target="_blank">Future of Web Apps</a> conference, just before the opening of day two. Yesterday was a mixed bag; good when speakers talk technical; bad when they descend into marketing. The origins of the conference are as a start-up incubator; developers and entrepreneurs getting together to see what&#8217;s new and make contacts. It still has some of that flavour, but it has grown beyond that because web apps are a mainstream topic and Carson attracts generally excellent speakers. There is a good crowd here; I&#8217;m not sure if every last ticket sold, but it is pretty much packed out, though the dark economic mood is dampening spirits.</p>
<p><a href="http://www.digg.com" target="_blank">Digg&#8217;s</a> Kevin Rose spoke briefly about his site&#8217;s new recommendation engine, which has been active since July or so. The idea is that Digg learns a user&#8217;s profile by examining clicks and votes, using it to customize what the user sees. He spoke about a forthcoming feature, where third-party sites will be able to call the Digg recommendation engine to get profile information that it can then use to customize its own site.</p>
<p>An interesting idea; though it raises several questions. How does it work &#8211; would logging out of Digg be sufficient to disable it? Will users opt-out or opt-in? How much of this kind of customization do we want anyway?</p>
<p>This whole theme of contextualization is a big one here; it ties in closely with social networking, and Google&#8217;s OpenSocial API is getting quite a bit of attention.</p>
<p>Blaine Cook (ex Twitter now Yahoo, Ruby guy and inventor of OAuth) gave a though-provoking session on scalability along with Joe Stump from Digg (and a PHP guy). They took the line that languages don&#8217;t matter &#8211; partly a reflection on Twitter&#8217;s scaling problems and whether it was Ruby&#8217;s fault. Other factors make language efficiency unimportant, they said, such as disk I/O and network speed; and the secret of scaling is multiple and redundant cheap boxes and apps which are segmented so that no one box&#160; is a bottleneck. The case was overstated but the main points strike me as sound.</p>
<p>I&#8217;m wondering how many of the developers here are actually having to deal with these kinds of scalability problems. Many web apps get only light use; the problems for everyday developers are different.</p>
<p>I attended a session entitled &quot;The future of Enterprise Web Apps&quot; by Googler Kevin Marks. It turned out to be a plug for the <a href="http://code.google.com/apis/opensocial/" target="_blank">OpenSocial</a> API; not what I was expecting.</p>
<p>Francisco Tolmasky of <a href="http://280slides.com/" target="_blank">280slides.com</a> evangelised his Objective-J and Cappucino JavaScript framework, based loosely on Apple&#8217;s Cocoa framework. Hmm, bit like <a href="http://www.sproutcore.com/" target="_blank">SproutCore</a>.</p>
<p>I give Tolmasky credit for the most striking analogy of the day. The Web is DVD is says, and the desktop VHS. Adobe&#8217;s AIR is a combo player. He is talking about transition and leaving us in no doubt about what he sees is the future of the desktop.</p>
<p>Best sessions of the day (that I attended) were Blaine Cook on Jabber and its XMPP protocol, and David Recordon from <a href="http://www.sixapart.com/" target="_blank">SixApart</a> on the evolving Internet &quot;open stack&quot;. In this he includes:</p>
<ul>
<li>OpenID + hCard for identity </li>
<li>XRDS-Simple for discovery (<a href="http://is.gd/3M53) ">http://is.gd/3M53) </a></li>
<li>OAuth for authentication </li>
<li>ATOM and POCO&#160; ( or PorC) &#8211; Portable contacts) </li>
<li>OpenSocial </li>
</ul>
<p>I put these two sessions together because they both addressed the &quot;Web as platform&quot; topic that is really the heart of why we are here. Spotting which APIs and protocols will win is tricky; but if consensus is reached on some or all of these, they will impact all web developers and bring new coherence to what we are doing.</p>
<p>I&#8217;ll be covering today on Twitter again &#8211; see <a href="http://www.twitter.com/timanderson" target="_blank">here</a> if you want to follow.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4d6354e1-77c6-4545-b35f-684f7607a3ff" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/fowa%202008%20london" rel="tag">fowa 2008 london</a>, <a href="http://technorati.com/tags/google" rel="tag">google</a>, <a href="http://technorati.com/tags/openid" rel="tag">openid</a>, <a href="http://technorati.com/tags/sixapart" rel="tag">sixapart</a>, <a href="http://technorati.com/tags/web%20development" rel="tag">web development</a>, <a href="http://technorati.com/tags/oauth" rel="tag">oauth</a>, <a href="http://technorati.com/tags/sproutcore" rel="tag">sproutcore</a>, <a href="http://technorati.com/tags/capuccino" rel="tag">capuccino</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/135-notes-on-the-future-of-web-apps.html' rel='bookmark' title='Permanent Link: Notes on the Future of Web Apps'>Notes on the Future of Web Apps</a></li>
<li><a href='http://www.itwriting.com/blog/1830-future-of-web-apps-cheers-the-independent-web.html' rel='bookmark' title='Permanent Link: Future of Web Apps cheers the independent Web'>Future of Web Apps cheers the independent Web</a></li>
<li><a href='http://www.itwriting.com/blog/343-web-identity-facebook-iphone-debated-at-future-of-web-apps-conference.html' rel='bookmark' title='Permanent Link: Web identity, Facebook, iPhone debated at Future of Web Apps conference'>Web identity, Facebook, iPhone debated at Future of Web Apps conference</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/969-future-of-web-apps-2008-day-one-web-is-dvd-desktop-vhs.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend PHP Framework adds support for Adobe Flex, AMF</title>
		<link>http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html</link>
		<comments>http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html#comments</comments>
		<pubDate>Tue, 16 Sep 2008 16:16:34 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web authoring]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html</guid>
		<description><![CDATA[<p>The PHP company Zend has announced a collaboration with Adobe to integrate AMF (Action Message Format) into the Zend Framework. AMF is an efficient binary format which is more efficient for transmitting data than text-based formats like XML or JSON. Zend and Adobe are also collaborating to improve their tools for work with applications <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html">Zend PHP Framework adds support for Adobe Flex, AMF</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/283-php-zend-framework-will-go-visual.html' rel='bookmark' title='Permanent Link: PHP Zend Framework will go visual'>PHP Zend Framework will go visual</a></li>
<li><a href='http://www.itwriting.com/blog/164-salesforcecom-hints-at-adobe-flex-support.html' rel='bookmark' title='Permanent Link: Salesforce.com hints at Adobe Flex support'>Salesforce.com hints at Adobe Flex support</a></li>
<li><a href='http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html' rel='bookmark' title='Permanent Link: Is Zend really the PHP company?'>Is Zend really the PHP company?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The PHP company <a href="http://www.zend.com" target="_blank">Zend</a> has announced a collaboration with Adobe to integrate AMF (Action Message Format) into the Zend Framework. AMF is an efficient binary format which is more efficient for transmitting data than text-based formats like XML or JSON. Zend and Adobe are also collaborating to improve their tools for work with applications that use PHP on the server and Flex or AIR on the client.</p>
<p>More info <a href="http://www.zend.com/en/company/news/Press/zend-to-collaborate-with-adobe" target="_blank">here</a>.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f6821082-bc6c-44d5-bf5a-ae6832e407de" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/zend" rel="tag">zend</a>, <a href="http://technorati.com/tags/adobe" rel="tag">adobe</a>, <a href="http://technorati.com/tags/flex" rel="tag">flex</a>, <a href="http://technorati.com/tags/air" rel="tag">air</a>, <a href="http://technorati.com/tags/amf" rel="tag">amf</a>, <a href="http://technorati.com/tags/php" rel="tag">php</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/283-php-zend-framework-will-go-visual.html' rel='bookmark' title='Permanent Link: PHP Zend Framework will go visual'>PHP Zend Framework will go visual</a></li>
<li><a href='http://www.itwriting.com/blog/164-salesforcecom-hints-at-adobe-flex-support.html' rel='bookmark' title='Permanent Link: Salesforce.com hints at Adobe Flex support'>Salesforce.com hints at Adobe Flex support</a></li>
<li><a href='http://www.itwriting.com/blog/1419-is-zend-really-the-php-company.html' rel='bookmark' title='Permanent Link: Is Zend really the PHP company?'>Is Zend really the PHP company?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/899-zend-php-framework-adds-support-for-adobe-flex-amf.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging PHP code to fix a WordPress problem</title>
		<link>http://www.itwriting.com/blog/714-debugging-php-code-to-fix-a-wordpress-problem.html</link>
		<comments>http://www.itwriting.com/blog/714-debugging-php-code-to-fix-a-wordpress-problem.html#comments</comments>
		<pubDate>Wed, 09 Jul 2008 15:48:18 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[web authoring]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/714-debugging-php-code-to-fix-a-wordpress-problem.html</guid>
		<description><![CDATA[<p>How do you debug a PHP application? Traditionally developers resort to outputting variable values to HTML, or peering through logs, but why not set breakpoints and step through code just as you would in C# or Java? Maybe because it can take some effort to set this up, as I was reminded today. </p> <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/714-debugging-php-code-to-fix-a-wordpress-problem.html">Debugging PHP code to fix a WordPress problem</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html' rel='bookmark' title='Permanent Link: When will PHP Developer Tools be mainstream at Eclipse?'>When will PHP Developer Tools be mainstream at Eclipse?</a></li>
<li><a href='http://www.itwriting.com/blog/704-wordpress-permalinks-broke-my-rss-feed.html' rel='bookmark' title='Permanent Link: WordPress permalinks broke my RSS feed'>WordPress permalinks broke my RSS feed</a></li>
<li><a href='http://www.itwriting.com/blog/14-moving-to-wordpress.html' rel='bookmark' title='Permanent Link: Moving to WordPress without breaking links'>Moving to WordPress without breaking links</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>How do you debug a PHP application? Traditionally developers resort to outputting variable values to HTML, or peering through logs, but why not set breakpoints and step through code just as you would in C# or Java? Maybe because it can take some effort to set this up, as I was reminded today. </p>
<p>I was motivated by an annoying WordPress problem which I&#8217;ve blogged about before. For historical reasons, I have a lot of subscribers to an old RSS url which delivers the feed in the now deprecated RSS 0.92 format. I prefer to have a full text feed, and this used to work fine with WordPress, which placed the entire blog post in the <description>element of the feed.</p>
<p>At some point this stopped working, and subscribers got a summary only. In fact, the feed broke completely for a while, after I switched to pretty permalinks; but even after fixing that, I still had the problem with summary items. I tried upping the length of the description, but it was delivered without any HTML formatting so that did not work.</p>
<p>Next I tried the <a href="http://wordpress.org/support/">WordPress support forums</a>. There are lots of good folk there; but if you review the posts its clear that many queries go unanswered. That’s nobody’s fault; it is a community, and for whatever reason there seem to be more people seeking help than there are experts with the time to give free advice.</p>
<p>So how about debugging the PHP code and working out what was happening? It seemed a good opportunity to try the latest <a href="http://www.eclipse.org/ganymede">Eclipse Ganymede</a>, released a couple of weeks ago, along with the <a href="http://www.eclipse.org/projects/project_summary.php?projectid=tools.pdt">PHP Development Tools</a> (PDT). I also figured it would be easier to set this up on Linux, to match what I use on the web server. I used the same Ubuntu on VirtualBox setup that worked well for <a href="http://www.itwriting.com/blog/681-installing-sproutcore-on-ubuntu-on-virtualbox.html">trying out SproutCore</a>. It worked&#8230;</p>
<p><a href="http://www.itwriting.com/images/php_debugging_full.gif"><img title="Debugging PHP with Eclipse Ganymede" alt="Debugging PHP with Eclipse Ganymede" src="http://www.itwriting.com/images/php_debugging_small.gif" /></a> </p>
<p>&#8230;but I can’t pretend it was wholly straightforward. Here’s how it went. I installed the latest Ubuntu distro versions of Apache, MySql and PHP – easy. Ubuntu’s Eclipse is not the latest, so I downloaded it from the <a href="http://www.eclipse.org">Eclipse site</a> and used <a href="http://flurdy.com/docs/eclipse/install.html">some tips</a> to set it up tidily. Note: make sure Sun Java is installed; I set it as the default JVM. Adding the PHP development tools was more fiddly. I’d half expected this to be part of a standard Eclipse download by now, but it is not, and if you try to install it into Ganymede using the standard update site is does not work because of dependency issues (a big problem with Eclipse). You have to download a 2.0.0 build <a href="http://download.eclipse.org/tools/pdt/downloads/index.php">from here</a> instead.</p>
<p>I’d decided to use the Zend debugger – that’s a separate Eclipse update too, as explained <a href="http://divby0.blogspot.com/2007/08/pdt-php-debugging-w-zend.html">here</a>. Note that even after updating Eclipse, you still have to install the separate Zend debugger server from <a href="http://downloads.zend.com/pdt/server-debugger/">here</a>, if you want to debug real web applications. I had a few problems getting this working, mainly because of the <strong>zend_debugger.allow_hosts</strong> directive which you have to edit in php.ini, and which is not brilliantly documented.</p>
<p>I replicated my blog on the Ubuntu virtual box – easy. But how do you get your Eclipse PHP project pointing at this existing code? The method I settled on after a couple of experiments was to start a new PHP project, uncheck the Use default option for project contents, and select the blog directory in /var/www. You then get a scary dialog which observes that files already exist. You can either create your project as a subdirectory, in which case you cannot debug with the existing files, or else pass the scary warning:</p>
<blockquote><p>Create project in /var/www/blog      <br />(Deleting the project will delete the entire /var/www/blog folder)</p>
</blockquote>
<p>I mis-read this at first, thinking it would delete all the files when creating the project. That’s not what it says. Everything was a backup anyway, so I took the plunge; it worked fine. In fact, if you look closely at the screenshot above (click for a full size image) you can see that it is nicely done. You can see the call stack at top left, current variable values, output as it is being generated, and the usual options to step into or over the code.</p>
<p>That said, I did have some problems with Step Into. Just when it was going to be most useful, it bombed out with a message that said Error. If you looked at the detail, that also just said Error. The only fix I found was to set breakpoints in the actual file I needed to debug.</p>
<p>Still, it worked. I found that by adding a single argument to a line in feed-rss.php I could get my full text feed back. I’ve duly <a href="http://wordpress.org/support/topic/187627?replies=2">reported this</a> in the WordPress support forums.</p>
<p>A couple of observations. </p>
<p>First, I don’t much like the WordPress code. Sorry, because the product is marvelous, but the code seems like a typical PHP tangle. Using pretty permalinks, which I regret, makes it worse.</p>
<p>Second, are there not plenty of developers who use both Java and PHP and would like it to be a tiny bit easier to set up in Eclipse? I’m being a little unfair, since Ganymede is just out and I guess the PDT will integrate better with it soon. Even so, Eclipse is still not quite the smooth plug-in dream that I once hoped it would become.</p>
<p>Note that if you don’t mind paying, you can have <a href="http://www.zend.com/en/products/studio/">Zend Studio</a> which I should think makes life easier. Or perhaps <a href="http://www.codegear.com/products/delphi/php">Delphi for PHP</a>.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9581445b-8be8-47a7-a016-60158f13b6d0" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/eclipse" rel="tag">eclipse</a>, <a href="http://technorati.com/tags/wordpress" rel="tag">wordpress</a>, <a href="http://technorati.com/tags/zend+studio" rel="tag">zend studio</a>, <a href="http://technorati.com/tags/zend+debugger" rel="tag">zend debugger</a>, <a href="http://technorati.com/tags/ganymede" rel="tag">ganymede</a>, <a href="http://technorati.com/tags/ubuntu" rel="tag">ubuntu</a>, <a href="http://technorati.com/tags/virtual+box" rel="tag">virtual box</a>, <a href="http://technorati.com/tags/delphi+for+php" rel="tag">delphi for php</a>, <a href="http://technorati.com/tags/debugging" rel="tag">debugging</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/989-when-will-php-developer-tools-be-mainstream-at-eclipse.html' rel='bookmark' title='Permanent Link: When will PHP Developer Tools be mainstream at Eclipse?'>When will PHP Developer Tools be mainstream at Eclipse?</a></li>
<li><a href='http://www.itwriting.com/blog/704-wordpress-permalinks-broke-my-rss-feed.html' rel='bookmark' title='Permanent Link: WordPress permalinks broke my RSS feed'>WordPress permalinks broke my RSS feed</a></li>
<li><a href='http://www.itwriting.com/blog/14-moving-to-wordpress.html' rel='bookmark' title='Permanent Link: Moving to WordPress without breaking links'>Moving to WordPress without breaking links</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/714-debugging-php-code-to-fix-a-wordpress-problem.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows server compromised by PHP application</title>
		<link>http://www.itwriting.com/blog/696-windows-server-compromised-by-php-application.html</link>
		<comments>http://www.itwriting.com/blog/696-windows-server-compromised-by-php-application.html#comments</comments>
		<pubDate>Wed, 25 Jun 2008 08:12:21 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/696-windows-server-compromised-by-php-application.html</guid>
		<description><![CDATA[<p>Susan Bradley has posted her analysis of how her Windows server was hacked.</p> <p>This is interesting to me, as Bradley is an expert on server administration and patching; I’m glad she has had the courage to post all these details, thus benefiting the community, rather than pretending the server was down for emergency maintenance <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/696-windows-server-compromised-by-php-application.html">Windows server compromised by PHP application</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/2887-using-backup-on-windows-hyper-v-server-or-server-core.html' rel='bookmark' title='Permanent Link: Using backup on Windows Hyper-V Server or Server Core'>Using backup on Windows Hyper-V Server or Server Core</a></li>
<li><a href='http://www.itwriting.com/blog/499-windows-server-2008-is-done-embraces-php.html' rel='bookmark' title='Permanent Link: Windows Server 2008 is done, embraces PHP'>Windows Server 2008 is done, embraces PHP</a></li>
<li><a href='http://www.itwriting.com/blog/10-protecting-the-windows-kernel.html' rel='bookmark' title='Permanent Link: Protecting the Windows kernel'>Protecting the Windows kernel</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Susan Bradley has posted her <a href="http://msmvps.com/blogs/bradley/archive/2008/06/24/so-how-did-they-break-in.aspx">analysis of how her Windows server was hacked</a>.</p>
<p>This is interesting to me, as Bradley is an expert on server administration and patching; I’m glad she has had the courage to post all these details, thus benefiting the community, rather than pretending the server was down for emergency maintenance or the like.</p>
<p>She thinks it was a <a href="http://secunia.com/advisories/17046/">security bug in IceWarp Web Mail</a>. This appears to be a PHP application. Although the bug has been fixed, she was running an old version because the new one broke some important features.</p>
<p>The explanation sounds plausible to me. So is it applications rather than operating systems that form the most critical security weaknesses today? Yes, but both are involved. I would be interested to know whether the same bug in a Linux installation of IcwWarp would have been equally easy to escalate to the entire OS.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3a2b6ca7-f48e-4c12-a7dc-ef552006e49e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/security" rel="tag">security</a>, <a href="http://technorati.com/tags/php" rel="tag">php</a>, <a href="http://technorati.com/tags/windows" rel="tag">windows</a>, <a href="http://technorati.com/tags/icewarp" rel="tag">icewarp</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/2887-using-backup-on-windows-hyper-v-server-or-server-core.html' rel='bookmark' title='Permanent Link: Using backup on Windows Hyper-V Server or Server Core'>Using backup on Windows Hyper-V Server or Server Core</a></li>
<li><a href='http://www.itwriting.com/blog/499-windows-server-2008-is-done-embraces-php.html' rel='bookmark' title='Permanent Link: Windows Server 2008 is done, embraces PHP'>Windows Server 2008 is done, embraces PHP</a></li>
<li><a href='http://www.itwriting.com/blog/10-protecting-the-windows-kernel.html' rel='bookmark' title='Permanent Link: Protecting the Windows kernel'>Protecting the Windows kernel</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/696-windows-server-compromised-by-php-application.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cenzic web app report highlights security problems</title>
		<link>http://www.itwriting.com/blog/629-cenzic-web-app-report-highlights-security-problems.html</link>
		<comments>http://www.itwriting.com/blog/629-cenzic-web-app-report-highlights-security-problems.html#comments</comments>
		<pubDate>Thu, 15 May 2008 10:11:02 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web authoring]]></category>

		<guid isPermaLink="false">http://www.itwriting.com/blog/?p=629</guid>
		<description><![CDATA[<p>Will we ever get a secure Internet? There&#8217;s no cause for optimism in the latest Cenzic report into web app security. A few highlights:</p> 7 out of 10 Web applications analyzed by Cenzic were found vulnerable to Cross-Site Scripting attacks 70% of Internet vulnerabilities are in web applications FireFox has the most reported browser <p><i>...continue reading</i> <a href="http://www.itwriting.com/blog/629-cenzic-web-app-report-highlights-security-problems.html">Cenzic web app report highlights security problems</a></p>


Related posts:<ol><li><a href='http://www.itwriting.com/blog/713-apple-accused-of-security-blunder-highlights-cloud-risks.html' rel='bookmark' title='Permanent Link: Apple accused of security blunder; highlights cloud risks'>Apple accused of security blunder; highlights cloud risks</a></li>
<li><a href='http://www.itwriting.com/blog/890-sophos-video-about-hacked-businessweek-site.html' rel='bookmark' title='Permanent Link: Sophos video about hacked BusinessWeek site'>Sophos video about hacked BusinessWeek site</a></li>
<li><a href='http://www.itwriting.com/blog/382-uk-government-resists-peer-pressure-on-internet-security.html' rel='bookmark' title='Permanent Link: UK Government resists Peer pressure on internet security'>UK Government resists Peer pressure on internet security</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Will we ever get a secure Internet? There&#8217;s no cause for optimism in the <a href="http://www.cenzic.com/cia_research/resources.php" target="_blank">latest Cenzic report into web app security</a>. A few highlights:</p>
<ul>
<li>7 out of 10 Web applications analyzed by Cenzic were found vulnerable to Cross-Site Scripting attacks</li>
<li>70% of Internet vulnerabilities are in web applications</li>
<li>FireFox has the most reported browser vulnerabilities at 40%; IE is 23%</li>
<li>Weak session management, SQL Injection, and poor authentication remain very common problems</li>
<li>33% of all reported vulnerabilities are caused by insecure PHP coding, compared to 1% caused by insecurities in PHP itself.</li>
</ul>
<p>OK, it&#8217;s another report from a security company with an interest in hyping the figures; but I found this one more plausible than <a href="http://www.itwriting.com/blog/?p=623" target="_blank">some</a>.</p>
<p>The PHP remarks are interesting; it would be good to see equivalent figures for ASP.NET and Java.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c3c2c864-63d9-423d-a2f3-6208cdf89556" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/cenzic" rel="tag">cenzic</a>, <a href="http://technorati.com/tags/security" rel="tag">security</a>, <a href="http://technorati.com/tags/cross-site%20scription" rel="tag">cross-site scription</a>, <a href="http://technorati.com/tags/sql%20injection" rel="tag">sql injection</a>, <a href="http://technorati.com/tags/php" rel="tag">php</a>, <a href="http://technorati.com/tags/asp.net" rel="tag">asp.net</a></div>


<p>Related posts:<ol><li><a href='http://www.itwriting.com/blog/713-apple-accused-of-security-blunder-highlights-cloud-risks.html' rel='bookmark' title='Permanent Link: Apple accused of security blunder; highlights cloud risks'>Apple accused of security blunder; highlights cloud risks</a></li>
<li><a href='http://www.itwriting.com/blog/890-sophos-video-about-hacked-businessweek-site.html' rel='bookmark' title='Permanent Link: Sophos video about hacked BusinessWeek site'>Sophos video about hacked BusinessWeek site</a></li>
<li><a href='http://www.itwriting.com/blog/382-uk-government-resists-peer-pressure-on-internet-security.html' rel='bookmark' title='Permanent Link: UK Government resists Peer pressure on internet security'>UK Government resists Peer pressure on internet security</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.itwriting.com/blog/629-cenzic-web-app-report-highlights-security-problems.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
