<?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>Kerkness.ca &#187; PHP</title>
	<atom:link href="http://www.kerkness.ca/content/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kerkness.ca</link>
	<description>flexing my kerkness, among other things</description>
	<lastBuildDate>Wed, 14 Oct 2009 15:12:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Symfony Blog: Announcing symfony Day Cologne</title>
		<link>http://www.kerkness.ca/symfony-blog-announcing-symfony-day-cologne/</link>
		<comments>http://www.kerkness.ca/symfony-blog-announcing-symfony-day-cologne/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/symfony-blog-announcing-symfony-day-cologne/</guid>
		<description><![CDATA[
The Symfony blog has annoucned the Symfony Day Cologne event coming in September:


It is with great pleasure that I announce a new symfony event: symfony Day Cologne. symfony Day will be the first symfony conference in Germany. On september 4th 2009, symfony fans from Europe and beyond are invited to come visit the beautiful city [...]]]></description>
			<content:encoded><![CDATA[<p>
The Symfony blog has <a href="http://www.symfony-project.org/blog/2009/07/21/announcing-symfony-day-cologne">annoucned the Symfony Day Cologne</a> event coming in September:
</p>
<blockquote><p>
It is with great pleasure that I announce a new symfony event: <a href="http://www.symfonyday.com/">symfony Day Cologne</a>. symfony Day will be the first symfony conference in Germany. On september 4th 2009, symfony fans from Europe and beyond are invited to come visit the beautiful city of Cologne for excellent speakers, great discussions and an awesome party.
</p></blockquote>
<p>
Registration is open and you can reserve your spot <a href="http://www.symfonyday.com/">in the event&#8217;s website</a>. The day will cost 80 Euro and includes food and drinks during the event.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/symfony-blog-announcing-symfony-day-cologne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CatsWhoCode.com: 15 PHP regular expressions for web developers</title>
		<link>http://www.kerkness.ca/catswhocodecom-15-php-regular-expressions-for-web-developers/</link>
		<comments>http://www.kerkness.ca/catswhocodecom-15-php-regular-expressions-for-web-developers/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/catswhocodecom-15-php-regular-expressions-for-web-developers/</guid>
		<description><![CDATA[
On CatsWhoCode.com today there&#8217;s a new article listing fifteen handy regular expressions you might find useful in your day-to-day development (as well as a brief introduction to what regular expressions are).


Regular expressions are a very useful tool for developers. They allow to find, identify or replace text, words or any kind of characters. In this [...]]]></description>
			<content:encoded><![CDATA[<p>
On CatsWhoCode.com today there&#8217;s <a href="http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers">a new article</a> listing fifteen handy regular expressions you might find useful in your day-to-day development (as well as a brief introduction to what regular expressions are).
</p>
<blockquote><p>
Regular expressions are a very useful tool for developers. They allow to find, identify or replace text, words or any kind of characters. In this article, I have compiled 15+ extremely useful regular expressions that any web developer should have in his toolkit.
</p></blockquote>
<p>Here&#8217;s just some of the expressions on the list:</p>
<ul>
<li>Enlight a word from a text
<li>Remove repeated words (case insensitive)
<li>Matching a XML/HTML tag
<li>Matching hexadecimal color values
<li>Parsing Apache logs
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/catswhocodecom-15-php-regular-expressions-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer.com: Performance Improvements: Caching</title>
		<link>http://www.kerkness.ca/developercom-performance-improvements-caching/</link>
		<comments>http://www.kerkness.ca/developercom-performance-improvements-caching/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/developercom-performance-improvements-caching/</guid>
		<description><![CDATA[
While not specifically related to caching in PHP applications, this recent post from developer.com has some good reminders of how much the right kind of caching can help your application to really fly.


If you&#8217;re looking at performance and you want to get some quick wins, the obvious place to start is caching. Caching as a [...]]]></description>
			<content:encoded><![CDATA[<p>
While not specifically related to caching in PHP applications, <a href="http://www.developer.com/mgmt/article.php/3831821">this recent post</a> from developer.com has some good reminders of how much the right kind of caching can help your application to really fly.
</p>
<blockquote><p>
If you&#8217;re looking at performance and you want to get some quick wins, the obvious place to start is caching. Caching as a concept is focused exclusively around improving performance. [...] Fundamentally caching has one limitation &#8211; managing updates &#8211; and several decisions. In this article, we&#8217;ll explore the basic options for caching and their impact on performance.
</p></blockquote>
<p>
They talk about three different update methods &#8211; a synchronized update, lazy update and a read-through strategy (where the caching functionality itself can force a re-read of the original source). There&#8217;s also a brief look at options to consider when caching data and how you&#8217;re going to manage that cache once you&#8217;ve filled it with data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/developercom-performance-improvements-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job Posting: Banis &amp; Associates (Recruiter) Seeks Tech Lead (Southeast US)</title>
		<link>http://www.kerkness.ca/job-posting-banis-associates-recruiter-seeks-tech-lead-southeast-us/</link>
		<comments>http://www.kerkness.ca/job-posting-banis-associates-recruiter-seeks-tech-lead-southeast-us/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/job-posting-banis-associates-recruiter-seeks-tech-lead-southeast-us/</guid>
		<description><![CDATA[

Company
Banis &#038; Associates (Recruiter)


Location
Southeast US


Title
Tech Lead


Summary

Company:

	Our client, headquartered in the Southeast, is an online marketing services company that acquires new customers on behalf of brands in a variety of vertical markets, ranging from home and business services to education and automotive.  Capabilities include lead generation, sales conversion, performance tracking and marketing channel optimization.  [...]]]></description>
			<content:encoded><![CDATA[<table cellpadding="3" cellspacing="2" border="0">
<tr>
<td>Company</td>
<td>Banis &#038; Associates (Recruiter)</td>
</tr>
<tr>
<td>Location</td>
<td>Southeast US</td>
</tr>
<tr>
<td>Title</td>
<td>Tech Lead</td>
</tr>
<tr>
<td>Summary</td>
<td>
<p><b>Company:</b></p>
<p>
	Our client, headquartered in the Southeast, is an online marketing services company that acquires new customers on behalf of brands in a variety of vertical markets, ranging from home and business services to education and automotive.  Capabilities include lead generation, sales conversion, performance tracking and marketing channel optimization.  Founded in 2000, the company has six offices and more than 500 employees.
	</p>
<p><b>Responsibilities:</b></p>
<p>
	Provide PHP programming and functionality for a wide variety of consumer related websites, intranets, extranets, and web-based applications.
	</p>
<p>
	Collaborate with business leaders to understand technology needs and requirements and lead a small team of developers.
	</p>
<p>
	Be challenged on a daily basis to solve problems in new and creative ways.
	</p>
<p>
	Design, evaluate, update, and maintain object oriented applications in PHP.
	</p>
<p>
	Share your opinions and insights with business leaders on a daily basis in order to affect rapid decision cycles and effective solutions to business requirements.
	</p>
<p>
	Translate vague business requirements into tangible and accurate technical requirements as well as anticipate future requirements within the design of new systems.
	</p>
<p><b>Requirements:</b></p>
<ul>
<li>Bachelor&#8217;s degree in Information Sciences or similar field.
<li>5+ years of solid PHP and MySQL development.
<li>Strong working knowledge of HTML, DHTML/CSS and Javascript.
<li>The ability to translate business requirements into system design.
<li>Successful track record of working in a fast-paced, collaborative team environment.
<li>Exceptional debugging skills and the ability to easily and quickly read and modify existing code.
<li>Ability to effectively communicate with business leaders and marketing managers.
<li>Desire to take an active role in the success of the business unit.
<li>Genuine interest in our business and in creating technologies to enable its success.
<li>Sense of humor
	</ul>
<p>
      Further information can be obtained by contacting:<br/><br />
      Jeanne Boyce &#8211; Banis &#038; Associates<br/><br />
      at 815-468-0150 or jmboyce@sbcglobal.net
	</p>
<p>
      All inquiries are kept on a strictly confidential basis.
	</p>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/job-posting-banis-associates-recruiter-seeks-tech-lead-southeast-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NETTUTS.com: CodeIgniter From Scratch: Day 2</title>
		<link>http://www.kerkness.ca/nettutscom-codeigniter-from-scratch-day-2/</link>
		<comments>http://www.kerkness.ca/nettutscom-codeigniter-from-scratch-day-2/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/nettutscom-codeigniter-from-scratch-day-2/</guid>
		<description><![CDATA[
NETTUTS.com has posted Day 2 of their &#8220;CodeIgniter from Scratch&#8221; series of vidcasts following up on the first day.


Continuing on from day 1, today, I&#8217;ll teach you five different ways to write select statements for your database. If you haven&#8217;t watched the first entry in this video series, don&#8217;t worry; each video can function on [...]]]></description>
			<content:encoded><![CDATA[<p>
NETTUTS.com has <a href="http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-2/">posted Day 2</a> of their &#8220;CodeIgniter from Scratch&#8221; series of vidcasts following up on <a href="http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-1/">the first day</a>.
</p>
<blockquote><p>
Continuing on from <a href="http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-1/">day 1</a>, today, I&#8217;ll teach you five different ways to write select statements for your database. If you haven&#8217;t watched the first entry in this video series, don&#8217;t worry; each video can function on its own as a single tutorial. Having said that, I highly recommend that you watch each screencast.
</p></blockquote>
<p>
You can watch the vidcast through their <a href="http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-2/">in-page player</a> or just <a href="http://nettuts.s3.amazonaws.com/380_ci_one/ci_day2.zip">grab the source code</a> for their examples and get to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/nettutscom-codeigniter-from-scratch-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM developerWorks: MVC with Agavi &#8211; Add forms and database support with Agavi and Doctrine</title>
		<link>http://www.kerkness.ca/ibm-developerworks-mvc-with-agavi-add-forms-and-database-support-with-agavi-and-doctrine/</link>
		<comments>http://www.kerkness.ca/ibm-developerworks-mvc-with-agavi-add-forms-and-database-support-with-agavi-and-doctrine/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/ibm-developerworks-mvc-with-agavi-add-forms-and-database-support-with-agavi-and-doctrine/</guid>
		<description><![CDATA[
The second part of the IBM developerWorks series looking at the Agavi PHP framework has been posted. In it Vikram Vaswani loks at adding forms and database support to his example via Doctrine.


While Agavi can certainly be used to serve up static content, it really shines when you use it for something more complex. And [...]]]></description>
			<content:encoded><![CDATA[<p>
The second part of the IBM developerWorks series looking at the Agavi PHP framework <a href="http://www.ibm.com/developerworks/library/x-agavipt2/">has been posted</a>. In it <i>Vikram Vaswani</i> loks at adding forms and database support to his example via Doctrine.
</p>
<blockquote><p>
While Agavi can certainly be used to serve up static content, it really shines when you use it for something more complex. And in this second part, you&#8217;ll do just that &#8211; over the next few pages, you&#8217;ll learn how to receive, validate, and process input from Web forms, as well as connect your Agavi application to a MySQL database.
</p></blockquote>
<p>
He returns to his simple templated example site and shows how to use the command line agavi tool to create the routing and controller to handle the &#8220;contact us&#8221; requests. He includes form validation examples, how to use the population filter, and how to generate the Doctrine models to connect with the form directly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/ibm-developerworks-mvc-with-agavi-add-forms-and-database-support-with-agavi-and-doctrine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Community News: Latest PECL Releases for 07.28.2009</title>
		<link>http://www.kerkness.ca/community-news-latest-pecl-releases-for-07282009/</link>
		<comments>http://www.kerkness.ca/community-news-latest-pecl-releases-for-07282009/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/community-news-latest-pecl-releases-for-07282009/</guid>
		<description><![CDATA[Latest PECL Releases:

pecl_http 1.6.4
mongo 0.9.3
gearman 0.5.0

]]></description>
			<content:encoded><![CDATA[<p>Latest PECL Releases:</p>
<ul>
<li><a href="http://pecl.php.net/package/pecl_http/download/1.6.4/">pecl_http 1.6.4</a></p>
<li><a href="http://pecl.php.net/package/mongo/download/0.9.3/">mongo 0.9.3</a>
<li><a href="http://pecl.php.net/package/gearman/download/0.5.0/">gearman 0.5.0</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/community-news-latest-pecl-releases-for-07282009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php&#124;architect Blog: Professional Programming: DTAP &#8211; Part 2 : Other moving Pieces</title>
		<link>http://www.kerkness.ca/phparchitect-blog-professional-programming-dtap-part-2-other-moving-pieces/</link>
		<comments>http://www.kerkness.ca/phparchitect-blog-professional-programming-dtap-part-2-other-moving-pieces/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/phparchitect-blog-professional-programming-dtap-part-2-other-moving-pieces/</guid>
		<description><![CDATA[
The php&#124;architect blog has posted the second part of Cal Evans&#8217; series looking at the typical lifecycle of a project &#8211; Development, Testing, Acceptance and Production.


In the previous part of this series, we discussed the main pieces needed for a proper development environment. However, there are other, smaller pieces, scripts, subsystems and other very important [...]]]></description>
			<content:encoded><![CDATA[<p>
The php|architect blog has <a href="http://phparch.com/main/news/view/35">posted the second part</a> of <i>Cal Evans&#8217;</i> series looking at the typical lifecycle of a project &#8211; Development, Testing, Acceptance and Production.
</p>
<blockquote><p>
In the previous part of this series, we discussed the main pieces needed for a proper development environment. However, there are other, smaller pieces, scripts, subsystems and other very important components of a properly-configured development environment that don&#8217;t fit in the acronym.
</p></blockquote>
<p>
<a href="http://phparch.com/main/news/view/35">This second part</a> of the series looks at the &#8220;T&#8221; in DTAP &#8211; testing. It mentions unit testing, integration testing and regression testing. He also touches briefly on &#8220;refresh scripts&#8221; to handle data updates or pushes out to another stage of the process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/phparchitect-blog-professional-programming-dtap-part-2-other-moving-pieces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevShed: PHP 5 Helpers: Calling Methods Out of Object Scope</title>
		<link>http://www.kerkness.ca/devshed-php-5-helpers-calling-methods-out-of-object-scope/</link>
		<comments>http://www.kerkness.ca/devshed-php-5-helpers-calling-methods-out-of-object-scope/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/devshed-php-5-helpers-calling-methods-out-of-object-scope/</guid>
		<description><![CDATA[
In this new tutorial from DevShed today they continue their series looking at making helper classes for your applications. This time they&#8217;re focusing on using methods without needing to create an object first &#8211; static methods.


The methods of the class that I [just] mentioned were declared implicitly dynamic, even though it&#8217;s perfectly possible to call [...]]]></description>
			<content:encoded><![CDATA[<p>
In <a href="http://www.devshed.com/c/a/PHP/PHP-5-Helpers-Calling-Methods-Out-of-Object-Scope">this new tutorial</a> from DevShed today they continue their series looking at making helper classes for your applications. This time they&#8217;re focusing on using methods without needing to create an object first &#8211; static methods.
</p>
<blockquote><p>
The methods of the class that I [just] mentioned were declared implicitly dynamic, even though it&#8217;s perfectly possible to call them statically, and the PHP engine won&#8217;t raise any errors about this process. However, it would be much better to declare these methods explicitly static, thus taking advantage of the functionality offered by the text helper class without having to spawn an instance of it.
</p></blockquote>
<p>
They show how to <a href="http://www.devshed.com/c/a/PHP/PHP-5-Helpers-Calling-Methods-Out-of-Object-Scope/2/">define the methods</a> with the &#8220;static&#8221; keyword so they can be called outside of the class&#8217; scope. Code for the helper class and the code to put it to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/devshed-php-5-helpers-calling-methods-out-of-object-scope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEAR Blog: Setting Up PEAR2 and PEAR Checkouts With SVN 1.5+</title>
		<link>http://www.kerkness.ca/pear-blog-setting-up-pear2-and-pear-checkouts-with-svn-15/</link>
		<comments>http://www.kerkness.ca/pear-blog-setting-up-pear2-and-pear-checkouts-with-svn-15/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:09:47 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/pear-blog-setting-up-pear2-and-pear-checkouts-with-svn-15/</guid>
		<description><![CDATA[
The PEAR blog has posted some handy instructions for those out there that want to get PEAR and PEAR2 checkouts working from the new Subversion repository (recently moved from CVS).


Now that pear2 is in svn.php.net, it is possible to do commits with
multiple packages using a feature of subversion called &#8220;sparse checkouts.&#8221; [...] Here is the [...]]]></description>
			<content:encoded><![CDATA[<p>
The PEAR blog has <a href="http://blog.pear.php.net/2009/07/25/setting-up-pear2-and-pear-checkouts-with-svn-15/">posted some handy instructions</a> for those out there that want to get PEAR and PEAR2 checkouts working from the new Subversion repository (recently moved from CVS).
</p>
<blockquote><p>
Now that pear2 is in svn.php.net, it is possible to do commits with<br />
multiple packages using a feature of subversion called &#8220;sparse checkouts.&#8221; [...] Here is the version I used to set up pear and pear2 in a way that will allow committing to both pear and pear2 packages in a single commit.
</p></blockquote>
<p>
<i>Rasmus Lerdorf</i> has <a href="http://news.php.net/php.internals/44993">written about</a> the same thing for the main PHP side of things. All the commands you&#8217;ll need are there to get things set up and working more efficiently.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/pear-blog-setting-up-pear2-and-pear-checkouts-with-svn-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
