<?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>Gregg Hilferding &#187; Signal</title>
	<atom:link href="http://www.whoisgregg.com/blog/category/signal/feed" rel="self" type="application/rss+xml" />
	<link>http://www.whoisgregg.com/blog</link>
	<description>Web Development, Apple Stuff, and More</description>
	<lastBuildDate>Thu, 29 Apr 2010 23:19:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>This Is Long Overdue.</title>
		<link>http://www.whoisgregg.com/blog/2010/04/this-is-long-overdue.html</link>
		<comments>http://www.whoisgregg.com/blog/2010/04/this-is-long-overdue.html#comments</comments>
		<pubDate>Thu, 29 Apr 2010 23:19:52 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Signal]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=510</guid>
		<description><![CDATA[I've made some additions to my /etc/hosts file:

66.135.33.106 gizmodo.com
66.135.33.106 experts-exchange.com
66.135.33.106 techcrunch.com

I already avoid reading these sites since I dislike their business practices. But search engines I use and people I know keep linking to these sites despite my opinions. ;)

When I click those links without realizing the destination, I twinge imagining that I've contributed even [...]]]></description>
			<content:encoded><![CDATA[<p>I've made some additions to my <a href="http://en.wikipedia.org/wiki/Hosts_file">/etc/hosts file</a>:</p>

<p><code>66.135.33.106 gizmodo.com<br />
66.135.33.106 experts-exchange.com<br />
66.135.33.106 techcrunch.com</code></p>

<p>I already avoid reading these sites since I <a href="http://www.marco.org/438103070">dislike their business practices</a>. But search engines I use and people I know keep linking to these sites despite my opinions. ;)</p>

<p>When I click those links without realizing the destination, I twinge imagining that I've contributed even 1¢ to any of these sites by loading a CPM ad.</p>

<p><em>Never again.</em></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2010/04/this-is-long-overdue.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>First Kiva, Now Kickstarter.</title>
		<link>http://www.whoisgregg.com/blog/2010/03/first-kiva-now-kickstarter.html</link>
		<comments>http://www.whoisgregg.com/blog/2010/03/first-kiva-now-kickstarter.html#comments</comments>
		<pubDate>Fri, 26 Mar 2010 14:00:30 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Signal]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=505</guid>
		<description><![CDATA[Group-financing for art projects. And, most of them have a cool reward for different levels of support! Here are the projects I'm backing to get started. If they all get funded, I'll get the following rewards:


    Thank-You card and i3 Detroit sticker
    Handmade postcard
    Exclusive Akimenko [...]]]></description>
			<content:encoded><![CDATA[<p>Group-financing for art projects. And, most of them have a cool reward for different levels of support! <a href="http://www.kickstarter.com/profile/158200699">Here are the projects I'm backing to get started.</a> If they all get funded, I'll get the following rewards:</p>

<ul>
    <li>Thank-You card and i3 Detroit sticker</li>
    <li>Handmade postcard</li>
    <li>Exclusive Akimenko Meats Cookbook</li>
</ul>

<p>Between this and <a href="http://www.kiva.org/lender/whoisgregg">my Kiva loans</a>, I think I'll always be able to put my disposable income to good use. :)</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2010/03/first-kiva-now-kickstarter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New From Google: LessTraffic™</title>
		<link>http://www.whoisgregg.com/blog/2010/01/new-from-google-less-traffic.html</link>
		<comments>http://www.whoisgregg.com/blog/2010/01/new-from-google-less-traffic.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 20:25:54 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Signal]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=483</guid>
		<description><![CDATA[From the Google Blog:


Answer highlighting in search results

Consider the example, [empire state height]. With today's improvements, the answer —1250 ft, or 381 m — is highlighted right in the search result:



This might be cool for Wikipedia, but it totally screws every other website owner.

If you have a website that deals with anything Google's algorithm has [...]]]></description>
			<content:encoded><![CDATA[<p>From the <a href="http://googleblog.blogspot.com/2010/01/understanding-web-to-make-search-more.html">Google Blog</a>:</p>

<blockquote>
<p><strong>Answer highlighting in search results</strong></p>

<p>Consider the example, [empire state height]. With today's improvements, the answer —1250 ft, or 381 m — is highlighted right in the search result:</p>

<img class="alignnone size-full wp-image-484" title="Google Answer Highlighting" src="http://www.whoisgregg.com/blog/wp-content/uploads/2010/01/rs2.png" alt="Google Answer Highlighting" width="555" height="88" /></blockquote>

<p>This <em>might</em> be cool for Wikipedia, but it <em>totally screws</em> every other website owner.</p>

<p>If you have a website that deals with anything Google's algorithm has decided is a "fact" then watch out, your traffic is about to drop. Google's destroyed a lot of niche online markets but this is a broad attack against all sites.</p>

<p>The future of this feature is that you never have to leave Google at all.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2010/01/new-from-google-less-traffic.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Micro-Lending to Change the World</title>
		<link>http://www.whoisgregg.com/blog/2010/01/micro-lending-to-change-the-world.html</link>
		<comments>http://www.whoisgregg.com/blog/2010/01/micro-lending-to-change-the-world.html#comments</comments>
		<pubDate>Sat, 02 Jan 2010 23:33:32 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Signal]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=472</guid>
		<description><![CDATA[Back in January I helped make a loan to Nosirova Uguljon so that she could buy a greater range of goods for her childrens' clothing business. Nosirova's business is in Kanibadam, Tajikistan. (Tajikistan is the poorest of the former Soviet republics.) Her daughter helps with the business:

Entrepreneurs like Nosirova are the key to building the economy [...]]]></description>
			<content:encoded><![CDATA[<p>Back in January I helped make <a href="http://www.kiva.org/app.php?page=businesses&amp;action=about&amp;id=86044">a loan to Nosirova Uguljon</a> so that she could buy a greater range of goods for her childrens' clothing business. Nosirova's business is in Kanibadam, Tajikistan. (Tajikistan is the poorest of the former Soviet republics.) Her daughter helps with the business:</p>

<p><div id="attachment_471" class="wp-caption aligncenter" style="width: 460px"><a rel="attachment wp-att-471" href="http://www.whoisgregg.com/blog/2010/01/micro-lending-to-change-the-world.html/attachment/262236"><img class="size-full wp-image-471 " title="Nosirova Uguljon's Daughter" src="http://www.whoisgregg.com/blog/wp-content/uploads/2010/01/262236.jpg" alt="Nosirova Uguljon's Daughter" width="450" height="338" /></a><p class="wp-caption-text">Nosirova Uguljon&#39;s Daughter</p></div></p>

<p>Entrepreneurs like Nosirova are the key to building the economy in poverty stricken areas like Tajikistan. Plus, her daughter represents a better future for their family and community. Although the total loan amount was $1,200, it only took $25 of my money to help support this business. I was able to join with 37 other lenders to support Nosirova's business through the microfinance site, <a href="http://www.kiva.org/"><strong>Kiva</strong></a>.</p>

<p><div id="attachment_473" class="wp-caption alignright" style="width: 236px"><a rel="attachment wp-att-473" href="http://www.whoisgregg.com/blog/2010/01/micro-lending-to-change-the-world.html/attachment/430236"><img class="size-full wp-image-473" title="Alice Indangasi Shabola" src="http://www.whoisgregg.com/blog/wp-content/uploads/2010/01/430236.jpg" alt="Alice Indangasi Shabola" width="226" height="127" /></a><p class="wp-caption-text">Alice Indangasi Shabola</p></div></p>

<p>She's already paid back her loan and I've turned around the $25 and loaned it to <a href="http://www.kiva.org/app.php?page=businesses&amp;action=about&amp;id=155078">Alice Indangasi Shabola for her clothing business in Kenya</a>. That $25 now represents <em>$50 of economic impact</em> to businesses in developing countries. When Alice pays back her loan, I'll loan that money out again to yet another business. You can see what kind of long-term effect just $25 can have on Kiva.</p>

<p>Of course, once you've made one loan, you want to make more. :) Here's <a href="http://www.kiva.org/lender/whoisgregg">my lending page on Kiva showing all the loans I've made</a>.</p>

<p><strong>I hope you'll find $25 to loan through Kiva and have a real impact decreasing poverty around the world.</strong></p>

<div style="text-align: center; margin: 0 auto;"><script src="http://www.kiva.org/banners/bannerBlock.php" type="text/javascript"></script></div>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2010/01/micro-lending-to-change-the-world.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>expandUrl Passes 11,000 Mark (at Least)</title>
		<link>http://www.whoisgregg.com/blog/2009/12/expandurl-passes-11000-mark-at-least.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/12/expandurl-passes-11000-mark-at-least.html#comments</comments>
		<pubDate>Fri, 04 Dec 2009 20:27:48 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Signal]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=464</guid>
		<description><![CDATA[Since announcing the launch of expandUrl and fixing the few bugs that cropped up in the first week or so, I have barely given the service a second thought. The API works incredibly well for my own sites which take advantage of it.

Today, after receiving a report that the service was unavailable last night, I [...]]]></description>
			<content:encoded><![CDATA[<p>Since <a href="http://www.whoisgregg.com/blog/2009/04/introducing-expandurl-redirect-resolution-for-the-rest-of-us.html">announcing the launch of expandUrl</a> and fixing the few bugs that cropped up in the first week or so, I have barely given the service a second thought. The API works incredibly well for my own sites which take advantage of it.</p>

<p>Today, after receiving a report that the service was unavailable last night, I took another look at it. Still not sure why it went down, but while I was working on it I've added some basic logging (for troubleshooting purposes) and looked around the internet to see if people are using the service.</p>

<p>Since logging was never included in the first place, the only way to surface a reasonable count of URLs was to count the cache files. Since cache files are programatically deleted, I was pretty shocked to find over 11,000 files in that directory. Now that I have actually logging in place, the site displays a counter. Today's count? <strong>11,411 URLs expanded!</strong></p>

<p>Of course, people only know about the service because of the folks who have helped spread the word about it! Thank you to all these folks for mentioning expandUrl:</p>

<ul>
    <li><a href="http://blog.brasilacademico.com/2009/10/como-expandir-links-no-twitter.html">Blog Brasil Academico</a> "If you prefer a cleaner and more free advertising try expandurl.com."</li>
    <li><a href="http://twitter.com/troysabin/status/1865495529">Troy Sabin</a> "The Yang to the URL shortener Yin - URL expanders"</li>
    <li><a href="http://freenuts.com/top-10-websites-to-expand-any-short-url/">Free Nuts</a> #2 in their top ten URL expanders list!</li>
    <li><a href="http://borrowedcode.com/?p=158">Borrowed Code</a> Mentioned as part of a blog entry about fighting Twitter spam.</li>
    <li><a href="http://mrhaoji.cn/blog/?p=408">Benny Chen</a> "<span style="background-color: #ffffff;" title="????????????,???????????????????;">After failing to find a good solution, a short address before the humble beginning to run out to restore the service; </span><span style="background-color: #ffffff;" title="??????????????!">Can only say that a group of prescient people, ah!</span>"</li>
    <li><a href="http://blog.nullvariable.com/2009/11/do-you-know-where-that-short-link-goes/#dsq-comment-23961509">Kate Morris</a> "There is another useful tool available - http://www.expandurl.com - it shows you not only where it goes, but how many times it is redirected and how. :) Not my tool, but a friend built it."</li>
</ul>

<p>Finally, I discovered a Google Code project that <a href="http://code.google.com/p/ellab-gm/source/detail?r=170">integrates the expandurl API</a> into Google Chrome. This is very cool to me, as it means the service will be used by lots of folks (even if they don't know they're using it!). :)</p>

<p>Not too shabby for 221 days in. ;)</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2009/12/expandurl-passes-11000-mark-at-least.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bing!</title>
		<link>http://www.whoisgregg.com/blog/2009/05/bing.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/05/bing.html#comments</comments>
		<pubDate>Thu, 28 May 2009 21:53:21 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Signal]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=367</guid>
		<description><![CDATA[What sound does a pinball machine make?

Bing, ba-bing, bing bing, ba-bing!



Fruitless perhaps, but worth the effort nonetheless. ;)
Copyright &#169; 2010 Gregg Hilferding. This feed is for personal non-commercial use only.]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: center;">What sound does a pinball machine make?</h2>

<p style="text-align: center;"><a href="http://www.bingsurf.com/">Bing</a>, ba-<a href="http://money.cnn.com/magazines/fortune/stanleybing/">bing</a>, <a href="http://en.wikipedia.org/wiki/Bing_Crosby">bing</a> <a href="http://www.binggroup.com/">bing</a>, ba-<a href="http://bosp.stanford.edu/">bing</a>!</p>

<p style="text-align: center;"><a href="http://www.whoisgregg.com/blog/2009/05/bing.html"><img class="aligncenter size-full wp-image-369" title="Pinball Targets" src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/05/istock_000006783566xsmall.jpg" alt="Pinball Targets" width="425" height="282" /></a></p>

<p style="text-align: center;">Fruitless perhaps, but worth the effort nonetheless. ;)</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2009/05/bing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing for Facebook Share Preview</title>
		<link>http://www.whoisgregg.com/blog/2009/05/optimizing-for-facebook-share-preview.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/05/optimizing-for-facebook-share-preview.html#comments</comments>
		<pubDate>Thu, 07 May 2009 12:54:58 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Signal]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=238</guid>
		<description><![CDATA[Background Story

One of the web applications I've built here at work allows users to make cool t-shirt designs and then share those designs online. Since this is an intended use, we go ahead and provide some share buttons for the big social networks. One of those buttons hooks into Facebook.

I got an email from the [...]]]></description>
			<content:encoded><![CDATA[<h2>Background Story</h2>

<p>One of the web applications I've built here at work allows users to make cool t-shirt designs and then share those designs online. Since this is an intended use, we go ahead and provide some share buttons for the big social networks. One of those buttons hooks into Facebook.</p>

<p>I got an email from the boss recently asking if we could optimize the images that Facebook displays to the user. I had checked this at the beginning, but obviously something had changed. So when someone wants to share <a href="http://t-shirts.getyourshirts.com/designs/1973;public">their funny family reunion t-shirt design</a> on Facebook, this is the first thing they see:</p>

<p><a rel="attachment wp-att-242" href="http://www.whoisgregg.com/blog/2009/05/optimizing-for-facebook-share-preview.html/bad-facebook"><img class="aligncenter size-full wp-image-242" title="Bad Facebook Preview" src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/05/bad-facebook.png" alt="Bad Facebook Preview" width="360" height="189" /></a></p>

<p>Obviously, a "Secured by Thawte" badge is not ideal. Neither is that description which is basically disclaimer text. :(  It takes paging through the first 5 of 8 images before you get to one that is actually an image unique to that t-shirt design. This could use some optimizing, but how does Facebook choose what to show?</p>

<h2>Facebook Says ...</h2>

<p>If you read their <a href="http://www.facebook.com/share_partners.php">official recommendations</a> <em>(you'll have to click on "How do I make sure the Share Preview works?" to see the details)</em>, you'll see they use the standard <code>&lt;meta&gt;</code> description tag as well as introducing two new tag standards; a  <em>title meta</em> tag and an<em> image_src</em> link tag. <a href="http://digg.com/tools/thumbnails">Digg even supports</a> the new link tag. But how does it work? And, will it work for me?</p>

<p>The only way to answer this was to do some testing. Because Facebook caches each URL, I had to setup 22 different test pages to iterate through all of my initial questions and questions revealed by testing different variations. Rather than bore you with the play-by-play, let's skip straight to the results. :)</p>

<h2>Facebook Preview Facts</h2>

<ol>
    <li>Facebook sends a robot to visit the URL, with a User Agent string of
"facebookexternalhit/1.0 (+<a href="http://www.facebook.com/externalhit_uatext.php">http://www.facebook.com/externalhit_uatext.php</a>)"</li>
    <li>If you provide a <code>&lt;meta&gt;</code> title and description tag, Facebook always displays the content you provide. If not ...
<ul>
    <li>If you don't provide a <code>&lt;meta&gt;</code> title, Facebook will use your real <code>&lt;title&gt;</code> tag.</li>
    <li>If you don't provide a <code>&lt;title&gt;</code> tag or a <code>&lt;meta&gt;</code> title, Facebook will use your domain name (e.g. "whoisgregg.com").</li>
    <li>Title length limit is 100 characters. Description length limit is 270 characters. If you exceed the limit, Facebook chops the text exactly at the limit and adds an ellipse.</li>
    <li>UTF-8 characters are supported for both title and description.</li>
</ul>
</li>
    <li>If you provide a <code>&lt;link rel="image_src"&gt;</code> tag
<ul>
    <li>Facebook ignores all the other images on the page.</li>
</ul>
<ul>
    <li>If the image tagged is smaller than the lower limit of 50 x 50 pixels, then no image is offered at all.</li>
</ul>
</li>
    <li>If you don't provide a <code>&lt;link rel="image_src"&gt;</code> tag, Facebook scans the document for normal <code>&lt;img src="..."&gt;</code> tags and then displays;
<ul>
    <li>up to 26 images to the user,</li>
    <li>where the width and height of the image are each 50 pixels or greater (tested with images as large as 3504 x 2336)</li>
    <li>in order of image dimension (smallest to largest) regardless of source order,</li>
    <li>ignoring CSS declarations which would hide the image to a normal user (display:none; either inline or in the stylesheet),</li>
    <li>ignoring images which are inside of CSS (inline and stylesheets), Javascript (document.write and DOM), or inside of HTML comments.</li>
</ul>
</li>
    <li>If you don't provide a <code>&lt;meta&gt;</code> description, Facebook looks for a text snippet from the page that is inside of a <code>&lt;p&gt;</code> tag and which is at least 121 characters in length. If it can't find a matching string, it doesn't display any snippet at all.</li>
</ol>

<h2>Facebook Share Optimization Tips</h2>

<p>With these observations in mind, you should always provide an optimized <code>&lt;meta&gt;</code> title and description tag for each page. If your page only has one logical image, then you should also provide the <code>&lt;link rel="image_src"&gt;</code> tag.</p>

<p>However, if you want to give your user a choice of images, you can easily provide images just for facebook previews. Define a class in your stylesheet like <code>img.facebook { display: none; }</code> and then add a series of <code>&lt;img class="facebook" src="/path/to/img.jpg" /&gt;</code> pointing to images that are at least 50x50 pixels (but not much larger, so that they will appear before the other images on the page).</p>

<p>If you want to make sure your other images do not appear in Facebook's Share feature (but are still visible to your regular visitors), you'll need to change them to either CSS background images or dynamically insert them using Javascript.</p>

<p>Follow these tips and you'll have users posting much more effective links:</p>

<p style="text-align: center;"><a rel="attachment wp-att-357" href="http://www.whoisgregg.com/blog/2009/05/optimizing-for-facebook-share-preview.html/share-optimized-2"><img class="aligncenter size-full wp-image-357" title="Share Optimized" src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/05/share-optimized-2.png" alt="share-optimized-2" width="360" height="164" /></a></p>

<p style="text-align: left;"><strong>Update 2009/05/15: </strong><a href="http://twitter.com/youfoundjake/status/1802902000">Jake noticed today</a> that Facebook is now automatically opening the preview feature anytime a person types a URL into their status. This isn't a rarely used feature anymore.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2009/05/optimizing-for-facebook-share-preview.html/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Introducing expandUrl, Redirect Resolution for the Rest of Us</title>
		<link>http://www.whoisgregg.com/blog/2009/04/introducing-expandurl-redirect-resolution-for-the-rest-of-us.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/04/introducing-expandurl-redirect-resolution-for-the-rest-of-us.html#comments</comments>
		<pubDate>Mon, 27 Apr 2009 11:30:35 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Signal]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=211</guid>
		<description><![CDATA[To solve a problem I describe in detail below, I recently created a new site called expandUrl. The expandUrl™ service does a few things very well:


Tells you the "real" URL of any shortened URL (regardless of what service provides it).
Gives technical types the redirect codes involved in all the redirects for any particular link.
Discovers both [...]]]></description>
			<content:encoded><![CDATA[<p>To solve a problem I describe in detail below, I recently created a new site called <a href="http://expandurl.com">expandUrl</a>. The expandUrl™ service does a few things very well:</p>

<ul>
<li>Tells you the "real" URL of any shortened URL (regardless of what service provides it).</li>
<li>Gives technical types the redirect codes involved in all the redirects for any particular link.</li>
<li>Discovers both canonical and shorturl data for the final expanded URL.</li>
<li>Offers a fast API for quickly finding the expanded URL (and a less fast API for getting the same detailed data that is available from the web interface).</li>
</ul>

<p><strong>Heard enough?</strong> Go check it out:</p>

<p><a title="Use expandUrl™ to find the true URL" href="http://expandurl.com/"><img class="aligncenter size-full wp-image-220" style="max-width: 80%; height: auto;" title="expandurl" src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/04/expandurl-big.png" alt="expandurl" /></a></p>

<p>The expandUrl™ site was built to fix a specific problem I recently discovered on one of my other sites, so you can be confident that expandUrl™ has been tested on a sample set of a couple thousand real-life URLs. However, the total number of hours I've spent building expandUrl™ can still be counted on one hand so you are bound to discover some edge cases which I haven't encountered.</p>

<p>I appreciate all bug reports to be posted below. Security concerns should also be posted here, but I will pre-moderate those until they are fixed. (Not to hide them, but to give me the opportunity to fix them before they are exploited.)</p>

<h3>Eating my own dog food</h3>

<p>I run a site which aggregates RSS feeds from a few dozen different sources. One of the included sites accidentally let their domain name expire and had to move to a new domain name. This particular site also hosted their RSS feed with Feedburner.</p>

<p>When the site changed domain all the URLs were broken. You may be thinking, "Well, duh. There's nothing you can do to fix that." In this scenario however, the original site owner simply changed domain names. All of the old URLs would map perfectly to the new domain name:</p>

<blockquote>
  <p><strong>Old:</strong> http://example.com/blog/2007/04/post.html</p>
  
  <p><strong>New:</strong> http://example.org/blog/2007/04/post.html</p>
</blockquote>

<p>If I had stored the actual URLs, I could simply do a <a href="http://dev.mysql.com/doc/refman/5.0/en/replace.html">REPLACE in the database</a>. However, since I stored the Feedburner URLs in my database, it would be impossible for me to do so. That's because Feedburner obfuscates the actual URL data:</p>

<blockquote>
  <p><strong>Actual URL:</strong> http://example.com/blog/2007/04/post.html</p>
  
  <p><strong>Feedburner URL:</strong> http://feeds.feedburner.com/~r/exampleblog/epRL/~3/745213668/post.html</p>
</blockquote>

<p>I quickly built <a href="http://expandurl.com/">expandUrl</a> so that I could resolve any URL (be it a short url, tracking script, or feed redirect) to the actual URL. I then ran an automated script to determine the relative link on the old domain, replaced the old domain with the new domain, and updated the database accordingly. An hour or so later, and all those posts are now fixed.</p>

<p>I ran this script against the entire database of URLs to go ahead and resolve any other redirects found. I made an interesting discovery. Many of the RSS feed services will generate multiple redirect URLs for the same blog post permalink. My database had a UNIQUE index on the URL field as a means of preventing the same post from showing up multiple times, but it turned out the feed services were inadvertently circumventing that "protection."</p>

<p>In the end, integrating expandUrl has cleaned over 300 duplicate URLs from my database and helped improve the future maintainability of the link data the site has collected.</p>

<p>If you find expandUrl™ helpful, I'd love to hear about it! :)</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2009/04/introducing-expandurl-redirect-resolution-for-the-rest-of-us.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Biz Stone on Google Swallowing Twitter</title>
		<link>http://www.whoisgregg.com/blog/2009/04/biz-stone-on-google-swallowing-twitter.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/04/biz-stone-on-google-swallowing-twitter.html#comments</comments>
		<pubDate>Wed, 22 Apr 2009 19:15:53 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Signal]]></category>
		<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=208</guid>
		<description><![CDATA[Via Daring Fireball, I found this particular answer from Twitter founder Biz Stone most intriguing:

ME: Don’t you get worried about being swallowed up by Google? 

BIZ: They don’t swallow you up. They call you up.

To me, being called up was what happened when the Army sent my unit to Iraq. I suspect Biz has a [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://daringfireball.net/linked/2009/04/22/dowd-twitter">Daring Fireball</a>, I found this particular <a href="http://www.nytimes.com/2009/04/22/opinion/22dowd.html?partner=rss&amp;emc=rss&amp;pagewanted=all">answer from Twitter founder Biz Stone</a> most intriguing:</p>

<blockquote>ME: Don’t you get worried about being swallowed up by Google? <br />
<br />
BIZ: They don’t swallow you up. They call you up.</blockquote>

<p>To me, being called up was what happened when the Army sent my unit to Iraq. I suspect Biz has a different meaning.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2009/04/biz-stone-on-google-swallowing-twitter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>By a Googler</title>
		<link>http://www.whoisgregg.com/blog/2009/02/by-a-googler.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/02/by-a-googler.html#comments</comments>
		<pubDate>Tue, 17 Feb 2009 13:47:47 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Signal]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=156</guid>
		<description><![CDATA[This is going to be a very influential piece.

Free speech is no longer just a right granted by law, but one imbued by technology.

Couldn't agree more.
Copyright &#169; 2010 Gregg Hilferding. This feed is for personal non-commercial use only.]]></description>
			<content:encoded><![CDATA[<p><a href="http://googleblog.blogspot.com/2009/02/from-height-of-this-place.html">This</a> is going to be a very influential piece.</p>

<blockquote>Free speech is no longer just a right granted by law, but one imbued by technology.</blockquote>

<p>Couldn't agree more.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://www.whoisgregg.com/blog">Gregg Hilferding</a></strong>. This feed is for personal non-commercial use only.]]></content:encoded>
			<wfw:commentRss>http://www.whoisgregg.com/blog/2009/02/by-a-googler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
