A Real River

@ARealRiver is a Twitter bot that charts the course of a generative river via emoji. The course of the river is constant as it transitions between tweets, so you can scroll through 100s of tweets and watch the river expand and shrink, and meander back and forth, passing cities and forests and volcanoes and other scenery as it goes.

There were a lot of different inspirations for this bot. I was directly influenced by @katierosepipkin's @tiny_star_field, dungeon_bot by @jeffthompson_, as well as by accounts like @crashtxt and the #140art hash tag.

Another lingering inspiration was a book from the early 80s: Computer Spacegames from Usborne Publishing.

This book was one of several that introduced me to programming. You can get a look at it and many others like it here. It's full of source code for simple games written in BASIC. In particular, there's one called Death Valley.

This was a super-simple game that placed you in a canyon that probably looked a lot like this:

*            *
 *            *
  *            *
   *            *
    *            *
     *            *
   *            *
    *            *
  *            *
 *            *
*     X       *

Your ship is the X, and you need to run along the canyon for as long as possible. Good luck!

I spent years iterating on programs like this as a young programmer, all the way through high school. I would experiment with different output, different speeds, obstacles, etc. It's always stuck with me and ARealRiver is definitely inspired by my time with this code.

US Prisons

I launched @USPrisons on Twitter a few weeks ago. It will output every prison in the United States – or at least, I think it's all of them. I found a website with the data, did a bunch of parsing and cleanup, and ended up with 4763 prisons. The bot should spend a year listing them all, along with a few stats, and a picture if possible.

If you're interested, I released the code that does the parsing on github.

EarthRoverBot -- An Interactive Twitter Bot

@EarthRoverBot is a Twitter experiment based on Google Street View pictures. It is simulating a robot that is trying to get from Lubec, ME to San Diego, CA – from the rough northeast corner of the USA to the rough southwest corner. It will move from place to place, 200 meters at a time, and it will only choose locations where Street View imagery is available. Roughly speaking, it's going to stick to the roads of the USA, and it's not going to cheat by clipping through buildings/etc.

In the absence of any interaction with humans, it will try to plot a course to its destination, but it's not very smart, so I don't think it will make it any time soon (maybe never) without a lot of help. You can send it commands to move, turn, look around, etc. Here's some instructions.

For awhile I've been experimenting with ideas for Twitter bots which are a lot more interactive than bots I've created so far. Most of my bots have either been heavily scripted – they choose from a list of stock things to say – or they haven't relied on user input at all.

Over the last few months I've written a couple of experimental (and unpublished) bots that interact with users in different ways, and change depending on the user's input. For example, I wrote a bot which would change its profile picture and theme according to what was tweeted at it. I wrote another bot that listened for tweets talking about how people were feeling – "I feel __" – and it would try and find a picture related to that emotion.

Those bots were all essentially failures – one of the cool things about making Twitter bots is that most of the time you can fail quickly, and move on.

I've also fiddled with writing some games that operate as Twitter bots. These are still in progress, so we'll see how they go.

My idea for this bot is really to see how mass-collaboration could work. I would love to see as many people as possible interacting with the bot, helping it get to San Diego, or exploring things along the way. Enjoy!

StckMrktStatus - Providing Logical Explanations for the Stock Market

I've always thought the stock market reports you hear on the news are fairly silly. "The Dow Jones was up x% because this or that happened." The people saying those things always sound smart and informed, but no one really has any idea why a stock goes up or down in value. So, I made a bot to do the same thing. @StckMrktStatus will pick a stock from the NASDAQ or Dow Jones, see how it is doing for the day, and then add a reason for the change. The reasons are pulled from tweets that have the word 'because' on them. It's pretty simple but seems to work nicely:

The code is pretty simple, and I'll post it sometime soon (I'm working on a post about the code of my last few bots in general).

A Random Collaborative Drawing Thingy

As a bit of a throwaway project, I made a super-simple multi-user drawing app. It uses Server-sent events, which is something I've wanted to play with for awhile.

The code is on github. The server is running on Sinatra, and the frontend is written using p5.js. There's not a lot more else to say about other than it's sort of amazing what you can do on the web these days – This whole thing is around 200 lines of code, and most of that is my lazy javascript.

-------------------------------------------------------------------------------
      Language                     files          blank        comment           code
      -------------------------------------------------------------------------------
      Javascript                       1             33              1            156
      HTML                             1              1              0             36
      Ruby                             1              8              0             34
      -------------------------------------------------------------------------------
      SUM:                             3             42              1            226
      -------------------------------------------------------------------------------

Try it out! Draw with your friends!

SpaceJamCheck: Space Jam website monitoring on Twitter

People who have been online for awhile probably know that the website for Space Jam, a movie from 1996, is online still, and is essentially unchanged:

(If you don't know what I'm talking about, you can read about it here.)

At the end of 2010, someone noticed that the website was still online. Before I did a little research, I was convinced that people must have realized this before then, but Google suggests otherwise.

Anyway, here's an article that summarizes how it all happened, basically some Reddit user noticed, the word spread, and then it went viral on Twitter.

I haven't seen this mentioned anywhere, but according to the headers for the website, there were actually some modifications of some sort in 2005:

