<?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; Social Media</title>
	<atom:link href="http://www.whoisgregg.com/blog/category/social-media/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>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>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>Social Media Marketing Strategy</title>
		<link>http://www.whoisgregg.com/blog/2009/04/social-media-marketing-strategy.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/04/social-media-marketing-strategy.html#comments</comments>
		<pubDate>Sun, 19 Apr 2009 21:53:02 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=167</guid>
		<description><![CDATA[During my preparation for a recent presentation on social media marketing, I spent a lot of time thinking about how the different sites work together, Twitter in particular.

My audience ranged from people with little or experience marketing online to people who are already actively managing multi-site social media campaigns. When I have to express something [...]]]></description>
			<content:encoded><![CDATA[<p>During my preparation for a recent presentation on social media marketing, I spent a lot of time thinking about how the different sites work together, Twitter in particular.</p>

<p>My audience ranged from people with little or experience marketing online to people who are already actively managing multi-site social media campaigns. When I have to express something that must inform the new as well as the experienced, I often create an info-graphic:</p>

<p><a href="http://www.whoisgregg.com/blog/2009/04/social-media-marketing-strategy.html/social-media-graph-export" rel="attachment wp-att-172"><img src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/04/social-media-graph-export.png" alt="How Twitter Fits into the Social Media Landscape" title="Social Media Graph" style="width: 90%; max-width: 728px; height: auto;" class="size-full wp-image-172" /></a></p>

<p>All the arrows that point from each social network to your website represents traffic. Twitter promotes your website but is also able to promote <em>some</em> of the other social networks as well. The key here is that <strong>your website must be the focus of your efforts</strong>.</p>

<p>You'll find many "Social Media Gurus" who will tell you that Twitter should be the center of this illustration, but the truth is that all your efforts should be generating qualified leads to your site. Too many social media plans look like this:</p>

<p><a href="http://www.whoisgregg.com/blog/2009/04/social-media-marketing-strategy.html/social-media-wrong-export2" rel="attachment wp-att-203"><img src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/04/social-media-wrong-export2.png" alt="Social Media FAIL" title="Social Media FAIL" style="width: 90%; max-width: 728px; height: auto;"  class="alignnone size-full wp-image-203" /></a></p>

<p>Whenever you find yourself focusing on Twitter follower count, your Facebook Page fan count, or how many views your latest YouTube video received, it's time to look at the two graphics above and ask yourself where your focus is. Most of all, remember that Twitter is just a tool to promote your own site and <em>all</em> your other efforts online.</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/social-media-marketing-strategy.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Gift to the World, Guy Kawasaki Minus the Alltop.</title>
		<link>http://www.whoisgregg.com/blog/2009/02/my-gift-to-the-world-guy-kawasaki-minus-the-alltop.html</link>
		<comments>http://www.whoisgregg.com/blog/2009/02/my-gift-to-the-world-guy-kawasaki-minus-the-alltop.html#comments</comments>
		<pubDate>Mon, 09 Feb 2009 21:20:50 +0000</pubDate>
		<dc:creator>Gregg Hilferding</dc:creator>
				<category><![CDATA[Signal]]></category>
		<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://www.whoisgregg.com/blog/?p=146</guid>
		<description><![CDATA[I'm not the only one who is frustrated by how often Guy posts about alltop. Guy's response to the criticism? "Unfriend me."

It's nice that he's honest about not changing, but it flies in the face of everything he says about listening to the customer. With "do as he says, not as he does" in mind, [...]]]></description>
			<content:encoded><![CDATA[<p>I'm not the only one who is <a href="http://twitter.com/kittell/status/1190862492">frustrated</a> <a href="http://twitter.com/dogflower/statuses/1185835278">by</a> <a href="http://twitter.com/fredjean/statuses/1185638892">how</a> <a href="http://twitter.com/DeepSpin/statuses/1175626427">often</a> Guy posts about alltop. Guy's response to the criticism? "<a href="http://search.twitter.com/search?q=from%3Aguykawasaki+UFM">Unfriend me.</a>"</p>

<p>It's nice that he's honest about not changing, but it flies in the face of <a href="http://blog.guykawasaki.com/2006/04/the_art_of_cust.html">everything</a> he <a href="http://blog.guykawasaki.com/2006/04/the_art_of_cust_1.html">says</a> about <a href="http://blog.guykawasaki.com/2006/03/the_art_of_driv.html">listening</a> to the customer. With "do as he says, not as he does" in mind, I offer to put his customer's back in control.</p>

<p>Announcing a twitter bot that retweets everything Guy Kawasaki tweets, as long as it doesn't contain "alltop."</p>

<p>Meet the <em>real</em> Guy Kawasaki: <a href="http://twitter.com/gk_minusalltop">http://twitter.com/gk_minusalltop</a></p>

<p>Caveats:</p>

<ol>
    <li>It's updated once a minute, so occasionally you'll be 1 minute behind the over 60,000 other people who want to know what's going on with Guy.</li>
    <li>If Guy complains, Twitter might choose to remove this account. I doubt that will happen since <a href="http://twitter.com/galkawasaki">Gal Kawasaki</a> seems to be allowed.</li>
    <li>I have no intention of checking any replies to gk_minusalltop. It's a bot, you can contact me at my twitter account at @<a href="http://twitter.com/whoisgregg">whoisgregg</a> or leave a comment below.</li>
</ol>

<p><strong>Update #1</strong> I fixed the bug where @replies weren't being posted. Apparently PHP's implementation of cURL thinks that anything that starts with an "@" is a path to a file. All working now. Amazingly, over 20 followers and Guy noticed it right away. <a href="http://twitter.com/whoisgregg/status/1193315167">As I told him</a>, I like him and I like Alltop, but too much of the two together is not so good.</p>

<p><strong>Update #2</strong> A bit more explanation of how this came to be... I saw <a href="http://twitter.com/guykawasaki/status/1190559715">this tweet</a> from Guy the other day where he explains that he sifts through 60K+ followers updates by simply ignoring anything that doesn't contain "Alltop."  My immediate thought was, "What a great idea! If only everyone who followed Guy could do the exact <em>opposite</em> for his tweets." Today at lunch I realized I had just recently <a href="http://www.whoisgregg.com/blog/2009/01/twitter-bots.html">coded up a twitter bot</a> and with a few modifications could have exactly that feature available. Amazingly people are already following it and at a rate much faster than can be explained by twitter spam bots. ;)</p>

<p>I'm glad I could help. :)</p>

<p><strong>Update #3</strong> @<a href="http://twitter.com/gk_minusalltop">gk_minusalltop</a> has been running 13 days and has attracted 131 followers. The bot updates the Bio with how many alltop tweets it has <em>not</em> retweeted. In 13 days, 265 of Guy's 810 updates have included "Alltop" in them. So, basically a third less tweets and at Guy's rate, <em>that's 20 less tweets every day</em>. Definitely a worthwhile project. :)</p>

<p><strong>Update #4</strong> @<a href="http://twitter.com/gk_minusalltop">gk_minusalltop</a> has been running 84 days and has attracted 589 followers. Guy linked to a page about Star Trek <a href="http://search.twitter.com/search?q=from%3Aguykawasaki+kw32">four times about a week ago</a>. He was being sneaky by using an adjix link to point to Alltop instead of being upfront about his advertising. Thanks to <a href="http://twitter.com/askleo/statuses/1623391859">Leo Notenboom</a> and <a href="http://twitter.com/DotEd/status/1623429551">Ed Palumbo</a> for catching it. The good news? The bot is smart enough now to check if Guy is posting an Alltop link without being honest about it. Should I add a counter for how many times he posts sneaky links? ;)</p>

<p><strong>Update #5 </strong>Guy has switched from using Adjix to a new custom short URL service: trkk.us. Unfortunately, this service uses javascript redirects to circumvent the method @gk_minusalltop <em>was</em> using to check for sneaky links. I'm working on it, but I can see where this is headed. What a shame. :/</p>

<div>

<div id="attachment_379" class="wp-caption alignright" style="width: 160px"><a href="http://www.whoisgregg.com/blog/wp-content/uploads/2009/02/alltop-frame.png"><img class="size-thumbnail wp-image-379" title="Alltop Frame" src="http://www.whoisgregg.com/blog/wp-content/uploads/2009/02/alltop-frame-150x150.png" alt="ZOMG 102px tall!" width="150" height="150" /></a><p class="wp-caption-text">ZOMG 102px tall!</p></div>

</div>

<div><strong>Update #6</strong> It feels like whack-a-mole sometimes. Now Guy is using the URL shortening service om.ly which adds an incredible 102px tall neon gold and orange header around above other site's content.<strong> And, of course, now there's no hint of Alltop advertising in the tweet's themselves. </strong>So, this is what I've done:</div>
<div>
<ul>
    <li>Automatically removes all ghosttwitter posts (they <em>always</em> advertise for Alltop)</li>
    <li>Do extra testing for any weird URL shorteners that pop up</li>
    <li>Hired an army of rabbits trained to recognize the particular shade of orange/gold that Alltop uses to manually check each tweet</li>
</ul>
</div>

<p>Of course, if the rabbits get tired or run out of food, the occasional tweet may slip through. The trick is to <a href="http://twitter.com/?status=@whoisgregg+Guy+is+spamming+again.+Grrr!">tell me as soon as you recognize an Alltop spamvertisement</a> so I can train the rabbits to recognize the new trick. BTW, that screenshot links to an article with this great quote:</p>

<blockquote><em>The most important lesson that I’ve learned about business through all these years is that the great companies are founded on the desire to make meaning—and not necessarily to make money.
<br />- Guy Kawasaki</em></blockquote>

<p><em><span style="font-style: normal;">Thanks for that, Guy.</span></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/2009/02/my-gift-to-the-world-guy-kawasaki-minus-the-alltop.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
