Automation


ON: BY: Chris Hannah

At this years MacSysAdmin conference, Sal Soghoian (the king of automation) talked about his new role at the Omni Group, and work that they have been focussing on.

The talk was titled "OmniJS: Automation Magic comes to iOS and macOS", and you can guess everything from that. There's a bunch of demos from Sal, showing off the new scripting possibilities (on iOS and macOS), and it's really impressive.

You can find the video, presentation slides, and information on the entire conference at the MacSysAdmin 2017 page.

ON: BY: Christopher Hannah

Federico Viticci, the King of iOS Automation has just written a great piece, regarding the latest update to Workflow for iOS.

With today's 1.7 update, the Workflow team isn't introducing Instant Variables. Instead, they've rebuilt the engine behind variables on a new system called Magic Variables, which completely reimagines how you can create workflows and connect actions for even more powerful automations.

More than a mere tweak for power users, Magic Variables are the next step in Workflow's goal to enable everyone to automate their iOS devices. By making workflows easier to create and read, Magic Variables are the app's most important transformation to date, and the result far exceeds my expectations.

I'm not a full time iOS user for work purposes, but with the features and innovation that is happening on the iOS platform, it makes me ever so more curious to take a bigger step. Just today I we looking at my automation options on macOS, and although there's things like Keyboard Maestro, or the built-in Automator, there just isn't a Workflow alternative.

Time like these make me wonder what it would be like moving fully over to iOS, but as an app developer it seems like I'll be to macOS for a while. I'm certainly not saying I dislike the Mac platform, I'm a huge fan of it, and I'm loving my new Touch Bar MacBook Pro, but there's just more happening over there.

The grass seems greener.

ON: BY: Christopher Hannah

Over the past few days I've been setting up my own media server, and in particular, Plex. Plex is a great tool that can do wonderful things to your media collection, but the one thing that I just love is that it can take plain video files, an then give it so much context. It really makes your library something to look at.

The Server

The actual server itself is my old MacBook Pro, which I don't think is the best machine for the job, but it's the best spare machine I have available at the minute. I'm not going to write down all the specs, but it's got an i5, 4 GB Ram, and a 1 TB hard drive. The only job of this machine however, is to manage my collection, the storage is a 3 TB NAS drive that I've had for a while.

My Collections

At the minute I have three different libraries in Plex, one for all the movies I have downloaded, second for the TV Shows, and then I have also included my iTunes Media folder as a library, as I have a huge number of films in iTunes.

Now let's get on to how I populate these libraries (Leaving some ethical behaviour behind of course).

TV Shows

The TV Shows are just video files that I have collected over the years and obtain manually, there are a few applications that can track new episodes, and even download them automatically, but I haven't found any that I deem good enough. I don't watch many tv shows, so a tiny bit of manual work isn't a big deal for this.

Movies

My Movie collection is a mix, I have ripped some movies in the past (I hate DVDs), and also have a rather magical automation for downloading other movies I like. Here is a step by step process on how this automation works:

  1. Find a movie on Trakt, and add it to my watch list.
  2. CouchPotato finds new additions in my Trakt watch list, and then populates them in it's own database.
  3. Every so often, CouchPotato will check to see if any of the added movies are available to download (with some quality preferences).
  4. CouchPotato then sends these links to download to Transmission, which is currently running as a local web server.
  5. Transmission will triage each addition, and with some specific restrictions like cumulative download limits and speed limits (that actually change depending on the time of day), start these downloads, and place them in the correct folder on the NAS.
  6. Plex Media Server tries to detect when new files are added to the libraries (It also checks regularly), and then it will analyse the media, add it to the library, and also put together all the needed metadata.

It's a really fast process, and I enjoy how little work I have to do to make something happen. I'm sure the process may change in the future, but at the minute it feels pretty seamless.

iTunes

This is definitely where my main content comes from, it's where I get all of my favourite content. Even to a point where I will have a copy of a film, but I will then also purchase it on iTunes. Because it means I get the best quality available, any iTunes extras, and I also feel like it's future proofing my movie collection slightly.

Thoughts

I'm starting to really see why I hear so many good things about Plex, it's easy to set up, it work's nearly everywhere, and it just makes my media collection look amazing.

Running my own media server is something I think I will take further, and if I can pick up a cheap Mac Mini soon, that may be the next step. With my Amazon Dot, and now this small project, automation is becoming a fun hobby.

ON: BY: Christopher Hannah

I just set up a nice little automation on my Mac that I just had to share with everyone, it's quite small, but it's a big help to me when writing my project report for university.

I'm writing it in iA Writer at the minute, and I'm certainly making full use of the content blocks for things like images, and referencing separate bits of text. But I wanted a way to take a screenshot, and then have it available to me to embed into the document. It meant I had to google a few things about AppleScript, but that seemed pretty simple.

To keep my project folder nice and tidy, I created a new folder inside it called "Resources". At the minute it's just for images, but who knows!

Then I created a new rule in Hazel, to detect any file in my Inbox folder[1] that has the tag "KeepTrack"[2], which then moves it into the appropriate Resources folder that I just created. It then runs a small bit of AppleScript to copy the correct text to my clipboard, that I can then paste into iA Writer.

set the clipboard to "/Resources/" & item 1 of inputAttributes

The inputAttributes is the variable Hazel provides, and I have only set one item to pass through, the full name of the file that was matched, so "Image.png" could be one.

Then I'll get something like /Resources/Image.png in my clipboard, that iA Writer will accept as a content block and show the image!

Hazel Rule

Hazel Rule

So it's not a grand automation workflow, but it's something that I worked out due to the fantastic capabilities of Hazel!

I'm starting to really love the app, and it's allowing me to automate my work on my Mac even more.

If you want to get Hazel yourself, you can find it on the Noodlesoft Store.


  1. This is a folder on my desktop, that I use to quickly throw files into. I pretty much have all of my rules in this folder. ↩︎

  2. The name of my project. ↩︎

ON: BY: Christopher Hannah

The need and desire for automation in our daily lives is constantly growing, and IFTTT is one of the main services you can use to link many different actions together. It's probably the automation service for the web.

The only problem with things like this, is that it takes a while to get used to how it works, and also how to get the best out of it.

Luckily, Katie Floyd has written a great article explaining the fundamentals of IFTTT :

IFTTT, which is short for If This Then That, is a web-based service that allows users to create simple recipes to control web-connected devices and services. I’ve talked about IFTTT quite a bit on my podcast, but one of the comments I receive regularly is that people just don’t quite not how to get started, or aren’t sure how IFTTT can fit in their life. To help, I thought I’d give some basic examples of how I’m using IFTTT.

She covers linking home devices, getting notifications with certain triggers, and a few other examples.