digital cut-up: james baldwin and white supremacist twitter bios

this is a very simple flask app that pairs lines from two corpuses: white supremacist richard spencer’s twitter followers’ twitter bios and an essay by james baldwin, “letter from a region in my mind”

i was working with the twitter bios earlier in the semester when i made an executive order generator. here were some sample bios:

PC Gamer. Social Democrat. Egalitarian. Admin at @TheDPWiki. I revel in your butthurt.

Biblical Christian and anti-corporate Libertarian. Jesus is my Good Shepard not the State or Allstate and we are definitely in the last days.

FutureDanger is an American news link Heatmap Dashboard. Achieve situational awareness of multiple threat indicators in one view. Be prepared. ΜΟΛΩΝ ΛΑΒΕ

The Donald and #MAGA to save The Merica. Kek Meme generation and Ody cat integration.

i was struck by them: their rhythm, the way they reference an in-group with a shared vocabulary, the way they express ideology in buzzwords. the content of them is interesting, too: common themes are, predictably, whiteness, americanness, christianness, a certain kind of masculinity. they are provocative in predictable ways.

initially, i was going to generate new bios with a markov chain. markov chain projects, as allison helped me understand, highlight the ridiculousness of a corpus. markov chains say, “these words make so little sense that a program that primarily calculates statistical probabilities can reasonably replicate them.” the effect is light, silly. these bios are ridiculous, but they’re not light and silly. i wanted to highlight something else about them.

james baldwin’s writing is the opposite of these bios. putting one of his sentences next to one of their sentences contextualizes both. why do the bios say so little? why in that meaningless way? what do they never say? never own? why are they so angry? what do their writers think has been stolen? baldwin tells us.

the code

first, i got spencer’s followers twitter bios: https://gist.github.com/kaganjd/9a00be3932a2485abca047bc6733146e

then, i looked at baldwin’s essay: https://gist.github.com/kaganjd/5e8c2120713ccb3cc737e81c18575c0b

then, i picked out the lines from each corpus that had the word ‘white’ and printed them together: https://gist.github.com/kaganjd/36c455e95502102b2d72fb36c25f1e05

finally, i used all that to write a server: https://github.com/kaganjd/whiteness/blob/master/server.py

By u’the darkness vested in me as President

the api is bad but twit is good!

all you need is an index.js file with this stuff in it:

some usage:

  • get tweet ids of the most recent 20 tweets from a given user name

  • get the most recent statuses that include the query

  • literally the most annoying way to get twitter bios of richard spencer’s followers

here’s a sampling of richard spencer’s followers’ twitter bios, after lots of cleanup:

PC Gamer. Social Democrat. Egalitarian. Admin at @TheDPWiki. I revel in your butthurt.

Biblical Christian and anti-corporate Libertarian. Jesus is my Good Shepard not the State or Allstate and we are definitely in the last days.

FutureDanger is an American news link Heatmap Dashboard. Achieve situational awareness of multiple threat indicators in one view. Be prepared. ΜΟΛΩΝ ΛΑΒΕ

The Donald and #MAGA to save The Merica. Kek Meme generation and Ody cat integration.

Official Twitter of the Aggie Helicopter Enthusiasts.\nLeading the struggle against Marxism at Texas A&M University

Vagabond

#TRUMPNATION

“But isn\t that the way it is? Every goddamn time. Your prayers are always answered in the order they\re received.”

^^ #FIFOprayers

tagged with this script:

…[Sentence(‘Altruism/NN/B-NP/O :/:/O/O Selfless/NNP/B-NP/O Self/NNP/I-NP/O Destructive/NNP/I-NP/O death/NN/I-NP/O Cult/NN/I-NP/O religion/NN/I-NP/O Philosophy/NN/I-NP/O and/CC/I-NP/O Language/NN/I-NP/O of/IN/B-PP/B-PNP Irrationalism/NN/B-NP/I-PNP Socialism/NN/I-NP/I-PNP Communism/NNP/I-NP/I-PNP Fascism/NNP/I-NP/I-PNP all/DT/I-NP/I-PNP Wars/NNP/I-NP/I-PNP ././O/O’), Sentence(‘AltTrue-ism/NN/B-NP/O =/SYM/O/O Lies/NN/B-NP/O’)]…

but my old script from last week worked fine too, as long as i erase emojis and other weird stuff. so through last week’s grammar.py script. 

cat bios-phraseGrep-clean.txt | python grammar.py > grammar4.txt

here’s my fav:

TASK FORCE ON u’everything software AND PUBLIC SAFETY By u’the darkness vested in me as President by the Constitution and the laws of the United States of America, and in order to reduce crime and restore public safety to communities across u’the solution, it is hereby ordered as follows: Section 1. Policy. It shall be u’the name of the executive branch to reduce crime in America. Many communities across the Nation are suffering from high rates of violent crime. u’the time on law and order and u’the truth and security of the American people requires u’the gallows to enforcing u’the state and developing policies that comprehensively address illegal immigration, u’no gf, and violent crime. The Department of Justice shall take u’the lamentation on Federal actions to support dog lover~runner efforts nationwide and to collaborate with State, tribal, and local jurisdictions to restore public safety to all of our communities.

okay, but this was all sooooo messy. things i need to improve next time:

  • workflow for bio responses through phraseGrep script! this time, i was copy/pasting the console.log of the bios, 100 at a time where each one looked ‘like this’, into a txt file—but when i looked at the file in the python interpreter, each line wasn’t registering as a line in an array. there was just a bunch of garbage punctuation to get rid of. bummer.
  • also, to keep this all python, i should tweepy (python) instead of twit (js). i wonder if i can get the same info with that?
  • sentence tagging! sometimes tagging words is better, sometimes keeping the sentences in tact is better.
  • also, how to get most frequently occurring POS tags?