automation

Latest

  • The marriage of Eyefi Cloud and IFTTT is a very fruitful one

    by 
    Steve Sande
    Steve Sande
    08.27.2014

    Eyefi SD/WiFi cards are a great solution for anyone who wants to shoot photos and immediately have those images sent from a DSLR or point-and-shoot camera to a Mac, iOS device, or even a cloud storage alternative like Dropbox, Flickr and especially Eyefi's own Eyefi Cloud service. Now the Eyefi team has created an If This Then That (IFTTT.com) channel for creating automatic scripts or "recipes" that run whenever other actions take place, adding an entirely new level of usefulness to Eyefi cards and Eyefi Cloud. To make use of the new channel, you'll need to have an Eyefi Cloud subscription (US$49.99/year), which many Eyefi owners find useful anyway because of its ability to grab photos from your DSLR and back them up in the cloud immediately. Once you have the subscription and a free IFTTT account, the magic begins. Activate the new Eyefi Channel, and you'll find a number of pre-tested recipes all ready to do wonders with your photos. There are currently two triggers for the Eyefi Channel – Photo Uploaded and Photo Tagged. With the first trigger, any time you shoot a picture with your DSLR and it's uploaded by that Eyefi Mobi card to Eyefi Cloud, you'll be able to launch another action. That action can be something as fun as sending copies of photos you upload to Eyefi Cloud to friends via Gmail – perfect for keeping in touch with buddies while you're on vacation. You can also send all your photos to Tumblr, or just those photos that you tag with 'tumblr'. Of course, IFTTT can go the other way as well. Let's say you have photos that you shoot with your iPhone or iPad and send to Instagram. You can have IFTTT move those Instagram moments to your Eyefi Cloud account, a sure way of instantly backing up those photos. It's easy to use an IFTTT recipe to send those images – or any photos you take – to Google Drive, Microsoft OneNote, or even Facebook for posterity. Best of all, all of this power available through IFTTT is free for you to use... of course, you will need to have that all-important Eyefi Cloud subscription, but IFTTT – at least at this time – is still free to use. And now, TUAW readers, what do YOU use IFTTT for? I tend to use it for all sorts of important things, like keeping a spreadsheet toting up all the time that I spend at my favorite pizza joint or keeping an eye on what other Apple websites are writing about. Leave your favorite uses for IFTTT in the comments.

  • IFTTT's recipe-powered automation now works with Square mobile payments

    by 
    Steve Dent
    Steve Dent
    07.24.2014

    Consumers have been automating apps with IFTTT (If This Then That) for awhile by, say, backing up Instagram photos to Dropbox whenever they snap a photo. Now, businesses will be able to take advantage of IFTTT directly from the Square mobile payment app. For instance, rather than just yelling "Booyah!," a company can send out a company-wide congratulatory email after closing a huge deal. Similarly, a text alert can be issued to team members to follow up a customer refund -- all of which can be pre-programmed into IFTTT. It'll also work with services like Google Drive, Twitter and SMS, to name just a few. Hopefully companies won't abuse it -- we'd hate to see a tweet after buying a particularly sensitive item.

  • The Associated Press welcomes its robot journalist overlords

    by 
    Brad Molen
    Brad Molen
    06.30.2014

    Robots are cool and all, but they're just mere toys until they start doing things like reporting the news, right? (Okay, we may be looking at the prospect somewhat selfishly.) Fortunately, that's already starting to take place -- to a degree. In July, the Associated Press will begin using an automated service capable of churning out up to 4,400 business stories. With the help of a company called Automated Insights, these articles will include numerous pieces on quarterly earnings reports, which in theory should free up the humans to do the deeper stuff, such as pieces on why the numbers actually matter and what the executives say during their calls to investors.

  • ​Homey gives your living room a voice

    by 
    Sean Buckley
    Sean Buckley
    05.28.2014

    Too lazy to flick on a light switch? There's a Kickstarter campaign you should check out. Homey isn't the first crowdfunded home automation platform we've seen, but it is one of the most personable: the entire device is controlled by human speech. It's designed to ape the computers on Star Trek, explained creator Emile Nijssen, which interact with the users using an artificial intelligence. Homey isn't quite that advanced, but early demos show potential.

  • Daily Roundup: Street View vs. captchas, living in a connected home and more!

    by 
    Andy Bowen
    Andy Bowen
    04.17.2014

    You might say the day is never really done in consumer technology news. Your workday, however, hopefully draws to a close at some point. This is the Daily Roundup on Engadget, a quick peek back at the top headlines for the past 24 hours -- all handpicked by the editors here at the site. Click on through the break, and enjoy.

  • Free 1Password tutorial video and more news for April 14, 2014

    by 
    Dave Caolo
    Dave Caolo
    04.14.2014

    Another Monday is upon us. But don't despair, it brought enough Apple news to share with the entire class. Let's get started. In light of the Heartbleed threat, ScreenCastsOnline has made a tutorial video featuring 1Password available for free. We're big fans of 1Password here at TUAW, as it makes it easy to have various, complex passwords set up for all of your favorite sites. ScreenCastsOnline offers a very competent overview. Reports of an aftermarket CarPlay rig appeared this week, according to Asian review site Nikkei, we could see aftermarket units in the US and Europe selling something like US$500-700. Summer is coming (in the northern hemisphere at least), so consider the Wi-Fi ready, iPhone-controlled home air conditioner from Quirky and GE. The Aros learns your budget, schedule and location for super-efficient cooling. Neat, eh? It's available for pre-order on Amazon now.

  • Droplet robotic gardener waters your plants with precision (video)

    by 
    Mariella Moon
    Mariella Moon
    03.25.2014

    There's a new helper robot for homes called Droplet, but it has no intention of usurping Roomba's territory -- in fact, you can think of it as a Roomba for your garden. It's probably not capable of killing snakes like its badass indoor counterpart, but it can care for your plants without input. Technically, Droplet's a smart sprinkler, but it's actually more like an automated hose that aims only at plants (or anything you want) up to 30 feet away, since it was created as a means to conserve water. Of course, you'll have to configure it a bit beforehand: after adding your plants' names on Droplet's interface using a phone, laptop or tablet, you'll have to aim water at each of them, so the system can remember their locations. The robot then taps into various sources via WiFi to look up each plant's needs to determine how often and how much it should be watered. In the event that rain's coming your way, the device will hold off on doing its gardening duties, as it also gets real time data from thousands of weather stations. Droplet's creators claim it can lower water sprinkler consumption by up to 90 percent, which is huge if true, as lawn sprinklers are one of the top water wasters. They also claim that it can save up to $265 a year on water bills, almost enough to recoup your investment should you choose to pre-order a unit from Amazon right now for $300. As for the remaining $35, well, let's just say that's just the price you'll have to pay for keeping R2D2's Mini-Me as a gardener.

  • Launch your favorite apps as needed with Keyboard Maestro

    by 
    TJ Luoma
    TJ Luoma
    03.14.2014

    On Mac Power Users 181, I mentioned that I have a keyboard shortcut for OmniFocus' "Quick Entry" which works even if OmniFocus isn't running. Tom Siko asked if I'd be willing to share it, so here it is. Even if you don't use OmniFocus, this idea can be re-used for any application that you run via keyboard shortcut, such as Skitch (or, my preference, Skitch 1). First, here's the general idea... The idea behind this is fairly simple: Imagine you have some keyboard shortcut in your head, such as ⌘+⇧+5 for Skitch, or ⌘+⇧+O for "Quick Add" to OmniFocus. Over time, you learn that whenever you want to do {thing} you press {this keyboard shortcut}. But there's one problem: those keyboard shortcuts only work if the app is running. So what do you do? The usual solution is to have those apps (or some kind of "helper app") launch at login. But why have something launch before you need to use it? Especially with an SSD, launching an app only when it's needed will only take a second or two. Likewise, why keep an app running once you are done using it? Rather than have a bunch of these apps launch at login, I created several Keyboard Maestro macros to watch for the keyboard shortcuts, and then check to see if the related app is running. If it is, then Keyboard Maestro does nothing. If it isn't, then Keyboard Maestro will launch the app and trigger the action that was associated with the keyboard shortcut. The Keyboard Maestro "workflow" for this is very straightforward: When a certain keyboard shortcut (or "hot key" in Keyboard Maestro terminology) is pressed, have Keyboard Maestro run an "If Then Else" test: If the desired app is not running, then: Launch it Pause until it is running Activate YourApp Trigger the desired action else (that is, if YourApp is running): {This section intentionally left blank} The "Else" section is left empty, because if the app is running, we don't want Keyboard Maestro to do anything when the keyboard shortcut is pressed, because YourApp will. "OK, I get the idea, show me how you do it..." Some of you may already understand how to do this, but some of you may want to see how it actually looks in Keyboard Maestro. So here is a screenshot of my Keyboard Maestro macro for Skitch: Note: a larger version of this image is available on Github. Each one of those "blocks" in Keyboard Maestro is just something that I have clicked and dragged from Keyboard Maestro's list of available actions, and selected from the various drop-down menus. Building something like this is really not much more difficult than writing a Mail.app rule. With any multiple-step macro like this, the key to making it work is to make sure that "Step 2" doesn't try to run before "Step 1" has a chance to finish, and so on. Keyboard Maestro lets you choose between either waiting for a certain number of seconds, or waiting until certain conditions are met. For example, if I could tell Keyboard Maestro to launch (or "activate") Skitch, and then tell it to pause for 5 seconds before going on to the next step. I tend to prefer using conditions because they are a little less error-prone. If your computer is doing something else which makes it a little slower, it may take longer than 5 seconds, or it may take fewer than 5 seconds, especially if your computer is idle and has an SSD. So in the macro I told Keyboard Maestro to launch Skitch and then wait until there is a menu item called "Crosshair Snapshot" (which is what Skitch calls the command I associate with ⌘+⇧+5). When Keyboard Maestro sees that menu item available, I know that Skitch is now ready, so I tell Skitch to select the menu item "Crosshair Snapshot" from the "Capture" menu in Skitch. (Note: I didn't have to fill in the menu title or menu item names either. Keyboard Maestro did that when I clicked on the "Menu" button near the right. It shows me all currently available apps and all of their menus, so I just have to select the right one, and it fills in the exact details for me.) At the bottom of that macro window you see that the "otherwise execute the allowing actions" section is blank ("No Action"). This is the "Else" part of the "If Then Else" which started with "If Skitch is not running" so logically this section will only match if Skitch is running, in which case Skitch will see that I have pressed ⌘+⇧+5 and respond accordingly. After I have used Skitch I can either leave it running if I think I might use it again, or I can just quit it, knowing that Keyboard Maestro will launch it again later if necessary. Note! Here's one important potential "gotcha" for this: Skitch has an option in its preferences which will allow it to run only in the menu bar and not in the Dock. If you choose not to have it run in the dock, it will not have menu items that Keyboard Maestro can access! What do you do in that scenario? Just change Keyboard Maestro's conditional so that (instead of pausing until it finds a menu item) it will "Pause until Skitch is running" and then tell Keyboard Maestro to simulate the keyboard shortcut ⌘+⇧+5! Did I just blow your mind a little? You press ⌘+⇧+5 and then having Keyboard Maestro press ⌘+⇧+5 again. It's like having a sandwich that can make you another sandwich. OmniFocus My keyboard shortcut for OmniFocus Quick Entry is ⌃ + ⌥ + ⌘ + O, which might sound crazy, but as I explained on MPU, I have set my right ⌥ key and Caps Lock to equal ⌃ + ⌥ + ⌘, so when I want to add something to OmniFocus, I press Caps Lock + O or Option_R + O. The key is to make sure that whatever keyboard shortcut you have in OmniFocus' preferences here: matches whatever you use in the associated Keyboard Maestro macro under "This hot key": As before, a larger version of this image is on Github. Same idea as before: if OmniFocus is not running, activate it, pause until it is running and a "Show Quick Entry" menu item exists, and then select the menu item. If OmniFocus is running, Keyboard Maestro does nothing, and the Quick Entry window will simply appear as usual. These are only two examples, but the same idea applies to any application that you invoke via a keyboard shortcut. It is a handy way to avoid having a lot of apps launch at login, and allows you to only have them running when you need them. Download and Install If you would like to use my Keyboard Maestro macros as shown above, download the zip file from Github, unzip it, and inside you will find both .kmmacros files. Double-click on them to import into Keyboard Maestro, and you're ready to go! Any updates to these macros will be posted on the Github page, and if you have any problems getting these to work, you can send them to me there or ask me on Twitter. If you haven't already listened to Mac Power Users 181, I share a whole host of other nerdy automation tips there too.

  • Toggle JavaScript in Safari with Keyboard Maestro

    by 
    TJ Luoma
    TJ Luoma
    03.09.2014

    I was very pleased to be a guest on Mac Power Users Episode #181. We had a great conversation about all things automation on the Mac, but Katie and David both seemed to like one Keyboard Maestro macro in particular. Three years ago, I wrote about how to Quickly enable or disable JavaScript in Safari, but had not yet come up with the Keyboard Maestro macro. After we finished recording the show, I decided to "flesh it out" a little with some additional error checking. In the course of doing so, I learned a new Keyboard Maestro feature thanks to its developer, Peter Lewis. The macro itself is fairly simple: it is designed to be used in Safari, a simple press of ⌘ + J will toggle Safari's JavaScript setting on or off, and then reload the current page (if any). Although the macro is simple, it is very convenient for those sites which are filled with all sorts of annoyances and distractions. The second macro uses ⌥ + J to only display the current JavaScript status in Safari, without changing it. If you are impatient, you can jump over to the Github page for these two macros where you can download the macros. If you want to learn more about how it works (and the new 'trick' I learned in Keyboard Maestro), read on. Building the macros Most Keyboard Maestro macros fall into one of two categories: "global" macros, which should work anywhere, and "local" macros, which are only meant to work in a specific app (or group of apps). For example, most people are familiar with the keyboard shortcut ⌘ + space to start a Spotlight search. That keyboard combination should work in any application. That's what I mean when I say "global" –- it works at any time, in any application. Contrast that with something like ⌘ + Y which may or may not do something, depending on which app you are in, and it will most likely do something different in different applications. That would be an example of a "local" macro. The reason I mention this is that these two macros which I have created are meant to be local macros, in the sense that they are only meant to be used when you are using Safari. For example, if you press ⌘ + J while you are using the Finder, you don't want Keyboard Maestro changing your JavaScript setting in Safari! To limit these to just Safari, the macros need to be placed in a Keyboard Maestro "Group" which has been limited to just be active in Safari. Don't get overwhelmed! I'm telling you this detail to help you understand how it works, but if you use my macros you won't have to worry about creating this Keyboard Maestro Group, it will be done for you. But it's important to understand how it works and why it is important. It's really not as complicated as it sounds; hopefully, this screenshot will help: A larger version of this screenshot is available on Github. In the left column, you can see a group called "Safari Only" Macros has been created. This group is like a folder which can hold any number of macros. In the second column you can see that I have 4 macros in that group (the 2 mentioned here and 2 others which are unrelated). In the right-most part of the window you can see that the "Safari Only" Macros have been set as only available in Safari. (If you wanted to rename the Group to something other than "Safari Only" Macros you would do that here.) When you import the macros I have created, Keyboard Maestro automatically creates the "Safari Only" Macros group, and it knows that these macros are only to be used in Safari. I mention it here only as explanation; you should not need to do anything in Keyboard Maestro to get them into this group. Once you have imported the macros into Keyboard Maestro (either by double-clicking on the .kmmacros file or by choosing File » Import... in Keyboard Maestro) you can look through the macros to see how they were put together. Do not be overwhelmed! These macros may look complicated, but that's mostly because I was very thorough, and added a lot of error-checking that I will admit I don't always include. What these macros do is really quite simple. Look at this menu item, and notice that in one there is a checkmark, and the other there isn't: I previously suggested you could go into System Preferences and assign a keyboard shortcut to "Disable JavaScript." The reason that Keyboard Maestro is better than that is that Keyboard Maestro's macros will sync via Dropbox, which means that if I create a macro once I will have it on all of my Macs, instantly. Maybe you're thinking, "But isn't a keyboard shortcut easier?" Well, maybe, but at its core, the macro to toggle this setting simply chooses that menu item, then it looks to see if the "Reload Page" item (under Safari's "View" menu) is enabled. If it is (meaning Safari has already loaded a page), it reloads the page, otherwise it stops. Now, already I have improved upon a keyboard shortcut, because I'm getting two actions for one keyboard shortcut. With a few minutes of extra work, the macro can be easily expanded, and the benefit of those extra minutes will benefit me every time I use this macro in the future. So here are the extra features I added into the macro: If there is no menu item 'Disable JavaScript' then chances are that the user has not turned on the "Show Develop menu in the menu bar" option in Safari's "Advanced" preferences. Oops! But we don't have to just give up; we can use Keyboard Maestro to open Safari's preferences (using the menu item), then select the "Advanced" preferences (telling Keyboard Maestro to press the 'Button' labeled "Advanced"), and then press button "Show Develop menu in the menu bar" which should have the effect of checking the box and enabling the menu. Just in case, we leave the Preferences window open, and open an alert window using a shell script set to 'Display results in a window' telling the user what should have happened, and what to do next. The macro is then canceled. It is easy enough for the user to press ⌘ + J again, if desired. Now if I reinstall this macro on a new Mac (remember, it syncs via Dropbox, so I can do that very easily) it will help me customize Safari even if I have forgotten to turn this option on! It is important to notice that, unlike some menu items, the Disable JavaScript menu does not change when it is toggled. For example, Safari's "Show Status Bar" menu changes to "Hide Status Bar" when the setting is changed. Ideally, "Disable JavaScript" would change to "Enable JavaScript" but, alas, all that happens is that a check mark is added or removed. Fortunately, Keyboard Maestro is smart enough to be able to tell the difference between "Disable JavaScript" and "Disable JavaScript with a check mark" and we can test for it by looking to see if the menu item "is marked" as shown here: If you were to click on "is marked" you would see another option for "is not marked" which means that now we can tell whether JavaScript is currently enabled or disabled! (This is the "new Keyboard Maestro trick" I learned while writing this.) With a little bit of effort we can not only tell the user (using OS X's built-in notification settings) whether they have just enabled or disabled JavaScript (rather than the generic "toggled"), and if the user uses the new companion macro (⌥ + J instead of ⌘ + J) we can use a notification to tell the user whether JavaScript is enabled or disabled without changing the setting. What problem did we solve, and how much effort did it take? JavaScript has a lot of good and beneficial uses, but it can also be used to have parts of a web page move around while you scroll, or have something jump up and block what you were trying to read. If you have been annoyed by something on a website, chances are good that disabling JavaScript would make it stop. Apple has made it very simple to disable JavaScript in Safari, but it's not very convenient. After all, once you disable JavaScript, you'll probably want to (or even need to) reload the page. Being able to do that with a keyboard shortcut is much more convenient. (Oh, and if you'd prefer to be able to trigger this macro using your mouse, Keyboard Maestro can do that as well.) So we've solved a real problem that can be a daily annoyance when browsing the web by making it convenient to turn JavaScript on or off, and making it even easier to check to see if it is off or on. Creating this macro probably took me about 10 minutes, but I will benefit from it every single day that I use Safari, on every Mac that I own, into the foreseeable future. Every time I press ⌥ + J or ⌘ + J, I'm going to be just slightly happier than I would have been without it, and I'm going to be slightly happier just after a moment of frustration ("Why is this site doing that?! Well, I can fix this easily enough.") This is the one of the benefits of doing these bits of automation on your Mac: it may not change the world, but it makes your part of it a little better and more enjoyable. What may be the best part of this particular effort, for me, is knowing that Katie Floyd and David Sparks are probably going to be using this too, as well as some listeners to the Mac Power Users podcast, and some people reading this article. So I've made their part of the world just a little better too.

  • Watch out Kinect, AllSee does gesture control without a camera

    by 
    Emily Price
    Emily Price
    03.02.2014

    What if you could turn the music down on your phone by just waving your hand? That's the idea behind AllSee, a new gadget under development by computer scientists at the University of Washington. Built by the same guys who created the gesture-recognition in the Galaxy Nexus, the tiny sensor works completely different than the feature in devices like the Galaxy S5 that require the use of the forward-facing camera. Instead, AllSee uses TV signals to not only help it recognize gestures, but also as exceptionally efficient source power. That means it doesn't need a battery to operate and can see your movements even when your phone is out of sight in your pocket -- pretty awesome.

  • Honeywell's evohome puts a smart heating system in every room, is now available in the UK

    by 
    Jamie Rigg
    Jamie Rigg
    02.26.2014

    You don't need Google to tell you that fancy, net-connected and smartphone-controllable heating setups have caught on, blazing a trail for other home automation tech and the mysterious internet of things to follow. UK energy merchant British Gas launched its own wireless thermostat not too long ago, and now Honeywell's upping the stakes with its evohome multi-room system (a bigger, badder version of an old evohome product sold for "specialist installations."). In addition to the main controller that pairs with your boiler, you can also pimp your radiator valves with wireless nodes to create up to 12 different "smart zones" that can be managed independently. As you'd imagine, this means you can concoct some pretty elaborate schedules using the tablet-like touchscreen remote or via the Android and iOS apps. The system will also learn things about your crib, like how it long it takes to heat up and cool down, so you're only using energy when you need to. And, if you've left a window open, any nearby radiator module will know as much and shut itself off in protest of your wastefulness. Available in the UK from today, the basic Connected Pack (sans valve nodes) will set you back £249 without installation, which can't be any more complicated than rigging up a Sonos, can it?

  • Google buys SlickLogin, looks to swap passwords for inaudible sound waves

    by 
    Matt Brian
    Matt Brian
    02.16.2014

    If Google's latest acquisition is anything to go by, entering a password on a website could soon be as easy as placing your smartphone near your computer. Israeli startup SlickLogin confirmed today it has become the latest company join Mountain View's ranks (although it'll work from Google's local offices), bringing its patented sound-based smartphone technology with it. While neither party has disclosed much information, Google's intentions seem clear: the company already offers its two-factor authentication tech free to everybody, but it can be a pain to enter a six-digit authentication code (which changes every minute). SlickLogin's system, however, requires no additional technology, just place your phone near your computer and inaudible sounds played through the speakers take care of the rest. The Israeli team says Google is already "working on some great ideas that will make the internet safer for everyone," except maybe from your dog, who could hear all of your future passwords.

  • Microsoft Office 2011: Unattended download and installation

    by 
    TJ Luoma
    TJ Luoma
    12.22.2013

    I own Microsoft Office 2011 and wanted to make the process of installing it easier, since I own several Macs and have this habit of reinstalling OS X frequently. So I wrote a shell script because that's what I do to solve these sorts of problems. The best part of the script is that it does not require you to have any of the necessary parts. You do not need your installation DVDs or to have downloaded the latest updates. Once you start the script, it will download everything that you need directly from Microsoft's servers and install all of them for you. The entire process can be left completely unattended after it is started. The length of time for the install process depends on your network speed. The total download size is 1.16 GB (aka 1.08 GiB or 1,157,294,708 bytes) as of today. Once the script is finished, the necessary files will be available in ~/Downloads/Office2011/ which you can then copy to any of your other Macs. The script will look for files in ~/Downloads/Office2011/ and if they already exist, it will not download them again. The script will install the following Microsoft Office for Mac 2011 with Service Pack 2 (14.2.0) Office2011-1439Update_EN-US.dmg Microsoft Error Reporting for Mac 2.2.9 Update Microsoft AutoUpdate for Mac 2.3.6 Update Once the script finishes, it will run "Microsoft AutoUpdate.app" to make sure that there are not additional updates necessary. How to use this script (The Easy Way) There is an installer available. This is an Automator app which will simply download and run the office2011.sh for you. Please note that because of Gatekeeper settings in OS X, you may have to right click the installer app and choose open in order to get it to launch. Once you confirm that you want to download and install Office, the rest will take place behind the scenes. You will be prompted to enter your administrator password because the installation cannot continue without it. Update 2013-12-29: I have updated the information at GitHub to include a walk-through of using the GUI Installer application. If you tried it before and it did not work, please try again. How to use this script (The Nerdy Way) A better way to use this script requires the Terminal.app which is found in /Applications/Utilities/. Using Terminal is like getting under the hood of your car: it shouldn't scare you, but you shouldn't just go randomly poking around either. Once in Terminal.app, you will need to: 1) download the installer script (this should all be one line): curl --remote-name "https://raw.github.com/tjluoma/office2011/master/office2011.sh" 2) make it executable chmod 700 office2011.sh 3) run the script. sudo ./office2011.sh Note that you will have to enter your administrator password to use sudo. After Installation Once the installation finishes, Microsoft's Auto Update app will be launched. This will make sure that there are no additional updates needed which have been released since this script was written. It is also a good time to set the auto-updater to run as often as you'd like it to run automatically. I recommend once a week. Disclaimer and Final Notes As far as I know, installing Office 2011 this way gives you the same result as if you had installed using OS X's Installer.app on the various pkg files directly. However, there's a chance that I could be wrong. Use at your own risk, etc. The only difference that I am aware of is that installing Microsoft Office using these scripts does not automatically add the apps to your OS X Dock. This is considered a feature, not a bug. Using this installer will not give you free access to Microsoft Office 2011. The first time you run it, you will be asked for your license code or Office 365 subscription information. If you do not have either of those you can use a trial version of Office, but I do not know what kinds of limitations it places on you. Discovering those is left as an exercise to the reader. Upon installation, you may want to read my article on how to Reduce visual clutter in Microsoft Word.

  • IFTTT now lets iOS users automate their location

    by 
    Brad Molen
    Brad Molen
    12.12.2013

    IFTTT (If This Then That) is a handy online service capable of connecting various apps and devices together and running automated tasks (or "recipes") that you'd normally find mundane and time-wasting. It's been around for a couple years and has built up a strong network of different services ranging from social networks like Instagram and Twitter to cloud services like Dropbox and Box.net, and plenty of stuff in between. One thing that's been missing, however, is the ability to automate your location; fortunately, IFTTT is introducing the iOS Location Channel to fill that void (well, for iOS devices anyway). The new channel leverages location information from your GPS, cellular, WiFi or iBeacon data and uses it as a "trigger" -- something that initiates an automated action. For example, you can instruct IFTTT to send a text message to your loved ones as you're arriving at your destination, or get an email when one of your Foursquare friends checks in somewhere near your apartment. If you use a Philips Hue, have it do a crazy light show to announce your upcoming arrival. There are plenty more ideas where those came from, but you'll have to go take a look at IFTTT's full listing of services and come up with a few clever recipes of your own as well.

  • Keyboard Maestro on sale in Productive Macs bundle plus revised time tracking macro

    by 
    TJ Luoma
    TJ Luoma
    11.07.2013

    Before I get into today's main topic, I want to remind you that until November 18th, you can get Keyboard Maestro as part of the current Productive Macs bundle. For $30 you get seven apps, including Keyboard Maestro (normally $36) and another utility I highly recommend, DefaultFolderX which normally sells for $35. So you can get both apps for less than the cost of either – plus five other apps! Grab that bundle. Now, as part of my quest to get people over the initial learning curve of Keyboard Maestro, I'm going to revisit Terminally Geeky Time Tracking via Screenshots and show you how I've made it much, much simpler. A quick bit of background It was a day like too many others: I was being pulled in a dozen directions and couldn't keep track of all my different projects. I knew I wasn't going to be able to remember everything I had worked on, and I was afraid I would forget to go back and finish something. A more organized person would have kept notes or put things into OmniFocus, but I needed something that required no effort from me to maintain once I set it up. I needed someone to walk around behind me taking notes of the things I was leaving behind, or some way to leave myself a trail of virtual breadcrumbs to retrace my steps. Then it hit me: a Keyboard Maestro macro which takes a screenshot every 30 seconds. Review the screenshots at the end of the day to see where I spent my time, and make sure I didn't forget anything important. If you want more detail, you can read the original post, or you can listen to Episode 71 of the "Home Work" podcast where I talked about it with my TUAW colleague (and "Home Work" co-host) Dave Caolo. Mavericks broke the old version, but that's OK because this version is better anyway. My original solution was called screenshot journal, and it was built around a shell script which could be called either by Keyboard Maestro or by launchd. That script was built around /usr/sbin/screencapture to take screenshots. Unfortunately, as of OS X version 10.9.0, screencapture does not work if you use multiple monitors. I suspect this will be fixed in a later version of OS X, but here's the good news: you don't need a separate shell script anymore. As I mentioned in the original article, Keyboard Maestro was always the best solution, but I added the launchd method as an alternative, even though it wasn't nearly as good. Version 2 of screenshot journal is Keyboard Maestro-only, which means that not only do you get the original benefits, but it's now easier to install, configure, edit, change, and maintain. All you need to do is download the Keyboard Maestro macro and import it into Keyboard Maestro. There is no step three. How to install the Keyboard Maestro macro Adding my new Keyboard Maestro macro to your computer is very easy. Obviously you need to have Keyboard Maestro installed and running on your Mac. It comes with a free 30-day trial period, so if you haven't bought it yet, you can try it out first. Once you have it installed and running, simply download Screenshot-Journal.kmmacros by control+clicking on that link and choose "Download Linked File As..." if you use Safari or "Save Link As..." if you use Chrome (or whatever similar option your browser offers). Save the file as Screenshot-Journal.kmmacros Note that Safari may decide to name the file Screenshot-Journal.kmmacros.txt If so, just change the filename so that it ends with ".kmmacros" and if a dialogue appears asking you to confirm the change, select the "Use .kmmacros" button, as shown here: Once the file is properly named, double-click it and it will automatically import into Keyboard Maestro. Boom! Done. What it does and how it works At its core, all this macro does is take a screenshot and save it. Everything else is details. Then again, depending on who you ask, God, the devil, or delight is in the details, so they aren't to be overlooked. So, while you keep that core idea in mind, here are the details: Each screenshot has a unique name, and that name starts with the current time, in 24-hour format. That way you can easily sort an entire day's worth of screenshots in the Finder and retrace what you did. The filesystem does not like colons in filenames, so I use "." instead. For example, if a screenshot was taken 7 seconds after 3:22 p.m. the filename would start with 15.22.07. The macro will run every minute that you are logged into your Mac, starting at 6:30 a.m. and ending at 11:00 p.m. (You can easily change the starting and ending times, as well as how often it runs, just by clicking up and down arrows in Keyboard Maestro.) The macro will also run anytime you press the keyboard shortcut: Option/Alt (⌥) plus shift plus 3 (Note that there is no command (⌘) key.) You can easily change that keyboard shortcut in Keyboard Maestro, or set it not to have a keyboard shortcut at all. Last (but truly not least!) the macro will run any time a new application activates. For example, if you are using BBEdit and then press ⌘ + Tab to switch to Finder, the macro will take a screenshot. I added this because I realized that no matter how short the interval was between the macro automatically running, I might briefly switch to another app, do something, and then switch back to the original app. The only way to catch that was to run every time a new app was activated. This also allows you to set a higher interval between timed execution of the macro. (You could even disable the timed execution altogether and only have it run when a new app activates, but I don't recommend that because you might switch tasks within the same app. For example, maybe you started our reading your Gmail, but then you clicked a YouTube link and spent the next several hours reading Wikipedia. If you only took screenshots when you switched out of Safari, you could end up with an hours-long gap that shows you were using your web browser, but without showing you what you were doing in it. On the other hand, if the computer has been idle (meaning no keyboard or mouse/trackpad input) for more than 2 minutes, the macro will not save a screenshot. Chances are that you have stepped away from your Mac, and a new screenshot would be the same as the previous screenshot. (Instead, an empty text file is created with a special name so you can see that the macro ran but found the computer idle.) Also, if the screensaver is running or if the screen is turned off, the macro will not save a screenshot. (Instead, an empty text file is created with a special name so you can see that the macro ran but found the screensaver running.) If you use more than one monitor, Keyboard Maestro will screen capture all of them into one image file. Image files are saved as GIFs by default, but you can easily change that within Keyboard Maestro just by selecting one of the options in a drop-down menu. (Note: in my testing, JPG screenshots were more than twice the size of GIFs, and PNG screenshots were almost three times the size!) All screenshots are saved to ~/Pictures/screenshot-journal/ but you can choose a different folder if you wish. Sub-folders are automatically created for each day, so (for example) all of the files created on November 8th, 2013 would be saved to ~/Pictures/screenshot-journal/2013–11–08/. Collecting them into dated folders makes it easy to sort them in the Finder, and you can easily trash screenshots from previous days if you no longer need them. The image filenames also show 2 other pieces of information: 1) the name of the active application at the time the screenshot was taken and 2) the name of the active window in that application (if one exists). That way you can easily look through the filenames and get a rough idea of what you were working on. For example, my most recent image filename is "22.13.59.MultiMarkdown Composer (screenshot-journal–2.mmd).gif" which tells me that at 11:13:59 p.m. I was working on a document named "screenshot-journal–2.mmd" in MultiMarkdown Composer. If you decide that you do not want to use this macro any more, simply disable it by selecting the macro in Keyboard Maestro, and then choose the menu item: View » Toggle Enable, as shown here: If you change your mind want to try it again at some point in the future, use the same "Toggle Enable" menu option when the macro is selected in Keyboard Maestro. Final thoughts If you are worried about CPU usage of something like this running every minute, all I can tell you is that I never notice it on my 2010 MacBook Air. This macro isn't fancy, and it doesn't do any analysis. That isn't what it was meant to do, but if you want a Mac app that can do that, checkout Time Sink from the great folks at Many Tricks. You can try it free for two weeks, and then buy it for $5 from the developers or from the Mac App Store As always, I prefer to buy direct. The money goes directly to the developers, you get faster updates because you don't have to wait for the Mac App Store approval process, and you don't have to worry that Apple will change the Mac App Store rules (again!) so that apps no longer work or have to remove functionality. (If Time Sink isn't what you are looking for, several people have recommended Rescue Time to me. I haven't used it yet, but they have a free version which you can sign up for without any credit card information.) It should go without saying that there are some minor security and privacy issues that go with using any sort of automatic time tracking program. If someone else can access your Mac, they could look through your folder of screenshots and see what you've been doing all day. That being said, if someone has access to your Mac, you should either trust them enough not to worry about them snooping around, or you should use a short screensaver timeout and require a password to unlock it. This macro has been very helpful to me. It can be a bit intimidating or even scary at first, but being able to trace back through my day and see where my time went has proven to be useful time and time again.

  • British Gas introduces Hive Active Heating, enables remote thermostat control

    by 
    Sean Buckley
    Sean Buckley
    09.26.2013

    Home automation isn't just the domain of hackers, Kickstarter projects and startups anymore -- now utilities companies are getting in on the action, too. British Gas has recently announced Hive Active Control Heating, its platform for automated, scheduled and remote utility control. Opting into the program costs £199 and includes a wireless thermostat with a receiver and hub, all of which can be controlled by a companion app (or an online dashboard). The system doesn't have the learning capabilities of the synonymously named Nest, but users can manage temperature on the go, create scheduled heating events by weekday or hour and manage hot water temperate and scheduling independent of thermostat control. Hive is available for pre-order now, though installations won't begin until late October. In the meantime, the company has offered a preview of the system's app on the project's website (source) and has issued a few flowery statements about the Internet of things (after the break).

  • Replicating QuickCursor using BBEdit and Keyboard Maestro

    by 
    TJ Luoma
    TJ Luoma
    08.30.2013

    QuickCursor was the first app I bought on the Mac App Store. It was a great utility which let you send text from any application to your favorite text editor, and then when you were done, it would send the text back from your favorite text editor to the original application. For example, if I was writing a lengthy response to a question on AskDifferent in my web browser but didn't want to lose my work if the browser crashed, I could use QuickCursor to write it in BBEdit instead. (If you're still not clear on the concept, watch the YouTube video for QuickCursor.) Unfortunately sandboxing killed QuickCursor, meaning that it could no longer be sold through the Mac App Store. Jesse Grosjean, the developer, released the source code on GitHub because he was not planning to continue updating it. (Can't say that I blame him after making a great-but-niche-market app for the Mac App Store, only to have Apple change the rules and make it impossible to continue selling it in the Mac App Store.) I am still hopeful that someone will revive QuickCursor as a non-MAS app, but until that happens, I needed a temporary solution. BBEdit and Keyboard Maestro to the rescue, again. My solution to this problem is called Edit Anywhere. It uses Keyboard Maestro and BBEdit to replicate most of the functionality from QuickCursor. (It would be possible to adapt this to other text editors as well. See the GitHub README for details.) If you use those apps, all you have to do is download and import the Keyboard Maestro macro (note: make sure Keyboard Maestro is running before you try to import the .kmmacro file). Also, you'll need to make sure that you have installed BBEdit's command-line tool. If you purchased BBEdit directly from Bare Bones, you can use the "Install Command Line Tools..." menu option as show in the image here. (If you aren't sure if they are already installed, go ahead and use the menu. It will tell you if they are installed and up-to-date.) If you purchased BBEdit from the Mac App Store, you will need to download and install the tools from BareBones.com. How it works (Overview) In Keyboard Maestro you will need to choose a keyboard shortcut to trigger 'Edit Anywhere.' I use Command+Option+Control+Shift+Q. (That might seems complicated, but I have remapped my Caps Lock key to equal Command+Option+Control+Shift, so all I have to press is Caps Lock + Q. See Brett Terpstra's "A Useful Caps Lock Key" for more information.) You can, of course, set the keyboard shortcut to be anything you want. The macro tries to determine if you have selected text in the current application. If yes, it will only use that text. Otherwise, it will select all of the text from the current application. That text will be 'cut', saved to a temporary file in your Home directory, and then opened in BBEdit. When you finish editing the file, simply close it and you will be taken back to the app that you were using, and the text will be pasted back into place. If, for some reason, the process does not complete successfully, you will still have the edited text on your pasteboard and you can manually paste it wherever you want. Also, after each temporary 'Edit Anywhere' file is used it is moved to your Trash, where it will remain until you empty it, in case you need to recover text from one of those files. How it works (Nerdy Detail Level) If you don't care how this works 'under the hood' feel free to skip this section. I provided it for people who might be curious how to make their own Keyboard Maestro macros. If you download and import the macro into Keyboard Maestro, you should be able to follow along as I explain each step. First the macro checks to see if there is a menu item named 'Cut' which is enabled. Most Mac apps have an "Edit" menu with Cut, Copy, Paste, and Select All as sub-menu items. This is a quick test to see if the user has selected text in the current application. It is not foolproof, but it will cover us for most of the cases, and when it fails, all it means is that we will send all of the text to BBEdit instead of just the selected text. If the 'Cut' menu is not enabled, then we can assume that need to do 'Select All' in order to capture all of the text from the current application. We do this first by trying the menu item "Edit -> Select All" and if that does not work, we fall back on ⌘ + A , the usual keyboard shortcut for 'Select All' in most apps. (Again, this is not foolproof, but close enough for our purposes.) Then I added a very short (0.2 seconds) pause to the Keyboard Maestro macro. When testing this macro, I found that some apps (notably Gmail compose 'windows' in web browsers) needed a little extra time to make sure that 'Select All' had selected all of the text. By trial and error I came up with 0.2 seconds which seemed reliable without adding too much of a delay. Next we 'cut' the text using the menu "Edit -> Cut" if it exists or ⌘ + X (the common keyboard shortcut for 'Cut' in most apps). Why 'Cut' instead of 'Copy'? Wouldn't 'Copy' be safer since it leaves the text in the original app? There are a few reasons: Sometimes you can 'copy' when you can't 'cut' or 'paste.' For example, you can select text on a web page, but you can't cut or paste back to it. Better to have the macro fail quickly than to offer to do something that won't work. If the selected text from the original application gets unselected for some reason (either because of some AJAX tomfoolery, or because the user pressed an arrow key or happened to click the mouse somewhere in the area), then when the replacement text comes back in, it might either a) intermix with the old text or b) be pasted in either before or after the old text. If the user happens to switch away from BBEdit while editing their text, and then went back to the source app and saw the original text, they might forget that it was opened in BBEdit and start making changes to the original text which is going to be overwritten when the revised text came back. It would be better for them to switch to the app and be surprised to see an empty window, which will hopefully remind them to check BBEdit. Although it might seem unsafe to 'cut' the text away, almost every single application will have an 'undo' option where they should be able to 'undo' the 'cut' and get their text back if something goes wrong with 'Edit Anywhere.' Now, as soon as we have cut the text, we save it to the file ~/.edit_anywhere.txt using pbpaste which is Apple's command line tool showing the contents of the pasteboard. Normally that file should not exist (we'll see why in a moment), but what if it does? Should we just overwrite it with the new content? Absolutely not, that might be leftover text that the user had forgotten was there. Instead, if the file exists, we'll append the new text to the file and then open it. That might give the user a moment of confusion, but it's easy enough to remove the text they do not want, certainly much easier than trying to recover overwritten information! Once the information is safely stored in the file, we will try to open it with /usr/local/bin/bbedit which is BBEdit's command line tool. (N.B. if you wanted to use a different tool other than BBEdit, this is the line you would want to change to something else such as open -W -n -F *YourAppNameHere* "$FILE" but then you would need to add a way to switch back to the proper application after you finished editing, and you would have to quit YourAppNameHere instead of just closing the window, which is all BBEdit requires. BBEdit's command-line tool is also smart enough to activate the proper app after it is finished. You can see why I chose BBEdit, especially since it is already my preferred text editor.) What do we do if bbedit fails, or doesn't exist? The macro checks the exit code of bbedit and if it is not 0 then it checks to make sure bbedit is where it is expected. If it isn't, we inform the user. If it is, we inform the user that although bbedit is in the right place, it did not work properly. We also send the error message to stdout using echo which Keyboard Maestro will show the user because the shell script action is set to "display results in a window." Then we open the ~/.edit_anywhere.txt file in the default text editor, using open -W -t. (See man open for more details.) Assuming that bbedit does exist successfully, the shell exits and Keyboard Maestro will read the contents of the file back to the clipboard (we could have done that in the shell using pbcopy < "$FILE"). Then the macro will paste using the Edit -> Paste menu item, if available, or ⌘ + V. Finally we run another shell script. This one looks for the ~/.edit_anywhere.txt and moves it to the trash (~/.Trash/) but first it renames it using the current timestamp (YYYY-MM-DD–24h.MM.SS) and removes the leading '.' from the filename so it can be more easily seen if the user opens the Trash by clicking on the dock icon. This also prevents old versions from being overwritten in the Trash, in case the user needs to retrieve one for some reason. It's a start 'Edit Anywhere' isn't a perfect replacement for QuickCursor and, quite frankly, I'm still irritated that Apple failed to work harder to find ways to help developers make the transition into sandboxing. Too many good and useful apps have been either abandoned or forced out of the Mac App Store because of Apple's sandboxing implementation. That said, 'Edit Anywhere' gives me most of what I needed as an alternative. I've only been using it for a short while, so there may be some weird bugs and edge cases out there, but I've tried to make it so that the worst thing that would happen is that you have to open your Trash and grab a text file. That said, I can't guarantee that you won't run into problems, so use as your own risk.

  • Quickly add new Tweetbot mute keyword using Keyboard Maestro

    by 
    TJ Luoma
    TJ Luoma
    08.01.2013

    I love me some Twitter, but I find that some days the internet is talking about something I just don't care about. That's where "mute filters"' come in. Tweetbot lets you mute words or phrases and will hide subsequent tweets that match your filter. The problem is that adding a new "mute keyword" to Tweetbot requires way too many steps. Switch to the "Mutes" tab Click "Edit" Click "+" Click "Mute Keyword" Click inside the Keyword field because, for some frustrating reason, Tweetbot doesn't put the cursor there automatically. Click "Save" Click "Done" Go back to the main timeline Eight is way more than enough, it's about seven too many. Here's what I want: Press a key combination, type a word / phrase, press enter. Boom. Done. Wait! Too many, annoying, repetitive steps!? Automate it! As I've said repeatedly, once you get into the "automation mindset" you'll start to find uses for it all over the place. This is yet another example. Keyboard Maestro is one of my favorite tools for this on the Mac, specifically because it can do so many of these things, and making a new macro is easy. However, since this does not need to be a "global" macro (that is, it doesn't need to work anywhere, anytime, it just needs to work when I'm using Tweetbot) my first step was to make a new "group" in Keyboard Maestro by choosing the "File » New Macro Group" menu. I named it "Tweetbot" because I am wildly creative. Then I told Keyboard Maestro that any macros in this new group should only be available in one application. The red arrows in the image below point to the Macro Group and the setting to show that it is only active in Tweetbot, and the yellow arrows point to the list of macros in that group. Right now there is only one, but if I ever want to make any more that are only for Tweetbot, I just have to drag them into that folder. This is important because it allows me to define a keyboard shortcut in Keyboard Maestro which will only be used when I am in Tweetbot. Now I don't have to worry about it being accidentally triggered in other applications. I chose ⌘ + = because it seems like a good "Add" shortcut, and it was not already in use in Tweetbot. Now let's make the macro Here are the steps the macro will take once I press ⌘ + =: Prompt user for word/phrase to add to Tweetbot mute filter. (See "Screenshot #1" below.) Select the "Mutes" item from the "Window" menu Click the "Edit" button Click the mouse on the "+" button (see the red arrow on "Screenshot #2" image below) Press "Enter" to select 'Mute Keyword (see the blue arrow on "Screenshot #2" image below) Press Tab twice to get into the proper field to add the keyword(s) to be filtered Paste the text that the user entered (see Important Note below) Click "Save" button Click "Done" button Pause for 1.5 seconds to that I can see the new filter has been created Go back to my Timeline (which is probably where I was reading when I decided I needed to mute something Screenshots Keyboard Maestro comes with an item to "prompt user for input" and allows you to easily customize it. Here's what mine looks like: Screenshot #1 Note that this is the very first step in the macro. I could have scripted this differently. For example, I could have created a macro that did the first six steps and then waited for me to enter the mute keyword(s) and then continued. I chose not to do that for several reasons: By prompting the user for input immediately, we give the user a chance to cancel the macro, in case s/he triggered it accidentally or changed his/her mind about it. The user will not have any delay between triggering the macro and being asked for input, so there's less of a chance for them to forget what it was they wanted to mute. The user will still be looking at whatever screen they were at when they decided to add to the mute keyword(s) list. This is particularly helpful if I need to verify the spelling of something. The only "tricky" part is this: Screenshot #2 The "Done" button on the top-right corner changed from "Edit" after we clicked that button. I tried telling Keyboard Maestro to click the "+" button, but that did not seem to work reliably, so instead I told it to click at a certain number of pixels relative to the top-left corner if the front window. (You can calculate the pixel count using xScope or by trial and error.) Once the "+" button has been clicked (red arrow) and then we need to select "Mute Keyword" (blue arrow). The good news is that once we have done the mouse click on the "+" button, the "Mute Keyword" entry will be highlighted, so all we need to do is simulate pressing the Enter key after the "+" button has been pressed. Important Note When you mute a keyword, Tweetbot will let you 1) mute mentions, and 2) set how long you want the mute to be active (one day, one week, one month, forever). I do not adjust these settings in this macro, which (at least for me) appears to mean that mentions will not be muted and that the filter will be in place forever, which is what I want. I'm not sure if Tweetbot changes those settings based on your previous settings or not. If you want something different, you can change those settings using Keyboard Maestro too. Doing so is left as an exercise to the reader. Why Tweetbot? I've always been a big fan of Twitterrific but it doesn't have muting on the desktop yet, so I'm using Tweetbot, which is quite nice. You should be able to adapt this process to any Twitter client. One thing I really like about Tweetbot is that these filters sync between the Mac and iOS client, so you don't have to maintain multiple filter lists. Download my macro If you'd like to download my Keyboard Maestro macro you can find it on Github.

  • Friday Favorite: Using Zapier to automate my workflow (Updated)

    by 
    Kelly Hodgkins
    Kelly Hodgkins
    07.19.2013

    Recently, the TUAW staff talked about their workflow, and the tools they use to keep their day moving smoothly. One detail that didn't come out in my contribution is my growing usage of automation tools to help me get things done. I'm an avid IFTTT user, using the web service to send tasks to my children's iPad or mood updates to my Jawbone Up. Recently, though, I found myself needing to do a complex task that fell outside the capability of IFTT. That's when I discovered Zapier, a web-automation service very similar to IFTTT. Zapier is an online tool that taps into the APIs of over 200 different web services. It includes major services like Evernote and Dropbox as well as niche ones like Campfire, Freshbooks and Github. You can create a "zap" that pulls data from one service and then performs a task based on that data. These zaps run automatically every 15 minutes and can be turned on or off as needed. In my case, I needed a quick and efficient way to take the contents of an email in Gmail and send it to a shared Google spreadsheet. For a while, I tried copy and paste to move the subject, body and other details into my Google spreadsheet one cell of data at a time, but that task was extremely tedious and time consuming. I looked to Google to see if it had some built-in tools that would let me easily and automatically send data between the two services, but I found none. It was only after hours of searching through other email task-management solutions that I stumbled upon Zapier. Zapier supports the major Google services, which means it can plumb data from Gmail and then send it to Google Docs. The granularity of control available to you in Zapier is fantastic. I was able to set up a zap that would scan my Gmail account for emails with the label "app review" and then add those emails as new rows to a Google spreadsheet. I could pick the timestamp as column one in the spreadsheet row, the subject as column two and the body as column three. All I have to do now is label an email and wait for my zap to run. It is such an elegant and easy solution to a problem that had been plaguing me for weeks. This only scratches the surface of what you can do with Zapier. Zapier is available for you to try for free for 14 days. Once your trial is over, you can choose a free plan, which provides you with five zaps that perform a task every 15 minutes. You get up to 100 tasks per month for free. You can purchase additional zaps and tasks starting at US$15 per month for the basic plan which includes 20 zaps and 3,000 tasks. If you want zaps to run faster than every 15 minutes, you can purchase a business plan for $49/month. This plan gives you 15,000 tasks and 50 zaps that run every five minutes. Update: As pointed out by Rohan Sharma, this same automation can be accomplished with a Google Apps scripting macro in the Google spreadsheet. The script uses Google's API to read your Gmail messages and enter that data in the spreadsheet. This is more or less what Zapier does for you when you set up your zaps, which is why I chose the service. I started down the path of scripting, but it was much more involved and time consuming than I wanted. As mentioned above, I wanted something easy to implement. It's worth mentioning the macro option as those with experience in this type of scripting may want to forgo Zapier and venture out with their own code. For the rest of us who prefer to let others do the heavy work of scripting, Zapier is an excellent tool.

  • Using Keyboard Maestro 6 to automate a web database

    by 
    TJ Luoma
    TJ Luoma
    07.18.2013

    One of my favorite new features in Keyboard Maestro 6 is the ability to click on links in web pages using either Safari or Google Chrome. This new feature let me make an old macro (which was based around trying to click in the right place) a lot more efficient. I'm going to show you how I set this up. Although you probably won't be using this same web database system, chances are good that you could encounter something similar to it. My hope is that this will help people who are unfamiliar with Keyboard Maestro (or macro programs in general) understand how they might use automation to help make their computing lives a little easier. "What can't be automated?" Every week I log into EBSCO, a web database of journal articles. I put in my search terms or follow links from TextWeek - another site which has indexed articles by topic and links to EBSCO. That takes me to a summary page for the journal article which gives me publication information. I go through the results and find the articles that I want to read. There is no practical way to (usefully) automate that. I could probably find some way of fetching all of the results for a specific topic, but that wouldn't really be very useful. It's not exactly the stuff of summer blockbuster movies, but I rather enjoy it. The automation part kicks in when I actually find something that I want to read. Automate the tedious stuff Once I find an article I want to read later I have two options: I can click through and read the PDF through the site itself. This is invariably a lousy experience. The PDF ends up being loaded into one part of the screen, surrounded on three sides by parts of the website interface. I can save the PDF to my Downloads and/or open it in Preview, but it's all very clumsy and inefficient, as anyone who has used any sort of web database like this can attest. I can email the PDF to myself. In fact, I can email the PDF to myself and get a copy of the bibliographic information including a link back to the original in case I ever need to find it again. That's much nicer. Well, at least, theoretically. In practice, it's still fairly clumsy and inefficient. I have to click the "E-mail" link on the side of the page, as shown in the image below: There's no keyboard shortcut for that link, of course, which means I have to use the mouse. Or do I? Actually, with Keyboard Maestro 6 I can assign a keyboard shortcut to clicking links, and so I have set ⌘ + Y ("Y" as in "Y"es I want to read this article, but also because the key combination wasn't in use by Safari). When I press ⌘ + Y, Keyboard Maestro will click that link for me. But we're just getting started. Clicking that "E-mail" link doesn't actually email the PDF to me. In fact, all it does it open another AJAX/JavaScript pseudo-window with several additional fields: my email address. Yes, every time. No, it never remembers it, no matter how many times I've typed it in before. A Subject: line for the email. You might think that the title of the article I am reading would be automatically filled into the Subject: field, but you would be mistaken. A checkbox for sending the bibliographic information in plain text instead of HTML. You have probably already guessed that I'm not filling all of that in by hand, so you're probably expecting that I'm going to create another macro, right? Wrong! I don't need another macro, I can still use the one I've already created. Macro Step 1: "Click 'E-Mail' link" Macro Step 2: "Wait until 'Send' button appears (in that JavaScript/AJAX pseudo-window). Macro Step 3: When that button appears, press Tab twice to get to the "Email to" field. Macro Step 4: Fill in my email address (remember this part later) Macro Step 5: Press Tab again and enter the Title of the Safari window (which Keyboard Maestro can easily do) into the Subject: field Macro Step 6: Press Tab two more times which will put me on the checkbox for 'Send in plain text format' Macro Step 7: press Space to toggle the checkbox Which gives me something like this: Let's look at those steps again. Are any of them difficult? No. But how many times would I accidentally make a typo in my email address? Or tedious would it be to keep copying and pasting the Title: into the Subject: field versus the 0.01 seconds it takes the computer to do it automatically? How many times would I accidentally paste the Subject: into the 'Comments' box? Or forget to check the 'Plain Text" box? Macro Step 8: click that "Send" button Now we're done, right? Aha, you're catching on. We're not quite done. After the email is sent, there's a confirmation window: Macro Step 9: Pause until the "Continue" button appears, then press it. Now here's another little detail: sometimes I will open a bunch of tabs, and each tab is a different article, so when I am done, I want to close the tab because there is nothing more to do with it. However, other times I will click through from the search results and the article loads in that same page. If I close the tab there I will lose my search results and have to go back and start over again. Fortunately, there is an easy solution. Macro Step 10: If Safari's menu option "History » Back" is enabled, select that menu option and take me back to the search results, but if that menu option is not enabled it means that this article was opened in its own tab. Keyboard Maestro can do this easily. Just fill in the blanks: How many times would I accidentally choose the wrong one? Knowing myself, a lot. Sure, it should be possible to just re-open the last tab, but it doesn't always work that way, especially when working with database queries. If I was to do each of those steps myself, it would take about 20 seconds for each page, assuming that I never made a mistake. (Even that is cheating because I have a TextExpander macro for my email address.) It takes Keyboard Maestro between 2–3, and most of that time is actually waiting for the server-side actions to happen. This morning I found 15 articles that I wanted to read: 20 seconds times 15 articles is about 5 minutes. To me there's a bigger factor than the time saved: the convenience. Having this process take just a few seconds instead of a few minutes means that I can keep my focus on what I am doing. That means more attention on the parts of the process that can't be automated: the searching and the reading. More time and energy to do the parts of the task that I want to do and enjoy, and less time and energy spent on the boring parts that the computer does faster and more precisely anyway. One more thing... Maybe two... Remember "Macro Step 4: Fill in my email address"? There's actually a 'trick' to that part too. Because I'm having the computer do the typing anyway, I actually have it send each article to two email addresses (separated by semi-colons, not commas... Why? You'd have to ask EBSCO). The first is my regular Gmail address where the article gets filtered away "just in case." The second email address is a SendToDropbox.com address which I specifically use for these kinds of articles. I don't know what kind of black magic they are using over there at SendToDropbox, but by the time I have closed the tab or gone back to the previous page in Safari, Dropbox is already downloading the files that I have emailed to myself. SendToDropbox can automatically sort the files by date (which is handy since that will, effectively, group them by topic for me since I generally search for one topic per day). Of course I can't stop there, so I have Hazel at that folder which does some even nerdier things to the files that SendToDropbox creates. The point isn't to do what I have done... As I said at the beginning, chances are you don't use the same database to lookup journal articles... But what do you do on a regular basis that could be automated? Are there parts of something that you do over and over again that you find really tedious that the computer could do for you? These automation tools – Keyboard Maestro, Hazel, TextExpander – won't make you think that you are living with The Jetsons, but they can smooth out rough edges in your computing life, making it less frustrating and more enjoyable. That's why automation continues to be a big focus for me as I look for the "little things" that add up to a better experience using my Mac.