I wrote this twitterbot. It takes deadlines for getting involved with ALA, today and in six months, from my 2011 Emerging Leaders team’s project, and it posts them to Twitter, so you can see them integrated in your everyday (perhaps) life. So it’s easier to find out about what’s going on with ALA.
That is not what this post is about.
I put the code for the bot up on github. That’s what this post is about.
It’s all there if you want to learn how I wrote it, or if you want to modify it to write your own twitterbot. The code, and also a README where I tried to extensively document the things I needed to do to make the code work: setting up the development environment, obstacles I encountered along the way, et cetera.
But you’re here through the blog, which means you may want the English, not the Python, explanation, so here is how I made my twitterbot work:
I was extremely bullheaded.
My approach with technology is always: Assume it’s possible. I ran into obstacles — things like “I don’t actually have any idea how to write a twitterbot” or “I don’t know how to make Python talk to MySQL” or “I don’t know how to use OAuth to let my bot post to an account” or “I have no idea what a cursor is in this context” or “what in the name of all that is concise or clear am I supposed to make of this launchd documentation” — and I just assumed there was an answer out there, somewhere, and if I googled my error messages, and altered my code and reran it to see what changed, and read the documentation even if it made limited sense, and just generally beat it with rocks long enough, my code would work. With code, nearly everything’s possible. I just have to figure out how.
That isn’t really what this post is about, either.
Then I put my code on github. That was scary. This is what this post is about.
I put it on github because I want you to use it. I put it on github because the library world is full of amazing, creative people doing amazing, creative things with technology, alone and in their basements, and if you know them and ask them maybe you can get it, and it shouldn’t be that way. It should be somewhere you can just…get it. And use it. And make it better. Even if you don’t know the right people. Even if asking is scary.
I put it on github because I know it’s deeply flawed. I know just enough about code to know an inkling of how very many things there are that I do not know about code. To know that I’m tripping over aesthetic standards I don’t even realize are there, that there are performance and etiquette issues I am utterly blind to. And as an introvert I have a reflexive, nearly hardwired, inclination to not share an idea before it’s burnished and glowing and perfect.
And one of the great lessons of 2011 was that if I push myself to share those half-formed ideas earlier, before it’s comfortable, they run up against other people’s half-formed ideas which, together, turn out to be ten times better than either alone. Things I thought were daunting obstacles turn out to be trivial, in the face of resources or connections or skills someone else has.
We here in librarianship tend to let the perfect be the enemy of the good. I am giving you this flawed thing because I believe that the world is better if we are open with our ideas. I believe that our technology will be better if we share. And yes, we are nearly all self-taught and yes, as such we see the myriad of ways our code is not production code and we know there are many myriads more we do not see, and if we share it will still be better.
So I am going to take that step. Even while I — not characteristically daunted — am shaking inside over this. Even if I feel like I’m running into heavy crossfire, shouting encouragingly about how great the weather is up here.
It’s made of duct tape and wire, and people will see. I know only that I know nothing. I plant my flag upon this hilltop nonetheless.