botology
botology
Botology
45 posts
The study of social bots. A tumblr by Plummer-FernandezNew here? Read what is a bot, types of bots, and how to make a bot.
Don't wanna be here? Send us removal request.
botology · 12 years ago
Text
NSA Prism Bot
@NSA_PRISMbot
Description: An automated parody twitter account pretending to be associated with Prism. This bot does multiple things such as flagging tweets that contain words like 'bomb'. It also spies on people logging on to various web apps and doing searches, tweeting their name and location. It also snoops on private emails and Google docs.
Type: spying, twitter, scraping, parody
Example tweet:
"Mr. Bxxxx Lxxxx of Agustinaford, New Mexico logged into Skydrive from 31.545° N, -159.041° E."
"***FLAG*** @Bxxxx mentioned “hostage” on Twitter. ***FLAG***"
Followers: 80+
Tweets: 400+
Designer: unknown
3 notes · View notes
botology · 12 years ago
Text
Interview with Henry Cooke
I've interviewed Henry Cooke a creative developer of fascinating bots amongst other things. I wanted to know more about his methods and thoughts on bots for the benefit of botology, and thankfully he delivered us some great responses below.
1. Declare your bots, what are their twitter handles, and which is your favourite? 
Most of the bots I run are based off of the same codebase. I call them "mimemorphs" in homage to the Philter Phactory's Infomorphs, which were the inspiration for my starting to fiddle with bots in the first place. There's a list of all the currently running mimeomorphs here. They're fairly simple 2-gram Markov bots which learn vocabulary from a specific Twitter user (or group of users) and generate new utterances every so often. Most of them shadow friends of mine who asked for a tame spambot or people we thought worth / would appreciate an automatic parody.
Actually, my current favourite is @MundaneBond, which isn't a mimeomorph. It's barely even a bot; it's just tweeting things from a list some friends & I compiled when we were having a silly day. It just makes me laugh :)
My favourite mimeomorphs are probably the lovers: Ben found a couple of Twitter accounts which appear to belong to two people having an online love affair. Their own tweets tail off, but we set up a couple of mimeomorphs to learn the vocabularies of the two of them and continue the affair indefinitely on the internet (well, in theory. There Are Some Bugs).
  There's also The Landlord, but he's a whole different story...
2. What is your basic choice of language, APIs, libraries and algorithms?
Python, all the way. I sort of stumbled across the Markov thing by accident; I was working my way through entry-level NLTK in order to learn a bit about language processing & generation. One of the first exercises in the NLTK tutorials has you process some text to get word counts, and from those word counts draw conclusions about the text. It struck me that you could grab the links from one word to the next as well, and this would also be useful to comprehend (and generate) text; I only found out that this was covered by Markov chains later.
As a result, most of the code I have for swallowing words and their links is custom, as is the code which regurgitates new text. Since I run the mimeomorphs on Google App Engine (mainly for the free computing), I use their Datastore API as a backend for holding the vocabulary data they gather. However, I'm working on abstracting the data stuff out so I can make the core mimeomorph code platform-independent: I'm drifting over to Heroku for most new bots.
  I can utterly recommend hacking about with NLTK for folks interested in messing around with language processing though. Not only is it structured to teach you the basics of computational linguistics; it's also structured to teach you Python ;)
  3. How do you get a bot running as a web app? How hard is it? 
In order to run on GAE (and Heroku for that matter), you need to be a bit like a webapp since that's what they're expecting to run. In practise, this usually means just cut & pasting a bit of skeleton code which serves a basic "Hello, world!" page and setting up a couple of stub URL handlers (more on that later). So not that hard really. 
Being a bit like a webapp can actually be quite handy; there's a basic control panel for a mimeomorph which lets their owner alter things like the Twitter account it mirrors, post frequency, stuff like that. Running in an environment that's already geared up for doing this kind of thing means that it was pretty easy to add this feature. Having some kind of web interface to your bot also makes it much easier to do the Twitter OAuth dance.
The trick (if you're trying to make something that's more like a bot and less like a webapp) is to keep the webapp as small a stub as possible, and hand over to your own code as early as possible during a run. Then it's just straight Python.
4. How are you scheduling your bot interactions? 
The short answer is: on a timer. I run a few app instances on GAE, which in turn support a few bots each. I call the GAE instances 'botfarms'.
There's a cron job on a botfarm which runs every quarter of an hour and checks if any of the bots are due to run yet. When the cron job runs, it hits a specific URL, served by your webapp. You can use the URL handler for one of these URLs as the entrypoint for your bot activity code. The amount of time between runs is configurable in the webapp for each bot in the farm. 
If a bot is due to run, the first thing it does is generate a random number which represents the chance it will actually do anything. This way, I avoid the bots having too regular a posting schedule; makes the rhythm of the bot a bit less mechanical. If the chance is met, a new tweet is generated and the bot checks for @mentions. If any mentions are found, it generates replies. Finally, it schedules its next run time and finishes the current run.
I tend to think of this like the bots are these little characters which wake up every couple of hours or so, look around, see if they've got anything to do. If they have, they do it, then they set their alarm and go back to sleep ;)
This is actually a bit more complicated than it needs to be, since each botfarm supports multiple bots. If you were just running one per GAE instance, you could set the cron to run every couple of hours (or however often you want it to run): this would save computing time, too. It'd be worth leaving in the random chance that it'll do anything though; any factor which breaks up the mechanicalness of the bots is a good thing, IMHO.
  There is another scheduling option: 'tweet only when I've learned something new'. In this mode, the bot will only post anything if the user it's learning from has posted anything new since it last ran. This way, the rhythm of the bot's posts more closely match those of the shadowed user: it's another device to make the post times look less machiney.
