<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Thu, 24 May 2012 06:34:04 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Lorna Mitchell's Blog: We Don't Know Deployment: A 4-Step Remedy]]></title>
      <guid>http://www.phpdeveloper.org/news/17834</guid>
      <link>http://www.phpdeveloper.org/news/17834</link>
      <description><![CDATA[<p>
In a new post to her blog <i>Lorna Mitchell</i> has <a href="http://www.lornajane.net/posts/2012/we-dont-know-deployment-a-4-step-remedy">written a beginner's guide to deployment</a> for web based applications in response to a recent email from <a href="http://www.lornajane.net/posts/lj_publications/php-master-write-cutting-edge-code">a reader</a>.
</p>
<blockquote>
I [replied to the email] with some suggestions (and my consulting rate) attached, and we had a little email exchange about some improvements that could fit in with the existing setup, both of the hardware and of the team skills. Then I started to think ... he probably isn't the only person who is wondering if there's a better way. So here's my advice, now with pictures!
</blockquote>
<p>
She's broken it up into a few different sections to make it a bit more easily digestible:
</p>
<ul>
<lI>A "starting point" where there's a development, staging and live environments
<li>Using source control to manage code
<li>Branching for effective coordination
<li>Integration of automated deployment
</ul>
<p>
She also mentions other "bonus points" like making a build server, documentation generation and Javascript/CSS minification.
</p>]]></description>
      <pubDate>Wed, 18 Apr 2012 11:20:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ben Ramsey's Blog: Build PHP 5.4 on CentOS 6.2]]></title>
      <guid>http://www.phpdeveloper.org/news/17630</guid>
      <link>http://www.phpdeveloper.org/news/17630</link>
      <description><![CDATA[<p>
In <a href="http://benramsey.com/blog/2012/03/build-php-54-on-centos-62/">this latest post</a> to his blog <i>Ben Ramsey</i> shows you how to, inside of a virtual machine, set up a server with PHP 5.4 installed (using CentOS 6.2).
</p>
<blockquote>
In case you haven't heard the news, the PHP project <a herf="http://www.php.net/archive/2012.php#id2012-03-01-1">released version 5.4.0 last Thursday</a>. Naturally, I decided it was time to install and give it a try. I chose to install to a clean and bare-bones <a href="http://www.centos.org/">CentOS 6.2</a> virtual machine using <a href="https://www.virtualbox.org/">VirtualBox</a>. I did this for two reasons: 1) I wanted a clean environment for the build, and 2) I wanted to play with CentOS. At the time of this writing, there are not yet any official CentOS RPMs for PHP 5.4, so I had to build PHP from source. What follows are the notes I took during the installation and build process. I hope you find them helpful.
</blockquote>
<p>His instructions cover the full process:</p>
<ul>
<li>Installing the CentOS operating system
<li>Creating a non-root user
<li>Setting up the network for local access
<li>Installing the packages for PHP (via yum)
<li>Grab <a href="http://php.net/downloads">PHP 5.4</a> and compile it
<li>Testing out the web server with a sample <a href="http://php.net/phpinfo">phpinfo</a> file
</ul>
<p>
He includes a lot of extensions in his installation, some you may not need like pspell, tidy, calendar, ftp or xsl.
</p>]]></description>
      <pubDate>Tue, 06 Mar 2012 09:58:38 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Reddit.com: Am I asking too much from my PHP applicant exercise?]]></title>
      <guid>http://www.phpdeveloper.org/news/17310</guid>
      <link>http://www.phpdeveloper.org/news/17310</link>
      <description><![CDATA[<p>
On Reddit.com there's a recent post asking about <a href="http://www.reddit.com/r/PHP/comments/nljrl/am_i_asking_too_much_from_my_php_applicant/">testing developers as a part of the hiring process</a> and how difficult it should be.
</p>
<blockquote>
I developed an exercise for applicants. They must use an open source framework to make a simple bulletin board. It requires account creation, login, thread creation, message creation, unread message indication per thread, and logout. Every applicant is given this exercise after passing an initial test. The initial test is a simple disqualifier and is not challenging for anyone not lying on their resume.
</blockquote>
<p>
There's some great discussion in the comments about things like the suggested time limit, opinions on other methods that could yield the same results, thoughts on the validity of even taking the test based on the level of the job. The popular opinion, though, is that it's too much work for an applicant to go through unless there's a very specific need. As one commentor put it:
</p>
<blockquote>
Most of the excellent programmers will have jobs. Those that don't will probably have several options (unless you're in a very small market) for where to work. When it comes down to applying to the place that wants you to spend a bunch of your own time on their application, or some other company... They'll go with some other company.
</blockquote>]]></description>
      <pubDate>Tue, 27 Dec 2011 10:39:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Court Ewing's Blog: How PHP is Broken and How It Can Be Fixed]]></title>
      <guid>http://www.phpdeveloper.org/news/16801</guid>
      <link>http://www.phpdeveloper.org/news/16801</link>
      <description><![CDATA[<p>
<i>Court Ewing</i> has a (slightly inflammatory) post to his blog that shares some of his opinions on why he thinks <a href="http://epixa.com/2011/08/how-php-is-broken-and-how-it-can-be-fixed">PHP is broken</a> and a few thoughts on how it could be fixed. He's edited the article since its first publishing to include some clarification of his original ideas.
</p>
<p>
Before getting into the original post, I wanted to a comment made in his edit with an apology for the original post coming across as more of an "irritated user" than an unopinionated observer.
</p>
<blockquote>
PHP's development process has been broken for a long time, and the failures of that process have swelled since the first ripples began to appear many years ago. [...] This is no surprise given the very fluid history of PHP though, and the lack of any sustainable processes may have even been one of the key things that allowed PHP to evolve so quickly into one of the most used programming languages in the world. But that early success doesn't make the PHP development process any less broken.
</blockquote>
<p>
He covers a few points where he has issues with the PHP project including the release management, test coverage and recent issues with bugs in releases. He gives suggestions on how things could be made better - a detailed release process, a voting process for new features and a emphasis on good code and tests in the core. He also notes that he thinks more contributors in the mix isn't the solution. While it's encouraged to join the project, he suggests that the current core development group are the ones that should work the hardest on making things better.
</p>
<p>
Be sure to check out <a href="http://epixa.com/2011/08/how-php-is-broken-and-how-it-can-be-fixed#comments">the comments</a> for some great responses from the PHP community - both for and against the statements from the original post.
</p>]]></description>
      <pubDate>Thu, 01 Sep 2011 08:44:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Matthew Wells' Blog: Kohana and Gearman - Practical Multitasking]]></title>
      <guid>http://www.phpdeveloper.org/news/16791</guid>
      <link>http://www.phpdeveloper.org/news/16791</link>
      <description><![CDATA[<p>
<i>Matthew Wells</i> has a new post that looks at <a href="http://www.ninjapenguin.co.uk/blog/2011/08/29/kohana-and-gearman-practical-multitasking/">combining Kohana and Gearman</a> to create a system to handle large data processing without slowing down the rest of the application.
</p>
<blockquote>
A commonly identified bottleneck arises when dealing with large, 'expensive' data. This is commonly seen when an application posts a large volume of well structured data to the API (that some process must be carried out upon), before some form of structured receipt is then returned as a request response. [...] Analysing such a request tends to show high PHP CPU usage with lower database consumption. [...] The structured nature of data exchanged via an API means that we can, relatively simply and reliably, divide the submitted data and process it simultaneously with the help of a great tool called Gearman.
</blockquote>
<p>
He walks you through the entire process including his initial thoughts on what the system should be and how it should behave when the requests are made. He <a href="https://github.com/ninjapenguin/AntFarm/blob/master/application/classes/controller/farmable.php">shares the code</a> he used to implement the system - a simple worker that processes part of the request and returns the results. The command-line calls to run the worker manually for testing are also included.
</p>]]></description>
      <pubDate>Tue, 30 Aug 2011 11:39:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sameer Borate's Blog: Generating a color palette from a image in php]]></title>
      <guid>http://www.phpdeveloper.org/news/16500</guid>
      <link>http://www.phpdeveloper.org/news/16500</link>
      <description><![CDATA[<p>
<i>Sameer Borate</i> has posted a simple method for <a href="http://www.codediesel.com/php/generating-color-palette-from-aimage/">creating a color palette</a> from a given image using just PHP and GD.
</p>
<blockquote>
In the <a href="http://www.codediesel.com/php/taking-screenshots-of-websites-in-php/">previous post</a> we saw how we can generate a screenshot from a url. In this post we will see how we can create a color palette of the screenshot (or any other image for that matter) using PHP and GD. This can be useful if you need to quickly get the color scheme of a website or a image. Below are a few example images and their palettes generated using the program.
</blockquote>
<p>
With the help of <a href="http://www.codediesel.com/downloads/palette">his code</a> it's as easy as a call on a GetMostCommonColors object (get_color) to return the hex codes for the values found most. Also included in the post is a sample snippet showing how to pull the details from the file and output it in a grid similar <a href="http://www.codediesel.com/wp-content/uploads/2011/06/Image1.gif">to this</a>.
</p>]]></description>
      <pubDate>Tue, 21 Jun 2011 13:09:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[RooJs.com: How to spam in PHP..]]></title>
      <guid>http://www.phpdeveloper.org/news/16173</guid>
      <link>http://www.phpdeveloper.org/news/16173</link>
      <description><![CDATA[<p>
On RooJs.com there's a recent post from <i>Alan Knowles</i> looking at <a href="http://roojs.com/index.php/View/233/How_to_spam_in_PHP.html">how to spam in PHP</a>. No, nothing malicious - it's more about scalability in sending emails from PHP applications.
</p>
<blockquote>
The reason this has been relivant in the last two weeks is two fold, first off, my slow and sometimes painfull <a href="http://roojs.com/mtrack/>rewrite of mtrack</a> has got to the point of looking at email distribution. Along with this I have  a project that needs to distribute press releases, and track responses. Since both projects now use the same underlying component framework (<a href="http://www.roojs.com/mtrack/index.php/Browse/default/Pman.Core">Pman.Core</a> and <a href="http://www.roojs.com/mtrack/index.php/Browse/default/Pman.Base">Pman.Base</a>). It seemed like an ideal time to write some generic code that can solve both issues.
</blockquote>
<p>
He mentions the usual method of generating numerous emails and sending them to a remote SMTP server, but points out that there's  a better way. You can take advantage of queuing and batch sending techniques and, the way he decided to do it for mtrack, using queue tables and a backend runner (a cron job) that uses <a href="http://php.net/proc_open">proc_open</a> to send out multiple emails at once. You can <a href="http://www.roojs.com/mtrack/index.php/File/default/Pman.Core/NotifySend.php?jump=">see the code for it here</a>.
</p>]]></description>
      <pubDate>Mon, 11 Apr 2011 10:20:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[php|architect: Image Processing with Imagine]]></title>
      <guid>http://www.phpdeveloper.org/news/16005</guid>
      <link>http://www.phpdeveloper.org/news/16005</link>
      <description><![CDATA[<p>
New from the php|architect blog, there's a tutorial from <i>Mike Willbanks</i> about <a href="http://www.phparch.com/2011/03/image-processing-with-imagine/">using Imagine</a> to transform images dynamically in a more object-oriented way.
</p>
<blockquote>
Image processing in PHP is a necessary evil but is needed more often than not in just about every web application.   With the various preferences in image processing libraries (think ImageMagick, GraphicsMagick and GD) it is difficult to find a library that provides a unified object oriented interface as well as implementing the general tasks in a simplistic fashion. <a href="https://github.com/avalanche123/Imagine/">Imagine</a> is an open source image manipulation library built with PHP 5.3 that implements an object oriented interface to ImageMagick, GraphicsMagick and GD
</blockquote>
<p>
<i>Mike</i> gives a quick sample script that uses SPL autoloading to pull in the classes as they're needed (with the "imagineLoader" method) and make a basic thumbnail from a PNG file.
</p>]]></description>
      <pubDate>Mon, 07 Mar 2011 10:53:42 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Wil Sinclair's Blog: Process Patterns]]></title>
      <guid>http://www.phpdeveloper.org/news/15655</guid>
      <link>http://www.phpdeveloper.org/news/15655</link>
      <description><![CDATA[<p>
On the Zend Developer Zone today there's <a href="http://devzone.zend.com/article/12887-Wil-Sinclair-talks-about-Process-Patterns">a new post</a> mentioning something from <i>Wil Sinclair</i> about something he calls "process patterns" in software development.
</p>
<p>From <a href="http://wllm.com/2010/12/28/process-pattern/">Wil's post</a>:
<blockquote>
I need a word for several engineers working on the same project that isn't 'team'. Why? Because most engineers working on the same project aren't working together as a team. This is why I believe in process patterns. Note: I didn't say that I believe in processes, because I don't. [...] You name a methodology, and I don't believe in it. But I do believe that there are some process patterns that can dramatically improve team productivity.
</blockquote>
<p>
These patterns are things that are common to several of the processes common to software development - like backlogs, test driven development, etc - but don't have to be considered as something that only comes with XP or Scrum and shouldn't be used outside them. There's even <a href="http://www.ambysoft.com/processPatternsPage.html">a whole other site</a> dedicated to defining these patterns and where the ideas came from. Oh, and don't forget to add <i>Wil</i>'s new word to your vocabulary - "hackle", two or more engineers working together on one project (not necessarily as a team).
</p>]]></description>
      <pubDate>Thu, 30 Dec 2010 08:34:01 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Tobias Schlitt's Blog: PHP library release survey]]></title>
      <guid>http://www.phpdeveloper.org/news/15528</guid>
      <link>http://www.phpdeveloper.org/news/15528</link>
      <description><![CDATA[<p>
<i>Tobias Schlitt</i> has <a href="http://schlitt.info/opensource/blog/0738_php_library_release_survey.html">a new post to his blog</a> about a survey the <a href="http://incubator.apache.org/zetacomponents/">Apache Zeta Components</a> project is running about how developers would like to receive the libraries they use in their code.
</p>
<blockquote>
The <a href="http://incubator.apache.org/zetacomponents/">Apache Zeta Components</a> project is currently discussing how to adjust the old eZ Components release process to the ASF guidelines. During this discussions, quite some ideas came up on how the process could be optimized. This brought my interest to how users of PHP libraries would actually like to obtain library code for their projects. I will publish the raw results of the survey later, so all of the PHP libraries and frameworks can benefit. So please take some minutes and fill out the form! 
</blockquote>
<p>
The survey itself is embedded in <a href="http://schlitt.info/opensource/blog/0738_php_library_release_survey.html">his blog post</a>, so you can fill it out right there on the same page. It asks questions about currently used libraries, preferred install methods and deployment methods. If you'd like a more direct link, you can <a href="http://bit.ly/phplibrelsur">go here</a>.
</p>]]></description>
      <pubDate>Thu, 02 Dec 2010 11:50:49 -0600</pubDate>
    </item>
  </channel>
</rss>

