<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us">
  <title>Dare Obasanjo aka Carnage4Life</title>
  <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/" />
  
  <icon>favicon.ico</icon>
  <updated>2010-02-09T05:25:32.733788-08:00</updated>
  <author>
    <name>Dare Obasanjo</name>
  </author>
  <subtitle>You can buy cars but you can't buy respect in the 'hood - Curtis Jackson</subtitle>
  <id>http://www.25hoursaday.com/weblog/</id>
  <generator uri="http://dasblog.info/" version="2.1.8102.813">DasBlog</generator>
  <feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="carnage4life" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><logo>http://members.microsoft.com/careers/epdb/image/i_mop_ProfID58_l.jpg</logo><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetRss" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Carnage4life</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="9" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=a7decc56-6a37-413f-92be-0630161377b2" />
    <total xmlns="http://purl.org/syndication/thread/1.0">9</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=a7decc56-6a37-413f-92be-0630161377b2" title="9 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=a7decc56-6a37-413f-92be-0630161377b2</commentRss>
    <title>The iPhone Obsession and Lying with Statistics</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2010/02/09/TheIPhoneObsessionAndLyingWithStatistics.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=a7decc56-6a37-413f-92be-0630161377b2</id>
    <published>2010-02-09T05:25:32.733788-08:00</published>
    <updated>2010-02-09T05:25:32.733788-08:00</updated>
    <content type="html">&lt;p&gt;
PPK over at the QuirksMode blog recently wrote a rant titled &lt;a href="http://www.quirksmode.org/blog/archives/2010/02/the_iphone_obse.html"&gt;The
iPhone Obsession&lt;/a&gt; where he berates developers for focusing on the building mobile
sites that are targeted towards well on the iPhone. To make his point, he uses the
following statistics 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h5&gt;&lt;em&gt;Stats&lt;/em&gt;
&lt;/h5&gt;
&lt;p&gt;
&lt;em&gt;Let’s illustrate that last remark with some &lt;/em&gt;&lt;a href="http://communities-dominate.blogs.com/brands/2010/02/phone-market-shares-for-year-of-2009-and-last-quarter-2009.html"&gt;&lt;em&gt;smartphone
sales&lt;/em&gt;&lt;/a&gt;&lt;em&gt; stats:&lt;/em&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;Nokia: 39% &lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;RIM: 20% (BlackBerry)&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Apple: 15% (this 15% is obviously far more important than the previous 59%)&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;HTC: 5% &lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Other: 21% (Samsung is expected to make a major jump this year)&lt;/em&gt; 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;em&gt;…&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Source: &lt;/em&gt;&lt;a href="http://www.morganstanley.com/institutional/techresearch/pdfs/mobile_internet_report.pdf"&gt;&lt;em&gt;Morgan
Stanley Mobile Internet Report&lt;/em&gt;&lt;/a&gt;&lt;em&gt; (48Meg PDF) p. 160&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;…&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;And here are the smartphone OS stats, also from Tomi Ahonen (whose &lt;/em&gt;&lt;a href="http://communities-dominate.blogs.com/brands/"&gt;&lt;em&gt;blog&lt;/em&gt;&lt;/a&gt;&lt;em&gt; I
highly recommend, by the way):&lt;/em&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;Symbian: 45% (all of Nokia plus a bit of SonyEricsson and Samsung)&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;BlackBerry: 20% &lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;iPhone: 15% (this 15% is obviously far more important than the previous 65%)&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Windows Mobile: 6% (HTC, Samsung, SonyEricsson)&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Android: 4% (HTC, Samsung, SonyEricsson, Motorola, Google)&lt;/em&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Other: 10% (Various Linux builds, Palm, as well as really obscure stuff. Will
be reinforced by Samsung Bada during this year.)&lt;/em&gt; 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;em&gt;Despite the platform having only 15% sales market share we all want our mobile
websites to look exactly like an iPhone app and we only want to use iPhone features.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Although these statistics seem persuasive they are actually totally useless when it
comes to arguing the point of which browsers mobile developers should target. Ownership
of a mobile phone doesn’t directly equate to using it for browsing the web. The important
metric is the smartphone OS breakdown among people who actually use the mobile web
on their phones. 
&lt;/p&gt;
&lt;p&gt;
You can get these stats easily from &lt;a href="http://metrics.admob.com/"&gt;AdMob's mobile
metrics report&lt;/a&gt; which is based on measuring ad impressions across various mobile
sites across various smartphone OSes. These metrics paint a very different picture
from the sales data as shown below 
&lt;/p&gt;
&lt;img class="aligncenter size-full wp-image-695" alt="OS share" src="http://metrics.admob.com/wp-content/uploads/2010/01/OS-share.png" width="654" height="390" /&gt; 
&lt;p&gt;
According to these stats, the iPhone OS is actually the major source of traffic for
the mobile web in most continents except for Africa and Asia. What this tells you
is that developers aren’t being stupid when they try to ensure their sites work well
on the iPhone. 
&lt;/p&gt;
&lt;p&gt;
That said, I agree that it is a bad idea for developers to specifically target features
of a particular browser versus using web standards. However that is different from
making sure your site works well in the most popular platform used for browsing mobile
websites in your particular market. 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Y3X0huQri1o:a0FxboxSF-U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Y3X0huQri1o:a0FxboxSF-U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Y3X0huQri1o:a0FxboxSF-U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Y3X0huQri1o:a0FxboxSF-U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Y3X0huQri1o:a0FxboxSF-U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Y3X0huQri1o:a0FxboxSF-U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Y3X0huQri1o:a0FxboxSF-U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Y3X0huQri1o:a0FxboxSF-U:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Y3X0huQri1o:a0FxboxSF-U:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/Y3X0huQri1o" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="5" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=2823b60e-002b-4efd-bdfb-f05b422cca1f" />
    <total xmlns="http://purl.org/syndication/thread/1.0">5</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=2823b60e-002b-4efd-bdfb-f05b422cca1f" title="5 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=2823b60e-002b-4efd-bdfb-f05b422cca1f</commentRss>
    <title>Does the world need OpenID Connect?</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2010/01/18/DoesTheWorldNeedOpenIDConnect.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=2823b60e-002b-4efd-bdfb-f05b422cca1f</id>
    <published>2010-01-18T06:32:03.4813509-08:00</published>
    <updated>2010-01-18T06:32:03.4813509-08:00</updated>
    <category term="Social Software" label="Social Software" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Social+Software" />
    <category term="Web Development" label="Web Development" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Web+Development" />
    <content type="html">&lt;p&gt;
About two weeks ago Chris Messina wrote a post titled &lt;a title="http://factoryjoe.com/blog/2010/01/04/openid-connect/" href="http://factoryjoe.com/blog/2010/01/04/openid-connect/"&gt;OpenID
Connect&lt;/a&gt; where he argued for the existence of a &lt;a href="http://developers.facebook.com/connect.php"&gt;Facebook
Connect&lt;/a&gt; style technology build on OpenID. He describes the technology as follows 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;So, to summarize:&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;for the non-tech, uninitiated audiences: OpenID Connect is a technology that lets
you use an account that you already have to sign up, sign in, and bring your profile,
contacts, data, and activities with you to any compatible site on the web. &lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;for techies: OpenID Connect is OpenID rewritten on top of OAuth WRAP using service
discovery to advertise Portable Contacts, Activity Streams, and any other well known
API endpoints, and a means to automatically bootstrap consumer registration and token
issuance.&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This is something I brought up over a year ago in my post &lt;a href="http://www.25hoursaday.com/weblog/2008/10/24/SomeThoughtsOnOpenIDVsFacebookConnect.aspx"&gt;Some
Thoughts on OpenID vs. Facebook Connect&lt;/a&gt;. The fact is that OpenID by itself is
simply not as useful as Facebook Connect. The former allows me to sign-in to participating
sites with my existing credentials while the latter lets me sign-in, share content
with my social network, personalize and find my friends on participating sites using
my Facebook identity. 
&lt;/p&gt;
&lt;p&gt;
As I mentioned in my previous post there are many pieces of different “Open brand”
technologies that can be pieced together to create something similar to Facebook Connect
such as OpenID + &lt;a href="http://openid.net/specs/openid-attribute-exchange-1_0.html"&gt;OpenID
Attribute Exchange&lt;/a&gt; + &lt;a href="http://portablecontacts.net/draft-spec.html"&gt;Portable
Contacts&lt;/a&gt; + &lt;a href="http://wiki.oauth.net/OAuth-WRAP"&gt;OAuth WRAP&lt;/a&gt; + &lt;a href="http://activitystrea.ms/"&gt;Activity
Streams&lt;/a&gt;. However no one has put together a coherent package that ties all of these
together as a complete end-to-end solution. This isn’t helped by the fact that these
specs are at varying levels of maturity and completion. 
&lt;/p&gt;
&lt;p&gt;
One of the reasons this hasn’t happened is for a reason I failed to anticipate. Back
in late 2008, I assumed we would see lots of competitors to Facebook Connect. This
hasn’t truly materialized. &lt;a href="http://www.google.com/friendconnect/"&gt;Google Friend
Connect&lt;/a&gt; has turned out to be an interesting combination of OpenID sign-in and
the ability to add “social” widgets to your site but not about integrating with Google’s
social networking services in a deep way (probably because Google doesn’t have any?). &lt;a href="http://developer.myspace.com/myspaceid/"&gt;MySpaceID&lt;/a&gt; has
failed to gain traction and lacks key features of Facebook Connect such as being able
to publish rich activities from a 3rd party site to MySpace. And that’s it. Those
two technologies are the closest to Facebook Connect from a major online player and
they fall far short. 
&lt;/p&gt;
&lt;p&gt;
So do we need an OpenID Connect? We would if there were lots of Facebook Connect style
offerings that significantly differed in implementation. However there aren’t. One
could argue that perhaps the reason we don’t have many is that there are no standards
that guide websites on what to implement. However this sounds like using “standards”
for inventing technologies instead of standardizing best practice. I’ve always considered
this questionable from my days working with XML technologies &lt;a href="http://www.w3.org/XML/Schema"&gt;XML
Schema&lt;/a&gt;, &lt;a href="http://www.w3.org/TR/soap/"&gt;SOAP&lt;/a&gt; and &lt;a href="http://www.w3.org/TR/wsdl"&gt;WSDL&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
If you got together to create an OpenID Connect now, the best you could do is come
up with a knock off of Facebook Connect using “Open brand” technologies since that’s
the only example we have to work off of. That’s great until Facebook Connect adds
more features or websites finally wrap their heads around this problem space and actually
start competing with Facebook Connect. Premature standardization hinders instead of
helps.
&lt;/p&gt;
&lt;p&gt;
Although we might need OpenID Connect someday, that day isn’t today.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://www.25hoursaday.com/weblog/images/music_note.gif" /&gt; Now
Playing: &lt;a href="http://www.amazon.com/gp/search/ref=sr_adv_m_pop/?search-alias=popular&amp;amp;unfiltered=1&amp;amp;field-keywords=&amp;amp;field-artist=Ke$ha&amp;amp;field-title=Stolen&amp;amp;field-label=&amp;amp;field-binding=&amp;amp;sort=relevancerank&amp;amp;Adv-Srch-Music-Album-Submit.x=19&amp;amp;Adv-Srch-Music-Album-Submit.y=6"&gt;Ke$ha&lt;/a&gt; - &lt;a href="http://www.amazon.com/s/ref=nb_ss_dmusic?url=search-alias%3Ddigital-music&amp;amp;field-keywords=Ke$ha+TiK+ToK&amp;amp;x=0&amp;amp;y=0"&gt;TiK
ToK&lt;/a&gt; &lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://www.25hoursaday.com/weblog/images/music_note.gif" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=MewNe4nnY88:4_PHckjUKPI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=MewNe4nnY88:4_PHckjUKPI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=MewNe4nnY88:4_PHckjUKPI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=MewNe4nnY88:4_PHckjUKPI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=MewNe4nnY88:4_PHckjUKPI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=MewNe4nnY88:4_PHckjUKPI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=MewNe4nnY88:4_PHckjUKPI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=MewNe4nnY88:4_PHckjUKPI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=MewNe4nnY88:4_PHckjUKPI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/MewNe4nnY88" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="8" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=c46a1550-4ca5-4c48-acd0-eaf4289f9d57" />
    <total xmlns="http://purl.org/syndication/thread/1.0">8</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=c46a1550-4ca5-4c48-acd0-eaf4289f9d57" title="8 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=c46a1550-4ca5-4c48-acd0-eaf4289f9d57</commentRss>
    <title>Some thoughts on Facebook's change of stance on user privacy</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2010/01/11/SomeThoughtsOnFacebooksChangeOfStanceOnUserPrivacy.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=c46a1550-4ca5-4c48-acd0-eaf4289f9d57</id>
    <published>2010-01-11T07:16:02.2257339-08:00</published>
    <updated>2010-01-11T07:16:02.2257339-08:00</updated>
    <category term="Social Software" label="Social Software" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Social+Software" />
    <content type="html">&lt;p&gt;
