<?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"
	>

<channel>
	<title>Darren Beale &#187; Technology</title>
	<atom:link href="http://bealers.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://bealers.com</link>
	<description>Husband, Father and Entrepreneurial Geek</description>
	<pubDate>Thu, 03 Jul 2008 18:23:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Debugging with PhpED and DBG</title>
		<link>http://bealers.com/2008/01/20/debugging-with-phped-and-dbg/</link>
		<comments>http://bealers.com/2008/01/20/debugging-with-phped-and-dbg/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 17:17:05 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://bealers.com/2008/01/20/debugging-with-phped-and-dbg/</guid>
		<description><![CDATA[As long-term PhpED user I&#8217;ve always been well aware that I was not making the most of some of the more powerful features of my IDE, particularly the debugging capabilities. Well this week I finally got debugging set-up properly and as per most of my other blog posts I&#8217;m listing what I did here for [...]]]></description>
			<content:encoded><![CDATA[<p>As long-term <a href="http://www.nusphere.com">PhpED</a> user I&#8217;ve always been well aware that I was not making the most of some of the more powerful features of my IDE, particularly the debugging capabilities. Well this week I finally got debugging set-up properly and as per most of my other blog posts I&#8217;m listing what I did here for future reference and just in case it helps anyone else.<span id="more-437"></span></p>
<h3>Step 1: Server and client communication</h3>
<p>The dev server is our standard set-up: Debian stable (currently Etch) running with stable apt packages of PHP 5  (5.2.0) and Apache 2. I have Samba set-up to share each developers home directory with Apache having multiple VirtualHosts per developer serving from within those home directories.</p>
<p>My &#8216;client&#8217; is Windows XP or Vista (FWIW these instructions tested on both) running PhpED 5.2. We&#8217;ve mapped a drive to the home folder on the dev server and we can write to files within it.</p>
<p>The Nusphere website has <a href="http://www.nusphere.com/kb/technicalfaq/index.htm">detailed instructions</a> <a href="http://www.nusphere.com/kb/technicalfaq/howto_debug_rm_website.htm">here</a> &amp; <a href="http://www.nusphere.com/kb/technicalfaq/howto_install_dbg_module.htm">here</a> and here for getting the communication between client and server set-up. You probably want to read through all of that first but here&#8217;s my summary:</p>
<h4>Install the server module</h4>
<p>Situated somewhere like <code>C:\Program Files\nusphere\phped\debugger\server</code> you should find a number of operating system specific folders, these contain the relevant dbg module, in my case I needed <code>\Linux\dbg-3.2.10-Linux-glibc-2.2.tar.gz</code>. Unzip this and place the version specific to your PHP version into PHP&#8217;s extension_dir which can be easily figured out by either running <code>phpinfo();</code> or by looking at php.ini; in my case it&#8217;s <code>/usr/lib/php5/20060613+lfs.</code> For neatness I symlink  dbg.so-5.2.x to dbg.so I then create <code>/etc/php5/apache2/conf.d/dbg.ini</code> and within it I write:</p>
<p><code>extension=dbg.so</code></p>
<p><code>[debugger]<br />
debugger.enabled=on<br />
debugger.profiler_enabled=on<br />
debugger.hosts_allow=ALL<br />
debugger.hosts_deny=ALL<br />
debugger.ports=7869, 10000/16</code></p>
<p>Saving and then restarting Apache I check <code>phpinfo();</code> and see near the top:</p>
<p><code>This program makes use of the Zend Scripting Language Engine:<br />
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies<br />
<strong> with DBG v3.2.10, (C) 2000,2007, by Dmitri Dmitrienko</strong></code></p>
<p>&#8230;with further down the page more detailed information relating to the dbg module.</p>
<p>A few notes on my set-up:</p>
<ul>
<li>the <code>/etc/php5/apache2/conf.d/*.ini</code> is a Debian thing. If you&#8217;ve compiled from source or use another distribution then it&#8217;s likely that you want to put the dbg configuration settings into php.ini, you can find out where that lives on your system by looking in <code>phpinfo()</code></li>
<li>note the configuration line <code>debugger.hosts_allow=ALL</code>. It&#8217;s possible (and likely desirable) to only allow debugging sessions between specific machines. On my internal network I don&#8217;t care so to save configuration changes when new developers start or machines change I&#8217;m leaving it open to all</li>
</ul>
<h4>Ensure Server can talk to client</h4>
<p>With the server successfully set-up we now want to ensure that the server can talk to the client. To do this fire up PhpED and ensure that the the listener is running, this is the little satellite dish in your task bar. If you right-click and select set-up you should see this:</p>
<p><img src="http://bealers.com/wp-content/uploads/2008/01/listener.gif" alt="listener.gif" /></p>
<p>Good, now on the <strong><em>server</em></strong> telnet to the client, thus:</p>
<p><code>telnet &lt;client IP address&gt; 7869</code></p>
<p>If it&#8217;s working you should see a black dot appear within the listener icon in the system tray, if so you&#8217;re done. Just Ctrl  and ] to exit the telnet session and move onto step 2.</p>
<p><strong>Note: </strong>If you don&#8217;t know your ip address you can fire up a dos window and type ipconfig.<br />
<!--more--></p>
<h3>Step 2: Project set-up and mappings</h3>
<p>Step 1 is all relatively straightforward assuming you&#8217;re already comfortable with the inner workings of your set-up. What is less obvious is how to properly set-up the project to actually get down and start debugging. I have had partial success in the past with simple projects but the issue has always been with mappings. If all you want is a PhpED project where it&#8217;s root is also the document root of the website then there&#8217;s not a lot to it. Where the problem lies, for me at least, is when there are library files outside of the document root that you still want to be able to see and edit from within your project.</p>
<p>To illustrate a slightly more complex project set-up I&#8217;ll go through the mappings for one of my <a href="http://www.symfony-project.org/">Symfony</a> projects.</p>
<p>My directory structure is as follows:</p>
<p><code>/home/&lt;developer&gt;/www/projectname</code> (checked out from subversion, this is the trunk)<br />
<code>/home/&lt;developer&gt;/www/projectname/codebase</code><br />
<code>/home/&lt;developer&gt;/www/projectname/codebase/web</code> (default name for a Symfony project&#8217;s document root)</p>
<p>where <code>/home/&lt;developer&gt;/</code> is mapped to Z:\ (or whatever) on the client.</p>
<p>Elsewhere Symfony has been installed using PEAR so lives in <code>/usr/share/php/symfony</code>. To make it easier for a developer to look at (read only) versions of core Symfony (and PEAR) classes I ensure that within the developers&#8217; sandbox the library files are symlinked. So for example with symfony the developer would have:</p>
<p><code>/home/&lt;developer&gt;/www/lib/symfony -&gt; /usr/share/php/symfony</code></p>
<p>We want to be able to edit all of the files within the project so when setting up the new project we set the root directory to be the projectname folder so in this case it&#8217;ll be <code>Z:\www\projectname</code> and for now, just to get the project set-up and the code imported set the &#8216;Run mode&#8217; to be Local CGI.</p>
<p>Doing so gives us this view within the workspace:</p>
<p><img src="http://bealers.com/wp-content/uploads/2008/01/folders.gif" alt="folders.gif" /></p>
<p>That done we need to get the mappings sorted, so entering project properties again we set things up so they look like this:</p>
<p><img src="http://bealers.com/wp-content/uploads/2008/01/project-properties.gif" alt="project-properties.gif" /></p>
<p>Namely:</p>
<ul>
<li>Root directory is  unchanged and <code>Z:\www\projectname</code></li>
<li>Run mode is 3rd party web server</li>
<li>Root URL is blank</li>
<li>Remote root directory is blank</li>
</ul>
<p>If we were to press the OK button now PhpED would complain as it needs to know which URL you&#8217;re using to access the third party web server (our dev server) so instead we select the Mapping tab and <strong>add</strong> the following mappings</p>
<ol>
<li>The apache document root
<ul>
<li>Local directory is <code>Z:\www\projectname\codebase\web</code></li>
<li>Remote directory is <code>/home/user/www/projectname/codebase/web</code></li>
<li>URL is <code>http://projectname</code></li>
</ul>
</li>
<li>The Symfony libraries
<ul>
<li>Local directory is <code>Z:\www\lib\symfony</code></li>
<li>remote directory is <code>/usr/share/php/symfony</code></li>
</ul>
</li>
</ol>
<p><img src="http://bealers.com/wp-content/uploads/2008/01/mappings.gif" alt="mappings.gif" /></p>
<p>Ensuring that the original project root (in bold) is at the bottom of the list we can now press OK.</p>
<p>That&#8217;s it. If we open one of our pages, in Symfony&#8217;s case one of the  files under web, and then press the debug button (green arrow with a D in) or press F5 the debugging session with launch and by default it&#8217;ll stop on the first line of the first file. You&#8217;re now in debug mode, alright!.</p>
<p>How to use the debugger is left as an exercise for the reader. As you&#8217;d expect there&#8217;s more information on <a href="http://www.nusphere.com/products/php_debugger.htm">PhpED&#8217;s debugging features</a> on their website.</p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2008/01/20/debugging-with-phped-and-dbg/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Word 2007 save as PDF</title>
		<link>http://bealers.com/2007/09/28/word-2007-save-as-pdf/</link>
		<comments>http://bealers.com/2007/09/28/word-2007-save-as-pdf/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 13:01:07 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[top-tip]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/09/28/word-2007-save-as-pdf/</guid>
		<description><![CDATA[I have Office 2007 and I have Adobe CS3 (on Vista). Adobe CS3 comes with Acrobat and Acrobat Distiller but I&#8217;ve not been able to get Word 2007 to play nicely with either so I can create PDFs from Word like I used to.
I was about to sit down and fix the issue once and [...]]]></description>
			<content:encoded><![CDATA[<p>I have Office 2007 and I have Adobe CS3 (on Vista). Adobe CS3 comes with Acrobat and Acrobat Distiller but I&#8217;ve not been able to get Word 2007 to play nicely with either so I can create PDFs from Word like I used to.</p>
<p>I was about to sit down and fix the issue once and for all but on the off chance I thought I&#8217;d check with MS first. Good job I did as here&#8217;s an <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&amp;displaylang=en">Office 2007 add-in to enable save as PDF</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/09/28/word-2007-save-as-pdf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSS support in modern email clients</title>
		<link>http://bealers.com/2007/09/16/css-support-in-modern-email-clients/</link>
		<comments>http://bealers.com/2007/09/16/css-support-in-modern-email-clients/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 14:07:11 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/09/16/css-support-in-modern-email-clients/</guid>
		<description><![CDATA[Whatever your opinion about HTML emails if you are charged with writing them then you&#8217;ll definitely want to make sure that they are as consistent as possible across the board for desktop and webmail clients.
Well, luckily for us the guys over at campaign monitor came up with a really useful guide drilling down into specific [...]]]></description>
			<content:encoded><![CDATA[<p>Whatever your opinion about HTML emails if you are charged with writing them then you&#8217;ll definitely want to make sure that they are as consistent as possible across the board for desktop and webmail clients.</p>
<p>Well, luckily for us the guys over at <a href="http://www.campaignmonitor.com">campaign monitor</a> came up with <a href="http://www.campaignmonitor.com/blog/archives/2007/04/a_guide_to_css_support_in_emai_2.html">a really useful guide</a> drilling down into specific CSS support client by client.</p>
<p><a href="http://www.campaignmonitor.com/blog/archives/2007/04/a_guide_to_css_support_in_emai_2.html">Email client CSS support guide</a>.</p>
<p>Very good work.</p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/09/16/css-support-in-modern-email-clients/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting PHP error reporting from a vhost or .htaccess</title>
		<link>http://bealers.com/2007/08/16/setting-php-error-reporting-from-a-vhost-or-htaccess/</link>
		<comments>http://bealers.com/2007/08/16/setting-php-error-reporting-from-a-vhost-or-htaccess/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 15:08:13 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/08/16/setting-php-error-reporting-from-a-vhost-or-htaccess/</guid>
		<description><![CDATA[Here on our dev servers we turn PHP error reporting full on so we get to know of any issues with our code well before it hits production (where errors are turned off).
This does however cause problems with older legacy sites that generate reams of warning errors because the developers were slack and  - [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.siftware.co.uk">Here</a> on our dev servers we turn PHP error reporting full on so we get to know of any issues with our code well before it hits production (where errors are turned off).</p>
<p>This does however cause problems with older legacy sites that generate reams of warning errors because the developers were slack and  - say - didn&#8217;t declare all their variables. So, the obvious solution is to set the error reporting at the VirtualHost or.htaccess level.</p>
<p>Or is it? At the recent <a href="http://www.phpwm.org">PHPWM</a> meeting I brought up my issue that whenever I set it to be:</p>
<p><code>php_value error_reporting E_ALL &amp; ~E_NOTICES</code></p>
<p>which in php.ini will give you errors but not the notices, it was _definitely_ not working for me in the vhost. A possible solution offered was to use the integer value of the constant instead  but we all couldn&#8217;t remember what that was.</p>
<p>A quick Google later and it seems that using the text constants doesn&#8217;t work in the vhost or .htaccess but the integer version DOES. So the definitive answer to &#8220;How do I turn on PHP errors but get it  to ignore warnings in a vhost&#8221; is</p>
<p><code>php_value error_reporting 6135</code></p>
<p>Well, this works for me on  php 5.2.3 anyway <img src='http://bealers.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/08/16/setting-php-error-reporting-from-a-vhost-or-htaccess/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony&#8217;s most popular plugins</title>
		<link>http://bealers.com/2007/08/15/symfonys-most-popular-plugins/</link>
		<comments>http://bealers.com/2007/08/15/symfonys-most-popular-plugins/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 12:15:18 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/08/15/symfonys-most-popular-plugins/</guid>
		<description><![CDATA[Francios a core member of the Symfony team recently blogged about the 20 most popular plugins of the Symfony project based upon page views.
That list is:

sfSimpleCMSPlugin
sfGuardPlugin
sfPropelActAsNestedSetBehaviorPlugin
sfMediaLibraryPlugin
sfSimpleBlogPlugin
sfSimpleForumPlugin
sfFeed2Plugin
sfgWidgetsPlugin
sfThumbnailPlugin
sfUJSPlugin
sfControlPanelPlugin
sfFormValidationPlugin
sfMogileFSPlugin
sfLightboxPlugin
sfCaptchaPlugin
sfNiftyPlugin
sfPrototypeWindowPlugin
sfPropelLoadbalancerPlugin
sfSavvyPlugin
sfYzClientSideValidationPlugin

I find it very interesting that the &#8217;simple&#8217; ones are all in the top 6 with the CMS one - which is very new - already taking up top spot.
It [...]]]></description>
			<content:encoded><![CDATA[<p>Francios a core member of the <a href="http://www.symfony-project.com/">Symfony</a> team <a href="http://www.symfony-project.com/weblog/2007/08/14/top-20-symfony-plugins.html">recently blogged</a> about the 20 most popular plugins of the Symfony project based upon page views.</p>
<p>That list is:</p>
<ol>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfSimpleCMSPlugin">sfSimpleCMSPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfGuardPlugin">sfGuardPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfPropelActAsNestedSetBehaviorPlugin">sfPropelActAsNestedSetBehaviorPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfMediaLibraryPlugin">sfMediaLibraryPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfSimpleBlogPlugin">sfSimpleBlogPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfSimpleForumPlugin">sfSimpleForumPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfFeed2Plugin">sfFeed2Plugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfgWidgetsPlugin">sfgWidgetsPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfThumbnailPlugin">sfThumbnailPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfUJSPlugin">sfUJSPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfControlPanelPlugin">sfControlPanelPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfFormValidationPlugin">sfFormValidationPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfMogileFSPlugin">sfMogileFSPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfLightboxPlugin">sfLightboxPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfCaptchaPlugin">sfCaptchaPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfNiftyPlugin">sfNiftyPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfPrototypeWindowPlugin">sfPrototypeWindowPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfPropelLoadbalancerPlugin">sfPropelLoadbalancerPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfSavvyPlugin">sfSavvyPlugin</a></li>
<li><a href="http://trac.symfony-project.com/trac/wiki/sfYzClientSideValidationPlugin">sfYzClientSideValidationPlugin</a></li>
</ol>
<p>I find it very interesting that the &#8217;simple&#8217; ones are all in the top 6 with the CMS one - which is very new - already taking up top spot.</p>
<p>It proves that the interest is there for off-the-shelf solutions built upon this great framework and I feel that there&#8217;s going to be lots of exciting activity in this space over the coming months. For example  I&#8217;m sure I&#8217;m not the only one who is eagerly awaiting the impending release of <a href="http://www.magentocommerce.com">Magento</a> which is based upon the <a href="http://framework.zend.com/">Zend Framework.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/08/15/symfonys-most-popular-plugins/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Workshops For Web People</title>
		<link>http://bealers.com/2007/08/14/workshops-for-web-people/</link>
		<comments>http://bealers.com/2007/08/14/workshops-for-web-people/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 14:55:30 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/08/14/workshops-for-web-people/</guid>
		<description><![CDATA[I recently got wind of a new workshop on The Multipack&#8217;s forum called Transcending CSS being presented by CSS don Andy Clarke of Britpack, and this book fame. Not sure what bribes they used to get him doing this but it&#8217;s definitely happening and I&#8217;ve already booked my place before they sell out.
I also really [...]]]></description>
			<content:encoded><![CDATA[<p>I recently got wind of a new workshop on <a href="http://www.multipack.co.uk/">The Multipack&#8217;s</a> forum called <a href="http://www.wfwp.co.uk/workshops/transcendingcss-15112007">Transcending CSS</a> being presented by CSS don <a href="http://www.stuffandnonsense.co.uk/">Andy Clarke</a> of <a href="http://www.britpack.org/">Britpack,</a> and <a href="http://www.csswebdevelopment.com/">this book</a> fame. Not sure what bribes they used to get him doing this but it&#8217;s definitely happening and I&#8217;ve already booked my place before they sell out.</p>
<p>I also really like the general <a href="http://www.wfwp.co.uk/">Workshops for web people</a> philosophy:</p>
<blockquote><p><strong>Professional &amp; Affordable Workshops For Web People</strong></p>
<p>Learning from the web is one thing but being in a room with a leading light from the industry with other like minded people is infinitely better. Unfortunately this normally comes at a hefty price and requires you to travel and pay for accommodation.</p>
<p><strong>Our Approach</strong></p>
<p>We believe that it is time for a change and intend to start hosting professional workshops, given by experts, put on in modern venues around the UK for around a £100 - £125 depending on venue, considerably cheaper than most. We do not currently charge VAT although this may, unfortunately, change in the future.</p>
<p><strong>Workshops</strong></p>
<p>Starting in November 2007 in our home town of Leicester and using the Leicester Creative Business Depot&#8217;s Courtyard Room we hope to put a fresh spin on the workshop for a price we can all afford.</p></blockquote>
<p>This all sounds perfectly splendid and at £100 with a top-drawer speaker and plenty of time for networking afterwards it&#8217;s a bargain.</p>
<p>Maybe I&#8217;ll see you there.</p>
<p><a href="http://www.wfwp.co.uk/"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/08/14/workshops-for-web-people/feed/</wfw:commentRss>
		</item>
		<item>
		<title>installing the Symfony plugin sfSimpleCMS</title>
		<link>http://bealers.com/2007/08/02/installing-the-symfony-plugin-sfsimplecms/</link>
		<comments>http://bealers.com/2007/08/02/installing-the-symfony-plugin-sfsimplecms/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 17:32:52 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/08/02/installing-the-symfony-plugin-sfsimplecms/</guid>
		<description><![CDATA[I was recently asked if I&#8217;d sucessfully got the Symfony plugin sfSimpleCMS working and I&#8217;m afraid my answer was no. I had tried briefly when preparing for my talk, but something didn&#8217;t work and I carried on with other things.
Being reminded of it and having an hour to kill before I head off to the [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently asked if I&#8217;d sucessfully got the Symfony plugin sfSimpleCMS working and I&#8217;m afraid my answer was no. I had tried briefly when preparing for <a href="http://bealers.com/2007/07/29/a-pragmatic-look-at-symfony/">my talk</a>, but something didn&#8217;t work and I carried on with other things.</p>
<p>Being reminded of it and having an hour to kill before I head off to the pub I thought I&#8217;d give it a stab, here we go&#8230;</p>
<p><span id="more-401"></span></p>
<p>My environment is PHP 5.2.3 on Debian Woody.</p>
<p>Upgrade to latest stable version (as root):<br />
<code>pear upgrade symfony/symfony</code></p>
<p>Stop being root and create test sandbox:<br />
<code>cd ~/www/TEST/<br />
mkdir sfSimpleCMS &amp;&amp; cd sfSimpleCMS</code></p>
<p>&#8230;obviously your paths can be different.</p>
<p>Create project and app<br />
<code>symfony init-project cms<br />
symfony init-app frontend</code></p>
<p>Set-up the Apache Virtual Host:<br />
<code>&lt;VirtualHost&gt;<br />
ServerName sfSimpleCMS.bealers<br />
DocumentRoot "/home/bealers/www/TEST/sfSimpleCMS/web"<br />
DirectoryIndex index.php<br />
php_flag magic_quotes_gpc off<br />
php_flag register_globals off<br />
Alias /sf /usr/share/php/data/symfony/web/sf<br />
&lt;Directory </code><code>/home/bealers/www/TEST/sfSimpleCMS/web</code><code>&gt;<br />
AllowOverride All<br />
Allow from All<br />
&lt;/Directory&gt;<br />
LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""<br />
TransferLog /var/log/apache/sfSimpleCMS.log<br />
ErrorLog /var/log/apache/sfSimpleCMS.log<br />
&lt;/VirtualHost&gt;</code></p>
<p>&#8230;your paths should match the location of your sandbox</p>
<p>Restart apache (as root, or use sudo)<br />
<code>apachectl reload</code></p>
<p>Make sure that your hostname resolves to the IP of the server and then try it in your browser in my case http://sfSimpleCMS.bealers</p>
<p><img src="http://bealers.com/wp-content/uploads/2007/08/sucess.png" alt="sucess.png" /></p>
<p>Do some simple config<br />
<code>mysql&gt; create database cms;<br />
mysql&gt; grant all on cms.* to cms@localhost identified by 'cms';</code></p>
<p>Edit config/propel.ini so that:<br />
<code>propel.database.createUrl  = mysql://cms:cms@localhost/<br />
propel.database.url        = mysql://cms:cms@localhost/cms</code></p>
<p>Edit config/databases.yml so that:<br />
<code>all:<br />
propel:<br />
class:          sfPropelDatabase<br />
param:<br />
dsn:          mysql://cms:cms@localhost/cms</code></p>
<p>Install the re-prequisites<br />
<code>symfony plugin-install http://plugins.symfony-project.com/sfGuardPlugin<br />
symfony cc</code></p>
<p><code>symfony plugin-install http://plugins.symfony-project.com/sfPropelActAsNestedSetBehaviorPlugin</code></p>
<p>Edit config/propel.ini so that:<br />
<code>propel.builder.addBehaviors = true</code></p>
<p>Install tiny MCE<br />
<code>cd /tmp<br />
wget http://prdownloads.sourceforge.net/tinymce/tinymce_2_1_1_1.tgz?download<br />
tar -zxvf tinymce_2_1_1_1.tgz</code></p>
<p>Move the actual useful bit to our Symfony project (obviously change this to contain the right path for you)<br />
<code>mv tinymce/jscripts/tiny_mce/ ~/www/TEST/sfSimpleCMS/web/js</code></p>
<p>Tidy up<br />
<code>rm -Rf tinymce*</code></p>
<p>Get back to our project<br />
<code>cd ~/www/TEST/sfSimpleCMS</code></p>
<p>Install sfSimpleCMS<br />
<code>symfony plugin-install http://plugins.symfony-project.com/sfSimpleCMSPlugin</code></p>
<p>Build everything<br />
<code>symfony propel-build-all</code></p>
<p>Our database now looks like this:<br />
<img src="http://bealers.com/wp-content/uploads/2007/08/db.png" alt="db.png" /></p>
<p>Edit apps/frontend/config/settings.yml so that:</p>
<p><code>all:<br />
.settings:<br />
enabled_modules:        [default, sfSimpleCMS, sfSimpleCMSAdmin]<br />
sfSimpleCMS:<br />
default_text:         '[add text here]'   # Default text for page editable parts<br />
routes_register:      on                  # Use the plugin's routes<br />
rich_editing:         on                 # Use TinyMCE for rich text editing<br />
default_page:         home                # Slug (=path) of the default root page<br />
home_link:            My swell site       # what is displayed on the top right corner of the pages (can be HTML code)<br />
use_l10n:             false               # Enable multiple versions for a single page<br />
localizations:        [en, fr, es]        # If l10n is enabled, list of cultures in which pages are available<br />
default_culture:      en                  # If l10n is not enabled, default culture for pages<br />
editor_credential:                        # Name of the credential required for page editing (leave blank for free editing)<br />
publisher_credential:                     # Name of the credential required for page publishing (leave blank for free publishing)<br />
templates:                                # Available templates<br />
simplePage:         Simple Page         #   the key is the name of a template which must be present in modules/sfSimpleCMS/templates/<br />
home:               Home                #   the value is the name under which the template is presented in lists<br />
slot_types:                               # Available slot types<br />
Text:           Simple text<br />
RichText:       Rich text<br />
Php:            PHP code<br />
Image:          Image<br />
Modular:        List of components</code></p>
<p>Import some data. I was unable to get the fixtures to load by running:<br />
symfony propel-load-data frontend plugins\sfSimpleCMSPlugin\data\fixtures (actually I&#8217;ve never had much luck with loading data from fixtures, but that&#8217;s another story) so with a bit of trial and error I came up with this simple query which&#8217;ll give us our first page (if we don&#8217;t do this things go a bit weird and the top element has no template assigned so the view barfs).</p>
<p><code>mysql&gt; insert into sf_simple_cms_page set id=1, slug="home", template="home", tree_left=1, tree_right=2, is_published=1, created_at=NOW();</code></p>
<p>Visiting http://sfsimplecms.bealers/frontend_dev.php/sfSimpleCMSAdmin/ should give you the site!</p>
<p><img src="http://bealers.com/wp-content/uploads/2007/08/admin.png" alt="admin.png" /></p>
<p><img src="http://bealers.com/wp-content/uploads/2007/08/edit.png" alt="edit.png" /></p>
<p>Double clicking on the content areas opens an editing window. I&#8217;ve been unable to get rich text editing working with tinyMCE but I guess it&#8217;s in the wrong place in the directory tree. I notice that theres a sfSimpleCMSPlugin folder under web that has its own js folder. Maybe it needs to go in there but I&#8217;ll leave that as an excersise for the reader whilst I head off to the pub.</p>
<p>Here&#8217;s the <a href="http://trac.symfony-project.com/trac/wiki/sfSimpleCMSPlugin">official plugin page</a> for further reference.</p>
<p><strong>Note: </strong>It see that Wordpress has munged the tabs which are important for the yml files. I suggest you look at the official plugin page above should you be unsure of the tab order. I&#8217;ll attempt to tidy it up some time soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/08/02/installing-the-symfony-plugin-sfsimplecms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Come and work with me</title>
		<link>http://bealers.com/2007/07/30/come-and-work-with-me/</link>
		<comments>http://bealers.com/2007/07/30/come-and-work-with-me/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 13:05:48 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[siftware]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/07/30/come-and-work-with-me/</guid>
		<description><![CDATA[After recently passing the 1 year milestone I&#8217;ve decided to bite the bullet and take on a couple of extra resources at Siftware increasing the headcount to 5. The aim is to free me up to spend more time on managing this and other business interests. I don&#8217;t do this lightly as it&#8217;s a huge [...]]]></description>
			<content:encoded><![CDATA[<p>After recently passing the 1 year milestone I&#8217;ve decided to bite the bullet and take on a couple of extra resources at <a href="http://www.siftware.co.uk">Siftware</a> increasing the headcount to 5. The aim is to free me up to spend more time on managing this and other business interests. I don&#8217;t do this lightly as it&#8217;s a huge investment for us but the work is out there and it&#8217;s not like I&#8217;ve haven&#8217;t done this before.</p>
<p>We&#8217;re looking for a <a href="http://www.siftware.co.uk/senior-php-developer/">heavy-hitting PHP developer</a> to effectively take over my role as mentor, architect and day-to-day resource planner plus a junior looking to get in on the ground floor.</p>
<p>If you&#8217;re reading this and either role sounds of interest then please send your CV with a covering note telling us why we should employ you to <a href="mailto:careers@siftware.co.uk">careers@siftware.co.uk</a>. Also if you know of anyone that might be interested then please don&#8217;t hesitate to forward this on.</p>
<ul>
<li><a href="http://www.siftware.co.uk/senior-php-developer/">Senior PHP developer job description</a></li>
<li><a href="http://www.siftware.co.uk/junior-web-developer/">Junior web developer job description</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/07/30/come-and-work-with-me/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Symfony plugin: sfSimpleCMSPlugin</title>
		<link>http://bealers.com/2007/07/17/new-symfony-plugin-sfsimplecmsplugin/</link>
		<comments>http://bealers.com/2007/07/17/new-symfony-plugin-sfsimplecmsplugin/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 19:06:41 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/07/17/new-symfony-plugin-sfsimplecmsplugin/</guid>
		<description><![CDATA[Preparing for my talk I was on the Symfony wiki and came across this:
This plugin allows you to add a simple Content Management System (CMS) to your symfony application with the following features:
* Uses Javascript and Ajax to provide a neat user experience
* Edit zones in pages
* Edit page URL (you can use / in [...]]]></description>
			<content:encoded><![CDATA[<p>Preparing for <a href="http://bealers.com/2007/07/16/a-symfony-talk-at-bristol-skillswap/">my talk</a> I was on the Symfony wiki and came across this:</p>
<blockquote><p><a href="http://trac.symfony-project.com/trac/wiki/sfSimpleCMSPlugin">This plugin</a> allows you to add a simple Content Management System (CMS) to your symfony application with the following features:</p>
<p>* Uses Javascript and Ajax to provide a neat user experience<br />
* Edit zones in pages<br />
* Edit page URL (you can use / in page path)<br />
* Edit content in the real context (&#8217;edit in place&#8217;)<br />
* Preview result<br />
* Create and manage a tree structure for pages<br />
* i18n ready (the interface is translated)<br />
* l10n ready (a page can have different versions)<br />
* support multiple templates<br />
* Basic publication workflow<br />
* Breadcrumb navigation<br />
* User management is controlled through sfGuardPlugin</p>
<p>It is not aimed at replacing full-featured CMS packages, but offers a lightweight alternative for when you build a website that has to contain pages often updated by special users. It is voluntarily simple, and very easy to configure; so it should fulfill most basic CMS requirements.</p></blockquote>
<p>Sounds exactly what we&#8217;ve been looking for (or at least intending to build)</p>
<p><a href="http://trac.symfony-project.com/trac/wiki/sfSimpleCMSPlugin">More here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/07/17/new-symfony-plugin-sfsimplecmsplugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing Windows Vista Ultimate x64 on a Mac Pro</title>
		<link>http://bealers.com/2007/06/30/installing-windows-vista-ultimate-x64-on-a-mac-pro/</link>
		<comments>http://bealers.com/2007/06/30/installing-windows-vista-ultimate-x64-on-a-mac-pro/#comments</comments>
		<pubDate>Sat, 30 Jun 2007 13:10:59 +0000</pubDate>
		<dc:creator>Bealers</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bealers.com/2007/06/30/installing-windows-vista-ultimate-x64-on-a-mac-pro/</guid>
		<description><![CDATA[Here&#8217;s a simple how-to for installing Windows Vista Ultimate x64 on a Mac Pro.

Get a Mac Pro. Mine is a 3 month old Quad core (2.66Ghz) Xeon with 4GB Ram and a number of SATA drives.
Install bootcamp (I used beta 1.3) and burn the drivers CD
Install Vista, I did mine to a spare SATA drive [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a simple how-to for installing Windows Vista Ultimate x64 on a Mac Pro.</p>
<ol>
<li>Get a Mac Pro. Mine is a 3 month old Quad core (2.66Ghz) Xeon with 4GB Ram and a number of SATA drives.</li>
<li>Install bootcamp (I used beta 1.3) and burn the drivers CD</li>
<li>Install Vista, I did mine to a spare SATA drive that was separate to the OS X drive.</li>
<li>Install drivers (there&#8217;s a set-up.exe)</li>
<li>Um, that&#8217;s it.</li>
</ol>
<p>It just worked. Even my Mac bluetooth keyboard and nVidia 7300 GT running 2 widescreen Dell 24&#8243; screens work faultlessly. Kudos to the Bootcamp writers.</p>
<p>/me now a Vista fanboy. It absolutely flies on the superb hardware of the Mac Pro but then it should I guess. I&#8217;ve not completely given up on Mac OS X, I at least now have the option to run it, but after three month it was still irritating me and most importantly I wasn&#8217;t as productive as I could have been.</p>
]]></content:encoded>
			<wfw:commentRss>http://bealers.com/2007/06/30/installing-windows-vista-ultimate-x64-on-a-mac-pro/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
