<?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>timwhitlock.info &#187; twitblock</title>
	<atom:link href="http://timwhitlock.info/blog/tag/twitblock/feed/" rel="self" type="application/rss+xml" />
	<link>http://timwhitlock.info</link>
	<description>Tim Whitlock&#039;s personal site and blog</description>
	<lastBuildDate>Thu, 15 Dec 2011 13:51:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TwitBlock introduces blacklisting</title>
		<link>http://timwhitlock.info/blog/2010/11/17/twitblock-introduces-blacklisting/</link>
		<comments>http://timwhitlock.info/blog/2010/11/17/twitblock-introduces-blacklisting/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 17:18:04 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://timwhitlock.info/?p=911</guid>
		<description><![CDATA[TwitBlock is over a year old now. One thing we have tried to avoid is being an authority on what is and isn&#8217;t spam. We have deliberately avoided blacklisting accounts. The idea has always been to empower the community to collectively decide what is spam by bringing the most likely junk accounts to the surface. [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://twitblock.org/" target="_blank">TwitBlock</a> is over a year old now</strong>. One thing we have tried to avoid is being an <em>authority</em> on what is and isn&#8217;t spam. We have deliberately avoided blacklisting accounts. The idea has always been to empower the community to collectively decide what is spam by bringing the most <em>likely </em>junk accounts to the surface. We provide some very simple analysis, and indicate how many other people also think an account is spam.</p>
<p><strong>A blacklist is now in effect</strong></p>
<p>For reasons that I&#8217;ll explain below, we have decided to implement a blacklist system as of today. Blacklisted Twitter accounts always show up with a 100% confidence score and will appear at the top of scan results. You can still see the standard spam score indicators, as the screen-grab below shows.</p>
<p><span id="more-911"></span><a href="http://cdn.timwhitlock.info/wordpress/wp-content/uploads/2010/11/tbgrab.png" target="_blank"><img src="http://cdn.timwhitlock.info/wordpress/wp-content/uploads/2010/11/tbgrab.png" alt="Twitblock scan screen grab" /></a></p>
<p><strong>Who decides what accounts are blacklisted?</strong></p>
<p>Currently myself, and selected other people that I deem trustworthy. We take this seriously and won&#8217;t just blacklist an account for being annoying, or noisy. We roughly follow <a href="http://support.twitter.com/entries/18311#spam" target="_blank">Twitter&#8217;s own guidelines on spam</a>, and only blacklist accounts we are certain are malicious, fraudulent, or extremely distasteful.</p>
<p>If you would like to be an administrator, let us know by way of a <a href="http://twitter.com/?status=@twitblockapp%20I%20would%20like%20to%20be%20a%20TwitBlock%20admin" target="_blank">tweet</a>.</p>
<p>If you think you&#8217;ve been blacklisted unfairly, let us know by way of a <a href="http://twitter.com/?status=@twitblockapp%20you%20have%20blacklisted%20me%20unfairly" target="_blank">tweet</a> also.<br />
<strong></strong></p>
<p><strong>Why implement blacklisting?</strong></p>
<p>The methods we&#8217;ve used to date have worked reasonably well, but a distinct problem has been that if you block spammers on other site, it can take us several days to catch up with that data. Spam accounts can collect thousands of followers in a very short space of time, and do a fair bit of damage before they start to show in TwitBlock scans.</p>
<p><a href="http://cdn.timwhitlock.info/wordpress/wp-content/uploads/2010/11/scam1.png" target="_blank"><img class="alignright" src="http://cdn.timwhitlock.info/wordpress/wp-content/uploads/2010/11/scam1.png" alt="" width="320" height="242" /></a>Finally prompting the introduction of blacklists was my observation of the recent Facebook scams. One fake Twitter account was offering invites the new messaging system, another offering Facebook credits. I watched these go viral, racking up 2,000-3,000 followers each before they were finally suspended after about 36 hours.</p>
<p>Even if Twitter <a href="http://twitter.com/artie/status/4719584384909312" target="_blank">were investigating</a> these accounts, no warning was issued via their <a href="http://twitter.com/spam" target="_blank">spam</a> and <a href="http://twitter.com/safety" target="_blank">safety</a> accounts. The fact that these accounts were imitating such a well known company should make them a high priority, as they were far more likely to fool people. In the case of Facebook credits, financial fraud may have been involved.</p>
<p>It is clear that Twitter cannot act fast enough in shutting spam accounts down. If they were to show up in TwitBlock scans sooner, they would be reported by more users. Then perhaps Twitter would notice them sooner, and shut them down faster.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/11/17/twitblock-introduces-blacklisting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spam on Twitter doesn&#8217;t bother me</title>
		<link>http://timwhitlock.info/blog/2010/10/21/spam-doesnt-bother-me/</link>
		<comments>http://timwhitlock.info/blog/2010/10/21/spam-doesnt-bother-me/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 13:29:59 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://timwhitlock.info/?p=796</guid>
		<description><![CDATA[One of the most common things people say to me when I tell them about TwitBlock is along the lines of &#8220;I&#8217;m not bothered by spam on Twitter&#8221; &#8211; &#8220;I just ignore it&#8221; &#8211; &#8220;Why should I care if a spam account is following me?&#8220;. It&#8217;s a totally understandable point of view, but my response [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most common things people say to me when I tell them about <a href="http://twitblock.org" target="_blank">TwitBlock</a> is along the lines of &#8220;<em>I&#8217;m not bothered by spam on Twitter</em>&#8221; &#8211; &#8220;<em>I just ignore it</em>&#8221; &#8211; &#8220;<em>Why should I care if a spam account is following me?</em>&#8220;.</p>
<p><span id="more-796"></span><br />
It&#8217;s a totally understandable point of view, but my response is usually that there are certain entities that have no place in our online communities. Whether this invades your personal space or not, every opportunity should be taken to render it ineffective for the benefit of everyone.</p>
<p>If these junk accounts didn&#8217;t experience some level of success they probably wouldn&#8217;t bother, so somebody somewhere is falling for it. If you&#8217;re smart enough to know how to deal with spam and avoid the pitfalls, then perhaps you should use that knowledge for the benefit of others.</p>
<p>If you see a bikini clad model looking for &#8216;friends&#8217; and it turns out  she is trying to sell you counterfeit watches, ask yourself whether this  &#8216;person&#8217; has a place in your online community. You could ignore them, or you could report them with a single click.</p>
<p>Of course there are boundaries as to what we should consider harmful. A small business employing questionable tactics out of naivete or misguidedness is on the other end of the spectrum from a phishing attack designed to separate you from your credit card number. If you&#8217;re in any doubt as to what kind of things to look out for, <a href="http://support.twitter.com/entries/18311#spam" target="_blank">Twitter&#8217;s own definition of spam</a> is  good start.</p>
<p>Below are the results of my twtpoll on the subject</p>
<p><script src="http://twtpoll.com/js/badge.js" type="text/javascript"></script><br />
 <script src="http://twtpoll.com/badge/?twt=xz04jj&amp;r=1" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2010/10/21/spam-doesnt-bother-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter changes break TwitBlock [again]</title>
		<link>http://timwhitlock.info/blog/2009/09/19/twitter-changes-break-twitblock-again/</link>
		<comments>http://timwhitlock.info/blog/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 [...]]]></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://timwhitlock.info/blog/2009/09/19/twitter-changes-break-twitblock-again/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Diluting Block Counts</title>
		<link>http://timwhitlock.info/blog/2009/08/24/diluting-block-counts/</link>
		<comments>http://timwhitlock.info/blog/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 [...]]]></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://timwhitlock.info/blog/2009/08/24/diluting-block-counts/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Open letter #1</title>
		<link>http://timwhitlock.info/blog/2009/08/23/open-letter-1/</link>
		<comments>http://timwhitlock.info/blog/2009/08/23/open-letter-1/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 21:58:30 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[open letter]]></category>
		<category><![CDATA[twitblock]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/23/open-letter-1/</guid>
		<description><![CDATA[I just received an email that I thought would be of interest to everyone. I have removed people&#8217;s names for reasons of privacy, but I have left the spelling mistakes in for a sense of realism. My open reply to the author follows at the bottom. Hello Tim, I&#8217;m glad to see you have changed [...]]]></description>
			<content:encoded><![CDATA[<p>I just received an email that I thought would be of interest to everyone. I have removed people&#8217;s names for reasons of privacy, but I have left the spelling mistakes in for a sense of realism. My open reply to the author follows at the bottom.<span id="more-135"></span></p>
<blockquote><p>Hello Tim,</p></blockquote>
<blockquote><p>I&#8217;m glad to see you have changed the Twitblock site as it appears it may do the job that you initialy wanted it do &amp; the bleeding seems to have stopped with me at 93 blocks. However &#8211; have you thought of ways of how you can reverse the damage your site did to other legitimate accounts like mine, @&lt;screen_name&gt; (71 blocks) &amp; other larger accounts who were majorly affected by your site with account blocks due to being mislabled as spammers/nuisances? All of those blocks damage reputations.</p>
<p>There is no question that a &#8220;lot of damage&#8221; was done. As I had said &#8211; on Friday night I did not sleep a single second as I had watched that evening my account blocks starting to increase &amp; increase. I have no idea of exactly how many acount blocks I had before your site came into existence but I am pretty sure my numbers were similar to @&lt;screen_name&gt; and &#8220;snowball effect&#8221; blocking due to your site rapidly increased the #s.</p>
<p>Personally I feel that your system should reverse all account blocks that you were responsible for and have people start over again fresh with your current site status. I also think you should apoligize to the many people that Twitblock affected negatively. &lt;name&gt; (@&lt;screen_name&gt;) is one of the sweetest ladies &amp; you saw how she was affected which is similar to my feelings &#8211; I felt awful &amp; it got worse as I saw the #s increase. Most accounts probably have no idea how they were affected by being mislabeled.</p>
<p>Anyway &#8211; I ask you to find a way to correct things. I do not want those account blocks on my Twitter account which damages my reputation &amp; potentially my account with Twitter. I look forward to your response.</p></blockquote>
<h3>My reply</h3>
<p><font color="#ff0000">The reason the blocks appeared to increase is that every time a Twitter user authenticates with TwitBlock we get access to more blocks. i.e. <strong>most of the blocks on these people&#8217;s accounts probably already existed</strong>. The incremental nature of them is largely an illusion. </font></p>
<p><font color="#000000">It is physically impossible for me to ascertain which blocks were performed via TwitBlock as opposed to those performed on Twitter.com or another third party application.</font></p>
<p><font color="#000000">To log into the Twitter API with one of my users&#8217; access keys and unblock a user from their account would be an abuse of TwitBlock&#8217;s privacy policy, not to mention thoroughly immoral.</font></p>
<p>To establish which blocks on your account were performed via TwitBlock, you would have to contact Twitter. I don&#8217;t know whether they record this information or whether they would give it out &#8211; My guess would be &#8220;maybe&#8221; and &#8220;probably not&#8221;.</p>
<p><em>As to what I shall be doing to &#8220;correct things&#8221;:</em></p>
<p>I shall be doing nothing to reverse the alleged and spurious damage for the reasons stated above. I have already spent my weekend altering the application in favour of a very small contingent of people, i.e. the author of this letter plus one or two more, who incidentally were far more polite.</p>
<p>I have also had one aggrieved &#8220;customer&#8221; succeed in getting two of my IP addresses black listed by an SPF provider meaning I cannot send emails to some ISPs from the TwitBlock servers. This act of aggression makes me very unlikely to bow to further pressure and less inclined to apologise to anyone.</p>
<p>I suspect the aggressor is one of the few people who have made contact with me already, and I shall also be exercising my own right to block Twitter users who direct aggression at me, or continually make unreasonable demands.</p>
<p>My focus continues to be making an application that works well for as many people as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2009/08/23/open-letter-1/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Statement on the TwitBlock backlash</title>
		<link>http://timwhitlock.info/blog/2009/08/22/statement-on-the-twitblock-backlash/</link>
		<comments>http://timwhitlock.info/blog/2009/08/22/statement-on-the-twitblock-backlash/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 11:00:14 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[statement]]></category>
		<category><![CDATA[twitblock]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/22/statement-on-the-twitblock-backlash/</guid>
		<description><![CDATA[Constructive criticism of TwitBlock seems to have quite rapidly turned into some quite aggressive complaints including several demands for immediate closure.  This is not intended to be a malicious project, but with a sudden rush of large numbers, I am experiencing a minefield of issues that I did not predict. I am doing my best [...]]]></description>
			<content:encoded><![CDATA[<p>Constructive criticism of <a href="http://twitblock.org/" target="_blank">TwitBlock</a> seems to have quite rapidly turned into some quite aggressive complaints including several <a href="http://twitter.com/LarryWentz/statuses/3468385568" target="_blank">demands for immediate closure</a>.  This is not intended to be a malicious project, but with a sudden rush of large numbers, I am experiencing a minefield of issues that I did not predict. I am doing my best to fight these fires, but please bear a few things in mind a few things when feeding back to me:</p>
<p><strong>First and foremost, this is <em>alpha</em> software</strong>.<br />
I did not expect 7,000 visits a day after just three weeks. (I can thank <a href="http://mashable.com/2009/08/19/twitter-spammer-avatars/" target="_blank">Mashable</a> for that overhead). I am constantly thinking of ways I can please everyone and still keep the application doing what it needs to do, which is help people remove illegitimate followers.</p>
<h4><span id="more-134"></span><strong>Secondly I accept that the scoring is misleading</strong> <strong>out of context</strong>.</h4>
<p><a href="http://www.twitblock.org/scan_followers.php" target="_blank">The scanner</a> is designed to show your <strong>most likely</strong> spam followers, which is why it lists them in order. In terms of accuracy, the real spammers do seem to top this list with huge numbers. The problem is when people analyse an <em>individual </em>account (often their own) &#8211; they think that any number appearing on the screen means they have been identified as spam.</p>
<h4>The heuristics used are only relative indicators.</h4>
<p>By adding up various indicators, most likely spam can be identified &#8211; This works well in context, but I am not saying that if you follow more than twice the number of people that follow you that you are a spammer. My task now is relay this information to avoid offending you.</p>
<p><font color="#ff0000"><em>It is quite possible that I will remove the single-scan feature and internalize the scoring mechanism, so that you can only see your followers in relative terms as a leaderboard of &#8220;most likely&#8221; spam.</em></font></p>
<h4><strong>TwitBlock does not report you if you get a score</strong></h4>
<p>The application does not contact Twitter or black list you if your account gets a score. A score is just a number to be put in context.<br />
People are saying their account is in jeopardy because it will encourage people to block them, this is a fair point and I&#8217;m addressing it, but only Twitter can suspend your account and they are unlikely to do this without manual investigation. I apologise if you feel your reputation is somehow ruined, this is not what I intended for this application.</p>
<h4><strong>TwitBlock is not intended to replace the brain</strong></h4>
<p>In 30+ years of email we still haven&#8217;t really cracked automatic filtering of spam, so in 3+ weeks of TwitBlock I don&#8217;t expect to either.<br />
Please don&#8217;t block users who come up in scans without looking a bit closer. The tool is just designed to bring them to the surface.</p>
<h4>TwitBlock only uses the tools Twitter provides</h4>
<p>Twitter provide a blocking feature, and the <a href="http://apiwiki.twitter.com/Twitter+REST+API+Method%3A-blocks-blocking" target="_blank">Twitter API</a> makes this data available to applications. This could well change in future, I think a lot of things are going to change in the near future. If you think access to blocks is against Twitter&#8217;s responsibility to your privacy then take it up with them. <a href="http://www.twitblock.org/about.php#privacy" target="_blank">I promise</a> to never reveal to anyone who is blocking who.</p>
<h4><strong>Finally, this is not a commercial product</strong></h4>
<p>I developed this application in my &#8220;spare&#8221; time out side of my 40+ hour week as Technical Director of <a href="http://www.publicreative.com/" target="_blank">Public</a>. I am not trying to make money, I actually hope that this application makes itself redundant. I don&#8217;t want for it to be required, because I want spam off Twitter the same as you. When feeding back, please try to be constructive and polite. This way I will be much more likely to implement features and ideas based on your comments. I am listening, even if you don&#8217;t <a href="http://www.twitter.com/timwhitlock" target="_blank">@ me directly</a>.</p>
<p>Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://timwhitlock.info/blog/2009/08/22/statement-on-the-twitblock-backlash/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>TwitBlock trialling whitelist feature</title>
		<link>http://timwhitlock.info/blog/2009/08/21/twitblock-trialing-whitelist-feature/</link>
		<comments>http://timwhitlock.info/blog/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 [...]]]></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://timwhitlock.info/blog/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://timwhitlock.info/blog/2009/08/18/top-20-faces-of-twitter-spam/</link>
		<comments>http://timwhitlock.info/blog/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. [...]]]></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://timwhitlock.info/blog/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://timwhitlock.info/blog/2009/08/09/identical-profile-pics-on-twitter/</link>
		<comments>http://timwhitlock.info/blog/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 [...]]]></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://timwhitlock.info/blog/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://timwhitlock.info/blog/2009/08/03/twitblock-spam-ratings-explained/</link>
		<comments>http://timwhitlock.info/blog/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 [...]]]></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://timwhitlock.info/blog/2009/08/03/twitblock-spam-ratings-explained/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