Marshall Kirkpatrick has a post entitled &lt;a href="http://www.readwriteweb.com/archives/facebooks_zuckerberg_says_the_age_of_privacy_is_ov.php"&gt;Facebook's
Zuckerberg Says The Age of Privacy is Over&lt;/a&gt; where he reviews some quotes by Mark
Zuckerburg, the founder of Facebook, on their recent privacy changes and how these
changes are reflecting evolving social norms. Below is an excerpt on Marshall's take
on Mark Zuckerburg's comments
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Facebook allows everyday people to share the minutiae of their daily lives with
trusted friends and family, to easily distribute photos and videos - if you use it
regularly you know how it has made a very real impact on families and social groups
that used to communicate very infrequently. Accessible social networking technology
changes communication between people in a way similar to if not as intensely as the
introduction of the telephone and the printing press. It changes the fabric of peoples'
lives together. 350 million people signed up for Facebook under the belief their information
could be shared just between trusted friends. Now the company says that's old news,
that people are changing. I don't believe it.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I think Facebook is just saying that because that's what it wants to be true.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
There's lots of food for thought here. At first I wondered whether Facebook would &lt;font&gt;hav&lt;font&gt;e
become the global phenomenon that is today w&lt;font&gt;here your friends, neighbors&lt;font&gt;,
coworkers and old school chums are sharing the minutiae&lt;font&gt; of their &lt;font&gt;lives &lt;font&gt;with
you &lt;font&gt;if it had been public b&lt;font&gt;y default. Then I realized that so&lt;font&gt;rt
of thinking doesn't matter since Facebook has 350 million users &lt;em&gt;today&lt;/em&gt; so
wondering how things cou&lt;font&gt;ld have turned out years ago with a different design
isn't particularly interesting&lt;font&gt;. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
What is interesting is considering why Facebook would want it to be true &lt;font&gt;that &lt;/font&gt;many
of their users think nothing of &lt;font&gt;making their Facebook data public versus sharing
it with&lt;font&gt;in their socia&lt;font&gt;l network&lt;font&gt;? The simple ans&lt;font&gt;wer&lt;font&gt; is &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt;. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;Below is &lt;font&gt;the Google Trends chart &lt;font&gt;showing
the difference in traffic between both sit&lt;font&gt;es. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img style="margin: 0px 20px" src="http://public.bay.livefilestore.com/y1pwM52dSaSLzIUrkFNNfKU7UH5Ox78NOsjTxkhw2uLY6cTmxT6u4uxDC8VdsHBNy6UlxO3tYhDpYCytJC8YUNyNA/facebookVStwitter.PNG" /&gt;
&lt;/p&gt;
&lt;p&gt;
In looking at the above chart&lt;font&gt;, one might &lt;font&gt;think it ludicrous that Facebook
would &lt;font&gt;have anything to fear &lt;font&gt;fro&lt;font&gt;m Twitter given that it has at&lt;font&gt; l&lt;font&gt;e&lt;/font&gt;ast &lt;/font&gt;an
order of magnitude more users. However compare the above chart to &lt;font&gt;a comparison
of news references and search queries for the phrases &amp;quot;search twitter&amp;quot; versus
&amp;quot;search Facebook&amp;quot;. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img style="margin: 0px 20px" src="http://public.bay.livefilestore.com/y1pPjCBeKk9WG0bsdvU5WLOwqZoaMN4wZv1RzQkbOE-X0Nww2ThAL6p_G_qrr9XucxKP1OBy2iQ8HRCuxQIo2eo0g/facebookVStwitter2.PNG" /&gt;
&lt;/p&gt;
&lt;p&gt;
There are tw&lt;font&gt;o things you learn from the above chart. The first is that the &lt;font&gt;news
media is a lot more interested in tal&lt;font&gt;king about search&lt;font&gt;&amp;#160;&lt;font&gt;and
Twitter &lt;font&gt;instead of search and Facebook&lt;font&gt;. This implies that even though &lt;font&gt;Facebook
has similar features to Twitter and ten&lt;font&gt; times the&lt;font&gt; &lt;font&gt;user base, &lt;font&gt;people
don't talk about the &lt;font&gt;power of being able to search Facebook status updates like &lt;font&gt;they
do about Twitter. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;The
second is that &lt;font&gt;there actually &lt;font&gt;more interest from people actually doing
search queries in searching content on Facebook &lt;font&gt;t&lt;font&gt;han in &lt;/font&gt;&lt;/font&gt;&lt;font&gt;searching
Twitter content&lt;font&gt; whi&lt;font&gt;ch is unsurprising since &lt;font&gt;Facebook has a lot more
users&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
However the f&lt;font&gt;act that sta&lt;font&gt;tus updates and other content on Facebook is
priva&lt;font&gt;te by default means Facebook can&lt;font&gt;not participate in this space even
though it has the same kind of content that Twitter do&lt;font&gt;es but it is more valu&lt;font&gt;able
because they have lots more content and it is backed by real identities not anonymous &lt;font&gt;users.
Here&lt;font&gt;'s a &lt;font&gt;q&lt;font&gt;uic&lt;font&gt;k list of the top of my head of the kinds of
apps you can enable over Twitter's public &lt;font&gt;stream of status updates that Facebook &lt;font&gt;wa&lt;/font&gt;s
locked out of until their privacy chan&lt;font&gt;ge &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href="http://whatthetrend.com/"&gt;What The Trend&lt;/a&gt; – Lists &lt;font&gt;t&lt;font&gt;opics that
are currently trending on Twitter and why. Often a quick wa&lt;font&gt;y to find breaking &lt;font&gt;news
before it is reported by the mainstream &lt;font&gt;media.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://tweetmeme.com/"&gt;Tweetmeme&lt;/a&gt; – &lt;font&gt;The to&lt;font&gt;p link&lt;font&gt;s that
are currently being shared on Twitter. Another source of breaking news and cool conten&lt;font&gt;t.
It's like Digg and Reddit but without having to vote on content on some geek&lt;font&gt;y
&amp;quot;&lt;font&gt;social news&amp;quot; &lt;/font&gt;&lt;/font&gt;site. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://bitly.tv/"&gt;Bitly.TV&lt;/a&gt; – &lt;font&gt;A place to watch &lt;font&gt;the videos
that are currently being s&lt;font&gt;hared on Twitter. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://twittervision.com/"&gt;Twittervision&lt;/a&gt; – A cool way to idle away the
minutes by seeing what people all&lt;font&gt; over the world are saying on Twi&lt;font&gt;r&lt;/font&gt;ter. &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://googleblog.blogspot.com/2009/10/rt-google-tweets-and-updates-and-search.html"&gt;Google
Real-Time search&lt;/a&gt;&lt;font&gt; – See what Twitter users are saying about a particular
search term in real-time as part of your search results&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.filtrbox.com/"&gt;Filtr&lt;font&gt;b&lt;/font&gt;ox&lt;/a&gt; – A tool that enables
companies to see what their customers are saying about the&lt;font&gt;ir products and brand&lt;font&gt;s
on Twitter&lt;/font&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
All of these and more are the kinds of scenario Facebook could enable if their s&lt;font&gt;tatus
update streams &lt;font&gt;are public instead of private. People think &lt;a href="http://www.techcrunch.com/2009/09/16/twitter-closing-new-venture-round-with-1-billion-valuation/"&gt;Twitter
is worth $1 billion&lt;/a&gt;&lt;font&gt; &lt;font&gt;because it is sitting on this well of &lt;font&gt;real-time
status updates and has created this ecos&lt;font&gt;ystem of services that live of its stream.
However Facebook is sitting on t&lt;font&gt;en times as much data yet could not be a part
of this wo&lt;font&gt;rld because of their history of being a priva&lt;font&gt;cy centered social
network. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;Being able
to participate in the real-time search increases Facebook value&lt;font&gt; and broadens
its reach across the &lt;font&gt;Web. With the privacy changes in place this will now&lt;font&gt; be
the case. Especially since &lt;a href="http://www.wired.com/epicenter/2009/12/facebook-ftc-complaint/"&gt;50
percent of their users have accepted the more public default privacy settings&lt;/a&gt;&lt;font&gt;&lt;font&gt;.
Facebook can now participate in the same real&lt;font&gt;-time&lt;/font&gt; ecosystem as Twitter &lt;font&gt;and
will br&lt;font&gt;ing more content that is easier to t&lt;font&gt;rust since it comes from &lt;font&gt;people's
real identities. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
That said, I commend the &lt;font&gt;people at Facebook for having the courage to evolve
their product in the face of new market opport&lt;font&gt;unities instead of bein&lt;font&gt;g
tied to the&lt;font&gt;ir past. Lot&lt;font&gt;s of companies let themselves be ruled by fear
and thus stick to the status quo for fear of ticking off their users which often leads
to b&lt;font&gt;ored users. &lt;font&gt;Kud&lt;font&gt;o&lt;font&gt;s. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&amp;#160;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://www.25hoursaday.com/weblog/images/music_note.gif" /&gt; Now
Playing: &lt;a href="http://www.amazon.com/gp/search/ref=sr_adv_m_pop/?search-alias=popular&amp;amp;unfiltered=1&amp;amp;field-keywords=&amp;amp;field-artist=Flobots&amp;amp;field-title=Stolen&amp;amp;field-label=&amp;amp;field-binding=&amp;amp;sort=relevancerank&amp;amp;Adv-Srch-Music-Album-Submit.x=19&amp;amp;Adv-Srch-Music-Album-Submit.y=6"&gt;Flobots&lt;/a&gt; - &lt;a href="http://www.amazon.com/s/ref=nb_ss_dmusic?url=search-alias%3Ddigital-music&amp;amp;field-keywords=Flobots+Handlebars&amp;amp;x=0&amp;amp;y=0"&gt;Handlebars&lt;/a&gt; &lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://www.25hoursaday.com/weblog/images/music_note.gif" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Um3En_H4cDw:iXoMNmB_EJQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Um3En_H4cDw:iXoMNmB_EJQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Um3En_H4cDw:iXoMNmB_EJQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Um3En_H4cDw:iXoMNmB_EJQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Um3En_H4cDw:iXoMNmB_EJQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Um3En_H4cDw:iXoMNmB_EJQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Um3En_H4cDw:iXoMNmB_EJQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Um3En_H4cDw:iXoMNmB_EJQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Um3En_H4cDw:iXoMNmB_EJQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/Um3En_H4cDw" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="10" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=c41de3bd-5d5d-446e-91ea-32b7925c3845" />
    <total xmlns="http://purl.org/syndication/thread/1.0">10</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=c41de3bd-5d5d-446e-91ea-32b7925c3845" title="10 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=c41de3bd-5d5d-446e-91ea-32b7925c3845</commentRss>
    <title>Brizzly, Seesmic Web and the Future of RSS</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2010/01/04/BrizzlySeesmicWebAndTheFutureOfRSS.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=c41de3bd-5d5d-446e-91ea-32b7925c3845</id>
    <published>2010-01-04T07:06:19.7861085-08:00</published>
    <updated>2010-01-04T07:06:19.7861085-08:00</updated>
    <category term="Syndication Technology" label="Syndication Technology" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Syndication+Technology" />
    <content type="html">&lt;p&gt;
