<?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>web2.0goodies.com</title>
	<atom:link href="http://web2.0goodies.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://web2.0goodies.com/blog</link>
	<description>Tips, Tricks, and How To's for Web 2.0</description>
	<lastBuildDate>Tue, 03 Jan 2012 05:34:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>How to obtain a users time zone via Javascript</title>
		<link>http://web2.0goodies.com/blog/javascript/how-to-obtain-a-users-time-zone-via-javascript/</link>
		<comments>http://web2.0goodies.com/blog/javascript/how-to-obtain-a-users-time-zone-via-javascript/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 05:34:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=234</guid>
		<description><![CDATA[This approach isn&#8217;t perfect, but for US users, it should be correct 100% of the time. This blog author describes how he has created a function that uses the Javascript Date objects getTimeZoneOffset method to test various dates and determine what timezone the users computer is likely set to. Here is the post: http://blog.redfin.com/devblog/2007/08/getting_the_time_zone_from_a_web_browser.html]]></description>
			<content:encoded><![CDATA[<p>This approach isn&#8217;t perfect, but for US users, it should be correct 100% of the time.</p>
<p>This blog author describes how he has created a function that uses the Javascript Date objects getTimeZoneOffset method to test various dates and determine what timezone the users computer is likely set to.</p>
<p>Here is the post: <a href="http://blog.redfin.com/devblog/2007/08/getting_the_time_zone_from_a_web_browser.html" target="_blank">http://blog.redfin.com/devblog/2007/08/getting_the_time_zone_from_a_web_browser.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/javascript/how-to-obtain-a-users-time-zone-via-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Good custom permalink string for WordPress</title>
		<link>http://web2.0goodies.com/blog/wordpress/a-good-custom-permalink-string-for-wordpress/</link>
		<comments>http://web2.0goodies.com/blog/wordpress/a-good-custom-permalink-string-for-wordpress/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 20:29:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=232</guid>
		<description><![CDATA[I really dislike the default wordpress permalink choices. My favorite, is to put this in the custom permalink string: &#8220;/%category%/%postname%/&#8221; Joey]]></description>
			<content:encoded><![CDATA[<p>I really dislike the default wordpress permalink choices.  My favorite, is to put this in the custom permalink string: &#8220;/%category%/%postname%/&#8221;</p>
<p>Joey</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/wordpress/a-good-custom-permalink-string-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why you should Turn off Output buffering in php when developing code for others&#8230;</title>
		<link>http://web2.0goodies.com/blog/php/why-you-should-turn-off-output-buffering-in-php-when-developing-code-for-others/</link>
		<comments>http://web2.0goodies.com/blog/php/why-you-should-turn-off-output-buffering-in-php-when-developing-code-for-others/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 18:49:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=230</guid>
		<description><![CDATA[A few times now I have developed code for my clients, and when I send it to them, they get an error dealing with output already being sent when something attempts to send a header&#8230; You know the classic: Warning: Cannot modify header information &#8211; headers already sent by (output started at /home/a/public_html/wp-admin/includes/plugin.php:1721) in /home/a/public_html/wp-includes/pluggable.php [...]]]></description>
			<content:encoded><![CDATA[<p>A few times now I have developed code for my clients, and when I send it to them, they get an error dealing with output already being sent when something attempts to send a header&#8230;  You know the classic:</p>
<p>Warning: Cannot modify header information &#8211; headers already sent by (output started at /home/a/public_html/wp-admin/includes/plugin.php:1721) in /home/a/public_html/wp-includes/pluggable.php on line 934</p>
<p>This is caused by output having already been sent to the browser, and the headers have to go before the output.  Php is smart enough to clear the output buffer if possible before sending headers&#8230;  So if the output buffer hasn&#8217;t been sent to the browser yet because output buffering is enabled php will clear the buffer, and send the header.  But if output buffering is disabled, you get an error&#8230;  And something won&#8217;t work right&#8230;</p>
<p>So, open up your php.ini file and set output_buffering = Off.</p>
<p>Cheers!</p>
<p>Joey</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/php/why-you-should-turn-off-output-buffering-in-php-when-developing-code-for-others/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Update a wordpress site to a new domain&#8230;</title>
		<link>http://web2.0goodies.com/blog/uncategorized/update-a-wordpress-site-to-a-new-domain/</link>
		<comments>http://web2.0goodies.com/blog/uncategorized/update-a-wordpress-site-to-a-new-domain/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 22:05:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=224</guid>
		<description><![CDATA[I like to do all my work locally, and so I frequently copy a remote site to my local computer, but I also like to NOT mess with my hosts file so that I can always look at the live site, and you never get into one of those &#8220;Is this the live site?&#8221; situations. [...]]]></description>
			<content:encoded><![CDATA[<p>I like to do all my work locally, and so I frequently copy a remote site to my local computer, but I also like to NOT mess with my hosts file so that I can always look at the live site, and you never get into one of those &#8220;Is this the live site?&#8221; situations.</p>
<p>It is easy to do this, just run the following queries on the mysql database that wordpress is on, and edit the wp-config.php file to point to the new domain.</p>
<p><code><br />
update wp_options set option_value=REPLACE(option_value, 'old_domain', 'new_domain');<br />
update wp_site set domain=REPLACE(domain, 'old_domain', 'new_domain');<br />
update wp_sitemeta set meta_value=REPLACE(meta_value, 'old_domain', 'new_domain');<br />
update wp_blogs set domain=REPLACE(domain, 'old_domain', 'new_domain');<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/uncategorized/update-a-wordpress-site-to-a-new-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Google CDN jQuery and jQuery ui.</title>
		<link>http://web2.0goodies.com/blog/javascript/using-google-cdn-jquery-and-jquery-ui/</link>
		<comments>http://web2.0goodies.com/blog/javascript/using-google-cdn-jquery-and-jquery-ui/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 07:06:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=220</guid>
		<description><![CDATA[I add these to almost every page I create. Next time you want to include jQuery and jQuery ui in a page, just copy these three tags and drop them in your head. Viola! jQuery, courtesy of Google! And if everybody did this, the web would be faster&#8230;]]></description>
			<content:encoded><![CDATA[<p>I add these to almost every page I create.  Next time you want to include jQuery and jQuery ui in a page, just copy these three tags and drop them in your head.  Viola!  jQuery, courtesy of Google!  And if everybody did this, the web would be faster&#8230;</p>
<pre name="code" class="html">
<link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.js"></script>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/javascript/using-google-cdn-jquery-and-jquery-ui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Buttons Quick and Easy</title>
		<link>http://web2.0goodies.com/blog/css/css3-buttons-quick-and-easy/</link>
		<comments>http://web2.0goodies.com/blog/css/css3-buttons-quick-and-easy/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 00:53:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/css/css3-buttons-quick-and-easy/</guid>
		<description><![CDATA[I found this article http://webdesignerwall.com/tutorials/css3-gradient-buttons that provides some nice code for css3 buttons, but you have to view source and other things to get what you need.&#160; And I am always a fan of making things simpler.&#160; So here is the awesome code they provide for making css3 buttons&#8230;&#160; All nice and easy to copy [...]]]></description>
			<content:encoded><![CDATA[<p>I found this article <a href="http://webdesignerwall.com/tutorials/css3-gradient-buttons">http://webdesignerwall.com/tutorials/css3-gradient-buttons</a> that provides some nice code for css3 buttons, but you have to view source and other things to get what you need.&nbsp; And I am always a fan of making things simpler.&nbsp; So here is the awesome code they provide for making css3 buttons&#8230;&nbsp; All nice and easy to copy and paste&#8230;&nbsp; To view examples of the below styles see: <a href="http://www.webdesignerwall.com/demo/css-buttons.html">http://www.webdesignerwall.com/demo/css-buttons.html</a></p>
<pre code="css">
/* button
---------------------------------------------- */
.button {
	display: inline-block;
	zoom: 1; /* zoom and *display = ie7 hack for display:inline-block */
	*display: inline;
	vertical-align: baseline;
	margin: 0 2px;
	outline: none;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	font: 14px/100% Arial, Helvetica, sans-serif;
	padding: .5em 2em .55em;
	text-shadow: 0 1px 1px rgba(0,0,0,.3);
	-webkit-border-radius: .5em;
	-moz-border-radius: .5em;
	border-radius: .5em;
	-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
	-moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
	box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.button:hover {
	text-decoration: none;
}
.button:active {
	position: relative;
	top: 1px;
}

.bigrounded {
	-webkit-border-radius: 2em;
	-moz-border-radius: 2em;
	border-radius: 2em;
}
.medium {
	font-size: 12px;
	padding: .4em 1.5em .42em;
}
.small {
	font-size: 11px;
	padding: .2em 1em .275em;
}

/* color styles
---------------------------------------------- */

/* black */
.black {
	color: #d7d7d7;
	border: solid 1px #333;
	background: #333;
	background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#000));
	background: -moz-linear-gradient(top,  #666,  #000);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#666666', endColorstr='#000000');
}
.black:hover {
	background: #000;
	background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#000));
	background: -moz-linear-gradient(top,  #444,  #000);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#000000');
}
.black:active {
	color: #666;
	background: -webkit-gradient(linear, left top, left bottom, from(#000), to(#444));
	background: -moz-linear-gradient(top,  #000,  #444);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#666666');
}

/* gray */
.gray {
	color: #e9e9e9;
	border: solid 1px #555;
	background: #6e6e6e;
	background: -webkit-gradient(linear, left top, left bottom, from(#888), to(#575757));
	background: -moz-linear-gradient(top,  #888,  #575757);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#888888', endColorstr='#575757');
}
.gray:hover {
	background: #616161;
	background: -webkit-gradient(linear, left top, left bottom, from(#757575), to(#4b4b4b));
	background: -moz-linear-gradient(top,  #757575,  #4b4b4b);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#757575', endColorstr='#4b4b4b');
}
.gray:active {
	color: #afafaf;
	background: -webkit-gradient(linear, left top, left bottom, from(#575757), to(#888));
	background: -moz-linear-gradient(top,  #575757,  #888);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#575757', endColorstr='#888888');
}

/* white */
.white {
	color: #606060;
	border: solid 1px #b7b7b7;
	background: #fff;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
	background: -moz-linear-gradient(top,  #fff,  #ededed);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed');
}
.white:hover {
	background: #ededed;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#dcdcdc));
	background: -moz-linear-gradient(top,  #fff,  #dcdcdc);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dcdcdc');
}
.white:active {
	color: #999;
	background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#fff));
	background: -moz-linear-gradient(top,  #ededed,  #fff);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#ffffff');
}

/* orange */
.orange {
	color: #fef4e9;
	border: solid 1px #da7c0c;
	background: #f78d1d;
	background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20));
	background: -moz-linear-gradient(top,  #faa51a,  #f47a20);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
}
.orange:hover {
	background: #f47c20;
	background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015));
	background: -moz-linear-gradient(top,  #f88e11,  #f06015);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015');
}
.orange:active {
	color: #fcd3a5;
	background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a));
	background: -moz-linear-gradient(top,  #f47a20,  #faa51a);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a');
}

/* red */
.red {
	color: #faddde;
	border: solid 1px #980c10;
	background: #d81b21;
	background: -webkit-gradient(linear, left top, left bottom, from(#ed1c24), to(#aa1317));
	background: -moz-linear-gradient(top,  #ed1c24,  #aa1317);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ed1c24', endColorstr='#aa1317');
}
.red:hover {
	background: #b61318;
	background: -webkit-gradient(linear, left top, left bottom, from(#c9151b), to(#a11115));
	background: -moz-linear-gradient(top,  #c9151b,  #a11115);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#c9151b', endColorstr='#a11115');
}
.red:active {
	color: #de898c;
	background: -webkit-gradient(linear, left top, left bottom, from(#aa1317), to(#ed1c24));
	background: -moz-linear-gradient(top,  #aa1317,  #ed1c24);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#aa1317', endColorstr='#ed1c24');
}

/* blue */
.blue {
	color: #d9eef7;
	border: solid 1px #0076a3;
	background: #0095cd;
	background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
	background: -moz-linear-gradient(top,  #00adee,  #0078a5);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
}
.blue:hover {
	background: #007ead;
	background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));
	background: -moz-linear-gradient(top,  #0095cc,  #00678e);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');
}
.blue:active {
	color: #80bed6;
	background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
	background: -moz-linear-gradient(top,  #0078a5,  #00adee);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');
}

/* rosy */
.rosy {
	color: #fae7e9;
	border: solid 1px #b73948;
	background: #da5867;
	background: -webkit-gradient(linear, left top, left bottom, from(#f16c7c), to(#bf404f));
	background: -moz-linear-gradient(top,  #f16c7c,  #bf404f);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f16c7c', endColorstr='#bf404f');
}
.rosy:hover {
	background: #ba4b58;
	background: -webkit-gradient(linear, left top, left bottom, from(#cf5d6a), to(#a53845));
	background: -moz-linear-gradient(top,  #cf5d6a,  #a53845);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#cf5d6a', endColorstr='#a53845');
}
.rosy:active {
	color: #dca4ab;
	background: -webkit-gradient(linear, left top, left bottom, from(#bf404f), to(#f16c7c));
	background: -moz-linear-gradient(top,  #bf404f,  #f16c7c);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#bf404f', endColorstr='#f16c7c');
}

/* green */
.green {
	color: #e8f0de;
	border: solid 1px #538312;
	background: #64991e;
	background: -webkit-gradient(linear, left top, left bottom, from(#7db72f), to(#4e7d0e));
	background: -moz-linear-gradient(top,  #7db72f,  #4e7d0e);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#7db72f', endColorstr='#4e7d0e');
}
.green:hover {
	background: #538018;
	background: -webkit-gradient(linear, left top, left bottom, from(#6b9d28), to(#436b0c));
	background: -moz-linear-gradient(top,  #6b9d28,  #436b0c);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#6b9d28', endColorstr='#436b0c');
}
.green:active {
	color: #a9c08c;
	background: -webkit-gradient(linear, left top, left bottom, from(#4e7d0e), to(#7db72f));
	background: -moz-linear-gradient(top,  #4e7d0e,  #7db72f);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#4e7d0e', endColorstr='#7db72f');
}

/* pink */
.pink {
	color: #feeef5;
	border: solid 1px #d2729e;
	background: #f895c2;
	background: -webkit-gradient(linear, left top, left bottom, from(#feb1d3), to(#f171ab));
	background: -moz-linear-gradient(top,  #feb1d3,  #f171ab);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#feb1d3', endColorstr='#f171ab');
}
.pink:hover {
	background: #d57ea5;
	background: -webkit-gradient(linear, left top, left bottom, from(#f4aacb), to(#e86ca4));
	background: -moz-linear-gradient(top,  #f4aacb,  #e86ca4);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4aacb', endColorstr='#e86ca4');
}
.pink:active {
	color: #f3c3d9;
	background: -webkit-gradient(linear, left top, left bottom, from(#f171ab), to(#feb1d3));
	background: -moz-linear-gradient(top,  #f171ab,  #feb1d3);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f171ab', endColorstr='#feb1d3');
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/css/css3-buttons-quick-and-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quickly turn on error reporting to see errors.</title>
		<link>http://web2.0goodies.com/blog/php5/quickly-turn-on-error-reporting-to-see-errors/</link>
		<comments>http://web2.0goodies.com/blog/php5/quickly-turn-on-error-reporting-to-see-errors/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 19:45:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=208</guid>
		<description><![CDATA[I frequently run into a page where php isn&#8217;t displaying errors&#8230; A quick way to turn them on without changing the php.ini file is: error_reporting(E_ALL &#038; ~E_DEPRECATED); ini_set('display_errors', 'on'); Note: This will not show compile / fatal errors, as the page won&#8217;t even run, but if it&#8217;s just a regular non syntax related error, it [...]]]></description>
			<content:encoded><![CDATA[<p>I frequently run into a page where php isn&#8217;t displaying errors&#8230;  A quick way to turn them on without changing the php.ini file is:</p>
<pre class="code">
error_reporting(E_ALL &#038; ~E_DEPRECATED);

ini_set('display_errors', 'on');
</pre>
<p><strong>Note:</strong> This will not show compile / fatal errors, as the page won&#8217;t even run, but if it&#8217;s just a regular non syntax related error, it will not be displayed.</p>
<p><strong>Update</strong> Thanks for the way to remove deprecated warnings Jacob. </p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/php5/quickly-turn-on-error-reporting-to-see-errors/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generating Documentation from XML using xslt</title>
		<link>http://web2.0goodies.com/blog/php5/generating-documentation-from-xml-using-xslt/</link>
		<comments>http://web2.0goodies.com/blog/php5/generating-documentation-from-xml-using-xslt/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 18:15:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=202</guid>
		<description><![CDATA[When I worked at Infusionsoft I re-cycled some code I used to generate a php sdk into code that would generate documentation for the API, it wasn&#8217;t pretty but since I didn&#8217;t get official time to do it that&#8217;s what happens. I left the company, but fortunately Vivin Paliath is actively maintaining the auto-generation of [...]]]></description>
			<content:encoded><![CDATA[<p>When I worked at Infusionsoft I re-cycled some code I used to generate a php sdk into code that would generate documentation for the API, it wasn&#8217;t pretty but since I didn&#8217;t get official time to do it that&#8217;s what happens.  I left the company, but fortunately Vivin Paliath is actively maintaining the auto-generation of the documentation using xslt, see: <a href="http://networkedblogs.com/kco7J">http://networkedblogs.com/kco7J</a>  Now, if he gets it Mavenized, and part of the formal build process than it will be the icing on the cake for all of us Infusionsoft API developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/php5/generating-documentation-from-xml-using-xslt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baking Cake Controllers and Views</title>
		<link>http://web2.0goodies.com/blog/php5/baking-cake-controllers-and-views/</link>
		<comments>http://web2.0goodies.com/blog/php5/baking-cake-controllers-and-views/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 23:42:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/php5/baking-cake-controllers-and-views/</guid>
		<description><![CDATA[Scaffold is awesome!&#160; It genereates everything you need for CRUD, and is fully customizeable&#8230; To use it do&#8230; cake bake controller {controllername} scaffold&#160;&#160; (NOT scaffolding) To make the views cake bake view {controllername} Viola!&#160; Instant coolness.]]></description>
			<content:encoded><![CDATA[<p>Scaffold is awesome!&nbsp; It genereates everything you need for CRUD, and is fully customizeable&#8230;</p>
<p>To use it do&#8230;</p>
<p>cake bake controller {controllername} scaffold&nbsp;&nbsp; <b>(NOT scaffolding)</b></p>
<p>To make the views</p>
<p>cake bake view {controllername}</p>
<p>Viola!&nbsp; Instant coolness.</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/php5/baking-cake-controllers-and-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting the profile picture for an email address via gravatar!!</title>
		<link>http://web2.0goodies.com/blog/php/getting-the-profile-picture-for-an-email-address-via-gravatar/</link>
		<comments>http://web2.0goodies.com/blog/php/getting-the-profile-picture-for-an-email-address-via-gravatar/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 04:03:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://web2.0goodies.com/blog/?p=194</guid>
		<description><![CDATA[A Gravatar is a picture associated with an email address. It is a brilliant system that allows anyone anywhere to create a photo to be associated with an email address they have (gravatar.com verifies the email address before allowing them to edit the picture). And then makes this photo publicly accessible to anyone! (See: http://en.gravatar.com/site/implement/hash/) [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://en.gravatar.com/">Gravatar</a> is a picture associated with an email address.  It is a brilliant system that allows anyone anywhere to create a photo to be associated with an email address they have (gravatar.com verifies the email address before allowing them to edit the picture).  And then makes this photo publicly accessible to anyone! (See: <a href="http://en.gravatar.com/site/implement/hash/">http://en.gravatar.com/site/implement/hash/</a>) for full details).</p>
<p>All you do to get the image associated with an email address is compose a url.</p>
<p>Just take the email address, trim any whitespace off the ends, make it all lower case, md5 it, and the url is:</p>
<p>http://www.gravatar.com/avatar/hash</p>
<p>So, php code to do this is:</p>
<pre name="code" class="php">
$emailAddress = 'Bob.cOOl@example.com';
$url = 'http://www.gravatar.com/avatar/' . md5(strtolower(trim($emailAddress)));
</pre>
<p>You can also add a size parameter to the url to get a specific size&#8230;  i.e.</p>
<pre name="code" class="php">
$emailAddress = 'Bob.cOOl@example.com';
$size = 177;
$url = 'http://www.gravatar.com/avatar/' . md5(strtolower(trim($emailAddress))) . '?size=' . $size;
</pre>
<p>Awesome huh?</p>
<p>Check out this link for more you can do: <a href="http://en.gravatar.com/site/implement/hash/">http://en.gravatar.com/site/implement/hash/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0goodies.com/blog/php/getting-the-profile-picture-for-an-email-address-via-gravatar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

