Welcome to Pragmatic.
Pragmatic is a weekly discussion show contemplating the practical application of technology.
Exploring the real-world trade-offs, we look at how great ideas are transformed into products and services that can change our lives.
Nothing is as simple as it seems.
This episode is sponsored by ManyTricks, makers of helpful apps for the Mac.
Visit manytricks.com/pragmatic for more information about their apps,
Butler, Kimo, Leech, Desktop Curtain, TimeSync, Usher, Moom, NameMangler and Witch.
If you visit that URL, you can use the code pragmatic25, that's pragmatic the word,
and 25 the numbers in the shopping cart to save 25% off any ManyTricks product.
product. This episode is also sponsored by Sapient Pair and their iOS app Shopee.
That's spelled S-H-O-P-E-E. Shopee is a collaborative shopping list app that's
simple and easy to use with great features like pocket lock, smart ordering
and real-time collaborative updating. A shopping list is a special to-do list
and Shopee addresses that use case very well. It's free on the iOS app
App Store. So, check it out at sapient, that's S-A-P-I-E-N-T
dash pair as in two dot com slash pragmatic for more information.
We'll talk about them more during the show.
I'm your host, John Chidjie, and I'm joined today by my co-host, Vic Hudson.
How are you doing, Vic? I'm good, John.
How are you? I am fantastic.
It is well, for me, it's 1030 p.m.
on Christmas Eve. Excellent.
I just wanted to slip in one episode before the end of the year.
So we're going to have after this, we're going to have a week, a couple of weeks off.
So back in the second week of January.
And one of the things I want to talk about this week, it's not going to be a long show.
And I realized that in some other podcasts saying it's going to be a short show is actually an
indication that it's not going to be.
But in this case, it is going to actually be a short show.
And the reason is that I think it's an interesting topic,
but it's not a hugely technical one.
Exactly. And anyway, I want to talk about automation and I don't mean automation as in
like my career choice, which is control systems.
I mean, automation on a consumer
computer platform, whether that is Linux, although there's not much to say about Linux
that I can really add about Linux, but Windows and of course, OS X,
or if you really want going back to system seven and everything since system
seven. So automation from that, from an operating system point of view.
So have you played much with automation on the Mac?
I have, well, I probably wouldn't say much, but I have,
I wouldn't say barely either.
I've spent a fair amount of time with Apple script and automator both.
I like them. Cool. Well, I liked them too.
But hopefully we can talk a bit more than just saying we like them.
But anyway, that's OK. OK.
So when was the first time you used Automator?
I think it was shortly after I got my first Mac back in 2011
and I was looking for a way to batch rename images
and I was searching on the Google.
and I found links that were talking about using Automator to perform things like that.
And I had no idea it even existed because previously I came from Windows world and
there's not really anything like AppleScript or Automator, either one on Windows.
And so I found some tutorials about that and the first few things I made were like
image renaming and batches and stuff like that. Nowadays I make a lot of them and I use them for
different things. Some of them I have installed as a service, some of them I make as applications.
Couple of them that I've added to the calendar to schedule events and things like that not to schedule calendar events
But use calendar events to schedule the workflows to run
Cool, that's very advanced. I don't even do that. But yeah, I'll have it open
hopefully this will be irrelevant in the in the near future when the the new photos app finally comes out, but
I made one I
When photo stream first came out and I don't know if it's still the case
but I think it just said that they kept photos for 30 days, something like that.
And so I made one that would open iPhoto
and leave it open for about 5 or 10 minutes and then close iPhoto again
like every other week so that I could make sure it always had got downloaded
my photo stream images and stuff like that. Okay, cool.
That's a good idea. Okay, well
a little bit about the history of automation on the Mac first.
So, starting with Apple's script was actually first introduced in October
of 1993, and that was in system 7.1.1
or in as North Americans would say 7.1.1.
I've never really understand the difference, 7.1, 7.1, it's like why point, why dot?
But I'll just run with it.
It's just whatever.
Anyway, you know what I'm talking about.
So, it uses a common sort of a conversational language
for high level control of applications.
The whole thing is built on something that's called Apple Events.
And the first app to fully support AppleScript was
QuarkXPress. But applications have to build support into
them for it to work.
So, it's like a special subset of commands, not exactly
keyboard shortcuts, you know, mouse commands, menu,
menu, anything's, you know, it's more, it's a specific subset
of support that needs to be built into the app for it to work.
So standard Apple apps have got a subset of commands that
will work, but it will not cover the full, I
mean, I have yet, okay, iTunes being the one that I automate the most, there
a ton of stuff in iTunes that cannot be automated.
So yeah, it's interesting to see
where different developers have drawn the line.
So it's like automation to a point,
but not automation in completeness, if that makes sense.
But still, doesn't mean it's not worth knowing,
doesn't mean that it's not handy.
It's just that it's not like...
So when I first came across automation on a PC,
it was using some software called Windrunner. And Windrunner is more of a user
interface, a GUI test tool.
And what it does is it's kind of like a click and move macro recorder,
which is, you know, so the idea is you move the mouse across the screen,
it can recreate going from this point to this point on the screen,
you know, single click, double click, left click, right click, middle click,
whatever the heck, click and select whatever from the menu or select whatever
text on a page or, you know, you can, it can replicate and
test and you can program it to run multiple tests in a certain
sequence, you can insert delays, all that sort of thing. But it's
really designed to try and, more for unit testing. So I can
exercise the GUI without having to do those same things over and
over again, which would become very laborious after the 10,000th
time, I'm sure. Probably was even laborious after the first
10. So, the point is that I originally thought AppleScript was
going to be something like that when I first dabbled with it back in the days of Tiger.
And it just, it isn't like that.
So, it's a subset of commands and you cannot do everything.
Yeah. But that's, you know, but that's okay.
So...
It's a weird syntax, too, if you're used to traditional programming.
Yeah, that's it. That's true.
It's very conversational, you know.
So you start out with AppleScript saying you're going to tell an application
something. It's like, come here, I want to tell you something.
And it's like, hmm, okay, I would never have thought to
talk to iTunes, like, you know, I'm just going to tell you something.
Just come over here. We got chat, you know.
I mean, maybe they should just start with like chat with iTunes.
I don't know. I mean, it's very conversational.
It just seems so strange.
But then you ask, you know, you run this past like, you know, I've run some
CodePast non-programmers in the past and I've had a look at it and it's like, oh, that's
that's kind of cool. They can sort of get their head around it easier.
And it's clear that Apple made an effort.
I think that was the goal, exactly, to make it a little more accessible.
Yeah. And we're going to get- we're going to circle back to that as to whether or not that has
value, but we'll just sort of, you know, just we'll just keep going through it for a minute.
OK, so Apple Scripts has to be built into the apps in question.
And when it is, it's a subset of all the possible combinations of things that you can do.
And something simple like I want to play a single sound out of
iTunes and that's it, it's really, really hard to get it to
work. You have to do stuff like set a time, like get the duration
of the track, set a callback and that callback will then execute a
tell it to stop when it reaches the end of that callback.
Yeah. You know, like that play duration, because iTunes is not set up to play a single
sound. So you hit play, it'll play the playlist.
Yeah. So if you want to play a single sound, you can create a new playlist,
add one sound specifically to it, play that playlist.
And then if you want to, you can scrap the playlist when you're done.
Yeah. It's designed for that kind of automation.
It's not designed for I want to play a sound just once.
That's it.
So, yeah, it's like that.
I think most of the Apple scripts I use for iTunes, I use for managing metadata and
batches and stuff.
Yeah, same here. Exactly.
And that's what I've done as well.
It's exactly what I use it for.
So but that's just an example.
I'm picking on iTunes because I've had the most experience automating iTunes.
But the truth is that, you know, do not expect that you can do everything in Apple
script that you can do with a mouse and a keyboard.
You just it's simply not a realistic expectation.
Yeah.
One particular great website for it, too, that I sent you a link you could put in the show notes if you'd like.
Dougscripts.com.
Oh, yeah, absolutely.
I mean, he's got a lot of great iTunes stuff in there.
And even if you're not interested in automating iTunes, there's a lot of good scripts there that you could look at to see how to do things and to learn it.
Absolutely. Yeah.
I know I'll add that in the show notes. And I definitely, absolutely
have been to that site several times and I have ripped off sections of his
scripts. And I don't think I actually use any
one of his scripts exactly because I'm just too much of a damn tinker. It's like,
you know, when we were doing the whole workflows thing, which we'll get to it, I guess
shortly, but back and forth. I mean, I couldn't help myself.
I had to correct your variable names. So I did that.
It's all good.
I'm just, you know, I can't leave it alone.
I think the original one I sent you, didn't I have it, weren't they Camel Case?
Yes. Yeah. I can't shake that mentality.
It never occurred to me you could actually put like a space and a variable name there.
Yeah. If you ever want to, if you want me to review your source code
for, you know, any of your Objective C stuff, just
brace yourself, that's all I'm saying.
It's not a, yeah, I've had differing levels of feedback.
Camel case belongs in there.
You're an underscore guy, aren't you?
I'm afraid I am many things.
But anyhow, let's leave that there, shall we?
I'm digging a hole for myself, I've got to shut up and move on.
Okay, Automator. Automator, Automator, Automator is fantastic.
And I love Automator because Apple said, you know what, AppleScript is just not simple
enough. You know, it's not drag and drop, it's still code you've got to type in.
So let's build a layer on top of that.
And we're going to make pretty graphical objects that you can just drag into a sequence
and the sequence will simply logically link from one to the next.
And you might think, well, that's going to be a pain in the neck to program, but it's really, it's really is
in terms of like Apple figuring out how to make that work.
It's actually really quite simple.
If you take any command that you can tell an application, it's
actually quite simple to wrap that into an automated item because you know that the
result of that action is either going to contain information or it's not.
So, if you say, you know, get playlists, you're going to come back with a list of
playlists. Well, that's going to have an output.
You can then feed that output into the next step.
And that's all Apple did.
You know, not rocket science, but it makes it so much easier.
You can also drag in to Automator a section where you can write your own
Apple script. So, you don't have to use the older, like the Xcode, because
you can actually edit in your script editor for your Apple script can be done that
way, of course, the traditional, I say the traditional, quote unquote, traditional, the way it used to be done.
But I haven't done that in years.
I just use Automator and I'll drag in a box that says, you know,
run AppleScript and I'll just put my AppleScript in there and it becomes part of an Automator
workflow. It wraps it all up nicely with a bow and I move on with my life.
It's great.
So that was introduced in April 2005, and that came out with
OS 10.4, otherwise referred to, quite
lovingly as Tiger.
But it's not going to hurt you like a tiger might consider doing if you really pissed it off, I
guess. But yeah, it was fantastic.
I love- I see Tiger as sort of being the first version of
OSX that was truly special.
I think Spotlight also came in Tiger and I started using OSX
at Tiger and sort of fell in love with it.
So, I played around with Jaguar before, like after the fact,
And it was missing too many things that I'd fallen in love with.
So maybe I'm suffering a little bit from there's a name for
a syndrome for that. But anyway, old man syndrome.
All right. Maybe not.
So, yeah, anyway.
And that abstraction makes it even easier for people to say, right, well, I want to
rename this file or I want to prompt the user for a file,
you know, to add to my workflow and so on and so forth.
and then I can do whatever the heck I'm going to do with it.
Yeah, and that's brilliant.
And when you're done, you can create it and you sort of hinted at this so you can create
what's some of the different options you can create?
You can just save it as a workflow that you run manually from Automator itself
or that you can also it can package them up as a standalone application or you can
install them into the OS at a service level so that when you right click on the right
kind of files that it accepts as input, it'll show it as an option to run on those files
and like I said you can add them to a calendar so that they run on a schedule.
I hadn't actually tried that one, you mentioned that before, I haven't tried the calendar
schedule one.
One of the things that's worth mentioning is that you can restrict a system, you can
create a workflow that becomes, that's saved as a system service and that service can be
active globally as in you can access it anywhere from under the Apple menu under services or
you can have it confined specifically to an app
and you can further filter that by specific data
from that app.
- Yeah, file type or whatever.
- Obviously it's app specific.
Yeah, exactly.
Obviously it's app specific.
So there's no point saying, you know,
oh, you know, filter only URLs from, you know,
from something that doesn't have URLs in it.
- Yeah.
- God, that's, I'm trying to think of an example
of something that can't have a URL in it.
Everyone I come up with comes up with,
Okay, calculator, there you go.
- Yeah, or you can just tell it that it only runs on movies
or it only runs on songs or text or images.
- Yes, that's it.
So, and that of course then makes it specific
but also generic in terms of,
it's not about the application itself.
So rather than the,
I think it makes a determination from MIME types, I think.
- I think so, yeah.
Oh, and it's useful if for no other reason,
it's useful just to keep that list down to a manageable size
when you flip open the services from your context menu.
- Yeah, exactly.
Because otherwise, if you keep doing this too much,
you'll just get a services menu that is a half a mile long
and you'll be hunting through the list.
It's like, oh, which one do I need to look at?
It's this, okay, right.
So I did something recently regarding that
that I posted on Tech Distortion,
which is really not revolutionary in any way at all.
But for me, it was kind of cool,
which is that I've created my own bookmark sync mechanism using Dropbox.
And my reason for doing that is that I, um,
the Safari bookmark sync did not work reliably, which is, you know,
unfortunate, but that's just reality.
And because I do everything in Markdown these days with, uh,
cause my CMS is Statomic and it supports Markdown and, uh, I'm,
I'm not a huge Markdown advocate necessarily. It's, it's okay. Uh,
but you know, it kind of gets the job done, I guess,
but I'm just as happy marking up in HTML, to be honest.
And half the time when the markdown parser in Statomic
falls apart for whatever reason,
and occasionally it does chuck a hissy fit,
I tend to default back to HTML because, you know,
it detects HTML tags, the markdown parser just says,
right, yep, no problem, I understand this.
So, you know, and a lot of the time I'll get things like,
markdown parser, for example,
spits the dummy sometimes with bracket,
like curl parentheses within square brackets in a URL.
It's like an anchor, HTML anchor.
So if it's HTML anchor, I'll go, you know, open square bracket, a href equals
quote, dot quote, you know, insert URL here.
But if the URL itself has parentheses in it and you close the quotes, then everything
encapsulated within the quotes is parsed as being a URL, which is the correct thing to
do, you know, close, close, square-ish bracket.
Well, you know what I mean?
Angle bracket, I should say.
And then you have your text and then you have your closing tag,
closing slash a tag for your closing your anchor. That's HTML.
But if you're doing it in Markdown, it's open square bracket, the text close,
square, a square bracket, that that's the text of the link.
And then open parentheses for the URL, but there's no quote unquote.
So if you've got a parentheses in that, you've actually got a parentheses,
set of parentheses inside a set of parentheses.
And most Markdown parsers will see that and get confused. Like, well,
where does this end? Is it the first bracket? Is it the second bracket?
I don't know what brackets are and what day of the week is it?
And oh my God, it's all too hard.
So you can argue until you're blue on the face
that the parser should be clever enough to figure that out.
But having used a couple of different parsers,
'cause Statomic has their own baked in,
as well as they use one off of Git,
I'm trying to remember which one they're using,
it's parse down.
And both of them chuck a heezy fit in that case.
So I end up doing a bit of HTML anyway.
This is a very long way of me saying that I created
a automated workflow as a system service
using a very basic Apple script to take whatever
the current active tab of Safari is and to save it
to a text file and Dropbox, just append it to the end
of a links file and Dropbox.
And it saves it in correct markdown format,
which is open square bracket, close square bracket,
blah, blah, blah, blah, blah.
If I was really, really clever,
Whoa, that came out badly.
No, it's true. If I could be bothered and if I was clever,
I could probably put my mind to it and come up with a system that detected if there was an open
and closed parentheses in the URL and to automatically save that as HTML to save
myself having to mark it up later myself. In fact, maybe I should do that.
I'll add it to my to do list for the holidays. Yeah, because that's what I should be doing on the holidays is not spending time
with my family, but writing AppleScript.
There you go.
I'm going to I'm just hang on.
There you go. I just slapped myself.
All right. Moving on.
Anything else to say about Automator for OSX?
Because honestly, that's probably covered it pretty good there.
Yeah, you always say that.
Anyway, OK.
I'd like to talk about our first sponsor, and that's Many Tricks.
Now, Many Tricks, they're a great software development company whose apps do, you guessed
it, many tricks.
And their apps include Butler, Chemo, Leech, Desktop, Curtain, TimeSync, Usher,
Moom, NameMangler and Witch.
And that's witch as in a witch, as opposed to which
restaurant should I go to?
The first witch with the black pointy hat and the wide brim, which keeps
the sun off. Anyhow, there's so much to talk about for each of their apps.
I'm just going to touch on some of the highlights for four of them.
Starting off with which, since I just made a big deal about it,
you should think about which is a supercharger for your command tab app switcher.
It's great for, and very popular with X Windows users like myself.
If you've got three or four documents open at once in any one app,
then which is beautifully simple pop-up quickly lets you pick exactly the one
you're looking for. Name mangler. If you've got a whole bunch of files,
you need to rename them quickly, efficiently, and in large numbers.
Well, NameAngler can extract metadata from those files and use it to rename the file
names themselves with search and replace capability as well as creating staged renaming sequences.
So if and if you mess it up, you can just revert back to where you started and off you
go again.
Moom, it makes it so easy to move any windows to whatever positions you want on the screen,
halves, corners, edges, fractions of the screen.
And then you can even save and recall your favorite window arrangements with a special
Auto-arrange feature when you connect or disconnect specific external displays.
It's awesome. I use it every day and I love it.
Usher.
It can access any video stored on iTunes, Aperture, iPhoto,
on any connected hard drive on your Mac,
allowing you to easily group, sort, tag, and organize them in one place.
If you install pairing and flip for Mac,
there's no need to convert anything into an iTunes format, quote unquote, H264.
You know, in order to watch it, you can watch it within Usher.
So if you've got a video collection that's scattered across all those different programs and drives,
Usher can help you to straighten it all out.
That's just four of the apps that they've got, and they're working on a special new one that'll be coming out
in coming months. So watch for that.
But, you know, there's still five more that are on their site that you should check out as well that I haven't
talked about. And all of these apps have free trials, so you can download them from ManyTricks or
OneWord.com/Pragmatic and try them out before you buy them.
They're also available from their respective pages on the site or through the Mac app store,
if you prefer to get them that way.
But if you visit that URL and yes, they keep extending this offer, you can take advantage
of the special discount off of their very helpful apps exclusively for pragmatic listeners.
Simply use the code pragmatic25, that's pragmatic the word and 25 the numbers in the discount
code box in the shopping cart, and you'll receive 25% off.
This offer is only available to pragmatic listeners for a limited time.
Take advantage of it while you can.
Once again, thank you so much to ManyTricks for sponsoring Pragmatic.
Before we talk about iOS, I have to put in a mention for Windows automation.
You said you didn't think there's any way of automation to do automation in Windows.
Well, yeah, they kind of sort of-
I didn't say I didn't think there was, I said I didn't know of any.
Oh, well-
I'm sure there's plenty of clever geeks out there that have worked that out.
Oh, really? I'm not really sold, but OK, here's the thing.
batch files in DOS are a form of automation
and I was mucking around batch files long before I my fingers
touched a Mac. That sounds creepy for some reason.
Anyway, batch files for renaming in particular, REN
question mark rubbish.com to, I don't
know, x rubbish.com or something like that.
You know, I mean, you could rename whatever you could rename
stuff using, you know, what different wildcards and so on and so forth, put it in a batch file and you can do batch
renaming and so on and so forth. You could have inputs, you could solicit inputs from the user and then feed that
into the scripts like percent one, percent two and all that other different stuff. And wow, that's crazy. I remember
that off the top of my head. John didn't do any research on that one.
Sorry, you can't see me rolling my eyes right now and myself, but anyhow. So DOS scripts, batch files. Yes, yes, yes.
for years and years and years, it's been able to do that. It was and remains crummy.
But you know what? Hey, to say that it doesn't exist is not true. It is, it does exist.
It's just very restricted in what you can do. And a lot of it is file based.
You can use it to kick off programs. You can use it to rename files and different things.
But, you know, in terms of other stuff, there is a limit to how much you can do with batch files.
Still, it's a form of automation.
OK, however, I did some digging and turns out,
Turns out that there is a Java based cross platform
bit of software called Action and then brackets S on the end.
So Action, Actions.
And that because it's Java based, it's cross platform, that includes Windows
and you install Java and away you go.
Now, it's a layer that sits on top.
It's not baked into the applications in the same way that AppleScript is, and
therefore it is slower and far more restricted in certain
respects as to what it can and can't accomplish.
And based on the different people's reviews of it, I didn't dig into it.
I certainly didn't have time to play with it.
But when I looked at it, you know, it's worth exploring perhaps, but it's not
really the same thing.
It's not it's not written like AppleScript.
It's not it's not like Automator in the same sense.
And some of its little foibles, OK, it's Java based and you know, Java based cross
platform stuff is like is it's it doesn't feel like it quite fits
but you know, in terms of basic automation and if you're on Windows, it's worth checking out
just to have a play and see what you can accomplish.
But I don't have anything else to really say about it.
So we'll have to leave that specifically right there.
And talk about iOS.
Oh, dear. So iOS and iOS automation.
Now, there's this bloke who came on the show on episode 37, entitled
"The Sledgehammer Solution" by the name of Federico Vatici.
Now, we talked about his first hand experience with Hodgkin's lymphoma, but
what people may or may not know is that Federico is also well
known amongst, shall I say, our little tech bubble.
Then I say little, but our tech bubble of size
unquantified or perhaps even unquantifiable, whatever.
Anyway, as being the iOS workflow guy or iOS automation guy.
So, what I'm going to present and discuss here is a shadow of what he would be
capable of presenting, but alas, I'll do my best.
Or rather, I should say we'll do our best.
Okay. Pythonista.
Did you ever play with it?
No.
Okay, well, that's...
Python's one language I haven't ever played with.
Okay, fair enough. Okay, I've dabbled with it and I put it
into the... Oh, man, it's going to sound bad.
I couldn't be bothered learning it because the payback was not there.
I'm going to just put my head up and say that because every time I learn a new
language every single time there is an overhead to it.
Now, you can argue, and I know Nick Coghlan's going to be so cross with me, but
hey, you know, Mr. Python.
But the truth is that, you know, I never got into Python.
I had a dabble and I'm like, "I don't have time for this."
So I've moved on.
Maybe the time will come when there is something that I need to know the language for to do.
And this is the thing that I've found in my life is that if there is a need,
my end goal requires it, then I can put in the time to learn it.
So, when I was doing, you know, my bedside clock for the iPad years
ago, I had to learn objective C.
Okay, that was a steep learning curve.
Fun, but steep.
Made a lot of mistakes and, you know, ended up rewriting whole
chunks of code once I learned how to code in it properly and so on and so forth.
And it's much better now than it was.
But the truth is that it's all a moot point since it's no longer in the app store.
It doesn't matter. The point is that, you know, I had a reason to learn it, a good reason
because I wanted to put an app up on the store and get something out there that worked on an iPad.
And away we go.
Yeah.
Automation and for the purposes of automation, learning a language
specifically for automation, the payback has to be there.
So Visual Basic, you know, I put in a lot of time and effort into learning Visual Basic
because I'm a heavy user of Microsoft Excel
and have been in the past for, to be honest,
not just that actually,
I should also add Access, Microsoft Access,
because I can use Visual Basic to script
a lot of database-like functions.
So let's say I wanna build,
so my most predominant use case in recent years
for scripting has been tag databases
for symbolic tags in SCADA, but not as SCADA.
SCADA, PLCs, touchscreens, all these different bits of software that supposedly
come from the same company that supposedly are integrated just aren't.
So you'll go and you'll get go to Schneider and say, I'm going to use Vigeo
Designer. I'm going for my touchscreens, my Mijello's touchscreen.
I'm going to use Vigeo Scitec for my SCADA, and I'm going to
use Unity Pro for my Schneider Premium PLCs.
And all of them are going to reference, you know, memory bit M100
But here's the thing, symbolics descriptions are all
completely different lengths.
So the character restriction is something like 24 characters
on one of them. It's 32 on another, and it's only 12 on another one.
There's no common database, there's no common anything.
So, for example, on I built, I
put together using Visual Basic Scripts, I put together a complex tag
generation script, which worked in Excel or in Access
and was able to essentially automatically generate from a basic list of
devices and tag structures and tag memory offsets.
I was able to automatically generate something in the region of about 85,000, 90,000
tags. And it all ran through the script running on
my 15 inch MacBook Pro.
I think it was at the time in around about three or four minutes.
And it was all fully scripted in Visual Basic. I had, okay,
I would confess, confess hands up.
I actually did learn Excel scripting way back in the days of Nortel when I was
doing component filtering and modification and so on for similar
reasons. Anyway,
the point is that I had a definite reason to learn it.
Automation payback for learning Python is the only cause I had for learning
Python. So I simply did not bother because I didn't see the payoff simply for me was not
there. Yeah.
However, the same is not true for people that do not have a Mac, do not want to have a Mac and just
want to stick with iOS. And that's Federico.
And he put the time into learning Python and Pythonista and Editorial, which was the
one that followed on from that.
You know, very big on that.
So I played much more in Editorial, but it wasn't really until Workflow for
iOS came out, which is far more analogous to Automator.
that I actually really dove in and started to play.
So, how would you describe Workflow for iOS?
I would probably describe it as Automator
for iOS. I think it's probably going to be the quickest way for
people to visualize it if they've had experience with Automator from the Mac.
It's a really powerful
iOS tool. To be quite honest, I'm
Kind of still surprised that Apple has actually let it into the store and I have this nagging fear that's going to be pulled one day.
Basically you chain events and sequences together in a visual GUI interface that let you automate specific tasks
and you can prompt the user for input or you can get files from Dropbox or iCloud.
And you can modify them and do things with them, send them, share them.
And I think the absolute coolest thing about it is its ability to work
within the context menu extensions from the share sheet.
Absolutely.
That really opens up possibilities for basically a clever user of Workflow
can make their own custom extensions to do just about anything.
Yeah, and one of the things that you and I did concurrently
was we developed a link tweeter for Overcast
that included the podcast artwork.
And that was something that had bugged both of us for a while.
And the stock standard one that came with Overcast
didn't have a couple of tweaks.
I mean, it was such a minor tweak.
I can completely understand why Marco
had better things to do and that's fine.
But the power of workflow was that
we could do that ourselves.
We didn't have to beg Marco to do it for us.
And in fact, I'm not even sure I ever asked Marco
if he would or could do it or whether or not
that would constitute a frivolous request.
And I figured he probably didn't need frivolous requests
coming in because there's probably thousands
of other frivolous requests coming in, but nevermind that.
That's okay, 'cause workflow to the rescue.
And I know that when you shared that workflow
on Twitter, it got quite a bit of airtime.
So a lot of people are now using that and that's fantastic
'cause it's easy to share them as well.
Mind you, it's horrible to search for them,
but that's another problem.
- Yeah, that's a different story.
- Yeah, so, 'cause you can share it
and it'll share, give a link on your website,
on their website, the workflow.is, I think it is website.
And there's a link in the show notes.
And honestly, it was,
it's just a nightmare to try and find anything.
So you end up searching through Twitter
for people that have shared workflows
that they've created on Twitter.
- I was gonna say, I actually made a,
this was another tweet that got some,
a little bit of buzz was,
I made a workflow that would search Twitter for workflows.
- Yeah, exactly, a workflow to find workflows, which is.
Yeah.
It's slightly meta, but useful.
But it's indicative of the search issue.
I mean, the fact that you would have to create that.
And of course, there'll be plenty of workflows that you miss because, you know, you're
assuming that everyone that uses workflow uses Twitter, which is not the
case. So you can share workflows elsewhere.
And there's services other than Twitter.
It's just a Twitter being fully public, pretty much, unless, of course, you're a private
Twitter, but no one does that, Sid. So, anyway, the point is that, yes,
probably counts. Oh, he doesn't listen to this.
OK, moving on. Hey, Sid, I love your work.
Anyhow, moving on. So, yes, so workflow is awesome.
One of the complaints I've heard levelled at it is, oh, it brings a box up,
a modal dialogue that blocks you while it runs the workflow
and you see it stepping through the steps of the workflow.
And, you know, I kind of get that, but at the same time, I also understand why I'm
pretty sure the app has to do that.
It's not, you know what I mean?
So I think it does anyway, but I'd like to know if it does or doesn't, but it doesn't
bother me too much.
It might could be possible for them to run it without viewing the GUI.
I'd have to dig into the APIs and stuff a little bit more.
Same here. I wish I had it.
It may have been part of what let it actually succeed in the app store, letting it get through
review with the fact that it shows the user what it's doing at all times too.
There could be some variables there that people are taking into account.
Yeah, exactly.
I know at a minimum though, it's going to have to bring up a dialogue for you to pick
the workflow.
Oh, yeah, absolutely.
Just like any other extension would.
I mean, let's keep it into perspective.
or not they could immediately dismiss it once you choose a workflow or not could maybe be
determined a little later on I don't know but.
Yeah but the other thing is that you can actually save the workflows through a sort of a pseudo
roundabout method as a shortcut to the desktop.
And that's that'll also is very very cool so it's desktop god I just called it desktop
I mean home screen oh my god I'm so sorry.
You can add them to Launch Center Pro too.
Yeah, I'm not a product of the tablet generation.
Well Launch Center Pro exists on the phone as well.
The reason I bring that up is because as much as I love workflow, the interface for it,
especially on the, well it may still be the same on the iPad 2, I don't know, it may just
be two columns of tiles on the iPad 2, but definitely on the iPhone it's two columns
of tiles and it gets pretty long and unwieldy. And I've imported a bunch of my favorite ones.
They either get used for extensions in other apps or I've imported them into Launch Center
Pro because I could group them into folders in Launch Center Pro and stuff like that and
keep them neatly categorized.
Well if you look at my workflows in portraits orientation, it's 3 columns. They show up
in 3 columns.
On the iPad?
on the iPad. Well, mine's a mini, iPad mini.
But when you actually select it in landscape,
well, in landscape, it's four across, four columns,
but the much larger screen obviously allows a lot more
of the workflow visually and in portrait mode
and in landscape mode on the left,
you've got the selector always visible.
Well, I think actually, no, it's not always visible.
You can, no, I think it is actually always visible
based on that.
But anyway, the idea is that you've got a lot more screen
in real estate to play with, but I've got,
I use it on the iPad.
- I played with it a little bit on the iPad,
but most of my use has been on my phone.
- It's same here, yeah.
But I, because I use the iPad and this is what I, again,
referring to that article I wrote,
is I've generated the same,
the equivalent script that I generated
using Workflow on the Mac,
I've generated the Workflow equivalent on iOS.
And it's since I've installed on my iPad and on my iPhone,
such that I can then save any link from Safari,
mobile Safari into, or frankly, any web browser,
but I use mobile Safari predominantly.
So into that text file for links for the show.
So yeah, in Markdown format.
So yeah, it works really, really well.
So yeah, honestly,
you can do all sorts of really great things with it.
There's all sorts of options.
You can fire up applications, you can play songs,
you can append text to a Dropbox file like I did.
You can tweet all sorts of stuff.
You can pull in like Federico posted a really cool one
where you can select text from a spreadsheet
and it'll turn it into a markdown formatted table.
Yeah, and that's mind-bendingly cool.
I mean, it's ridiculous, in a sense.
- We're gonna be finding out the things
that clever people can figure out
to do with this app for years to come.
Well, hopefully, as long as the app exists.
I really hope it doesn't get taken down.
And there's a lot of people that say
I'm too paranoid about that,
but it just seems too useful.
(laughs)
- Well, there is--
- And I'm a little jaded by some of the things
that have gone on recently, so we'll leave that alone.
- Yeah, well, we've talked about that on Addenda number four
I'd suggest if listeners are curious about listening
to Vic do an overtired angry rant
about App Store rejections recently,
then I point you, I direct you to Addenda episode four.
But for the purposes of this discussion,
let's keep moving on.
And frankly, I think that the possibilities for workflow
are only going to increase with time
provided to let it stay in the store.
And I think that that level of automation on iOS
is finally reached a point of usability for the masses.
And there are lots of little things
that can make your life a little bit easier
by using those workflow, by using workflow.
So, you know, there's a link in the show notes,
check it out if you haven't already.
So before we move on to the last section
want to talk about and we start wrapping up. Hey, short show. I
want to talk about our second sponsor for this episode, and
that is Sapient Pair. Now, Sapient Pair have decided after
years of being annoyed with the existing to do apps when they
were shopping to create their own iOS app for the iPhone and
it's called Shopee. Now, there are a ton of to do list apps out
there and I've used lots of them over the years, but going
shopping is a very specific use case for a list. If you're
shopping for more than just yourself, then Shopee really
begins to shine. The best way to describe Shopee is it's a
fully collaborative shopping list app that's simple and easy
to use. I picked it up and figured out how to use it pretty
well immediately. It's not cluttered with options. It
doesn't presume you live in a specific country or present you
with hundreds of options. You got to scroll through to get a
specific to find butter or milk. You just type in what you want
to remember to buy into the list. Enter an amount if you
want to, that's optional. You don't have to do that. And
there's your list. It remembers what you've entered in the future so that when you can
easily select it from your, essentially what becomes your most common list of things that
you would buy because we tend to buy the same things over and over. It's obvious, it's intuitive,
that's the way we shop. And it even remembers the order in which you buy them so when you
walk through the supermarket so that it orders them correctly in the list. I mean that's
cool enough but when you share your list by, you know, by other email or iMessage or whatever,
to your spouse, your partner, your kids.
Hopefully the kids don't add just ice cream to the list,
but you know, anyhow, maybe you shouldn't share it with them.
But you can add and the person you've shared it with can add,
mark off and reorder items in the list as they need to.
Anyway, I've tried this in real time between two iPhones
and the sync happened in less than three seconds.
That was over 3G, so it's fast.
I also love Pocket Lock.
If you're security conscious and you've got a passcode set on your phone like I do,
there's nothing more annoying than having to lock your phone, slip it in your pocket and get it back out again
at the end of the aisle just to unlock it again to look at your list of things you need to get.
Well, Pocket Lock disables the screen when it detects that it's in your pocket
and then re-enables it instantly when it's removed.
There's no passcodes to deal with and no fuss.
It works so well. I love it.
Now, my wife and I have used it several times now
and become regular users.
And where we used to note things in reminders
and to-do apps or even on paper.
Now, when either of us go shopping, we use shopping.
So you open it up to indicate
that you're about to start shopping.
Then the geolocation detects the store you're shopping at.
And on our shared list, the other person
or persons can get a notification
that you're about to start shopping.
And then if they remember,
you need to, they need you to grab something for them.
You can tap the notification,
jump to the shared list straight away and quickly add it.
It'll then appear on my list and I can grab it while I'm there
shopping. It's brilliant.
It sounds so simple, but it's been done really well.
So anyway, the last minute, is there anything else you need?
Phone calls? You just don't need them anymore.
Now, it's free to try this for the first month with no ads,
after which it becomes ad supported.
There's no risk, no loss of functionality.
But if you want to help the developers out, you can in-app
purchase a three or 12 month ad removal for $1.99 or $4.99 US
respectively. Now, recently, they've had an update that fully
supports iOS 8 and iPhone 6 and 6 plus it's now live in the app
store so you can grab it and the features that it comes with are
really handy with an iPhone 6 and 6 plus. So for reachability
purposes, you can now pull down to add new items rather than
having to reach the top of the screen to tap the plus to add an
item. So pulling down, you can add new one. That's really cool.
It makes it simple. It's had a fresh coat of paint. Well, not
literally, but you know what I mean? And now you can also move
checked items to the bottom of the list and it sort of
declutters those longer lists. So that's handy as well. So
please visit this URL sapient, that's sapient-pair, as in
two.com/pragmatic and follow the links to the app store from
there to help out the show. So if you follow that URL, that's
how you can help out the show. So you can search for the app in
the App Store if you want to, but please, if you can go
through that URL, we really appreciate it. Anyhow, thank you
once again to Sapient Pairs Shopee app for sponsoring
Pragmatic. Go check it out. So the last little piece of this I
wanted to talk about Vic has to do with why automate at all? You
know, because the thing is, you and I have done
programming on and off through our- for our- most of
our adult life.
OK, so this is not a- it's like for us, automation, you know, yes, we
see the power of it, we understand the utility, we think that it's worth the time
investment. Yeah, let's do it.
No questions. We see value.
For the typical user and okay, I'm not going to get into the argument of what constitutes a typical user, but you know, and in fact, you might argue that many of the listeners of this episode right now aren't typical users.
But I'm willing to bet that at least some of them are users that do not use, haven't used workflow, that don't use actions on Windows, that don't use Automator and have never used or seen AppleScript on their Mac.
So I'm willing to bet that there are people listening to this that have never tried it.
So what is the sales pitch?
Why would you use it?
Why should you use it? Why should you take the time to learn it?
And this is what I've been going over with in my head for months, if not
years, is what's the sell on this?
Because I've sort of shown my wife some workflows and said, "Oh, this is cool.
That's cool." Some different people at work, "Oh, I can do this on my Mac and that on my Mac."
And they're like, "Eh, that's nice, but shrug." You know?
Yeah. Here's the thing, if you have something that you're doing that
you do a lot of, like there's a lot of repetition.
Or just very regularly scheduled or.
Yeah, exactly.
It's something that you do regularly.
And like I go into work in the morning and at seven in the morning on a Monday,
I'll always open up my calendar and whatever else and I can- And it'll always go to
today's date or it'll open up emails or whatever.
I can generate a script to automatically set me up for that.
And that's fantastic.
But then again, that's saving me what, five or six clicks.
Is it worth it? Well, it's one of those things that once
you spend a little bit of a time investment up front for that first repetitive task
that where it's really worth, you have to learn it, then the investment becomes
incrementally less with each subsequent automation task you then create.
So, you know, you put the time and effort in because you really want to rename a bunch of these files for iTunes or edit metadata for iTunes.
I gave it as a specific, very geeky case, but let's say you do.
Well, now when it comes to your calendar trigger appointment thing, then, you know, that became a bit easier because you've now done, you've part the way up that learning curve, you put that effort in.
Just out of curiosity, what do you, if you're at liberty to say, what do you trigger off your calendar?
Well, mainly just the iPhoto thing.
It seems like there was something else that I had made that triggered off the calendar
at one point, but I can't remember now.
Yeah, because I thought there was more than one thing, that's why I asked.
I thought that there was, but I can't recall it at the moment.
I think I deleted it because I think I found something else to do it.
Whatever that one was, I don't think I used it for very long.
But the iPhoto one, it still runs to this day.
I don't know whether it really needs to anymore or not.
Like I said, I just wanted to make sure that iPhoto would open up every two weeks for at
least five minutes and then close down so I could download everything from the photo
stream and I could make sure those were always backed up onto the Mac.
Because there was a, like I said, I don't know if it's still there or not, but there
was a limitation where it said it would keep 30 days worth of photos and then they'd be
gone from the photo stream.
So I was really concerned about that.
Because I don't manually open and interact with iPhoto very often.
No, that's true.
In my case, I didn't...
Yeah, five minutes would not be enough for me to download everything on my
crappy internet connection. It would have to be more like two hours.
But anyway, and that's assuming no one else is using it.
Okay, so I guess my point is that
each step along the way, it's become a little bit easier and a little bit easier.
I think it's worth experimenting with.
But we rant and we rave and we say how amazing workflow is and how amazing
Automator is and AppleScript and so on.
But I think that the actual number of people that use it is very, very
small as in terms of a percentage of the overall user base.
Now, I'm not saying necessarily that that's a justification
for it to not be important, like you can write it off and say
it doesn't matter. But what I like to think of it as is
It's an opportunity for different- for developers
to see how different automated tasks are
happening in their apps, and then they can incorporate
those features into their products.
It's kind of like it gives us, the users, the ability to
streamline the tasks that we do, and then developers can
learn from that where there is a feedback mechanism, of course,
that's the caveat, presuming there is a feedback mechanism, then
they can see just how popular it is to do certain actions, and that can help
make a better product.
But ultimately, it is a very niche thing, and I strongly
recommend having a play and having a fiddle, but it all comes back
to here is this awesome,
Well, I guess it's a hammer.
And now I'm going to go looking for a bunch of nails.
And I think I may be ripping that off of Casey List, but it's an accurate analogy.
Insofar as I have this awesome, powerful tool,
hence the hammer analogy.
Now I need to go a bunch and look for a bunch of nails, which is completely ass around
backwards. You know, it should start with I need to drive a nail in, how do I do
this. And the answer in non-automation terms is, well, you move the
mouse around, you click this, you type in the text.
And that is more than enough for the vast majority of users.
So they never take that next step to, oh, I could automate this.
Well, you know what? Maybe you can automate things and maybe you should automate
things. Half the battle is knowing that you can,
because, you know, like I think you mentioned earlier in the episode is, you know,
there are people out there that don't know that this exists.
Like you didn't know that this existed in the very early days.
Yeah. And once you discover it, it's like, oh, hey, this is kind of cool.
But we're programmers, we would think it's cool.
Most people would look at it and say, well, what's the point in that?
I can just do the same thing by clicking five times.
Well, I think you just got to I mean, obviously, you know, geeks like us just enjoy
doing it just for the sake of doing it.
But aside from that, you've got to weigh out, you know, how often do you do this?
How much accumulated time is it over time and will it pay off to develop this
workflow versus just continuing to do it manually?
The other thing that I find interesting is that if you're developing an app, let's say
it's for the Mac, if you're developing an app for the Mac, think
about if you have the whole minimum viable product
idea. If the vast majority of your users are going to
use a subset of automation, then giving them all the basic hooks that they need
and then letting them do the automation and the high level complex stuff, you're offloading
all of that work for a bunch of features that, you know, you may not need to implement because
someone else is going to implement them for you in their own scripts and maybe share them
wherever. It's essentially we, the end
users, become a little bit more like the developers and we
are extending the capabilities of the software that's available.
And we are essentially becoming part of that development.
And if we feed that back to the developers as a result, then that can help to
drive better products for us to end up being reaping the benefits from.
So I guess where I'd like to wrap this up is if you
haven't played with automation on iOS or on Windows or on the Mac,
I strongly recommend having a play.
And it could just be something simple, you know, like open up four or five windows
and go to your inbox or whatever, mark all these items as red or something
and start playing with- Start, just start playing with the automation and seeing what
you can do. You may find that you do have a bunch of nails after all,
that you- That this can help with.
And once you know what to look for and what it can do, it's
maybe it's kind of like the nails are there, but you just can't see them, like you got a blind spot.
And then once you know where to find the hammer, suddenly you can see the nail
and you know how to use the hammer and you can nail it down and away you go.
And you've just made your life a little bit easier.
So have a play, it's the first step.
Yeah, and maybe you'll come at me as you're handed, maybe you'll come up with nothing and you'll
say, "Hey, well, you know, great, I can open this and mark all my items as red.
Big deal. Don't care." That's fine.
Nothing ventured, nothing gained.
But it is there.
And now that Workflow is out for iOS, you have no excuse.
So right now, Workflow is listed as 40% off for a limited time.
It doesn't say how limited, but it says for a limited time, $2.99
US. And that's not a lot of money for what it does.
I've already had- It's already got, you know, 446
ratings for this version.
And those ratings are four and a half stars.
You know, it's like- And there's a lot of comments in these reviews about this is the-
Just is this the beginning.
You know, we can see where this is going.
And so far, this is amazing.
I mean, one of the ones we didn't mention is you can get the latest photos and turn them
into an animated GIF.
You can access the camera and create yourself and your own custom animated GIF,
GIF, GIF, whatever, you know what I mean?
And, you know, you can do that of your own head turning or whatever the heck you
want. Yeah, that's cool.
It's a simple thing, but it's cool.
So anyway, do you have anything else that you wanted to add?
No.
I love automated or I love workflow, though, I hope it doesn't go away.
Oh, I bet. Oh, yeah, I'm with you on that.
But if you want to talk more about this, you can reach me on Twitter @JohnChijji.
That's J-O-H-N-C-H-I-D-G-E-Y.
And you can check out my writing and this podcast and others I've made are hosted on my site,
TechDistortion.com.
If you'd like to get in touch with Vic, what's the best way they can get in touch with you, Vic?
They can find me on Twitter @vickhudson1
Fantastic. Now, if you'd like to send any feedback, please use the feedback form on the website.
That's where you'll also find show notes for this episode under Podcast Pragmatic.
If there's any topics you'd like me to cover, you can suggest and vote on them at the site.
There's a bunch of new topics that have been added just recently.
So please, if you've checked it out in the last month or two, there's a bunch of new ones.
Go check those new ones out and vote on the ones you'd like.
And in the new year, we'll be covering a bunch of those to knock the top ones off the list.
So it's great.
Please keep the suggestions coming.
Lots of really great ideas.
So all you got to do is sign up for a free account and away you go.
Now, I've also started to release excerpts from the show that are one-off topics cut
from the main episode.
I'm calling it Addenda.
Look for it on the site under Podcasts/Addenda.
You can also follow Pragmatic Show on Twitter to see show announcements and other related
stuff.
I'd also like to thank ManyTricks for sponsoring this episode of Pragmatic.
If you are looking for some Mac software that can do many tricks, remember, specifically
visit this URL, manytricks.com/pragmatic for more information about the amazingly useful
apps and use the discount code pragmatic25.
That's pragmatic the word and 25 the numbers for 25% off the total price of your order.
Hurry, it's only for a limited time.
But I'd also like to thank SapientPair and their iOS app, Shopee, for sponsoring the
show.
going shopping and you want a great collaborative shopping list app, then Shopee can help you.
It's ad-free for the first month, so why not check it out at sapient, that's S-A-P-I-E-N-T
dash pair as in two, .com/pragmatic.
Make sure you check them out.
So thanks as always, Vic.
Thank you everyone for listening and thanks for... this is the last show for 2014, so
Thank you to everyone who has listened to and supported the show, and supported the sponsors of the show, and everything for 2014.
Um, you're awesome, all of you, and I really appreciate, uh, your time, and, uh, I'm- I'm glad that, uh, for all the feedback that I've gotten, and, uh, and Vic as well.
Um, thank you, and, uh, yeah, we'll see you in the new year, everybody.
[MUSIC PLAYING]
(upbeat music)
[MUSIC PLAYING]
[Music]
You gonna say anything to that Vic? Happy New Year. Happy New Year. I'll see them next year. Oh yeah!
You will see them? They will see you? They will hear me. No one will see anybody? They will hear us?
They may hear us? It gets complicated. Oh dear me. And that's a wrap.
(Inhales)