HEAD http://www2.warnerbros.com/spacejam/movie/jam.htm
200 OK
Connection: close
Date: Fri, 10 Jan 2014 02:12:09 GMT
Accept-Ranges: bytes
ETag: "89dfb-13c5-4027752a8ca80"
Server: Apache
Content-Length: 5061
Content-Type: text/html
Last-Modified: Thu, 06 Oct 2005 15:10:18 GMT

It's possible this was just a server move or something like that, but it's interesting to think that someone actually did some maintenance of some sort on the site.

I enjoy visiting the site, especially when I get nostalgic for the early days of my work on the internet. There are so many projects which I've worked on over the years, and a lot of them are gone forever. It's nice to see one that has managed to survive.

Because I'm lazy, and like easy reassurance, I wrote a @SpaceJamStatus, a Twitter bot that will check on the status of the website every few hours and tweet out the status:

Furthermore, because I am apocalyptic, I wrote @spacejamisdown, a bot which checks the status of the website every few hours, and will only report if it's not online:

With a little luck, this bot won't tweet any time soon.

Finally, because I have a love of writing random libraries, I wrote the ruby gem spacejam, which is a pretty simple Ruby library you can use to check on the status of any website. It can do tests against expected response codes, the body of a page, etc. It's pretty simple, but it's good enough to check on the status of the Space Jam website.

Requiem for a Twitter Bot

On the evening of December 24th, shortly after tweeting for the 500,000th time, @for_a_dollar retired from Twitter. After launching on 24 September 2009, the bot responded to all sorts of people who mentioned 'Robocop'.

Although it is easy to treat @for_a_dollar as a tongue-in-cheek project, it was always intended as a specific statement about the nature of online conversation – mainly that quality discussion is lacking. As I wrote in response to some criticism of @for_a_dollar, "99% of the content on Twitter is total garbage." I was being pretty harsh, but there's also some truth to that statement, especially now that Twitter is marketing themselves as the premier online destination to participate in your favorite television and media events. There's still value in the remaining 1%, but a huge majority of tweets are not very compelling at this point.

It's easy to forget that for the first couple years of Twitter, there was a public timeline of everyone's tweets. You could find interesting people, jump into conversations, and see what was going on. Twitter has removed that feature, probably out of necessity since I imagine it wouldn't scale at all, but when you see what it has been replaced with – a list of celebrities to follow, and curated trending topics, it's easy to imagine a decline in the quality of content on Twitter.

Anyway, at a certain point, sometime when the tweet count was over 400k, I decided that once the bot sent the 500,000th tweet, I would shut it down. I had two main reasons. First, I think that any statement being made by running the bot is pretty complete at this point. Since launching, @for_a_dollar has mercilessly responded to anyone mentioning Robocop for with the utterly senseless reply "I'll buy that for a dollar." Keeping the bot alive still has a certain value, but I also feel like the law of diminishing returns is more applicable with every tweet.

Second, the remake of Robocop is coming out in a month or two. It sounds like the satire and social commentary that made the original movie (while admittedly quote imperfect) compelling has been removed, leaving behind a fairly generic action flick. I don't have a lot of interest in helping to generate any buzz around that when the movie is released, nor do I want to deal with the logistics of maintaining the bot and my other bots while all sorts of people are tweeting from the movie theater.

I've requested a copy of @for_a_dollar's Twitter archive, and if/when I receive it (it's been a couple days), I might make something out of it that I will post online. But for now, the project is done.

Anyway, so long Bixby, it was nice knowing you.

Your Very Own ebooks Twitter Account

BIG NOTE: Are you actually interested in making an ebooks account for yourself? You should checkout mispy's twitter_ebooks library, which is a lot better than the hacky code here.

PREDICTION: In the future, everyone will be Internet-famous for 15 minutes. One of the consequences of that fame will be an ebooks-style Twitter account, just like @horse_ebooks, but actually generated by computer.

For kicks I decided to write a generic script that can take any Twitter account and make an ebooks version of it. Here's what @mitchc2_ebooks looks like:

And here's the script:

It's pretty straightforward. It's written in ruby, and it runs on top of chatterbot which does most of the heavy lifting, and a neat library called marky_markov handles the markov chain generation. It will tweet every few hours, or any time that my account tweets. It will also reply to mentions.

As much as anything, this seems like an exercise in banality. I enjoy the tweets being generated, but they're certainly nothing amazing. There's a pile of accounts like this out there. Most of the fame has gone to horse_ebooks, but it never used Markov chains. I think the first account like this that I remember reading about is @dedbullets. There's a blog post about it, and an even longer one as well.

Each Town - Listing All Towns in America on Twitter

A week or two ago I launched @eachtown on Twitter. It will spend the next couple years tweeting the name and location of every populated place in America, in alphabetical order.

A couple of years ago, I spent a lot of time fiddling with the USGS database of Geographic Names. It's a cool set of data and I've often thought of doing more with it. I was inspired by @everyword to create something similar, and decided to create a bot which iterates through every populated place in America, and tweets the name, and a link to a Google Map for the location. I enjoy the context you get from having the ability to look at a place. Not every location in the database is a city or even a town. There's mobile home parks, condominiums, etc. Seeing them on the map gives you a sense of the fact that these places are real, and gives them a little context.

Agnew Mobile Home Park, WA

Agnew Mobile Home Park, WA

It's a pretty simple bot, and I'll post the source code at some point once I clean it up a little.

Next page