<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Christopher+Marx</id>
	<title>Medien Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Christopher+Marx"/>
	<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/Special:Contributions/Christopher_Marx"/>
	<updated>2026-05-17T20:14:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=74207</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=74207"/>
		<updated>2015-10-18T18:08:59Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken.&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian. It responds with a single phrase. A further possibility to create more sophisticated responds is the usage of the AIML library. AIML is a markup language which creates phrases and meaning. However, AIML is not available in all of the 14 languages which the NLTK library uses. Therefore I decided to create a Twitter Bot, which doesn&#039;t pretend to be human, but responds correctly.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences. It is a first step towards a &amp;quot;Language Bot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: [http://pastebin.com/GvgyfDUU Grammar Bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [https://github.com/craftoid/twitterbot-examples GitHub] - all created by [https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73947</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73947"/>
		<updated>2015-10-04T12:48:17Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken.&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: [http://pastebin.com/GvgyfDUU Grammar Bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [https://github.com/craftoid/twitterbot-examples GitHub] - all created by [https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73946</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73946"/>
		<updated>2015-10-03T21:04:50Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: [http://pastebin.com/GvgyfDUU Grammar Bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [https://github.com/craftoid/twitterbot-examples GitHub] - all created by [https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73945</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73945"/>
		<updated>2015-10-03T21:04:40Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: [http://pastebin.com/GvgyfDUU Grammar Bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [https://github.com/craftoid/twitterbot-examples GitHub] - all created by [https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73944</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73944"/>
		<updated>2015-10-03T21:04:14Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: [http://pastebin.com/GvgyfDUU Grammar Bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [https://github.com/craftoid/twitterbot-examples GitHub] - all created by [https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73943</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73943"/>
		<updated>2015-10-03T21:03:26Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: [http://pastebin.com/GvgyfDUU]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [https://github.com/craftoid/twitterbot-examples GitHub] - all created by [https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73942</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73942"/>
		<updated>2015-10-03T21:02:39Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: http://pastebin.com/GvgyfDUU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [[https://github.com/craftoid/twitterbot-examples GitHub]] - all created by [[https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider]].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73941</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73941"/>
		<updated>2015-10-03T21:01:55Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Myrobot and Grammar Bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See my first steps with Python and Processing:&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
The Grammar Bot creates out of lists some random sentences.&lt;br /&gt;
&lt;br /&gt;
Grab the code at pastebin: http://pastebin.com/GvgyfDUU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find some more interesting bots on [[https://github.com/craftoid/twitterbot-examples GitHub]] - all created by [[https://www.uni-weimar.de/medien/wiki/User:Ms Martin Schneider]].&lt;br /&gt;
&lt;br /&gt;
Thanks for visiting my website. My name is Christopher Marx and I am studying Media Studies at Bauhaus University Weimar.&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Italian.png&amp;diff=73940</id>
		<title>File:Italian.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Italian.png&amp;diff=73940"/>
		<updated>2015-10-03T20:54:44Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:French.png&amp;diff=73939</id>
		<title>File:French.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:French.png&amp;diff=73939"/>
		<updated>2015-10-03T20:53:51Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Spanish.png&amp;diff=73938</id>
		<title>File:Spanish.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Spanish.png&amp;diff=73938"/>
		<updated>2015-10-03T20:53:12Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:English.png&amp;diff=73937</id>
		<title>File:English.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:English.png&amp;diff=73937"/>
		<updated>2015-10-03T20:52:30Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Header.png&amp;diff=73936</id>
		<title>File:Header.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Header.png&amp;diff=73936"/>
		<updated>2015-10-03T20:50:49Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: uploaded a new version of &amp;amp;quot;File:Header.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Header.png&amp;diff=73935</id>
		<title>File:Header.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Header.png&amp;diff=73935"/>
		<updated>2015-10-03T20:47:07Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73934</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73934"/>
		<updated>2015-10-03T20:44:49Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Idiomaggio - a language detection bot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio Find Idiomaggio on Twitter]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
unfortunately I got stuck with the cmudict.dict - function of NLTK, while using this idea: http://h6o6.com/2013/03/using-python-and-the-nltk-to-find-haikus-in-the-public-twitter-stream/&lt;br /&gt;
&lt;br /&gt;
so the result is not that complex… :(&lt;br /&gt;
&lt;br /&gt;
grab the code at pastebin: http://pastebin.com/GvgyfDUU&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73933</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=73933"/>
		<updated>2015-10-03T20:41:03Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: mayor changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Idiomaggio - a language detection bot ==&lt;br /&gt;
&lt;br /&gt;
[[File:header.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The limits of my language are the limits of my world.&amp;quot; (Ludwig Wittgenstein)&lt;br /&gt;
&lt;br /&gt;
Idiomaggio is a twitter bot that detects the language of tweets and responds automatically in the right tongue. In a multilingual world there can be many different languages surround you. With the help of Idiomaggio you can figure out which language is spoken&lt;br /&gt;
&lt;br /&gt;
The twitter bot is working with the NLTK library; mainly with the built-in function &#039;&#039;stop words&#039;&#039;. Linking words, conjunctions, articles and pronouns are words that make a language speakable. However, they don&#039;t create the meaning of a text. Idiomaggio filters the stop words out and detects their language. In a second step, the tweet will be responded in the correct language.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://twitter.com/idiomaggio]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idiamaggio understands the European languages Swedish, Danish, Hungarian, Finnish, Portugese, German, Dutch, French, Spanish, Norwegian, English, Russian, Turkish and Italian.&lt;br /&gt;
&lt;br /&gt;
[[File:English.png]]&lt;br /&gt;
[[File:Spanish.png]]&lt;br /&gt;
[[File:French.png]]&lt;br /&gt;
[[File:Italian.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python2&lt;br /&gt;
# -*- coding: utf-8 -*- #&lt;br /&gt;
&lt;br /&gt;
from twitterbot import TwitterBot&lt;br /&gt;
import keys&lt;br /&gt;
&lt;br /&gt;
import nltk&lt;br /&gt;
from nltk import wordpunct_tokenize&lt;br /&gt;
from nltk.corpus import stopwords&lt;br /&gt;
&lt;br /&gt;
class Idiomaggio(TwitterBot):&lt;br /&gt;
    def bot_init(self):&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        Use your own consumer key to make the bot alive.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        ############################&lt;br /&gt;
        # REQUIRED: LOGIN DETAILS! #&lt;br /&gt;
        ############################&lt;br /&gt;
&lt;br /&gt;
        self.config[&#039;api_key&#039;] = keys.consumer_key&lt;br /&gt;
        self.config[&#039;api_secret&#039;] = keys.consumer_secret&lt;br /&gt;
        self.config[&#039;access_key&#039;] = keys.access_token&lt;br /&gt;
        self.config[&#039;access_secret&#039;] = keys.access_token_secret&lt;br /&gt;
&lt;br /&gt;
        ######################################&lt;br /&gt;
        # SEMI-OPTIONAL: OTHER CONFIG STUFF! #&lt;br /&gt;
        ######################################&lt;br /&gt;
&lt;br /&gt;
        # how often to tweet, in seconds&lt;br /&gt;
        self.config[&#039;tweet_interval&#039;] = 1 * 10     # default: 30 minutes&lt;br /&gt;
&lt;br /&gt;
        # use this to define a (min, max) random range of how often to tweet&lt;br /&gt;
        # e.g., self.config[&#039;tweet_interval_range&#039;] = (5*60, 10*60) # tweets every 5-10 minutes&lt;br /&gt;
        self.config[&#039;tweet_interval_range&#039;] = None&lt;br /&gt;
&lt;br /&gt;
        # only reply to tweets that specifically mention the bot&lt;br /&gt;
        self.config[&#039;reply_direct_mention_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # only include bot followers (and original tweeter) in @-replies&lt;br /&gt;
        self.config[&#039;reply_followers_only&#039;] = True&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets that mention this bot?&lt;br /&gt;
        self.config[&#039;autofav_mentions&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        # fav any tweets containing these keywords?&lt;br /&gt;
        self.config[&#039;autofav_keywords&#039;] = []&lt;br /&gt;
&lt;br /&gt;
        # follow back all followers?&lt;br /&gt;
        self.config[&#039;autofollow&#039;] = False&lt;br /&gt;
&lt;br /&gt;
        ###########################################&lt;br /&gt;
        # CUSTOM: your bot&#039;s own state variables! #&lt;br /&gt;
        ###########################################&lt;br /&gt;
&lt;br /&gt;
    def on_scheduled_tweet(self):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
        &lt;br /&gt;
    def on_mention(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        text = tweet.text&lt;br /&gt;
&lt;br /&gt;
        print(text)&lt;br /&gt;
&lt;br /&gt;
        print(type(text))&lt;br /&gt;
&lt;br /&gt;
        percentage = {}&lt;br /&gt;
&lt;br /&gt;
        tokens = wordpunct_tokenize(text)&lt;br /&gt;
        words = []&lt;br /&gt;
&lt;br /&gt;
        for word in tokens:&lt;br /&gt;
            words.append(word.lower())&lt;br /&gt;
&lt;br /&gt;
        for language in stopwords.fileids():&lt;br /&gt;
            stopwords_set = set(stopwords.words(language))&lt;br /&gt;
            words_set = set(words)&lt;br /&gt;
            most_common = words_set.intersection(stopwords_set)&lt;br /&gt;
            percentage[language] = len(most_common)&lt;br /&gt;
&lt;br /&gt;
        most_probable = max(percentage, key=percentage.get)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;danish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Taler du dansk?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;dutch&amp;quot;:&lt;br /&gt;
            response = u&#039;Hi! Groeten uit Holland.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;english&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! I speak some English.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;finnish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Terveisiä Suomi.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;french&amp;quot;:&lt;br /&gt;
            response = u&#039;Salut! Parlez-vous français?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;german&amp;quot;:&lt;br /&gt;
            response = u&#039;Hey! Sprichst du deutsch?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;hungarian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hello! Beszélsz magyarul?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;italian&amp;quot;:&lt;br /&gt;
            response = u&#039;Ciao! Saluti da Italia.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;norwegian&amp;quot;:&lt;br /&gt;
            response = u&#039;Hei! Jeg snakker norsk.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;portuguese&amp;quot;:&lt;br /&gt;
            response = u&#039;Olá! Você fala português?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;russian&amp;quot;:&lt;br /&gt;
            response = u&#039;Привет! Привет из России.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;spanish&amp;quot;:&lt;br /&gt;
            response = u&#039;¡Hola! Saludos desde España.&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;swedish&amp;quot;:&lt;br /&gt;
            response = u&#039;Hej! Talar du svenska?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        if most_probable == &amp;quot;turkish&amp;quot;:&lt;br /&gt;
            response = u&#039;Merhaba! Türkçe biliyor musun?&#039;&lt;br /&gt;
            prefixed = prefix + &#039; &#039; + response&lt;br /&gt;
            self.post_tweet(prefixed, reply_to=tweet)&lt;br /&gt;
&lt;br /&gt;
        # print(percentage)&lt;br /&gt;
&lt;br /&gt;
        # print(stopwords_set)&lt;br /&gt;
        # print(words_set)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;The language of your text is %s&amp;quot; % most_probable)&lt;br /&gt;
&lt;br /&gt;
    def on_timeline(self, tweet, prefix):&lt;br /&gt;
&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    bot = Idiomaggio()&lt;br /&gt;
    bot.run()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
unfortunately I got stuck with the cmudict.dict - function of NLTK, while using this idea: http://h6o6.com/2013/03/using-python-and-the-nltk-to-find-haikus-in-the-public-twitter-stream/&lt;br /&gt;
&lt;br /&gt;
so the result is not that complex… :(&lt;br /&gt;
&lt;br /&gt;
grab the code at pastebin: http://pastebin.com/GvgyfDUU&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=72788</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=72788"/>
		<updated>2015-06-16T22:23:24Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: text change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page of Christopher Marx&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
unfortunately I got stuck with the cmudict.dict - function of NLTK, while using this idea: http://h6o6.com/2013/03/using-python-and-the-nltk-to-find-haikus-in-the-public-twitter-stream/&lt;br /&gt;
&lt;br /&gt;
so the result is not that complex… :(&lt;br /&gt;
&lt;br /&gt;
grab the code at pastebin: http://pastebin.com/GvgyfDUU&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=72787</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=72787"/>
		<updated>2015-06-16T22:22:59Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: text edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page of Christopher Marx&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ktloz.gif|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
unfortunately I got stuck with the cmudict.dict - function of NLTK, while using this idea: http://h6o6.com/2013/03/using-python-and-the-nltk-to-find-haikus-in-the-public-twitter-stream/&lt;br /&gt;
&lt;br /&gt;
so the result is not that complex… :(&lt;br /&gt;
&lt;br /&gt;
grab the code at pastebin: http://pastebin.com/GvgyfDUU&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71873</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71873"/>
		<updated>2015-04-29T15:44:40Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page of Christopher Marx&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ktloz.gif|100px100px|thumb|left]]&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Ktloz.gif&amp;diff=71872</id>
		<title>File:Ktloz.gif</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Ktloz.gif&amp;diff=71872"/>
		<updated>2015-04-29T15:41:16Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71630</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71630"/>
		<updated>2015-04-22T17:38:30Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page of Christopher Marx&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png|100px100px|thumb|left]]&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71616</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71616"/>
		<updated>2015-04-22T16:55:04Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: edit picture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page of Christopher Marx&lt;br /&gt;
&lt;br /&gt;
[[File:myrobot.png]]&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Myrobot.png&amp;diff=71605</id>
		<title>File:Myrobot.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Myrobot.png&amp;diff=71605"/>
		<updated>2015-04-22T16:51:50Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: My little robot enters the net&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
My little robot enters the net&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71530</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71530"/>
		<updated>2015-04-18T12:16:57Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [https://twitter.com/metaphorminute Metaphor a Minute]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
*** [https://twitter.com/feedsynbot News Feed]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
*** [https://twitter.com/bgebot BGE]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
*** [https://twitter.com/eliza_bot Eliza Bot]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
*** [https://twitter.com/lowpolybot low-poly Bot]&lt;br /&gt;
*** [https://twitter.com/MiraculousPics Miraculous Pictures]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
***[https://twitter.com/LatourSwag Latour Swag]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
*** [https://twitter.com/NRA_Tally NRA Tally]&lt;br /&gt;
*** [https://twitter.com/NSA_PRISMbot NSA Prismbot]&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GooglePoetics Google Poetics]&lt;br /&gt;
*** [https://twitter.com/Horse_ebooks Horse ebook]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71529</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71529"/>
		<updated>2015-04-18T12:12:33Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [https://twitter.com/metaphorminute Metaphor a Minute]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
*** [https://twitter.com/feedsynbot News Feed]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
*** [https://twitter.com/bgebot BGE]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
*** [https://twitter.com/eliza_bot Eliza Bot]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
*** [https://twitter.com/lowpolybot low-poly Bot]&lt;br /&gt;
*** [https://twitter.com/MiraculousPics Miraculous Pictures]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
*** [https://twitter.com/NRA_Tally NRA Tally]&lt;br /&gt;
*** [https://twitter.com/NSA_PRISMbot NSA Prismbot]&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GooglePoetics Google Poetics]&lt;br /&gt;
*** [https://twitter.com/Horse_ebooks Horse ebook]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71526</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71526"/>
		<updated>2015-04-18T11:59:19Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [https://twitter.com/metaphorminute Metaphor a Minute]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
*** [https://twitter.com/feedsynbot News Feed]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
*** [https://twitter.com/bgebot BGE]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
*** [https://twitter.com/NRA_Tally NRA Tally]&lt;br /&gt;
*** [https://twitter.com/NSA_PRISMbot NSA Prismbot]&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GooglePoetics Google Poetics]&lt;br /&gt;
*** [https://twitter.com/Horse_ebooks Horse ebook]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71521</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71521"/>
		<updated>2015-04-18T11:50:37Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
*** [https://twitter.com/NRA_Tally NRA Tally]&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GooglePoetics Google Poetics]&lt;br /&gt;
*** [https://twitter.com/Horse_ebooks Horse ebook]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71520</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71520"/>
		<updated>2015-04-18T11:48:35Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GooglePoetics Google Poetics]&lt;br /&gt;
*** [https://twitter.com/Horse_ebooks Horse ebook]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71518</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71518"/>
		<updated>2015-04-18T11:45:19Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GoogleLyrik Google Lyrik]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71517</id>
		<title>GMU:Bots &#039;n&#039; Plots/Part1</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Part1&amp;diff=71517"/>
		<updated>2015-04-18T11:41:29Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Bots on Twitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python ==&lt;br /&gt;
&lt;br /&gt;
 Part I of [[GMU:Bots &#039;n&#039; Plots]].&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
&lt;br /&gt;
* Create your Twitter Account&lt;br /&gt;
* Follow @botsnplots&lt;br /&gt;
* Create Participant Page&lt;br /&gt;
* Play on the [[Playground]]&lt;br /&gt;
* Look at the [[Help:Editing|Help Page]]&lt;br /&gt;
* Add 1 Bot to each category&lt;br /&gt;
* Download Processing!&lt;br /&gt;
* Play with Python Mode&lt;br /&gt;
&lt;br /&gt;
== Introduction to Social Bots ==&lt;br /&gt;
=== How do you spot a bot? ===&lt;br /&gt;
* [[wikipedia:Turing Test|Turing Test]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of chatter bots ===&lt;br /&gt;
* [http://loebner.net/Prizef/loebner-prize.html Loebner Prize]&lt;br /&gt;
* From [[wikipedia:ELIZA|ELIZA]] to [[wikipedia:Siri|SIRI]] to [[wikipedia:Her (film)|HER]]&lt;br /&gt;
&lt;br /&gt;
=== A little history of plotter bots ===&lt;br /&gt;
* [http://www.kurzweilcyberart.com/aaron/ AARON]&lt;br /&gt;
* 1960s Computer Art &lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/15 Georg Nees]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/68 Frieder Nake]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/13 Manfred Mohr]&lt;br /&gt;
** [http://dada.compart-bremen.de/item/agent/14 Vera Molnar]&lt;br /&gt;
* [http://doc.gold.ac.uk/creativemachine/artworks/ Creative Machine Exhibition] at Goldsmiths&lt;br /&gt;
&lt;br /&gt;
=== A little history of computer poetry ===&lt;br /&gt;
* Vocal Art&lt;br /&gt;
** [http://www.ubu.com/sound/ursonate.html Ursonate] (Kurt Schwitters)&lt;br /&gt;
** [http://www.flong.com/projects/ursonography/ Ursonography] (Golan Levin)&lt;br /&gt;
** [https://vimeo.com/38471196 Konsonant] (Jörg Piringer)&lt;br /&gt;
* Narrative&lt;br /&gt;
** Morphology of the Folktale (Vladimir Propp)&lt;br /&gt;
** The Great Automatic Grammatizator (Roald Dahl)&lt;br /&gt;
** Data-Driven Journalism&lt;br /&gt;
&lt;br /&gt;
=== Creativity ===&lt;br /&gt;
* [[wikipedia:Computational creativity|Computational Creativity]]&lt;br /&gt;
* Jon McCormack: Computers and Creativity, ISBN 9781283631525&lt;br /&gt;
&lt;br /&gt;
=== Bots on Twitter ===&lt;br /&gt;
* Systema Naturae of Bots&lt;br /&gt;
* [http://www.gamesbyangelina.org/talks/codecamp.pdf A Brief History of the Future of Twitter Bots] (Michael Cook)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Feeds&lt;br /&gt;
*** [http://www.twitter.com/big_ben_clock Big Ben Clock]&lt;br /&gt;
*** [http://twitter.com/kinbot Lake Kinneret Bot]&lt;br /&gt;
*** [http://www.twitter.com/everyword everyword]&lt;br /&gt;
*** [https://twitter.com/sandwiches_bot Random Sandwich]&lt;br /&gt;
*** [https://twitter.com/netflix_bot Netflix Bot]&lt;br /&gt;
*** [https://twitter.com/factbot1 Fact Bot]&lt;br /&gt;
** Watchers &lt;br /&gt;
*** [https://twitter.com/HugsToTheRescue Hug Bot]&lt;br /&gt;
*** [https://twitter.com/YesYoureRacist Yes you&#039;re racist]&lt;br /&gt;
** Interactives&lt;br /&gt;
*** [http://twitter.com/oliviataters olivia taters]&lt;br /&gt;
*** [https://twitter.com/wikisext how 2 sext]&lt;br /&gt;
** Imagebots &lt;br /&gt;
*** [https://twitter.com/imgblur Img Blur]&lt;br /&gt;
*** [https://twitter.com/ClipArtBot Clip Art Bot]&lt;br /&gt;
** Feats&lt;br /&gt;
** Mashups&lt;br /&gt;
***[https://twitter.com/algo_news Algo News]&lt;br /&gt;
** Bot-on-Bot&lt;br /&gt;
** Statements&lt;br /&gt;
** Meat&lt;br /&gt;
*** [https://twitter.com/GoogleLyrik]&lt;br /&gt;
&lt;br /&gt;
* [http://golancourses.net/2015/category/31-bot/ Bot Class] by Golan Levin&lt;br /&gt;
&lt;br /&gt;
== Learning to use the Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Using the Wiki + the Mailinglist ===&lt;br /&gt;
* [[Help:Editing|Using the Wiki]]&lt;br /&gt;
* [[GMU:Mailinglist|Using the Mailinglist]]&lt;br /&gt;
&lt;br /&gt;
=== Using Twitter ===&lt;br /&gt;
* The [https://support.twitter.com/articles/166337-the-twitter-glossary# Twitter Glossary]&lt;br /&gt;
* &#039;&#039;[https://twitter.com/signup Sign The Fxxk Up!]&#039;&#039; and follow [http://twitter.com/botsnplots @botsnplots]&lt;br /&gt;
* Twitter Apps and the Twitter API&lt;br /&gt;
&lt;br /&gt;
=== Using Python in Processing ===&lt;br /&gt;
* [http://processing.org/download/ Get Processing!]&lt;br /&gt;
* [http://py.processing.org Processing Python Mode]&lt;br /&gt;
** [http://py.processing.org/reference/ Reference]&lt;br /&gt;
** [http://py.processing.org/tutorials/ Tutorials]&lt;br /&gt;
&lt;br /&gt;
=== Using iPython Notebooks ===&lt;br /&gt;
&lt;br /&gt;
* iPython (interactive Python, runs in the browser)&lt;br /&gt;
** Play with it [https://tmpnb.org/ here]&lt;br /&gt;
** Explore iPython Notebooks [http://nbviewer.ipython.org/ here]&lt;br /&gt;
&lt;br /&gt;
* Jupyter (Class-Environment for iPython)&lt;br /&gt;
** We will set up our own Jupyter server for you.&lt;br /&gt;
** Nice Example of browser based python using Jupyter [https://www.youtube.com/watch?v=iSGXOU5C3sQ here] (by Doug Blank)&lt;br /&gt;
&lt;br /&gt;
== Learn Programming in Python ==&lt;br /&gt;
* Commands&lt;br /&gt;
* Variables&lt;br /&gt;
* Control Flow&lt;br /&gt;
* Functions&lt;br /&gt;
* Dictionaries, Lists, Sets&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
=== Literature ===&lt;br /&gt;
&lt;br /&gt;
==== Python Books ====&lt;br /&gt;
&lt;br /&gt;
  TO BE DONE&lt;br /&gt;
&lt;br /&gt;
{{PythonBooks}}&lt;br /&gt;
&lt;br /&gt;
==== Processing Books ====&lt;br /&gt;
{{ProcessingBooks}}&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71503</id>
		<title>GMU:Bots &#039;n&#039; Plots/Christopher Marx</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots/Christopher_Marx&amp;diff=71503"/>
		<updated>2015-04-15T18:28:40Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: Created page with &amp;quot;Page of Christopher Marx&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page of Christopher Marx&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots&amp;diff=71502</id>
		<title>GMU:Bots &#039;n&#039; Plots</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Bots_%27n%27_Plots&amp;diff=71502"/>
		<updated>2015-04-15T18:28:14Z</updated>

		<summary type="html">&lt;p&gt;Christopher Marx: /* Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Bots-n-plots-maillardet-drawing.png|thumb|left|300px|&#039;&#039;Drawing by [[wikipedia:Maillardet&#039;s automaton|the Draughtsman-Writer Bot]] ca. 1800&#039;&#039;]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bots &#039;n&#039; Plots &amp;amp;mdash; Malen nach 0 und 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[:Category:Werkmodul|Werkmodul]]/[[:Category:Fachmodul|Fachmodul]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Lecturer:&#039;&#039; [[User:ms|Martin Schneider]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Credits:&#039;&#039; 6 [[ECTS]], 4 [[SWS]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Date:&#039;&#039; Wednesday 17:00 - 20:30 Uhr &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Venue:&#039;&#039; [[Marienstraße 7b]], Room 204&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;First meeting:&#039;&#039; Wednesday, 15. Apr. 2015&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NEWS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;The Deadline has been extended by 24 hours :)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;You need to apply until 24:00 on April 13th, 2015.&#039;&#039;&#039;&lt;br /&gt;
 Applications after the deadline will not be taken into consideration.&lt;br /&gt;
 I will let you know if you made it onto the list on April 14th.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Follow [http://twitter.com/botsnplots @botsnplots] on Twitter!&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The internet of things is infiltrating the social web.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A rich ecosystem of social bots is evolving right now.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Those bots range from the purposeful via the poetic to the philosophical.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;And they are starting to talk to each other.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the Bots &#039;n&#039; Plots course, we will create little robots that doodle and babble.  &amp;lt;br&amp;gt;&lt;br /&gt;
Our robots will be based in software, but we will also learn how to connect them with the physical world, using vision sound and serial connections.  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the course of the class you will:&lt;br /&gt;
&lt;br /&gt;
* Learn programming with Python&lt;br /&gt;
* Process images and text&lt;br /&gt;
* Create generative drawings and poems&lt;br /&gt;
* Use APIs for the social web, including Twitter and Mediawiki&lt;br /&gt;
* Create your own software bots and make them talk to each other&lt;br /&gt;
&lt;br /&gt;
The course requires no previous programming experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the course you will acquire fundamental programming skills that will enable you to take more advanced courses in the future. &amp;lt;br&amp;gt;&lt;br /&gt;
It is recommended to combine the course with the [[GMU:eval(nature)|eval(nature) module]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Das Internet der Dinge erobert die sozialen Netzwerke.&#039;&#039;  &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Im Augenblick entwickelt sich ein vielfältiges Ökosystem sozialer Bots.&#039;&#039;  &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Die Bots decken ein weites Spektrum ab, vom Praktischen, über Poetisches bis hin zum Philosophischen.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Und sie fangen an miteinander zu kommunizieren...&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Malen nach 0 und 1&#039;&#039; werden wir kleine Roboter erschaffen, die kritzeln und brabbeln. &amp;lt;br&amp;gt;&lt;br /&gt;
Unsere Roboter bestehen aus Nullen und Einsen, aber wir werden auch lernen sie mit der materiellen Welt zu verbinden, wobei Kameras, Töne und Kabel zum Einsatz kommen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Rahmen des Moduls werdet ihr:&lt;br /&gt;
&lt;br /&gt;
* Programmieren mit Python lernen&lt;br /&gt;
* Grafik und Text verarbeiten&lt;br /&gt;
* Generative Grafiken und Gedichte erzeugen&lt;br /&gt;
* APIs für Soziale Netzwerke nutzen, inkl. Twitter und Mediawiki&lt;br /&gt;
* Eigene Software-Bots entwickeln und sie dazu bringen miteinander zu reden.&lt;br /&gt;
&lt;br /&gt;
Dieses Modul erfordert keine Programmierkentnisse.&lt;br /&gt;
&lt;br /&gt;
Im Rahmen des Kurses werden grundlegende Programmierkentnisse vermittelt, die es ermöglichen in Zukunft fortgeschrittene Kurse zu belegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird empfohlen diesen Kurs mit dem Projekt-Modul [[GMU:eval(nature)|eval(nature)]] zu kombinieren.&lt;br /&gt;
&lt;br /&gt;
== Language ==&lt;br /&gt;
&lt;br /&gt;
The course will be in English, unless all participants are speaking German.&lt;br /&gt;
&lt;br /&gt;
== Eligible Participants ==&lt;br /&gt;
&lt;br /&gt;
Undergraduates and graduates enrolled in the faculties of:&lt;br /&gt;
&lt;br /&gt;
* Media Art/Design&lt;br /&gt;
* Visual Communication&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Burning Interest in Artificial Intelligence, Computer-Linguistics and Generative Design&lt;br /&gt;
* Previous course about the Internet of Things highly recommended&lt;br /&gt;
* Working knowledge of Web Technologies (HTML, CSS, Javascript ...)&lt;br /&gt;
* Time and Devotion for lots of coding homework, which may be frustrating at times&lt;br /&gt;
* Programming experience considered helpful&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
The deadline to apply for this course is April 13th, 2015&lt;br /&gt;
&lt;br /&gt;
 You need to provide links to previous work to be elligible to this course.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To:&#039;&#039;&#039; [[User:ms|Martin Schneider]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Subject:&#039;&#039;&#039; Bots n Plots /// Application&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Content:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Please provide links to three of your visual, poetic or algorithmic works online.&lt;br /&gt;
# Please answer these questions:&lt;br /&gt;
#* What is your favourite bot on twitter?&lt;br /&gt;
#* What kind of bot would you like to be able to create at the end of the course?&lt;br /&gt;
# Please tell us about you:&lt;br /&gt;
#* program and semester (Studienprogramm und Fachsemester)&lt;br /&gt;
#* matriculation number (Matrikelnummer)&lt;br /&gt;
#* Valid email address @uni-weimar.de (no other mailing addresses will be accepted) [[SCC-Services#E-Mail|Why?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
 This is the outline of the course.&lt;br /&gt;
 The details may still be subject to change.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Theme !! Topic !!  Date &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Part1|Part 1: Python]]&lt;br /&gt;
| 01: Programming I&lt;br /&gt;
| 15. April 2015&lt;br /&gt;
|-&lt;br /&gt;
| 02: Programming II&lt;br /&gt;
| 22. April 2015&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | [[/Part2|Part 2: Plotter Bots]]&lt;br /&gt;
| 03: Drawing and Plotting I&lt;br /&gt;
| 29. April 2015&lt;br /&gt;
|-&lt;br /&gt;
| 04: Drawing and Plotting II&lt;br /&gt;
| 06. May 2015&lt;br /&gt;
|-&lt;br /&gt;
| 05: Image Processing I&lt;br /&gt;
| 13. May 2015&lt;br /&gt;
|-&lt;br /&gt;
| 06: Image Processing II&lt;br /&gt;
| 20. May 2015&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | [[/Part3|Part 3: Chatter Bots]]&lt;br /&gt;
| 07: Language Processing I&lt;br /&gt;
| 27. May 2015&lt;br /&gt;
|-&lt;br /&gt;
| 08: Language Processing II&lt;br /&gt;
| 03. June 2015&lt;br /&gt;
|-&lt;br /&gt;
| 09: Generating Poetry&lt;br /&gt;
| 10. June 2015&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | [[/Part4|Part 4: Social Bots]]&lt;br /&gt;
| 10: Twitter Bots I&lt;br /&gt;
| 17. June 2015&lt;br /&gt;
|-&lt;br /&gt;
| 11: Twitter Bots II&lt;br /&gt;
| 24. June 2015&lt;br /&gt;
|-&lt;br /&gt;
| 12: Wiki Bots I&lt;br /&gt;
| 01. July 2015&lt;br /&gt;
|-&lt;br /&gt;
| 13: Wiki Bots II&lt;br /&gt;
| 08. July 2015&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation ==&lt;br /&gt;
&lt;br /&gt;
* Presence and active participation (required)&lt;br /&gt;
* Punctual and complete submission of homework (required)&lt;br /&gt;
&lt;br /&gt;
* 50% Technical and aesthetic execution of the final bot project&lt;br /&gt;
* 20% Emergent behaviour from making the robots talk&lt;br /&gt;
* 20% Documentation of the final project&lt;br /&gt;
* 10% Contribution to the MediaWiki&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Sebastian Stang|Sebastian Stang]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Maria Degand|Maria Degand]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Klaus Kraemer|Klaus Kraemer]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Angelica Sohn|Angelica Sohn]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Luis Hurtarte|Luis Hurtarte]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Apasri Titatarn|Apasri Titatarn]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Jan Dropmann|Jan Dropmann]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Azucena Sanchez|Azucena Sanchez]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Natalia Martínez|Natalia Martínez]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/smin kim|Smin Kim]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/minsoo hwang|minsoo Hwang]]&lt;br /&gt;
* [[GMU:Bots_&#039;n&#039;_Plots/Christopher Marx|Christopher Marx]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Here are a couple of links that should give you an idea of where this course is heading ...&lt;br /&gt;
&lt;br /&gt;
=== Learning Python ===&lt;br /&gt;
* [http://www.codecademy.com/en/tracks/python Learn Python] at Code Academy&lt;br /&gt;
=== Image Processing ===&lt;br /&gt;
* [http://software-carpentry.org/v4/media/ Multimedia Programming] by Software Carpentry&lt;br /&gt;
=== Video Processing ===&lt;br /&gt;
* [https://zulko.github.io/moviepy/ MoviePy] by Zulko&lt;br /&gt;
* [https://zulko.github.io/blog/2014/09/20/vector-animations-with-python/ Vector Animations with Python]&lt;br /&gt;
=== Language Processing ===&lt;br /&gt;
* [http://h6o6.com/2013/03/using-python-and-the-nltk-to-find-haikus-in-the-public-twitter-stream/ Using Python and the NLTK to find Haikus in the public twitter stream]&lt;br /&gt;
* [http://dhconnelly.com/paip-python/docs/paip/eliza.html Eliza.py]&lt;br /&gt;
=== Twitter ===&lt;br /&gt;
* [https://zulko.github.io/blog/2014/07/26/a-tweets-controlled-python-script/|A Python Script controlled via Twitter]&lt;br /&gt;
&lt;br /&gt;
== Literature ==&lt;br /&gt;
* Bird, Steven: &#039;&#039;Natural Language Processing with Python&#039;&#039; ISBN 978-0596516499 ([http://www.nltk.org/book/ online])&lt;br /&gt;
* Lobin, Hennig:&#039;&#039;Computerlinguistik und Texttechnologie&#039;&#039; ISBN 978-3825232825 &lt;br /&gt;
* Russel, Mathew: &#039;&#039;Mining the Social Web&#039;&#039; ISBN 978-1449367619&lt;br /&gt;
* Segaran, Toby&#039;&#039;: Programming Collective Intelligence&#039;&#039; ISBN 978-0596529321&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
This is a list of recommended books for the Python language:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{PythonBooks}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Beazley, David: &#039;&#039;Python Cookbook&#039;&#039; ISBN 978-1449340377 &lt;br /&gt;
* Blum, Richard: &#039;&#039;Python Programming for Raspberry Pi&#039;&#039; ISBN 978-0789752055 &lt;br /&gt;
* Chan, Jamie: &#039;&#039;Learn Python in One Day and Learn it Well&#039;&#039; ISBN 978-1506094380&lt;br /&gt;
* Zelle, John: &#039;&#039;Python Programming: An Introduction to Computer Science&#039;&#039; ISBN 978-1590282410 ([http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.111.6062 online])&lt;br /&gt;
&lt;br /&gt;
=== Further Reading ===&lt;br /&gt;
There are a couple of books in the Semesterapparat of [[Society of Networked Things]], that you might want to flip trough.&lt;br /&gt;
&lt;br /&gt;
[[Category:SS15]]&lt;br /&gt;
[[Category:Werkmodul]]&lt;br /&gt;
[[Category:Fachmodul]]&lt;br /&gt;
[[Category:Martin Schneider]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Gestaltung]]&lt;br /&gt;
[[Category:Design]]&lt;br /&gt;
[[Category:Poetry]]&lt;br /&gt;
[[Category:Generative Gestaltung]]&lt;br /&gt;
[[Category:Robots]]&lt;/div&gt;</summary>
		<author><name>Christopher Marx</name></author>
	</entry>
</feed>