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. Apps 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. Mobile 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. iOS 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. 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. Action Launcher Pro – actions that used to take several taps, can now be consolidated to a single swipe. Be sure to watch the demo video to stimulate some ideas. Google Glass Lynx Fit – want your own Personal Trainer Bot? Here you go. Genie – let Glass become your Personal Assistant Bot. Desktop 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. Web 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. APIs 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. 😉 Software 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. Ready Made 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. Custom 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 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. 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. 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. Hardware 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. Home Automation 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. 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. 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.