If you’re expecting to build a Terminator, this is probably the wrong post. But you may remember from my earlier bot automation post that bots are clever pieces of software or hardware that automate one or more tasks. Hopefully your mind is stimulated with a list of tasks for your Bot Army, so let’s look at platforms, APIs, and other tools to help you create your own customized Bots from scratch.
There are a ton of ready made apps dedicated to the overall umbrella topic of Productivity. Here, I’ll point you towards a few that I have found to be most helpful. I would love to hear about the apps you find useful in the comments.
Cross Platform (Even Windows Phone)
- Evernote – check out the Reminders API and trigger reminders when you need them.
- Gmail – create all your filters server side, so that when you view email on your phone, you only see the essentials.
- Siri – take some time to learn all that she can do.
- Launch Center Pro – use this app to reduce the amount of taps needed to complete a task.
- Text Expander – this app could be a game changer when paired with other apps that utilize their SDK.
- Google Now, Voice – who needs Siri, when Google Now can do all this?
- Tasker – make your phone perform tasks based on context automatically. For example, you may want to turn off phone tethering when you connect to WiFi.
- Lynx Fit – want your own Personal Trainer Bot? Here you go.
- Genie – let Glass become your Personal Assistant Bot.
On the Mac, there are several tools that can build some incredible Bots. Here are a few of my favorites:
- Sikuli – this is an image recognition based automation tool
- Automator – discover powerful system wide scripting tools for the Mac that don’t require any coding
- Keyboard Maestro – create your own system wide macros with this tool
- Hazel – let Hazel watch over your folder and do all the housekeeping for you
- Text Expander – take your snippets and templates to a whole other level
If you play in Windows land, you will want to take a look at AutoHotKey.
Perhaps the most important tool you will find is IFTTT. Take the time to explore its many uses, then get an account and put it to work.
Use Selenium to automate browser based functions. While most use this tool for testing code in various browsers automatically, think about using it to automate repetitive tasks you previously tortured yourself with doing manually.
Before we go into developing and using software tools, lets pause and consider a key building block, the API. Because of the API explosion, tasks that could have taken you hours, are just an API call away. You will want to familiarize yourself with the API database of record, Programmable Web.
And hey, don’t forget about SendGrid’s amazing API. 😉
As a developer, you have tons of libraries available to you for any language you favor and resources like GitHub, SourceForge, Google Code and Stack Overflow which are all brimming with fresh source code.
Using any of the resources linked above, you can get started right away, tweaking as you see fit. If you have an idea for a Bot, first find an existing Bot that is close to what you want with available source code. Try to use it as-is, then make some modifications to suit your purpose. In the end, that may be all you need.
Whichever set of tools you choose, I suggest you learn more about that community through online forums, chat, and in-person meetups, always with a spirit of enhancing that community.
If you are going to build your own Bot from scratch, there are certain tools that should be readily available in your Bot building arsenal. I’ll cover the most important tools here.
But before I go down that path, I suggest you take a look at these tutorials and open source apps:
- Build a Python Bot that can play a Flash based game
- Use Node.js to build a Twitter Bot in 20 minutes
- Check out how Twill allows you to browse the Web via the command line with Python
To have your Bots run in the background, you will need to learn about Daemons. No, not the sworn enemy of Angels or the one with the first name Matt, but the nice friendly Daemons.
Command Line Tools and Scripting Languages
Either you will be gluing your code together (cue the Elmer’s Glue jokes) with scripting languages or command line tools. I suggest you learn both methods, giving you a greater range of options in your toolbox.
Many programs have programming hooks that can be used to develop macros. Take OmniFocus for example, there are a ton of AppleScripts that can automate tasks previously only available through manual manipulation.
Whichever server provider you choose, be sure to have another system outside of that network for monitoring.
Because of Arduinos and Raspberry Pis, the barrier to entry for hardware hacking has been greatly lowered. Take advantage and think of issues in your physical world that can be automated with Bots, even if their not as sophisticated as a T1 Terminator.
Managing Your Bots
Now that your Bot Army is continuing to multiply, you are going to need some management Bots to help keep things running smoothly. I’m a big fan of creating Dashboards and using Reporter Bots to fill them in and ideally perform repairs when needed.
Now that you’re a Bot master, you’ve had a taste of the time they can save you. It’s addictive, isn’t it? Then you’ll want to learn more about Personal Productivity for Developers.