Derived Statistics

Twitter

In a follow up to this post I thought I’d explain how I obtained the statistics used.

The first indicators were easy to obtain – No Avatar Picture, No Tweets and No Followers and are fairly self explanatory. Obtaining a figure for Inactive Accounts however was a little more difficult. Because Twitter does not return any information (other than a total) for a private accounts tweets, the last_tweet_date was not available for all users. To stop this from skewing the dataset I removed these accounts from the sample size.

  John Key Clare Curran Russel Norman Metiria Turei David Shearer Gareth Hughes
Private Accounts 4269 153 342 284 284 377
Percentage 8.5 6.3 8.7 8.3 8.9 8.9

As you can see the percentage of private accounts is roughly equivalent – and not enough to skew our sample.
This gave me a new followers total to calculate averages for tweet related metrics Inactive Accounts and “Real” Followers

  John Key Clare Curran Russel Norman Metiria Turei David Shearer Gareth Hughes
No Avatar 27% 8% 11% 10% 11% 6%
No Followers 17% 1% 4% 3% 4% 2%
Inactive 39% 17% 20% 19% 14% 14%
‘Real’ 43% 77% 72% 74% 74% 80%

I’ll leave it as an exercise for the reader to interpret accordingly.

NB: These accounts were selected as Leader of the Opposition, Leaders of the Greens, and Clare Curran and Gareth Hughes as they had respectable follower numbers of their own for comparison.

EDIT 18/06/2012

I located a site that can graph followers over time for a Twitter account, sadly the scale of the x-axis is not consistent which tends to cause spikes in growth that wouldn’t normally be visible.

John Key Followers vs Time

As you can see the growth is fairly consistent: the first dip is presumably a statistic gathering error and should be discarded.
As only an idiot would buy followers in large and obviously identifiable quantities (Rudd, Gingrich…Lady Gaga) steady organic looking growth doesn’t mean anything if you’re smart and feed them in gradually. The jump at the end of the graph actually indicates only 375 increased followers a day which could of course easily be attributed to a particularly good press release. (Although I can’t seem to recall any of late) and isn’t a smoking gun by any stretch.

A commenter elsewhere suggested comparing other politicians with 50,000 followers to see how they stack up. Their point may have been purely that we don’t have any…however we do have some celebs and sportspeople who match up. I’ve started the data collection process so we should have some comparisons late today or tomorrow.

UPDATE 21/06/2012 Obtaining additional data for comparison took a lot longer than expected due to unforeseen issues with the Twitter API.

  John Key Piri Weepu Corey Jane John Campbell Rhys Darby Helen Clark
Followers 50,000 50,000 50,000 32,04 88,396 18,392
No Avatar 27% 15% 20% 15% 14% 11%
No Followers 17% 10% 14% 8% 6% 4%
Inactive 39% 12% 22% 2% 22% 12%
‘Real’ 43% 67% 56% 67% 64% 79%

Interesting to see how ‘active’ @johnjcampbell‘s followers are, and that Piri and Corey’s followers are so different given that you would expect them to be followed by similar accounts.

Update 31/07/2012
There has been an application released that people can use to analyse their own accounts called Status People

The tool largely mirrors my own assumptions and subsequent results, but is much more user friendly than the tools I created for my own use.

More discussion in and around the subject is available in this National Business Review article

Twitter follower numbers

John Key

John Key – Less debt, more jobs

…more ghost followers?

Chris Keall’s recent article in The National Business Review had John Key @johnkeypm as ‘top of the twits’ with over 50,000 subscribers. With Newt Gingrich and Kevin Rudd amongst others being accused of buying Twitter followers I thought it would be interesting to investigate some of John Key’s followers.

In the comments for the NBR article MikePSmith suggested most of the followers were spambots with CK replying “overall it looks like most are living breathing New Zealanders”. I cast my eye over the followers and decided exactly the opposite: most of the following accounts looked extremely fishy.

The @johnkeypm account is a managed account – that is the man himself does not update it personally. Much like the man it is decidedly bland and delivers the party line more like an RSS feed.

To make the account look as popular as possible accounts that regular users block and report for spam are kept as active followers. If the account isn’t actually being used in the traditional manner those annoying spam accounts aren’t interfering with everyday use.

So with the help of Twitter API I analysed the followers of the @johnkeypm account. The results confirmed almost exactly what my eyes had already told me: most of the accounts were spambots, zombies, or worse.

John Key (thumbnail) Zombie Horde
Click to enlarge Join the horde? courtesy Björn Söderqvist

With a very loose definition of an actual Twitter user as opposed to a spambot zombie (10 followers, 10 tweets, tweeted this year, have bothered to change the display picture from the default) the follower count falls to less than half at 22,000 accounts.
If you care to further refine the criteria to what most of us would consider regular active users the numbers just fall away. Limiting to accounts based in New Zealand (not fair to expats or those who choose not to disclose) then the numbers dwindle even further.

John Key probably remains New Zealand politician with the largest Twitter follower count but with a much smaller margin than the numbers suggest – if one is at all concerned about quality or real accounts.

UPDATE 15/06/2012
Other accounts will be analysed for comparison

Clare Curran @clarecurranmp
No avatar pic 8% (197 accounts)
No tweets 5% (115 accounts)
No followers 1% (15 accounts)
Inactives 17% (387 accounts) Corrected 17/06/2012
‘Real’ followers 77% (1764 accounts)

UPDATE 17/06/2012
A follow up post explaining how the numbers were determined will follow shortly

OSX Lion 10.7.2 Tweetdeck Crashes

Twitter

Tweetdeck has been crashing on startup recently, – seemingly without any kind of pattern. At first I attributed this to OSX Lion related issues, but sometimes having Firefox or Chrome open seemed to solve the problem.

I have finally tracked down the underlying issue to Adobe Air, the framework powering Tweetdeck and many other applications. In fact it is the switching software for late model Macbook Pros toggling between the discrete and integrated graphics cards. Launching Firefox or Chrome forces the graphics card to switch to discrete mode, solving the autoswitching and crashing on startup error.

You can manually change the setting to solve the problem by navigating to System Preferences -> Energy Saver. Uncheck the Automatic Graphics Switching at the top of the preferences dialog.

A better fix however is to use gfxCardStatus which is a menu bar application for OSX that allows users of dual-GPU 15″ and 17″ MacBook Pros to view which GPU is in use at a glance, and switch between them on-demand.

Update 29/01/2012
I have discovered that VMWareFusion does not play nicely at all with gfxCardStatus. Fusion will work if you disable dynamic switching and force the use of the discrete GPU but if you change between the two, expect major issues. I’m disabling gfxCardStatus before launching Fusion to avoid the problems.

PHP URL Shortening

A current Twitter related project involves quite a few URLs and because Twitter limits you to only 140 characters per post shortening a link can be very rewarding.

There are a multitude of URL shortening services on the internet and whilst perhaps not producing the shortest links, TinyURL.com requires no account in order to use it via PHP which makes for a very simple query:

function getTinyUrl($url) {
return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
}

bit.ly is another popular URL shortener, however it does require an easily obtainable API key. The code is below:

function getBitly($url) {
$query = file_get_contents("http://api.bit.ly/v3/shorten?login=YOUR_LOGIN&;apiKey=YOUR_APIKEY&longUrl=".$url."&format=xml");
$element = new SimpleXmlElement($query);
$bitlyurl = $element->data->url;
if($bitlyurl){
return $bitlyurl;
} else {
return '0';
}
}

Dont forget to change YOUR_LOGIN and YOUR_APIKEY to your own values. I’m sure you dont need any help with usage, but as always comment if you have any issues.