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.
- 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.
iOS
Android
- 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.
Google Glass
- 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.
You might even try what
Kin Lane, the API Evangelist, did. Go through and try each API in the
Programmable Web API directory. See you in a few months. :)
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:
Cron Jobs
A
Cron job will allow you to schedule your Bots to perform actions at a specific time. Learn about Cron on
OS X,
Linux, and in Windows check out the
Task Scheduler.
Daemons
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.
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.
Macros
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.
Servers
Your Bots need to live somewhere, whether that be on a home or remote server. From
Heroku to
AWS to
Azure to
Digital ocean, your options today are amazing.
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.
Solutions like
Nest and
Revolv make it easier than ever to automate common tasks around the home. If you need some ideas, check out
LifeHacker and see if you can visit a
Maker Faire.
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.
Start simple,
perhaps with a spreadsheet, then begin to automate each element. If you want to use an existing framework to build out your dashboard, check out
Dashing and
Cube.
If you prefer to use an existing service, check out
GoodData,
Ducksboard and
Geckoboard.
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.