Recently I came across two blogs I thought were interesting and would love to follow
regularly; &lt;a href="http://www.cdixon.org"&gt;Chris Dixon's blog&lt;/a&gt; and the &lt;a href="http://windowsteamblog.com/blogs/windowslive/"&gt;Inside
Windows Live blog&lt;/a&gt;. What surprised me was that my first instinct was to see if
they were on Twitter instead of adding their RSS feeds to &lt;a href="http://www.rssbandit.org"&gt;my
favorite RSS reader&lt;/a&gt;. I thought this was interesting and decided to analyze my
internal thought process that led me to preferring following blogs via Twitter instead
of consuming the RSS feeds in Google Reader + RSS Bandit. 
&lt;/p&gt;
&lt;p&gt;
I realized it comes down to two things, one I’ve mentioned before and the second which
dawned on me recently
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
The first problem is that the user experience around consuming feeds in traditional
RSS readers which take their design cues from email readers is all sorts of wrong.
I’ve written about this previously in my post &lt;a href="http://www.25hoursaday.com/weblog/2009/08/26/TheTop5ReasonsRSSReadersWentWrong.aspx"&gt;The
Top 5 Reasons RSS Readers Went Wrong&lt;/a&gt;. Treating every blog post as important enough
that I have view the entire content and explicitly mark it as read is wrong. Not providing
a consistent mechanism to give the author feedback or easily reshare the content is
archaic in today’s world. And so on. 
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The mobile experience for consuming Twitter streams is all sorts of awesome. I currently
use &lt;a href="http://echofon.com/"&gt;Echofon&lt;/a&gt; to consume Twitter on my phone and have
used &lt;a href="http://iconfactory.com/software/twitterrific/"&gt;Twitterific&lt;/a&gt; which
is also excellent. I’ve also heard people say lots of good things about &lt;a href="http://www.atebits.com/tweetie-iphone/"&gt;Tweetie&lt;/a&gt;.
On the other hand, I haven’t found a great mobile application for consuming RSS feeds
on my mobile phone which may be a consequence of #1 above. 
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
So I’ve been thinking about how to make my RSS experience more like my Twitter experience
given that not all the blogs I read are on Twitter or will ever be on the service.
At first I flirted with building a tool that automatically creates a Twitter account
for a given RSS feed but backed away from that when I remembered that &lt;a href="http://www.techcrunch.com/2009/07/16/twitters-internal-strategy-laid-bare-to-be-the-pulse-of-the-planet/"&gt;the
Twitter team hates people using it as a platform for rebroadcasting RSS feeds&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
I realized that what I really need is a Twitter applicationthat also understands RSS
feeds and shows them in the same stream. In addition, I may have been fine with this
being a new app on the Web but don’t want to lose the existing Twitter clients on
my mobile phone. So I really want a web app that shows me a merged Twitter/RSS streams
and that exposes the Twitter API so I can point apps like Echofon/Twitterific/Tweetie
at it. 
&lt;/p&gt;
&lt;p&gt;
As I thought about which web app could be closest to doing this today I landed on &lt;a href="http://brizzly.com/"&gt;Brizzly&lt;/a&gt; and &lt;a href="http://seesmic.com/web"&gt;Seesmic
Web&lt;/a&gt;. These sites are currently slightly different web interfaces to to the Twitter
service which [at least to me] currently haven’t provided enough value above and beyond
the Twitter website for me to use on a regular basis. Being able to consume both my
RSS feeds and my Twitter stream on such services would not only serve as a differentiator
between them and other Twitter web clients but would also be functionality that Twitter
wouldn’t be able to make obsolete given their stated dislike of RSS content on their
service. 
&lt;/p&gt;
&lt;p&gt;
I’d write something myself except that I doubt that the authors of Twitter mobile
apps will be interested in making it easy to consume a Twitter stream from sites other
than &lt;a href="http://www.twitter.com"&gt;http://www.twitter.com&lt;/a&gt; unless lots of their
users ask for this feature which will only happen if services like Brizzly, Seesmic
Web and others start providing a reason to consume Twitter-like streams from non-Twitter
sources.&amp;#160; 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=xeGFuBnVMpo:qC_R3c0r-Ac:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=xeGFuBnVMpo:qC_R3c0r-Ac:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=xeGFuBnVMpo:qC_R3c0r-Ac:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=xeGFuBnVMpo:qC_R3c0r-Ac:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=xeGFuBnVMpo:qC_R3c0r-Ac:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=xeGFuBnVMpo:qC_R3c0r-Ac:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=xeGFuBnVMpo:qC_R3c0r-Ac:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=xeGFuBnVMpo:qC_R3c0r-Ac:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=xeGFuBnVMpo:qC_R3c0r-Ac:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/xeGFuBnVMpo" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="4" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=7eafe88e-b157-47f0-84ef-c24a735c1806" />
    <total xmlns="http://purl.org/syndication/thread/1.0">4</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=7eafe88e-b157-47f0-84ef-c24a735c1806" title="4 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=7eafe88e-b157-47f0-84ef-c24a735c1806</commentRss>
    <title>What does it mean to “Like” a status update?</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2010/01/04/WhatDoesItMeanToLikeAStatusUpdate.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=7eafe88e-b157-47f0-84ef-c24a735c1806</id>
    <published>2010-01-04T06:14:55.6831335-08:00</published>
    <updated>2010-01-04T06:14:55.6831335-08:00</updated>
    <category term="Social Software" label="Social Software" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Social+Software" />
    <content type="html">&lt;p&gt;