5. Which bot have you come across lately that you would recommend taking a look at?
Wow, are there really enough that this is a Thing? Well, there's @horse_ebooks of course. James Bridle's a ship adrift has some really lovely, poetic ideas behind it. The Phactory consistently turns out stuff which makes my brain itch. Shardcore does some sterling, weird work. Tom Armitage did a great talk at dConstruct at the end of last year, in which he discusses some of his bots.
The ones which I tend to like the most instinctively though are the really simple ones that just give you a little burst of something unexpected every so often, a little nugget in your timeline. There used to be a bot which posted one of Brian Eno's Oblique Strategies just often enough to make you sit up and think quietly for a bit. For the same reason, I love @HowlTweeter, which a friend of mine retweets often enough that I get these little packets of crafted, thoughtful language in amongst the usual chatter of the day.
14 notes · View notes
botology · 13 years ago
Text
r_bash4d
@r_bash4d
Description: Bot designed to mirror and mash-up the designer's twitter account. I suspect this is with markov algorithm set to an n-gram of 2 as the sentences are often nonsensical..
Type: personal, twitter, markov, double
Example tweet:
"Crunch by Two Tornados fly Over by Metrist is indistinguishable from 2001 that a Dark room speakers at work I'll be paying for some."
Followers: 60+
Tweets: 3500+
Designer: Ben Bashford @bashford
engineered by: Henry Cooke @prehensile
1 note · View note
botology · 13 years ago
Text
PlzCrack
@ PlzCrack
Description: A bot that will crack password hashes for you. Tweet it a n MD5, MD5(MD5), SHA-1, SHA-2, MySQL, NTLM, LM, MD2, MD4, RipeMD160, or WHIRLPOOL hash, and it will respond with the cracked password. I think it does this by parsing the hash to crackstation.net. Initiated 14/12/12
Type: respond, utility, password, repetitive, twitter
Example tweet:
"It is a sha1 hash of "lolowned". @TXXX"
Followers: 70+
Tweets: 40+
Designer: unknown
More: Crack Station
0 notes
botology · 13 years ago
Text
The birthplace of twitter spambots
Technology Review provides a great insight into who and how millions of twitter spam-bots are possibly created. One part of the bot making process that cannot be automated is the opening of an account. This job gets outsourced to 'Mechanical Turks' on crowdsourcing sites such as Amazon's mechanical turk marketplace. Once the twitter profile is set up, the login details get passed on to the service that sells twitter followers. In a way, it is an automated process, if you count these mechanical turks as now being a link in the algorithm's chain. The following is quoted from here.
Some of the work is a little shady. One person describing himself as a sociologist paid Hamilton a few cents to create a “believable” Twitter account. Her creation,Luke Lynch, who uses the handle @luke_daredevil, says he is “the eldest of four children” and a fan of rugby and pizza. For her character, whose photo she plucked off Google, Hamilton was required to post one believable tweet, choosing “The performance at BET Awards was popping.” 
The experience left Hamilton “wondering what that was all about.”
That fake Twitter account appears to be part of a wider spam network established by people associated with the social network View.io, possibly to recruit members. Unknown others have since take over the Luke Lynch identity, which has emitted a series of raunchy comments and stock quotes in Indian rupees. (View.io’s founder, Felix Chan, didn’t respond to a request for comment.)
“Ugh!” said Kulkarni after hearing how his MobileWorks software was being used. “We do try to police the spambots.” He says inexperienced workers might not recognize “spammy” jobs, calling it a “cyberliteracy issue.” But the problem isn’t new. Two years ago, researchers at New York University estimated that 41 percent of all jobs posted to Mechanical Turk were for generating spam, generating clicks on ads, or influencing search engine results (see “How Mechanical Turk Is Broken”).
6 notes · View notes
botology · 13 years ago
Photo
Tumblr media Tumblr media Tumblr media
636 notes · View notes
botology · 13 years ago
Text
Kim Kierkegaardashian
@ KimKierkegaard
Description: Bot that possibly uses Markov chains to mash-up the philosophy of Søren Kierkegaard with the tweets and observations of reality-TV celebrity Kim Kardashian. However given the success of each tweet I suspect a human moderates the feed selecting the best sentences.
Type: celebrity, twitter, mash-up, Markov
Example tweet:
"What if everything in life were a misunderstanding, what if laughter were really tears? Scared LOL !!"
Followers: 56,000+
Tweets: 90+
Designer: unknown
First Tweet: 28th June 2012
6 notes · View notes
botology · 13 years ago
Quote
Hyun Ju Kim‘s TweetBot is a robotic spider that senses your presence and speaks to you, quoting sad, lonely passages from Kim’s own journal.
The creators Project.
@tweetbotv1
2 notes · View notes
botology · 13 years ago
Text
FanDumb
@ FanDumb
Description: Bot that finds twitter users that send way too many tweets in a day to a celebrity account, and names and shames them. One twitter abuser per day.
Type: celebrity, twitter, tweet number monitor, data
Example tweet:
"Lance Armstrong (@lancearmstrong) received over 114 tweets yesterday from @XXXXX"
Followers: 600+
Tweets: 15,000+
Designer: Nathan Fanaro @natefanaro
More: fan dumb me page
3 notes · View notes
botology · 13 years ago
Text
Caps Cop
@capscop
Description: A bot that finds tweets that are ALL IN CAPS and responds with a witty pre-written joke about caps abuse. The bot also has some hashtag commands to request info, and the website goes even further such as listing people that use all-caps too often.
Type: caps, twitter, reply, snitch, caps finder
Example tweet:
"@xxxxx On Twitter no one can hear you scream. Pipe down and turn your caps lock off."
Followers: 14,000+
Tweets: 950,000+
Designer: Nathan Fanaro @natefanaro
More: caps cop page
1 note · View note
botology · 13 years ago
Text
Marks Fake Facts
@ MarksFakeFacts
Description: A bot that uses Markov chains to mashup facts sourced from wikipedia - essentially tweeting fake facts.
Type: markov, twitter, wikipedia, mash-up
Example tweet:
"The Persian ruler Khosrau II used plague-infected fleas and cholera-coated flies to kill 1,000 people homeless."
Followers: 10+
Tweets: 1100+
Designer: nateberkopec on github
More: app page
1 note · View note
botology · 13 years ago
Text
Vinos Philos
@ VinosPhilos
Description: A bot that searches philosophical phrases, to reply, friend and learn from. It then uses Markov algorithms to construct its own philosophical tweets.
Type: markov, twitter, learning, reply, philosophy, friending
Example tweet:
"katearthsis i have principles, morals and a dictionary is cousin to the obituary notices, a mean and why we don't know how to unknow."
Followers: 45+
Tweets: 1100+
Designer: Matt Ruzicka
More: Matt Ruzicka explains on his tumblr
1 note · View note
botology · 13 years ago
Text
Son of Sponsbot
@ SonOfSponsbot
Description: Son of Sponsbot was a watered down version of the more controversial Sponsbot that protested against the Olympic sponsorship regulations over trademarked words such as 'London', '2012', 'Gold', etc. It did this by retweeting sponsors and replacing any banned words with provocative replacements.
Type: Retweet, twitter, London, Olympics, word replacement, provocative, protest
Example tweet:
"MT ThomasCookUK: RT if you wish the corporate takeover were still going on! Roll on the corporate takeover! Cayman_Islands1984"
Followers: 40+
Tweets: 2400+
Designer: Matthew Plummer-Fernandez @m_pf
Note: This bot has been switched off now that the olympics are over.
0 notes
botology · 13 years ago
Quote
Robots can be said to have their own culture precisely because they don’t need to copy our sociologisms in order to be social, although what they do in their own social realm may not easily map on to things we do in our social realm.
Stuart Geiger, the ethnography of robots. 
3 notes · View notes
botology · 13 years ago
Text
Turing test
Alan Turing Year
So its Alan Turing year and I haven't mentioned the great man on Botology. Well I should because Bots are sometimes measured or assessed by their ability to perform well during a Turing test. Turing testing is highly competitive and has become the focus for many. I greatly admire Turing for suggesting the challenge of making a machine that can fool a human into thinking its human, it has brought us some interesting chatbots into existence and the development of Natural Language Processing, etc. BUT! I'm also disappointed that this can be misguiding too. Bots that pretend to be humans can have a negative impact - it can make people suspicious of bots as being a) spam. b) fraudulent. c)uncanny. and d) upsetting (i.e. read the story about people believing and caring for @trackgirl and then being revealed the truth). The Turing test is not critical of this. A more interesting goal would be to develop bots as being bots, having their own unique behaviours, quirks, shortcomings, and surprises. We need to develop a 'bot culture', and also develop an appreciation of bots; a 'bot aesthetic'. Disguising them as humans will only take us so far. No disrespect to Turing intended, the man was clearly a genius and I've always admired his work and thoughts. 
7 notes · View notes
botology · 13 years ago
Text
Debit Card
@ NeedADebitCard
Description: A bot that finds any image postings of credit cards and retweets them. The bot profile makes the suggestion: "Please quit posting pictures of your debit cards, people."
Type: retweets, credit card, twitter, image, notifying
Example tweet:
"Just found my credit card :) haha http://instagr.am/xxxxxxx" Retweeted by Debit Card
Followers: 5500+
Tweets: 39+
Designer: unknown
2 notes · View notes
botology · 13 years ago
Link
1 note · View note