<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://bradley-holt.com/wp-atom.php">
	<title type="text">Bradley Holt</title>
	<subtitle type="text" />

	<updated>2012-01-06T18:57:15Z</updated>

	<link rel="alternate" type="text/html" href="http://bradley-holt.com" />
	<id>http://bradley-holt.com/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.0.4">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/bradley-holt" /><feedburner:info uri="bradley-holt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[The Future of CouchDB and Couchbase Server]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/9msLv0rQIRM/" />
		<id>http://bradley-holt.com/?p=1491</id>
		<updated>2012-01-05T19:42:03Z</updated>
		<published>2012-01-05T19:42:03Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="Couchbase" /><category scheme="http://bradley-holt.com" term="CouchDB" /><category scheme="http://bradley-holt.com" term="FOSS" /><category scheme="http://bradley-holt.com" term="Git" /><category scheme="http://bradley-holt.com" term="NoSQL" />		<summary type="html"><![CDATA[&#8220;What&#8217;s the future of CouchDB? It&#8217;s Couchbase.&#8221; —Damien Katz &#8220;The future of CouchDB is CouchDB.&#8221; —Noah Slater First of all, don&#8217;t panic. The Apache CouchDB project is thriving. There are plenty of core contributors who are dedicated to the project. If you&#8217;re using CouchDB, you&#8217;re fine. If you&#8217;re considering using CouchDB, you&#8217;ll be fine. CouchDB [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2012/01/the-future-of-couchdb-and-couchbase-server/">&lt;blockquote&gt;&lt;p&gt;&amp;#8220;&lt;a href="http://damienkatz.net/2012/01/the_future_of_couchdb.html"&gt;What&amp;#8217;s the future of CouchDB? It&amp;#8217;s Couchbase.&lt;/a&gt;&amp;#8221; —Damien Katz&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;&lt;a href="https://twitter.com/nslater/status/154938284647260160"&gt;The future of CouchDB is CouchDB.&lt;/a&gt;&amp;#8221; —Noah Slater&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;First of all, don&amp;#8217;t panic. The Apache CouchDB project is thriving. There are plenty of core contributors who are dedicated to the project. If you&amp;#8217;re using CouchDB, you&amp;#8217;re fine. If you&amp;#8217;re considering using CouchDB, you&amp;#8217;ll be fine. CouchDB has a bright future ahead of it. Couchbase has repeatedly said that they&amp;#8217;re not the CouchDB company, so this shouldn&amp;#8217;t be a surprise to anyone.&lt;/p&gt;
&lt;p&gt;My interpretation of this announcement is that CouchDB is forking. Going forward, you&amp;#8217;ll have two choices, either Apache CouchDB or Couchbase Server. The &lt;a href="https://issues.apache.org/jira/browse/COUCHDB?report=com.atlassian.jira.plugin.system.project:roadmap-panel"&gt;road map for Apache CouchDB&lt;/a&gt; will continue to be determined by community consensus. The road map for Couchbase Server will be determined by Couchbase, the company.&lt;/p&gt;
&lt;p&gt;CouchDB has two futures: CouchDB and Couchbase Server. Traditionally, forking a project in this manner has been considered a Bad Thing. From The Jargon File entry for &lt;a href="http://catb.org/jargon/html/F/forked.html"&gt;forked&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;An open-source software project is said to have forked or be forked when the project group fissions into two or more parts pursuing separate lines of development (or, less commonly, when a third party unconnected to the project group begins its own line of development).  Forking is considered a &lt;a href="http://catb.org/jargon/html/B/Bad-Thing.html"&gt;&lt;em&gt;Bad Thing&lt;/em&gt;&lt;/a&gt; — not merely because it implies a lot of wasted effort in the future, but because forks tend to be accompanied by a great deal of strife and acrimony between the successor groups over issues of legitimacy, succession, and design direction.  There is serious social pressure against forking.  As a result, major forks (such as the Gnu-Emacs/XEmacs split, the fissionings of the 386BSD group into three daughter projects, and the short-lived GCC/EGCS split) are rare enough that they are remembered individually in hacker folklore.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In my humble opinion, forking should no longer be considered a Bad Thing. Distributed revision control systems, such as Git, have made it much easier to merge changes back-and-forth between forked projects. If an individual or organization wants to take a project in a different direction, great! It sounds like Couchbase Server will be designed to meet a set of needs that are not being met by CouchDB. If so, a fork is perfectly appropriate as now both sets of needs can be met.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/9msLv0rQIRM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2012/01/the-future-of-couchdb-and-couchbase-server/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2012/01/the-future-of-couchdb-and-couchbase-server/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2012/01/the-future-of-couchdb-and-couchbase-server/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[Top Five Posts of 2011]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/sh6fFd1tNEg/" />
		<id>http://bradley-holt.com/?p=1480</id>
		<updated>2011-12-30T17:15:32Z</updated>
		<published>2011-12-30T17:15:32Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="AMQP" /><category scheme="http://bradley-holt.com" term="CouchApp" /><category scheme="http://bradley-holt.com" term="CouchDB" /><category scheme="http://bradley-holt.com" term="Databases" /><category scheme="http://bradley-holt.com" term="Domain-Driven Design" /><category scheme="http://bradley-holt.com" term="FOSS" /><category scheme="http://bradley-holt.com" term="HTML5" /><category scheme="http://bradley-holt.com" term="HTTP" /><category scheme="http://bradley-holt.com" term="JavaScript" /><category scheme="http://bradley-holt.com" term="jQuery" /><category scheme="http://bradley-holt.com" term="JSON" /><category scheme="http://bradley-holt.com" term="NoSQL" /><category scheme="http://bradley-holt.com" term="Open Standards" /><category scheme="http://bradley-holt.com" term="OSCON" /><category scheme="http://bradley-holt.com" term="PHP" /><category scheme="http://bradley-holt.com" term="PHP-QAT" /><category scheme="http://bradley-holt.com" term="Quality Assurance" /><category scheme="http://bradley-holt.com" term="RabbitMQ" /><category scheme="http://bradley-holt.com" term="REST" /><category scheme="http://bradley-holt.com" term="Scaling" /><category scheme="http://bradley-holt.com" term="Software Design" />		<summary type="html"><![CDATA[Continuing a trend started by Cal Evans and then followed by Chris Cornutt, Matthew Turland, and Joe Devon; here are the top five most viewed posts from my blog in 2011. 5. CouchDB and Domain-Driven Design This post covered two topics that are of great interest to me. Document databases like CouchDB have much potential [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/12/top-five-posts-of-2011/">&lt;p&gt;Continuing a trend started by &lt;a href="http://blog.calevans.com/2011/12/29/top-three-posts-of-2011/"&gt;Cal Evans&lt;/a&gt; and then followed by &lt;a href="http://blog.phpdeveloper.org/?p=425"&gt;Chris Cornutt&lt;/a&gt;, &lt;a href="http://matthewturland.com/2011/12/29/top-10-posts-of-2011/"&gt;Matthew Turland&lt;/a&gt;, and &lt;a href="http://mysqltalk.wordpress.com/2011/12/30/top-posts-of-2011/"&gt;Joe Devon&lt;/a&gt;; here are the top five most viewed posts from my blog in 2011.&lt;/p&gt;
&lt;h3&gt;5. &lt;a href="http://bradley-holt.com/2011/08/couchdb-and-domain-driven-design/"&gt;CouchDB and Domain-Driven Design&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This post covered two topics that are of great interest to me. Document databases like CouchDB have much potential when it comes to domain-driven design. The post outlined some techniques for serializing domain objects into CouchDB documents.&lt;/p&gt;
&lt;h3&gt;4. &lt;a href="http://bradley-holt.com/2011/07/addressing-the-nosql-criticism/"&gt;Addressing the NoSQL Criticism&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I heard a lot of NoSQL bashing this year at OSCON. As a result, I decided to write a rebuttal to many of the criticisms that I heard. This post inspired a lively &lt;a href="http://bradley-holt.com/2011/07/addressing-the-nosql-criticism/#comments"&gt;comment thread&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;3. &lt;a href="http://bradley-holt.com/2011/07/testing-php-5-4/"&gt;Testing PHP 5.4&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This was a short post on how to help the &lt;a href="http://qa.php.net/"&gt;PHP Quality Assurance Team&lt;/a&gt; by running the tests for the latest development version of PHP 5.4. It covered downloading, compiling, and running the tests. Most importantly, it also covered reporting your test results.&lt;/p&gt;
&lt;h3&gt;2. &lt;a href="http://bradley-holt.com/2011/07/exploring-rabbitmq-and-php/"&gt;Exploring RabbitMQ and PHP&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I was exploring the possibility of using RabbitMQ for an upcoming project. I decided to post some notes on my experience getting started with RabbitMQ and integrating it with PHP. I haven&amp;#8217;t ended up using RabbitMQ in production yet, but I&amp;#8217;m confident that I&amp;#8217;ll end up using it at some point.&lt;/p&gt;
&lt;h3&gt;1. &lt;a href="http://bradley-holt.com/2011/07/couchdb-jquery-plugin-reference/"&gt;CouchDB jQuery Plugin Reference&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I had been frustrated by the lack of documentation for the CouchDB jQuery plugin—so decided to write my own. After I wrote the blog post, &lt;a href="http://www.maxogden.com/"&gt;Max Ogden&lt;/a&gt; pointed me to &lt;a href="http://arandomurl.com/"&gt;Dale Harvey&lt;/a&gt;‘s &lt;a href="https://github.com/daleharvey/jquery.couch.js-docs"&gt;documentation generator for jquery.couch.js&lt;/a&gt; and a copy of the generated &lt;a href="http://daleharvey.github.com/jquery.couch.js-docs/symbols/index.html"&gt;jQuery CouchDB documentation&lt;/a&gt;. Max and Dale are also working on a more flexible jquery.couch2.js.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/sh6fFd1tNEg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/12/top-five-posts-of-2011/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/12/top-five-posts-of-2011/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/12/top-five-posts-of-2011/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[Boston PHP Northeast Conference]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/C4ekRtUUNQE/" />
		<id>http://bradley-holt.com/?p=1473</id>
		<updated>2011-12-09T23:51:25Z</updated>
		<published>2011-12-12T15:41:44Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="Boston" /><category scheme="http://bradley-holt.com" term="Boston PHP" /><category scheme="http://bradley-holt.com" term="btvphpug" /><category scheme="http://bradley-holt.com" term="PHP" /><category scheme="http://bradley-holt.com" term="Training" /><category scheme="http://bradley-holt.com" term="User Experience" /><category scheme="http://bradley-holt.com" term="Web Development" />		<summary type="html"><![CDATA[I&#8217;m excited to be able to announce that the first ever Boston PHP Northeast Conference will be taking place on Saturday, August 11th and Sunday, August 12th at Microsoft&#8217;s NERD Center in Cambridge, MA. This regional event is intended for PHP beginners, enthusiasts, and professionals alike. The current plan is to have four tracks: Core [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/12/boston-php-northeast-conference/">&lt;p&gt;I&amp;#8217;m excited to be able to announce that the first ever Boston PHP Northeast Conference will be taking place on Saturday, August 11&lt;sup&gt;th&lt;/sup&gt; and Sunday, August 12&lt;sup&gt;th&lt;/sup&gt; at &lt;a href="http://microsoftcambridge.com/"&gt;Microsoft&amp;#8217;s NERD Center&lt;/a&gt; in Cambridge, MA. This regional event is intended for PHP beginners, enthusiasts, and professionals alike. The current plan is to have four tracks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Core PHP&lt;/li&gt;
&lt;li&gt;Web Development&lt;/li&gt;
&lt;li&gt;Training&lt;/li&gt;
&lt;li&gt;User Experience (UX)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.bostonphp.org/"&gt;Boston PHP&lt;/a&gt; will be hosting the event in partnership with other northeast regional user groups including the &lt;a href="http://groups.google.com/group/burlington-vt-php"&gt;Burlington, Vermont PHP Users Group&lt;/a&gt; (which I organize) and the &lt;a href="http://acphpug.paladin-bs.com/"&gt;Atlantic Canadian PHP User Group&lt;/a&gt;. We&amp;#8217;re still early in the planning stages, so there will be more details to come later. If you&amp;#8217;re interested in speaking, have ideas for the event, or are interested in sponsoring then please &lt;a href="http://www.meetup.com/bostonphp/suggestion/"&gt;send a message to Boston PHP&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/C4ekRtUUNQE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/12/boston-php-northeast-conference/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/12/boston-php-northeast-conference/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/12/boston-php-northeast-conference/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[The Twelve-Factor App Applied to PHP]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/fm8vEY9cM0I/" />
		<id>http://bradley-holt.com/?p=1451</id>
		<updated>2011-11-29T16:32:23Z</updated>
		<published>2011-11-29T16:31:02Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="Best Practices" /><category scheme="http://bradley-holt.com" term="PHP" /><category scheme="http://bradley-holt.com" term="Software Deployment" /><category scheme="http://bradley-holt.com" term="Software Design" /><category scheme="http://bradley-holt.com" term="Twelve-Factor App" /><category scheme="http://bradley-holt.com" term="Zend Framework" />		<summary type="html"><![CDATA[If you develop web apps, I encourage you to check out The Twelve-Factor App. This is an excellent resource for anyone building and deploying software-as-a-service. PHP has great support for many of the twelve-factors. I want to take a look at specifically how each factor may be applied to a PHP application. I. Codebase &#8220;One [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/11/the-twelve-factor-app-applied-to-php/">&lt;p&gt;If you develop web apps, I encourage you to check out &lt;a href="http://www.12factor.net/"&gt;The Twelve-Factor App&lt;/a&gt;. This is an excellent resource for anyone building and deploying software-as-a-service. PHP has great support for many of the twelve-factors. I want to take a look at specifically how each factor may be applied to a PHP application.&lt;/p&gt;
&lt;h3&gt;I. &lt;a href="http://www.12factor.net/codebase"&gt;Codebase&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;One codebase tracked in revision control, many deploys&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;There&amp;#8217;s really not much here that would be different in PHP versus any other language. Who isn&amp;#8217;t using some form of revision control these days?&lt;/p&gt;
&lt;h3&gt;II. &lt;a href="http://www.12factor.net/dependencies"&gt;Dependencies&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Explicitly declare and isolate dependencies&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;There are a few tools available to PHP developers to help manage dependencies. The &lt;a href="http://pear.php.net/"&gt;PEAR&lt;/a&gt; package manager may help here, but has its flaws. &lt;a href="http://pear2.php.net/PEAR2_Pyrus"&gt;Pyrus&lt;/a&gt;, the PEAR2 package manager, looks promising. There&amp;#8217;s also &lt;a href="http://packagist.org/about-composer"&gt;Composer&lt;/a&gt;. I&amp;#8217;ve heard of people using their operating system&amp;#8217;s package manager (e.g. RPM) to deploy their PHP applications and manage dependencies. I&amp;#8217;m not sure if there any tools in PHP to enforce &lt;em&gt;dependency isolation&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;III. &lt;a href="http://www.12factor.net/config"&gt;Config&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Store config in the environment&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The simplest option here is to use &lt;em&gt;environment variables&lt;/em&gt;. Many frameworks, including Zend Framework, allow you to have environment-specific configuration such as &lt;code&gt;development&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, and &lt;code&gt;production&lt;/code&gt;. This is not recommended for twelve-factor apps as it doesn&amp;#8217;t scale as new environments are added.&lt;/p&gt;
&lt;h3&gt;IV. &lt;a href="http://www.12factor.net/backing-services"&gt;Backing Services&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Treat backing services as attached resources&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;There&amp;#8217;s not really anything to say here that&amp;#8217;s specific to PHP.&lt;/p&gt;
&lt;h3&gt;V. &lt;a href="http://www.12factor.net/build-release-run"&gt;Build, release, run&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Strictly separate build and run stages&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.phing.info/trac/"&gt;Phing&lt;/a&gt; or the more general-purpose &lt;a href="http://ant.apache.org/"&gt;Ant&lt;/a&gt; could work here. Even though it&amp;#8217;s not written in PHP, there&amp;#8217;s no reason why you couldn&amp;#8217;t use &lt;a href="https://github.com/capistrano/capistrano/wiki"&gt;Capistrano&lt;/a&gt; for this. I don&amp;#8217;t think the &lt;em&gt;run stage&lt;/em&gt; typically applies to PHP, as it happens implicitly as part of the &lt;em&gt;release stage&lt;/em&gt;. However, there are tasks such as flushing the APC cache (if &lt;code&gt;apc.stat=0&lt;/code&gt;) that might be considered part of the &lt;em&gt;run stage&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;VI. &lt;a href="http://www.12factor.net/processes"&gt;Processes&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Execute the app as one or more stateless processes&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;PHP processes are already stateless and &lt;a href="http://en.wikipedia.org/wiki/Shared_nothing_architecture"&gt;shared-nothing&lt;/a&gt;. This makes PHP a great fit for twelve-factor apps. Memory space or the filesystem should be used as a short-lived, single-process cache. If you&amp;#8217;re using an asset manager, such as &lt;a href="https://github.com/kriswallsmith/assetic"&gt;Assetic&lt;/a&gt;, then any assets should be compiled and cached during the &lt;a href="http://www.12factor.net/build-release-run"&gt;build stage&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;VII. &lt;a href="http://www.12factor.net/port-binding"&gt;Port binding&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Export services via port binding&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I don&amp;#8217;t think port binding applies to PHP applications—at least not in the way it&amp;#8217;s meant in twelve-factor. PHP relies on a web server and uses something like &lt;a href="http://www.fastcgi.com/"&gt;FastCGI&lt;/a&gt; or &lt;a href="http://php-fpm.org/"&gt;PHP-FPM&lt;/a&gt; to communicate with the web server. PHP 5.4 will have its own built-in web server, but this is intended for development use only. It&amp;#8217;s really the combination of PHP and its web server that will be bound to a port. This brings up challenges when it comes to dependency management, as the web server itself is now a dependency.&lt;/p&gt;
&lt;h3&gt;VIII. &lt;a href="http://www.12factor.net/concurrency"&gt;Concurrency&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Scale out via the process model&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&amp;#8217;m not sure how processes would become first-class citizens in a PHP web application. However, each individual request/response cycle is handled by its own process. In that regard, PHP already uses the process model.&lt;/p&gt;
&lt;h3&gt;IX. &lt;a href="http://www.12factor.net/disposability"&gt;Disposability&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Maximize robustness with fast startup and graceful shutdown&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;PHP processes are very disposable. Again, this is just part of how PHP works.&lt;/p&gt;
&lt;h3&gt;X. &lt;a href="http://www.12factor.net/dev-prod-parity"&gt;Dev/prod parity&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Keep development, staging, and production as similar as possible&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Nothing specific to PHP here. Although, it&amp;#8217;s not uncommon for PHP developers to use SQLite in development and MySQL or PostgreSQL in production. This is not recommended for a twelve-factor app—use the same software and versions of &lt;a href="http://www.12factor.net/backing-services"&gt;backing services&lt;/a&gt; in all environments.&lt;/p&gt;
&lt;h3&gt;XI. &lt;a href="http://www.12factor.net/logs"&gt;Logs&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Treat logs as event streams&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;There are tons of logging options in PHP. &lt;a href="http://framework.zend.com/manual/en/zend.log.writers.html#zend.log.writers.stream"&gt;&lt;code&gt;Zend_Log_Writer_Stream&lt;/code&gt;&lt;/a&gt; lets you send log data to a &lt;a href="http://www.php.net/stream"&gt;PHP stream&lt;/a&gt;. Alternatively, &lt;a href="http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/"&gt;StatsD and the PHP StatsD library&lt;/a&gt; look pretty good.&lt;/p&gt;
&lt;h3&gt;XII. &lt;a href="http://www.12factor.net/admin-processes"&gt;Admin processes&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Run admin/management tasks as one-off processes&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is easy enough in PHP. If you want an interactive shell with readline history, tab completion, and quick access to documentation then check out &lt;a href="http://www.phpsh.org/"&gt;phpsh&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/fm8vEY9cM0I" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/11/the-twelve-factor-app-applied-to-php/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/11/the-twelve-factor-app-applied-to-php/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/11/the-twelve-factor-app-applied-to-php/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[CouchApps at CouchConf NYC]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/JHzS5wj9y7E/" />
		<id>http://bradley-holt.com/?p=1413</id>
		<updated>2011-10-27T20:05:52Z</updated>
		<published>2011-10-27T20:05:52Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="CouchApp" /><category scheme="http://bradley-holt.com" term="Couchbase" /><category scheme="http://bradley-holt.com" term="CouchDB" /><category scheme="http://bradley-holt.com" term="HTML5" /><category scheme="http://bradley-holt.com" term="JavaScript" /><category scheme="http://bradley-holt.com" term="NoSQL" />		<summary type="html"><![CDATA[Here are the slides from Monday&#8217;s CouchConf NYC session on CouchApps with CouchDB, JavaScript and HTML5: CouchConf NYC CouchApps View more presentations from Bradley Holt]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/10/couchapps-at-couchconf-nyc/">&lt;p&gt;Here are the slides from Monday&amp;#8217;s CouchConf NYC session on CouchApps with CouchDB, JavaScript and HTML5:&lt;/p&gt;
&lt;div style="width:425px" id="__ss_9862348"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/bradley.holt/couchconf-nyc-couchapps-9862348" title="CouchConf NYC CouchApps" target="_blank"&gt;CouchConf NYC CouchApps&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9862348" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;
&lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/bradley.holt" target="_blank"&gt;Bradley Holt&lt;/a&gt; &lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/JHzS5wj9y7E" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/10/couchapps-at-couchconf-nyc/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/10/couchapps-at-couchconf-nyc/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/10/couchapps-at-couchconf-nyc/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[Domain-Driven Design at ZendCon 2011 UnCon]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/w3i2Xtd_Vqg/" />
		<id>http://bradley-holt.com/?p=1388</id>
		<updated>2011-10-19T00:15:04Z</updated>
		<published>2011-10-19T00:15:04Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="Domain-Driven Design" /><category scheme="http://bradley-holt.com" term="Software Design" /><category scheme="http://bradley-holt.com" term="ZendCon" /><category scheme="http://bradley-holt.com" term="ZendCon11" /><category scheme="http://bradley-holt.com" term="ZendUncon" /><category scheme="http://bradley-holt.com" term="ZendUncon11" />		<summary type="html"><![CDATA[Here are the slides from today’s ZendCon UnCon session on Domain-Driven Design: ZendCon 2011 UnCon Domain-Driven Design View more presentations from Bradley Holt If you were in this session, please give me feedback on Joind.in.]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/10/domain-driven-design-at-zendcon-2011-uncon/">&lt;p&gt;Here are the slides from today’s ZendCon UnCon session on Domain-Driven Design:&lt;/p&gt;
&lt;div style="width:425px" id="__ss_9759014"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/bradley.holt/zendcon-2011-uncon-domain-driven-design" title="ZendCon 2011 UnCon Domain-Driven Design" target="_blank"&gt;ZendCon 2011 UnCon Domain-Driven Design&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9759014" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;
&lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/bradley.holt" target="_blank"&gt;Bradley Holt&lt;/a&gt; &lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;If you were in this session, please &lt;a href="http://joind.in/talk/view/4003"&gt;give me feedback on Joind.in&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/w3i2Xtd_Vqg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/10/domain-driven-design-at-zendcon-2011-uncon/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/10/domain-driven-design-at-zendcon-2011-uncon/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/10/domain-driven-design-at-zendcon-2011-uncon/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[Learning CouchDB at ZendCon 2011]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/LsMBFP4zEyg/" />
		<id>http://bradley-holt.com/?p=1378</id>
		<updated>2011-10-18T00:37:55Z</updated>
		<published>2011-10-17T20:10:03Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="Couchbase" /><category scheme="http://bradley-holt.com" term="CouchDB" /><category scheme="http://bradley-holt.com" term="NoSQL" /><category scheme="http://bradley-holt.com" term="ZendCon" /><category scheme="http://bradley-holt.com" term="ZendCon11" />		<summary type="html"><![CDATA[Here are the slides from today’s ZendCon tutorial on Learning CouchDB: ZendCon 2011 Learning CouchDB View more presentations from Bradley Holt You can instead download the PDF version, if you&#8217;d prefer. If you were in this session, please give me feedback on Joind.in.]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/10/learning-couchdb-at-zendcon-2011/">&lt;p&gt;Here are the slides from today’s ZendCon tutorial on Learning CouchDB:&lt;/p&gt;
&lt;div style="width:425px" id="__ss_9726170"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/bradley.holt/zendcon-2011-learning-couchdb" title="ZendCon 2011 Learning CouchDB" target="_blank"&gt;ZendCon 2011 Learning CouchDB&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9726170" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;
&lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/bradley.holt" target="_blank"&gt;Bradley Holt&lt;/a&gt; &lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;You can instead &lt;a href="http://bradley-holt.com/wp-content/uploads/2011/10/zendcon-2011-learning-couchdb.pdf"&gt;download the PDF version&lt;/a&gt;, if you&amp;#8217;d prefer.&lt;/p&gt;
&lt;p&gt;If you were in this session, please &lt;a href="http://joind.in/talk/view/3763"&gt;give me feedback on Joind.in&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/LsMBFP4zEyg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/10/learning-couchdb-at-zendcon-2011/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/10/learning-couchdb-at-zendcon-2011/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/10/learning-couchdb-at-zendcon-2011/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[Burlington Telecom Advisory Committee]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/guK8lYMp-fg/" />
		<id>http://bradley-holt.com/?p=1370</id>
		<updated>2011-10-05T20:17:22Z</updated>
		<published>2011-10-05T20:17:22Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="Broadband" /><category scheme="http://bradley-holt.com" term="BTAC" /><category scheme="http://bradley-holt.com" term="BTV" /><category scheme="http://bradley-holt.com" term="BTVCC" /><category scheme="http://bradley-holt.com" term="Burlington Telecom" /><category scheme="http://bradley-holt.com" term="Municipal Broadband" /><category scheme="http://bradley-holt.com" term="Open Networks" />		<summary type="html"><![CDATA[This past Monday evening I was Appointed by the City Council of the City of Burlington, Vermont to the Telecommunications Advisory Committee. In this volunteer position, my role is to advise the City Council on matters related to Burlington Telecom, a municipally owned telecommunications services provider. I have many of my own opinions about Burlington [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/10/burlington-telecom-advisory-committee/">&lt;p&gt;This past Monday evening I was Appointed by the City Council of the &lt;a href="http://www.ci.burlington.vt.us/"&gt;City of Burlington, Vermont&lt;/a&gt; to the &lt;a href="http://www.btacvt.com/"&gt;Telecommunications Advisory Committee&lt;/a&gt;. In this volunteer position, my role is to advise the City Council on matters related to &lt;a href="http://www.burlingtontelecom.net/"&gt;Burlington Telecom&lt;/a&gt;, a municipally owned telecommunications services provider.&lt;/p&gt;
&lt;p&gt;I have many of my own opinions about Burlington Telecom, its role in our community, and its future. As a member of this committee, I&amp;#8217;m more interested in bringing the opinions of others forward. If you&amp;#8217;re part of the Burlington community, please share with me your thoughts about Burlington Telecom. What do you want out of Burlington Telecom? What attributes of Burlington Telecom are important to you? &lt;a href="http://goo.gl/mod/3Qmt"&gt;Please share these thoughts publicly on Google Moderator&lt;/a&gt;. I&amp;#8217;ve shared a few of my own thoughts to get things started.&lt;/p&gt;
&lt;p&gt;As I mentioned, I have my own opinions about Burlington Telecom. To understand further where I&amp;#8217;m coming from, I&amp;#8217;ve included here a truncated version of the letter I sent applying to be on the committee.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Dear City Councilors:&lt;/p&gt;
&lt;p&gt;Enclosed for your consideration is my application to join the Burlington Telecom Advisory Committee. I was one of the first beta customers when Burlington Telecom launched. I am now both a residential and a business customer. I was enthusiastic about the vision for Burlington Telecom from the moment I first heard about it. As someone who spends a good portion of his personal and professional life online, I understood immediately the cultural and economic benefits that an advanced fiber optic network could bring to our city.&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;p&gt;Burlington Telecom is the 21st century equivalent of rural electrification, at a local scale. Like electricity in the 1930s, private companies are unwilling to invest in a telecommunications infrastructure that will spur economic growth in less populated areas. Companies like Verizon have gone so far as to divest their networks in non-metropolitan areas so that they don’t need to build-out modern broadband infrastructure in these places.&lt;/p&gt;
&lt;p&gt;The Burlington Electric Department proudly states, “public power since 1905.” The City of Burlington created the Burlington Electric Department a full 30 years before the forming of the Rural Electrification Administration at the federal level. The City of Burlington seemed to have similar foresight when they created Burlington Telecom. Perhaps Burlington Telecom is an idea that is ahead of its time. Maybe we should wait several decades for a national initiative on telecommunications infrastructure. Alternatively, we can be proud of what has been done with Burlington Telecom. There are serious challenges to maintaining Burlington Telecom as a public resource, but these are challenges worth addressing.&lt;/p&gt;
&lt;p&gt;Like the Burlington Electric Department, I believe that the people of Burlington can again be proud of Burlington Telecom. During Tropical Storm Irene, my house lost power for only 30 minutes. This was a point of civic pride for me and provided an exemplar of how our public utilities can be operated. Burlington taxpayers have regularly voted to fund Burlington Electric Department initiatives around green energy, energy efficiency, and general infrastructure improvement. If people can be proud of things as intrinsically boring as utilities and electricity, then we can be proud of a state-of-the-art fiber optic network that provides high-speed Internet, television, and telephone services.&lt;/p&gt;
&lt;p&gt;As a member of the Burlington Telecom Advisory Committee, I hope to understand more fully the challenges facing Burlington Telecom and advise the City Council on addressing these challenges while maintaining Burlington Telecom as the vital public resource that it is. I am an advocate for a vision of Burlington Telecom not as a burden, but as a source of great opportunity for our city.&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/guK8lYMp-fg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/10/burlington-telecom-advisory-committee/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/10/burlington-telecom-advisory-committee/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/10/burlington-telecom-advisory-committee/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[CouchApps at jQuery Conference Boston 2011]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/2JH00i5vWKo/" />
		<id>http://bradley-holt.com/?p=1359</id>
		<updated>2011-10-02T15:15:34Z</updated>
		<published>2011-10-02T17:15:51Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="CouchApp" /><category scheme="http://bradley-holt.com" term="Couchbase" /><category scheme="http://bradley-holt.com" term="CouchDB" /><category scheme="http://bradley-holt.com" term="HTML5" /><category scheme="http://bradley-holt.com" term="JavaScript" /><category scheme="http://bradley-holt.com" term="jQCon" /><category scheme="http://bradley-holt.com" term="jQuery" /><category scheme="http://bradley-holt.com" term="NoSQL" />		<summary type="html"><![CDATA[Here are the slides from today’s jQuery Conference presentation on CouchApps with CouchDB &#38; jQuery: jQuery Conference Boston 2011 CouchApps View more presentations from Bradley Holt If you were in this talk, please give me feedback on SpeakerRate. Related links: Offline Apps HTML5 Web Storage Local Storage &#8220;Native&#8221; Mobile Web Apps jQuery Mobile PhoneGap Building [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/10/couchapps-at-jquery-conference-boston-2011/">&lt;p&gt;Here are the slides from today’s jQuery Conference presentation on CouchApps with CouchDB &amp;amp; jQuery:&lt;/p&gt;
&lt;div style="width:425px" id="__ss_9504563"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/bradley.holt/jquery-conference-boston-2011-couchapps" title="jQuery Conference Boston 2011 CouchApps" target="_blank"&gt;jQuery Conference Boston 2011 CouchApps&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9504563" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;
&lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/bradley.holt" target="_blank"&gt;Bradley Holt&lt;/a&gt; &lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;If you were in this talk, please give me &lt;a href="http://speakerrate.com/talks/8512-couchapps-with-couchdb-jquery"&gt;feedback on SpeakerRate&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Related links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Offline Apps
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://diveintohtml5.org/offline.html"&gt;HTML5 Web Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://diveintohtml5.org/storage.html"&gt;Local Storage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &amp;#8220;Native&amp;#8221; Mobile Web Apps
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://jquerymobile.com/"&gt;jQuery Mobile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.phonegap.com/"&gt;PhoneGap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://shop.oreilly.com/product/9780596805791.do"&gt;Building iPhone Apps with HTML, CSS, and JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://shop.oreilly.com/product/0636920010067.do"&gt;Building Android Apps with HTML, CSS, and JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; CouchDB and Couchbase
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://couchdb.apache.org/"&gt;CouchDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.couchbase.com/products-and-services/overview"&gt;Couchbase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://googlecode.blogspot.com/2009/09/chris-anderson-couchdb-relaxing-offline.html"&gt;&amp;#8220;Ground Computing&amp;#8221;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; CouchApp Examples
&lt;ul&gt;
&lt;li&gt; Grocery Sync
&lt;ul&gt;
&lt;li&gt; &lt;a href="https://github.com/couchbaselabs/GrocerySync-CouchApp"&gt;Couchapp code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/couchbaselabs/iOS-Couchbase-Demo"&gt;iOS code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/couchbaselabs/AndroidGrocerySync"&gt;Android code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://blog.couchbase.com/couchbase-mobile-see-the-video"&gt;Presentation about Couchbase Mobile&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Monocles
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://monocl.es/"&gt;Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/maxogden/monocles"&gt;Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; ReadWriteHack Interview with Max Ogden: &lt;a href="http://www.readwriteweb.com/hack/2011/02/hacker-chat-max-ogden.php"&gt;Part 1&lt;/a&gt;, &lt;a href="http://www.readwriteweb.com/hack/2011/02/max-pt-2.php"&gt;Part 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; CatMapper
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://catmapper.com/"&gt;Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/maxogden/catmapper"&gt;Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; CouchDB jQuery Plugin
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.w3.org/Security/wiki/Same_Origin_Policy"&gt;Same-Origin Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://bradley-holt.com/2011/07/couchdb-jquery-plugin-reference/"&gt;CouchDB jQuery Plugin Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://daleharvey.github.com/jquery.couch.js-docs/symbols/index.html"&gt;jQuery CouchDB jsDoc Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://couchapp.org/page/couchapp-python"&gt;couchapp command line tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; CouchApp Building Blocks
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://couchapp.org/page/evently"&gt;Evently&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://mustache.github.com/"&gt;Mustache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://couchapp.couchone.com/docs/_design/docs/index.html#/topic/pathbinder"&gt;Pathbinder&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Alternative CouchApp Tools
&lt;ul&gt;
&lt;li&gt; &lt;a href="https://github.com/mikeal/node.couchapp.js"&gt;node.couchapp.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://kansojs.org/"&gt;Kanso Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/quirkey/soca"&gt;soca&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://reupholster.iriscouch.com/reupholster/_design/app/index.html"&gt;Reupholster&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Hosting
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.iriscouch.com/"&gt;Iris Couch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://cloudant.com/"&gt;Cloudant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; CouchDB &amp;amp; CouchApp Resources
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://couchapp.org/"&gt;CouchApp Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://wiki.apache.org/couchdb/"&gt;CouchDB Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://oreilly.com/catalog/9780596155896/"&gt;CouchDB: The Definitive Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://oreilly.com/catalog/9781449303129/"&gt;Writing and Querying MapReduce Views in CouchDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://oreilly.com/catalog/9781449303433/"&gt;Scaling CouchDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.apress.com/9781430272373"&gt;Beginning CouchDB&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/2JH00i5vWKo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/10/couchapps-at-jquery-conference-boston-2011/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/10/couchapps-at-jquery-conference-boston-2011/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/10/couchapps-at-jquery-conference-boston-2011/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Bradley Holt</name>
						<uri>http://bradley-holt.com/</uri>
					</author>
		<title type="html"><![CDATA[Speaking at CouchConf NYC]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/bradley-holt/~3/4NtnEs1zc1A/" />
		<id>http://bradley-holt.com/?p=1352</id>
		<updated>2011-09-29T16:33:58Z</updated>
		<published>2011-09-29T16:33:58Z</published>
		<category scheme="http://bradley-holt.com" term="Uncategorized" /><category scheme="http://bradley-holt.com" term="CouchApp" /><category scheme="http://bradley-holt.com" term="Couchbase" /><category scheme="http://bradley-holt.com" term="CouchConf" /><category scheme="http://bradley-holt.com" term="CouchDB" /><category scheme="http://bradley-holt.com" term="HTML5" /><category scheme="http://bradley-holt.com" term="JavaScript" /><category scheme="http://bradley-holt.com" term="NYC" />		<summary type="html"><![CDATA[I&#8217;m pleased to announce that I&#8217;ll be speaking at CouchConf New York City on October 24, 2011. This event is part of the CouchConf World Tour presented by Couchbase. My talk will be on CouchApps with CouchDB, JavaScript and HTML5. From the talk description: In this talk we&#8217;ll see how to build CouchApps using CouchDB, [...]]]></summary>
		<content type="html" xml:base="http://bradley-holt.com/2011/09/speaking-at-couchconf-nyc/">&lt;p&gt;I&amp;#8217;m pleased to announce that I&amp;#8217;ll be speaking at &lt;a href="http://www.couchbase.com/couchconf-nyc"&gt;CouchConf New York City&lt;/a&gt; on October 24, 2011. This event is part of the &lt;a href="http://www.couchbase.com/couchconf-world-tour"&gt;CouchConf World Tour&lt;/a&gt; presented by Couchbase. My talk will be on CouchApps with CouchDB, JavaScript and HTML5. From the talk description:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;In this talk we&amp;#8217;ll see how to build CouchApps using CouchDB, Javascript, and HTML5. We&amp;#8217;ll look at related tools such as the couchapp command ine tool, the Evently jQuery plugin, the CouchDB API jQuery plugin, the CouchApp Loader, Pathbinder, and the Mustache templating framework.&lt;/p&gt;&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/bradley-holt/~4/4NtnEs1zc1A" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://bradley-holt.com/2011/09/speaking-at-couchconf-nyc/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://bradley-holt.com/2011/09/speaking-at-couchconf-nyc/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://bradley-holt.com/2011/09/speaking-at-couchconf-nyc/</feedburner:origLink></entry>
	</feed>

