<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>neilkodner.com &#187; twitter</title>
	<atom:link href="http://www.neilkodner.com/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neilkodner.com</link>
	<description>Data Driven.  Since 1971.</description>
	<lastBuildDate>Sun, 23 Oct 2011 16:40:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Visualizations of Canabalt scores scraped from twitter</title>
		<link>http://www.neilkodner.com/2011/02/visualizations-of-canabalt-scores-scraped-from-twitter/</link>
		<comments>http://www.neilkodner.com/2011/02/visualizations-of-canabalt-scores-scraped-from-twitter/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 22:56:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[canabalt]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[r]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.neilkodner.com/?p=479</guid>
		<description><![CDATA[Canabalt, a ridiculously addicting web/IOS-device game allows one to show off their high scores, and their not-so-high scores to Twitter. Each of these tweets contains a bit of information &#8211; The score represented in meters, the method of death (hitting a wall and tumbling to my death) and the device (iPhone). Other useful information can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.canabalt.com/">Canabalt</a>, a ridiculously addicting web/IOS-device game allows one to show off their high scores, and their <a href="http://twitter.com/#!/neilkod/status/37964035903324160">not-so-high scores</a> to Twitter.</p>
<p><a href="http://www.neilkodner.com/wp-content/uploads/2011/02/canabaltscore.png"><img class="alignnone size-medium wp-image-485" title="canabaltscore" src="http://www.neilkodner.com/wp-content/uploads/2011/02/canabaltscore-300x105.png" alt="" width="300" height="105" /></a></p>
<p>Each of these tweets contains a bit of information &#8211; The score represented in meters, the method of death (hitting a wall and tumbling to my death) and the device (iPhone). Other useful information can easily be extracted such as the date/time played and information about the user (name, location, friend count, follower count, etc). Over the next few weeks I aim to see what features, if any, has any influence on Canabalt scores.</p>
<p>The first thing I needed to do was capture the tweeted Canabalt scores. I have a process running on an EC2 micro instance that downloads tweets from the Twitter Streaming API based on certain key words, one of them being canabalt. The process loads each matching tweet into a MongoDB instance hosted on <a href="http://www.mongohq.com">MongoHQ.com</a>.</p>
<pre class="brush: bash; title: ; notranslate">

curl -s -u $TWITTER_USERNAME:$TWITTER_PASSWORD -d @/home/ec2-user/trackingkeywords http://stream.twitter.com/1/statuses/filter.json |/home/ec2-user/mongodb/bin/mongoimport &amp;
</pre>
<p>Where trackingkeywords is a file containing a comma-separated list of keywords that I track on twitter. Additionally, I left connection details out of the mongoimport command. You&#8217;ll need to provide a host, port, database, and collection into the mongoimport command.</p>
<p>I then run some python code to query the MongoDB instance and retrieve tweets mentioning Canabalt, based on a simple regular expression. I&#8217;m expecting the tweet to begin with &#8216;I&#8217; and contain the word Canabalt. Pretty naive but it worked fine. If it&#8217;s not a true Canabalt score, I&#8217;ll be able to determine in no time. From there, I use regular expressions to extract(for now) the score, the method of death, and the device name.</p>
<pre class="brush: python; title: ; notranslate">
def canabalt_tweets():

	# connect to MongoDB
	tweets = create_connection(False)

	# regular expression to extract components of a canabalt score
	canabalt_regexp = re.compile(r'I ran (\d{3,7})m before (.*) on my ([^.]+)\.')

	# regular expression to match tweets that begin with I ran and mention canabalt
	regexp = re.compile('^I ran .*canabalt')

	# create a MongoDB cursor(query)
	cur = tweets.conftweets.find({'text': regexp}, {'text': 1})

	# iterate through the cursor. If a tweet fits the pattern, print it.
	for item in cur:
		try:
			(score,death,device) = canabalt_regexp.search(item['text']).groups()
			print ','.join([strip_text(score),strip_text(death),strip_text(device)])
		except:
			pass
</pre>
<p>Function strip_text() is part of my data tools Bat-Utility Belt and cleans text by removing leading/trailing spaces, crlf, tabs and some other junk.</p>
<p>We now have some comma-separated data in this shape</p>
<pre class="brush: plain; title: ; notranslate">
score,death,device
2860,hitting a wall and tumbling to my death,iPhone
3427,hitting a wall and tumbling to my death,iPad
4496,hitting a wall and tumbling to my death,iPad
3635,missing another window,iPhone
2040,colliding with some enormous obstacle,iPhone
6017,somehow hitting the edge of a billboard,iPhone
8374,knocking a building down,iPhone
2939,hitting a wall and tumbling to my death,iPad
2021,turning into a fine mist,iPad
</pre>
<p>Now for some more fun &#8211; visualization and analysis. This is performed in R because, well, R is awesome. That, and I really need some more practice with R.</p>
<p>To date, I&#8217;ve collected just over 1200 Canabalt &#8216;events&#8217;. I will likely turn this into a web app if there&#8217;s enough interest.</p>
<p>A couple of summaries:</p>
<p>scores by device type:</p>
<pre class="brush: plain; title: ; notranslate">
      device count mean stddev median   max min range
      iPhone   735 4491   3882 3419.0 36332 102 36230
        iPad   284 4723   3884 4041.5 40630 104 40526
  iPod touch   189 3734   3644 2713.0 28024 102 27922&gt;
</pre>
<p>scores by type of death:</p>
<pre class="brush: plain; title: ; notranslate">
                                            death count mean stddev median   max  min range
          hitting a wall and tumbling to my death   684 4155   3481 3319.5 36332  102 36230
                           missing another window   243 5898   4981 4486.0 40630  409 40221
                         turning into a fine mist    86 3592   2698 2662.5 16441  614 15827
            colliding with some enormous obstacle    40 4768   4247 3256.5 16933  433 16500
                              falling to my death    37 4176   3160 3619.0 13573  567 13006
                       missing a crane completely    22 2950   1774 2923.5  7883  381  7502
                         knocking a building down    21 3399   2267 2849.0  8374  336  8038
                   not quite reaching a billboard    19 3098   1244 2980.0  5772  444  5328
              landing where a building used to be    17 4804   4970 3631.0 22685 1170 21515
          somehow hitting the edge of a billboard    14 5991   3827 5518.5 13547  566 12981
   just barely stumbling out of the first hallway    13  104      1  104.0   104  102     2
              somehow hitting the edge of a crane     7 5497   4835 4942.0 13275  510 12765
       riding a falling building all the way down     4 4278   2162 4195.5  6993 1727  5266
           completely  missing the entire hallway     1 1046     NA 1046.0  1046 1046     0
</pre>
<p>And now, in the spirit of killing the almighty ink-data ratio, here are some pictures:<br />
<img class="alignnone size-full wp-image-503" title="overall plot of scores" src="http://www.neilkodner.com/wp-content/uploads/2011/02/canabaltscores.png" alt="plot of scores" width="619" height="630" /></p>
<p><a href="http://www.neilkodner.com/wp-content/uploads/2011/02/bydeathfactedbytype11.png"><img class="alignnone size-large wp-image-505" title="by death faceted by device type" src="http://www.neilkodner.com/wp-content/uploads/2011/02/bydeathfactedbytype11-1024x779.png" alt="by death faceted by device type" width="717" height="545" /></a></p>
<p><a href="http://www.neilkodner.com/wp-content/uploads/2011/02/scores-by-device.png"><img class="alignnone size-full wp-image-507" title="scores by device" src="http://www.neilkodner.com/wp-content/uploads/2011/02/scores-by-device.png" alt="scores by device" width="534" height="539" /></a></p>
<p><a href="http://www.neilkodner.com/wp-content/uploads/2011/02/bydeathtype.png"><img class="alignnone size-large wp-image-509" title="bydeathtype" src="http://www.neilkodner.com/wp-content/uploads/2011/02/bydeathtype-1024x641.png" alt="by death type" width="614" height="385" /></a></p>
<p>What have we learned? So far, while my data set isn&#8217;t altogether that large(1200 events), we might have enough to make some basic observations and assumptions(correction please!). Going into this experiment I thought that iPad players would have generally higher scores. This is because of #1 the larger screen size and #2 players wouldn&#8217;t necessarily be playing &#8216;on-the-go&#8217; as they would be (I know I am) on an iPhone or iPod touch. The iPad has higher median and average scores than the other devices. I&#8217;d like to revisit this as I collect more data.</p>
<p>The leading cause of Canabalt death, by far, is hitting a wall and tumbling to one&#8217;s death. This surprised me as I thought it would be falling to death &#8211; that&#8217;s how my Canabalt games seem to end.</p>
<p>I&#8217;d like to hear your comments suggestions for new analysis, and most of all, your corrections.  You know who you are and this is how I learn. The data and python/R source can be found on <a href="https://github.com/neilkod/canabalt">github</a>.</p>
<p>The stack: Twitter Streaming API, EC2, MongoDB, Python, Regular Expressions, R</p>
<p>Things I learned working on this: <a href="http://had.co.nz/plyr/">plyr</a>(group-by and aggregation in R), sorting dataframes in R, couple of new <a href="http://had.co.nz/ggplot2/">ggplot2</a> tricks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilkodner.com/2011/02/visualizations-of-canabalt-scores-scraped-from-twitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My Twitter bots:  Tens of thousands of followers can&#8217;t be wrong</title>
		<link>http://www.neilkodner.com/2010/12/my-twitter-bots-tens-of-thousands-of-followers-cant-be-wrong/</link>
		<comments>http://www.neilkodner.com/2010/12/my-twitter-bots-tens-of-thousands-of-followers-cant-be-wrong/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 12:20:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[seinfeld]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.neilkodner.com/?p=412</guid>
		<description><![CDATA[edit: March 17, 2011 I need your help! If you have additional Seinfeld quotes to contribute, or for a list of all of the current Seinfeld quotes, please visit this post. My current army of twitter bots and the keyword that each one responds to: @HelloooooNewman (seinfeld) Klout score 74 @TheBotLebowski (lebowski) Klout score 70 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>edit: March 17, 2011 I need your help! If you have additional Seinfeld quotes to contribute, or for a list of all of the current Seinfeld quotes, <a href="http://www.neilkodner.com/2011/03/looking-for-some-new-quotes-for-hellooooonewman/">please visit this post.</a></strong></p>
<p><a href="http://www.neilkodner.com/wp-content/uploads/2010/12/bot-followers.png"><img class="alignnone size-full wp-image-414" title="bot followers" src="http://www.neilkodner.com/wp-content/uploads/2010/12/bot-followers.png" alt="" width="839" height="182" /></a></p>
<p>My current army of twitter bots and the keyword that each one responds to:</p>
<ul>
<li><a href="http://www.twitter.com/#!/hellooooonewman">@HelloooooNewman</a> (seinfeld) <a href="http://klout.com/hellooooonewman">Klout score 74</a></li>
<li><a href="http://www.twitter.com/#!/thebotlebowski">@TheBotLebowski</a> (lebowski) <a href="http://klout.com/thebotlebowski">Klout score 70</a></li>
<li><a href="http://www.twitter.com/#!/acenterforants">@ACenterForAnts</a> (zoolander) <a href="http://klout.com/acenterforants">Klout score 70</a></li>
<li><a href="http://www.twitter.com/#!/iamjacksbot">@IAmJacksBot</a> (fight club) <a href="http://klout.com/iamjacksbot">Klout Score 74</a></li>
<li><a href="http://www.twitter.com/#!/amaninamask">@AManInAMask</a> (V for Vendetta)</li>
<li><a href="http://www.twitter.com/#!/worldofshit">@WorldOfShit</a> (full metal jacket) <a href="http://klout.com/worldofshit">Klout score 65</a></li>
<li><a href="http://www.twitter.com/#!/somegrenades">@SomeGrenades</a> (serenity + firefly) <a href="http://klout.com/somegrenades">Klout score 56</a></li>
<li><a href="http://www.twitter.com/#!/gunshowtickets">@GunShowTickets</a> (Ron Burgundy) No Klout score yet</li>
<li><a href="http://www.twitter.com/#!/pleasebe18">@PleaseBe18</a> (Ricky Bobby)</li>
<li><a href="http://www.twitter.com/#!/abakingpowder">@ABakingPowder</a> (schwing) <a href="http://klout.com/abakingpowder">Klout score 54</a></li>
<li><a href="http://www.twitter.com/#!/which_is_nice">@Which_is_nice</a> (caddyshack) <a href="http://klout.com/which_is_nice">Klout score 56</a></li>
<li><a href="http://www.twitter.com/#!/mitchhedbot">@MitchHedbot</a> (mitch hedberg) No Klout Score yet</li>
<li><a href="http://www.twitter.com/#!/dubbbya">@dubbbya</a> (gwb) &#8212; banned from twitter</li>
<li><a href="http://www.twitter.com/#!/dreidly">@dreidly</a> (dreidel) &#8212; retired</li>
</ul>
<p>I&#8217;ve also built a few programs that scrape air quality data from the State of Utah and tweet the results.</p>
<ul>
<li><a href="http://www.twitter.com/#!/utahairquality">@UtahAirQuality</a> serving Salt Lake and Davis Counties</li>
<li><a href="http://www.twitter.com/#!/webercountyair">@WeberCountyAir</a></li>
<li><a href="http://www.twitter.com/#!/cachecountyair">@CacheCountyAir</a></li>
<li><a href="http://www.twitter.com/#!/utahcountyair">@UtahCountyAir</a></li>
</ul>
<p><a href="http://twitter.com/#!/usadebtlevel">@usadebtlevel</a> which tweets the US National Debt and each US Citizen&#8217;s share.</p>
<p>And here&#8217;s a sneak preview: @SarahEffinPalin was conceived after a friend, Willie Morris (<a href="http://www.twitter.com/#!/morewillie">@morewillie</a>) suggested a bot that, lets say, repurposes <a href="http://www.twitter.com/#!/sarahpalinusa">Sarah Palin&#8217;s</a> tweets.  I think <a href="http://www.twitter.com/#!/saraheffinpalin">@SarahEffinPalin</a> is going to be a hit.</p>
<p>We all know The Big Lebowski is a cult classic and one of the most quoteable movies of all time.  I don&#8217;t exactly remember how this started but a long time ago, I thought people who mentioned &#8220;Lebowski&#8221; in a tweet would appreciate receiving a quote from the movie.  So with nothing but the Twitter API docs and a little bit of python, I built <a href="http://www.twitter.com/#!/thebotlebowski">@thebotlebowski</a>, my first auto-responder.  The idea was simple &#8211; using urllib2, perform a search for &#8220;lebowski&#8221;, and iterate through the results.  For each result, retrieve a random entry out of a quotes database and tweet it as a reply to the original tweet.</p>
<p><span style="font-size: 11.6667px;">After a ton of retweets, #ff mentions, replies, and followers, it became pretty obvious that people liked it.  I needed a followup &#8211; another infinitely quoteable movie.  Zoolander!  Thus, <a href="http://www.twitter.com/#!/">@ACenterForAnts</a> was born.  Again, my research showed that all mentions of Zoolander on twitter were either references to the movie or Derek Zoolander himself.</span></p>
<p>Another follow-up was in order.  A <a href="http://www.twitter.com/#!/abstractdata">friend</a> suggested a Seinfeld one.  Done. Welcome <a href="http://www.twitter.com/#!/hellooooonewman">@HelloooooNewman</a>. And then <a href="http://www.twitter.com/#!/iamjacksbot">@IAmJacksBot</a> and then the others.  The key was to create bots that use search terms that are not vague &#8211; If someone tweets &#8220;Full Metal Jacket&#8221;, then they&#8217;re obviously talking about the movie.  Same with &#8220;Fight Club.&#8221;</p>
<p>One of the lessons learned was that not everyone who tweets about &#8220;GWB&#8221; was necessarily referencing the president.  A <a href="http://www.twitter.com/#!/dtseiler">friend</a> suggested a bot that replies to mentions of GWB with one of George Bush&#8217;s self-butchered quotes.  People loved it except for people in New York &#8211; hey, I didn&#8217;t realize that so many people tweeted about the George Washington Bridge in abbreviated format!  This includes several NYC twitter accounts that automatically post traffic conditions.  The complaints came in quicker than I could add people to the ignore list.  Eventually, the well-loved but polarizing <a href="http://www.twitter.com/#!/dubbbya">@dubbbya</a> was banned from twitter.  May his <a href="http://www.neilkodner.com/georgewbushquotes.txt">quotes</a> live on in infamy.</p>
<p>While the bots have been very well-received, not everyone likes them.  When there were only a handful of bots, I used to monitor their responses.  Not that there are so many, I&#8217;ve added an ignore list for just this reason.  To add yourself to the ignore list, either contact me, <a href="http://www.twitter.com/#!/@neilkod">tweet me</a>, or visit <a href="http://neilkodsbots.appspot.com">http://neilkodsbots.appspot.com</a>.</p>
<p><strong>Frequently Asked Questions:</strong></p>
<p><strong>Have any celebrities found your bots?</strong></p>
<p>The bots tweet out to celebrities all of the time.  @ACenterForAnts has tweeted <a href="http://www.twitter.com/#!/redhourben">Ben Stiller</a> many, many times but Ben has never replied.  Sometimes, the celebrities tweet back.  I don&#8217;t actively monitor the mentions and replies to the bots &#8211; there are just too many.  My favorite anecdote, so far, is when <a href="http://www.twitter.com/#!/adamsbaldwin">Adam Baldwin</a> discovered <a href="http://www.twitter.com/#!/worldofshit">@worldofshit</a>, my Full Metal Jacket bot and immediately triggered it over and over to receive new quotes.  He then started tweeting about the bot to his followers and it quickly picked up steam.  I was thrilled to see that one of the stars of Full Metal Jacket was tweeting so favorably about a program that I wrote that I created <a href="http://www.twitter.com/#!/somegrenades">@somegrenades</a> in his honor.</p>
<p>If you notice a celebrity or otherwise notable person referencing one of my bots, please let me know.  <a href="http://www.delicious.com/neilkod/celebrity">The mentions that I know about</a> include Q-Tip, Taleb Kweli, and Fred Durst.</p>
<p><strong>But you&#8217;re a data geek, not a twitter programmer!  Are you doing anything cool with the data?</strong></p>
<p>Yes!  Every tweet that I find, I log.  For example, since <a href="http://www.twitter.com/#!/">@HelloooooNewman</a> has already sent out over 170,000 replies, I have at least that many incoming tweets mentioning Seinfeld in my logs.  I am able to tell who&#8217;s tweeting about Seinfeld, when people are talking about Seinfeld, what they&#8217;re saying, and so on and so forth.  I can even tell if certain events, such as the release of a box set or a new event have resulted in an increase of Seinfeld tweets.  For examples of some of the things I&#8217;ve done with the twitter data, check out this <a href="http://www.neilkodner.com/2010/04/hacking-seinfeld-tweets-with-apache-pig-a-work-in-progress/">analysis of Seinfeld Tweets</a> or this <a href="http://www.neilkodner.com/2010/11/what-do-23000-charlie-sheen-tweets-look-like/">word cloud generated from 23,000 tweets about Charlie Sheen</a>.  Please contact me if you&#8217;d like to hear more.</p>
<p><span style="font-size: 11.6667px;"><strong>Would you create a bot for me/my company/my promotion?</strong></span></p>
<p>I get asked this all of the time.  The answer is:  It depends.  Lets talk.  Before we go about doing this, we&#8217;d need to establish a few ground rules.  I&#8217;ve worked very hard to keep the bots entertaining and not spammy.</p>
<p><strong>The tweets don&#8217;t include urls or advertisements &#8211; Are you making any money off of them?</strong></p>
<p>While the bots don&#8217;t generate income directly, they have led to other opportunities and benefits.  For starters, I&#8217;ve picked up a ton of quality followers and contacts that I would have never met.  Additionally, through this experience, I&#8217;ve learned a great deal about twitter the twitter API, and numerous features of Python that I wouldn&#8217;t have normally dived into.  To answer the question, A few companies and web sites have licensed the technology and I&#8217;ve created custom bots and twitter searches for them.  I&#8217;ve elected to not mention them directly in this post.</p>
<p><strong>I don&#8217;t want the bots to reply to my tweets.  Can they ignore me?</strong></p>
<p>Sure, the easiest way to be ignored is to visit <a href="http://neilkodsbots.appspot.com">http://neilkodsbots.appspot.com</a> and add yourself to the ignore list.  Honor system please!  I didn&#8217;t feel it was necessary to ask users to authenticate via twitter just so my application could ignore them.</p>
<p><strong>I&#8217;m selling Seinfeld/Zoolander/Lebowski products &#8211; will you tweet this link to all of your bots followers?</strong></p>
<p>I also get asked this all of the time.  <a href="http://www.twitter.com/#!/hellooooonewman">@HelloooooNewman</a> has over ten thousand followers.  <a href="http://www.twitter.com/#!/ACenterForAnts">@ACenterForAnts</a> and <a href="http://www.twitter.com/#!/TheBotLebowski">@TheBotLebowski</a> also combine for another ten thousand followers.  While I won&#8217;t send a mention of your product/URL/promotion to their followers, I do have other methods of driving traffic and building awareness to a targeted group of followers.  Lets talk.</p>
<p><strong>May I have the source code?</strong></p>
<p>Since I&#8217;ve been using this program for a few not-mentioned commercial purposes, I&#8217;m not interested in sharing the secret sauce.  I will, however, let you know it was pretty straightforward to do.  Anyone with a minimum of programming skill should be able to do this.</p>
<p><strong>Will there be more bots?</strong></p>
<p>Always.  I&#8217;m always on the lookout for new ideas.  Let me know if you have any.  The next one on my plate will be one for Eastbound and Down.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilkodner.com/2010/12/my-twitter-bots-tens-of-thousands-of-followers-cant-be-wrong/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Word Cloud from 6,500 tweets mentioning Kayne West.  From this morning</title>
		<link>http://www.neilkodner.com/2010/12/word-cloud-from-6500-tweets-mentioning-kayne-west-from-this-morning/</link>
		<comments>http://www.neilkodner.com/2010/12/word-cloud-from-6500-tweets-mentioning-kayne-west-from-this-morning/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 22:25:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[kanye]]></category>
		<category><![CDATA[kanyewest]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.neilkodner.com/?p=403</guid>
		<description><![CDATA[After removing a few stopwords and then clearing out a few other words(nowplaying, lastfm, and the like), here&#8217;s what&#8217;s left.  The data represents a half-day&#8217;s worth of tweets.   I&#8217;m sitting on about 90,000 tweets about Kanye and am looking forward to taking the time for some more in-depth analysis.  Huge thanks to @jrlevine and [...]]]></description>
			<content:encoded><![CDATA[<p>After removing a few <a href="http://www.neilkodner.com/stopwords.txt">stopwords</a> and then clearing out a few other words(nowplaying, lastfm, and the like), here&#8217;s what&#8217;s left.  The <a href="http://www.neilkodner.com/kanyetoday.txt">data</a> represents a half-day&#8217;s worth of tweets.   I&#8217;m sitting on about 90,000 tweets about Kanye and am looking forward to taking the time for some more in-depth analysis.  Huge thanks to <a href="http://www.twitter.com/#!/jrlevine">@jrlevine</a> and <a href="http://www.twitter.com/#!/alexmr">@alexmr</a> from <a href="http://www.twordsie.com">twordsie.com</a> for curating the awesome stopwords list, which I found in their <a href="https://github.com/jakelevine/twordsie">github project</a>.</p>
<p><a href="http://www.neilkodner.com/wp-content/uploads/2010/12/kanye-word-cloud.png"><img class="alignnone size-large wp-image-404" title="kanye word cloud" src="http://www.neilkodner.com/wp-content/uploads/2010/12/kanye-word-cloud-1024x447.png" alt="kayne west tweets word cloud" width="1024" height="447" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilkodner.com/2010/12/word-cloud-from-6500-tweets-mentioning-kayne-west-from-this-morning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And you thought you were the first to use #DONTFUCKWITHJUSTINBIEBER</title>
		<link>http://www.neilkodner.com/2010/08/and-you-thought-you-were-the-first-to-use-dontfuckwithjustinbieber/</link>
		<comments>http://www.neilkodner.com/2010/08/and-you-thought-you-were-the-first-to-use-dontfuckwithjustinbieber/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 16:58:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[hashtag]]></category>
		<category><![CDATA[pig]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.neilkodner.com/?p=287</guid>
		<description><![CDATA[Through the magic of hadoop, pig, over 300 million(and counting) tweets, and the never-ending creativity of my fellow twitter users, I thought I&#8217;d take a look at all of the hashtags containing the beloved f-word. Lets get the technical details out of the way.  Since the middle of June, I&#8217;ve been saving as many tweets [...]]]></description>
			<content:encoded><![CDATA[<p>Through the magic of <a href="http://hadoop.apache.org/">hadoop</a>, <a href="http://hadoop.apache.org/pig">pig</a>, over 300 million(and counting) tweets, and the never-ending creativity of my fellow twitter users, I thought I&#8217;d take a look at all of the hashtags containing the beloved f-word.</p>
<p>Lets get the technical details out of the way.  Since the middle of June, I&#8217;ve been saving as many tweets as I can to local storage, using Twitter&#8217;s streaming API and my gardenhose access.  Sorry, <a href="http://www.cloudera.com">Cloudera</a> guys, I&#8217;m not yet using <a href="http://github.com/cloudera/flume">flume</a>, but it&#8217;s high on the to-do list.  Using a 3-node cluster, I&#8217;m able to search through these tweets and extract valuable(?) data in a matter of minutes.</p>
<p>The pig script(Sorry, looks like gist.github.com doesn&#8217;t auto-format pig):<br />
<script src="http://gist.github.com/515641.js"></script></p>
<p>And now the fun stuff.  I found over 31,000 different hashtags containing the f-word.  Bonus to the first person who can tell me what GFW is.<br />
The top-ten results and the frequency of their mentions are:</p>
<pre class="brush: plain; title: ; notranslate">
#fuck	10406
#fuckouttahere	3172
#fuckinfollow	3062
#fuckit	2970
#fuckyou	2303
#fuckgfw	1573
#fuckyeah	1551
#fuckery	1436
#fucking	1273
#fuckoff	988
</pre>
<p>Lets move on to what&#8217;s really important-celebrities, sports figures, and other important American topics:</p>
<p>Lady Gaga</p>
<pre class="brush: plain; title: ; notranslate">
#dontfuckwiththegaga	11
#fuckthegagahaters	4
#fuckgaga	3
#fuckladygaga	3
#dontfuckwithgaga	2
#fuckmegaga	2
#fucktrannygaga	1
</pre>
<p><span id="more-287"></span></p>
<p>Obama</p>
<pre class="brush: plain; title: ; notranslate">
#fuckobama	7
#dontfuckwithobama	2
#fuckyouobama	1
#fuckbarackobama	1
#fucking_twat_obama	1
#obamabrieflymadefuckedmeover	1
</pre>
<p>taxes</p>
<pre class="brush: plain; title: ; notranslate">
#fucktaxes	5
#blackpeopleneverpaybillsfuckinuptaxescredit	1
#fuckingtaxes	1
</pre>
<p>The NY Yankees</p>
<pre class="brush: plain; title: ; notranslate">
#fucktheyankees	31
#fuckyankees	3
#fuckdayankees	1
#fuckyouyankees	1
</pre>
<p>The Red Sox</p>
<pre class="brush: plain; title: ; notranslate">
#fucktheredsox	2
#fuckredsox	1
#fuckredsoxfans	1
#fucktheredsoxs	1
#ifuckinghaaaateredsoxanddavidortizandhisslowfatassshouldveputarodinmaybewouldvewon	1
#fucktheredsoxandanybodywhoplaysforthem	1
</pre>
<p>Lakers</p>
<pre class="brush: plain; title: ; notranslate">
#fuckthelakers	279
#fucklakers	65
#teamfuckthelakers	48
#fuckdalakers	39
#fuckteamlakers	14
#teamfuckdalakers	9
#teamfuckinglakers	8
#teamfucklakers	7
#fuckyoulakers	6
...
#itsstillfucklakersalldayeverydaytillkoberetires	1
#teamidontgiveafuckaboutlakersorcelticskickrockd	1
#fuckdaflakers	1
#fuckyealakers	1
#fuckalakersfan	1
#fucklakersssss	1
#fucktheflakers	1
#fuckyourlakers	1
#fuckeverylakersfanonthegotdamnplanetcuztheyaintshitforeal	1
</pre>
<p>Celtics</p>
<pre class="brush: plain; title: ; notranslate">
#fucktheceltics	43
#fuckceltics	39
#teamfuckceltics	16
#fuckteamceltics	8
#teamfucktheceltics	5
#teammmmfuckingceltics	4
#fuckdaceltics	3
#teamfuckthecelticsandlakers	3
#fuckthemceltics	3
#fuckyouceltics	2
...
#fuckthelakersandceltics	1
#fuckyourfeelingsceltics	1
#teamcelticsallfuckingday	1
#fuckthecelticsandthehaters	1
#teamifuckinghatetheceltics	1
#fuckthelakersfucktheceltics	1
#teamfuckthecelticswith10dicks	1
</pre>
<p>Lebron</p>
<pre class="brush: plain; title: ; notranslate">
#fucklebron	366
#teamfucklebron	45
#fucklebronjames	32
#fuckyoulebron	18
#fucklebronandhisdecision	16
#fuckalebron	4
#teamfucklebronjames	4
#newyorksaysfucklebron	4
#fuckyoutolebron	3
#fucklebronforlife	2
#fucklebronbitchass	2

(many more)
...
#teamgetthefuckofflebrondickhalfofyalgotsummerschooldoyourhomeworkyoudickriders	1
#fuckouttaherelebrons	1
#fucklebronheabitchassniggaheisnotarealmanfaggotassbitchassdickridinassthatswhyhesecondtodwade	1
</pre>
<p>Haters</p>
<pre class="brush: plain; title: ; notranslate">
#fuckthehaters	67
#fuckhaters	25
#fuckyouhaters	15
#fuckinhaters	7
#fuckjlshaters	6
#fuckdahaters	6
#demihatersfuck	4
#fuckdemihaters	4
</pre>
<p>Snitches</p>
<pre class="brush: plain; title: ; notranslate">
#fucksnitches	3
#fuckinsnitches	1
</pre>
<p>and finally, who could forget J-Bieb</p>
<pre class="brush: plain; title: ; notranslate">
#fuckyoubieberisafag	126
#dontfuckwithjustinbieber	105
#fuckjustinbieber	10
#fuckbieber	10
#bieberisafagshouldshutthefuckup	6
#fuckyoubieber	6
#teamfuckbieber	5
#fuckoffbieberarmy	5
#dontfuckwithbieber	5
#biebersnewhaircutisfuckinsexysostfuitsjusthairitwillgrowbackgetafuckinlifebitches	4
#whothefuckisjustinbieber	3
#fuckingunfollowbieberarmy	3
#dontfuckwithjustinbieberslegalbeliebers	3
#ifuckbieber	2
(many many more....)
#fuckyeahjustinbiebermix	1
#fuckinunfollowbieberarmy	1
#ohmyfuckinjustinbiebergasm	1
#fuckthattinylittlebieberfag	1
#fuckyoubiebertyzasranyklamco	1
#justinbieberisafuckingpussyshit	1
#biebersafagshouldgetafuckinglife	1
#fuckyouallthehatersofjustinbieber	1
#ilovejustindrewbieberfuckwatucare	1
#fuckjustinbieberbringfalloutboyback	1
#whothefuckisstilltrendingjustinbieber	1
#youstupidbieberhatersneedafuckinglife	1
#fuckjustinbieberinhisstupidlookingbangs	1
</pre>
<p>And how about those who can&#8217;t spell Bieber?</p>
<pre class="brush: plain; title: ; notranslate">
#fuckbeiber	1
#fuckyoubeiber	1
#teamfuckbeiber	1
#fuckjustinbeiber	1
#dontfuckwithjustinbeiber	1
#fuckinwiththatjustbeiber	1
#justinbeibershouldgofuckhimself	1
</pre>
<p>We&#8217;ve got geographic locations covered as well<br />
Jersey/New York/Philly</p>
<pre class="brush: plain; title: ; notranslate">
#fuckjerseyshore	22
#fuckphilly	7
#fucknewjersey	4
#newyorksaysfucklebron	4
#fuckthegirlswhomadejustincriedandrolledoffbackstageinnewjersey	3
#teamfuckjerseyshore	3
#jerseyfuckingshore	2
#ifuckinglovenewyork	2
#jerseyshoreisfulloffucks	2
#fuckmarryorkill	2
#fuckjersey	1
#fatitalianmufuckawitthebeardfromsouthphilly	1
#fucknewyork	1
#fuckyouphilly	1
#fuckmaryorkill	1
#fuckyounewjersey	1
#fuckjerseytransit	1
#fuckthejerseyshore	1
#ifuckinglovejersey	1
#jerseyshorefuckery	1
#fuckyounewyorkstate	1
#fuckyouphillypeople	1
</pre>
<p>France</p>
<pre class="brush: plain; title: ; notranslate">
#fuckfrance	13
#fuckyoufrance	1
</pre>
<p>Spain</p>
<pre class="brush: plain; title: ; notranslate">
#fuckspain	31
#fuckyouspain	4
#gofuckyourselfspain	3
#doublefuckspain	3
#teamfuckcaresboutspain	2
#teamfuckinspain	2
#fuckuspain	1
#fuckingspain	1
</pre>
<p>Work</p>
<pre class="brush: plain; title: ; notranslate">
#fuckwork	73
#whenthefuckamiworkingnextcauseireallyneedsomemoneyasap	6
#fuckyouwork	6
#teamfuckwork	5
#fuckfireworks	4
#fuckcoworkers	3
#fuckworking	3
#fuckbuyinfireworksbuybullets	3
#fuckingwork	3
#fuckworkofart	3
#fuckworktomorrow	3
#fuckyocoworker	2
#putthemfuckinheelsonandworkitgirl	2
#fuckhomework	2
#teamfucksleepgotoworktiredandstillgetthemoneyswag	2
#teamboredasfucktonightcauseireallydontcareaboutfireworks	2
#fuckgoingtowork	2
#fuckinwork	1
#fuckanetwork	1
#fuckfirworks	1
</pre>
<p>School</p>
<pre class="brush: plain; title: ; notranslate">
#fuckschool	80
#fucksummerschool	11
#teamfucksummerschool	10
#teamfuckschool	5
#schoolisfuckery	4
#fuckhighschool	2
#schoolfucksmylife	2
#fuckhighschoolconfessions	2
#fuckyouschool	2
#fuckkkschool	1
</pre>
<p>A great one suggested by my friend Ken</p>
<p>Police</p>
<pre class="brush: plain; title: ; notranslate">
#fuckthepolice	388
#fuckdapolice	102
#fuckthapolice	26
#teamfuckthepolice	8
#fuckpolice	4
#teamfuckdapolice	3
#fuckdapolicetweet	2
#fuckthepolice2010	2
#policesayfuckofftomedia	2
#fuck_the_police	1
#fuckthepolicex3	1
#fuckgrammarpolice	1
#fuckthapoliceyeah	1
</pre>
<p>Other observations:<br />
Many more mentions of math than science OR homework<br />
A few mentions of Lance but none of Contador</p>
<p>The full dataset can be downloaded <a href="http://www.neilkodner.com/fwordhashtags.txt">here</a>.  The top ten thousand most frequently occurring hashtags can be found <a href="http://www.neilkodner.com/toptenkfwordhashtags.txt">here</a>.</p>
<p>To-do: modify the pig script for variances of spelling the f-word, multiple u&#8217;s, etc.  Maybe even a visualization.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilkodner.com/2010/08/and-you-thought-you-were-the-first-to-use-dontfuckwithjustinbieber/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Words mentioned in 23-Jun-2010 Canadian Earthquake tweets</title>
		<link>http://www.neilkodner.com/2010/06/words-mentioned-in-23-jun-2010-earthquake-tweets/</link>
		<comments>http://www.neilkodner.com/2010/06/words-mentioned-in-23-jun-2010-earthquake-tweets/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 16:15:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[earthquake]]></category>
		<category><![CDATA[mapreduce]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.neilkodner.com/?p=256</guid>
		<description><![CDATA[Using twitter gardenhose access, remove stopwords and punctuation sprinkle in a little bit of mapping, some reducing, and voila! The most frequently-occurring words in tweets that mentioned earthquake from June 23, 2010. I left earthquake out of the image itself because being that it was in every tweet, it overwhelmed the rest of the words. [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignnone" style="width: 1011px"><img class=" " title="words mentioned in earthquake tweets 23-jan-2010" src="http://www.neilkodner.com/images/littlesnapper/words%20mentioned%20in%20yesterdays%20earthquake%20tweets.png" alt="" width="1001" height="599" /><p class="wp-caption-text">words mentioned in earthquake tweets 23-jan-2010 </p></div>
<p>Using twitter gardenhose access, remove stopwords and punctuation sprinkle in a little bit of mapping, some reducing, and voila! The most frequently-occurring words in tweets that mentioned earthquake from June 23, 2010. I left earthquake out of the image itself because being that it was in every tweet, it overwhelmed the rest of the words.  I find it amazing that the most frequently occurring &#8216;word&#8217; is RT.</p>
<p>Also, wordle seemed to strip out numeric &#8216;words&#8217; which is a shame because people tweeted the magnitude left-and-right.  See the data below for the top 100 words.</p>
<p><span id="more-256"></span></p>
<pre>
<div id="_mcePaste">
<pre>
survey:79
hey:79
seriously:80
preliminary:81
info:81
strikes:81
hell:82
4.5:82
gta:82
geological:83
magnitude50:83
check:83
call:84
service:86
globeandmail:86
triggered:87
experience:88
video:89
earthquakes:90
guess:91
caused:92
pm:92
fuck:93
ground:94
bad:94
5.7:94
move:96
minutes:98
2.3:98
damn:99
mini:99
eastern:100
scared:100
will:100
philippec:101
cool:103
northern:104
live:106
struck:107
city:112
work:112
floor:113
epicenter:113
pretty:113
nyc:113
seconds:113
todays:113
afternoon:114
feeling:116
safe:116
haha:117
central:117
tremor:117
whoa:118
downtown:120
rattles:121
warning:121
damage:122
separating:125
guys:126
god:126
tweets:129
heard:129
tremors:130
north:131
rochester:131
earth:134
small:135
california:136
missed:137
cp24:138
finally:139
minor:139
fake:141
scary:141
detroit:143
big:146
breaking:147
coming:151
good:152
weird:156
area:159
experienced:161
lake:161
buffalo:163
happened:163
2010:164
survived:168
hope:172
thing:172
evacuated:173
canadian:176
cleveland:176
tsunami:177
region:178
office:182
shake:184
reported:185
ontarioquebec:187
buildings:193
hits:194
ago:200
house:200
york:200
ohio:205
going:207
border:213
shit:214
usgs:215
quake:216
michigan:217
5.0:222
omg:238
time:240
reports:241
holy:241
southern:242
shook:249
twitter:252
day:253
crazy:255
shakes:270
people:276
wtf:308
building:309
ny:355
thought:362
tornado:375
montreal:375
hit:388
lol:406
quebec:414
wow:418
shaking:423
news:433
g20:490
today:577
magnitude:612
ontario:781
5.5:988
ottawa:1046
canada:1373
feel:1439
toronto:2086
felt:2146
rt:4046
earthquake:14918</pre>
</div>
<pre class="brush: plain; title: ; notranslate">survey:79hey:79seriously:80preliminary:81info:81strikes:81hell:824.5:82gta:82geological:83magnitude50:83check:83call:84service:86globeandmail:86triggered:87experience:88video:89earthquakes:90guess:91caused:92pm:92fuck:93ground:94bad:945.7:94move:96minutes:982.3:98damn:99mini:99eastern:100scared:100will:100philippec:101cool:103northern:104live:106struck:107city:112work:112floor:113epicenter:113pretty:113nyc:113seconds:113todays:113afternoon:114feeling:116safe:116haha:117central:117tremor:117whoa:118downtown:120rattles:121warning:121damage:122separating:125guys:126god:126tweets:129heard:129tremors:130north:131rochester:131earth:134small:135california:136missed:137cp24:138finally:139minor:139fake:141scary:141detroit:143big:146breaking:147coming:151good:152weird:156area:159experienced:161lake:161buffalo:163happened:1632010:164survived:168hope:172thing:172evacuated:173canadian:176cleveland:176tsunami:177region:178office:182shake:184reported:185ontarioquebec:187buildings:193hits:194ago:200house:200york:200ohio:205going:207border:213shit:214usgs:215quake:216michigan:2175.0:222omg:238time:240reports:241holy:241southern:242shook:249twitter:252day:253crazy:255shakes:270people:276wtf:308building:309ny:355thought:362tornado:375montreal:375hit:388lol:406quebec:414wow:418shaking:423news:433g20:490today:577magnitude:612ontario:7815.5:988ottawa:1046canada:1373feel:1439toronto:2086felt:2146rt:4046earthquake:14918</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.neilkodner.com/2010/06/words-mentioned-in-23-jun-2010-earthquake-tweets/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Has @joelkodner made your day?  Make his</title>
		<link>http://www.neilkodner.com/2009/12/has-joelkodner-made-your-day-make-his/</link>
		<comments>http://www.neilkodner.com/2009/12/has-joelkodner-made-your-day-make-his/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 16:57:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[beg]]></category>
		<category><![CDATA[joelkodner]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.neilkodner.com/?p=114</guid>
		<description><![CDATA[My cousin @joelkodner (private stream, follow to view) is closing in on 20,000 tweets.  Pretty impressive considering he joined not too long ago.  That amounts to about 300 a day(!?). Think how how many times you nearly spit your coffee on your keyboard reading Joel&#8217;s tweets.  Think about the time you wished he would just SAY [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-115" title="jambalaya" src="http://www.neilkodner.com/wp-content/uploads/2009/12/jambalaya-300x133.jpg" alt="jambalaya" width="300" height="133" /></p>
<p>My cousin <a href="http://twitter.com/joelkodner">@joelkodner</a> (private stream, follow to view) is closing in on 20,000 tweets.  Pretty impressive considering he joined not too long ago.  That amounts to about 300 a day(!?).</p>
<p><img class="alignnone size-medium wp-image-116" title="hungry" src="http://www.neilkodner.com/wp-content/uploads/2009/12/hungry-300x110.jpg" alt="hungry" width="300" height="110" /><span id="more-114"></span></p>
<p>Think how how many times you nearly spit your coffee on your keyboard reading Joel&#8217;s tweets.  Think about the time you wished he would just SAY SOMETHING in person.   Think about the time you would have been offended had the tweet flown out of someone else&#8217;s account except for Joel&#8217;s.</p>
<p><img class="alignnone size-medium wp-image-120" title="christ" src="http://www.neilkodner.com/wp-content/uploads/2009/12/christ-300x142.jpg" alt="christ" width="300" height="142" /></p>
<p><img class="alignnone size-medium wp-image-117" title="Santa" src="http://www.neilkodner.com/wp-content/uploads/2009/12/Santa-300x139.jpg" alt="Santa" width="300" height="139" /></p>
<p>And lets not forget about his reporting and editorial skills-Joel saves you time by injecting(dont go there Joel) them into your twitter stream.</p>
<p><img class="alignnone size-medium wp-image-118" title="hester" src="http://www.neilkodner.com/wp-content/uploads/2009/12/hester-300x95.jpg" alt="hester" width="300" height="95" /></p>
<p>When was the last time you actually had to look up information on:</p>
<ul>
<li>the line/sales/cashiers at publix</li>
<li>traffic in boca</li>
<li>bears football</li>
<li>old people</li>
<li>video game deals</li>
<li>his noisy, flatulent coworkers</li>
<li>his paycheck</li>
<li>What Mrs. @joelkodner is watching</li>
<li>Devin Hester&#8217;s stupidity</li>
<li>What pork tastes like to us Jews</li>
<li>This HIS dad says</li>
<li>Craft Beer</li>
<li>Tweet/Twine/Pizza-ups</li>
<li>and, of course, his awesome cousin</li>
</ul>
<p>So how can we help Joel?  Easy.  Let&#8217;s all pitch in and give him what he&#8217;s always wanted!  No, not a divorce.  No, not the Jersey Shore box set, not a Bret Favre jersey, not Windows Vista Ultimate, not a 12-pack of Corona, not even a hot date with Sarah Jessica Parker.</p>
<p>We know what he wants</p>
<p><img class="alignnone size-medium wp-image-122" title="wantkindle" src="http://www.neilkodner.com/wp-content/uploads/2009/12/wantkindle1-300x137.jpg" alt="wantkindle" width="300" height="137" /></p>
<p>Lets raise some $$$ for Joel&#8217;s Kindle.  Let&#8217;s see his tone change from Kindle envy to Kindle lust.  He&#8217;s got over 500 follwers, lets see if we can each throw a few $$ his way.</p>
<p><img class="alignnone size-medium wp-image-125" title="kindledrop" src="http://www.neilkodner.com/wp-content/uploads/2009/12/kindledrop1-300x106.jpg" alt="kindledrop" width="300" height="106" /></p>
<p>We can do this one of few ways:</p>
<ul>
<li>Using my paypal account.  I&#8217;m @joelkodner&#8217;s first cousin(see the domain name?) and can be trusted.  And I already have a Kindle so I&#8217;m not going to keep your damn money!  Any overage will go toward Amazon purchase credit for e-books.</li>
<li>One of those lovey-dovey web-2.0-ey fundraising/donation sites, which there are probably a million of</li>
<li>Directly from <a href="http://amzn.com/w/E3D0Q2T4C52W">@joelkodner &#8216;s Amazon wishlist</a></li>
<li>Other method?</li>
</ul>
<p>Leave feedback and ideas in the comments.  Due to some circumstances, Joel isn&#8217;t able to purchase one at the moment.  Let&#8217;s see if we can pull through for him.  my paypal link is below.  I&#8217;ll keep everyone up-to-date either on this site or via <a href="http://www.twitter.com/neilkod">my twitter</a>.  Lets all see if we can give Joel one less thing to complain about, freeing him up for something new.  Hit the ChipIn button on the top-left corner to contribute!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilkodner.com/2009/12/has-joelkodner-made-your-day-make-his/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

