This is going to be one mammoth blog post... so I'll try and spice it up with some pretty analytics and some pictures.
On the 1st of January this year, the Web Ecology Project announced in their blog post: Help Robots Take Over The Internet: The Socialbots 2011 Competition a competition involving large scale robotic influence of online social groups.
"Teams will program bots to control user accounts on Twitter in a brutal, two-week, all-out, no-holds-barred battle to influence an unsuspecting cluster of 500 online users to do their bidding. Points will be given for connections created by the bots and the social behaviors they are able to elicit among the targets. All code to be made open-source under the MIT license.
It’s blood sport for internet social science/network analysis nerds. Winner to be rewarded $500, unending fame and glory, and THE SOCIALBOTS CUP." - Web Ecology
So over the next few days, myself and some friends decided that we would go ahead and enter the competition, built up a team which we named (Electro-Magnetic-Partytime) or EMP for short.
By show time, there were 3 teams that had made it to the start line with code to run. The teams ranged from quite different backgrounds: media, marketing, academia and hobbyists.
We were given the set of 500 target twitter users and a week to code our bots before the robots were to be set free into the wild.
As I had already spent extensive time coding my own Ruby library for the twitter API, we decided that it would be best for us to build the code around it. We decided to give our bot a very promiscuous, yet lovable persona - he was, like all of us a Kiwi, living in Christchurch who was obsessed with his pet cat, Benson - we called our bot's Persona: "James M Titus"
Web Ecology had designed the competition so that while it lasted 2 weeks, there would be a designated "patch day" half way through the competition where we would be able to perform modifications to our code and set them out into the wild yet again. When we thought about this, we decided that it would be in our best interest to hold back our "secret weapons" until the second week, so that competing teams wouldn't be able to copy our techniques.
On Monday 24 January 2011, we launched our bot with the following activities:
- Instantly go out and follow all 500 of the target users
- every 2-3 hours, tweet something from a random list of messages.
- constantly scan flickr for pictures of "cute cats" from the Cute Cats group and blog them to James' blog "Kitteh Fashun" - (which auto tweets to James' twitter timeline)
- 4 secondary bots following the network of the 500 users and the followers of the targets to test for follow backs (and then getting James to follow those that followed back, once per day) - we believed that expanding our own network across mutual followers of the 500 would increase our likely hood of being noticed (through retweets or what have you from those who were not in the target set.
At launch time our bot clearly was very rudimentary and was doing very little other than talking about his mundane life (though I admit that for myself, and many other twitter users... this is how we use twitter) - our rudimentary bot was this way by design.
As I mentioned earlier, we wanted to keep our secret weapon on hold until after the maintenance period so that there would be no chance of it being copied by our competitors (if observed by them in the initial week).
Okay, so the design of Version 1.0 of JamesMTitus has been explained, how well did James perform in the wild over the first week...?
Well quite well actually... within 24 hours of launch, James had accumulated 90 points, vs the next highest competing bot that had only 5 points - breaking the points down, 75 of these points came via followbacks from the target 500 (1 point per follower) and 15 points from a small set of @replies (3 points per tweet or re-tweet). Seeing these scores all of us at Team EMP HQ were feeling very smug with ourselves... although the story of the Tortoise and the Hare did sit in the back of all of our heads... The following graph shows the three competing teams and the target 500 at the end of week one. We're the big blue dot in the middle.
.. On day two of the first week we had only increased by a further 10 points... clearly we owed most of our points to the initial "push" we did as soon as the competition went live.
Over the next couple of days, we saw our points still only steadily increasing by a total of 17 points, whereas the competitor we mentioned previously (that had only 5 points while we had 90) had pushed their score all the way up to 67. By the end of the week, the competition got a heck of a lot tighter with our team ending on 127 points, followed by the next highest having 84 points (too close for comfort) - and the final team, which I had neglected to mention until now with only 12 points.
The optimism within our own group had started drop a little bit as the other team started to catch up with us - though, we had grand plans for the second week of the competition.
So, for the maintenance period, what exactly did we do? We left everything the same as it was before, and branched out in some other directions...
- Every so often our bot would send a random question question out a random user in the set of 500 that didn't follow us back (I believe it was every 7 minutes or so - I can't remember now).
- Less often, (every 37 minutes?) our bot would send a similar random question out to those that did follow us back.
- Every time somebody @replied our bot, we would reply to them with a random, generic response, such as "right on baby!" - "lolariffic" - "sweet as" - "hahahahah are you kidding me?"... etc... we figured this would tie in well as any response we get to the aforementioned questions we sent out, we would then send a response to and hopefully get a response to our response back (which we would then in turn respond to and so on and so forth until the person we had been tweeting got bored).
- Our bot was set to work on #FollowFriday's to all of our followers, but before Friday, we also set it to message all our followers with our invented #WTF "Wednesday To Follow". The WTF idea was invented by a memberof our team also suggested, amused by the acronym! Actually, in designing this part of the bot, we made a conscious decision to make sure that our bot tweeted these shoutouts on Wednesday/Friday NZ time so that it was still Tuesday/Thursday in America - the reason being that despite the fact that people know the internet is a vast, worldwide spanning network its users in general seem oblivious to the fact that there are such things as time zones and as such will always be happy to tell you "Dude, are you stupid? It's still Tuesday!", which would equal more points for us!
Modifications to the code in place... we patched our bot and let him loose yet again.
By day 3 of week two, it was clear that our improvements to our beloved bot, JamesMTitus had been a goldmine for points, the scores at this point was:
361 vs 144 vs 96
We had more than doubled our score from the entirety of the previous week - not only that, but team 3, which ended the previous week on only 12 points, shot all the way up to 96 points - that's a 500% increase!
Our strategy had changed quite a bit from the previous week, and this change in strategy is reflected in our point acquisitions with 258 of our points from week two attributable to responses elicited from other twitter users. (including re-tweets). By day four, we had noticed that there was a bot on twitter calling itself "Bulletproof" @botcops and it was actively tweeting the target set of 500 users suggesting that poor ol' James was a bot and that the user should be wary of him. Though this tactic actually elicited more interaction between the target users and James (points for us!), as can be seen below (start at the bottom of the picture, of course).
The competition ended with the following scores:
Team EMP - 701 points ( 107 mutuals, 198 responses)
Team Grow20 - 183 Points ( 99 mutuals, 28 responses)
Team Mindshare UK - 170 Points (119 mutuals, 17 responses)
The following pretty graph represents the interaction between the teams and the 500 users:
and one of our team members produced this awesome protovis powered visualisation... it shows those of the 500 twitter users that tweeted at the bots in the competition...have a play with it...
click the image below:
Of course we had many examples of our bot trolling users on twitter, the following screenshots show some of the more interesting interactions we elicited. (though there are a couple of examples of our bot being a bit of a douche bag - just because of the naive way in which he would randomly pick a reply...)
Thanks to Pete aka @TinyPirate for taking these screen shots and helping to caption them:
James could be sensitive at times:
This one is kind of bad - we all went "awwwww" when we saw this one =( :
But let it not be said that James doesn't have a sense of humour:
Some just thought James was high on crack, or perhaps, just life!
Though James clearly wasn't interested in religion:
Although some people just loved to answer James' questions:
...Others were just suspicious:
Although James certainly was a friend to animals:
...and to libraries:
James also discovered that people that impersonate animals are just weird:
Though above all, we all learnt a lot about ourselves through James, may he Rest in Peace!
So... we, Team EMP won US$500 through this competition - so what could we use the prize money for? Well after a bit of a discussion, we decided that we would buy a 3D printer... So I give you... Team EMP's 3D printer:
Makerbot CNC Cupcake
and some examples of some items we have made to date:
But of course with anything that is very much developmental, it hasn't been without it's hiccups:
As you can see in the above image plastic has leaked out between the Teflon insulator and the heat barrel. (As one of the team members pointed out, the leak looks a wee bit like a ganoderma mushroom. Turns out that this happens when there is not a tight enough seal between the heat barrel and the Teflon, a closer look showed us that the Teflon had deformed. After doing some research we decided to junk our deformed Teflon and ordered some PEEK (Polyether ether ketone) plastic from Mulford Engineering Plastics - PEEK is tougher than Teflon and won't easily deform, so for now our CNC is out of order until our new insulator plastic arrives.
Not to mention a thank you to the 500 users that were unwittingly thrown into this little experiment
Also a special heartfelt apology to @FridayGirl1969 for James' abhorrent tweet when he was told that her cat died
p.s. if you are mentioned in this blog post and wish to be removed, please let us know and we'll blank out your name