<?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>clay loveless</title>
	<atom:link href="http://claylo.com/feed" rel="self" type="application/rss+xml" />
	<link>http://claylo.com</link>
	<description></description>
	<lastBuildDate>Tue, 27 Oct 2009 08:17:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP Frameworks and Libraries Survey</title>
		<link>http://claylo.com/php-frameworks-and-libraries-survey</link>
		<comments>http://claylo.com/php-frameworks-and-libraries-survey#comments</comments>
		<pubDate>Tue, 27 Oct 2009 08:17:46 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://claylo.com/?p=83</guid>
		<description><![CDATA[      		Over the years, there have been many simple polls about PHP frameworks, libraries, and other PHP periphery.
I've created a more comprehensive survey about PHP frameworks, libraries, databases, evaluation techniques and other assorted tidbits in an attempt to better understand how people pick the libraries they do. My hope is [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Fphp-frameworks-and-libraries-survey"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Fphp-frameworks-and-libraries-survey" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+PHP+Frameworks+and+Libraries+Survey+http%3A%2F%2Fclaylo.com%2Fn2o" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>Over the years, there have been many simple polls about PHP frameworks, libraries, and other PHP periphery.</p>
<p>I've created <a href="http://j.mp/phpsurvey" target="_blank">a more comprehensive survey</a> about PHP frameworks, libraries, databases, evaluation techniques and other assorted tidbits in an attempt to better understand how people pick the libraries they do. My hope is that if enough people complete the survey, a picture will form that illustrates some itches that so many projects have been created to try to scratch.</p>
<p>I intend to share some (perhaps MOST) of the information gathered -- so don't worry that all this is going into a black hole somewhere.</p>
<p>The first version of the <a href="http://j.mp/phpsurvey" target="_blank">Killersoft PHP Frameworks &amp; Libraries Survey</a> is available here: <a href="http://j.mp/phpsurvey" target="_blank">http://j.mp/phpsurvey</a></p>
<p>Take a few moments to fill it out if you can! It should only take 10 minutes (or less!).</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fn2o&title=PHP+Frameworks+and+Libraries+Survey" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fn2o&title=PHP+Frameworks+and+Libraries+Survey" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fn2o&title=PHP+Frameworks+and+Libraries+Survey" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+PHP+Frameworks+and+Libraries+Survey+http%3A%2F%2Fclaylo.com%2Fn2o" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fn2o&t=PHP+Frameworks+and+Libraries+Survey" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fn2o&title=PHP+Frameworks+and+Libraries+Survey" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/php-frameworks-and-libraries-survey/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>5 Reasons Simple Cloud is a Dark Cloud</title>
		<link>http://claylo.com/5-reasons-simple-cloud-is-a-dark-cloud</link>
		<comments>http://claylo.com/5-reasons-simple-cloud-is-a-dark-cloud#comments</comments>
		<pubDate>Thu, 24 Sep 2009 20:10:19 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[simple cloud]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://claylo.com/?p=80</guid>
		<description><![CDATA[      		When it comes to technology, everyone thinks they want interoperability. Using SQL, JavaScript or map APIs? There's an abstraction layer for that (SQL, JavaScript, map APIs). Writing mobile applications? There's an abstraction layer for that too (PhoneGap, Appcelerator, among others).
Developing "cloud-native" applications? Soon there'll be an abstraction layer for [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2F5-reasons-simple-cloud-is-a-dark-cloud"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2F5-reasons-simple-cloud-is-a-dark-cloud" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+5+Reasons+Simple+Cloud+is+a+Dark+Cloud+http%3A%2F%2Fclaylo.com%2Fdc" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>When it comes to technology, everyone thinks they want interoperability. Using SQL, JavaScript or map APIs? There's an abstraction layer for that (<a href="http://www.google.com/search?q=SQL+abstraction">SQL</a>, <a href="http://www.google.com/search?q=JavaScript+abstraction">JavaScript</a>, <a href="http://www.mapstraction.com/">map APIs</a>). Writing mobile applications? There's an abstraction layer for that too (<a href="http://www.phonegap.com/">PhoneGap</a>, <a href="http://www.appcelerator.com/">Appcelerator</a>, among others).</p>
<p>Developing "cloud-native" applications? Soon there'll be an abstraction layer for that too. Yesterday <a href="http://www.zend.com/">Zend</a> announced the <a href="http://www.simplecloud.org/">Simple Cloud API</a>, a set of PHP classes for "writing scalable and highly available applications that are still portable."</p>
<p>Sounds great, right? Not so much. As Chief Architect of a PHP-based "cloud-native" application that's handling hundreds of millions of requests per month, there's no way I'd consider using Simple Cloud. Here are five reasons why you shouldn't either:</p>
<p><strong>1. Abstractions leak.</strong> It's never as easy as it seems, which becomes painfully obvious at the least opportune moment. Let's have a show of hands of how many people have launched a SQL-abstraction based web application, only to find later that the crazy-ass SQL your toolset generated was 100x slower than one you'd have cooked up on your own. Okay then. <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">The Law of Leaky Abstractions</a> drags us down when it's time to figure out what's broken.</p>
<p><strong>2. The Lowest common denominator rules.</strong> Abstraction layers often talk about unifying access to technologies where the differences are insignificant. Which is funny, since the providers of those technologies introduce differences to be competitive. Do you really want your web applications to be built around the elements of cloud services that are all the same? Your competition will likely be focusing on leveraging cloud advantages to the max, which will inevitably mean taking advantage of features that a lowest common denominator API ignores.</p>
<p><strong>3. The true leaders don't participate.</strong> Simple Cloud lists contributors including Microsoft, IBM, Rackspace, Nirvanix and Go Grid, and dubs these companies as "leading the cloud revolution." Note how the three published APIs all include support for an Amazon Web Services solution. Who's really leading here? Amazon is leading the cloud revolution, and has been all along. Everyone else is just playing catch-up.</p>
<p>We've seen a similar situation recently. Remember <a href="http://www.opensocial.org/">OpenSocial</a>? Google, MySpace, Yahoo and a few others banded together when Facebook handed their asses to them a couple of years ago. Facebook has never participated, and continues to lead the pack in social platform application development.</p>
<p>Of course all the companies that are not leading want to band together for the sake of interoperability, since interoperability means a greater chance of survival. But as a developer, be careful of getting roped into these company-serving agendas--it will cost you more than it costs them, with little return on your investment.</p>
<p><strong>4. Native adoption isn't hard.</strong> Have you looked at the Amazon Web Services APIs, and noticed how many of them actually use the term "Simple" in their full descriptions? SDB is short for SimpleDB, S3 is short for Simple Storage Service. Is an API simplifying these already-simple APIs really necessary? If you're looking for a reduced feature set and inability to leverage each service to the maximum, sure! Otherwise, bite the very tiny bullet and learn about each service that you need. They're not hard. Trust me.</p>
<p><strong>5. Face it: You'll probably never move.</strong> Despite portability claims, you'll likely never move from one service to another willy nilly. Consider the last significant web application you built around the database of your choice. Even if you used an abstraction layer, do you <em>really</em> think you could just pick it up tomorrow and move to a competing database engine? Whenever this scenario is truly considered, it's a much more complicated problem than just swapping out the underlying RDBMS. An audit must be done of all code to make sure no one snuck in a workaround query that included vendor-specific features, a new backup system needs to be evaluated (odd that no one has cooked up an SQL backup abstraction layer!), performance testing needs to be done ... all for what? Try doing this in a real company and see how quickly your plan gets shot down. Real companies have real business problems to be solving, and rarely have spare engineering cycles to waste on switching technologies that lie behind abstraction layers. So, just because you <strong>could</strong> doesn't mean you ever <strong>will</strong>.</p>
<p>With all that said, don't get me wrong: I love it that there are multiple providers getting into the cloud computing game in a meaningful way. I am actively evaluating each service and looking at ways to spread my cloud dependancies around to reduce my exposure to single-company cloud fail.</p>
<p>However, with each set of services I evaluate, I look for exactly the kinds of differentiating details that abstraction layers strive to hide, and will build out my application to leverage each environment to the max. My company and the services my customers consume deserve the very best utilization of upstream resources possible. Don't yours?</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fdc&title=5+Reasons+Simple+Cloud+is+a+Dark+Cloud" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fdc&title=5+Reasons+Simple+Cloud+is+a+Dark+Cloud" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fdc&title=5+Reasons+Simple+Cloud+is+a+Dark+Cloud" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+5+Reasons+Simple+Cloud+is+a+Dark+Cloud+http%3A%2F%2Fclaylo.com%2Fdc" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fdc&t=5+Reasons+Simple+Cloud+is+a+Dark+Cloud" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fdc&title=5+Reasons+Simple+Cloud+is+a+Dark+Cloud" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/5-reasons-simple-cloud-is-a-dark-cloud/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Memo to Start-ups: You Don&#8217;t Need a Meat Market</title>
		<link>http://claylo.com/you-dont-need-a-meat-market</link>
		<comments>http://claylo.com/you-dont-need-a-meat-market#comments</comments>
		<pubDate>Fri, 18 Sep 2009 20:37:05 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[techcrunch]]></category>

		<guid isPermaLink="false">http://claylo.com/?p=71</guid>
		<description><![CDATA[      		With all the TechCrunch50 chatter earlier this week, it's easy to see how entrepreneurs feel that if they're not putting on a great showing at an event like TC50, they're missing a golden opportunity. That notion was craftily compounded by the announcement of the sale of the first TechCrunch40 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Fyou-dont-need-a-meat-market"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Fyou-dont-need-a-meat-market" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+Memo+to+Start-ups%3A+You+Don%27t+Need+a+Meat+Market+http%3A%2F%2Fclaylo.com%2Fmm" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>With all the <a href="http://www.techcrunch50.com/" target="_self">TechCrunch50</a> chatter earlier this week, it's easy to see how entrepreneurs feel that if they're not putting on a great showing at an event like TC50, they're missing a golden opportunity. That notion was craftily compounded by the announcement of the sale of the first <a href="http://www.techcrunch.com/2009/09/13/intuit-to-acquire-former-techcrunch50-winner-mint-for-170-million/" target="_blank">TechCrunch40 winner's (Mint.com) to Intuit for &#36;170M</a>. Well played PR, folks.</p>
<p>All the buzz was then followed by Sarah Lacy's parade-drenching "<a href="http://www.techcrunch.com/2009/09/17/memo-to-start-ups-you’re-supposed-to-be-changing-the-world-remember/" target="_blank">Memo to Start-ups: You're Supposed to Be Changing the World, Remember?</a>", which gripes about this year's TC50 crop playing it safe.</p>
<p>I didn't attend TC50, but I have attended these start-up launch binges before. It's never clear who benefits the most from these events, but my gut tells me it's most often the event organizers, and not the start-ups themselves. Sometimes the commentary is good, but there are other ways to get that kind of honest feedback. In some cases, the launch binge meat markets don't even offer commentary or criticism -- they just give you a five minute slot.</p>
<p>To me, these kinds of events aren't necessary for entrepreneurial success. By the end of the event, no one remembers who's launching what, and instead of gaining momentum naturally, all an entrepreneur's efforts are bet on the hope that everything will go off without a hitch with the presentation, the people watching won't be bored or distracted, etc. Despite what start-up bloggers and event organizers want you to think, you just don't need the meat market for a successful launch.</p>
<p>Look at the esteemed judges of TechCrunch 50:</p>
<ul>
<li><a href="http://www.techcrunch.com/2009/09/15/tc50-backstage-reid-hoffman-on-a-linkedin-ipo-and-what-startups-may-beat-him-out/" target="_blank">Reid Hoffman</a> of LinkedIn</li>
<li><a href="http://www.techcrunch.com/2009/09/14/tc50-backstage-we-pry-skype-info-out-of-marc-andreessen-or-try/" target="_blank">Marc Andreessen</a> of Netscape</li>
<li><a href="http://www.techcrunch.com/2009/09/15/tc50-backstage-well-tell-us-how-you-really-feel-tim-oreilly/" target="_blank">Tim O'Reilly</a> of O'Reilly Media</li>
<li><a href="http://www.techcrunch.com/2009/09/15/tc50-backstage-kevin-rose-on-whats-going-right-at-digg-what-went-wrong-at-pownce/" target="_blank">Kevin Rose</a> of Digg</li>
<li><a href="http://www.techcrunch.com/2009/09/14/tc50-backstage-tony-hsieh-on-why-you-should-be-changing-the-worldsh/" target="_blank">Tony Hsieh</a> of Zappos</li>
</ul>
<p>Also, consider the other world-changing companies that Lacy mentions, such as Google, Facebook and Twitter.</p>
<p>Now ask yourself: How many of these world-changing companies launched their start-up selves at a meat market?</p>
<p>I'm not questioning the value of "normal" TechCrunch publicity, nor am I even saying that I'll never launch a start-up at one of these events someday (as hard as it is to imagine, never say never). I'm merely suggesting that many of the real game-changers of the next wave may have decided their companies are worth more than 15 minutes of pseudo-fame at a launch binge.</p>
<p>We'll know them when we see them.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fmm&title=Memo+to+Start-ups%3A+You+Don%5C%27t+Need+a+Meat+Market" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fmm&title=Memo+to+Start-ups%3A+You+Don%5C%27t+Need+a+Meat+Market" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fmm&title=Memo+to+Start-ups%3A+You+Don%5C%27t+Need+a+Meat+Market" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+Memo+to+Start-ups%3A+You+Don%27t+Need+a+Meat+Market+http%3A%2F%2Fclaylo.com%2Fmm" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fmm&t=Memo+to+Start-ups%3A+You+Don%5C%27t+Need+a+Meat+Market" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fmm&title=Memo+to+Start-ups%3A+You+Don%5C%27t+Need+a+Meat+Market" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/you-dont-need-a-meat-market/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AWS PHP5 Libraries as svn:externals</title>
		<link>http://claylo.com/aws-php5-libraries-as-svnexternals</link>
		<comments>http://claylo.com/aws-php5-libraries-as-svnexternals#comments</comments>
		<pubDate>Sun, 09 Aug 2009 00:56:28 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://claylo.com/?p=69</guid>
		<description><![CDATA[      		Many of Amazon's official PHP5 libraries for Amazon Web Services are now available (unofficially) for use as Subversion svn:externals.
To add to your SVN-managed project, just do something like this:
svn propedit svn:externals library
And add:
Amazon http://killersoft.googlecode.com/svn/AWS/tags/update-2009-05-15/Amazon
This assumes, of course, that you're keeping your external libraries in a directory called "library" (many [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Faws-php5-libraries-as-svnexternals"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Faws-php5-libraries-as-svnexternals" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+AWS+PHP5+Libraries+as+svn%3Aexternals+http%3A%2F%2Fclaylo.com%2F8dt" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>Many of Amazon's official PHP5 libraries for Amazon Web Services are now available (unofficially) for use as Subversion svn:externals.</p>
<p>To add to your SVN-managed project, just do something like this:</p>
<p><strong>svn propedit svn:externals library</strong></p>
<p>And add:</p>
<p>Amazon http://killersoft.googlecode.com/svn/AWS/tags/update-2009-05-15/Amazon</p>
<p>This assumes, of course, that you're keeping your external libraries in a directory called "library" (many Zend Framework-based projects are laid out like this). Adjust to suit your own needs if necessary.</p>
<p>I'm not wild about the code layout of Amazon's official libraries. They're more verbose and cumbersome than a many other wrappers that have been created around Amazon services. However, in the end I choose to use them despite that, for one reason: they're the official libraries.</p>
<p>They're updated more often than any other set of PHP libraries for AWS. In fact, they're often updated on the same day that API changes are released for the underlying services. And, they're comprehensive; many AWS libraries wrap "the easy stuff" or "the commonly used" stuff, but leave you on your own if you actually need to do something non-easy or uncommon.</p>
<p>So, my suggestion is to use these. Hopefully having them in all in a single, easy-to-include place will make life easier for you. It has for me!</p>
<p>My plan for keeping these current is to create a new "update-[date]" tag whenever <em>any</em> of the libraries are updated, with the date of the most recently updated library as part of the directory name. Details about what's actually changed within the update tag will be documented in a README.txt file in the top level.</p>
<p>You can find the "ground zero" update for the AWS libraries in update-2009-05-15, browseable <a href="http://code.google.com/p/killersoft/source/browse/#svn/AWS/tags/update-2009-05-15" target="_blank">here</a>.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2F8dt&title=AWS+PHP5+Libraries+as+svn%3Aexternals" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2F8dt&title=AWS+PHP5+Libraries+as+svn%3Aexternals" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2F8dt&title=AWS+PHP5+Libraries+as+svn%3Aexternals" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+AWS+PHP5+Libraries+as+svn%3Aexternals+http%3A%2F%2Fclaylo.com%2F8dt" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2F8dt&t=AWS+PHP5+Libraries+as+svn%3Aexternals" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2F8dt&title=AWS+PHP5+Libraries+as+svn%3Aexternals" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/aws-php5-libraries-as-svnexternals/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New PHP-focused Yum Repository</title>
		<link>http://claylo.com/new-php-yum-repo</link>
		<comments>http://claylo.com/new-php-yum-repo#comments</comments>
		<pubDate>Fri, 17 Jul 2009 19:13:41 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://claylo.com/?p=65</guid>
		<description><![CDATA[      		PHP 5.3 is now yum-installable.
Ever been frustrated that the latest this-or-that package for PHP is bogged down in Big Distro Packaging politics? I have been. That's why I've put together a deliberately-current-as-possible repository for PHP RPMs.
The repository is currently i386-only, though I'll be adding x86_64 packages within the next [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Fnew-php-yum-repo"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Fnew-php-yum-repo" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+New+PHP-focused+Yum+Repository+http%3A%2F%2Fclaylo.com%2Fnsj" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>PHP 5.3 is now yum-installable.</p>
<p>Ever been frustrated that the latest this-or-that package for PHP is bogged down in Big Distro Packaging politics? I have been. That's why I've put together a deliberately-current-as-possible repository for PHP RPMs.</p>
<p>The repository is currently i386-only, though I'll be adding x86_64 packages within the next week or so. Also, "regular" and "debug" builds are available for all packages, so that users may be more helpful in troubleshooting what issues they find.</p>
<p>The current list of packages, as well as all the RPM spec files for building them and information on how to set up the repository for use on your CentOS5/RHEL5 servers is available at the <a href="http://code.google.com/p/killersoft-yum/" target="_blank">killersoft-yum</a> Google Code site.</p>
<p>Have fun!</p>
<p><strong>Update:</strong> I forgot to mention one of the things I think is interesting about the way I've packaged the PHP modules in the repository. Each supported SAPI -- apache2handler (mod_php), fastcgi and cli -- each have their own configuration paths and php.ini files.</p>
<blockquote><p>/etc/php.mod.d/php.ini</p>
<p>/etc/php.cgi.d/php.ini</p>
<p>/etc/php.cli.d/php.ini</p></blockquote>
<p>Within each directory, a subdirectory for per-extension config is present.</p>
<p>If you don't like this setup, no problem: just symlink them all together and you won't know the difference. However, I think it's convenient to be able to easily specify extensions that you want to use in mod_php that you don't want to use in the PHP CLI, and vice versa. If you need an ultralight PHP CLI for some reason, you can have it without having to hobble mod_php that's running on your website.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fnsj&title=New+PHP-focused+Yum+Repository" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fnsj&title=New+PHP-focused+Yum+Repository" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fnsj&title=New+PHP-focused+Yum+Repository" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+New+PHP-focused+Yum+Repository+http%3A%2F%2Fclaylo.com%2Fnsj" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fnsj&t=New+PHP-focused+Yum+Repository" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fnsj&title=New+PHP-focused+Yum+Repository" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/new-php-yum-repo/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AWS for PHP Developers</title>
		<link>http://claylo.com/aws-for-php-developers</link>
		<comments>http://claylo.com/aws-for-php-developers#comments</comments>
		<pubDate>Wed, 29 Apr 2009 15:38:46 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://claylo.com/2009/04/29/aws-for-php-developers/</guid>
		<description><![CDATA[      		To offset the length of the article, I'll be brief: my deep dive into Amazon's PHP libraries for AWS is now available. Enjoy!
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Faws-for-php-developers"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Faws-for-php-developers" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+AWS+for+PHP+Developers+http%3A%2F%2Fclaylo.com%2Fbiz" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>To offset the length of the article, I'll be brief: my <a href="http://tr.im/awsphp">deep dive into Amazon's PHP libraries for AWS</a> is now available. Enjoy!</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fbiz&title=AWS+for+PHP+Developers" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fbiz&title=AWS+for+PHP+Developers" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fbiz&title=AWS+for+PHP+Developers" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+AWS+for+PHP+Developers+http%3A%2F%2Fclaylo.com%2Fbiz" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fbiz&t=AWS+for+PHP+Developers" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fbiz&title=AWS+for+PHP+Developers" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/aws-for-php-developers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AWS Elastic MapReduce Supports PHP</title>
		<link>http://claylo.com/aws-elastic-mapreduce-supports-php</link>
		<comments>http://claylo.com/aws-elastic-mapreduce-supports-php#comments</comments>
		<pubDate>Thu, 02 Apr 2009 08:42:46 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://claylo.com/2009/04/02/aws-elastic-mapreduce-supports-php/</guid>
		<description><![CDATA[      		It's not blatently obvious, or mentioned in detail, or even shown in any of the examples or introductions to the service.
But it's true: Amazon's new Elastic MapReduce service supports mapper and reducer scripts written in PHP. PHP 5.2.6 is installed in the environment created by the MapReduce job flows.
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Faws-elastic-mapreduce-supports-php"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Faws-elastic-mapreduce-supports-php" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+AWS+Elastic+MapReduce+Supports+PHP+http%3A%2F%2Fclaylo.com%2Ftjf" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>It's not blatently obvious, or mentioned in detail, or even shown in any of the examples or introductions to the service.</p>
<p>But it's true: Amazon's new <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=259">Elastic MapReduce</a> service supports mapper and reducer scripts written in PHP. PHP 5.2.6 is installed in the environment created by the MapReduce job flows.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Ftjf&title=AWS+Elastic+MapReduce+Supports+PHP" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Ftjf&title=AWS+Elastic+MapReduce+Supports+PHP" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Ftjf&title=AWS+Elastic+MapReduce+Supports+PHP" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+AWS+Elastic+MapReduce+Supports+PHP+http%3A%2F%2Fclaylo.com%2Ftjf" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Ftjf&t=AWS+Elastic+MapReduce+Supports+PHP" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Ftjf&title=AWS+Elastic+MapReduce+Supports+PHP" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/aws-elastic-mapreduce-supports-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Include This</title>
		<link>http://claylo.com/include-this</link>
		<comments>http://claylo.com/include-this#comments</comments>
		<pubDate>Mon, 24 Sep 2007 19:22:16 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://claylo.com/2007/09/24/include-this/</guid>
		<description><![CDATA[      		Make sure to include this in your reading today. Read it slowly, perhaps a few times. It&#8217;s interesting stuff to keep in mind if you&#8217;re concerned about achieving maximum performance in your PHP applications.
Thanks Gopal Vijayaraghavan, link via Greg Beaver.
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Finclude-this"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Finclude-this" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+Include+This+http%3A%2F%2Fclaylo.com%2Fgat" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p>Make sure to <a href="http://t3.dotgnu.info/blog/php/demystifying-autofilter.html">include this</a> in your reading today. Read it slowly, perhaps a few times. It&#8217;s interesting stuff to keep in mind if you&#8217;re concerned about achieving maximum performance in your PHP applications.</p>
<p>Thanks Gopal Vijayaraghavan, link via <a href="http://marc.info/?l=pear-dev&amp;m=119065981710276&amp;w=2">Greg Beaver</a>.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fgat&title=Include+This" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fgat&title=Include+This" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fgat&title=Include+This" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+Include+This+http%3A%2F%2Fclaylo.com%2Fgat" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fgat&t=Include+This" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fgat&title=Include+This" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/include-this/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Beer in Atlanta</title>
		<link>http://claylo.com/free-beer-in-atlanta</link>
		<comments>http://claylo.com/free-beer-in-atlanta#comments</comments>
		<pubDate>Tue, 11 Sep 2007 19:40:38 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[mashery]]></category>
		<category><![CDATA[php 5]]></category>
		<category><![CDATA[phpworks]]></category>

		<guid isPermaLink="false">http://claylo.com/2007/09/11/free-beer-in-atlanta/</guid>
		<description><![CDATA[      		AKA: Mashery Recruiting at php&#124;works
The company I had pleasure of co-founding last summer is once again on the prowl for top-notch, Zend Certified PHP developers.
We&#8217;re taking the hunt for these folks to php&#124;works in Atlanta. Whenever possible, Mashery will be luring the quality developers with free beer.
That&#8217;s right: free [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Ffree-beer-in-atlanta"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Ffree-beer-in-atlanta" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+Free+Beer+in+Atlanta+http%3A%2F%2Fclaylo.com%2Form" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<h2>AKA: Mashery Recruiting at php|works</h2>
<p>The company I had pleasure of co-founding last summer is once again on the prowl for top-notch, Zend Certified PHP developers.</p>
<p>We&#8217;re taking the hunt for these folks to <a href="http://works.phparch.com/">php|works</a> in Atlanta. Whenever possible, <a href="http://www.mashery.com/">Mashery</a> will be luring the quality developers with free beer.</p>
<p>That&#8217;s right: free beer that is <a href="http://en.wikipedia.org/wiki/Gratis_versus_Libre">free, as in beer</a>.</p>
<p>We&#8217;re also sponsoring a lunch on BOTH Sept 13 and 14, as a good coder knows she cannot code on beer alone.</p>
<p>Show anyone from <a href="http://www.mashery.com/">Mashery</a> some proof that you recently took a PHP 5 Zend Certification Exam or are already PHP 5-Zend Certified, and we&#8217;ll enter your name in a drawing for a free <a href="http://www.apple.com/ipodtouch/">8GB Apple iPod Touch</a>.</p>
<h2 id="cool_but_why_mashery">Cool, but Why Mashery?</h2>
<p><img src="http://www.mashery.com/public/Mashery/images/apiconference/logos/mashery.gif" alt="Mashery" style="clear: left; float: left; margin: 10px 10px 10px 0;" />Aside from the beer and a chance at a kick-ass iPod, why would you care about Mashery?</p>
<p>Well &#8230;</p>
<ul>
<li>
<p>Mashery is doing demanding PHP work at the bleeding edge of today&#8217;s most exciting technologies, such as mobile applications, AJAX and of course, web services.</p>
</li>
<li>
<p>We work with cool tools like Amazon EC2 and S3. And we <em>work</em> them hard.</p>
</li>
<li>
<p>Mashery&#8217;s clients represent a growing stable of very high volume web services. We tune our services to shave milliseconds off their runtime, and pound on PHP until it (occasionally) weeps.</p>
</li>
</ul>
<p>&#8230; among other things.</p>
<p>After more than a year since co-founding Mashery, I can honestly say that in my ten years of working with PHP, I have never had more fun. The work is very hard, but very rewarding. And, it&#8217;s always interesting; as a &#8220;smart proxy&#8221; operator, Mashery&#8217;s engineers are constantly facing new challenges and solving them in creative ways.</p>
<p>Never a dull moment, as they say. That&#8217;s Mashery.</p>
<h2 id="up_for_it">Up for it?</h2>
<p>If you&#8217;re interested in learning more about Mashery and our unique opportunities, drop us an email at jobs@mashery.com. The job posting is <a href="http://www.mashery.com/PHP_Developer">here</a>.</p>
<p>If you&#8217;re going to be attending php|works in Atlanta, be sure to look me up. I&#8217;ll be there with fellow co-founder Kirsten Spoljaric from Wednesday thru Friday evening. Email phpworks@mashery.com to set up a time to meet with us, or to find out about what our beer and food distribution schedule will be.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Form&title=Free+Beer+in+Atlanta" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Form&title=Free+Beer+in+Atlanta" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Form&title=Free+Beer+in+Atlanta" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+Free+Beer+in+Atlanta+http%3A%2F%2Fclaylo.com%2Form" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Form&t=Free+Beer+in+Atlanta" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Form&title=Free+Beer+in+Atlanta" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/free-beer-in-atlanta/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Did Not Cause Facebook Code Leakage</title>
		<link>http://claylo.com/php-did-not-cause-facebook-code-leakage</link>
		<comments>http://claylo.com/php-did-not-cause-facebook-code-leakage#comments</comments>
		<pubDate>Sun, 12 Aug 2007 14:07:21 +0000</pubDate>
		<dc:creator>@claylo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[techcrunch]]></category>

		<guid isPermaLink="false">http://claylo.com/2007/08/12/php-did-not-cause-facebook-code-leakage/</guid>
		<description><![CDATA[      		Facebook experienced a technical glitch over the weekend. The nature of the glitch was that the source code for the Facebook homepage was displayed instead of the result of the execution of that source code. Widespread news of the glitch first broke in this TechCrunch article by TechCrunch writer [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fclaylo.com%2Fphp-did-not-cause-facebook-code-leakage"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fclaylo.com%2Fphp-did-not-cause-facebook-code-leakage" height="61" width="51" /></a></div>      <a class="retweet" href="http://twitter.com/home?status=RT+%40claylo%3A+PHP+Did+Not+Cause+Facebook+Code+Leakage+http%3A%2F%2Fclaylo.com%2Fdmv" target="_blank"><img src="http://prettylinkpro.s3.amazonaws.com/tweets/retweet-0.png" border="0" style="border: 0;"/></a>		<p><a href="http://www.facebook.com/">Facebook</a> experienced a technical glitch over the weekend. The nature of the glitch was that the <a href="http://facebooksecrets.blogspot.com/">source code</a> for the Facebook homepage was displayed instead of the result of the execution of that source code. Widespread news of the glitch first broke in <a href="http://www.techcrunch.com/2007/08/11/facebook-source-code-leaked/">this TechCrunch article</a> by TechCrunch writer and OmniDrive founder <a href="http://www.nik.com.au/">Nik Cubrilovic</a>.</p>
<p>I agree with Cubrilovic that the inadvertent delivery of source code instead of the result of that source code is certainly a horrific situation, with potentially serious ramifications for any company that experiences such a problem on a large scale basis.</p>
<p>That a company like Facebook, currently a <a href="http://google.com/trends?q=facebook">hot ticket</a> for searches, articles and blog posts, would experience this kind of problem is noteworthy. </p>
<p>Unfortunately, the updates appended to the article imply that PHP is somehow responsible for this leakage. In the first article update, Cubrilovic states:</p>
<blockquote>
<p>It seems that the cause was apache and mod_php sending back un-interpreted source code as opposed to output, due to either a server misconfiguration or high load (this is a known issue).</p>
</blockquote>
<p>On the first of Cubrilovic&#8217;s suggested causes, server misconfiguration: well, duh.</p>
<p>Of course servers will behave strangely if they are misconfigured. The world of a system administrator is one of details, and when it comes to managing load balanced web servers for an extremely high-traffic destination like Facebook, it&#8217;s a world of a large number of details. Miss one of them and things will predictably start breaking in unpredictable ways.</p>
<p>On Cubrilovic&#8217;s second allegation: It&#8217;s &#8220;a known issue&#8221; that PHP barfs out source code under high load? I&#8217;ve been writing PHP code for some very, very high traffic websites for over 10 years, and this is the first I&#8217;ve heard of this.</p>
<p>Surely we in the PHP community would have heard from someone like <a href="http://lerdorf.com/bio.php">Rasmus</a> if PHP were prone to puking source at a high load. As an infrastructure architect at Yahoo!, Rasmus has likely seen how PHP behaves under load levels most of us only fantasize about. If PHP coders were building their applications on a platform pre-destined for <a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/">Twitter-like failures</a>, no doubt we&#8217;d have heard about it by now.</p>
<p>Can anyone provide links to articles or posts indicating that PHP will eject application source under a heavy load?</p>
<p>It&#8217;s infinitely more likely that Facebook&#8217;s problems were caused by a system administrator breaking some web server configuration (possibly not even PHP-specific configuration), or a new installation of a mod_php build that hadn&#8217;t been tested properly in a non-production environment.</p>
<p>Cubrilovic&#8217;s second amendment to his article links to an article on his own blog, <a href="http://www.nik.com.au/archives/2007/08/11/learning-from-facebook-preventing-php-leakage/">Learning from Facebook: Preventing PHP Leakage</a>. </p>
<p>Given the likelihood of this issue&#8217;s cause being server misconfiguration, it is disturbing that Cubrilovic&#8217;s first tip for avoiding this kind of problem is to install and correctly configure the powerful and complex Apache module <a href="http://www.modsecurity.org/">mod_security</a>. After all, if the a sysadmin can&#8217;t get Apache and PHP configured properly, how likely is it that they&#8217;ll be able to get <em>two</em> modules configured properly?</p>
<p>The rest of Cubrilovic&#8217;s tips also relate largely to web server configuration, such as making certain files inaccessible from direct requests. </p>
<p>The disappointing part of the <a href="http://en.wikipedia.org/wiki/Fear%2C_uncertainty_and_doubt">FUD</a> that Cubriolovic is spreading is that anything <em>more</em> than decent release practices are necessary to address and avoid the problem Facebook experienced.</p>
<p>I can only imagine why Cubrilovic has invested this weekend in undermining people&#8217;s faith in PHP&#8217;s reliability under heavy load. What I can tell you, though, is this:</p>
<blockquote>
<p><strong>PHP doesn&#8217;t cause website problems and inadvertent code leaks. People making mistakes while using PHP and other powerful tools do.</strong></p>
</blockquote>
<p>However, that <em>fact</em> isn&#8217;t worthy of two articles, so perhaps that&#8217;s why Cubrilovic went with the PHP-as-boogeyman-that-must-be-defended-against approach instead.</p>
<p>What&#8217;s the take-away from all this? Servers are powerful, and can be complicated. Tread carefully. <em>Don&#8217;t roll untested configurations of web servers and related modules out on production without testing them in an identical staging environment.</em></p>
<p>Know what you&#8217;re doing, and do it carefully.</p>
<div class="prli-social-buttons-bar"><a href="http://del.icio.us/post?url=http%3A%2F%2Fclaylo.com%2Fdmv&title=PHP+Did+Not+Cause+Facebook+Code+Leakage" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/delicious_32.png" alt="Delicious" title="Delicious" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fclaylo.com%2Fdmv&title=PHP+Did+Not+Cause+Facebook+Code+Leakage" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/stumbleupon_32.png" alt="StumbleUpon" title="StumbleUpon" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://digg.com/submit?phase=2&url=http%3A%2F%2Fclaylo.com%2Fdmv&title=PHP+Did+Not+Cause+Facebook+Code+Leakage" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/digg_32.png" alt="Digg" title="Digg" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://twitter.com/home?status=RT+%40claylo%3A+PHP+Did+Not+Cause+Facebook+Code+Leakage+http%3A%2F%2Fclaylo.com%2Fdmv" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/twitter_32.png" alt="Twitter" title="Twitter" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fclaylo.com%2Fdmv&t=PHP+Did+Not+Cause+Facebook+Code+Leakage" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/facebook_32.png" alt="Facebook" title="Facebook" width="32px" height="32px" border="0" style="border: 0px;" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fclaylo.com%2Fdmv&title=PHP+Did+Not+Cause+Facebook+Code+Leakage" target="_blank"><img src="http://claylo.com/wp-content/plugins/pretty-link/images/reddit_32.png" alt="Reddit" title="Reddit" width="32px" height="32px" border="0" style="border: 0px;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://claylo.com/php-did-not-cause-facebook-code-leakage/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
