<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.wynia.org/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.wynia.org/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>PHPGeek</title>
	
	<link>http://www.phpgeek.com/wordpress</link>
	<description>Dive into the geeky world of PHP</description>
	<pubDate>Fri, 14 Dec 2007 08:46:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.wynia.org/PHPGeek" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>WebDAV, PHP and You</title>
		<link>http://www.phpgeek.com/wordpress/webdav-php-and-you/123/</link>
		<comments>http://www.phpgeek.com/wordpress/webdav-php-and-you/123/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 08:46:59 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/webdav-php-and-you/123/</guid>
		<description><![CDATA[WebDAV seems to be the red-headed stepchild of the protocol world. It&#8217;s advocates have long stood in the desert railing against things like FTP for editing files on remote servers.  They go on and on about things like it working over port 80 and being much better integrated into Windows, Mac and Linux than [...]]]></description>
			<content:encoded><![CDATA[<p>WebDAV seems to be the red-headed stepchild of the protocol world. It&#8217;s advocates have long stood in the desert railing against things like FTP for editing files on remote servers.  They go on and on about things like it working over port 80 and being much better integrated into Windows, Mac and Linux than FTP.</p>
<p>But, like many who preach in the desert, they&#8217;ve been ignored for years for reasons other than their actual message.</p>
<p>However, over the past few years, WebDAV has started gaining traction as the underlying protocol for Subversion repositories over the web and in several other places. That makes <a href="http://www.rooftopsolutions.nl/article/168">this story about a new PHP library </a>for working with WebDAV interesting.</p>
<p>It caught my eye, because I recently set up ALL of my machines to use <a href="http://www.jungledisk.com/download.shtml">JungleDisk</a> and to do automatic backups to the WebDAV drives that it provides. </p>
<p>Those WebDAV drives are backed by Amazon&#8217;s S3 online disk service, meaning you get an infinite hard drive for storing whatever. Combine that with this new PHP library and you can get simple access to the giant hard drive in the sky for storing and retrieving data, backing things up, etc. Pretty cool in my book.</p>
<p>via <a href="http://www.phpdeveloper.org/news/9238">PHPDeveloper</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/webdav-php-and-you/123/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Amazon’s Flexible Payment Service</title>
		<link>http://www.phpgeek.com/wordpress/amazons-flexible-payment-service/122/</link>
		<comments>http://www.phpgeek.com/wordpress/amazons-flexible-payment-service/122/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 01:33:40 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/amazons-flexible-payment-service/122/</guid>
		<description><![CDATA[Ever since some juvenile delinquent cracked into my Paypal account and attempted to send $12,000 to a bunch of his friends in the former Soviet republics back in 2001, I&#8217;ve avoided Paypal at all costs. Unfortunately, that&#8217;s made doing small-scale ecommerce online rather difficult in the ensuing years.
There&#8217;s always the Payflow and other bank-based systems, [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since some juvenile delinquent cracked into my Paypal account and attempted to send $12,000 to a bunch of his friends in the former Soviet republics back in 2001, I&#8217;ve avoided Paypal at all costs. Unfortunately, that&#8217;s made doing small-scale ecommerce online rather difficult in the ensuing years.</p>
<p>There&#8217;s always the Payflow and other bank-based systems, but they make you do quite a bit more legwork on things like fraud. They also aren&#8217;t great solutions if you just need to process a few site subscriptions or the occasional Craigslist transaction. Google&#8217;s checkout is an option, but is more oriented to &#8220;stores&#8221; and is fairly rigid in its use.</p>
<p>That&#8217;s why the announcement of <a href="http://www.amazon.com/gp/browse.html?node=342430011">Amazon&#8217;s Flexible Payment Service</a> struck me as interesting. And, what struck me as most interesting is the fact that, like their EC2 (on demand virtual server) and S3 (virtual storage) services, this is built from the ground up as an API for developers, not a consumer product.</p>
<p>So, at launch, this isn&#8217;t something users use directly. Rather, it&#8217;s something you can use to make payments for your subscription site easy or to integrate your own version of micropayments into your content management system, etc. From what I read in their documentation, they&#8217;re really providing as deeply flexible of a system as I&#8217;ve seen for collecting, moving around and distributing money online.</p>
<p>I really like that approach that Amazon takes. By starting with an API, they don&#8217;t lock themselves into a specific solution. They leave it open to innovation and provide a platform instead of a packaged approach. This is far more likely to result in interesting applications than providing rigid &#8220;Buy Now&#8221; buttons that get shoehorned into sites where the concept doesn&#8217;t really apply.</p>
<p>The API is in limited beta at the moment, but there is already <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=904&#038;categoryID=126">PHP code</a> for working with the service if you sign up for and get into the beta. I know I&#8217;m looking at it seriously for some subscription/member sites that I&#8217;m working on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/amazons-flexible-payment-service/122/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Combining CakePHP and the Zend Framework</title>
		<link>http://www.phpgeek.com/wordpress/combining-cakephp-and-the-zend-framework/121/</link>
		<comments>http://www.phpgeek.com/wordpress/combining-cakephp-and-the-zend-framework/121/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 17:37:32 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/combining-cakephp-and-the-zend-framework/121/</guid>
		<description><![CDATA[The Zend Framework definitely takes a different approach than many of the other PHP frameworks (CakePHP, Zend, CodeIgniter, etc.). It really ends up being more of a collection of libraries than the others do.
In some ways, that makes positioning the Zend Framework as being substantively different from the libraries in PEAR. If you look at [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://framework.zend.com/">Zend Framework</a> definitely takes a different approach than many of the other PHP frameworks (CakePHP, Zend, CodeIgniter, etc.). It really ends up being more of a collection of libraries than the others do.</p>
<p>In some ways, that makes positioning the Zend Framework as being substantively different from the libraries in <a href="http://pear.php.net/">PEAR</a>. If you look at what the framework does, there&#8217;s not a lot of difference between it and many of the classes in PEAR. I&#8217;ll leave it to the reader to decide if these libraries were bundled into a &#8220;framework&#8221; because frameworks are the hot PHP topic right now or because they really wanted a cohesive approach to web development.</p>
<p>All of that aside, there&#8217;s some really useful stuff in the Zend Framework, like the Google Calendar stuff <a href="http://www.phpgeek.com/wordpress/php-google-calendar-and-the-zend-framework/119/">I mentioned</a> a couple of days ago. The fact that ZF does come packaged as what amounts to a PEAR package means you can actually fairly easily use those interesting bits from inside *other* PHP frameworks.</p>
<p>One of the reasons I was messing with the Google Calendar stuff in the first place is that I&#8217;m *also* messing with CakePHP to build a homegrown solution for time tracking, invoicing and revenue projection for my consulting business. It&#8217;s helpful to be able to mark days like holidays and planned vacations as non-billable so you don&#8217;t include them in projections.</p>
<p>At any rate, I went looking for information on including bits from the Zend Framework in my Zend project. It ends up being really simple. This <a href="http://cakebaker.42dh.com/2006/04/22/use-components-from-the-zend-framework-with-cakephp/">older article</a> covers it pretty well and gives you an idea of how to provide &#8220;vendor&#8221; wrappers around other 3rd party PHP libraries as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/combining-cakephp-and-the-zend-framework/121/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blackbird: Enterprise Service Bus in PHP</title>
		<link>http://www.phpgeek.com/wordpress/blackbird-enterprise-service-bus-in-php/120/</link>
		<comments>http://www.phpgeek.com/wordpress/blackbird-enterprise-service-bus-in-php/120/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 00:48:49 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/blackbird-enterprise-service-bus-in-php/120/</guid>
		<description><![CDATA[It&#8217;s been great to see the frenzy of development activity in the non-user space over the last couple of years. When I first started working with PHP, lo those many years ago, it seemed that all of the open source projects were to build applications for users. There was some activity to build some basic [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been great to see the frenzy of development activity in the non-user space over the last couple of years. When I first started working with PHP, lo those many years ago, it seemed that all of the open source projects were to build applications for users. There was some activity to build some basic libraries, but it was still mostly application-based.</p>
<p>Unfortunately, many other languages got lots of utility code in the form of frameworks and things like <a href="http://en.wikipedia.org/wiki/Enterprise_service_bus">enterprise service buses</a>, with Java being the center of much of that activity. Of course, I wouldn&#8217;t say that ESB&#8217;s are always necessary (hardly anything is universally useful or useless), but they certainly can be helpful in many of today&#8217;s environments.</p>
<p>Because ESB&#8217;s are pretty much built to provide uniform and abstract interfaces to all sorts of different systems and resources, they can be a real godsend in one of those environments that has a real patchwork quilt of technologies built up over time. Those companies often can&#8217;t reasonably get rid of or replace those older systems and an ESB can let you revive their usefulness.</p>
<p>At any rate, a new PHP-based ESB announced today, called <a href="http://www.blackbirdesb.org/">Blackbird</a>. Their quick explanation is:</p>
<blockquote><p>Blackbird fits into the physical-entity category. It is designed to allow developers, with minimal code, to write and integrate applications. Developers create classes that are loaded and managed by Blackbird, and Blackbird provides facilities to connect to external resources, such as message queues, application ports (SOAP, SMTP, etc.), databases, and so on.</p></blockquote>
<p>which is from their &#8220;<a href="http://www.blackbirdesb.org/what-is-an-esb.html">What is an ESB?</a>&#8221; FAQ.</p>
<p>Given how much this looks more like the stuff I face every day than the simple Rails-style view of reality that many other middleware projects show, this might very well prove very interesting as far as I&#8217;m concerned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/blackbird-enterprise-service-bus-in-php/120/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP, Google Calendar and the Zend Framework</title>
		<link>http://www.phpgeek.com/wordpress/php-google-calendar-and-the-zend-framework/119/</link>
		<comments>http://www.phpgeek.com/wordpress/php-google-calendar-and-the-zend-framework/119/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 01:53:14 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/php-google-calendar-and-the-zend-framework/119/</guid>
		<description><![CDATA[Over on my personal site, I wrote up a simple set of scripts to get started with Google&#8217;s API for the calendar by using the Zend Framework with PHP. I&#8217;m using it to track my daily accomplishments for easily assembling status reports, salary and rate negotiations, resume&#8217;s, etc. While this is only a start, I [...]]]></description>
			<content:encoded><![CDATA[<p>Over on my personal site, I wrote up a simple set of scripts to <a href="http://www.wynia.org/wordpress/2007/07/22/tracking-accomplishments-with-php-google-calendar-and-zend-framework/">get started with Google&#8217;s API for the calendar</a> by using the Zend Framework with PHP. I&#8217;m using it to track my daily accomplishments for easily assembling status reports, salary and rate negotiations, resume&#8217;s, etc. While this is only a start, I think it offers considerable promise for tracking that kind of information tied to dates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/php-google-calendar-and-the-zend-framework/119/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using AuthComponent for Access Control in CakePHP</title>
		<link>http://www.phpgeek.com/wordpress/using-authcomponent-for-access-control-in-cakephp/118/</link>
		<comments>http://www.phpgeek.com/wordpress/using-authcomponent-for-access-control-in-cakephp/118/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 12:40:28 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/using-authcomponent-for-access-control-in-cakephp/118/</guid>
		<description><![CDATA[It&#8217;s a pretty rare application that doesn&#8217;t need to know who is performing a given action. Nearly everything that is built needs at least some level of authentication and authorization before users can be let loose to use it. Unfortunately, not only is there a lot of confusion out there on how to use it, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a pretty rare application that doesn&#8217;t need to know who is performing a given action. Nearly everything that is built needs at least some level of authentication and authorization before users can be let loose to use it. Unfortunately, not only is there a lot of confusion out there on how to use it, but lots of poorly done, reinvented wheels out there because of it.</p>
<p>Part of the confusion comes in that authentication and authorization are 2 different things. Authentication answers the question: &#8220;Who are you?&#8221;. That&#8217;s it. Authorization answers the question: &#8220;Am I allowed to do X to object Y?&#8221;. </p>
<p>As I&#8217;ve been messing with <a href="http://www.cakephp.org">CakePHP</a> the last couple of weeks, I&#8217;ve done what lots of people do to deal with this whole messy issue: put it off until later. Right now, my CakePHP app is wide open for all activities. There&#8217;s no restrictions on anything. </p>
<p>That&#8217;s why, when an article on <a href="http://lemoncake.wordpress.com/2007/07/19/using-authcomponent-and-acl-in-cakephp-12/">AuthComponent for CakePHP</a> came across the CakePHP mailing list this morning, I jumped on it. AuthComponent is the de facto solution for authentication and authorization in CakePHP and this tutorial explains how to implement it fairly easily.</p>
<p>Now, I don&#8217;t have to spend a lot of time coming up with a solution to keep users&#8217; data separate, I can just focus on the rules that my authorization grid needs to implement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/using-authcomponent-for-access-control-in-cakephp/118/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Time to Retire PHP 4?</title>
		<link>http://www.phpgeek.com/wordpress/time-to-retire-php-4/116/</link>
		<comments>http://www.phpgeek.com/wordpress/time-to-retire-php-4/116/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 01:36:51 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/time-to-retire-php-4/116/</guid>
		<description><![CDATA[PHP4 is now 7 years old and PHP5 is actually 3 years old. However, despite the fact that PHP5 has been around that long, PHP4 is holding on tightly, particularly on typical cheap shared hosting. Unfortunately, the very reason that PHP has had much of its success in adoption is causing this problem. Lots of [...]]]></description>
			<content:encoded><![CDATA[<p>PHP4 is now 7 years old and PHP5 is actually 3 years old. However, despite the fact that PHP5 has been around that long, PHP4 is holding on tightly, particularly on typical cheap shared hosting. Unfortunately, the very reason that PHP has had much of its success in adoption is causing this problem. Lots of people use PHP because you can get a $5/month hosting account and PHP will be installed and you can get up and running quickly. </p>
<p>However, users of those hosting services aren&#8217;t really in a position to do the upgrade themselves. Even some of those who are renting dedicated servers are stuck due to those wonderful custom setups that control panels like <a href="http://karlkatzke.com/go-php5-alternate-title-cpanel-sucks/">cPanel</a> use. </p>
<p>The <a href="http://www.gophp5.org/">GoPHP5</a> is pushing to get PHP5 adopted in those critical spots. They&#8217;ve got a bunch of applications and hosts that are all planning on going PHP5-only in February. Check to see if your favorite application or your hosting company is on the list.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/time-to-retire-php-4/116/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Project Zero: Agile Development Environment</title>
		<link>http://www.phpgeek.com/wordpress/project-zero-agile-development-environment/115/</link>
		<comments>http://www.phpgeek.com/wordpress/project-zero-agile-development-environment/115/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 00:15:34 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/project-zero-agile-development-environment/115/</guid>
		<description><![CDATA[It always piques my interest when a company like IBM takes action in a PHP direction. Their incubator project ProjectZero is described as:

Project Zero introduces a simple environment for creating, assembling and executing applications based on popular Web technologies.

And, as one would expect, ProjectZero is primarily a Java stack of tools, including the use of [...]]]></description>
			<content:encoded><![CDATA[<p>It always piques my interest when a company like IBM takes action in a PHP direction. Their incubator project <a href="http://www.projectzero.org/wiki/bin/view/">ProjectZero</a> is described as:</p>
<blockquote><p>
Project Zero introduces a simple environment for creating, assembling and executing applications based on popular Web technologies.
</p></blockquote>
<p>And, as one would expect, ProjectZero is primarily a Java stack of tools, including the use of Eclipse as a code editing environment. Within the stack, the primary scripting language is, unsurprisingly, <a href="http://groovy.codehaus.org/">Groovy</a>. However, I *was* surprised that the 2nd (and only other) scripting language was PHP and not virtual PHP, but real PHP.</p>
<p>The toolkit looks like it&#8217;s got some really nice features, including the fact that it <a href="http://www.projectzero.org/wiki/bin/view/Documentation/PhpDevelopersGuideREST">speaks REST</a> natively. Might be worth setting it up and giving it a go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/project-zero-agile-development-environment/115/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally Another RESTful PHP Framework: Konstrukt</title>
		<link>http://www.phpgeek.com/wordpress/finally-another-restful-php-framework-konstrukt/114/</link>
		<comments>http://www.phpgeek.com/wordpress/finally-another-restful-php-framework-konstrukt/114/#comments</comments>
		<pubDate>Sat, 30 Jun 2007 20:05:35 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/finally-another-restful-php-framework-konstrukt/114/</guid>
		<description><![CDATA[There&#8217;s something smelling sweet in Denmark: a nice, lean RESTful framework in PHP called Konstrukt. Given the simple nature of the REST architecture, the full-blown frameworks are really overkill. Yet, at the same time, there are some repetitive bits for handling the HTTP overhead that really could do with some assisting code.
That&#8217;s pretty much where [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s something smelling sweet in Denmark: a nice, lean RESTful framework in PHP called <a href="http://www.konstrukt.dk/">Konstrukt</a>. Given the simple nature of the REST architecture, the full-blown frameworks are really overkill. Yet, at the same time, there are some repetitive bits for handling the HTTP overhead that really could do with some assisting code.</p>
<p>That&#8217;s pretty much where Konstrukt drops into the ecosystem. It&#8217;s not trying to be yet another Rails clone. There&#8217;s no database abstraction layer, no CRUD stubbing, etc. Just the stuff necessary for doing the REST bits, leaving you to build the rest of your application however you see fit.</p>
<p>Overall, this approach is probably more likely to mean the framework can be used in the real world, where you often can&#8217;t change your entire development approach just to match the framework. You can use the existing libraries you&#8217;re already comfortable with, but now with REST. </p>
<p>Definitely worth a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/finally-another-restful-php-framework-konstrukt/114/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Huge Performance Gains For PHP By Running Inside . . . Java?</title>
		<link>http://www.phpgeek.com/wordpress/huge-performance-gains-for-php-by-running-inside-java/113/</link>
		<comments>http://www.phpgeek.com/wordpress/huge-performance-gains-for-php-by-running-inside-java/113/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 13:57:22 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/huge-performance-gains-for-php-by-running-inside-java/113/</guid>
		<description><![CDATA[One of the trends I&#8217;ve been seeing and liking over the last couple of years is a complete decoupling of the programming language that a given piece of functionality is written in and the ecosystem in which it is executed. That&#8217;s the huge power of the Mono.NET platform. Lots of people think that the only [...]]]></description>
			<content:encoded><![CDATA[<p>One of the trends I&#8217;ve been seeing and liking over the last couple of years is a complete decoupling of the programming language that a given piece of functionality is written in and the ecosystem in which it is executed. That&#8217;s the huge power of the Mono.NET platform. Lots of people think that the only way you can write .NET software is to do it in C# or VB.NET and deploy on Windows. That&#8217;s not even remotely true. As of this writing, there are <a href="http://www.dotnetpowered.com/languages.aspx">55 languages</a> you can use to write .NET assemblies and executables.</p>
<p>Once compiled, any of those assemblies can be used from any one of the other languages and it works. And, for the most part, you can then also run them on Mono on Linux and any of the other platforms Linux runs on. </p>
<p>I said all of that to say that finding that <a href="http://www.workhabit.org/resin-backed-php-drives-4x-performance-improvements-drupal">these guys</a> managed to get a 4-fold increase in speed for Drupal (the PHP portal management/CMS tool) by running it in a Java environment to be an exciting revelation.</p>
<p>Why?</p>
<p>Because when you achieve this level of decoupling, you use programming languages because of how they let you *work* instead of worrying about how they *run*. If a tool or library or framework can let you cut your development time in half, you can use it, despite the runtime not being the quickest. Deploying it becomes a secondary task and can be optimized separately.</p>
<p>Now, we&#8217;re not entirely there yet, but there&#8217;s surprisingly large pockets of this stuff popping up and I&#8217;ll be standing over here in the cheering section.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/huge-performance-gains-for-php-by-running-inside-java/113/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Load Balancing MySQL for PHP Apps</title>
		<link>http://www.phpgeek.com/wordpress/load-balancing-mysql-for-php-apps/112/</link>
		<comments>http://www.phpgeek.com/wordpress/load-balancing-mysql-for-php-apps/112/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 10:59:19 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/load-balancing-mysql-for-php-apps/112/</guid>
		<description><![CDATA[I&#8217;ve long said that most people over-estimate their need for server power when creating a new application. I know, I know. You&#8217;ve got this anecdotal story about someone who set up a cheap hosting account and got inundated with traffic from Digg or Slashdot or  being mentioned on Oprah. Your story about that site [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long said that most people over-estimate their need for server power when creating a new application. I know, I know. You&#8217;ve got this anecdotal story about someone who set up a cheap hosting account and got inundated with traffic from Digg or Slashdot or  being mentioned on Oprah. Your story about that site includes it crashing and eventually going bankrupt, all because they cheaped out on hardware.</p>
<p>First, I hate arguing with anecdotes. Second, if you look at most situations, the following scenario is more representative of what happens more often.</p>
<p>Programmer writes application. Programmer forms company to sell/host application. Company gets investors and builds server farm in anticipation of being mentioned on Oprah. Application never gets more than about 1,000 hits a day and company goes bankrupt.</p>
<p>Now, all of that said, there *are* some ways you can avoid both scenarios. If you are *aware* of the issues in scaling up your application and have a plan for doing so, you can kick in the bigger version as necessary and avoid the high burn rate on hardware while still keeping the application running when the traffic spikes.</p>
<p>Services like Amazon&#8217;s <a href="http://www.amazon.com/gp/browse.html?node=201590011">Elastic Computing Cloud (EC2)</a> and this handy little article on <a href="http://blog.jploh.com/2007/06/18/load-balancing-two-mysql-servers-for-php-applications/">load balancing MySQL for PHP</a> can give you the tools to handle massive influxes of traffic without breaking the bank or wasting huge amounts of time and effort building the application.</p>
<p>The kind of load balancing the article talks about effectively spreads out the database load for SELECT statements (the ones that dominate most applications) across more than 1 server that all have the same data. INSERT, UPDATE and DELETE&#8217;s go to a single &#8220;master&#8221; server and that one takes care of updating the &#8220;slave&#8221; servers. Unless your application is really unique in how it needs to work, that strategy gives you quite a bit of room to work with to handle large spikes in traffic.</p>
<p>And, with EC2, you can spawn additional database &#8220;slaves&#8221; as necessary and shut them back down when the traffic spike is over. That means that if, for instance, you&#8217;ve got an application that gets 90% of its traffic between 8am and 3pm, you can vary the number of database servers running to handle that time period and shut them down for the rest of the day instead of paying to have them running idle for 17 hours a day.</p>
<p>Overall, this strategy works because the vast majority of PHP applications are far slower on the database side than on the PHP side. Most database-driven PHP applications fail on the database end of things long before the web server itself falls over. If you throw in a bit of caching for content pages and things that don&#8217;t change much, you&#8217;ll probably be surprised just how much traffic your site can handle and you won&#8217;t have to find a bunch of extra zero&#8217;s to pay for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/load-balancing-mysql-for-php-apps/112/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Standalone ActiveRecord Library from CodeIgniter</title>
		<link>http://www.phpgeek.com/wordpress/standalone-activerecord-library-from-codeigniter/110/</link>
		<comments>http://www.phpgeek.com/wordpress/standalone-activerecord-library-from-codeigniter/110/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 00:51:17 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/standalone-activerecord-library-from-codeigniter/110/</guid>
		<description><![CDATA[While frameworks are all the rage these days, most of them require that you change your coding pretty dramatically. Unfortunately, that can cause more of a delay in some cases than you&#8217;ll gain back on that first project in productivity.
However, if you&#8217;ve been paying attention, one of the things that people rave most about in [...]]]></description>
			<content:encoded><![CDATA[<p>While frameworks are all the rage these days, most of them require that you change your coding pretty dramatically. Unfortunately, that can cause more of a delay in some cases than you&#8217;ll gain back on that first project in productivity.</p>
<p>However, if you&#8217;ve been paying attention, one of the things that people rave most about in the Rails-style MVC frameworks is the ActiveRecord method of getting data from the database/data source.</p>
<p>Hasin Hayder has a short explanation of <a href="http://hasin.wordpress.com/2007/06/13/using-activerecord-library-separately-from-codeigniter/">how you can use an extracted implementation</a> of just that bit out of the CodeIgniter framework.</p>
<p>If that&#8217;s the particular pain point that&#8217;s been bugging you, this might be just the thing you&#8217;re looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/standalone-activerecord-library-from-codeigniter/110/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lazarus Project</title>
		<link>http://www.phpgeek.com/wordpress/lazarus-project/109/</link>
		<comments>http://www.phpgeek.com/wordpress/lazarus-project/109/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 23:40:13 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/lazarus-project/109/</guid>
		<description><![CDATA[This site is back under active tending after several months of bad neglect. The big bad job devoured much time and energy until I left it. However, the transition has actually consumed even MORE time than the job did and only now are things starting to calm down. 
That, of course, led me to look [...]]]></description>
			<content:encoded><![CDATA[<p>This site is back under active tending after several months of bad neglect. The big bad job devoured much time and energy until I left it. However, the transition has actually consumed even MORE time than the job did and only now are things starting to calm down. </p>
<p>That, of course, led me to look in the direction of this site only to witness the shambles that it has become.</p>
<p>I&#8217;ve deleted all of the comment spam that got through Akismet, fixed the RSS feeds and am digging for stories to post. I&#8217;d also love to have some help. If you&#8217;re into PHP and have been looking for an outlet to write about PHP, I&#8217;d like to hear from you. This site has decent page rank and surprisingly large amounts of traffic and I&#8217;d like to do that all justice by filling it with content.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/lazarus-project/109/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FTP Server Written in PHP</title>
		<link>http://www.phpgeek.com/wordpress/ftp-server-written-in-php/108/</link>
		<comments>http://www.phpgeek.com/wordpress/ftp-server-written-in-php/108/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 10:17:17 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/ftp-server-written-in-php/108/</guid>
		<description><![CDATA[I like seeing PHP get used outside of the LAMP stack and web applications. That&#8217;s because PHP works well in lots of other contexts as well. There&#8217;s been a web server written *in* PHP for a while. And, it looks like there&#8217;s now an FTP server written in PHP as well. 
I&#8217;m not saying you [...]]]></description>
			<content:encoded><![CDATA[<p>I like seeing PHP get used outside of the LAMP stack and web applications. That&#8217;s because PHP works well in lots of other contexts as well. There&#8217;s been a <a href="http://nanoweb.si.kz/">web server written *in* PHP</a> for a while. And, it looks like there&#8217;s now an <a href="http://www.whenpenguinsattack.com/2007/03/05/an-ftp-server-written-in-php/">FTP server written in PHP</a> as well. </p>
<p>I&#8217;m not saying you should drop proftpd and switch, but it it&#8217;s definitely an option. And, if you go digging though the code, it serves as a pretty good example of how to write a server application. So, when it&#8217;s time to write your own custom server, you&#8217;ve got a good example to work off of.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/ftp-server-written-in-php/108/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Be Careful Naming Projects</title>
		<link>http://www.phpgeek.com/wordpress/be-careful-naming-projects/106/</link>
		<comments>http://www.phpgeek.com/wordpress/be-careful-naming-projects/106/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 16:51:43 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/be-careful-naming-projects/106/</guid>
		<description><![CDATA[I&#8217;ve been telling people for years that even if your project is open source and for your own benefit, if you have widespread adoption as any sort of goal, you NEED to consider the naming carefully.
See, naming your project DOMAss, no matter how funny you and your friends think that is, will pretty much put [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been telling people for years that even if your project is open source and for your own benefit, if you have widespread adoption as any sort of goal, you NEED to consider the naming carefully.</p>
<p>See, <a href="http://www.robertnyman.com/2007/03/02/domass-renamed-to-domassistant-with-added-prototypejquery-compatibility/">naming your project DOMAss</a>, no matter how funny you and your friends think that is, will pretty much put a complete halt to people using it in professional contexts. When I&#8217;m asked to detail what external libraries I used on a $50,000 software implementation, I&#8217;m definitely not going to include a bullet point labeled as &#8220;DOMAss&#8221;. Sorry.</p>
<p>Fortunately, the project owner figured that out and is renaming it, but I see this a lot. Even when we&#8217;re not talking about something as obvious, even &#8220;silly&#8221; names are hard to justify. I&#8217;ve actually had to defend the use of &#8220;<a href="http://script.aculo.us/">script.aculo.us</a>&#8221; on 2 occasions in the last month. </p>
<p>I&#8217;m not saying that you need to end up with a dry acronym, but it probably matters more than you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/be-careful-naming-projects/106/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP Finally Going to Get Unicode Support</title>
		<link>http://www.phpgeek.com/wordpress/php-finally-going-to-get-unicode-support/105/</link>
		<comments>http://www.phpgeek.com/wordpress/php-finally-going-to-get-unicode-support/105/#comments</comments>
		<pubDate>Wed, 28 Feb 2007 16:56:23 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/php-finally-going-to-get-unicode-support/105/</guid>
		<description><![CDATA[This will come as fantastic news for the majority of people on this planet that don&#8217;t use English as their primary language: PHP6 has experimental Unicode support. Given how long languages like Java have had end-to-end Unicode support, I&#8217;ve always shied away from using PHP on multi-lingual apps. There&#8217;s just too much fiddling to make [...]]]></description>
			<content:encoded><![CDATA[<p>This will come as fantastic news for the majority of people on this planet that don&#8217;t use English as their primary language: <a href="http://programming.linux.com/programming/07/02/21/2029244.shtml?tid=64">PHP6 has experimental Unicode support</a>. Given how long languages like Java have had end-to-end Unicode support, I&#8217;ve always shied away from using PHP on multi-lingual apps. There&#8217;s just too much fiddling to make sure that the appropriate character set and encoding work from end to end. </p>
<p>This is particularly noticeable when you&#8217;ve got people on the business side of development doing the translations in MS Word and trying to copy and paste into the configuration screens and expect things to come out the display end correctly.</p>
<p>So, while it&#8217;s been a long time coming, kudos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/php-finally-going-to-get-unicode-support/105/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rapid Application Development: Delphi for PHP</title>
		<link>http://www.phpgeek.com/wordpress/rapid-application-development-delphi-for-php/104/</link>
		<comments>http://www.phpgeek.com/wordpress/rapid-application-development-delphi-for-php/104/#comments</comments>
		<pubDate>Wed, 28 Feb 2007 11:12:26 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/rapid-application-development-delphi-for-php/104/</guid>
		<description><![CDATA[For a long time, if you wanted to whip up basic business apps (the kind that are pretty much data entry and retrieval and the bread and butter for non-product software developers), and didn&#8217;t want to do all of the heavy lifting yourself, you turned to either Visual Basic or Delphi. They both supported the [...]]]></description>
			<content:encoded><![CDATA[<p>For a long time, if you wanted to whip up basic business apps (the kind that are pretty much data entry and retrieval and the bread and butter for non-product software developers), and didn&#8217;t want to do all of the heavy lifting yourself, you turned to either Visual Basic or Delphi. They both supported the drag and drop model of programming and let you do fairly rapid application development. Often, the choice came down to whether you were more comfortable with Basic or Pascal.</p>
<p>Well, apparently, Borland&#8217;s decided to morph what &#8220;Delphi&#8221; means from being only the Pascal-based rapid application development tool it&#8217;s been for a long time. That&#8217;s because they&#8217;ve announced that <a href="http://www.codegear.com/Products/Delphi/DelphiforPHP/tabid/237/Default.aspx">they&#8217;re putting out &#8220;Delphi&#8221; for PHP</a> (<a href="http://www.phpdeveloper.org/news/7337">via</a>). The same RAD approach that Delphi&#8217;s been known for, but targeting PHP.</p>
<p>They *are* aiming this at web development, rather than desktop development, but did do some mixing in of their VCL (Visual Component Library) bits from Delphi to handle the widgets on the page. </p>
<p>From the screenshots and feature lists, which include browsing data sources and dragging and dropping data onto pages, it looks like it might be a decent contender in the niche. It&#8217;s currently priced at that same $300 (retail) mark that lots of other similar tools, like <a href="http://www.activestate.com/products/komodo_ide/">Komodo</a> and <a href="http://www.yessoftware.com/products/comparison.php?compare_product=1">Codecharge Studio</a> are at. </p>
<p>I can only hope that they&#8217;ll either get a personal version (like the $139 version of Codecharge) or a free version with fewer features, like <a href="http://www.activestate.com/products/komodo_edit/">Komodo Edit</a> as a way to get people up to speed on using it without dropping $300. </p>
<p>At $100, I might buy a copy for myself at work, but $300 means I&#8217;m going to have to get approval and go through processes to convince someone it&#8217;s the right tool to be using.</p>
<p>Still, it&#8217;s an interesting development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/rapid-application-development-delphi-for-php/104/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Start with Pseudocode</title>
		<link>http://www.phpgeek.com/wordpress/start-with-pseudocode/103/</link>
		<comments>http://www.phpgeek.com/wordpress/start-with-pseudocode/103/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 23:31:00 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/start-with-pseudocode/103/</guid>
		<description><![CDATA[CodeRookie has a really good introduction to starting your script by writing pseudocode. Particularly if you didn&#8217;t come from a more formal programming background, you may never have written pseudocode. I know that more than once I&#8217;ve written pseudocode for a junior programmer only to have them look at me like I just handed them [...]]]></description>
			<content:encoded><![CDATA[<p>CodeRookie has a really good introduction to <a href="http://www.coderookie.com/2006/tutorial/the-pseudocode-programming-process/">starting your script</a> by writing pseudocode. Particularly if you didn&#8217;t come from a more formal programming background, you may never have written pseudocode. I know that more than once I&#8217;ve written pseudocode for a junior programmer only to have them look at me like I just handed them complete gibberish. </p>
<p>Writing out exactly what you intend the code to do before you put a single bit of executable code into the file can help you understand the problem and your solution better. It also makes collaboration easier and has the extra bonus of leaving you with a well-documented bit of code when you&#8217;re done.</p>
<p>It&#8217;s a nice guide if you&#8217;re curious how to go about it and uses PHP as its example language.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/start-with-pseudocode/103/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ditch the Symfony CLI for the Control Panel</title>
		<link>http://www.phpgeek.com/wordpress/ditch-the-symfony-cli-for-the-control-panel/101/</link>
		<comments>http://www.phpgeek.com/wordpress/ditch-the-symfony-cli-for-the-control-panel/101/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 01:20:47 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/ditch-the-symfony-cli-for-the-control-panel/101/</guid>
		<description><![CDATA[While I&#8217;m OK with the commandline for manipulating pretty much anything, it is sometimes nicer to have a visual interface, particularly when it comes to taking a look at data. Symfony pulled such a script from the main trunk a while back (before I started using symfony). However, it&#8217;s now back as a plugin.
It mostly [...]]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m OK with the commandline for manipulating pretty much anything, it is sometimes nicer to have a visual interface, particularly when it comes to taking a look at data. Symfony pulled such a script from the main trunk a while back (before I started using symfony). However, it&#8217;s now <a href="http://www.symfony-project.com/trac/wiki/sfControlPanelPlugin">back as a plugin</a>.</p>
<p>It mostly worked on my test project (links to the frontend_dev, etc. weren&#8217;t right. They were missing a directory in the path). The installation is also a bit of a pain, but I&#8217;d be really surprised if things don&#8217;t smooth out over the coming months.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/ditch-the-symfony-cli-for-the-control-panel/101/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Quit Worrying About Scalability</title>
		<link>http://www.phpgeek.com/wordpress/quit-worrying-about-scalability/100/</link>
		<comments>http://www.phpgeek.com/wordpress/quit-worrying-about-scalability/100/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 02:22:04 +0000</pubDate>
		<dc:creator>The Big Geek</dc:creator>
		
		<guid isPermaLink="false">http://www.phpgeek.com/wordpress/quit-worrying-about-scalability/100/</guid>
		<description><![CDATA[I don&#8217;t know how I missed it back in October, but this post on 37 Signals had me yelling, &#8220;Hell, ya!&#8221; pretty much the whole way through.
I&#8217;ve watched over and over and over and over again as companies and organizations do things like build clusters of Quad-Xeon servers to serve apps that will never (I [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know how I missed it back in October, but <a href="http://37signals.com/svn/archives2/fear_shark_attacks_and_will_it_scale.php">this post on 37 Signals</a> had me yelling, &#8220;Hell, ya!&#8221; pretty much the whole way through.</p>
<p>I&#8217;ve watched over and over and over and over again as companies and organizations do things like build clusters of Quad-Xeon servers to serve apps that will never (I mean actually NEVER according to their targetted userbase) see more than about 100 regular users. These are the kinds of apps where if more than 100 ever use it, they&#8217;ll be *failing*.</p>
<p>The people in charge of choosing hardware are absolutely terrified of the question that seems to be everywhere, &#8220;But will it scale?&#8221;. The &#8220;but&#8221; is usually there because you&#8217;ve adequately answered nearly all of the actually important questions about the application or website (you know, the ones like &#8220;does it work&#8221;), yet the questioner is still feeling uncertain and having doubts and reaches for the first handhold he can find. Ah, yes, &#8220;scalability&#8221;: the &#8220;won&#8217;t somebody think of the children&#8221; of the tech world. </p>
<p>Now, before someone gets all up in my grill, please note that I&#8217;ve actually worked on apps that were part of some of the largest Oracle installations *in the world* (according to Oracle). There is a time and place for the scalability discussion. There&#8217;s also a time and a place for the financial planning of a $20 million annual income. It&#8217;s just not bloody likely to be *your* time and place.</p>
<p>We&#8217;ve seen apps that grows spectacularly ends up having someone out front saying &#8220;If we hadn&#8217;t done the planning up front&#8221;. However, those anecdotes might lead you to believe that the only successful large applications/sites planned their huge scalability from the beginning. That somehow if you don&#8217;t do that too, you&#8217;ll never manage. That is, like the linked article says, &#8220;shark attack&#8221; kind of fear. </p>
<p>There are PLENTY of companies/sites/applications that stumbled a bit as they grew beyond their initial plan. There are also plenty of companies who went completely bankrupt spending $50,000 a month on a data center for a product that actually could have been profitable and covered all of its costs on $500 a month in dedicated hosting. And, there are plenty of companies (this is actually the largest category) who didn&#8217;t worry about scalability, built something that worked, put it out there, and watched it become a success without scalability ever really entering the picture.</p>
<p>Does it scale?</p>
<p>Yes. Large buildings with an airplane in its hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpgeek.com/wordpress/quit-worrying-about-scalability/100/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
