<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web 2.1 &#187; twitter</title>
	<atom:link href="http://web.2point1.com/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://web.2point1.com</link>
	<description>Tim Whitlock&#039;s home in the Blogohedron</description>
	<lastBuildDate>Thu, 13 May 2010 21:26:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Omnibus post &#8211; 05 Apr 2010</title>
		<link>http://web.2point1.com/2010/04/10/omnibus-post-05-apr-2010/</link>
		<comments>http://web.2point1.com/2010/04/10/omnibus-post-05-apr-2010/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:23:15 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[331]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[debill]]></category>
		<category><![CDATA[evil]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[utweet]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=353</guid>
		<description><![CDATA[I joked yesterday about writing one omnibus tweet per week. But actually, that&#8217;s not a bad idea at my current blogging rate. So here goes, my week in the Twittersphere -

The Digital Economy Bill
Not only am I totally unqualified to write any real critique on this topic, but there&#8217;s so much debate online already that [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://twitter.com/timwhitlock/status/11872994139" target="_blank">joked yesterday</a> about writing one omnibus tweet per week. But actually, that&#8217;s not a bad idea at my current blogging rate. So here goes, my week in the Twittersphere -</p>
<h3><span id="more-353"></span></h3>
<h3>The Digital Economy Bill</h3>
<p>Not only am I totally unqualified to write any real critique on this topic, but there&#8217;s so much debate online already that any post I could write would be but a drop in an already soaking wet ocean.</p>
<p>On a personal note though, as much as the rushing-through of the bill exemplifies the illusion that I&#8217;ve always imagined democracy to be, it at least makes politics relevant to me; something I can&#8217;t say I&#8217;ve ever really experienced. I don&#8217;t think I&#8217;m alone here either as the comments on <a href="http://www.techradar.com/news/internet/the-digital-economy-bill-proves-digital-democracy-doesnt-work-682134" target="_blank">this TechRadar post</a> illustrate. My own comment was as follows:</p>
<blockquote><p><em>For me this whole affair has highlighted that some of us Digital Natives (I speak for myself) live in a bubble, and assume that the big issues facing our country are taken care of by others more knowledgeable in politics and economics. I had never watched the Parliament Channel before either, but if I was a teacher or a nurse you can bet I would have done. My point, if there is one, is that I agree with Gary that it is &#8220;business as usual&#8221; we just don&#8217;t usually notice.</em></p></blockquote>
<p>My best hope from all of this is that the DEBill debacle has made people like me that have little contact with the <em>grown-up</em> world and who struggle to keep up with current affairs, realise that the Internet is just as much of a political issue as healthcare, education and taxation, and hopefully it will give me better reason to choose how I vote from now on.<a href="http://www.techradar.com/news/internet/the-digital-economy-bill-proves-digital-democracy-doesnt-work-682134?src=rss&amp;attr=newsintern&amp;comments_pg=3#comments#ixzz0khLlSy3E"><br />
</a></p>
<h3>Apple getting evil</h3>
<p>Apple alters the legal terms of their developer SDK as they roll out iPhone OS4. Another topic on which there are <a href="http://www.google.co.uk/search?q=apple+iphone+section+3.3.1" target="_blank">volumes of content</a> superior to what you&#8217;ll find here. If you need somewhere to start, my particular favourites are as follows:</p>
<ul>
<li><a href="http://daringfireball.net/2010/04/why_apple_changed_section_331" target="_blank">Daring Fireball</a> appears to have become the de-facto reaction and is a great read.</li>
<li><a href="http://theflashblog.com/?p=1888" target="_blank">Lee Brimlow on the Flash Blog</a> (I&#8217;m curious how much legal clout the &#8220;opinions are my own&#8221; line really carries in the end)</li>
<li><a href="http://blogs.unity3d.com/2010/04/10/unity-and-the-iphone-os-4-0/" target="_blank">Level headed response from Unity 3D</a> (it&#8217;s not all about  Adobe, you know!)</li>
<li><a href="http://twitter.com/phonegap/status/11845902722" target="_blank">Phone Gap</a> appears unaffected as Webkit is a valid way to deploy an app. nothing on <a href="http://phonegap.com/blog" target="_blank">their blog</a> yet.</li>
<li>I enjoyed  <a href="http://joeberkovitz.com/blog/2010/04/08/apple-takes-stance-on-consciousness/" target="_blank">this existential angle</a></li>
</ul>
<p>On a personal note again (deeply cynical as usual) I have never been under any illusion that there is any such thing as a benevolent corporation. (There are such organisations &#8211; they are called charities). Obviously Apple want to control every aspect of deploying to their platform, they are going to continue to do so, as sure as Google are going to enter every market place they physically can until our lives are 100% reliant upon their existence. So, am I just gong to lie down and die, you ask? (Yes, probably). Seriously though, roll on <a href="http://www.w3.org/TR/widgets/" target="_blank">W3C Widgets</a> &#8211; I want to see the web go mobile, not see the mobile industry lock down our web.</p>
<h3>Nearly forgot to mention UTweet</h3>
<p>On Tuesday the Twittersphere (or at least the digital/media corner of it) erupted in massively over-the-top debate about <a href="http://www.uniqlo.com/utweet/">Uniqlo&#8217;s UT campaign site</a>, which I imagine was aimed firmly at aforementioned (ahem) influencers. For 24 hours the dialogue went like this:</p>
<ul>
<li>People tweeted the link and said they <a href="http://twitter.com/timwhitlock/status/11692239973" target="_blank">liked it</a>. Some even <a href="http://twitter.com/charlottemc/status/11692635117" target="_blank">said it was incredible</a></li>
</ul>
<ul>
<li>In purposeful contrast to this hype, further commentators said it was <a href="http://twitter.com/vikkichowney/status/11692893872" target="_blank">nothing special</a> and didn&#8217;t see what all the fuss was about.</li>
<li>The protagonists then either <a href="http://twitter.com/litmanlive/status/11693096105" target="_blank">backed off</a> or <a href="http://twitter.com/iaintait/status/11717640153" target="_blank">defended their position</a>, creating more fuss.</li>
<li>The fuss was <a href="http://twitter.com/timwhitlock/status/11717338961" target="_blank">played down</a> as being disproportionate to the event, creating more fuss.</li>
<li>People  started <a href="http://iabuksocial.co.uk/?p=516">blogging about it,</a><a href="http://iabuksocial.co.uk/?p=516"></a> and the fact that it was never intended to be anything more than a <a href="http://crackunit.posterous.com/a-little-more-on-why-i-like-utweet" target="_blank">nice looking bit of fun</a> in the first place. (oh, the irony)</li>
<li>Those that waited a whole 24 hours before commenting had the hindsight to <a href="http://nowincolour.com/2010/04/the-unliqlo-monsoon/" target="_blank">comment on the herd itself</a></li>
</ul>
<p>Not a bad exercise in getting people to talk about your brand, really.</p>
<p>I think I&#8217;m done. I&#8217;ve got some coding to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2010/04/10/omnibus-post-05-apr-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve been busy, ok?</title>
		<link>http://web.2point1.com/2010/04/10/ive-been-busy-ok/</link>
		<comments>http://web.2point1.com/2010/04/10/ive-been-busy-ok/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:02:15 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[birdhouse]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=364</guid>
		<description><![CDATA[I haven&#8217;t written a post for over a month, which is pretty shameful, especially as I have masses to talk about; I just have no time. Here&#8217;s a brief catch up on my recent musings.
Birdhouse IM &#8211; A real-time replacement for Twitter DM
My last pet project BirdhouseIM is live, although still in an invite-only beta [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t written a post for over a month, which is pretty shameful, especially as I have masses to talk about; I just have no time. Here&#8217;s a brief catch up on my recent musings.</p>
<h3>Birdhouse IM &#8211; A real-time replacement for Twitter DM</h3>
<p>My <em>last</em> pet project <a href="http://birdhouse.im/" target="_blank">BirdhouseIM</a> is live, although still in an invite-only beta phase. I won&#8217;t replicate <a title="Birdhouse FAQs" href="http://birdhouse.im/page/faq" target="_blank">the FAQs</a> here, but in short it&#8217;s a browser-based, instant messaging client that uses your <a href="http://twitter.com/timwhitlock" target="_blank">Twitter identity</a>. It&#8217;s just a bit of fun and not intended to compete with your favourite IM client, but if you&#8217;re chatting to one or more people on Twitter and want to take the conversation seamlessly into private chat, then it works pretty well.</p>
<p><span id="more-364"></span>The project was 100% an excuse to play with <a href="http://nodejs.org/" target="_blank">NodeJS</a>, which is a very neat bit of kit. I&#8217;m a JavaScript/PHP developer, and although there&#8217;s a lot of power in that combination, mucking about with socket servers and realtime clients is limited. So you can imagine NodeJS has opened up a new world for me. I just need more excuses to play with it.</p>
<h3>My next hair-brained scheme?</h3>
<p>Not one to actually finish a project, I&#8217;m onto my next. I won&#8217;t go into details, except to say that it involves Twitter [obviously] and Foursquare &#8230; and it&#8217;s on the theme of <em>hyperlocal</em>. It doesn&#8217;t have a name yet, which always bugs me when I start developing, because I don&#8217;t know what to call stuff. I hope to have a prototype ready for the next <a href="http://twitterdevelopernest.com/" target="_blank">Devnest</a>, which gives me 10 days. In fact I realise that as I waste my time writing this I could have got some work done.</p>
<p>*buckles down*</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2010/04/10/ive-been-busy-ok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beating noisy Twitter apps</title>
		<link>http://web.2point1.com/2009/11/29/beating-noisy-twitter-apps/</link>
		<comments>http://web.2point1.com/2009/11/29/beating-noisy-twitter-apps/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 12:25:51 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[viral]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=269</guid>
		<description><![CDATA[I woke up this morning to the apparent viral spread of the TweetCloud app that unoriginally, but very nicely displays your most tweeted words of the year, or month, or .. you get the idea. Here&#8217;s mine -&#62;
If you&#8217;re impatient, you may wish to skip to the good bit.
Preamble
Now, how did this app manage such [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://web.2point1.com/wp-content/uploads/2009/11/tweetcloud.png"><img class="alignright size-full wp-image-271" title="tweetcloud" src="http://web.2point1.com/wp-content/uploads/2009/11/tweetcloud.png" alt="tweetcloud" width="234" height="188" /></a>I woke up this morning to the apparent viral spread of the TweetCloud app that unoriginally, but very nicely displays your most tweeted words of the year, or month, or .. you get the idea. Here&#8217;s mine -&gt;</p>
<p><span id="more-269"></span>If you&#8217;re impatient, you may wish to <a href="#goodbit">skip to the good bit</a>.</p>
<h3>Preamble</h3>
<p>Now, how did this app manage such spread when there are so many like it? <em>Possibly</em> because it tweets from your account when your results are ready. This is not uncommon and it can be a nice feature that I might recommend. With the difference that it should be a 100% opt-in feature. TweetCloud&#8217;s start button says &#8220;<em>make and tweet cloud</em>&#8220;, so it does warn you. But people don&#8217;t read &#8211; they click.</p>
<p>TweetCloud insists that you log in before you can use it. It uses OAuth for this which is good (+1 point). Doing this means it can make calls to the Twitter API within <em>your</em> hourly request limit, rather than exhaust its own. (useful if you&#8217;re not whitelisted). But the real reason you must authenticate with TweetCloud is so that it can update your status. When building an app you have to seriously justify asking the user to authenticate/register etc.. As a general rule, the user should see that this action is for their benefit, not yours.</p>
<p>Good examples of this done right would be:</p>
<ul>
<li><em>TwitPic</em>, which has a genuine use for tweeting on your behalf.</li>
<li><em>Canabalt</em>, a game where you <em>want</em> to share your score for social kudos.</li>
</ul>
<p>Both of these apps make the tweet opt-in <em>each</em> time.</p>
<p><a name="goodbit"></a></p>
<h3>The good bit</h3>
<p>While TweetCloud was busy generating the cloud (which took a minute or so) I dived off to my Twitter settings and revoked the permission I had granted the app. If you don&#8217;t know how to do this, it&#8217;s under &#8220;settings &gt; connections&#8221;, or here: <a href="http://twitter.com/account/connections" target="_blank">http://twitter.com/account/connections</a></p>
<p><a href="http://web.2point1.com/wp-content/uploads/2009/11/tweetrevoke.png"><img class="alignnone size-full wp-image-273" title="tweetrevoke" src="http://web.2point1.com/wp-content/uploads/2009/11/tweetrevoke.png" alt="tweetrevoke" width="517" height="217" /></a></p>
<p>As soon as you revoke this permission the app can no longer use the access key that it has obtained. It needs this for any API call that <em>must</em> be authenticated. <em>e.g.</em> getting your public timeline of tweets does not require authentication, whereas updating your status does.</p>
<p>Interestingly the cloud generation continued to churn away. This suggests that the app was actually paging through my timeline without even using authentication. i.e. making public API calls under its own rate limit.</p>
<p>Lo and behold, upon completion there was no tweet from my account.</p>
<p>I also decided to post my cloud as a <a href="http://twitpic.com/rfxe0" target="_blank">TwitPic</a>, just to say &#8230; well, you know.  TwitPic doesn&#8217;t use OAuth, which it should, but that&#8217;s another post.</p>
<p>A few other things to note about &#8220;connections&#8221;:</p>
<ul>
<li>When you grant access to an app, it can store its access key <strong>forever</strong>. i.e. Twitter don&#8217;t provide a key expiry feature like Facebook do. So you should revoke permissions from any app that you&#8217;ve stopped using.</li>
<li>My statistics from <a href="http://twitblock.org" target="_blank">TwitBlock</a> suggest that about 1% of people actually do this. (about 400 of 30,000 users have revoked my key)</li>
<li>Signing out of Twitter does not prevent the app using this access. An app with an access key can tweet from your account whenever it wants until you revoke</li>
<li>The read/write permission you can see is set by the app, not by you. Twitter doesn&#8217;t offer granular permissions like Facebook do</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/11/29/beating-noisy-twitter-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Is Facebook Connect a phishing scam waiting to happen?</title>
		<link>http://web.2point1.com/2009/10/14/is-facebook-connect-a-phishing-scam-waiting-to-happen/</link>
		<comments>http://web.2point1.com/2009/10/14/is-facebook-connect-a-phishing-scam-waiting-to-happen/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 23:07:06 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=192</guid>
		<description><![CDATA[Two things happened today that inspired me to write this post tonight.

A brief back-and-forth on Twitter with @kaigani where I outlandishly claimed that Facebook Connect is a phishing scam waiting to happen
The warning of another Twitter scam that typically exploits the layman&#8217;s inability to spot a fake URL.

Facebook and Twitter both offer authentication services arguably [...]]]></description>
			<content:encoded><![CDATA[<p>Two things happened today that inspired me to write this post tonight.</p>
<ol>
<li>A brief back-and-forth on Twitter with <a href="http://twitter.com/kaigani/status/4858023858" target="_blank">@kaigani</a> where I outlandishly claimed that Facebook Connect is a <a href="http://twitter.com/timwhitlock/status/4858148685" target="_blank">phishing scam waiting to happen</a></li>
<li>The warning of another <a href="http://mashable.com/2009/10/14/twitter-phishing-scam/" target="_blank">Twitter scam</a> that typically exploits the <em>layman</em>&#8217;s inability to spot a fake URL.</li>
</ol>
<p>Facebook and Twitter both offer authentication services <a href="http://en.wikipedia.org/wiki/Single_sign-on#Shared_Authentication_Schemes_which_are_not_Single_Sign-On" target="_blank">arguably</a> known as &#8220;single sign-on&#8221;. <a href="http://developers.facebook.com/connect.php" target="_blank">Facebook Connect</a> is a proprietary system, and Twitter offers a system based on the <a href="http://oauth.net/about" target="_blank">OAuth</a> standard. These services do something quite marvellous &#8211; They allow you to authenticate with a another website without the third party ever seeing your password. What&#8217;s makes it even more handy is that you&#8217;re probably already signed in to these popular services, so you may not need to enter your password at all. <strong>The problem is when you do</strong>.</p>
<p><span id="more-192"></span>If the <em>mother</em> service decides you aren&#8217;t logged in, it will have to present you with a username/password prompt just as if you were entering the main site. Here&#8217;s an example Facebook Connect popup:</p>
<p><img class="alignnone size-full wp-image-197" title="fbconnect_popup" src="http://web.2point1.com/wp-content/uploads/2009/10/fbconnect_popup.png" alt="fbconnect_popup" width="464" height="499" /></p>
<p>A complacent user is likely to fill in these credentials without checking whether this <em>page</em> belongs to Facebook. This is the classic <a href="http://en.wikipedia.org/wiki/Phishing" target="_blank">Phishing</a> model, and I would argue that it is made worse by the additional trust the user may place in this familiar system. Furthermore, some implementations present this dialogue in a overlay form where no address bar appears at all.</p>
<h4>There are various lines of defence available to the user at this point, and they are all in the browser.</h4>
<p><strong>1. The URL</strong><br />
Most phishing scams use <a href="http://en.wikipedia.org/wiki/Phishing#Link_manipulation" target="_blank">cleverly manipulated URLs</a> that can easily trick an untrained eye. The fact is that the address bar and the URL are (from an end-user perspective) quite technical aspects of using the Internet. These &#8220;connect&#8221; dialogues are prone to this problem, and to make it easier for the phishing gangs they don&#8217;t have to recreate the whole home page,  just one small window. Even for Internet professionals, an accurately copied design may provide little reason to glance at the address bar.</p>
<p><strong>2. The SSL Certificate<br />
</strong>In the unlikely event that hackers have infiltrated your ISP, you still have the server certificate to ensure the site is legit. Observant readers will notice that the above image does not show a secure page. This is a failing of the vendor and of Facebook. A secure page does exist for Facebook Connect [see below] but Facebook should not offer standard HTTP at all and in this example the vendor should have used the SSL version.</p>
<p><img class="alignnone size-full wp-image-201" title="fbconnect_popup_ssl_cert" src="http://web.2point1.com/wp-content/uploads/2009/10/fbconnect_popup_ssl_cert.png" alt="fbconnect_popup_ssl_cert" width="464" height="414" /></p>
<p>Twitter also fails to restrict their authentication screen exclusively to SSL. To make matters worse their SSL screen does not contain full identity information (see below). Many Twitter apps don&#8217;t use the SSL page, and in fact the application settings page for developers lists the OAuth service URLs as HTTP variants only.</p>
<p><img class="alignnone size-full wp-image-205" style="border: 1px solid black;" title="twitter_ssl_cert_crop" src="http://web.2point1.com/wp-content/uploads/2009/10/twitter_ssl_cert_crop.png" alt="twitter_ssl_cert_crop" width="427" height="298" /></p>
<h4>Is this a technology problem, or a human problem?</h4>
<p>These scams exploit ignorance and complacency &#8211; Two things that user-friendly web services like these can only perpetuate. All the cryptography magic and clever security models behind these services can&#8217;t actually prevent phishing scams, and as they become more common and more trusted, perhaps they just make phishing scams easier to pull off.</p>
<p>I&#8217;m not convinced these problems can be solved by technology; at least not by technology in the websites themselves.  I think this can only be solved by something that sits between the user and the trap &#8211; For example: the web browser, your ISP, or the HTTP protocol itself.</p>
<ul>
<li>Chrome and IE8 both offer a neat address bar feature where the host name is bolder than the rest of the URL making fake URLs much easier to spot;</li>
<li>Firefox has more obvious server certificate and identity information, makes more of song and dance about invalid certificates and shows the host name in the status bar;</li>
<li>Various browsers offer warnings of known scam URLs and no doubt many ISPs aid this effort</li>
</ul>
<p>However, these features still require education and awareness. Above all, any solution requires the attention of the complacent masses who just want to get on with their life and click &#8220;OK&#8221; until they get what they want.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/10/14/is-facebook-connect-a-phishing-scam-waiting-to-happen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter changes break TwitBlock [again]</title>
		<link>http://web.2point1.com/2009/09/19/twitter-changes-break-twitblock-again/</link>
		<comments>http://web.2point1.com/2009/09/19/twitter-changes-break-twitblock-again/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 19:43:58 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=168</guid>
		<description><![CDATA[Last week a another change to Twitter caused me problems with my personal project TwitBlock. For the impatient, see my Google groups post about it. (It didn&#8217;t go down very well).
If you&#8217;re a Twitter user, you&#8217;re probably familiar with this image:

It is/was the default profile image for users that have not uploaded a custom avatar. [...]]]></description>
			<content:encoded><![CDATA[<p>Last week a another change to Twitter caused me problems with my personal project <a href="http://twitblock.org/" target="_blank">TwitBlock</a>. For the impatient, see my <a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/ee7839d0c82ea17a?hl=en" target="_blank">Google groups post</a> about it. (It didn&#8217;t go down very well).</p>
<p>If you&#8217;re a Twitter user, you&#8217;re probably familiar with this image:</p>
<p><img class="alignnone size-full wp-image-169" title="default_profile_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_normal.png" alt="default_profile_normal" width="48" height="48" /></p>
<p>It is/was the default profile image for users that have not uploaded a custom avatar. You may also have noticed last week that Twitter has introduced a new version. Actually they they made seven of them in different colours:<br />
<img class="alignnone size-full wp-image-170" title="default_profile_0_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_0_normal.png" alt="default_profile_0_normal" width="48" height="48" /> <img class="alignnone size-full wp-image-171" title="default_profile_1_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_1_normal.png" alt="default_profile_1_normal" width="48" height="48" /> <img class="alignnone size-full wp-image-172" title="default_profile_2_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_2_normal.png" alt="default_profile_2_normal" width="48" height="48" /> <img class="alignnone size-full wp-image-173" title="default_profile_3_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_3_normal.png" alt="default_profile_3_normal" width="48" height="48" /> <img class="alignnone size-full wp-image-174" title="default_profile_4_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_4_normal.png" alt="default_profile_4_normal" width="48" height="48" /> <img class="alignnone size-full wp-image-175" title="default_profile_5_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_5_normal.png" alt="default_profile_5_normal" width="48" height="48" /> <img class="alignnone size-full wp-image-176" title="default_profile_6_normal" src="http://web.2point1.com/wp-content/uploads/2009/09/default_profile_6_normal.png" alt="default_profile_6_normal" width="48" height="48" /></p>
<p>At least I think they made seven; I can&#8217;t find any more, but I can&#8217;t find any official document stating how many are out there either.</p>
<p><span id="more-168"></span></p>
<h3>So what?</h3>
<p>So &#8230; TwitBlock crawls Twitter for <a href="http://www.twitblock.org/report_pics.php" target="_blank">duplicate profile pics</a> to help identify spam accounts. The app needs to know what images are the default ones, because otherwise it will penalize people heavily for having what <em>appears </em>to be the same image as thousands of other people.</p>
<p>This relies rather delicately on factors that are liable to change and that aren&#8217;t strictly a part of the <a href="http://apiwiki.twitter.com/" target="_blank">developer API</a>, so I have to keep a close eye on things. I concede this is not a very robust solution, and I certainly wouldn&#8217;t base a commercial product around such weak &#8220;technology&#8221;. In fact I&#8217;m not sure I&#8217;d base a commercial product around Twitter at all.</p>
<p>I get a lot of emails and DMs from people telling me that they&#8217;ve received errors using TwitBlock. Almost always this is due to the Twitter API failing to respond &#8211; either timing out or sending back some HTTP error. It&#8217;s quite embarrassing, and I can only imagine how much worse this would be if people were paying for a Twitter-based service.</p>
<p>A Twitter app doesn&#8217;t just rely on the API, it relies on everything that makes up the Twitter service. This includes its full feature set and its hardware infrastructure. I am of the opinion that the above-described profile image change was significant enough that Twitter should have documented the change in advance. Facebook do a good job of addressing the community far in advance of changes, and I think this is yet another indicator that Twitter is out of its depth.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/09/19/twitter-changes-break-twitblock-again/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Diluting Block Counts</title>
		<link>http://web.2point1.com/2009/08/24/diluting-block-counts/</link>
		<comments>http://web.2point1.com/2009/08/24/diluting-block-counts/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 21:42:02 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[blocking]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/24/diluting-block-counts/</guid>
		<description><![CDATA[I made a major change to TwitBlock the other night. The change was made to protect people who are heavily blocked, but are not &#8220;spam&#8221;. Of course that depends on your definition. (A topic for another day)
Originally each block on account would yield 10 points. Then I became aware of just how murky this issue [...]]]></description>
			<content:encoded><![CDATA[<p>I made a major change to <a href="http://twitblock.org/">TwitBlock</a> the other night. The change was made to protect people who are heavily blocked, but are not &#8220;spam&#8221;. Of course that depends on your definition. (A topic for another day)</p>
<p>Originally each block on account would yield 10 points. Then I became aware of just how murky this issue is. Barack Obama is blocked by many accounts (Republicans no doubt) plus some people with extreme right wing views were being blocked heavily. Then <a href="http://web.2point1.com/2009/08/23/open-letter-1/" target="_blank">the complaints </a>started. People whose businesses survive on a huge Twitter following accused me of destroying their reputations, and generating further blocks on their account by showing the number of existing blocks.</p>
<p>So now two things have changed for the time being:<br />
1. Clicks on &#8220;not spam&#8221; are deducted from blocks;<br />
2. Blocks are <em>diluted</em> by the size of a user&#8217;s following. 10 points are added for every 1%. So, if you&#8217;re blocked by 40 people, but are followed by 8,000 this will only yield 5 points.</p>
<p>Although this has stemmed the complaints, the scanner is less aggressive and lots of real spam accounts are not showing up with high enough scores. I am struggling to find the balance in the face of all of this and may have to tweak it again.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/24/diluting-block-counts/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TwitBlock trialling whitelist feature</title>
		<link>http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/</link>
		<comments>http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 23:50:27 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/</guid>
		<description><![CDATA[- or &#8211; &#8220;I told you it was in Alpha&#8221;
I&#8217;ve rolled out an experimental TwitBlock feature designed to reduce &#8220;false positives&#8221; for legitimate accounts that are being blocked. Whitelist entries are now subtracted from blocks. i.e. accounts marked as &#8220;not spam&#8221; will have their blocks counteracted on a 1:1 basis. If this feature is abused, [...]]]></description>
			<content:encoded><![CDATA[<h3>- or &#8211; &#8220;I told you it was in Alpha&#8221;</h3>
<p><strong>I&#8217;ve rolled out an experimental <a href="http://twitblock.org/" target="_blank">TwitBlock</a> feature</strong> designed to reduce &#8220;false positives&#8221; for legitimate accounts that are being blocked. Whitelist entries are now subtracted from blocks. i.e. accounts marked as &#8220;not spam&#8221; will have their blocks counteracted on a 1:1 basis. If this feature is abused, it will be removed.<strong> </strong>It survives on the premise that the spam bots are not capable of whitelisting each other.</p>
<p>Here&#8217;s the full story:<br />
<span id="more-133"></span></p>
<p>As well as trying to work on <a href="http://twitblock.org/" target="_blank">TwitBlock</a> in my &#8220;spare&#8221; time, I&#8217;ve also been manning the Customer Service department (i.e. Twitter) and the Press Office (with the help of my personal press officer <a href="http://twitter.com/adamvincenzini" target="_blank">@adamvincenzini</a>). Monitoring a <a href="http://twitter.com/#search?q=twitblock" target="_blank">Twitter search for TwitBlock</a> shows that most people are pleased with the service. Amongst the tweets there is some valuable feedback and feature requests, but also quite a few vocal complaints, mostly directed at me personally.</p>
<p><strong>The number one complaint</strong> is that legitimate accounts are getting spam scores due to being blocked. In relative terms an account with a lot of blocks is more likely to be spam than an account with a few or none. But in reality people get blocked for various reasons &#8211; sometimes out of animosity, whether for their political or religious views, or just because they don&#8217;t like the person. Worst of all, and somewhat ironic, is that TwitBlock <em>encourages </em>blocking &#8211; that&#8217;s its MO &#8211; and I have been worrying that this may aggravate the situation, especially if people are too trigger happy and accept the spam scores blindly.</p>
<p>One of TwitBlock&#8217;s competitors has been arguing that blocks are a poor indicator of spam, and I think they have a point. I&#8217;d supply a link to said competitor except for the fact that they are a commercial enterprise. (TwitBlock is not a business, a spam-free life should be free).</p>
<p>So every time you click &#8220;not spam&#8221; on an account this will be used to counter every person that clicked &#8220;block&#8221;. This is an experiment, because it could be abused. That&#8217;s just the nature of what we&#8217;re doing here. Try it out, I look forward to more quality feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top 20 Faces of Twitter Spam</title>
		<link>http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/</link>
		<comments>http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 23:06:43 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/</guid>
		<description><![CDATA[As we approach 3,000 TwitBlock users, we know of over 100,000 blocks and have stored 20,000 profile pic checksums. I figured it was time to start crunching some numbers.
The first of many reports shows the top 20 most duplicated avatars that we know about.
Many spam accounts use identical avatars across hundreds of accounts. 		TwitBlock uses [...]]]></description>
			<content:encoded><![CDATA[<p>As we approach 3,000 <a href="http://twitblock.org" target="_blank">TwitBlock</a> users, we know of over 100,000 blocks and have stored 20,000 profile pic checksums. I figured it was time to start crunching some numbers.</p>
<p>The first of many reports shows the <strong><a href="http://www.twitblock.org/report_pics.php" target="_blank">top 20 most duplicated avatars</a></strong> that we know about.</p>
<p>Many spam accounts use identical avatars across hundreds of accounts. 		TwitBlock uses this fact as an indicator of a likely spam account. This report just shows the top 20 that we&#8217;ve identified, but there are many more.</p>
<p>This indicator is one of the best ways Twitter could prevent spam accounts from signing up in the first place. Clearly bots have been developed that continually generate new accounts and Twitter does not seem able to prevent this despite the most prolific accounts displaying such identical properties.  With a tiny 0.01% of Twitter accounts authenticated with TwitBlock one can only imagine how many of these accounts are out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identical profile pics on Twitter</title>
		<link>http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/</link>
		<comments>http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 23:15:45 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/</guid>
		<description><![CDATA[The list of Twitter accounts below all have something in common &#8211; They all have an identical profile image, which looks like this:

At the time of writing none of these accounts have been suspended. Whether they are breaking any laws or not I don&#8217;t know, but it is clearly a syndicate whichever way you look [...]]]></description>
			<content:encoded><![CDATA[<p>The list of Twitter accounts below all have something in common &#8211; They all have an <em>identical</em> profile image, which looks like this:</p>
<p><a href="http://web.2point1.com/wp-content/uploads/2009/08/untitled.jpg" title="Shelley Ryan"><img src="http://web.2point1.com/wp-content/uploads/2009/08/untitled.jpg" alt="Shelley Ryan" /></a></p>
<p>At the time of writing none of these accounts have been suspended. Whether they are breaking any laws or not I don&#8217;t know, but it is clearly a syndicate whichever way you look at it. The profiles all point to a <a href="http://whois.domaintools.com/116.124.128.227" target="_blank">Korean-registered</a> &#8220;Cash generator&#8221; website, which [I would hazard a guess] is a con.</p>
<p><a href="http://twitblock.org?wp">TwitBlock</a> unearthed this statistic from a list of <strike>only 18,000</strike> 100,000 blocked accounts provided by under <strike>400</strike> 3,000 TwitBlock users . When you consider the size and growth of Twitter, you can well imagine that there are far more than <strike>120</strike> 288 profiles in this syndicate. You also have to wonder how much of Twitter&#8217;s growth figures can be attributed to this junk.</p>
<p>[ UPDATE:  18 Aug ]<br />
Many of these accounts have been suspended, but TwitBlock is discovering new ones each day &#8211; currently 248 accounts known with this image.</p>
<p>[ UPDATE 19 Aug ]<br />
I&#8217;ve produced a report of the <a href="http://www.twitblock.org/report_pics.php" target="_blank">top 20 most duplicated profile pics</a> identified by TwitBlock</p>
<p><span id="more-130"></span></p>
<p><strong><font color="#ff0000">Warning</font>: Do not sign up, or give any of your details to the organizations operating these Twitter accounts. I am publishing them only to exemplify the problem of Twitter spam. I am not responsible for any interaction you have with them, which unless you are insane, should be none.</strong></p>
<p><a href="http://twitter.com/vMeqPI">http://twitter.com/vMeqPI</a><br />
<a href="http://twitter.com/WRrCMg">http://twitter.com/WRrCMg</a><br />
<a href="http://twitter.com/mlJJQF">http://twitter.com/mlJJQF</a><br />
<a href="http://twitter.com/ANbVrR">http://twitter.com/ANbVrR</a><br />
<a href="http://twitter.com/nbbUFw">http://twitter.com/nbbUFw</a><br />
<a href="http://twitter.com/VbjyLv">http://twitter.com/VbjyLv</a><br />
<a href="http://twitter.com/Cntyby">http://twitter.com/Cntyby</a><br />
<a href="http://twitter.com/LqtRcf">http://twitter.com/LqtRcf</a><br />
<a href="http://twitter.com/uOyqVa">http://twitter.com/uOyqVa</a><br />
<a href="http://twitter.com/XpgpRn">http://twitter.com/XpgpRn</a><br />
<a href="http://twitter.com/rTVygA">http://twitter.com/rTVygA</a><br />
<a href="http://twitter.com/nEJTBg">http://twitter.com/nEJTBg</a><br />
<a href="http://twitter.com/YMQQpS">http://twitter.com/YMQQpS</a><br />
<a href="http://twitter.com/VQKPnQ">http://twitter.com/VQKPnQ</a><br />
<a href="http://twitter.com/wPIkCc">http://twitter.com/wPIkCc</a><br />
<a href="http://twitter.com/IxQeki">http://twitter.com/IxQeki</a><br />
<a href="http://twitter.com/fRHwjS">http://twitter.com/fRHwjS</a><br />
<a href="http://twitter.com/SQLkeN">http://twitter.com/SQLkeN</a><br />
<a href="http://twitter.com/UVITMh">http://twitter.com/UVITMh</a><br />
<a href="http://twitter.com/LALErx">http://twitter.com/LALErx</a><br />
<a href="http://twitter.com/XPAUtE">http://twitter.com/XPAUtE</a><br />
<a href="http://twitter.com/oTYNJJ">http://twitter.com/oTYNJJ</a><br />
<a href="http://twitter.com/btnwEw">http://twitter.com/btnwEw</a><br />
<a href="http://twitter.com/miHqid">http://twitter.com/miHqid</a><br />
<a href="http://twitter.com/mBlDFx">http://twitter.com/mBlDFx</a><br />
<a href="http://twitter.com/ZNXOwa">http://twitter.com/ZNXOwa</a><br />
<a href="http://twitter.com/NqGOyW">http://twitter.com/NqGOyW</a><br />
<a href="http://twitter.com/hxavpn">http://twitter.com/hxavpn</a><br />
<a href="http://twitter.com/RuoiJm">http://twitter.com/RuoiJm</a><br />
<a href="http://twitter.com/EsWAoU">http://twitter.com/EsWAoU</a><br />
<a href="http://twitter.com/qhbEHn">http://twitter.com/qhbEHn</a><br />
<a href="http://twitter.com/NYnXrh">http://twitter.com/NYnXrh</a><br />
<a href="http://twitter.com/USPwTH">http://twitter.com/USPwTH</a><br />
<a href="http://twitter.com/AXJCxP">http://twitter.com/AXJCxP</a><br />
<a href="http://twitter.com/EwkDGF">http://twitter.com/EwkDGF</a><br />
<a href="http://twitter.com/CFsgJh">http://twitter.com/CFsgJh</a><br />
<a href="http://twitter.com/OergeH">http://twitter.com/OergeH</a><br />
<a href="http://twitter.com/ZCotSf">http://twitter.com/ZCotSf</a><br />
<a href="http://twitter.com/vLxDqS">http://twitter.com/vLxDqS</a><br />
<a href="http://twitter.com/WicZJO">http://twitter.com/WicZJO</a><br />
<a href="http://twitter.com/IbXRqY">http://twitter.com/IbXRqY</a><br />
<a href="http://twitter.com/YvPFRr">http://twitter.com/YvPFRr</a><br />
<a href="http://twitter.com/HBkOqt">http://twitter.com/HBkOqt</a><br />
<a href="http://twitter.com/ZgEuOL">http://twitter.com/ZgEuOL</a><br />
<a href="http://twitter.com/uvKjQD">http://twitter.com/uvKjQD</a><br />
<a href="http://twitter.com/vnARQf">http://twitter.com/vnARQf</a><br />
<a href="http://twitter.com/HerWuB">http://twitter.com/HerWuB</a><br />
<a href="http://twitter.com/eKVLUB">http://twitter.com/eKVLUB</a><br />
<a href="http://twitter.com/gfPZlU">http://twitter.com/gfPZlU</a><br />
<a href="http://twitter.com/UyiqGC">http://twitter.com/UyiqGC</a><br />
<a href="http://twitter.com/qviSWp">http://twitter.com/qviSWp</a><br />
<a href="http://twitter.com/TqSLDX">http://twitter.com/TqSLDX</a><br />
<a href="http://twitter.com/TqZyii">http://twitter.com/TqZyii</a><br />
<a href="http://twitter.com/bsvukd">http://twitter.com/bsvukd</a><br />
<a href="http://twitter.com/jhIpgR">http://twitter.com/jhIpgR</a><br />
<a href="http://twitter.com/bhfmmf">http://twitter.com/bhfmmf</a><br />
<a href="http://twitter.com/uXqbWQ">http://twitter.com/uXqbWQ</a><br />
<a href="http://twitter.com/WJpxYg">http://twitter.com/WJpxYg</a><br />
<a href="http://twitter.com/oWMngy">http://twitter.com/oWMngy</a><br />
<a href="http://twitter.com/QmTmrh">http://twitter.com/QmTmrh</a><br />
<a href="http://twitter.com/LUGSUc">http://twitter.com/LUGSUc</a><br />
<a href="http://twitter.com/ODdVhx">http://twitter.com/ODdVhx</a><br />
<a href="http://twitter.com/XcJaEV">http://twitter.com/XcJaEV</a><br />
<a href="http://twitter.com/WjtuYv">http://twitter.com/WjtuYv</a><br />
<a href="http://twitter.com/GugifL">http://twitter.com/GugifL</a><br />
<a href="http://twitter.com/VpoThO">http://twitter.com/VpoThO</a><br />
<a href="http://twitter.com/jxlhkU">http://twitter.com/jxlhkU</a><br />
<a href="http://twitter.com/pQruGQ">http://twitter.com/pQruGQ</a><br />
<a href="http://twitter.com/VdqRmx">http://twitter.com/VdqRmx</a><br />
<a href="http://twitter.com/QFxPlO">http://twitter.com/QFxPlO</a><br />
<a href="http://twitter.com/tbASwj">http://twitter.com/tbASwj</a><br />
<a href="http://twitter.com/KNjwtX">http://twitter.com/KNjwtX</a><br />
<a href="http://twitter.com/mtjiht">http://twitter.com/mtjiht</a><br />
<a href="http://twitter.com/VHvahx">http://twitter.com/VHvahx</a><br />
<a href="http://twitter.com/cicBeL">http://twitter.com/cicBeL</a><br />
<a href="http://twitter.com/gnhEGT">http://twitter.com/gnhEGT</a><br />
<a href="http://twitter.com/VkbCoV">http://twitter.com/VkbCoV</a><br />
<a href="http://twitter.com/uRSNHq">http://twitter.com/uRSNHq</a><br />
<a href="http://twitter.com/jkVeul">http://twitter.com/jkVeul</a><br />
<a href="http://twitter.com/vDTPIa">http://twitter.com/vDTPIa</a><br />
<a href="http://twitter.com/KqmLxa">http://twitter.com/KqmLxa</a><br />
<a href="http://twitter.com/GmvaEw">http://twitter.com/GmvaEw</a><br />
<a href="http://twitter.com/TvUjVh">http://twitter.com/TvUjVh</a><br />
<a href="http://twitter.com/AyEExh">http://twitter.com/AyEExh</a><br />
<a href="http://twitter.com/mbjbri">http://twitter.com/mbjbri</a><br />
<a href="http://twitter.com/tYUjFU">http://twitter.com/tYUjFU</a><br />
<a href="http://twitter.com/YwoFmN">http://twitter.com/YwoFmN</a><br />
<a href="http://twitter.com/wFdCmw">http://twitter.com/wFdCmw</a><br />
<a href="http://twitter.com/UQwOoc">http://twitter.com/UQwOoc</a><br />
<a href="http://twitter.com/BdJUJt">http://twitter.com/BdJUJt</a><br />
<a href="http://twitter.com/UDHDLW">http://twitter.com/UDHDLW</a><br />
<a href="http://twitter.com/vRFIjE">http://twitter.com/vRFIjE</a><br />
<a href="http://twitter.com/uxLgDu">http://twitter.com/uxLgDu</a><br />
<a href="http://twitter.com/HUAhjY">http://twitter.com/HUAhjY</a><br />
<a href="http://twitter.com/EMvvjh">http://twitter.com/EMvvjh</a><br />
<a href="http://twitter.com/kSTglV">http://twitter.com/kSTglV</a><br />
<a href="http://twitter.com/PPojhB">http://twitter.com/PPojhB</a><br />
<a href="http://twitter.com/sHbtXU">http://twitter.com/sHbtXU</a><br />
<a href="http://twitter.com/sqwqbe">http://twitter.com/sqwqbe</a><br />
<a href="http://twitter.com/gmErEo">http://twitter.com/gmErEo</a><br />
<a href="http://twitter.com/KamTTo">http://twitter.com/KamTTo</a><br />
<a href="http://twitter.com/LYDItd">http://twitter.com/LYDItd</a><br />
<a href="http://twitter.com/vpGLjY">http://twitter.com/vpGLjY</a><br />
<a href="http://twitter.com/liYDFu">http://twitter.com/liYDFu</a><br />
<a href="http://twitter.com/ilTDJU">http://twitter.com/ilTDJU</a><br />
<a href="http://twitter.com/OscPit">http://twitter.com/OscPit</a><br />
<a href="http://twitter.com/tPcsUl">http://twitter.com/tPcsUl</a><br />
<a href="http://twitter.com/nCNaSv">http://twitter.com/nCNaSv</a><br />
<a href="http://twitter.com/RCetVe">http://twitter.com/RCetVe</a><br />
<a href="http://twitter.com/sKPvYO">http://twitter.com/sKPvYO</a><br />
<a href="http://twitter.com/LJudBk">http://twitter.com/LJudBk</a><br />
<a href="http://twitter.com/YMLaqt">http://twitter.com/YMLaqt</a><br />
<a href="http://twitter.com/gxFBFv">http://twitter.com/gxFBFv</a><br />
<a href="http://twitter.com/iMyqAQ">http://twitter.com/iMyqAQ</a><br />
<a href="http://twitter.com/XbMgVj">http://twitter.com/XbMgVj</a><br />
<a href="http://twitter.com/sOwKHA">http://twitter.com/sOwKHA</a><br />
<a href="http://twitter.com/qBaFnR">http://twitter.com/qBaFnR</a><br />
<a href="http://twitter.com/hGMTOF">http://twitter.com/hGMTOF</a><br />
<a href="http://twitter.com/TZrLkX">http://twitter.com/TZrLkX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TwitBlock spam ratings explained</title>
		<link>http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/</link>
		<comments>http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 22:12:13 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[junk]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/</guid>
		<description><![CDATA[
A detailed explanation of the scoring mechanism used by TwitBlock.
Some people have complained that they get a high spam score and point out that they are not spammers. There are a number of important things to note about this.

This software is in alpha &#8211; these indicators and the scoring mechanisms attached to them will change.
As [...]]]></description>
			<content:encoded><![CDATA[<h4></h4>
<h3>A detailed explanation of the scoring mechanism used by <a href="http://twitblock.org/?wp" target="_blank">TwitBlock</a>.</h3>
<p>Some people have complained that they get a high spam score and point out that they are not spammers. There are a number of important things to note about this.</p>
<ul>
<li><a href="http://twitblock.org/?wp" target="_blank">This software</a> is in alpha &#8211; these indicators and the scoring mechanisms attached to them <strong>will</strong> change.</li>
<li>As the system gathers data it will rely less on <a href="http://en.wikipedia.org/wiki/Heuristic" target="_blank">heuristics</a> and more on cross-referencing (e.g. how many people have blocked an account)</li>
<li>Some of these tests are only indicators of <strong>automation</strong>, not specifically of malicious behaviour.</li>
<li>The spam rating has <strong>no limit</strong> &#8211; Scoring 40 may be high for a &#8220;<em>legimate</em>&#8221; account, but in a list with real spammers scoring 300+ you&#8217;ll be way down the bottom.</li>
<li>If you display characteristics of a spammer then perhaps this amounts to the same thing as being a spammer. Most normal users score <em>zero.</em></li>
</ul>
<p>Roughly in order of accuracy, here are the 8 tests currently performed in the standard <a href="http://twitblock.org/scan_followers.php?wp" target="_blank">TwitBlock scan</a>.</p>
<h4><span id="more-128"></span>1. Ignore factor.</h4>
<p>This could also be called &#8220;inverse popularity&#8221;. If you follow 200 people and only 50 follow you back your ignore factor is 75%. Whether or not these 50 are the same people you follow is not analysed. The cut-off for scoring is 50%. <strong>Every 1% above 50 currently yields one point</strong>.</p>
<p>This simple and easily calculable factor is quite accurate because it reflects real human behaviour that can be observed. An account that is clearly spam, such as an &#8220;adult&#8221; account will have many times less followers than friends.</p>
<p>Naturally some spammers have found ways to beat this indicator. In some cases spam accounts follow each other to build up numbers, but a more cunning technique is the &#8220;sleeper&#8221; approach. Sleeper accounts pose as real people using stolen tweets pulled from the public timeline. TwitBlock may eventually crawl Twitter looking for these accounts, so expect more about this in future posts.</p>
<h4>2. Follow Rate</h4>
<p>The average number of people you follow per day forms your follow rate. This is calculated as the number of people you follow divided by the number of days you&#8217;ve been on Twitter. Although it&#8217;s a crude average, it is very telling and probably the second most reliable heuristic indicator. Even if you occasionally add a hundred people in a day it&#8217;s unlikely you can keep this up, so your average will drop. Averages are generally low even for power users, so a higher value is a strong indication of automation. The current cut-off (considered normal) is 10 per day. <strong>A point is added for every follower per day above 10.</strong></p>
<p><strong>[UPDATE - Aug 12]</strong><br />
Many popular accounts have high follow rates due to a &#8220;following back&#8221; policy, whether automated or not. The rate at which an account is followed is now subtracted from this value. This may result in lowering spam scores of real spammers, but it also reduces the number of false positives. So now, the rate at which an account follows without reciprocation is known as the &#8220;Stalking rate&#8221;.</p>
<h4>3. Blocked by others</h4>
<p>When you log into TwitBlock the system has access to your blocks and currently refreshes this list once per day until you revoke your authorization of the app. This is a key indicator that will become much more interesting as TwitBlock gathers data. <strong>Currently <strike>10</strike> 5 points are applied for each block on an account</strong>.</p>
<p><strong>[ UPDATE - Aug 22 ]<br />
</strong><a href="http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/">Whitelisting now used to counteract blocks<br />
</a></p>
<p><strong>[ UPDATE - Aug 24]<br />
</strong><a href="http://web.2point1.com/2009/08/24/diluting-block-counts/">Blocks are now diluted by follower count</a></p>
<h4></h4>
<h4>4. Identical profile pics</h4>
<p>Spammers commonly reuse the same image on multiple accounts. This is particularly common with the &#8220;adult&#8221; accounts. TwitBlock crawls all the blocked accounts it knows about and stores an <a href="http://en.wikipedia.org/wiki/MD5" target="_blank">MD5 checksum</a> of the profile image file. This way any account&#8217;s profile image can be cross-reference with this database. <strong>10 points are applied for each account known to use the same image</strong>.</p>
<p>This test could be easily foiled by spammers. Even using the same photo, it would be trivial alter the checksum. So far however, they appear not to be doing so.</p>
<h4>5. Tweets via API</h4>
<p>Status updates that are submitted without using a registered application (e.g. TweetDeck) will appear as having come &#8220;from API&#8221; (<a href="http://apiwiki.twitter.com/FAQ#HowdoIget%E2%80%9CfromMyApp%E2%80%9DappendedtoupdatessentfrommyAPIapplication" target="_blank">See Twitter FAQ</a>). This is very useful, because spammers don&#8217;t want their activity to be tied to a registered application. If they start to do so then a list of known spammer applications will have to be compiled.<strong> 10 points are applied for API updates</strong>, although only the most recent tweet is analysed for performance reasons.</p>
<p>The points applied are deliberately low because people often give their password to applications that tweet on their behalf. e.g. &#8220;I just signed up to this awesome app and got 1,000 new followers&#8221;. This practice seriously needs to die out, but that&#8217;s another blog post for another day. Additionally many spam tweets appear as &#8220;from Web&#8221;, which suggest they are using the public web interface.</p>
<h4> 6. Missing profile info</h4>
<p>This is not a very reliable indicator and may be dropped. There are 4 profile fields that can be left empty: (Bio, Location, URL and profile image). Most legitimate users fill in at least two of these. <strong>Currently 2 points are added if you leave all 4 empty</strong>. A drop in the ocean compared with other indicators. As I write this I realise this is due a review.</p>
<h4>7. Username looks dodgy</h4>
<p>For a human this is a strong indicator, but <a href="http://stackoverflow.com/questions/1164186/how-to-check-if-a-string-looks-randomized-or-human-generated-and-pronouncable" target="_blank">incredibly hard to implement programmatically</a>. Currently this test performs some very crude tests on the username, such as being all numbers, having no vowels, and checking for a common format used by spammers where two words are followed by a number. Further research is required in this area, but it&#8217;s unlikely to form a reliable indicator going forward because it&#8217;s so easy to fool. <strong><strike>10</strike> 5 points are applied for a username that looks randomly generated</strong>.</p>
<h4>8. Spammy words in bio and status</h4>
<p>This more traditional test merely checks the bio against a list of bad words. The word list needs development and is currently not big enough to be useful. I intend to use the known blocked accounts to build a list of most common words found in spam accounts. <strong>An arbitrary score per word found is currently applied</strong>. For example &#8220;Naughty videos&#8221; yields 10 points.</p>
<p>Stay tuned for updates, as all these indicators are likely to change.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
