<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>BrandonSavage.net &#187; Best Practices</title>
	<atom:link href="http://www.brandonsavage.net/category/best-practices/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonsavage.net</link>
	<description>The personal blog of Brandon Savage. Contains entries of a personal and professional nature focusing on PHP, Apple, LAMP, MySQL and Washington, DC.</description>
	<lastBuildDate>Wed, 28 Jul 2010 15:28:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>TEK Webcast Notes</title>
		<link>http://www.brandonsavage.net/tek-webcast-notes/</link>
		<comments>http://www.brandonsavage.net/tek-webcast-notes/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 11:00:58 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP TEK]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1278</guid>
		<description><![CDATA[Last Friday, I did a webcast as a part of the PHP TEK Webcast series. The webcast was on Caching for WordPress. We had a good turnout, and there were lots of questions about the best plugins to use for WordPress caching. For me, every WordPress blog should have APC installed on it, hands down. [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/tek-webcast-notes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Caching For WordPress &#8211; A TEK-X Webinar</title>
		<link>http://www.brandonsavage.net/caching-for-wordpress-a-tek-x-webinar/</link>
		<comments>http://www.brandonsavage.net/caching-for-wordpress-a-tek-x-webinar/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 15:17:05 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[talks]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1271</guid>
		<description><![CDATA[Anyone who has worked with WordPress knows that it&#8217;s greatest strength is also one of it&#8217;s greatest weaknesses: it&#8217;s architecture. The same architecture that makes it easy to include literally hundreds of plugins also makes it slow, resource-intensive and bulky. Unlike Drupal, WordPress doesn&#8217;t have a built-in caching mechanism. What is a developer to do? [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/caching-for-wordpress-a-tek-x-webinar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Registry Pattern Reexamined</title>
		<link>http://www.brandonsavage.net/the-registry-pattern-reexamined/</link>
		<comments>http://www.brandonsavage.net/the-registry-pattern-reexamined/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 11:00:37 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[object oriented programming]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[registry pattern]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1221</guid>
		<description><![CDATA[Last July, I wrote about the registry pattern and some of its advantages. These advantages include the ability to access objects across different areas of your application, and the storage of objects for later retrieval. Much of the debate in the comments focused on whether or not the registry pattern was suitable for today&#8217;s object-oriented [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/the-registry-pattern-reexamined/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>The 15 Minute Rule Of Software Development</title>
		<link>http://www.brandonsavage.net/the-15-minute-rule-of-software-development/</link>
		<comments>http://www.brandonsavage.net/the-15-minute-rule-of-software-development/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 11:00:02 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[15 minute rule]]></category>
		<category><![CDATA[application architecture]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[product design]]></category>
		<category><![CDATA[spec]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1196</guid>
		<description><![CDATA[I talk a lot about how having a spec is a critical component of software development. But how do you know that your spec is good, and that it has been developed enough? Simply put, how do you distinguish between a good spec and a spec that is lacking? This problem had confounded me for [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/the-15-minute-rule-of-software-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why Active Record Isn&#8217;t A Bad Design Pattern</title>
		<link>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/</link>
		<comments>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:00:38 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[design patterns]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1190</guid>
		<description><![CDATA[Were I writing this as an article for a newspaper, the subhead would be &#8220;Design Patterns Don&#8217;t Cause Application Slowness.&#8221; The point of this piece isn&#8217;t to defend Active Record per se; it&#8217;s to discuss the fact that design patterns aren&#8217;t to blame for your application&#8217;s problems, and more to the point, design patterns aren&#8217;t [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>In Defense of Development Practices</title>
		<link>http://www.brandonsavage.net/in-defense-of-development-practices/</link>
		<comments>http://www.brandonsavage.net/in-defense-of-development-practices/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 06:00:57 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[development process]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1187</guid>
		<description><![CDATA[On Tuesday, Marco Tabini told us that we were doing it all wrong. He makes some fantastic points about software development overall, and about the state of our profession. This article&#8217;s point isn&#8217;t to be a rebuttal, but a corollary to what he had to say. Marco is right: every one of us is &#8220;doing [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/in-defense-of-development-practices/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Testing: Making Sure Code Works Before Shipping It</title>
		<link>http://www.brandonsavage.net/testing-making-sure-code-works-before-shipping-it/</link>
		<comments>http://www.brandonsavage.net/testing-making-sure-code-works-before-shipping-it/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 06:00:45 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1097</guid>
		<description><![CDATA[Shipping code that works is crucial to retaining the support of customers and high quality in your application. While it&#8217;s impossible to ship code without any bugs at all, it is possible to control for as many as possible, and fix as many known issues as there is time. These strategies are designed to ensure [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/testing-making-sure-code-works-before-shipping-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[Applying The Joel Test In The Real World]]></series:name>
	</item>
		<item>
		<title>Build Systems: Relevancy of Automated Builds In A Web World</title>
		<link>http://www.brandonsavage.net/build-systems-relevancy-of-automated-builds-in-a-web-world/</link>
		<comments>http://www.brandonsavage.net/build-systems-relevancy-of-automated-builds-in-a-web-world/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:00:38 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[automated build]]></category>
		<category><![CDATA[build scripts]]></category>
		<category><![CDATA[build system]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[phing]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1098</guid>
		<description><![CDATA[Often when I&#8217;m on a job interview, I&#8217;ll ask whether or not the company I&#8217;m talking with makes use of an automated build system of any kind. More often than not, the answer I get is somewhere along the lines of &#8220;build systems are irrelevant to the web; we can simply upload changes instantly.&#8221; This [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/build-systems-relevancy-of-automated-builds-in-a-web-world/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<series:name><![CDATA[Applying The Joel Test In The Real World]]></series:name>
	</item>
		<item>
		<title>How To Win Developers and Influence Code Quality</title>
		<link>http://www.brandonsavage.net/how-to-win-developers-and-influence-code-quality/</link>
		<comments>http://www.brandonsavage.net/how-to-win-developers-and-influence-code-quality/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 06:00:38 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[code quality]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[manging developers]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1099</guid>
		<description><![CDATA[Lots of marketing students and sales professionals each year are required to read the book How To Win Friends And Influence People and for good reason: the book stands alone as one of the greatest books on sales ever. I decided to co-opt the title of that great book for this entry, because I want [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/how-to-win-developers-and-influence-code-quality/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[Applying The Joel Test In The Real World]]></series:name>
	</item>
		<item>
		<title>Tracking and Fixing Bugs In Software Projects</title>
		<link>http://www.brandonsavage.net/tracking-and-fixing-bugs-in-software-projects/</link>
		<comments>http://www.brandonsavage.net/tracking-and-fixing-bugs-in-software-projects/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 06:00:16 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[bug tracking]]></category>
		<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1096</guid>
		<description><![CDATA[In software development, it&#8217;s crucial to track bugs and new features, and to be able to know exactly where a project is at any given moment. Bug tracking is crucial tot his goal; it allows a project manager to know what has been finished and what still must be done, as well as to outline [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/tracking-and-fixing-bugs-in-software-projects/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[Applying The Joel Test In The Real World]]></series:name>
	</item>
		<item>
		<title>Painless Spec and Schedule Development</title>
		<link>http://www.brandonsavage.net/painless-spec-and-schedule-development/</link>
		<comments>http://www.brandonsavage.net/painless-spec-and-schedule-development/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 06:00:09 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business Management]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[schedule writing]]></category>
		<category><![CDATA[scheduling]]></category>
		<category><![CDATA[spec]]></category>
		<category><![CDATA[specification]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1094</guid>
		<description><![CDATA[In the time that I have developed software, I don&#8217;t know that I&#8217;ve ever met a developer who got excited about writing specs for anything. In fact, most developers loathe writing specs, or developing schedules of any kind. It&#8217;s not that they&#8217;re lazy, or that they don&#8217;t want to be held accountable; most of the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/painless-spec-and-schedule-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[Applying The Joel Test In The Real World]]></series:name>
	</item>
		<item>
		<title>Why Tracking Bugs In Personal Projects Matters</title>
		<link>http://www.brandonsavage.net/why-tracking-bugs-in-personal-projects-matters/</link>
		<comments>http://www.brandonsavage.net/why-tracking-bugs-in-personal-projects-matters/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 06:00:51 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Personal Management]]></category>
		<category><![CDATA[bug tracking]]></category>
		<category><![CDATA[development process]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1075</guid>
		<description><![CDATA[A lot of time and effort goes into designing processes for development projects when the projects are professional or work-related projects. We spend hours investing in version control, bug tracking, specification design, and process. But what about our own personal projects, that we do either for money or for fun? Too often, it seems like [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-tracking-bugs-in-personal-projects-matters/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Data Formatting: It IS Our Job</title>
		<link>http://www.brandonsavage.net/data-formatting-it-is-our-job/</link>
		<comments>http://www.brandonsavage.net/data-formatting-it-is-our-job/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 06:00:15 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[formatting data]]></category>
		<category><![CDATA[user friendly]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1069</guid>
		<description><![CDATA[It&#8217;s happened to each and every one of us: we fill out a long form, complete with username and password. We double and triple check everything, because want to make sure the submission works. We verify our email address, our date of birth, and even maybe retype our password, just to make sure they&#8217;re both [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/data-formatting-it-is-our-job/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Five (Good) Lessons The Government Teaches Us About Object-Oriented Programming</title>
		<link>http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/</link>
		<comments>http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 06:00:39 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1050</guid>
		<description><![CDATA[As Benjamin Franklin once famously said, &#8220;the only two things that are certain in life are death and taxes.&#8221; His point, while political, has a good perspective on one of life&#8217;s ever-persistent truths: the fact that governments exist in every country, and, largely, they have some of the same benefits and drawbacks everywhere. However, the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why You Should Replace ENUM With Something Else</title>
		<link>http://www.brandonsavage.net/why-you-should-replace-enum-with-something-else/</link>
		<comments>http://www.brandonsavage.net/why-you-should-replace-enum-with-something-else/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 06:00:27 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[data types]]></category>
		<category><![CDATA[database architecture]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1047</guid>
		<description><![CDATA[One of the most hotly contested points of my article on database design was the suggestion that developers drop the use of ENUM and use something else instead. Lots of people argued in favor of ENUM; however, there are several good reasons why developers should reconsider ENUM and use it sparingly. There are three core [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-you-should-replace-enum-with-something-else/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<series:name><![CDATA[The Beginner Pattern]]></series:name>
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk (feed is rejected)
Page Caching using apc (user agent is rejected)
Database Caching 47/55 queries in 0.070 seconds using disk
Content Delivery Network via Amazon Web Services: S3: files.brandonsavage.net.s3.amazonaws.com

Served from: www.brandonsavage.net @ 2010-07-31 10:52:13 -->