<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Grep My Mind &#187; yahoo!</title>
	<atom:link href="http://www.grepmymind.com/tags/yahoo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grepmymind.com</link>
	<description>Wonder what’s on my mind? Now you know.</description>
	<lastBuildDate>Thu, 11 Jun 2009 20:00:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Status 200 != OK?</title>
		<link>http://www.grepmymind.com/2009/06/11/status-200-ok/</link>
		<comments>http://www.grepmymind.com/2009/06/11/status-200-ok/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 19:59:03 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[200]]></category>
		<category><![CDATA[401]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[500]]></category>
		<category><![CDATA[503]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTTP status codes]]></category>
		<category><![CDATA[yahoo!]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=333</guid>
		<description><![CDATA[When you think about SEO do you remember to think about how your website handles HTTP status codes? The odds are that you don&#8217;t. Your &#8220;page not found&#8221; probably returns a 404 (everyone knows about that one) but what about programmatic error pages or login pages? Search engines index pretty much anything that has a [...]]]></description>
			<content:encoded><![CDATA[<p>When you think about <a href="http://en.wikipedia.org/wiki/Search_engine_optimization">SEO</a> do you remember to think about how your website handles <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes">HTTP status codes</a>?  The odds are that you don&#8217;t.  Your &#8220;page not found&#8221; probably returns a <a href="http://en.wikipedia.org/wiki/HTTP_404">404</a> (everyone knows about that one) but what about programmatic error pages or login pages?  Search engines index pretty much anything that has a 200 status code.  This means if you don&#8217;t pay attention you can end up with pages indexed &#038; findable that shouldn&#8217;t be.</p>
<p>For example, if you are logged out, <a href="http://www.washingtonpost.com/newsletters/">Washington Post&#8217;s</a> newsletter page 302 redirects you to a login page that then serves a 200.  This means a <a href="http://www.google.com/search?q=newsletters+site%3Awashingtonpost.com">Google search for newsletters</a> for <a href="http://www.washingtonpost.com/">washingtonpost.com</a> gets indexed with the text from the login page.  If they were to serve a 401 &#8220;Unauthorized&#8221; on the pages that require logins, these login pages would not be indexed.  Use caution with that scenario though.  It might be better to handle search engines differently than normal users so the content can be indexed.</p>
<p><span id="more-333"></span>What if sometimes you need to take a feature offline (or even, godz forbid, the entire site) for maintenance/upgrades?  I assume you provide some sort of messaging to the users.  If that page serves a 200 status and Google happens to try to index during that time you get screwed by having all of that feature&#8217;s pages get indexed as a single page.  It is better to have the offline message page return a 503 status so the search engine knows that the service is temporarily unavailable and to try again later.</p>
<p>It is becoming more common for sites to capture a 404 and try to do a site search, or similar processing, for a possible match.  Frequently when this happens it is handled within the app code rather than having the web server deliver the default 404 page.  At GameSpot.com, the programmer who first set this up forgot to serve the 404 status code and was returning a 200.  This meant that when a duplicate game was deleted from the database, the links to it were still showing up on Google.  Once we made sure the code returned a status of 404 they went away next time Google indexed the site.</p>
<p>Finally, don&#8217;t forget about the 400 status code.  If you try to load phpBB&#8217;s forums with an <a href="http://www.phpbb.com/community/viewforum.php?f=dsfsdg">invalid forum id</a> it will return a 200 status code even though it is not a valid request.  This is a good situation to serve a 400 Bad Request.  Keep in mind that that you probably wouldn&#8217;t want to return a 400 if the forum id just doesn&#8217;t exist (e.g., http://www.phpbb.com/community/viewforum.php?f=123456) because it might exist at some point.  At the very least, return a 404.</p>
<p>As a side note, with HTTP/1.1 there is a new 307 status code that is very similar to how you&#8217;re used to using 302s.  It will probably be a few more years before HTTP/1.1 is the default for browsers &#038; the 307 will be truly usable. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2009/06/11/status-200-ok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diving into the Yahoo! Open Stack &#8211; SF PHP Meetup April 2nd, 2009</title>
		<link>http://www.grepmymind.com/2009/03/11/diving-into-the-yahoo-open-stack-sf-php-meetup-april-2nd-2009/</link>
		<comments>http://www.grepmymind.com/2009/03/11/diving-into-the-yahoo-open-stack-sf-php-meetup-april-2nd-2009/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 16:03:35 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[dustin whittle]]></category>
		<category><![CDATA[php meetup]]></category>
		<category><![CDATA[yahoo!]]></category>
		<category><![CDATA[yahoo! open stack]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=319</guid>
		<description><![CDATA[When: 6:30pm Thursday April 2nd, 2009 Where: CBS Interactive &#8211; 235 2nd Street San Francisco, CA RSVP: Diving into the Yahoo! Open Stack Join the SF PHP Meetup for an exploration into the Yahoo! Open Stack and learn how to leverage Yahoo&#8217;s platforms and scalability to build your next application. We will examine the components [...]]]></description>
			<content:encoded><![CDATA[<p>When: 6:30pm Thursday April 2nd, 2009<br />
Where: CBS Interactive &#8211; 235 2nd Street San Francisco, CA<br />
RSVP: <a href="http://www.meetup.com/sf-php/calendar/9864926/">Diving into the Yahoo! Open Stack</a></p>
<hr />
Join the <a href="http://www.meetup.com/sf-php/">SF PHP Meetup</a> for an exploration into the <a href="http://developer.yahoo.com/" target="_blank">Yahoo! Open Stack</a> and learn how to leverage Yahoo&#8217;s platforms and scalability to build your next application. We will examine the components that make up Yahoo&#8217;s open stack: developer tools (<a href="http://developer.yahoo.com/yui/" target="_blank">YUI</a>), data apis (<a href="http://developer.yahoo.com/yql/" target="_blank">YQL</a>, <a href="http://developer.yahoo.com/search/boss/" target="_blank">BOSS</a>), social apis, and the application platform (<a href="http://developer.yahoo.com/yap/" target="_blank">YAP</a>).</p>
<ul>
<li>Overview
<ul>
<li>What is the Yahoo! Open Stack?
<ul>
<li>Developer Tools &#8211; YUI, Tutorials</li>
<li>YOS SDK for PHP</li>
</ul>
</li>
<li> Data APIs &#8211; YQL, BOSS &#8230;</li>
<li> Social APIs &#8211; Profiles, Connections, Updates, &#8230;</li>
<li> Application Platform
<ul>
<li> OpenSocial Support</li>
</ul>
</li>
</ul>
</li>
<li> How does it all work?
<ul>
<li> Development Workflow</li>
</ul>
</li>
<li> Building an open application with PHP and YOS</li>
<li> Common Problems &amp; Solutions
<ul>
<li> CAJA</li>
<li> OpenSocial</li>
</ul>
</li>
</ul>
<p><span id="more-319"></span></p>
<hr /><a href="http://www.linkedin.com/in/iamdustinwhittle" target="_blank">Dustin Whittle</a> is a Technical Yahoo! and Developer Evangelist for Yahoo&#8217;s Open Strategy. When he is not evangelizing Yahoo&#8217;s Open Stack, he helps develop it through his work on the Yahoo! Developer Network and Yahoo! Application Platform. Prior to his work helping create an open Yahoo!, he has contributed to Yahoo! Answers and Delicious. When not focused on Yahoo!, he is an active open source contributor for the <a href="http://symfony-project.com/" target="_blank">symfony project</a> and is a regular speaker at technical conferences around the world.</p>
<hr />
Agenda:<br />
6:30 &#8211; 7:15 &#8212; Doors open/general socializing &amp; food provided by Yahoo!<br />
7:15 &#8211; 8:30 &#8212; Main presentation by Dustin Whittle on the Yahoo! Open Stack<br />
8:30 &#8211; 9:00 &#8212; Main presentation Q&amp;A<br />
9:00 &#8211; 10:00 &#8212; General discussion/Q&amp;A/networking/etc.<br />
10:00ish &#8212; end of group</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2009/03/11/diving-into-the-yahoo-open-stack-sf-php-meetup-april-2nd-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
