<?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>Intellectual Pirates</title>
	<atom:link href="http://intellectualpirates.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://intellectualpirates.net</link>
	<description>iPirate 2.0</description>
	<lastBuildDate>Tue, 15 Dec 2009 22:44:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why the Dream of a Universal Avatar FAILS with Gravatar</title>
		<link>http://intellectualpirates.net/why-the-dream-of-a-universal-avatar-fails-with-gravatar/</link>
		<comments>http://intellectualpirates.net/why-the-dream-of-a-universal-avatar-fails-with-gravatar/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 22:21:00 +0000</pubDate>
		<dc:creator>antic</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[avatars]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[universal]]></category>
		<category><![CDATA[uploading]]></category>

		<guid isPermaLink="false">http://intellectualpirates.net/?p=1498</guid>
		<description><![CDATA[Let me start by saying that I love Gravatar.com&#8211;most of the time. They do one thing very well: Serving up an avatar based on an email address.
(skip below if you are just interested in why they FAIL)
How Gravatar Works
Anyone can sign up on Gravatar, upload images, crop them and associate them to 1 or more [...]]]></description>
			<content:encoded><![CDATA[<p>Let me start by saying that I love <a href="http://gravatar.com" target="gravatar">Gravatar.com</a>&#8211;most of the time. They do one thing very well: Serving up an avatar based on an email address.</p>
<p>(skip below if you are just interested in why they FAIL)</p>
<h2>How Gravatar Works</h2>
<p>Anyone can <a href="http://en.gravatar.com/site/signup">sign up</a> on Gravatar, upload images, crop them and associate them to 1 or more email addresses, which can then be accessed by 3rd party sites using a simple to generate URL:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;img</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;</span>
<span style="color: #009900;">http://gravatar.com/avatar.php?</span>
<span style="color: #009900;">gravatar_id=f83d1b99858682d4d567e8bf400a55b8</span>
<span style="color: #009900;">&amp;amp;rating=PG</span>
<span style="color: #009900;">&amp;amp;size=40</span>
<span style="color: #009900;">&amp;amp;default=identicon</span>
<span style="color: #009900;">&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Where f83d1b99858682d4d567e8bf400a55b8 is an md5() hash of my email address.</p>
<p>This outputs <img src="http://gravatar.com/avatar.php?gravatar_id=f83d1b99858682d4d567e8bf400a55b8&amp;rating=PG&amp;size=40&amp;default=identicon"/>, and if it couldn&#8217;t find my email address, it would have output <img alt="" src="http://gravatar.com/avatar.php?gravatar_id=f83d1b99858682&amp;rating=PG&amp;size=40&amp;default=identicon"/> (since I specified &#8216;identicon&#8217; as the default image if one could not be found). I could also have supplied a full URL to a default image of my own.</p>
<h3>Basic Implementation in PHP</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #009933; font-style: italic;">/**
* Gravatar
* Fetches a gravatar from the Gravatar website using the specified params
* @access  public
* @param   string $email The email address of the avatar to fetch
* @param   string $rating Defines a maximum rating for the image’s content. If the owner has flagged the image with a rating higher than that specified, the default image will instead be used. Acceptable values are G, PG, R, or X.
* @param   integer $size Defines the desired height and width of the image in pixels, with acceptable values being between 1 and 80. Specifying a size smaller than 80 will result in the original gravatar image to be downsampled using bicubic resampling before output.
* @param   string $default The default parameter allows you to specify the URL to an image that will be used as the default if the query fails to locate a gravatar for the given email address. Additionally, if a user’s gravatar exceeds the rating limit defined by the “rating” parameter, this is the image that will instead be shown.
        $default can also be 'identicon', 'monsterid', or 'wavatar'
* @return  string
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> gravatar<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$email</span><span style="color: #339933;">,</span> <span style="color: #000088;">$rating</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'X'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'80'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$default</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'identicon'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;http://gravatar.com/avatar.php?gravatar_id=&quot;</span>
        <span style="color: #339933;">.</span><span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;amp;rating=&quot;</span>
        <span style="color: #339933;">.</span><span style="color: #000088;">$rating</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;amp;size=&quot;</span>
        <span style="color: #339933;">.</span><span style="color: #000088;">$size</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;amp;default=&quot;</span>
        <span style="color: #339933;">.</span><span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$default</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Easily called as so:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;img</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;&lt;?=gravatar('email@domain.com')?&gt;</span></span>&quot; alt=&quot;avatar&quot; /&gt;</pre></div></div>

<h2>How Does it FAIL?</h2>
<p>I&#8217;m a Web Developer. I make websites&#8211;mostly social websites. It is imperative for these sites that users have a personal avatar. If they don&#8217;t, we provide a default dummy image and give them an opportunity to override it by uploading one of their own. This is VERY common on the web. Look at Twitter (they don&#8217;t use Gravatar). Every site with a profile allows users to upload an avatar.</p>
<p>Here&#8217;s the crux of the problem: None of these sites are going to tell their users to go create an account at Gravatar.com to upload an avatar. That&#8217;s just absurd. Why tell your users to leave the site if you don&#8217;t have to? If it&#8217;s easy enough to build your own solution without having to have your users go elsewhere to get the job done, companies will always roll their own avatar upload/crop/management system. </p>
<p>This is&#8230; stupid.</p>
<p>This is not what the dream calls for.</p>
<h2>The Solution</h2>
<p>Gravatar could (fairly) easily develop a developer system that allows 3rd party sites to use an embedded form of Gravatars upload/crop system to add images for email addresses that don&#8217;t have a Gravatar account. <strong>Hey, they are already doing this on WordPress.com!</strong> There are gobs of ways to do this. If they want to hire me, I&#8217;ll gladly build it for them. I&#8217;m sick of having to implement avatar upload/crop and management systems on my own&#8211;and it sucks to be able to use Gravatar only until they don&#8217;t have an email on file, at which point we have to have the user store an avatar on our servers&#8211;then the user goes to another site and they have to do it again&#8211;all because we will never tell them to create a gravatar account and gravatar will not allow us to upload an avatar for the user.</p>
]]></content:encoded>
			<wfw:commentRss>http://intellectualpirates.net/why-the-dream-of-a-universal-avatar-fails-with-gravatar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Filterable Life Plan / Timeline (PHP, jQuery, CSS)</title>
		<link>http://intellectualpirates.net/dynamic-filterable-life-plan-timeline-php-jquery-css/</link>
		<comments>http://intellectualpirates.net/dynamic-filterable-life-plan-timeline-php-jquery-css/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 23:17:15 +0000</pubDate>
		<dc:creator>antic</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[5 year plan]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[filterable]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[life plan]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://intellectualpirates.net/?p=1410</guid>
		<description><![CDATA[I just created my life plan (or the start of one anyway&#8211;I&#8217;ll be editing this thing for a while) and I figured I&#8217;d share with you the code used to make it.
My live updated version is on my Portfolio: The Future as I See It.
Demo

	show allcreative (1)education (1)fitness (2)social (2)travel (2)work (1)


    [...]]]></description>
			<content:encoded><![CDATA[