A couple of weeks ago Paul Adams, a user experience researcher at Google, wrote a
post titled &lt;a href="http://www.thinkoutsidein.com/blog/2009/11/why-liking-is-about-more-than-just-liking/"&gt;Why
“Liking” is about more than just liking&lt;/a&gt; which contained the following insight 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Why do people ‘like’ things on social networks?&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.thinkoutsidein.com/blog/wp-content/uploads/2009/11/likeexample1.png"&gt;&lt;em&gt;&lt;img title="likeexample1" alt="" src="http://www.thinkoutsidein.com/blog/wp-content/uploads/2009/11/likeexample1-300x96.png" width="300" height="96" /&gt;&lt;/em&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;It would be easy for us to assume that it is because they liked the content. But
it is a bit more complicated than that. It’s a combination of the content, and the
person who posted it.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;People sometimes ‘like’ content, not because they actually like it, but because
they want a lightweight way of building their relationship with the other person.
It’s similar to being in a group, maybe in a bar or cafe, and there is someone there
that you’d like to get to know better. They tell a joke that isn’t very funny - but
you laugh that extra bit louder, and grab a bit of eye contact, just to build that
relationship&lt;/em&gt; 
&lt;br /&gt;
&lt;em&gt;…&lt;/em&gt; 
&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;What this means&lt;/strong&gt;: Just because someone ‘liked’ a YouTube video
about Budweiser, that doesn’t mean that they’ll respond positively to Budweiser advertising.
It also doesn’t mean that they want to become a member of the Budweiser fan page.
In fact, they may dislike Budweiser, but like the person who shared the video. By
targeting Budweiser ads, you may do more damage to the brand than good. When targeting
advertising on social networks, mining content in the absence of understanding the
people relationships is a risky strategy.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I agree that in the context of Facebook, liking a status update or shared link is
often just as much about &lt;a href="http://en.wikipedia.org/wiki/Small_talk_(phatic_communication)"&gt;phatic
communication&lt;/a&gt; as it is about the content that is being shared. In the example
from the screenshot, the people who liked the item aren’t saying they like the key
terms in the status updat(i.e. hospitality, Tokyo, Japanese, etc) but instead are
showing interest in the poster’s news from their trip abroad. When considered, the
fact is that the work &lt;em&gt;like&lt;/em&gt; actually harms the feature’s use since I’ve seen
people want to show some sign of support by “liking” an item on Facebook but then
shied away when considering what the word actually means. For example, I was recently
a victim of identity theft and I know someone who almost clicked the “like” button
as a show of support until he realized he didn’t want people to think he actually
liked the fact that I was a victim of fraud. 
&lt;/p&gt;
&lt;p&gt;
However Facebook’s isn’t the only model for users in a social media application to
show their appreciation for the status updates of others. Both &lt;a href="http://blog.friendfeed.com/2007/10/i-like-it-i-like-it.html"&gt;FriendFeed’s
like feature&lt;/a&gt; and &lt;a href="http://blog.twitter.com/2009/11/retweet-limited-rollout.html"&gt;Twitter’s
retweet&lt;/a&gt; also provide a mechanism for showing one’s interest in another’s status
update but also have the side effect of sharing this update with your friends as well.
On both of these services, a user clicking on Like/Retweet often means they are interested
in the content they are sharing not just engaging in social niceties with a friend
online. 
&lt;/p&gt;
&lt;p&gt;
In other words, although it may not make sense for Facebook to target against ads
to you based on the content of the status updates you’ve liked, it may actually make
sense for Twitter or Twitter apps to target ads based on the content you’ve retweeted.&amp;#160; 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=C6un2wLtOV4:VDgm3IjpTEI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=C6un2wLtOV4:VDgm3IjpTEI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=C6un2wLtOV4:VDgm3IjpTEI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=C6un2wLtOV4:VDgm3IjpTEI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=C6un2wLtOV4:VDgm3IjpTEI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=C6un2wLtOV4:VDgm3IjpTEI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=C6un2wLtOV4:VDgm3IjpTEI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=C6un2wLtOV4:VDgm3IjpTEI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=C6un2wLtOV4:VDgm3IjpTEI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/C6un2wLtOV4" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="4" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=471b97f6-5aec-497f-ac21-b240034dbd98" />
    <total xmlns="http://purl.org/syndication/thread/1.0">4</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=471b97f6-5aec-497f-ac21-b240034dbd98" title="4 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=471b97f6-5aec-497f-ac21-b240034dbd98</commentRss>
    <title>Some Thoughts on the Twitter API as a "standard API" for microblogging</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2009/12/21/SomeThoughtsOnTheTwitterAPIAsAStandardAPIForMicroblogging.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=471b97f6-5aec-497f-ac21-b240034dbd98</id>
    <published>2009-12-21T07:09:58.644904-08:00</published>
    <updated>2009-12-21T07:12:51.4239424-08:00</updated>
    <category term="Syndication Technology" label="Syndication Technology" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Syndication+Technology" />
    <category term="Web Development" label="Web Development" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Web+Development" />
    <content type="html">&lt;p&gt;
There are a couple of posts written this past weekend about services beginning to
expose their services using the Twitter API and how this marks the rise of Twitter
as a de facto standard for use in microblogging (or whatever we're calling it these
days). 
&lt;/p&gt;
&lt;p&gt;
The first post I was on this topic was from Fred Wilson in his post &lt;a href="http://www.avc.com/a_vc/2009/12/open-apis-and-open-standards.html"&gt;Open
APIs and Open Standards&lt;/a&gt; where he writes 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;As &lt;/em&gt;&lt;a href="http://www.scripting.com/stories/2009/12/17/howOpenStandardsAreCreated.html"&gt;&lt;em&gt;Dave
Winer has been pointing out&lt;/em&gt;&lt;/a&gt;&lt;em&gt; in recent weeks, there is something quite
interesting happening in the blogging/microblogging world.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;First &lt;/em&gt;&lt;a href="http://www.scripting.com/stories/2009/12/17/howOpenStandardsAreCreated.html"&gt;&lt;em&gt;WordPress
allowed posting and reading wordpress blogs via the Twitter API&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Then yesterday &lt;/em&gt;&lt;a href="http://staff.tumblr.com/post/287703110/api"&gt;&lt;em&gt;our
portfolio company Tumblr did the same&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://twitter.com/johnBorthwick"&gt;&lt;em&gt;John Borthwick&lt;/em&gt;&lt;/a&gt;&lt;em&gt; has been
advising companies for a while now to build APIs that mimic the Twitter API. His reasoning
is that if your API look and feels similar to the Twitter API then third party developers
will have an easier time adopting it and building to it. Makes sense to me.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;But what Wordpress and Tumblr have done is a step farther than mimicing the API.
They have effectively usurped it for their own blogging platforms. In the case of
Tumblr, they are even replicating key pieces of their functionality in it&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Anil Dash quickly followed up by declaring &lt;a href="http://dashes.com/anil/2009/12/the-twitter-api-is-finished.html"&gt;The
Twitter API is Finished. Now What?&lt;/a&gt; and stating 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Twitter's API has spawned over 50,000 applications that connect to it, taking
the promise of fertile APIs we first saw with Flickr half a decade ago and bringing
it to new heights. Now, the first meaningful efforts to support Twitter's API on other
services mark the maturation of the API as a de facto industry standard and herald
the end of its period of rapid fundamental iteration.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;From here, we're going to see a flourishing of support for the Twitter API across
the web, meaning that the Twitter API is finished. Not kaput, complete. If two companies
with a significant number of users that share no investors or board members both support
a common API, we can say that the API has reached Version 1.0 and is safe to base
your work on. So now what?&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This is a pattern that repeats itself regularly in the software industry; companies
roll their own proprietary APIs or data formats in a burgeoning space until one or
two leaders emerge and then the rest of the industry quickly wants to crown a winning
data format or API to prevent Betamax vs. VHS style incompatibility woes for customers
and developers.
&lt;/p&gt;
&lt;p&gt;
Given that this is a common pattern, what can we expect in this instance? There are
typically two expected outcomes when such clamoring for a company's proprietary platform
or data format to become the property reaches a fever pitch. The first outcome is
similar to what Anil Dash and Fred Wilson have described. Some competitors or related
companies adopt the format or API as is to take advantage of the ecosystem that has
sprung up around the winning platform. This basically puts the company (Twitter in
this case) in a spot where they either have to freeze the API or bear the barbs from
the community if they ever try to improve the API in a backwards incompatible way. 
&lt;/p&gt;
&lt;p&gt;
The problem with freezing the API is that once it becomes a de facto standard all
sorts of folks will show up demanding that it do more than it was originally expected
to do since they can't ship their own proprietary solutions now that there is a &amp;quot;standard&amp;quot;.
This is basically what happened during the RSS vs. Atom days where Dave Winer declared
that &lt;a href="http://www.reallysimplesyndication.com/2005/04/08"&gt;RSS is Frozen&lt;/a&gt;.
What ended up happening was that there were a lot of people who felt that RSS and
it's sister specifications such as the MetaWeblog API were not the final word in syndicating
and managing content on the Web. Dave Winer stuck to his guns and people were left
with no choice but to create a conflicting de jure standard to compete with the de
facto standard that was RSS. So Atom vs. RSS became the XML syndication world's Betamax
vs. VHS or Blu-Ray vs. HD-DVD. As a simple thought experiment, what happens if Twitter
goes along with the idea that their API is some sort of de facto standard API for
microcontent delivered in real-time streams. What happens when a company like Facebook
decides to adopt this API but needs to API to be expanded because it doesn't support
their features? And that they need the API to be constantly updated since they add
new features on Facebook at a fairly rapid clip? Amusingly enough there are already
people &lt;a title="A VC: Open APIs and Open Standards" href="http://www.avc.com/a_vc/2009/12/open-apis-and-open-standards.html#disqus_thread"&gt;preemptively
flaming Facebook&lt;/a&gt; for not abandoning their API and adopting Twitter's even though
it is quite clear to any observer that Facebook's API predates Twitter's, has more
functionality and is supported by more applications &amp;amp; websites. 
&lt;/p&gt;
&lt;p&gt;
Things get even more interesting if Facebook actually did decide to create their own
fork or &amp;quot;profile&amp;quot; of the Twitter API due to community pressure to support
their scenarios. Given how this has gone down in the past such as &lt;a title="Workbench | RSS Means Never Being Board" href="http://workbench.cadenhead.org/news/2860/rss-means-never-being-board"&gt;the
conflict between Dave Winer and the RSS Advisory board&lt;/a&gt; or more recently &lt;a title="WRAP, and the Demise of the OAuth Community" href="http://hueniverse.com/2009/11/wrap-and-the-demise-of-the-oauth-community/"&gt;Eran
Hammer-Lahav's strong negative reaction to the creation of OAuth WRAP&lt;/a&gt; which he
viewed as a competitor to OAuth, it is quite likely that a world where Facebook or
someone else with more features than Twitter decided to adopt Twitter's API wouldn't
necessarily lead to everyone singing &lt;a href="http://en.wikipedia.org/wiki/Kumbaya"&gt;Kumbaya&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Let's say Twitter decides to take the alternate road and ignores this hubbub since
the last thing a fast moving startup needs is to have their hands tied by a bunch
of competitors telling them they can't innovate in their API or platform any longer.
What happens the first time they decide to break their API or even worse deprecate
it because it no longer meets their needs? That isn't far fetched. &lt;a href="http://www.blogger.com/developers/api/1_docs/"&gt;Google
deprecated the Blogger API&lt;/a&gt; in favor of GData (based on the Atom Publishing Protocol)
even though Dave Winer and a bunch of others had created a de facto standard around
a flavor of the API called the &lt;a href="http://www.xmlrpc.com/metaWeblogApi"&gt;MetaWeblog
API&lt;/a&gt;. About two weeks ago &lt;a title="Facebook Developers | Developer Roadmap: Keeping You Up to Date" href="http://developers.facebook.com/news.php?blog=1&amp;amp;story=341"&gt;Facebook
confirmed that they were deprecating a number of APIs used for interacting with the
news feed&lt;/a&gt;. What happens to all the applications that considered these APIs to
be set in stone? It is a big risk to bet on a company's platform plans even when they
plan to support developers let alone doing so as a consequence of a bunch of the company's
competitors deciding that they want to tap into its developer ecosystem instead of
growing their own. 
&lt;/p&gt;
&lt;p&gt;
The bottom line is that it isn't as simple as saying &amp;quot;Twitter is popular and
it's API is supported by lots of apps so everyone needs to implement their API on
their web site as well&amp;quot;. There are lots of ways to create standards. Crowning
a company's proprietary platform as king without their participation or discussion
in an open forum is probably the &lt;em&gt;worst&lt;/em&gt; possible way to do so.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt; Now
Playing: &lt;a href="http://www.amazon.com/gp/search/ref=sr_adv_m_pop/?search-alias=popular&amp;amp;unfiltered=1&amp;amp;field-keywords=&amp;amp;field-artist=Eminem&amp;amp;field-title=Stolen&amp;amp;field-label=&amp;amp;field-binding=&amp;amp;sort=relevancerank&amp;amp;Adv-Srch-Music-Album-Submit.x=19&amp;amp;Adv-Srch-Music-Album-Submit.y=6"&gt;Eminem&lt;/a&gt; - &lt;a href="http://www.amazon.com/s/ref=nb_ss_dmusic?url=search-alias%3Ddigital-music&amp;amp;field-keywords=Eminem+Hell Breaks Loose&amp;amp;x=0&amp;amp;y=0"&gt;Hell
Breaks Loose&lt;/a&gt; &lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Mv0kFL1hdCc:1Mx1rx_xlHI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Mv0kFL1hdCc:1Mx1rx_xlHI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Mv0kFL1hdCc:1Mx1rx_xlHI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Mv0kFL1hdCc:1Mx1rx_xlHI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Mv0kFL1hdCc:1Mx1rx_xlHI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Mv0kFL1hdCc:1Mx1rx_xlHI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Mv0kFL1hdCc:1Mx1rx_xlHI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=Mv0kFL1hdCc:1Mx1rx_xlHI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=Mv0kFL1hdCc:1Mx1rx_xlHI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/Mv0kFL1hdCc" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="3" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6164773f-3844-42e8-8d30-d00af94753a5" />
    <total xmlns="http://purl.org/syndication/thread/1.0">3</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=6164773f-3844-42e8-8d30-d00af94753a5" title="3 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6164773f-3844-42e8-8d30-d00af94753a5</commentRss>
    <title>When is a privacy feature not a privacy feature?</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2009/12/10/WhenIsAPrivacyFeatureNotAPrivacyFeature.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=6164773f-3844-42e8-8d30-d00af94753a5</id>
    <published>2009-12-09T17:33:32.464198-08:00</published>
    <updated>2009-12-09T17:33:32.464198-08:00</updated>
    <category term="Social Software" label="Social Software" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Social+Software" />
    <content type="html">&lt;p&gt;
