<?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://benramsey.com/wp-atom.php">
	<title type="text">Ben Ramsey</title>
	<subtitle type="text">PHP and Other Techno-babble</subtitle>

	<updated>2010-01-26T01:41:58Z</updated>
	<generator uri="http://wordpress.org/" version="2.9.1">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://benramsey.com" />
	<id>http://benramsey.com/feed/atom/</id>
	

			<feedburner:info uri="ramsey" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nd/2.0/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://benramsey.com/feed/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fbenramsey.com%2Ffeed%2F" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fbenramsey.com%2Ffeed%2F" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fbenramsey.com%2Ffeed%2F" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://benramsey.com/feed/" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fbenramsey.com%2Ffeed%2F" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fbenramsey.com%2Ffeed%2F" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fbenramsey.com%2Ffeed%2F" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[PHP Advent 2009]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/php-advent-2009/" />
		<id>http://benramsey.com/?p=476</id>
		<updated>2009-12-18T05:35:54Z</updated>
		<published>2009-12-18T05:34:39Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="advent" /><category scheme="http://benramsey.com" term="php" /><category scheme="http://benramsey.com" term="phpadvent" /><category scheme="http://benramsey.com" term="phpc" /><category scheme="http://benramsey.com" term="phpcommunity" />		<summary type="html"><![CDATA[	Six years ago, I became aware of the PHP community. I joined it three years prior to that.

	I&#8217;m privileged to be a part of the 2009 edition of PHP Advent. This year, my post is about the PHP community. If you have any comments, feel free to leave them here.


 ]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/php-advent-2009/">	&lt;p&gt;&lt;em&gt;Six years ago, I became aware of the PHP community. I joined it three years prior to that.&lt;/em&gt;&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;m privileged to be a part of the 2009 edition of &lt;a href="http://phpadvent.org/2009"&gt;PHP Advent&lt;/a&gt;. This year, &lt;a href="http://phpadvent.org/2009/phps-not-just-a-language-by-ben-ramsey"&gt;my post is about the PHP community&lt;/a&gt;. If you have any comments, feel free to leave them here.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3O72O1xcQCs:B46gwvkLmP0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3O72O1xcQCs:B46gwvkLmP0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=3O72O1xcQCs:B46gwvkLmP0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3O72O1xcQCs:B46gwvkLmP0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3O72O1xcQCs:B46gwvkLmP0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/3O72O1xcQCs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/php-advent-2009/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/php-advent-2009/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[Microsoft Web Dev Summit 2009]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/microsoft-web-dev-summit-2009/" />
		<id>http://benramsey.com/?p=460</id>
		<updated>2009-12-01T01:00:29Z</updated>
		<published>2009-12-01T06:30:23Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="microsoft" /><category scheme="http://benramsey.com" term="mswds" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	For the past three years, Microsoft has hosted the Microsoft Web Development Technology Summit, inviting a small group of community leaders, project developers, and prominent members of the PHP community, primarily for the purpose of eliciting feedback on how to better support PHP on Windows. I&#8217;m privileged and honored to be invited back for a [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/microsoft-web-dev-summit-2009/">	&lt;p&gt;For the past three years, Microsoft has hosted the Microsoft Web Development Technology Summit, inviting a small group of community leaders, project developers, and prominent members of the PHP community, primarily for the purpose of eliciting feedback on how to better support PHP on Windows. I&amp;#8217;m privileged and honored to be invited back for a third year to the fourth annual edition of this summit.&lt;/p&gt;

	&lt;p&gt;This is the first time I&amp;#8217;ve ever blogged about the event, though I&amp;#8217;ve taken &amp;#8220;live&amp;#8221; notes during the &lt;a href="http://tools.benramsey.com/dokuwiki/conferences:mswd07"&gt;2007&lt;/a&gt; and &lt;a href="http://tools.benramsey.com/dokuwiki/conferences:mswd08"&gt;2008&lt;/a&gt; summits. &lt;a href="http://tools.benramsey.com/dokuwiki/conferences:mswd09"&gt;I&amp;#8217;ll be taking notes again this year&lt;/a&gt;, if you&amp;#8217;d like to follow along, but I&amp;#8217;ll also be devoting several blog posts this week to the event because I think it&amp;#8217;s important.&lt;/p&gt;

	&lt;p&gt;As I said, this is the Microsoft Web Development Technology Summit, but perhaps it&amp;#8217;s not very aptly named, since it could best be termed as the Microsoft PHP Summit. Then again, one could argue that PHP really is the server-side technology of the Web, so calling this a web development summit is appropriate, and I think Microsoft understands that. This is the first reason I think this summit is important: Microsoft recognizes the importance of PHP to web development.&lt;/p&gt;

	&lt;p&gt;The second reason it&amp;#8217;s important follows closely on the heels of the first. Because PHP is important, Microsoft wants PHP to work as best as it possibly can in a Windows Server environment, eliminating all performance arguments in comparisons between Windows/IIS and Linux/Apache. This reduces the platform choice argument to one of subjective preference with no basis in objective analysis. This is good for Microsoft because many PHP developers continue to use Windows as their local development platform, while deploying to *NIX systems. All performance arguments out of the way, if developers can deploy to the same platform they use for development, would they?&lt;/p&gt;

	&lt;p&gt;Other barriers for developers include cost and even open source philosophy (but mostly cost). Microsoft is eliminating this obstacle with their &lt;a href="http://www.microsoft.com/web/websitespark/"&gt;WebSite Spark&lt;/a&gt; and &lt;a href="http://www.bizspark.com/"&gt;BizSpark&lt;/a&gt; programs. The philosophy argument is addressed by licensing some Microsoft tools and libraries under Microsoft open source licenses (which include &lt;a href="http://opensource.org/licenses/ms-pl.html"&gt;BSD-like&lt;/a&gt; and &lt;a href="http://opensource.org/licenses/ms-rl.html"&gt;GPL-like&lt;/a&gt; licenses).&lt;/p&gt;

	&lt;p&gt;There are many other reasons why this summit is good for Microsoft, but I&amp;#8217;ll end with a third one for this post. In the spirit of openness and transparency, open source communities tend to be very vocal and honest, often brutally honest. So, why would Microsoft invite a room full of PHP developers, where the common laptop present will be running Mac OS X, with a few Linux laptops sprinkled in the room, and even fewer Windows laptops? Our community doesn&amp;#8217;t hold back with our opinions. That&amp;#8217;s why. Each person in the room has ideas of how Microsoft can be better community citizens, provide better and easier to use products for developers, and improve support for PHP on Windows. We may not use that platform, but we all have ideas for how it can be better. I don&amp;#8217;t think Microsoft is kidding itself that it will convert us to its platform, but I do think they value our opinions and presence because our feedback will make their products better and we&amp;#8217;ll communicate the experience back to the greater PHP community (i.e. through blog posts such as this), improving their image.&lt;/p&gt;

	&lt;p&gt;Do I think Microsoft has done anything positive with our feedback? You bet. In the years since the Web Dev Summit was first held in 2006, we&amp;#8217;ve seen improvements to &lt;a href="http://php.iis.net/"&gt;FastCGI in IIS&lt;/a&gt; and the introduction of the &lt;a href="http://www.codeplex.com/SQLSRVPHP"&gt;open source SQL Server native driver for PHP&lt;/a&gt;. I believe these improvements are direct results of the Web Dev Summit. And there are others. This year, the focus appears to be on developer tools, so we&amp;#8217;ll be having in-depth discussions on typical workflow and processes for developing a PHP project from start to finish. If you have suggestions for how Microsoft can improve their tools for PHP developers, let me know, and I&amp;#8217;ll pass them along.&lt;/p&gt;

	&lt;p&gt;Finally, I&amp;#8217;ll leave you with this thought. Microsoft has seen many changes over the years. They are a behemoth of a company, and my perspective now is that there are two types of people in the company: the big company corporate types who are still convinced that closed and proprietary is the way to protect their products, brand, and customers and, on the other hand, the newer generation of product managers and developer evangelists who are making genuine attempts to be more open and transparent and finding ways to interact with the open source community to promote Microsoft as a good community citizen. Both are real faces of Microsoft. Don&amp;#8217;t discount one for the other.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oylNq1UM4eI:JsFs9ODZPqA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oylNq1UM4eI:JsFs9ODZPqA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=oylNq1UM4eI:JsFs9ODZPqA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oylNq1UM4eI:JsFs9ODZPqA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oylNq1UM4eI:JsFs9ODZPqA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/oylNq1UM4eI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/microsoft-web-dev-summit-2009/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/microsoft-web-dev-summit-2009/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Wrap-up]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-wrap-up/" />
		<id>http://benramsey.com/?p=453</id>
		<updated>2009-12-01T00:36:42Z</updated>
		<published>2009-12-01T00:36:42Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	I never wrote about days 13 &#38; 14 of CodeWorks, nor did I post the slides on October 7, like I promised to attendees of my talks. After CodeWorks, my website underwent weird spikes in traffic, causing it to be extremely slow. I thought the problem was DreamHost, so I moved everything to a slice [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-wrap-up/">	&lt;p&gt;I never wrote about days 13 &amp;#38; 14 of &lt;a href="http://cw.mtacon.com/"&gt;CodeWorks&lt;/a&gt;, nor did I post the slides on October 7, like I promised to attendees of my talks. After CodeWorks, my website underwent weird spikes in traffic, causing it to be extremely slow. I thought the problem was &lt;a href="http://www.dreamhost.com/"&gt;DreamHost&lt;/a&gt;, so I moved everything to a slice at &lt;a href="http://www.slicehost.com/"&gt;Slicehost&lt;/a&gt;. Long story short, my slice kept crashing, so I moved everything back to DreamHost after several weeks of intermittent uptime to let them deal with the problems. That&amp;#8217;s what delayed my posting, and I apologize to those who have been looking for the slides.&lt;/p&gt;

	&lt;p&gt;To sum up &lt;a href="http://cw.mtacon.com/schedule/city/new-york"&gt;CodeWorks New York&lt;/a&gt;, I would have to say that the energy and enthusiasm at the New York conference was, by far, the best of all seven cities. The turn out was great, and the hallway track was the best yet, with myriad discussions extending from the talks. I&amp;#8217;m not sure what made the difference, but it was definitely the best stop.&lt;/p&gt;

	&lt;p&gt;Seven cities in fourteen days. CodeWorks was a whirlwind tour, and I was privileged to be a part of it. It was a pleasure to meet PHP developers in each city and to talk with those who lead user groups, are starting a group, or are thinking of starting one. And the talks were excellent, presented by some of the best and brightest in the PHP community. It was an awesome experience, and I&amp;#8217;m glad we were able to take the conference to developers rather than expecting the developers to come to the conference. Though some cities had low attendance, the quality of each event was never lessened. If the conference continues next year, I think we&amp;#8217;ll see more attendees in each city.&lt;/p&gt;

	&lt;p&gt;Yes, I would do it all again. So, I hope &lt;a href="http://blog.tabini.ca/"&gt;Marco&lt;/a&gt; sees fit to organize it next year, or at least, every other year.&lt;/p&gt;

	&lt;p&gt;I blogged every city we visited. If you&amp;#8217;re interested, here are those posts:&lt;/p&gt;

	&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://benramsey.com/archives/codeworks-days-1-2/"&gt;Days 1 &amp;#38; 2: San Francisco&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://benramsey.com/archives/codeworks-days-3-4/"&gt;Days 3 &amp;#38; 4: Los Angeles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://benramsey.com/archives/codeworks-days-5-6/"&gt;Days 5 &amp;#38; 6: Dallas/Ft. Worth&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://benramsey.com/archives/codeworks-days-7-8/"&gt;Days 7 &amp;#38; 8: Atlanta&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://benramsey.com/archives/codeworks-days-9-10/"&gt;Days 9 &amp;#38; 10: Miami&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://benramsey.com/archives/codeworks-days-11-12/"&gt;Days 11 &amp;#38; 12: Washington&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Days 13 &amp;#38; 14: New York (this post)&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;

	&lt;p&gt;As promised, here are the slides for my presentations (finally):&lt;/p&gt;

	&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.slideshare.net/benramsey/web-service-design-with-atompub"&gt;Web Service Design with AtomPub&lt;/a&gt; [&lt;a href="http://www.slideshare.net/benramsey/web-service-design-with-atompub/download"&gt;download pdf&lt;/a&gt;]&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.slideshare.net/benramsey/hidden-gems-in-http"&gt;Hidden Gems in HTTP&lt;/a&gt; [&lt;a href="http://www.slideshare.net/benramsey/hidden-gems-in-http/download"&gt;download pdf&lt;/a&gt;]&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.slideshare.net/benramsey/give-your-site-a-boost-with-memcache-2618582"&gt;Give Your Site a Boost with Memcached&lt;/a&gt; [&lt;a href="http://www.slideshare.net/benramsey/give-your-site-a-boost-with-memcache-2618582/download"&gt;download pdf&lt;/a&gt;]&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;

	&lt;p&gt;I hope to see you next year!&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=0ttisolZ9sA:znWvM75f2PU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=0ttisolZ9sA:znWvM75f2PU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=0ttisolZ9sA:znWvM75f2PU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=0ttisolZ9sA:znWvM75f2PU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=0ttisolZ9sA:znWvM75f2PU:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/0ttisolZ9sA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-wrap-up/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-wrap-up/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[POST vs. PUT]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/post-vs-put/" />
		<id>http://benramsey.com/?p=446</id>
		<updated>2009-11-09T19:02:11Z</updated>
		<published>2009-11-09T16:07:24Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="http" /><category scheme="http://benramsey.com" term="php" /><category scheme="http://benramsey.com" term="rest" /><category scheme="http://benramsey.com" term="zend-framework" />		<summary type="html"><![CDATA[	This morning, Matthew writes about building RESTful services with the Zend Framework. I have a lot of thoughts on his post, and I might blog more about it later, but right now, I want to focus on David&#8217;s comment:

	
		I think the next thing you should cover is how to retrieve put parameters and maybe even [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/post-vs-put/">	&lt;p&gt;This morning, &lt;a href="http://weierophinney.net/matthew/archives/228-Building-RESTful-Services-with-Zend-Framework.html"&gt;Matthew&lt;/a&gt; writes about building &lt;a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm"&gt;RESTful&lt;/a&gt; services with the Zend Framework. I have a lot of thoughts on his post, and I might blog more about it later, but right now, I want to focus on &lt;a href="http://weierophinney.net/matthew/archives/228-Building-RESTful-Services-with-Zend-Framework.html#c24586"&gt;David&amp;#8217;s comment&lt;/a&gt;:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;I think the next thing you should cover is how to retrieve put parameters and maybe even attempt to start a discussion on the different school of thoughts about POST vs PUT (Especially in the PHP world).&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;I know I&amp;#8217;m even guilty of mentioning different schools of thought on POST vs. PUT in my talks, but the truth is that REST doesn&amp;#8217;t specify what to use for what actions. These are defined by HTTP and not by REST.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post"&gt;Roy Fielding&lt;/a&gt; has this to say about the use of HTTP verbs in RESTful applications:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;Some people think that REST suggests not to use POST for updates. Search my dissertation and you won’t find any mention of CRUD or POST. The only mention of PUT is in regard to HTTP’s lack of write-back caching. The main reason for my lack of specificity is because the methods defined by HTTP are part of the Web’s architecture definition, not the REST architectural style. Specific method definitions (aside from the retrieval:resource duality of GET) simply don’t matter to the REST architectural style, so it is difficult to have a style discussion about them. The only thing REST requires of methods is that they be uniformly defined for all resources (i.e., so that intermediaries don’t have to know the resource type in order to understand the meaning of the request). As long as the method is being used according to its own definition, REST doesn’t have much to say about it.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;The POST vs. PUT debate, however, does rage on in different communities, and some protocols have defined their usage. For example, the Atom Publishing Protocol (&lt;a href="http://tools.ietf.org/html/rfc5023"&gt;RFC 5023&lt;/a&gt;) explicitly states in section 4.3 that &amp;#8220;POST is used to create&amp;#8221; and &amp;#8220;PUT is used to edit.&amp;#8221;&lt;/p&gt;

	&lt;p&gt;The important thing to note is that REST doesn&amp;#8217;t care how the HTTP verbs are used, as long as they are used properly according to how they are defined in the protocol you are using.&lt;/p&gt;

	&lt;p&gt;For those interested, HTTP (&lt;a href="http://tools.ietf.org/html/rfc2616"&gt;RFC 2616&lt;/a&gt;) defines POST by saying:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. […] The actual function performed by the POST method is determined by the server and is usually dependent on the Request-URI. The posted entity is subordinate to that URI in the same way that a file is subordinate to a directory containing it, a news article is subordinate to a newsgroup to which it is posted, or a record is subordinate to a database.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;PUT is defined as:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;The PUT method requests that the enclosed entity be stored under the supplied Request-URI. If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server. If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new resource by the requesting user agent, the origin server can create the resource with that URI.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;With this line of thinking, you might come to the conclusion that POST is used for creation of a subordinate resource, while PUT could be used for both creation or modification of a resource. The important distinction is that POST identifies the resource for which the entity should be considered a subordinate; PUT does not.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ISVmsCejV8s:jRe2zK77SdU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ISVmsCejV8s:jRe2zK77SdU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=ISVmsCejV8s:jRe2zK77SdU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ISVmsCejV8s:jRe2zK77SdU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ISVmsCejV8s:jRe2zK77SdU:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/ISVmsCejV8s" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/post-vs-put/#comments" thr:count="10" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/post-vs-put/feed/atom/" thr:count="10" />
		<thr:total>10</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[Building Titanium with PHP]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/building-titanium-with-php/" />
		<id>http://benramsey.com/?p=438</id>
		<updated>2009-10-05T19:48:41Z</updated>
		<published>2009-10-05T19:48:41Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="appcelerator" /><category scheme="http://benramsey.com" term="php" /><category scheme="http://benramsey.com" term="ria" /><category scheme="http://benramsey.com" term="titanium" />		<summary type="html"><![CDATA[	Several months ago, I started the process of embedding PHP into the Titanium platform. After several sprints of work, the Appcelerator team was finally ready to merge my work into their master branch, and Martin Robinson worked to bring the implementation to maturity. The current release of Titanium Developer does not yet have the PHP [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/building-titanium-with-php/">	&lt;p&gt;Several months ago, I started the process of embedding PHP into the &lt;a href="http://www.appcelerator.com/products/titanium-desktop/"&gt;Titanium platform&lt;/a&gt;. After several sprints of work, the Appcelerator team was finally ready to merge my work into their &lt;a href="http://github.com/appcelerator/titanium_desktop"&gt;master branch&lt;/a&gt;, and Martin Robinson worked to bring the implementation to maturity. The current release of Titanium Developer does not yet have the PHP support built in to the bundled SDK, and I&amp;#8217;m not sure when it will be released, so I thought I&amp;#8217;d share how to get a development version built with PHP support so you can start playing with it and even help the Appcelerator team by catching bugs in the implementation.&lt;/p&gt;

	&lt;p&gt;If you&amp;#8217;re not familiar with Titanium, it&amp;#8217;s a development platform that allows you to build native desktop applications for Windows, Mac OS X, and Linux using the Web technologies we use on a daily basis: HTML, JavaScript, CSS, Python, Ruby, and now PHP. Titanium is built on top of &lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt;, and it includes a micro-kernel called Kroll that does all of the pre-processing and runtime processing of the code. Languages are modules in Kroll and are first-class citizens in the runtime environment. So, when using the runtime, you can pass objects back and forth between JavaScript, PHP, Python, and Ruby. This, however, can&amp;#8217;t be done when using pre-processing mode, but in that case, your PHP scripts will work just like you&amp;#8217;re used to them working on a web server.&lt;/p&gt;

	&lt;p&gt;Since it may still be a while before the next release of Titanium that includes PHP, I&amp;#8217;ve decided to provide instructions here on how to build the SDK from the master branch and connect it to the Titanium Developer application. Sorry, but I don&amp;#8217;t have instructions for Windows; these work on Mac or Linux.&lt;/p&gt;

	&lt;p&gt;&lt;ol&gt;&lt;li&gt;Download (and install) Titanium Developer from &lt;a href="http://www.appcelerator.com/products/download/"&gt;http://www.appcelerator.com/products/download/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Launch Titanium Developer and let it do its thing (you&amp;#8217;ll have to create an acct)&lt;/li&gt;&lt;li&gt;Now you may close it&lt;/li&gt;&lt;li&gt;You should now have a Titanium directory with the SDK in it at either:&lt;ul&gt;&lt;li&gt;&lt;code&gt;/Library/Application\ Support/Titanium/&lt;/code&gt; (Mac)&lt;/li&gt;&lt;li&gt;&lt;code&gt;~/.titanium/&lt;/code&gt; or &lt;code&gt;/opt/titanium/&lt;/code&gt; (Linux)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Now, build the development SDK to use with Titanium Developer. You&amp;#8217;ll need &lt;a href="http://python.org/"&gt;Python&lt;/a&gt;, &lt;a href="http://www.scons.org/"&gt;scons&lt;/a&gt;, a compiler, and possibly &lt;a href="http://github.com/appcelerator/titanium_desktop/blob/master/README"&gt;other prerequisites&lt;/a&gt;.&lt;pre&gt;
$&amp;gt; git clone git://github.com/appcelerator/titanium_desktop.git
$&amp;gt; cd titanium_desktop/
$&amp;gt; git submodule update --init
$&amp;gt; scons dist
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Unzip the built SDK to some location. I like to use &lt;code&gt;~/.titanium-dev/&lt;/code&gt;&lt;pre&gt;
$&amp;gt; unzip build/osx/dist/sdk-0.7.0.zip -d ~/.titanium-dev/
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Move Titanium Developer SDK out of the way and point to your build SDK&lt;pre&gt;
$&amp;gt; cd /Library/Application\ Support/Titanium/
$&amp;gt; mv modules/ modules-old/
$&amp;gt; mv runtime/ runtime-old/
$&amp;gt; mv sdk/ sdk-old/
$&amp;gt; ln -s ~/.titanium-dev/modules modules
$&amp;gt; ln -s ~/.titanium-dev/runtime runtime
$&amp;gt; ln -s ~/.titanium-dev/sdk sdk
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Now relaunch Titanium Developer.&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;

	&lt;p&gt;You&amp;#8217;re now ready to build a project with PHP!&lt;/p&gt;

	&lt;p&gt;Click Create to generate a stub project. I&amp;#8217;ll cover more about development with PHP in Titanium in the future, but let&amp;#8217;s get started by showing a &lt;a href="http://php.net/phpinfo"&gt;phpinfo()&lt;/a&gt; page.&lt;/p&gt;

	&lt;p&gt;Open the &lt;code&gt;index.html&lt;/code&gt; file in the Resources directory of your project and add the following anywhere in the page:&lt;/p&gt;

	&lt;p&gt;&lt;div class="hl-surround" style="height:28px;"&gt;&lt;div class="hl-main"&gt;&lt;pre&gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;phpinfo.php&amp;quot; style=&amp;quot;color:gray;&amp;quot;&amp;gt;See the phpinfo()&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

	&lt;p&gt;In the Resources folder, create the &lt;code&gt;phpinfo.php&lt;/code&gt; script and add the following to that script:&lt;/p&gt;

	&lt;p&gt;&lt;div class="hl-surround" style="height:28px;"&gt;&lt;div class="hl-main"&gt;&lt;pre&gt;&lt;span class="hl-inlinetags"&gt;&amp;lt;?php&lt;/span&gt;&lt;span class="hl-code"&gt; &lt;/span&gt;&lt;span class="hl-identifier"&gt;phpinfo&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-brackets"&gt;)&lt;/span&gt;&lt;span class="hl-code"&gt;; &lt;/span&gt;&lt;span class="hl-inlinetags"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

	&lt;p&gt;Now, go back to Titanium Developer, click the Test &amp;#038; Package tab for your project, then click the Launch tab. To build and run your application for testing, click the Launch App button.&lt;/p&gt;

	&lt;p&gt;You should now see a dark gray test page with the &amp;#8220;See the phpinfo()&amp;#8221; link you created. Click that link, and it should take you to the &lt;code&gt;phpinfo.php&lt;/code&gt; script you created with the proper &lt;code&gt;phpinfo()&lt;/code&gt; output. Congratulations!&lt;/p&gt;

	&lt;p&gt;Visit the &lt;a href="http://www.codestrong.com/"&gt;Appcelerator Codestrong&lt;/a&gt; developer center for more information on building Titanium applications. Visit &lt;code&gt;#titanium_app&lt;/code&gt; on Freenode IRC to ask questions about application development. If you want to help develop the project and contribute PHP tests to it, join &lt;code&gt;#titanium_dev&lt;/code&gt;.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=JARL7SAADSc:8Z4c15-yF8E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=JARL7SAADSc:8Z4c15-yF8E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=JARL7SAADSc:8Z4c15-yF8E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=JARL7SAADSc:8Z4c15-yF8E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=JARL7SAADSc:8Z4c15-yF8E:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/JARL7SAADSc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/building-titanium-with-php/#comments" thr:count="12" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/building-titanium-with-php/feed/atom/" thr:count="12" />
		<thr:total>12</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Days 11 &amp; 12 (Washington)]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-days-11-12/" />
		<id>http://benramsey.com/?p=435</id>
		<updated>2009-10-03T21:53:04Z</updated>
		<published>2009-10-03T21:51:07Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	Departing Miami, I gazed upon the Atlantic Ocean as we cut through the clouds, making our way farther from the shore, and the thought occurred to me that this tour&#8212;these two weeks&#8212;has taken me from sea to shining sea across this great country. What a fitting thought to have as this next leg of the [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-days-11-12/">	&lt;p&gt;Departing Miami, I gazed upon the Atlantic Ocean as we cut through the clouds, making our way farther from the shore, and the thought occurred to me that this tour&amp;#8212;these two weeks&amp;#8212;has taken me from sea to shining sea across this great country. What a fitting thought to have as this next leg of the tour took us to Washington, DC. &lt;/p&gt;

	&lt;p&gt;I have traveled the country and have engaged the PHP community face-to-face all across it. It has been a great experience and an excellent opportunity to connect with the PHP community at all ends of the United States. Perhaps a tour to other parts of the world is in order, to connect with the community on a global scale. If I&amp;#8217;m ever afforded that opportunity and privilege, then I will be certain to evangelize the PHP Community in each location, hoping to grow our community, bringing in new faces and new ideas.&lt;/p&gt;

	&lt;p&gt;As I mentioned, our next stop was Washington, DC. Some of us took advantage of free time we had on the afternoon and evening of the tutorial day to visit the city and walk the Mall of the United States capitol. We walked from the Washington Monument to the World War II Memorial, along the Reflection Pool to the Lincoln Memorial, along the Viet Nam Wall, around &lt;a href="http://en.wikipedia.org/wiki/President%27s_Park#The_Ellipse"&gt;the Ellipse&lt;/a&gt;, and to the White House. &lt;a href="http://zmievski.org/"&gt;Andrei&lt;/a&gt; remarked that he was using this opportunity to &amp;#8220;consumate his &lt;a href="https://twitter.com/a/status/3115337537"&gt;citizenship&lt;/a&gt;.&amp;#8221; Finally, we had dinner at the &lt;a href="http://www.ebbitt.com/"&gt;Old Ebbitt Grill&lt;/a&gt;, apparently the oldest saloon in Washington.&lt;/p&gt;

	&lt;p&gt;After dinner, our small group met up with some of the other speakers and conference attendees at &lt;a href="http://www.lovethebeer.com/brickskeller.html"&gt;The Brickskeller&lt;/a&gt;, where we enjoyed each other&amp;#8217;s company and some great beer&amp;#8212;they have other 1000 beers.&lt;/p&gt;

	&lt;p&gt;The session day went well. After some technical difficulties with my HTTP presentation, I managed to get started, and one of the attendees even remarked that he thinks my talk is perhaps the most important one at the conference. That&amp;#8217;s the best compliment I&amp;#8217;ve ever received. Everyone stayed for the end of my talk, which ran fifteen minutes late, eating into the lunch period. My AtomPub talk later in the day was much smoother in delivery.&lt;/p&gt;

	&lt;p&gt;As I wrap up in Washington, I&amp;#8217;m left wishing that I had more time to explore the capitol, but now it&amp;#8217;s time to move on to New York and the last leg of our tour. I&amp;#8217;m one step closer to going home, and while I&amp;#8217;ve had a great time on the tour meeting new people, giving presentations, and hanging out with old friends, I&amp;#8217;m ready to go home to my family.&lt;/p&gt;

	&lt;p&gt;I hope to see you at &lt;a href="http://cw.mtacon.com/schedule/city/new-york"&gt;New York CodeWorks&lt;/a&gt;!&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=8_3NshOUtwU:paaHhJ-nvqw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=8_3NshOUtwU:paaHhJ-nvqw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=8_3NshOUtwU:paaHhJ-nvqw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=8_3NshOUtwU:paaHhJ-nvqw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=8_3NshOUtwU:paaHhJ-nvqw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/8_3NshOUtwU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-days-11-12/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-days-11-12/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Days 9 &amp; 10 (Miami)]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-days-9-10/" />
		<id>http://benramsey.com/?p=432</id>
		<updated>2009-10-03T19:49:52Z</updated>
		<published>2009-10-03T19:49:52Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" /><category scheme="http://benramsey.com" term="phpgroups" /><category scheme="http://benramsey.com" term="user-group" />		<summary type="html"><![CDATA[	Miami CodeWorks, so far, was the smallest conference but I still think some important connections were made, especially with regard to user group contacts. 

	At the Microsoft happy hour on the second day of the conference in Miami, I was able to meet Brendon Van Heyzen, who is interested in starting up a PHP user [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-days-9-10/">	&lt;p&gt;&lt;a href="http://cw.mtacon.com/schedule/city/miami"&gt;Miami CodeWorks&lt;/a&gt;, so far, was the smallest conference but I still think some important connections were made, especially with regard to user group contacts. &lt;/p&gt;

	&lt;p&gt;At the Microsoft happy hour on the second day of the conference in Miami, I was able to meet Brendon Van Heyzen, who is interested in starting up a PHP user group in Boca Raton. It seems that the Miami PHP user group has quietened down and gone silent, and he&amp;#8217;s interested in starting up a group for the Boca Raton PHP community. We had a great discussion, and I offered him some points of advice on how to start a group, and this reminded me of the user group starter package I&amp;#8217;ve discussed with &lt;a href="http://www.rafaeldohms.com.br/en/"&gt;Rafael&lt;/a&gt; and &lt;a href="http://www.dragonbe.com/"&gt;Michelangelo&lt;/a&gt;. I really need to push the &lt;a href="http://phpgroups.org/"&gt;PHP Groups&lt;/a&gt; initiative to get started on this.&lt;/p&gt;

	&lt;p&gt;The two main pieces of advice I offered were to start a mailing list and then to find adequate meeting space. The mailing list is important to get discussion going and to see what kind of group the people in your area want to have. It will inform your search for meeting space so you can find the kind of space that will work best for the type of meetings you want to have.&lt;/p&gt;

	&lt;p&gt;So, CodeWorks has been an excellent way to reach out to local leaders and people who want to start groups in their areas. If you&amp;#8217;re interested in starting a group, join the &lt;a href="http://phpgroups.org/"&gt;PHP Groups&lt;/a&gt; mailing list and introduce yourself.&lt;/p&gt;

	&lt;p&gt;Rounding out our visit to Miami, I enjoyed some great Cuban food at &lt;a href="http://www.yelp.com/biz/puerto-sagua-restaurant-miami-beach"&gt;Puerto Sagua&lt;/a&gt;, and we actually managed to find some good beer at &lt;a href="http://www.theotheroom.com/"&gt;The Room&lt;/a&gt; in Miami Beach. It was a beer oasis in the midst of a desert filled with mojito sand.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ER7p6WpaIu4:CTxWlPKm8jA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ER7p6WpaIu4:CTxWlPKm8jA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=ER7p6WpaIu4:CTxWlPKm8jA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ER7p6WpaIu4:CTxWlPKm8jA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=ER7p6WpaIu4:CTxWlPKm8jA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/ER7p6WpaIu4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-days-9-10/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-days-9-10/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Days 7 &amp; 8 (Atlanta)]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-days-7-8/" />
		<id>http://benramsey.com/?p=427</id>
		<updated>2009-10-01T15:52:19Z</updated>
		<published>2009-10-01T15:48:18Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	Atlanta was the mid-point stop on the CodeWorks tour, and since it&#8217;s my home, I decided to use it as an opportunity to spend time with my family before heading off on the second half of the tour. As such, there was very little hallway track activity for me, but I did get a chance [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-days-7-8/">	&lt;p&gt;Atlanta was the mid-point stop on the &lt;a href="http://cw.mtacon.com/"&gt;CodeWorks&lt;/a&gt; tour, and since it&amp;#8217;s my home, I decided to use it as an opportunity to spend time with my family before heading off on the second half of the tour. As such, there was very little hallway track activity for me, but I did get a chance to make it to a few events.&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;m told that Atlanta has had the largest CodeWorks crowd yet. I took a quick look around at each of the rooms, and I believe it. Each presentation was well-attended, and I&amp;#8217;m proud to say that the &lt;a href="http://atlantaphp.org/"&gt;Atlanta PHP user group&lt;/a&gt; was well-represented this year; I saw lots of familiar faces.&lt;/p&gt;

	&lt;p&gt;Speaking of Atlanta PHP, we had a good crowd at the &lt;a href="http://meetup.atlantaphp.org/calendar/11165442/"&gt;Meet the Speakers&lt;/a&gt; dinner on Monday night. Many of the speakers attended, as well as attendees and Atlanta PHP members. I want to thank &lt;a href="http://blogs.msdn.com/glengordon/"&gt;Glen Gordon&lt;/a&gt; and Microsoft for sponsoring the dinner. I think it was a great success, and we couldn&amp;#8217;t have done it without Glen&amp;#8217;s help. The only problem I have is that many people apparently treat &lt;a href="http://meetup.atlantaphp.org/"&gt;meetup.com&lt;/a&gt; &amp;#8220;yes&amp;#8221; RSVPs as mere suggestions. If there&amp;#8217;s a chance you&amp;#8217;re not going to make it, please RSVP &amp;#8220;maybe&amp;#8221; or &amp;#8220;no.&amp;#8221;&lt;/p&gt;

	&lt;p&gt;I also want to thank &lt;a href="http://tetraboy.com/"&gt;Jeff Jones&lt;/a&gt; for hosting an after party as his place for many of the speakers. It was a lot of fun, and the beer was great.&lt;/p&gt;

	&lt;p&gt;Now we&amp;#8217;re in Miami, and I&amp;#8217;m a bit behind on blogging,  but I&amp;#8217;ll post about the Miami CodeWorks stop later today.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=btUjKlcFVdQ:nmdTFkyNhGQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=btUjKlcFVdQ:nmdTFkyNhGQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=btUjKlcFVdQ:nmdTFkyNhGQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=btUjKlcFVdQ:nmdTFkyNhGQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=btUjKlcFVdQ:nmdTFkyNhGQ:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/btUjKlcFVdQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-days-7-8/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-days-7-8/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Days 5 &amp; 6 (Dallas)]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-days-5-6/" />
		<id>http://benramsey.com/?p=420</id>
		<updated>2009-10-01T15:22:01Z</updated>
		<published>2009-09-27T19:13:49Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	Yesterday, the CodeWorks B-Team (the session day team, a.k.a. Team Awesome) ran into a bit of a travel snafu that actually worked out better for us. On the way to the airport in Los Angeles, we got stuck in traffic caused by an overturned cement mixer truck. And by overturned, I literally mean the cement [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-days-5-6/">	&lt;p&gt;Yesterday, the &lt;a href="http://cw.mtacon.com/"&gt;CodeWorks&lt;/a&gt; B-Team (the session day team, a.k.a. Team Awesome) ran into a bit of a travel snafu that actually worked out better for us. On the way to the airport in Los Angeles, we got stuck in traffic caused by an overturned cement mixer truck. And by overturned, I literally mean the cement mixer was lying flat on its back across the barrier separating the north bound from the south bound lanes. I&amp;#8217;m not sure how it was even possible, but there it was. &lt;a href="http://derickrethans.nl/"&gt;Derick&lt;/a&gt; took some video of the accident that he may or may not post later.&lt;/p&gt;

	&lt;p&gt;The traffic caused our team to be late to the airport, missing our flight. However, we were able to quickly book standby tickets for the following flight, giving us extra time at the airport to eat, placing us on a plane that had WiFi access (our original flight did not), and giving many of us exit row seats. So, it all worked out in the end.&lt;/p&gt;

	&lt;p&gt;The evening was short, due to our late arrival, but we still made it out to &lt;a href="http://www.laharanch.com/lahaciendaranch/"&gt;La Hacienda Ranch&lt;/a&gt;, apparently the home of the original frozen margarita. A highlight of the evening was being able to meet some of the gang from &lt;a href="http://dallasphp.org/"&gt;Dallas PHP&lt;/a&gt;, including Tim Stiles, whom I&amp;#8217;ve conversed with online but have never met. Afterwards, a few of us ventured into Fort Worth to have a few beers at &lt;a href="http://www.beerknurd.com/"&gt;The Flying Saucer&lt;/a&gt;. Special thanks to &lt;a href="http://blogs.msdn.com/joshholmes/"&gt;Josh Holmes&lt;/a&gt; of Microsoft for driving us around.&lt;/p&gt;

	&lt;p&gt;As an aside, we&amp;#8212;&amp;#8220;we&amp;#8221; being the speakers and community leaders attending CodeWorks&amp;#8212;have been making lots of new friends with the Microsoft developer evangelists who have been in attendance. It seems that Microsoft has a new breed or new generation of dev evangelists who are genuinely interested in the PHP community, listening to us, and hanging out and having fun with us. For me, it&amp;#8217;s a welcome improvement, and I&amp;#8217;m not saying this as a surprise change I&amp;#8217;ve only observed this week; it&amp;#8217;s something I&amp;#8217;ve been seeing over the last few years.&lt;/p&gt;

	&lt;p&gt;There have been a lot of great talks in &lt;a href="http://cw.mtacon.com/schedule/city/dallas"&gt;Dallas&lt;/a&gt;. In addition to the set of CodeWorks touring speakers, the local speakers from Dallas PHP have provided some excellent presentations. I was able to enjoy &lt;a href="http://blog.phpdeveloper.org/"&gt;Chris Cornutt&lt;/a&gt;&amp;#8217;s &amp;#8220;&lt;a href="http://joind.in/talk/view/719"&gt;B.S.T, Easy as 1-2-3&lt;/a&gt;&amp;#8221; presentation, and now I&amp;#8217;m sitting in Vance Lucas&amp;#8217;s &amp;#8220;&lt;a href="http://joind.in/talk/view/722"&gt;Object Oriented Apologetics&lt;/a&gt;.&amp;#8221;&lt;/p&gt;

	&lt;p&gt;The venue in Dallas is also excellent. We&amp;#8217;re staying at the &lt;a href="http://www.aa-conference-center-dolce.com/"&gt;American Airlines Training &amp;#38; Conference Center&lt;/a&gt;, and while it&amp;#8217;s not the fanciest of hotels, I think it has been the best hotel experience we&amp;#8217;ve had, with some of the best food and best WiFi we have seen yet. But we&amp;#8217;re not even half-way through the tour, so there is plenty of opportunity for this to change and for me to be wowed even more.&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;m heading home this evening. My home is Atlanta, and Atlanta is the next stop on our tour, so I&amp;#8217;ve scheduled a little family time during the tour, but I&amp;#8217;ll be joining the CodeWorks crew each day, tomorrow for the &lt;a href="http://meetup.atlantaphp.org/calendar/11165442/"&gt;Atlanta PHP Meet the Speakers Happy Hour&lt;/a&gt; and on Tuesday for my presentation.&lt;/p&gt;

	&lt;p&gt;I hope to see you in &lt;a href="http://cw.mtacon.com/schedule/city/atlanta"&gt;Atlanta&lt;/a&gt;!&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=pZI0zfUKrK4:tNHX9Iimd6I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=pZI0zfUKrK4:tNHX9Iimd6I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=pZI0zfUKrK4:tNHX9Iimd6I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=pZI0zfUKrK4:tNHX9Iimd6I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=pZI0zfUKrK4:tNHX9Iimd6I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/pZI0zfUKrK4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-days-5-6/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-days-5-6/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Days 3 &amp; 4 (Los Angeles)]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-days-3-4/" />
		<id>http://benramsey.com/?p=418</id>
		<updated>2009-10-01T15:07:31Z</updated>
		<published>2009-09-25T23:23:27Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	I&#8217;m writing this from Los Angeles during the session (or conference) day of CodeWorks. The &#8220;A Team&#8221; (tutorial team) is en route to Dallas today, while the &#8220;B Team&#8221; (session team) gives their talks.

	Our flight yesterday was short, but we didn&#8217;t arrive at the hotel until nearly 4pm, and then I had to leave soon [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-days-3-4/">	&lt;p&gt;I&amp;#8217;m writing this from Los Angeles during the session (or conference) day of &lt;a href="http://cw.mtacon.com/"&gt;CodeWorks&lt;/a&gt;. The &amp;#8220;A Team&amp;#8221; (tutorial team) is en route to Dallas today, while the &amp;#8220;B Team&amp;#8221; (session team) gives their talks.&lt;/p&gt;

	&lt;p&gt;Our flight yesterday was short, but we didn&amp;#8217;t arrive at the hotel until nearly 4pm, and then I had to leave soon after to make it to the combined &lt;a href="http://ocphp.org/"&gt;OCPHP&lt;/a&gt; and &lt;a href="http://laphp.org/"&gt;LAPHP&lt;/a&gt; user group meeting. That&amp;#8217;s definitely been a highlight of my trip, since I enjoy meeting other user group organizers and seeing how other user groups work. I was able to meet &lt;a href="http://oleg.baranovsky.org/"&gt;Oleg Baranovsky&lt;/a&gt; and &lt;a href="http://www.mysqltalk.com/"&gt;Joe Devon&lt;/a&gt; of LAPHP and William Estrada of OCPHP. Special thanks to &lt;a href="http://www.rutgerhensel.nl/"&gt;Rutger Hensel&lt;/a&gt; for letting us meet in his &lt;a href="http://www.coworkingfullerton.com/"&gt;co-working space in Fullerton&lt;/a&gt;.&lt;/p&gt;

	&lt;p&gt;There was a &lt;a href="http://twitter.com/rutger/statuses/4360189689"&gt;great crowd at the OCPHP/LAPHP meeting&lt;/a&gt;, and I spoke on Grokking REST, while &lt;a href="http://jasonmauer.com/"&gt;Jason Mauer&lt;/a&gt;, Developer Evangelist for Microsoft, spoke about &lt;a href="http://www.microsoft.com/silverlight/"&gt;Microsoft Silverlight&lt;/a&gt; (and touched a little bit on &lt;a href="http://www.microsoft.com/azure/"&gt;Windows Azure&lt;/a&gt; and &lt;a href="http://www.microsoft.com/web/websitespark/"&gt;WebsiteSpark&lt;/a&gt;). In all, they&amp;#8217;ve got two great PHP user groups and if you&amp;#8217;re in the Los Angeles or Orange County areas, you should definitely try them out.&lt;/p&gt;

	&lt;p&gt;Today was a whirlwind of a day for me, as I&amp;#8217;ve given three talks already, and I&amp;#8217;m writing this just just before heading back down to the conference for a Future of Web Development panel that I&amp;#8217;ve agreed to sit on. Since there&amp;#8217;s been no real preparation for it, it ought to be fantastic!&lt;/p&gt;

	&lt;p&gt;This is only the second stop on the tour&amp;#8212;five more stops to go&amp;#8212;but already it&amp;#8217;s been a great and exciting show. Even some of the folks from the OCPHP/LAPHP meeting last night who were on the fence about attending CodeWorks decided today at the last minute to come see what it was all about, and all I have spoken with are glad they made the decision.&lt;/p&gt;

	&lt;p&gt;Tomorrow, we head to &lt;a href="http://cw.mtacon.com/schedule/city/dallas"&gt;Dallas&lt;/a&gt;. I hope to see you there!&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=DSEu4PLznec:sfxEV-_MFiA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=DSEu4PLznec:sfxEV-_MFiA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=DSEu4PLznec:sfxEV-_MFiA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=DSEu4PLznec:sfxEV-_MFiA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=DSEu4PLznec:sfxEV-_MFiA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/DSEu4PLznec" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-days-3-4/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-days-3-4/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[CodeWorks Days 1 &amp; 2 (San Francisco)]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/codeworks-days-1-2/" />
		<id>http://benramsey.com/?p=415</id>
		<updated>2009-10-01T15:04:12Z</updated>
		<published>2009-09-23T20:32:01Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="codeworks" /><category scheme="http://benramsey.com" term="conferences" /><category scheme="http://benramsey.com" term="cw09" /><category scheme="http://benramsey.com" term="php" />		<summary type="html"><![CDATA[	I&#8217;m breaking a long and terrible habit of not blogging in order to share my experiences at CodeWorks over the next two weeks. As you may know, CodeWorks is a touring PHP conference that is traveling to seven cities. I&#8217;m privileged to be speaking in each of the cities.

	My trip to San Francisco began on [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/codeworks-days-1-2/">	&lt;p&gt;I&amp;#8217;m breaking a long and terrible habit of not blogging in order to share my experiences at &lt;a href="http://cw.mtacon.com/"&gt;CodeWorks&lt;/a&gt; over the next two weeks. As you may know, CodeWorks is a touring PHP conference that is traveling to seven cities. I&amp;#8217;m privileged to be speaking in each of the cities.&lt;/p&gt;

	&lt;p&gt;My trip to &lt;a href="http://cw.mtacon.com/schedule/city/san-francisco"&gt;San Francisco&lt;/a&gt; began on Monday, when the &lt;a href="http://www.ajc.com/news/aerial-view-hints-at-144385.html?imw=Y"&gt;metro Atlanta region received up to 15 inches of rainfall&lt;/a&gt; in a 24-hour period. I think the average across the region was 8-10 inches, but the point is that we received a lot of water in a short amount of time on top of having already received a lot of rain over the course of the previous week. Over 200 roads were closed and interstate highways shut down. So, I made the decision to go to the airport on Monday night and spend the night there, despite the fact that my flight didn&amp;#8217;t leave until ten the next morning. It was the right decision, since traffic the next morning was outrageous and roads were still closed, but it led to a very long day, since I did not sleep at all. Still, it allowed me to polish my slides for two very good presentations I gave today.&lt;/p&gt;

	&lt;p&gt;After a fine evening yesterday with friends at La Trappe, a Belgian Bistro and Trappist Lounge&amp;#8212;with very good beer, I might add&amp;#8212;I retired to sit around a fire pit at the hotel with even more friends. &lt;a href="http://caseysoftware.com/blog/keith-casey"&gt;Keith&lt;/a&gt; brought along marshmallows for roasting, and &lt;a href="http://blog.casey-sweat.us/"&gt;Jason&lt;/a&gt; provided the beer. Good times were had by all.&lt;/p&gt;

	&lt;p&gt;This morning, while sleeping off the jet lag and recuperating from my lack of sleep the night before, I awoke to a call from &lt;a href="http://www.travisswicegood.com/"&gt;Travis&lt;/a&gt;, asking if we could switch talk time slots. He wasn&amp;#8217;t feeling well, so I agreed, and got up for the early 9am talk, but I&amp;#8217;m glad I did. Now, my talks are over, and I&amp;#8217;m going to spend the afternoon enjoying San Francisco. Travis, you owe me one, buddy. &lt;img src='http://benramsey.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /&gt; &lt;/p&gt;

	&lt;p&gt;Tomorrow, we head to &lt;a href="http://cw.mtacon.com/schedule/city/los-angeles"&gt;Los Angeles&lt;/a&gt;, and after that, &lt;a href="http://cw.mtacon.com/schedule/city/dallas"&gt;Dallas&lt;/a&gt;, &lt;a href="http://cw.mtacon.com/schedule/city/atlanta"&gt;Atlanta&lt;/a&gt;, &lt;a href="http://cw.mtacon.com/schedule/city/miami"&gt;Miami&lt;/a&gt;, &lt;a href="http://cw.mtacon.com/schedule/city/washington"&gt;DC&lt;/a&gt;, and &lt;a href="http://cw.mtacon.com/schedule/city/new-york"&gt;New York&lt;/a&gt;. If you&amp;#8217;re in any of these cities and you&amp;#8217;re not yet signed up for CodeWorks, don&amp;#8217;t miss a great opportunity to hear some excellent talks. &lt;a href="http://cw.mtacon.com/signup/index"&gt;Sign up today&lt;/a&gt;, and I&amp;#8217;ll see you there!&lt;/p&gt;

	&lt;p&gt;FYI, for those looking for slides, I&amp;#8217;ll post them on October 7th at the conclusion of the CodeWorks tour.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=__hHtiS-UX8:8bW5ISkdn54:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=__hHtiS-UX8:8bW5ISkdn54:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=__hHtiS-UX8:8bW5ISkdn54:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=__hHtiS-UX8:8bW5ISkdn54:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=__hHtiS-UX8:8bW5ISkdn54:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/__hHtiS-UX8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/codeworks-days-1-2/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/codeworks-days-1-2/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[php&#124;tek 2009 Slides]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/phptek2009/" />
		<id>http://benramsey.com/?p=412</id>
		<updated>2009-05-22T21:39:58Z</updated>
		<published>2009-05-22T21:39:58Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="http" /><category scheme="http://benramsey.com" term="phptek" /><category scheme="http://benramsey.com" term="rest" /><category scheme="http://benramsey.com" term="rfc2616" /><category scheme="http://benramsey.com" term="tek09" />		<summary type="html"><![CDATA[	Another php&#124;tek come and gone. I&#8217;m saddened by leaving, but, as usually happens, I&#8217;m reinvigorated and reenergized to go back to work. It seems I need these events to get together with other developers to raise me up out of periods of burn-out. I&#8217;m sure the same goes for others.

	I gave my talk this morning [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/phptek2009/">	&lt;p&gt;Another &lt;a href="http://tek.mtacon.com/"&gt;php|tek&lt;/a&gt; come and gone. I&amp;#8217;m saddened by leaving, but, as usually happens, I&amp;#8217;m reinvigorated and reenergized to go back to work. It seems I need these events to get together with other developers to raise me up out of periods of burn-out. I&amp;#8217;m sure the same goes for others.&lt;/p&gt;

	&lt;p&gt;I gave my talk this morning on &amp;#8220;Making the Most of HTTP In Your Apps.&amp;#8221; There was so much material to cover and so little time to cover it in, so I hope people found little nuggets of value in it for their own applications. I&amp;#8217;ll be revising it in the future to show more actual code examples.&lt;/p&gt;

	&lt;p&gt;For your reference, I&amp;#8217;ve provided the slides below for you to enjoy and download. Here&amp;#8217;s the abstract of what the talk is about, and please don&amp;#8217;t forget to &lt;a href="http://joind.in/213"&gt;rate my talk&lt;/a&gt;:&lt;/p&gt;

	&lt;p&gt;&amp;#8220;200, 404, 302. Is it a lock combination? A phone number? No, they&amp;#8217;re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It&amp;#8217;s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.&amp;#8221;&lt;/p&gt;

	&lt;p&gt;&lt;div style="width:425px;text-align:left" id="__ss_446935"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bramsey-phptek-2009-http-090522162437-phpapp02&amp;#38;rel=0&amp;#38;stripped_title=making-the-most-of-http-in-your-apps"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bramsey-phptek-2009-http-090522162437-phpapp02&amp;#38;rel=0&amp;#38;stripped_title=making-the-most-of-http-in-your-apps" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/benramsey/making-the-most-of-http-in-your-apps" title="Making the Most of HTTP In Your Apps on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://benramsey.com/media/talks/bramsey-phptek-2009-http.pdf" title="Download Making the Most of HTTP In Your Apps"&gt;Download&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;




 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oV4WKouqgZg:LOJ3472-MNg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oV4WKouqgZg:LOJ3472-MNg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=oV4WKouqgZg:LOJ3472-MNg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oV4WKouqgZg:LOJ3472-MNg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=oV4WKouqgZg:LOJ3472-MNg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/oV4WKouqgZg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/phptek2009/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/phptek2009/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[On Companies Using Twitter]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/on-companies-using-twitter/" />
		<id>http://benramsey.com/?p=410</id>
		<updated>2009-05-09T17:15:23Z</updated>
		<published>2009-05-09T17:15:23Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="business" /><category scheme="http://benramsey.com" term="company" /><category scheme="http://benramsey.com" term="enterprise" /><category scheme="http://benramsey.com" term="tweet" /><category scheme="http://benramsey.com" term="twitter" />		<summary type="html"><![CDATA[	As a Twitter user (@ramsey) with over 700 followers, a good followers-to-following ratio (4 followers for every 1 I&#8217;m following), and over 4600 updates, I think I have a valuable perspective on the use of Twitter. I throw these numbers out there not to brag, and I&#8217;ll be quick to point out that this is [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/on-companies-using-twitter/">	&lt;p&gt;As a &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; user (&lt;a href="http://twitter.com/ramsey"&gt;@ramsey&lt;/a&gt;) with over 700 followers, a good followers-to-following ratio (4 followers for every 1 I&amp;#8217;m following), and over 4600 updates, I think I have a valuable perspective on the use of Twitter. I throw these numbers out there not to brag, and I&amp;#8217;ll be quick to point out that &lt;a href="http://twitter.com/aplusk"&gt;this is certainly not a high number of followers&lt;/a&gt;, and a certain percentage of them are &lt;a href="http://twitter.com/spam"&gt;probably spammers&lt;/a&gt;, but the numbers tell that I obviously have something to say that some people find interesting and engaging.&lt;/p&gt;

	&lt;p&gt;I also manage the &lt;a href="http://twitter.com/phpc"&gt;@phpc&lt;/a&gt; and &lt;a href="http://twitter.com/atlantaphp"&gt;@atlantaphp&lt;/a&gt; Twitter accounts, but you won&amp;#8217;t find me talking about myself on them because the point is not to promote myself but to promote things going on in the greater PHP community (for the @phpc account) and to promote things going on with the Atlanta PHP user group (for the @atlantaphp account).&lt;/p&gt;

	&lt;p&gt;First and foremost, many people use Twitter for many different reasons. I could list a variety of reasons, but I won&amp;#8217;t do that because the list would grow fairly long. Instead, I&amp;#8217;ll tell you why I use Twitter and how I think it works best.&lt;/p&gt;

	&lt;p&gt;To me, Twitter is both a micro-blog and a conversation. If I have a thought that I think others will find interesting, I&amp;#8217;ll &lt;a href="http://en.wiktionary.org/wiki/tweet"&gt;tweet&lt;/a&gt; it. It could be about technology, politics, beer, or life in general. These are the topics I tweet about most. That&amp;#8217;s the micro-blogging part.&lt;/p&gt;

	&lt;p&gt;The flip side is that, once I tweet something, it becomes part of an organic and open conversation. Others are free to respond or even pass it along (re-tweet) as they wish, and I can&amp;#8217;t ignore the conversation. So, I take part in it. Some will agree with me; others disagree. As a result, we all learn from the conversation and develop connections with each other.&lt;/p&gt;

	&lt;p&gt;Since we&amp;#8217;re talking about having a business tweet as an entity, I&amp;#8217;ll shift the focus to that of a business using Twitter. I&amp;#8217;ve seen businesses tweet in three basic ways:&lt;/p&gt;

	&lt;p&gt;&lt;ol&gt;&lt;li&gt;Corporate communications; tweets are only news and PR items like press releases.&lt;/li&gt;&lt;li&gt;Customer support; someone follows a list of specific &lt;a href="http://en.wikipedia.org/wiki/Tag_(metadata)#Hash_tags"&gt;hash tags&lt;/a&gt; (i.e. #product) and other search terms to see what people are saying about their products and services, and they respond and try to help resolve those issues.&lt;/li&gt;&lt;li&gt;As a human entity, micro-blogging and joining the conversation; the company employs an &amp;#8220;evangelist&amp;#8221; to be the face of the company, tweeting informal messages about things going on in the company and responding to other people&amp;#8217;s tweets, taking part in the conversation. As an evangelist, their role is to give the company a human face and personality that people like and relate to, developing relationships with the public, hoping to get them excited enough about the company that they also become evangelists for the company&amp;#8217;s products or services (though they might not even know it); essentially, the evangelist wants to build a community of &lt;a href="http://en.wiktionary.org/wiki/fanboy"&gt;fanboys&lt;/a&gt; and &lt;a href="http://en.wiktionary.org/wiki/fangirl"&gt;fangirls&lt;/a&gt; for the company.&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;

	&lt;p&gt;In my opinion the third option is the best for a company using Twitter to build a community and an excitement around their brand. &lt;/p&gt;

	&lt;p&gt;A fourth option that I have heard proposed (and that some companies have even attempted) is to ask employees to submit tweets that will then be posted on a regular basis through the corporate Twitter account (somewhat like a corporate blog). The idea being to showcase thought-leadership from the company&amp;#8217;s employees. However, I think this approach misses the conversation aspect of Twitter, thus limiting how far the company can go to build a community of people excited about the work they are doing. &lt;/p&gt;

	&lt;p&gt;Having multiple employees submitting tweets will give the company a kind of schizophrenia. It will be a collection of disjointed voices, who, while they may have interesting things to say, aren&amp;#8217;t taking part in the conversation. The signal-to-noise ratio will be perceived as having not enough signal and too much noise. The company won&amp;#8217;t get many followers, and if it does, the followers-to-following ratio will be near parity (1 to 1), which means most followers gained are gained through follow-backs.&lt;/p&gt;

	&lt;p&gt;My recommendation would be that a company that wishes to take part in the conversation on Twitter needs to find someone it can trust with the power to tweet his or her mind in an informal and engaging way and to take part in the conversation with its followers, and it would be best if this is only one (at most two) people, to give the impression of a unified voice with a unified vision.&lt;/p&gt;

	&lt;p&gt;If a company wants to share cool ideas from their employees and showcase the thought leadership in the company, then the company&amp;#8217;s Twitter account should follow its employees on Twitter and re-tweet their personal tweets when they provide value to the conversation that the company wants to create.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=-SqFLDdHhRI:y82S1nRL6fQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=-SqFLDdHhRI:y82S1nRL6fQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=-SqFLDdHhRI:y82S1nRL6fQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=-SqFLDdHhRI:y82S1nRL6fQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=-SqFLDdHhRI:y82S1nRL6fQ:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/-SqFLDdHhRI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/on-companies-using-twitter/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/on-companies-using-twitter/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[Web 1.0, 2.0, and 3.0 Defined]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/web-10-20-and-30-defined/" />
		<id>http://benramsey.com/?p=406</id>
		<updated>2009-05-07T15:20:04Z</updated>
		<published>2009-05-07T03:39:39Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="cloud" /><category scheme="http://benramsey.com" term="copyright" /><category scheme="http://benramsey.com" term="culture" /><category scheme="http://benramsey.com" term="ownership" /><category scheme="http://benramsey.com" term="saas" /><category scheme="http://benramsey.com" term="web" /><category scheme="http://benramsey.com" term="web20" /><category scheme="http://benramsey.com" term="web30" />		<summary type="html"><![CDATA[	A couple of months ago, an e-mail thread went around the company discussing &#8220;Web 3.0&#8221; technology. Naturally, I felt the need to put in my two cents, and I thought it would make for a good blog post. Let me know what you think. Do you agree? Disagree?

	Marketing speak aside, I like to think of [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/web-10-20-and-30-defined/">	&lt;p&gt;A couple of months ago, an e-mail thread went around the company discussing &amp;#8220;Web 3.0&amp;#8221; technology. Naturally, I felt the need to put in my two cents, and I thought it would make for a good blog post. Let me know what you think. Do you agree? Disagree?&lt;/p&gt;

	&lt;p&gt;Marketing speak aside, I like to think of these labels in terms of &amp;#8220;eras&amp;#8221; of the Web.&lt;/p&gt;

	&lt;p&gt;So, Web 1.0 represents the first decade of the Web (1990-1999), which is characterized primarily by a read-only Web.&lt;/p&gt;

	&lt;p&gt;Web 2.0 represents the second decade of the Web (2000-2009), which is characterized by a shift in the use of the Web to not only connect to a company&amp;#8217;s or product&amp;#8217;s constituents by giving them information but also allowing users to connect to the company/product and to each other. This is often called the era of the read-write Web. I think this era is also characterized by a counter-cultural shift in views regarding ownership of data and privacy. This cultural shift will continue into the Web 3.0 era and will begin to affect the mainstream culture, as well and (I think) lead to changes in copyright law.&lt;/p&gt;

	&lt;p&gt;Web 3.0 represents the next decade of the Web (2010-2019). It will be characterized by a read-write-execute Web, and we will see a proliferation of SaaS and Software + Services models. Software that lives primarily on the desktop will become less and less important as the desktop serves primarily as a client to reach services in the Cloud. I think that we will see rich clients proliferate on the desktop, but, in the end, they will really be using the Cloud for storage/retrieval, and the creation and use of rich clients lends itself well to a REST architecture as rich clients are used to maintain all application state and the messages sent back and forth contain no state at all and are cacheable at every layer of the network&amp;#8230; but I digress.&lt;/p&gt;

	&lt;p&gt;As more and more people become accustomed to storing their data in the Cloud and sharing it with others, our cultural concepts of ownership and privacy will dramatically shift. There could be a widespread backlash as this begins to affect the mainstream culture, or perhaps the backlash will not occur at all as Gen-Xers and Gen-Yers have already begun introducing their parents and grandparents to Web technologies, and they&amp;#8217;ve embraced them as a way to keep in touch with their friends and family. I suspect that, by 2015, we&amp;#8217;ll have a clear idea of how this shift will play out.&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3wcxCMSDBa4:PhIcbavGbE0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3wcxCMSDBa4:PhIcbavGbE0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=3wcxCMSDBa4:PhIcbavGbE0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3wcxCMSDBa4:PhIcbavGbE0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=3wcxCMSDBa4:PhIcbavGbE0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/3wcxCMSDBa4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/web-10-20-and-30-defined/#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/web-10-20-and-30-defined/feed/atom/" thr:count="6" />
		<thr:total>6</thr:total>
	</entry>
		<entry>
		<author>
			<name>Ben Ramsey</name>
						<uri>http://benramsey.com</uri>
					</author>
		<title type="html"><![CDATA[Specifying rev=&#8221;canonical&#8221; With HTTP]]></title>
		<link rel="alternate" type="text/html" href="http://benramsey.com/archives/specifying-revcanonical-with-http/" />
		<id>http://benramsey.com/?p=401</id>
		<updated>2009-04-12T06:36:35Z</updated>
		<published>2009-04-12T06:15:48Z</published>
		<category scheme="http://benramsey.com" term="blog" /><category scheme="http://benramsey.com" term="cool uris don't change" /><category scheme="http://benramsey.com" term="html5" /><category scheme="http://benramsey.com" term="http" /><category scheme="http://benramsey.com" term="link" /><category scheme="http://benramsey.com" term="Links" /><category scheme="http://benramsey.com" term="revcanonical" /><category scheme="http://benramsey.com" term="shorturls" /><category scheme="http://benramsey.com" term="urls" /><category scheme="http://benramsey.com" term="usability" /><category scheme="http://benramsey.com" term="web" />		<summary type="html"><![CDATA[	It looks like there&#8217;s a lot of momentum behind rev=&#8221;canonical&#8221; now&#8212;and all built up within the span of about forty-eight hours. So, while I disagree with the use of &#8220;canonical&#8221; for semantic reasons and rev for the potential of mass misunderstanding and improper implementation, I think I&#8217;ll bite the bullet on this one for now, [...]]]></summary>
		<content type="html" xml:base="http://benramsey.com/archives/specifying-revcanonical-with-http/">	&lt;p&gt;It looks like &lt;a href="http://search.twitter.com/search?q=%23revcanonical"&gt;there&amp;#8217;s a lot of momentum behind &lt;code&gt;rev=&amp;#8221;canonical&amp;#8221;&lt;/code&gt;&lt;/a&gt; now&amp;#8212;and all built up within the span of about forty-eight hours. So, &lt;a href="http://benramsey.com/archives/a-revcanonical-rebuttal/"&gt;while I disagree&lt;/a&gt; with the use of &amp;#8220;canonical&amp;#8221; &lt;a href="http://benramsey.com/archives/summarizing-my-revcanonical-argument/"&gt;for semantic reasons&lt;/a&gt; and &lt;code&gt;rev&lt;/code&gt; for the potential of mass misunderstanding and improper implementation, I think I&amp;#8217;ll bite the bullet on this one for now, but time will tell what the community ultimately decides.&lt;/p&gt;

	&lt;p&gt;So, I&amp;#8217;ve decided to &lt;a href="http://en.wikipedia.org/wiki/Eat_one's_own_dog_food"&gt;eat my own dog food&lt;/a&gt;. &lt;a href="http://simonwillison.net/2009/Apr/11/revcanonical/"&gt;Like Simon Willison&lt;/a&gt;, I bought my own short URL, and now all blog posts on my site include a &lt;code&gt;link&lt;/code&gt; tag that covers all the bases similar to the following:&lt;/p&gt;

&lt;code&gt;&amp;lt;link rev=&amp;#8221;canonical&amp;#8221; rel=&amp;#8221;alternate shorter&amp;#8221; href=&amp;#8221;http://brtny.me/382&amp;#8221; /&amp;gt;&lt;/code&gt;

	&lt;p&gt;And all without any special WordPress plugin. For the ID, I&amp;#8217;m simply using the WordPress post ID, which means that, if I change to another blogging tool in the future, I will need to maintain my indexes. Note that I&amp;#8217;ve implemented it with both the popular &lt;code&gt;rev=&amp;#8221;canonical&amp;#8221;&lt;/code&gt; and my preferred &lt;code&gt;rel=&amp;#8221;alternate shorter&amp;#8221;&lt;/code&gt;.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://shiflett.org/blog/2009/apr/a-rev-canonical-http-header"&gt;Chris Shiflett posts about the need for an HTTP header.&lt;/a&gt; I think this is also a good idea, for the same reasons he mentions. Chris&amp;#8217;s original recommendation is for an &lt;code&gt;X-Rev-Canonical&lt;/code&gt; header, but &lt;a href="http://shiflett.org/blog/2009/apr/a-rev-canonical-http-header#comment-5"&gt;Stephen Paul Weber mentions the &lt;code&gt;Link&lt;/code&gt; header&lt;/a&gt;. I think the &lt;code&gt;Link&lt;/code&gt; header is the right way to go about this, since it offers an HTTP analogue of the HTML &lt;code&gt;link&lt;/code&gt; element.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://tools.ietf.org/html/draft-nottingham-http-link-header-04"&gt;&lt;code&gt;Link&lt;/code&gt; is an &lt;abbr title="Internet Engineering Task Force"&gt;IETF&lt;/abbr&gt; proposal&lt;/a&gt; by &lt;a href="http://www.mnot.net/blog/"&gt;Mark Nottingham&lt;/a&gt; that is still in the Internet-Draft stage, going through the &lt;a href="http://www.ietf.org/"&gt;IETF&lt;/a&gt; process for standardization, but it&amp;#8217;s current, which is a good thing. If the community chooses to use it, though, it&amp;#8217;s interesting to note that that it states:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;Applications that don&amp;#8217;t merit a registered relation type may use an extension relation type. An extension relation type is a URI that, when dereferenced, SHOULD yield a document describing that relation type.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;This means that one should not simply put &lt;code&gt;rev=canonical&lt;/code&gt; as the value for &lt;code&gt;rev&lt;/code&gt;. Instead, it would be more proper to use something like &lt;code&gt;rev=&amp;#8221;http://revcanonical.appspot.com/#canonical&amp;#8221;&lt;/code&gt; until &amp;#8220;canonical&amp;#8221; is accepted as a &lt;a href="http://www.iana.org/assignments/link-relations/"&gt;registered IANA relation type&lt;/a&gt;. I wonder if the same is technically true of the &lt;code&gt;rel&lt;/code&gt; and &lt;code&gt;rev&lt;/code&gt; attributes in HTML.&lt;/p&gt;

	&lt;p&gt;For now, I&amp;#8217;ve decided to cover all bases in my HTTP headers, as well, and you can see this by making a HEAD request to any blog post on my website, as seen in the following:&lt;/p&gt;

	&lt;p&gt;&lt;div class="hl-surround" &gt;&lt;div class="hl-main"&gt;&lt;pre&gt;HEAD /archives/summarizing-my-revcanonical-argument/ HTTP/1.1
Host: benramsey.com

HTTP/1.1 200 OK
Date: Sun, 12 Apr 2009 05:24:34 GMT
Link: &amp;lt;http://brtny.me/382&amp;gt;; rev=&amp;quot;http://revcanonical.appspot.com/#canonical&amp;quot;; rel=&amp;quot;alternate http://revcanonical.appspot.com/#shorter&amp;quot;
X-Rev-Canonical: http://brtny.me/382
Content-Type: text/html; charset=utf-8&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;


 &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=y0irNTY2Nw0:QHYk8upIs8U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=y0irNTY2Nw0:QHYk8upIs8U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?i=y0irNTY2Nw0:QHYk8upIs8U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=y0irNTY2Nw0:QHYk8upIs8U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ramsey?a=y0irNTY2Nw0:QHYk8upIs8U:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ramsey?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ramsey/~4/y0irNTY2Nw0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://benramsey.com/archives/specifying-revcanonical-with-http/#comments" thr:count="10" />
		<link rel="replies" type="application/atom+xml" href="http://benramsey.com/archives/specifying-revcanonical-with-http/feed/atom/" thr:count="10" />
		<thr:total>10</thr:total>
	</entry>
	</feed><!-- Dynamic page generated in 2.299 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-09 12:55:25 -->
