<?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>Third Party Code &#187; php</title>
	<atom:link href="http://thirdpartycode.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://thirdpartycode.com</link>
	<description>Linux, PHP 5, Apache Consulting in San Antonio, TX</description>
	<lastBuildDate>Tue, 10 Aug 2010 13:35:54 +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>Multivariate Testing, PHP Frameworks, Plea for help.</title>
		<link>http://thirdpartycode.com/2010/08/multivariate-testing-php-frameworks-plea-for-help/</link>
		<comments>http://thirdpartycode.com/2010/08/multivariate-testing-php-frameworks-plea-for-help/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 13:35:54 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[#leanstartup]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=604</guid>
		<description><![CDATA[I was curious if anyone has any experience with Multivariate (A/B) testing with PHP Frameworks.  I found http://phpabtest.com/ yesterday, but I haven&#8217;t heard of anyone using it in production yet. Nor have I been able to gather how easily or well &#8230; <a href="http://thirdpartycode.com/2010/08/multivariate-testing-php-frameworks-plea-for-help/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F08%2Fmultivariate-testing-php-frameworks-plea-for-help%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F08%2Fmultivariate-testing-php-frameworks-plea-for-help%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I was curious if anyone has any experience with Multivariate (A/B) testing with PHP Frameworks.  I found <a href="http://phpabtest.com/">http://phpabtest.com/</a> yesterday, but I haven&#8217;t heard of anyone using it in production yet. Nor have I been able to gather how easily or well it integrates with Symfony, or other frameworks that introduce some level of caching.</p>
<p>Here&#8217;s what I&#8217;d like to measure.</p>
<ol>
<li>How often I showed the blue sign up button on a page.</li>
<li>How often people clicked on that blue sign up button (currently I&#8217;m using event tracking..)</li>
</ol>
<p>That&#8217;s basically it for now, I was thinking of firing off a custom variable into google analytics everytime I showed a specific variation, but I don&#8217;t have the backend logic to show the different variations an equal number of times. It would just a rand() call.. This smells very wrong, so I was curious what the rest of the community was using</p>
<p>PS: I&#8217;ve used Google Website optimizer for basic A/B tests of landing pages, but multivariate tests make the management and markup within the views unmanageable&#8230; unless someone has an interesting framework already in place..</p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/08/multivariate-testing-php-frameworks-plea-for-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best Web Design, and Copywriting Reference. EVER.</title>
		<link>http://thirdpartycode.com/2010/06/the-best-web-design-and-copywriting-reference-ever/</link>
		<comments>http://thirdpartycode.com/2010/06/the-best-web-design-and-copywriting-reference-ever/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 03:10:33 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[#leanstartup]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[comedy]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=595</guid>
		<description><![CDATA[I&#8217;ve been exchanging some emails with my good friend Bobby Freeman. We&#8217;ve been discussing some copy and design for a new project I&#8217;ve launched, and am looking to share with the rest of the world. He pointed me to the best &#8230; <a href="http://thirdpartycode.com/2010/06/the-best-web-design-and-copywriting-reference-ever/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F06%2Fthe-best-web-design-and-copywriting-reference-ever%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F06%2Fthe-best-web-design-and-copywriting-reference-ever%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;ve been exchanging some emails with my good friend <a href="http://twitter.com/bobbyfreeman">Bobby Freeman</a>. We&#8217;ve been discussing some copy and design for a new project I&#8217;ve launched, and am looking to share with the rest of the world. He pointed me to the best web design guide ever. I&#8217;d like to share it with all of you, I have this printed and on my wall now. Thanks Bobby.</p>
<p><a href="http://thirdpartycode.com/wp-content/uploads/2010/06/best-web-design-guide.png"><img class="alignnone size-thumbnail wp-image-596" title="best-web-design-guide" src="http://thirdpartycode.com/wp-content/uploads/2010/06/best-web-design-guide-150x150.png" alt="best web design guide" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/06/the-best-web-design-and-copywriting-reference-ever/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Being Lean by accident, in 5th grade.</title>
		<link>http://thirdpartycode.com/2010/05/lean-startup-in-5th-grade/</link>
		<comments>http://thirdpartycode.com/2010/05/lean-startup-in-5th-grade/#comments</comments>
		<pubDate>Wed, 19 May 2010 14:21:42 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[#leanstartup]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=580</guid>
		<description><![CDATA[When I was growing up in India, we had to take &#8220;computer programming&#8221; courses in 5th grade.  At that time they taught us a language called Logo . Making a turtle draw concentric circles was easy, so my friends and &#8230; <a href="http://thirdpartycode.com/2010/05/lean-startup-in-5th-grade/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F05%2Flean-startup-in-5th-grade%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F05%2Flean-startup-in-5th-grade%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>When I was growing up in India, we had to take &#8220;computer programming&#8221; courses in 5th grade.  At that time they taught us a language called <a href="http://en.wikipedia.org/wiki/Logo_(programming_language)"> Logo </a>.  Making a turtle draw concentric circles was easy, so my friends and I figured out how to get out of what was then an IDE, into qbasic so we could play <a href="http://en.wikipedia.org/wiki/Gorillas_(video_game)">Gorilla</a>.</p>
<p>Once we figured out how to get out of Logo, word grew throughout the school that some of us had figured out how to do it, other kids asked us how to do it.  Then, one of us had the idea of making the computer beep every time the teacher said &#8220;sheet&#8221;.. (you have to be North Indian, be able to identify a south indian accent, and be a  5th grader to get the joke.. trust me).</p>
<p>Once the beeps got old and annoying, a girl asked if it was possible to make the computer &#8220;sing&#8221;. long story short.. we figured that part out just in time for christmas, and most of the computers were singing Jingle Bells.</p>
<p>So in summary, we had 5 steps.</p>
<ol>
<li>Phase 1 &#8211; Get out of Logo (notice that you have an itch)</li>
<li>Phase 2 &#8211; Get out of Logo (itch scratched, tell people about it)</li>
<li>Phase 3 &#8211; People ask you to help them get out of Logo (lunch money)</li>
<li>Phase 4 &#8211; Censor the teacher (show students what else can be done)</li>
<li>Phase 5 &#8211; Girl (High value customer) asks for a feature (get the girl) (to my wife, I don&#8217;t even remember her name.. seriously)..</li>
</ol>
<p>Now, I&#8217;m 31, and there&#8217;s a new girl I&#8217;m trying to get.  I need to do what I did in 5th grade, to get this girl as well, I don&#8217;t know why I&#8217;ve been doing everything but that.  I&#8217;d be willing to bet, I can do it in <a title="four steps to the epiphany" href="http://www.amazon.com/Four-Steps-Epiphany-Steven-Blank/dp/0976470705">4 steps</a> now.</p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/05/lean-startup-in-5th-grade/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SQL Error with Symfony 1.4.4 and MySQL 5.5</title>
		<link>http://thirdpartycode.com/2010/05/symfony-mysql5-5-error/</link>
		<comments>http://thirdpartycode.com/2010/05/symfony-mysql5-5-error/#comments</comments>
		<pubDate>Mon, 10 May 2010 00:19:36 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=574</guid>
		<description><![CDATA[I ran into an interesting bug/fact today while messing around with MySQL 5.5. It seems that in the DDL, you can&#8217;t say &#8220;Type=InnoDB&#124;MyISAM&#124;Foo&#8221; anymore. You have to say &#8220;Engine=InnoDB&#8221;. This will break your propel:build-all , or propel:build-all-load .. or if &#8230; <a href="http://thirdpartycode.com/2010/05/symfony-mysql5-5-error/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F05%2Fsymfony-mysql5-5-error%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F05%2Fsymfony-mysql5-5-error%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I ran into an interesting bug/fact today while messing around with MySQL 5.5.  It seems that in the DDL, you can&#8217;t say &#8220;Type=InnoDB|MyISAM|Foo&#8221; anymore. You have to say &#8220;Engine=InnoDB&#8221;. </p>
<p>This will break your propel:build-all , or propel:build-all-load  .. or if you manually try to execute the sql from data/sql/*. You&#8217;ll get the following error: </p>
<blockquote><p>
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#8216;Type=InnoDB&#8217; at line 11
</p></blockquote>
<p>This issue is resolved in Propel 1.5.0, but I&#8217;m not sure when Symfony will include that in the Symfony 1.4 series. </p>
<p>To fix this issue, all you need to do is edit one file:</p>
<blockquote><p>
symfony/lib/plugins/sfPropelPlugin/lib/vendor/propel-generator/classes/propel/engine/builder/sql/mysql/MysqlDDLBuilder.php</p>
<p>Line 156, change it to say:  $script .= &#8220;Engine=$mysqlTableType&#8221;;
</p></blockquote>
<p>Hope this helps anyone else using Propel, Symfony and MySQL 5.5 </p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/05/symfony-mysql5-5-error/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HipHop for PHP is not for you 60% of the time, everytime.</title>
		<link>http://thirdpartycode.com/2010/02/hiphop-for-php/</link>
		<comments>http://thirdpartycode.com/2010/02/hiphop-for-php/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 15:18:11 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[hiphop]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=523</guid>
		<description><![CDATA[My apologies to Ron Burgundy for the title of the post, but I&#8217;m just a fan of the wisest man to ever live. As Marco and Illia and countless others have said, unless you don&#8217;t work with PHP or were &#8230; <a href="http://thirdpartycode.com/2010/02/hiphop-for-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F02%2Fhiphop-for-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F02%2Fhiphop-for-php%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>My apologies to <a href="http://www.imdb.com/title/tt0357413/quotes">Ron Burgundy</a> for the title of the post, but I&#8217;m just a fan of the wisest man to ever live.</p>
<div id="_mcePaste">As <a href="http://blog.tabini.ca/2010/02/hiphop-what-you-need-to-know/">Marco</a> and <a href="http://ilia.ws/archives/213-My-Thoughts-on-HipHop.html">Illia </a>and c<a href="http://www.planet-php.net/search/hiphop">ountless others</a> have said, unless you don&#8217;t work with PHP or were in a coma, Facebook released</div>
<div id="_mcePaste"><a title="HipHop for PHP" href="http://developers.facebook.com/news.php?blog=1&amp;story=358">HipHop for PHP</a> , it&#8217;s open source, it&#8217;s awesome, it makes you go fast.</div>
<h2>It&#8217;s not for you.</h2>
<h2><span style="font-weight: normal; font-size: 13px;">You, being the average PHP developer, systems administrator, hacker.  A lot is being made of how CPU load went down by 50% etc, that&#8217;s a great number and on the surface very hard to argue with, but to really understand it, you must understand the problem a lot better. Facebook didn&#8217;t decide to write HipHop and use it in production because they had all this money laying around and felt like paying 3 engineers to work on something. They looked at other existing alternatives, implemented them, and when they maxed them out, decided to switch.</span></h2>
<h2>HipHop Does Not:</h2>
<div id="_mcePaste">
<ol>
<li>Make your database queries faster. A slow database is slow whether accessed via PHP or C++, Java, Scala, Ruby&#8230;..</li>
<li>Make your images load faster</li>
<li>Debug faster / better, if anything you&#8217;ll be debugging HipHop and PHP , to make sure something didn&#8217;t break in the conversion.</li>
</ol>
</div>
<div id="_mcePaste">I really want people to understand, that the decision to switch to HipHop isn&#8217;t a light decision, and it&#8217;s definitely not the silver bullet.</div>
<h3>If anything, HipHop should be your last resort.</h3>
<div></div>
<h2>But, it&#8217;ll help me reduce the number of web heads!</h2>
<div id="_mcePaste">It&#8217;ll also make you change your deployment process, you&#8217;ll have to learn how to use gdb and other tools to debug things in production.</div>
<div id="_mcePaste">Keep that in mind when you think about the monthly cost of a cloud server, or a slice at slicehost. The number of servers arguments comes into play <em><strong>when you can eliminate &gt; 100 servers</strong></em>.</div>
<div></div>
<div>If you&#8217;re going from 4 servers to 2, I guarantee you that you&#8217;re doing it wrong.</div>
<div></div>
<div>I suggest you to look into your application more, and find the bottlenecks. Be absolutely certain that you can&#8217;t tweak your DB any more, or use APC, or Zend Server or something else.</div>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/02/hiphop-for-php/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Installing the PHP SSH2 extension in Snow Leopard (10.6)</title>
		<link>http://thirdpartycode.com/2010/01/installing-the-php-ssh2-extension-in-snow-leopard-10-6/</link>
		<comments>http://thirdpartycode.com/2010/01/installing-the-php-ssh2-extension-in-snow-leopard-10-6/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 21:03:58 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=518</guid>
		<description><![CDATA[Getting PHP with SSH support is not an easy task in Snow Leopard. If you need it, here&#8217;s a hackish way to do it, until Sara or Mike get around to patching the ssh2 in PECL. Requirements: Xcode : You&#8217;re &#8230; <a href="http://thirdpartycode.com/2010/01/installing-the-php-ssh2-extension-in-snow-leopard-10-6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F01%2Finstalling-the-php-ssh2-extension-in-snow-leopard-10-6%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F01%2Finstalling-the-php-ssh2-extension-in-snow-leopard-10-6%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Getting PHP with SSH support is not an easy task in Snow Leopard. If you need it, here&#8217;s a hackish way to do it, until Sara or Mike get around to patching the ssh2 in PECL.</p>
<h2>Requirements:</h2>
<ul>
<li>Xcode : You&#8217;re going to be compiling stuff, get it from the apple dev site, be sure to install the unix dev tools.</li>
<li>Brew: This will help you install libssh2: <a href="http://github.com/mxcl/homebrew">http://github.com/mxcl/homebrew</a></li>
</ul>
<h2>The Hack</h2>
<p>In an ideal world, all you should&#8217;ve had to do is just run <em>sudo pecl install ssh2-beta</em>, if you do this, it&#8217;ll fail even after you&#8217;ve met the dependencies above.</p>
<p>To make your life easier, go ahead and run that command, and let it fail. Once it fails, you&#8217;ll need to patch the downloaded file.</p>
<p>In my case, I had to go to <em>/private/var/tmp/apache_mod_php/apache_mod_php-53~1/Build/tmp/pear/download/ssh2-0.11.0</em></p>
<ol>
<li>Go get the patch file mentioned here: <a href="http://pecl.php.net/bugs/bug.php?id=16727">http://pecl.php.net/bugs/bug.php?id=16727</a></li>
<li>Install the patch: patch -p0 &lt; ssh2-php53.patch</li>
<li>Run make</li>
<li>Run make install</li>
<li>Add the extension in php.ini (extension=ssh2.so)</li>
</ol>
<p>Have fun with the docs: <a href="http://php.net/manual/en/book.ssh2.php">http://php.net/manual/en/book.ssh2.php</a></p>
<p>PS: I&#8217;m running Snow Leopard 10.6.3 so my paths may be different than most people running 10.6.2. (yes 10.6.3 will have 5.3.1)</p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/01/installing-the-php-ssh2-extension-in-snow-leopard-10-6/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Managing WordPress and other PHP projects with Ruby</title>
		<link>http://thirdpartycode.com/2010/01/managing-wordpress-and-other-php-projects-with-ruby/</link>
		<comments>http://thirdpartycode.com/2010/01/managing-wordpress-and-other-php-projects-with-ruby/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 11:34:14 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=507</guid>
		<description><![CDATA[The past month or so has given us a lot of blog posts on how, and why we should use automated build and deploy systems. One of the best deployment systems out there (imho), is by the Ruby community, and &#8230; <a href="http://thirdpartycode.com/2010/01/managing-wordpress-and-other-php-projects-with-ruby/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F01%2Fmanaging-wordpress-and-other-php-projects-with-ruby%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2010%2F01%2Fmanaging-wordpress-and-other-php-projects-with-ruby%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>The past month or so has given us a lot of blog posts on how, and why we should use <a href="http://www.whitewashing.de/blog/articles/125"> automated build and deploy </a> systems.<br />
One of the best deployment systems out there (imho), is by the Ruby community, and it&#8217;s called Capistrano. We&#8217;ve been using it internally since this summer to manage and deploy our Symfony application with great success. I&#8217;ll be sharing the methodology to &#8220;Capify&#8221; a Symfony project soon, but first I wanted to share the <a href="http://github.com/vluther/wordpress-capistrano">WordPress-Capistrano</a> project.</p>
<p>The goals of the project are:</p>
<ol>
<li> Make deployment and upgrades of WordPress easier for multiple installs of wordpress on multiple hosts</li>
<li>Secure WordPress in production by setting stricter permissions, to prevent SQL/XSS attacks that modify PHP files.</li>
<li>Allow one to easily manage the 3 tiered development cycle, but with WordPress</li>
<li>Make deployment of WordPress simpler on the Rackspace Cloud</li>
<li>Synchronization of WordPress stages (move db from production to stage, push configuration settings to production)</li>
</ol>
<p>Currently, you can clone the repository, configure wordpress locally, setup your Capistrano recipe and start deploying.</p>
<p>I&#8217;ve tried to comment out the recipes, but I&#8217;m sure I need to do a better job. Feel free to ask me any questions, post issues and patches.</p>
<p>I&#8217;m also looking into the <a href="http://github.com/railsmachine/moonshine"> Moonshine </a> project, and perhaps forking it to be independent of Rails, I&#8217;m really digging it&#8217;s ease of use and depth of features.</p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2010/01/managing-wordpress-and-other-php-projects-with-ruby/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>URLs or URis, What&#8217;s the difference?</title>
		<link>http://thirdpartycode.com/2009/12/urls-or-uris-who-uses-them-and-when/</link>
		<comments>http://thirdpartycode.com/2009/12/urls-or-uris-who-uses-them-and-when/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 15:31:45 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=473</guid>
		<description><![CDATA[A lot of people confuse the terms URLs and URIs. This morning, the PHP Advent post by David Sklar exemplified that. Paul Reinheimer already has a rebuttal for this, and I&#8217;m expecting many more. I agree with Paul, David seems &#8230; <a href="http://thirdpartycode.com/2009/12/urls-or-uris-who-uses-them-and-when/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2009%2F12%2Furls-or-uris-who-uses-them-and-when%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2009%2F12%2Furls-or-uris-who-uses-them-and-when%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>A lot of people confuse the terms URLs and URIs. This morning, the <a href="http://phpadvent.org/2009/do-urls-matter-by-david-sklar">PHP Advent post by David Sklar</a> exemplified that. <a href="http://blog.preinheimer.com/index.php?/archives/346-Functional-URLs-More-than-Developer-Vanity.html">Paul Reinheimer</a> already has a rebuttal for this, and I&#8217;m expecting many more.</p>
<p>I agree with Paul, David seems to be missing the point.</p>
<ul>
<li> <strong> URI: </strong> Uniform Resource Identifier/Indicator</li>
<li> <strong> URL: </strong> Uniform Resource Locator</li>
</ul>
<p>The keyword here is IDENTIFIER. Just because you know the identifier, doesn&#8217;t mean you know the content/topic yet. An Identifier is normally used by machines to find out where to go. URL Shortening services produce URIs by default, but offer the ability to create URLs. Take for example: <strong><em>http://tinyurl.com/yj432kb</em></strong> and <em><strong>http://tinyurl.com/thirdpartycode</strong></em> . The first one is a URI, a human has no clue what it&#8217;s about. The second one, you can guess what it&#8217;s about.</p>
<p>The fact that they both end up at the same location may make you think that human readable urls aren&#8217;t important, but as the number of shortened urls grow, and the number of services providing these urls grow, we&#8217;ll need some way of knowing what&#8217;s NSFW, what&#8217;s taking you to a phishing site, or what&#8217;s just a prank site.   As this happens, the chances of someone clicking on jy32kb vs clicking on /thirdpartycode decreases, because people will get burnt too often.</p>
<p>I&#8217;m already seeing security teams blocking emails containing tinyurls, twitter clients have the ability to display the end url in your view. URLs do matter, even if they point to the same site, www.cnn.com looks a lot more trustworthy than http://tinyurl.com/4qz</p>
<p>Sure, I can manipulate URLs to give a false sense of security, or to try and fool the search engines. But that&#8217;s a different topic, and is already being addressed by search engines</p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2009/12/urls-or-uris-who-uses-them-and-when/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Netbeans crashing under Snow Leopard &#8211; possible fix</title>
		<link>http://thirdpartycode.com/2009/11/netbeans-snow-leopard-crashes/</link>
		<comments>http://thirdpartycode.com/2009/11/netbeans-snow-leopard-crashes/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 05:44:50 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://thirdpartycode.com/?p=456</guid>
		<description><![CDATA[If you&#8217;re using Netbeans in Snow Leopard, and are noticing a lot of random crashes, help is on the way. Thanks to an idea by Keith Casey, I decided to upgrade the JVM/JDK/JRE that comes with Snow Leopard. The default &#8230; <a href="http://thirdpartycode.com/2009/11/netbeans-snow-leopard-crashes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2009%2F11%2Fnetbeans-snow-leopard-crashes%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2009%2F11%2Fnetbeans-snow-leopard-crashes%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>If you&#8217;re using Netbeans in Snow Leopard, and are noticing a lot of random crashes, help is on the way.  Thanks to an idea by Keith Casey, I decided to upgrade the JVM/JDK/JRE that comes with Snow Leopard. The default version that ships is currently 1.6.0.15, I upgraded to the developer preview of 1.6.0_17 and I&#8217;m happy to report that Netbeans hasn&#8217;t crashed in 3 days.  I got the developer release through my ADC membership, but I think you can also get it if you&#8217;re an iPhone developer, or a free member of the ADC. Netbeans is by far the best PHP IDE, free or non free for OS X. The intermittent crashes were getting very annoying, and making it unusable. I&#8217;m happy again.  </p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2009/11/netbeans-snow-leopard-crashes/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Changing MySQL storage engine for one table in your Propel/Symfony project</title>
		<link>http://thirdpartycode.com/2009/09/changing-mysql-storage-engine-for-one-table-in-propel-symfony/</link>
		<comments>http://thirdpartycode.com/2009/09/changing-mysql-storage-engine-for-one-table-in-propel-symfony/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 17:22:40 +0000</pubDate>
		<dc:creator>Vid Luther</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.phpcult.com/blog/?p=345</guid>
		<description><![CDATA[I need one MyISAM table in my schema, I&#8217;m using Symfony 1.2 and Propel 1.3. As flexible as Symfony and it&#8217;s YAML files are, Propel currently doesn&#8217;t allow you to change the storage engine on the fly. You use the &#8230; <a href="http://thirdpartycode.com/2009/09/changing-mysql-storage-engine-for-one-table-in-propel-symfony/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fthirdpartycode.com%2F2009%2F09%2Fchanging-mysql-storage-engine-for-one-table-in-propel-symfony%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fthirdpartycode.com%2F2009%2F09%2Fchanging-mysql-storage-engine-for-one-table-in-propel-symfony%2F&amp;source=vidluther&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I need one MyISAM table in my schema, I&#8217;m using Symfony 1.2 and Propel 1.3. As flexible as Symfony and it&#8217;s YAML files are, Propel currently doesn&#8217;t allow you to change the storage engine on the fly. You use the storage engine as specified in propel.ini. As discussed in the <a href="http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/FAQ"> Propel FAQ </a>.</p>
<p>So, the next best thing to do now is to have it so that when Symfony runs propel:insert-sql, I can piggyback my own SQL to it. Luckily, this is possible, and it&#8217;s <a href="http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/HowTos/AdditionalSQLFiles"> explained here </a></p>
<p>I now have my own SQL file running at the end, where I do an ALTER TABLE. For the lazy web.</p>
<p>1. Create your Alter table:</p>
<blockquote><p>ALTER TABLE `database`.`footable` ENGINE=`MyISAM`;</p></blockquote>
<p>2. Save the file in $projectdir/data/sql/piggyback.sql</p>
<p>3. Edit $projectdir/data/sql/sqldb.map and append the following line:</p>
<blockquote><p>piggyback.sql=dbconnectioname (usually propel)</p></blockquote>
<p>Save the file and run</p>
<p>./symfony propel:insert-sql</p>
]]></content:encoded>
			<wfw:commentRss>http://thirdpartycode.com/2009/09/changing-mysql-storage-engine-for-one-table-in-propel-symfony/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: thirdpartycode.com @ 2010-09-10 16:52:24 -->