From the Facebook blog post &lt;a href="http://blog.facebook.com/blog.php?post=197943902130"&gt;Updates
on Your New Privacy Tools&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;i&gt; &lt;b&gt;Can I limit access to my Friend List?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Many of you have mentioned that you want a way to hide your list of friends. In response
to your feedback, we've removed the "View Friends" link from search results, making
your Friend List less visible on the site.&lt;br&gt;
&lt;br&gt;
&lt;div class="photo photo_right"&gt;
&lt;div class="photo_img"&gt;&lt;img src="http://photos-a.ak.fbcdn.net/hphotos-ak-snc3/hs011.snc3/11832_235434436728_20531316728_4183421_4204380_a.jpg" alt=""&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="clear_right"&gt;In addition, you can further limit the visibility of your
Friend List to other people on Facebook if you want. After you've completed the transition
to the new privacy settings, you'll be able to click on the pencil icon in the top-right
corner of the "Friends" box on your profile. Unchecking "Show my friends on my profile"
will prevent your Friend List from appearing in your profile when it is viewed by
people who are logged in to Facebook. &lt;font color="red"&gt;Keep in mind, however, that
because Friend List is publicly available, it will be visible to people who are viewing
your profile while not logged in.&lt;/font&gt; Again, you will only have this option once
you've completed the transition to the new privacy settings.&lt;br&gt;
&lt;br&gt;
Remember, you can also limit who can find you in searches on Facebook and control
whether your information can be indexed by public search engines under "Search" on
the Privacy Settings page.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/i&gt;&lt;/blockquote&gt; That's awesome. I didn't realize when I joined Facebook that the
service would retroactively decide that my list of friends was public knowledge and
then would add a privacy setting to "hide" it from Facebook users that could be worked
around by logging out. Join me as I say goodbye to my old privacy settings and old
public version of my Facebook profile which kept my private information private. 
&lt;h4&gt;R.I.P. Old Facebook Privacy settings
&lt;/h4&gt;
&lt;img src="http://public.bay.livefilestore.com/y1pAYlZtKSoQldNfx59ZtZUAfRVi-hR3gd9Hv_M-L3B7JVKaIEYzHFiVmSOP-ayKGWYLSHnL5-ACr2FYsm10T8KBg/old%20facebook%20search%20settings.jpg"&gt;
&lt;hr&gt;
&lt;h4&gt;R.I.P. Old Facebook Public Profile 
&lt;/h4&gt;
&lt;img src="http://public.bay.livefilestore.com/y1p20acUz4jOHlKFe32fa3yx57etrse1BstEBs6YUF0GM6NMjC9XNQl75_JbpxuIaHx5dWWKjYBOlWhofoLtJxPlw/old%20facebook%20profile.jpg"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=16l_slV90mM:YbRjegKpJik:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=16l_slV90mM:YbRjegKpJik:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=16l_slV90mM:YbRjegKpJik:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=16l_slV90mM:YbRjegKpJik:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=16l_slV90mM:YbRjegKpJik:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=16l_slV90mM:YbRjegKpJik:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=16l_slV90mM:YbRjegKpJik:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=16l_slV90mM:YbRjegKpJik:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=16l_slV90mM:YbRjegKpJik:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/16l_slV90mM" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="6" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=756b2bfc-f879-408f-b7aa-7168bee1d7af" />
    <total xmlns="http://purl.org/syndication/thread/1.0">6</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=756b2bfc-f879-408f-b7aa-7168bee1d7af" title="6 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=756b2bfc-f879-408f-b7aa-7168bee1d7af</commentRss>
    <title>The Many Flaws of Twitter's Retweet Feature</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2009/11/23/TheManyFlawsOfTwittersRetweetFeature.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=756b2bfc-f879-408f-b7aa-7168bee1d7af</id>
    <published>2009-11-23T08:24:00.095625-08:00</published>
    <updated>2009-11-23T08:24:00.095625-08:00</updated>
    <category term="Rants" label="Rants" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Rants" />
    <category term="Social Software" label="Social Software" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Social+Software" />
    <content type="html">&lt;p&gt;
