Federico Viticci has an overview and examples for the latest Workflow for iOS release, which adds more advanced features for calling into web APIs. It looks great:
For those who are only partially familiar with the terminology, this means that Workflow can communicate with the majority of modern services that come with a web API. If you’ve never worked with web APIs before, it’ll take you a few hours of reading and experiments with dictionaries, token authentications, form requests, and file uploads to get the gist of how it works. But, the Workflow team has managed to make what tends to be a visually unintuitive programming task – assembling dictionaries and structuring JSON – as simple and attractive as possible, abstracting many of the complexities that web developers have to deal with in desktop IDEs and command-line tools.
Here’s another nice example of automatically creating GitHub Gists, from Jordan Merrick:
This is a workflow I’ve always wanted to create, and the new API support makes it possible. Gists are great to share small pieces of text information, such as code snippets or scripts. This action extension workflow accepts files of any type (though they must be text-based) and creates a gist using the GitHub API.
Workflow can now take over many web tasks that previously required either writing scripts or depending on hosted solutions like IFTTT and Zapier. Like my workflow for posting photos to my blog, it’s a natural tool for web publishing and microblogging.
I’d also love to see a Mac version of Workflow one day. I do some limited automation on my Mac, but AppleScript and Automator aren’t as easy to use or as well-maintained as Workflow.
As I’ve written about already, I now post photos to my own site in addition to Instagram. I use the Workflow app to make this easier, automatically uploading a photo and making a new blog post for it from iOS.
Ryan Toohil has taken my rough workflow and improved it, adding support for prompting for the photo title, fixing the photo’s orientation, and a better dynamic folder name based on the date. You can see his updated workflow here.
I still have a lot to learn about using Workflow. It’s the kind of app that you can only really understand the potential for after diving in with a real problem. Now I find myself looking for more ways I can use the app.
I’ve also finally read Federico Viticci’s excellent intro to Workflow over at iMore, which includes this advice:
“When I was new to Workflow, visualizing the vertical flow of actions before building the stack was my biggest hurdle in getting started. I’ve since developed a habit that comes in handy every day: if I already know what a workflow should do at the beginning and at the end, I place the first action and the last one immediately on the canvas. Then, I only have to figure out how to go from Point A to Point B, dropping actions between those two as I play around with different ideas.”
Of course, Federico has written many times about Workflow. He has an article about using Workflow to post to WordPress, and tips and example workflows in the MacStories Club email. His podcast Canvas with Fraser Speirs also routinely discusses workflows.
Colin Devroe started microblogging on his own site, with separate sections for statuses and photos:
“I want to post content to my own personal site and not through closed social networks — because I want to keep control of everything I create forever. […] This doesn’t mean that I won’t be posting to Twitter or Facebook or Instagram, but that everything that I post there will originate here on my site.”
It’s the photos and their RSS feed that caught my attention. Others have done this too, but for some reason I rarely post photos here on my own site. I’ve stuck with using Instagram instead.
I need to change that. I do like the Instagram app, though, so I’m going to keep using it. I’ll just copy the photos over to my site as well, and I’ll use Workflow on iOS to help automate it. The basic steps are:
- After posting the photo on Instagram, copy the caption to the iOS clipboard. This will be the title of the blog post.
- Select the Instagram-edited image in the Photos app and run the workflow.
- Workflow makes a filename based on the title, with some simple substitutions. Lowercase, spaces become underscores, and drop some characters.
- Transmit gets launched and I confirm the upload to my own server.
- Workflow creates a WordPress blog post with an img tag and the relevant metadata.
It’s not bad. You can see the workflow here. I’ve uploaded a bunch of my most recent Instagram photos this way. I’m not sure whether I’ll go back and mirror all the old ones.
These photos live under a new Photos category. I’ve excluded this category from the main RSS feed that I use for cross-posting, so they won’t automatically go to Twitter. You can continue to follow me on Instagram if you prefer that.
For over 5 years and 122 episodes, every time we released a new episode of Core Intuition, I manually added the episode to the RSS feed using BBEdit. There was enough tedious XML copy-and-pasting that it was silly not to automate this process, but we kept putting it off. Finally last week, we switched over to an RSS feed generated by WordPress.
What surprised me is that until it was automated, I didn’t realize how much time I had been wasting editing and uploading the file manually. It was a small but very noticeable win last week when I could just upload the MP3 and click Publish, and that was it.
I’m not sure what the lesson is here. I never automate a task too soon, but 5 years was a long time. Maybe it’s just this: it’s never too late to get a better workflow.
I get a lot of funny looks when I tell people I host everything on Dreamhost. It’s not a great fit for everything — I have some ideas for projects that would be better suited to Amazon EC2, and who knows, maybe I’ve just been on a lucky server — but it has generally been more reliable than any previous hosting company I’ve used, including when I used to run my own server.
Dreamhost succeeds because of scale. They have so many servers, and such low prices, that they are forced to automate everything. This means they can more quickly deploy new software, rebuild servers, or restore a broken installation, and that their panel interface has to provide access to every feature a customer might want.
“This post from their status blog”:http://www.dreamhoststatus.com/2009/07/18/network-problems-due-to-distribution-switch/ is revealing. There are over 600 machines on that list, but it must be only some fraction of their customer base, because my server name isn’t on there. “According to WebHosting.Info”:http://www.webhosting.info/webhosts/reports/total_domains/DREAMHOST.COM, Dreamhost hosts about 875,000 domains.
I strongly believe that “being small is a competitive advantage”:http://www.manton.org/2007/02/customer.html, but anyone who’s played the role of sys admin knows that automation means everything, and that’s what Dreamhost seems to get right.