TwainBot: Early Lessons

Today TwainBot hit the 100th tweet in Tom Sawyer. It's been about two weeks since the project was launched and I wanted to jot down a few thoughts/lessons learned so far. Some are obvious, some were expected, some I found subtle or surprising....

1. Uptime is difficult, especially for sloppy side projects in new languges. So far TwainBot has gone down twice and missed tweets (I caught it up manually). Once was due to coding errors (my bad) As every sysadmin or dev knows, you are garunteed to release code with bugs, and probably they will cause your system to crash in ways you didn't expect. TwainBot is very robust because it is very simple, and it saves things to dropbox so I can check on it in real time. Still I forgot to ensure that *every* tweet was correctly binned to 140char, and in a few cases (about a half percent of the tweets) my logic statements screwed up and put a few too many chars/words in. This causes the Twitter API to crap out and return an error (smart), but I didn't catch them in any kind of error trap. A programming 101 mistake (facepalm) that was trivial to correct.

2. Uptime is difficult, especially for the Pi. Of course, the Pi is not a server. Heat is an issue. A book is not a good case for a computer. The first tweet of day #2 TwainBot failed. I was home sleeping in on that Saturday morning. At first I thought I had screwed up my cron job and it wasn't scheduled properly, but I couldn't remotely access TwainBot for some reason. Instead it turned out I had cooked the Pi (hah). It overheated and shutdown (showing a red light on the board only). Cooling is a real issue, even for this mini computer. The book is now open, and so problem solved... for now. From reading about the Pi I expect more performance/uptime issues in the future, including possible HD failure. More redundancy is needed, and I'm updating my scripts to push/pull more from dropbox, allowing me to remotely intervene and push new code as needed as I'm traveling a lot next year.

3. A year is a long time. This is a long endeavor, and that's a commitment of time and brain power to run for me. For the audience there's a constant interaction needed to keep up as well. I failed to appreciate this point at first. Some people will follow and read a few tweets due to novelty/amusement. Some will think "Neat! But I'm already behind, screw this." A serious question remains: is this project interesting to anyone half way through? How could I make it more approachable? Is there a way to catch up (you know... besides reading the book) that I can implement? Twitter followers have been joining and leaving, at nearly a constant rate since day one. Time will tell if that means I'm net losing people due to lack of interest, or if interest can really only be fleeting for TwainBot, which brings me to my next point...

4. What is success? TwainBot is an art project, first and foremost. Still, what do I want at the end of the year? 10k followers? 10 followers? The struggle to maintain an audience I think is partially related to a lack of a clear end goal on my part. A lot of people have asked "why are you doing this?". The answer is because I wanted to create something. I didn't go in to this with a motivation beyond creating something to share with people. My end goal now is to talk to as many people as I can about it, to have conversations about what it means to read a book at a very different pace than normal.

5. Everyone (especially on the internet) is a critic. Some people hate destroying books physically. Some people hate "destroying" the art, by stuffing a classic in to a medium it was never designed for. This goes directly back to #4. I want to have these conversations, and every snarky (or positive) comment on the internet is a tiny conversation people are having about the project. Ultimately that's the goal, that people will think more about the intersection between literature and technology.