I've been a Twitter user for almost two years now and I have always been impressed
by the emergent behavior that has developed from simply giving people a text box with
140 character limit. The folks at Twitter have also done a good job of noticing some
these emergent behaviors and making them formal features of the site. Both &lt;a href="http://help.twitter.com/forums/10711/entries/49309"&gt;hashtags&lt;/a&gt; and &lt;a href="http://blog.twitter.com/2008/05/how-replies-work-on-twitter-and-how.html"&gt;@replies&lt;/a&gt; are
examples of emergent community conventions in authoring tweets that are now formal
features of the site. 
&lt;/p&gt;
&lt;p&gt;
Twitter recently added retweets to this list with &lt;a href="http://blog.twitter.com/2009/08/project-retweet-phase-one.html"&gt;Project
Retweet&lt;/a&gt;. After using this feature for a few days I've found that unlike hashtags
and @replies, the way this feature has been integrated into the Twitter experience
is deeply flawed. Before I talking about the problems with Project Retweet, I should
talk about how the community uses retweeting today. 
&lt;/p&gt;
&lt;h3&gt;Retweeting 101: What is it and why do people do it? 
&lt;/h3&gt;
&lt;p&gt;
Retweeting is akin to the practice of forwarding along interesting blog posts and
links to your friends via email. A retweet repeats the content of a person's tweet
(sometimes edited for brevity) along with a reference to the user who is being retweeted.
Often times people also add some commentary to the retweets. Examples of both styles
of retweets are shown below. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1phGodQ9_Yr8qGzV1_sgkcfkbg7AbyTHhdDZRDy13MNJYhPrrqbjsa6sB1DzCjDCjF2-k4iOZHE_KAY4vcDbnyew/retweet%20sans%20comment.PNG" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 1:&lt;/u&gt; Retweet without commentary
&lt;/p&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1pDcX50F8H76d7VRz_pfmYkGSGz3tlBw2QCLmRDfJ1rp7M1zNgJJSwzU6D_4tovS-tvU4VrHaxarHqqof0KZTbXg/retweet%20with%20comment.PNG" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 2:&lt;/u&gt; Retweet with added comment
&lt;/p&gt;
&lt;p&gt;
Unlike hashtags and @replies, the community conventions aren't as consistent with
retweets. Below are two examples of retweets from my home page which use different
prefixes and separators from the one above to indicate the item is a retweet and the
user's comment respectively. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1pCy4LAPplYbWGJH75O4f5v5ndSpWR57u_gMF3S7VX3mIYns-GRStRbCEKz9fBUd-eCqWQYZecgi7rxRHfxIY4Ew/viewing%20retweets.PNG" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 3:&lt;/u&gt; Different conventions in retweeting
&lt;/p&gt;
&lt;p&gt;
However there are many issues with retweeting not being a formal feature of Twitter.
For one, it is often hard for new users to figure out what's going on when they see
people posting updates prefixed with strange symbols and abbreviations. Another problem
is that users who want to post a retweet now have to deal with the fact that the original
tweet may have taken up all or most of the 140 character limit so there may be little
room to credit the author let alone add commentary. 
&lt;/p&gt;
&lt;p&gt;
Thus I was looking forward to retweeting becoming a formal feature of Twitter so that
these problems would be addressed. Unfortunately, while one of these problems was
fixed more problems were introduced. 
&lt;/p&gt;
&lt;h3&gt;Flaw #1: Need to visit multiple places to see all retweets of your content 
&lt;/h3&gt;
&lt;p&gt;
Before the introduction of the retweet feature, users could go to &lt;a href="http://www.twitter.com/replies"&gt;http://www.twitter.com/replies&lt;/a&gt; to
see all posts that reference their name which would include @replies and retweets.
The new Twitter features fragments this in an inconsistent manner. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1ptXjJkoqt8prm53JS56D6D2Zxn464HGDZ0lgViXXXi_qGfRiCHNyFaR4XICWQEcngdOI8vTdREQqdKC7zxq5vxw/twitter%20sidebar.PNG" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 4:&lt;/u&gt; Current Twitter sidebar
&lt;/p&gt;
&lt;p&gt;
Now users have to visit &lt;a href="http://www.twitter.com/replies"&gt;http://www.twitter.com/replies&lt;/a&gt; to
see people who has retweeted their posts using community conventions (i.e. copy and
pasting then prefixing &amp;quot;RT&amp;quot; to a tweet) and then visit &lt;a title="http://twitter.com/retweeted_of_mine" href="http://twitter.com/retweeted_of_mine"&gt;http://twitter.com/retweeted_of_mine&lt;/a&gt; to
see who has retweeted their posts by clicking the &lt;em&gt;Retweet&lt;/em&gt; link in the Twitter
web user interface. There will be different people in both lists. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1pgplRYtorrkLTCrqDZ3n8nf_vYaGY8AWydoZvJr0HV5r95chrwwmkF7-5rRWvsHZuNBf1QQUcble7s4sl6sSOCQ/retweets%20via%20replies.PNG" width="515" height="254" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 5:&lt;/u&gt; Retweets in the Replies/Mentions page
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;img src="http://public.bay.livefilestore.com/y1pp18llfCEnbIG2XpisYCU5WhmzcDr9kp0pMQidDFVyrSd5YFLW-0ywoicWBwxOFClhubGxg-fR6Tq1SMaTW1xiA/retweeted%20of%20mine.PNG" width="511" height="422" /&gt;&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 6:&lt;/u&gt; Retweets on the &amp;quot;Your tweets, retweeted&amp;quot; page
&lt;/p&gt;
&lt;p&gt;
It is surprising to me that Twitter didn't at least include posts that start with
RT followed by your username in &lt;a title="http://twitter.com/retweeted_of_mine" href="http://twitter.com/retweeted_of_mine"&gt;http://twitter.com/retweeted_of_mine&lt;/a&gt; as
well. 
&lt;/p&gt;
&lt;h3&gt;Flaw #2: No way to add commentary on what you are retweeting
&lt;/h3&gt;
&lt;p&gt;
As I mentioned earlier, it is fairly common for people to retweet a status update
and then add their own commentary. The retweet feature built into Twitter ignores
this common usage pattern and provides no option to add your own commentary. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1p6gVMQxDilJ_7esKRX9I97Nk0cYJ6ZGX2gxP_k0NUkD5NsF9JhloOgfLTz1td2NVt9J6z0ulpWCBP9pbtftk2pA/Retweet%20question.PNG" width="645" height="179" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 7:&lt;/u&gt; The Retweet prompt
&lt;/p&gt;
&lt;p&gt;
This omission is particularly problematic if you disagree with what you are sharing
and want to clarify to your followers that although you find the tweet interesting
you aren't endorsing the opinion.&amp;#160; 
&lt;/p&gt;
&lt;h3&gt;Flaw #3: Retweets don't show up in Twitter apps
&lt;/h3&gt;
&lt;p&gt;
One of the other surprising changes is that Twitter retweets have been introduced
in a backwards-incompatible manner into the API. This means that retweets created
using the Twitter retweet button do not show up in 3rd party applications that use
the Twitter API. See below for an example of what I see in &lt;a href="http://echofon.com/"&gt;Echofon&lt;/a&gt; versus
the Twitter web experience and notice the missing tweet. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://public.bay.livefilestore.com/y1pDqWNukk7Nzjy6N96i5llJ_vl10bmq1r0Zj87_lzYGo6ixxzzyQviq5Y3-_tDy75oL3Jld5-BQZa1WUZ5vFeoSA/twitter%20retweets.PNG" width="472" height="357" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 8:&lt;/u&gt; Twitter website showing a retweet
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;img src="http://public.bay.livefilestore.com/y1pXSe04VbbINJAv8UURAMubsYApto0gEIYJqrwwUptfGJt9Hm68Isbg1ndUR6ccbVBLAWel9xnAdp57Ejn-9FUUg/echofon%20no%20retweets.jpg" /&gt;&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Figure 9: &lt;/u&gt;The retweet is missing in Echofon
&lt;/p&gt;
&lt;p&gt;
Again, I find this surprising since it would have been straightforward to keep retweets
in the API and exposing them as if they were regular old school retweets prefixed
with &amp;quot;RT&amp;quot;. 
&lt;/p&gt;
&lt;h3&gt;Flaw #4: Pictures of people I don't know in my stream
&lt;/h3&gt;
&lt;p&gt;
The last major problem with the Twitter retweet feature is that it breaks user expectation
of the stream. Until this feature shipped, users could rest assured that the only
content they saw in their stream was content they had explicitly asked for by subscribing
to a user. Thus when you see someone in your stream the person's user name and avatar
are familiar to you. 
&lt;/p&gt;
&lt;p&gt;
With the new retweet feature, the Twitter team has decided to highlight the person
being retweeted and treat the person who I've subscribed to that did the retweeting
as an afterthought. Not only does this confuse users at first (who is this person
showing up in my feed and why?) but it also assumes that the content being retweeted
is more important than who did the retweeting. This is an unfortunate assumption since
in many cases the person who did the retweeting adds all the context. 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt; Now
Playing: &lt;a href="http://www.amazon.com/gp/search/ref=sr_adv_m_pop/?search-alias=popular&amp;amp;unfiltered=1&amp;amp;field-keywords=&amp;amp;field-artist=Jason Derulo&amp;amp;field-title=Stolen&amp;amp;field-label=&amp;amp;field-binding=&amp;amp;sort=relevancerank&amp;amp;Adv-Srch-Music-Album-Submit.x=19&amp;amp;Adv-Srch-Music-Album-Submit.y=6"&gt;Jason
Derulo&lt;/a&gt; - &lt;a href="http://www.amazon.com/s/ref=nb_ss_dmusic?url=search-alias%3Ddigital-music&amp;amp;field-keywords=Jason Derulo+Whatcha Say&amp;amp;x=0&amp;amp;y=0"&gt;Whatcha
Say&lt;/a&gt; &lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=kZVQTIIrF1Q:EunL2jSDvE4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=kZVQTIIrF1Q:EunL2jSDvE4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=kZVQTIIrF1Q:EunL2jSDvE4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=kZVQTIIrF1Q:EunL2jSDvE4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=kZVQTIIrF1Q:EunL2jSDvE4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=kZVQTIIrF1Q:EunL2jSDvE4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=kZVQTIIrF1Q:EunL2jSDvE4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=kZVQTIIrF1Q:EunL2jSDvE4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=kZVQTIIrF1Q:EunL2jSDvE4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/kZVQTIIrF1Q" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="2" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=3012dcde-d865-403a-b587-59fd94181251" />
    <total xmlns="http://purl.org/syndication/thread/1.0">2</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=3012dcde-d865-403a-b587-59fd94181251" title="2 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=3012dcde-d865-403a-b587-59fd94181251</commentRss>
    <title>Building Scalable Databases: Perspectives on the War on Soft Deletes</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2009/11/23/BuildingScalableDatabasesPerspectivesOnTheWarOnSoftDeletes.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=3012dcde-d865-403a-b587-59fd94181251</id>
    <published>2009-11-23T06:46:15.0522074-08:00</published>
    <updated>2009-11-23T06:46:15.0522074-08:00</updated>
    <category term="Web Development" label="Web Development" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Web+Development" />
    <content type="html">&lt;p&gt;
In the past few months I've noticed an increased number of posts questioning practices
around deleting and &amp;quot;virtually&amp;quot; deleting data from databases. Since some
of the concerns around this practice have to do with the impact of soft deletes on
scalability of a database-based application, I thought it would be a good topic for
my ongoing series on building scalable databases. 
&lt;/p&gt;
&lt;h3&gt;Soft Deletes 101: What is a soft delete and how does it differ from a hard delete? 
&lt;/h3&gt;
&lt;p&gt;
Soft deleting an item from a database means that the row or entity is marked as deleted
but not physically removed from the database. Instead it is hidden from normal users
of the system but may be accessible by database or system administrators. 
&lt;/p&gt;
&lt;p&gt;
For example, let's consider this sample database of XBox 360 games I own
&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="2" width="833"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Name&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
Category&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
ESRB&lt;/td&gt;
&lt;td valign="top" width="151"&gt;
GamespotScore&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
Company&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Call of Duty: Modern Warfare 2&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
First Person Shooter&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Mature&lt;/td&gt;
&lt;td valign="top" width="151"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
Infinity Ward&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Batman: Arkham Asylum&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
Fantasy Action Adventure&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Teen&lt;/td&gt;
&lt;td valign="top" width="151"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
Rocksteady Studios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Gears of War 2&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
Sci-Fi Shooter&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Mature&lt;/td&gt;
&lt;td valign="top" width="151"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
Epic Games&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Call of Duty 4: Modern Warfare&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
First Person Shooter&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Mature&lt;/td&gt;
&lt;td valign="top" width="151"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
Infinity Ward&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Soul Calibur IV&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
3D Fighting&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Teen&lt;/td&gt;
&lt;td valign="top" width="151"&gt;
8.5&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
Namco&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Now consider what happens if I decide that I'm done with Call of Duty 4: Modern Warfare
now that I own Call of Duty: Modern Warfare 2. The expected thing to do would then
be to remove the entry from my database using a query such as 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;code&gt;DELETE FROM games WHERE name='Call of Duty 4: Modern Warfare';&lt;/code&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This is what is considered a &amp;quot;hard&amp;quot; delete. 
&lt;/p&gt;
&lt;p&gt;
But then what happens if my friends decide to use my list of games to decide which
games to get me for Christmas? A friend might not realize I'd previously owned the
game and might get it for me again. Thus it might be preferable if instead of deleting
items from the database they were removed from consideration as games I currently
own but still could be retrieved in special situations. To address this scenario I'd
add an IsDeleted column as shown below 
&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="2" width="924"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Name&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
Category&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
ESRB&lt;/td&gt;
&lt;td valign="top" width="153"&gt;
GamespotScore&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
Company&lt;/td&gt;
&lt;td valign="top" width="91"&gt;
IsDeleted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Call of Duty: Modern Warfare 2&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
First Person Shooter&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Mature&lt;/td&gt;
&lt;td valign="top" width="153"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
Infinity Ward&lt;/td&gt;
&lt;td valign="top" width="91"&gt;
False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Batman: Arkham Asylum&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
Fantasy Action Adventure&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Teen&lt;/td&gt;
&lt;td valign="top" width="153"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
Rocksteady Studios&lt;/td&gt;
&lt;td valign="top" width="91"&gt;
False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Gears of War 2&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
Sci-Fi Shooter&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Mature&lt;/td&gt;
&lt;td valign="top" width="153"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
Epic Games&lt;/td&gt;
&lt;td valign="top" width="91"&gt;
False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Call of Duty 4: Modern Warfare&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
First Person Shooter&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Mature&lt;/td&gt;
&lt;td valign="top" width="153"&gt;
9.0&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
Infinity Ward&lt;/td&gt;
&lt;td valign="top" width="91"&gt;
True&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;
Soul Calibur IV&lt;/td&gt;
&lt;td valign="top" width="143"&gt;
3D Fighting&lt;/td&gt;
&lt;td valign="top" width="101"&gt;
Teen&lt;/td&gt;
&lt;td valign="top" width="153"&gt;
8.5&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
Namco&lt;/td&gt;
&lt;td valign="top" width="91"&gt;
False&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Then for typical uses an application would interact with the following view of the
underlying table
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;code&gt;CREATE VIEW current_games AS 
&lt;br /&gt;
SELECT Name, Category, ESRB, GameSpotScore, Company FROM games WHERE IsDeleted=False; &lt;/code&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
but when my friends ask me for a list of all of the games I have, I can provide the
full list of all the games I've ever owned from the original &lt;code&gt;games&lt;/code&gt; table
if needed. Now that we understand how one would use soft deletes we can discuss the
arguments against this practice. 
&lt;/p&gt;
&lt;h3&gt;Rationale for War: The argument against soft deletes
&lt;/h3&gt;
&lt;p&gt;
Ayende Rahien makes a cogent argument against soft deletes in his post &lt;a href="http://ayende.com/Blog/archive/2009/08/30/avoid-soft-deletes.aspx"&gt;Avoid
Soft Deletes&lt;/a&gt; where he writes 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;One of the annoyances that we have to deal when building enterprise applications
is the requirement that no data shall be lost. The usual response to that is to introduce
a WasDeleted or an IsActive column in the database and implement deletes as an update
that would set that flag.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Simple, easy to understand, quick to implement and explain.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;It is also, quite often, wrong.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The problem is that deletion of a row or an entity is rarely a simple event. It
effect not only the data in the model, but also the shape of the model. That is why
we have foreign keys, to ensure that we don’t end up with Order Lines that don’t have
a parent Order. And that is just the simplest of issues. 
&lt;br /&gt;
... 
&lt;br /&gt;
Let us say that we want to delete an order. What should we do? That is a business
decision, actually. But it is one that is enforced by the DB itself, keeping the data
integrity.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;When we are dealing with soft deletes, it is easy to get into situations where
we have, for all intents and purposes, corrupt data, because Customer’s LastOrder
(which is just a tiny optimization that no one thought about) now points to a soft
deleted order.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Ayende is right that adding an IsDeleted flag mean that you can no longer take advantage
of database triggers for use when cleaning up database state when a deletion occurs.
This sort of cleanup now has to moved up into the application layer. 
&lt;/p&gt;
&lt;p&gt;
There is another set of arguments against soft deletes in Richard Dingwall's post
entitled &lt;a href="http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/"&gt;The
Trouble with Soft Delete&lt;/a&gt; where he points out the following problems 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h6&gt;&lt;em&gt;Complexity&lt;/em&gt;
&lt;/h6&gt;
&lt;p&gt;
&lt;em&gt;To prevent mixing active and inactive data in results, all queries must be made
aware of the soft delete columns so they can explicitly exclude them. It’s like a
tax; a mandatory WHERE clause to ensure you don’t return any deleted rows.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;This extra WHERE clause is similar to checking return codes in programming languages
that don’t throw exceptions (like C). It’s very simple to do, but if you forget to
do it in even one place, bugs can creep in very fast. And it is background noise that
detracts away from the real intention of the query.&lt;/em&gt;
&lt;/p&gt;
&lt;h6&gt;&lt;em&gt;Performance&lt;/em&gt;
&lt;/h6&gt;
&lt;p&gt;
&lt;em&gt;At first glance you might think evaluating soft delete columns in every query
would have a noticeable impact on performance. However, I’ve found that most RDBMSs
are actually pretty good at recognizing soft delete columns (probably because they
are so commonly used) and does a good job at optimizing queries that use them. In
practice, filtering inactive rows doesn’t cost too much in itself.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Instead, the performance hit comes simply from the volume of data that builds
up when you don’t bother clearing old rows. For example, we have a table in a system
at work that records an organisations day-to-day tasks: pending, planned, and completed.
It has around five million rows in total, but of that, only a very small percentage
(2%) are still active and interesting to the application. The rest are all historical;
rarely used and kept only to maintain foreign key integrity and for reporting purposes.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Interestingly, the biggest problem we have with this table is not slow read performance
but writes. Due to its high use, we index the table heavily to improve query performance.
But with the number of rows in the table, it takes so long to update these indexes
that the application frequently times out waiting for DML commands to finish.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
These arguments seem less valid than Ayende's especially when the alternatives proposed
are evaluated. Let's look at the aforementioned problems and the proposed alternatives
in turn. 
&lt;/p&gt;
&lt;h3&gt;Trading the devil you know for the devil you don't: Thoughts on the alternatives
to soft deletes
&lt;/h3&gt;
&lt;p&gt;
Richard Dingwall argues that soft deletes add unnecessary complexity to the system
since all queries have to be aware of the IsDeleted column(s) in the database. As
I mentioned in my initial description of soft deletes this definitely does not have
to be the case. The database administrator can create views which the core application
logic interacts with (i.e. the &lt;code&gt;current_games&lt;/code&gt; table in my example) so
that only a small subset of system procedures need to actually know that the soft
deleted columns even still exist in the database. 
&lt;/p&gt;
&lt;p&gt;
A database becoming so large that data manipulation becomes slow due to having to
update indexes is a valid problem. However Richard Dingwall's suggested alternative
excerpted below seems to trade one problem for a worse one 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h6&gt;&lt;em&gt;The memento pattern&lt;/em&gt;
&lt;/h6&gt;
&lt;p&gt;
&lt;em&gt;Soft delete only supports undoing deletes, but the &lt;/em&gt;&lt;a href="http://en.wikipedia.org/wiki/Memento_pattern"&gt;&lt;em&gt;memento
pattern&lt;/em&gt;&lt;/a&gt;&lt;em&gt; provides a standard means of handling all undo scenarios your
application might require.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;It works by taking a snapshot of an item just before a change is made, and putting
it aside in a separate store, in case a user wants to restore or rollback later. For
example, in a job board application, you might have two tables: one transactional
for live jobs, and an undo log that stores snapshots of jobs at previous points in
time:&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The problem I have with this solution is that if your database is already grinding
to a halt simply because you track which items are active/inactive in your database,
how much worse would the situation be if you now store every state transition in the
database as well? Sounds like you're trading one performance problem for a much worse
one. 
&lt;/p&gt;
&lt;p&gt;
The real problem seems to be that the database has gotten too big to be operated on
in an efficient manner on a single machine. The best way to address this is to partition
or shard the database. In fact, you could even choose to store all inactive records
on one database server and all active records on another. Those interested in database
sharding can take a look at a &lt;a title="Building Scalable Databases: Pros and Cons of Various Database Sharding Schemes" href="http://www.25hoursaday.com/weblog/2009/01/16/BuildingScalableDatabasesProsAndConsOfVariousDatabaseShardingSchemes.aspx"&gt;more
detailed discussion on database sharding&lt;/a&gt; I wrote earlier this year.
&lt;/p&gt;
&lt;p&gt;
Another alternative proposed by both Ayende Rahien and Richard Dingwall is to delete
the data but use database triggers to write to an audit log in the cases where auditing
is the primary use case for keeping soft deleted entries in the database. This works
in the cases where the &lt;em&gt;&lt;u&gt;only reason&lt;/u&gt; &lt;/em&gt;for soft deleting entries is for
auditing purposes. However there are many real world situations where this is not
the case. 
&lt;/p&gt;
&lt;p&gt;
One use case for soft deleting is to provide an &amp;quot;undo&amp;quot; feature in an end
user application. For example, consider a user synchronizes the contact list on their
phone with one in the cloud (e.g. an iPhone or Windows Mobile/Windows Phone connecting
to Exchange or an Android phone connecting to Gmail). Imagine that the user now deletes
a contact from their phone because they do not have a phone number for the person
only to find out that person has also been deleted from their address book in the
cloud. At that point, an undo feature is desirable. 
&lt;/p&gt;
&lt;p&gt;
Other use cases could be the need to reactivate items that have been removed from
the database but with their state intact. For example, when people return to Microsoft
who used to work there in the past their seniority for certain perks takes into account
their previous stints at the company. Similarly, you can imagine a company restocking
an item that they had pulled from their shelves because they have become popular due
to some new fad (e.g. Beatles memorabilia is back in style thanks to &lt;a href="http://www.thebeatlesrockband.com/"&gt;The
Beatles™: Rock Band™&lt;/a&gt;). 
&lt;/p&gt;
&lt;p&gt;
The bottom line is that an audit log may be a useful replacement for soft deletes
in some scenarios but it isn't the answer to every situation where soft deletes are
typically used. 
&lt;/p&gt;
&lt;h3&gt;Not so fast: The argument against hard deletes 
&lt;/h3&gt;
&lt;p&gt;
So far we haven't discussed how hard deletes should fit in a world of soft deletes.
In some cases, soft deletes eventually lead to hard deletes. In the example of video
games I've owned I might decide that if a soft deleted item is several years old or
is a game from an outdated console then it might be OK to delete. So I'd create a
janitor process that would scan the database periodically to seek out soft deleted
entries to permanently delete. In other cases, some content may always be hard deleted
since there are no situations where one might consider keeping them around for posterity.
An example of the latter is comment or trackback spam on a blog post. 
&lt;/p&gt;
&lt;p&gt;
Udi Dahan wrote a rebuttal to Ayende Rahien's post where he question my assertion
above that there are situations where one wants to hard delete data from the database
in his post &lt;a href="http://www.udidahan.com/2009/09/01/dont-delete-just-dont/"&gt;Don’t
Delete – Just Don’t&lt;/a&gt; where he writes 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h5&gt;&lt;em&gt;Model the task, not the data&lt;/em&gt;
&lt;/h5&gt;
&lt;p&gt;
&lt;em&gt;Looking back at the story our friend from marketing told us, his intent is to
discontinue the product – not to delete it in any technical sense of the word. As
such, we probably should provide a more explicit representation of this task in the
user interface than just selecting a row in some grid and clicking the ‘delete’ button
(and “Are you sure?” isn’t it).&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;As we broaden our perspective to more parts of the system, we see this same pattern
repeating:&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Orders aren’t deleted – they’re cancelled. There may also be fees incurred if
the order is canceled too late.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Employees aren’t deleted – they’re fired (or possibly retired). A compensation
package often needs to be handled.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Jobs aren’t deleted – they’re filled (or their requisition is revoked). &lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;em&gt;In all cases, the thing we should focus on is the task the user wishes to perform,
rather than on the technical action to be performed on one entity or another. In almost
all cases, more than one entity needs to be considered.&lt;/em&gt;
&lt;/p&gt;
&lt;h5&gt;&lt;em&gt;Statuses&lt;/em&gt;
&lt;/h5&gt;
&lt;p&gt;
&lt;em&gt;In all the examples above, what we see is a replacement of the technical action
‘delete’ with a relevant business action. At the entity level, instead of having a
(hidden) technical WasDeleted status, we see an explicit business status that users
need to be aware of.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I tend to agree with Udi Dahan's recommendation. Instead of a technical flag like
IsDeleted, we should model the business process. So my database table of games I owned
should really be called &lt;code&gt;games_I_have_owned&lt;/code&gt; with the &lt;code&gt;IsDeleted&lt;/code&gt; column
replaced with something more appropriate such as &lt;code&gt;CurrentlyOwn&lt;/code&gt;. This is
a much better model of the real-life situation than my initial table and the soft
deleted entries are now clearly part of the business process as opposed to being part
of some internal system book keeping system. 
&lt;/p&gt;
&lt;p&gt;
Advocating that items be never deleted is a tad extreme but I'd actually lean closer
to that extreme than most. Unless the data is clearly worthless (e.g. comment spam)
or the cost is truly prohibitive (e.g. you're storing large amounts of binary data)
then I'd recommend keeping the information around instead of assuming the existence
of a DELETE clause in your database is a requirement that you use it. 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt; Now
Playing: &lt;a href="http://www.amazon.com/gp/search/ref=sr_adv_m_pop/?search-alias=popular&amp;amp;unfiltered=1&amp;amp;field-keywords=&amp;amp;field-artist=50 Cent&amp;amp;field-title=Stolen&amp;amp;field-label=&amp;amp;field-binding=&amp;amp;sort=relevancerank&amp;amp;Adv-Srch-Music-Album-Submit.x=19&amp;amp;Adv-Srch-Music-Album-Submit.y=6"&gt;50
Cent&lt;/a&gt; - &lt;a href="http://www.amazon.com/s/ref=nb_ss_dmusic?url=search-alias%3Ddigital-music&amp;amp;field-keywords=50 Cent+Baby By Me (feat. Ne-Yo)&amp;amp;x=0&amp;amp;y=0"&gt;Baby
By Me (feat. Ne-Yo)&lt;/a&gt; &lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=_E1QDqwrhGI:o1xGTqmEWJ4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=_E1QDqwrhGI:o1xGTqmEWJ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=_E1QDqwrhGI:o1xGTqmEWJ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=_E1QDqwrhGI:o1xGTqmEWJ4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=_E1QDqwrhGI:o1xGTqmEWJ4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=_E1QDqwrhGI:o1xGTqmEWJ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=_E1QDqwrhGI:o1xGTqmEWJ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=_E1QDqwrhGI:o1xGTqmEWJ4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=_E1QDqwrhGI:o1xGTqmEWJ4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/_E1QDqwrhGI" height="1" width="1"/&gt;</content>
  </entry>
  <entry>
    <link xmlns:thr="http://purl.org/syndication/thread/1.0" thr:count="2" rel="replies" type="application/atom+xml" href="http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=2d873df2-bbc6-410a-bfae-6f8042f933f2" />
    <total xmlns="http://purl.org/syndication/thread/1.0">2</total>
    <link rel="replies" type="text/html" href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=2d873df2-bbc6-410a-bfae-6f8042f933f2" title="2 Comments" />
    <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.25hoursaday.com/weblog/SyndicationService.asmx/GetEntryCommentsRss?guid=2d873df2-bbc6-410a-bfae-6f8042f933f2</commentRss>
    <title>Joe Hewitt on Irony</title>
    <link rel="alternate" type="text/html" href="http://www.25hoursaday.com/weblog/2009/11/14/JoeHewittOnIrony.aspx" />
    <id>http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=2d873df2-bbc6-410a-bfae-6f8042f933f2</id>
    <published>2009-11-14T07:03:28.1184728-08:00</published>
    <updated>2009-11-14T07:03:28.1184728-08:00</updated>
    <category term="Web Development" label="Web Development" scheme="http://www.25hoursaday.com/weblog/CategoryView.aspx?category=Web+Development" />
    <content type="html">&lt;p&gt;
Joe Hewitt, the developer of the &lt;a href="http://www.facebook.com/apps/application.php?id=6628568379"&gt;Facebook
iPhone application&lt;/a&gt;, has an insightful&amp;#160; blog post on the current trend of
developers favoring native applications over Web applications on mobile platforms
with centrally controlled app stores in his post &lt;a href="http://joehewitt.com/post/on-middle-men/"&gt;On
Middle Men&lt;/a&gt;. He writes
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;The Internet has been incredibly empowering to creators, and just as destructive
to middle men. In the 20th century, every musician needed a record label to get his
or her music heard. Every author needed a publishing house to be read. Every journalist
needed a newspaper. Anyone who wanted to send a message needed the post office. In
the Internet age, the tail no longer wags the dog, and those middle men have become
a luxury, not a necessity. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Meanwhile, the software industry is moving in the opposite direction. With the
web and desktop operating systems, the only thing in between software developers and
users is a mesh of cables and protocols. In the new world of mobile apps, a layer
of bureacrats stand in the middle, forcing each developer to queue up for a series
of patdowns and metal detectors and strip searches before they can reach their customers. 
&lt;br /&gt;
... 
&lt;br /&gt;
We're at a critical juncture in the evolution of software. The web is still here and
it is still strong. Anyone can still put any information or applications on a web
server without asking for permission, and anyone in the world can still access it
just by typing a URL. I don't think I appreciated how important that is until recently.
Nobody designs new systems like that anymore, or at least few of them succeed. What
an incredible stroke of luck the web was, and what a shame it would be to let that
freedom slip away.&lt;/em&gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Am I the only one who thinks the above excerpt would be similarly apt if you replaced
the phrase &amp;quot;mobile apps&amp;quot; with &amp;quot;Facebook apps&amp;quot; or &amp;quot;OpenSocial
apps&amp;quot;? 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt; Now
Playing: &lt;a href="http://www.amazon.com/gp/search/ref=sr_adv_m_pop/?search-alias=popular&amp;amp;unfiltered=1&amp;amp;field-keywords=&amp;amp;field-artist=Lady GaGa&amp;amp;field-title=Stolen&amp;amp;field-label=&amp;amp;field-binding=&amp;amp;sort=relevancerank&amp;amp;Adv-Srch-Music-Album-Submit.x=19&amp;amp;Adv-Srch-Music-Album-Submit.y=6"&gt;Lady
GaGa&lt;/a&gt; - &lt;a href="http://www.amazon.com/s/ref=nb_ss_dmusic?url=search-alias%3Ddigital-music&amp;amp;field-keywords=Lady GaGa+Bad Romance&amp;amp;x=0&amp;amp;y=0"&gt;Bad
Romance&lt;/a&gt; &lt;img style="vertical-align: middle" title="Note" alt="Note" src="http://shared.live.com/HjKMzTS-xzcms40%21CabizA/emoticons/music_note.gif" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=r-5dZftncjM:j1A0nWtjdVM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=r-5dZftncjM:j1A0nWtjdVM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=r-5dZftncjM:j1A0nWtjdVM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=r-5dZftncjM:j1A0nWtjdVM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=r-5dZftncjM:j1A0nWtjdVM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=r-5dZftncjM:j1A0nWtjdVM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=r-5dZftncjM:j1A0nWtjdVM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Carnage4life?a=r-5dZftncjM:j1A0nWtjdVM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Carnage4life?i=r-5dZftncjM:j1A0nWtjdVM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Carnage4life/~4/r-5dZftncjM" height="1" width="1"/&gt;</content>
  </entry>
</feed>
