Editorial iCloud Tabs
I’ve always wanted to be able to access my iCloud Tabs directly from Editorial, but, unfortunately, due to the lack of an iCloud Tabs API, that’s currently not possible. Last week, however, when I linked to the iCloudTabs for Alfred project by Kevin Marchand and saw that the workflow was based on a bit of Python code, I realized that I could modify his script to find a way to make Editorial read constantly-updated iCloud Tabs from a text file.
What follows is a combination of a server-side script and an Editorial workflow to read and open iCloud Tabs within the app. The system works and I’ve been using it every day for the past week with good results.
Photo Management Workflow, Early 2014
I listened to the latest episode of Mac Power Users, where David, Katie, and my friend Bradley discussed their photo management workflows, the limitations of iPhoto and iCloud, and shared some tips on how to get the most of modern third-party photo services and Apple's Photo Stream. It's a great episode and a solid complement to our photo management episode on The Prompt, always with Bradley (he's the photo management guru these days, having written a book on the topic). For both follow-up reasons and because it's the new year and hence a good moment to re-evaluate how technology is supposed to be working for us, I thought I'd give an update on my photo management workflow.
Hazel is the key element of my paperless workflow and several other automation scripts I run on my Mac, such as photo backups. One day, I will get around describing my paperless system (which I have tweaked and perfected over the past months), but, today, allow me to link to version 3.2 of the app, which adds support for tags in Mavericks.
You can now create rules that check for tags in matched files and apply tags automatically. This is great if you want to process a bunch of files automatically and tag them instead of moving them into a folder. Hazel can pick up tags you've already created on your Mac, as well as create and replace existing tags if you want to type a tag's name manually in Hazel.
Interestingly, Hazel can still set color labels (I assume for Mountain Lion users?) and it doesn't show a tag's color inline when editing an action -- for me, it just displays a blue "token" for the tag with a white label. It's really a minor issue -- I have been testing the public betas with Mavericks support and they've been working well for me.
You can get Hazel here, and check out our review of version 3.0 and some of my workflows.
I’ve already expressed my preference for archiving webpages as PDFs rather than simple “bookmarks” on an online service. When I come across a webpage that I know I want to keep for future reference, I like to generate a clean-looking PDF file with selectable text that I can rely on for years to come.
Lately, I have become obsessed with turning longer articles I find on the Internet also into PDFs for long-term archival. For as much as I like Instapaper, I can’t be sure that the service will be around in the next decades, and I don’t want my archive of longform and quality content to be lost in the cloud. So I have come up with a way to combine Instapaper with the benefit of PDFs, Dropbox, and automation to generate documents off any link or webpage, from any device, within seconds.
Yesterday I put together an iOS and OS X workflow to generate PDFs remotely on my Mac, starting from a simple bookmarklet on iOS. On an iPhone or iPad, I can simply hit a button in Safari, and wait for Pythonista to turn a webpage (that’s already been passed through Instapaper’s text bookmarklet) into an .html file in my Dropbox, which is then converted to PDF and added to Evernote. It sounds complex, but in actual practice I can go from a Safari webpage on iOS to a PDF in the Evernote app in around 30 seconds. Hopefully you’ll find this quick solution useful; feel free to modify it and/or send suggestions. Read more
#MacStoriesDeals: 20% Off Hazel Screencast & Superstorm Sandy Donations
Last week, I linked to Mac OS X Screencasts' Hazel tutorial, a 1-hour screencast detailing several Hazel features:
I have watched the entire video, and, indeed, I think it’s one of the best resources you can buy to get started with Hazel and understand all of the its potential. Screencast quality is good, with on-screen guides and labels, zoomed views on specific sections and menus, and clean transitions. The voiceover is concise and to-the-point. The video lasts an hour, but it passes quickly thanks to the provided examples and explanations – it’s definitely not boring, as most video tutorials can be nowadays.
Should you get it? Yes. If you’re new to Hazel, this will get you up to speed very quickly. And, even as a long-time Hazel user, the screencast refreshed my memory on several aspects of Noodlesoft’s app.
Thanks to Mac OS X Screencasts, we can offer a 20% discount off the Hazel screencast (regular price €10) with the coupon code MACSTORIES-IS-AWESOME. The coupon code is valid from November 1st - 18th. Simply head over to Mac OS X Screencasts' website and paste our coupon code to receive a 20% discount.
But there's more. For every screencast sold with our coupon code, Mac OS X Screencasts will donate €1.50 to American Red Cross to help people impacted by Hurricane Sandy in the United States. If you purchase the Hazel screencast without our coupon code, Mac OS X Screencasts will donate €3 to American Red Cross for every screencast sold.
The Hazel screencast offer is available here. If you'd like to donate to American Red Cross without having to buy the Hazel screencast, we recommend Apple's own donation page available on iTunes.
UPDATE: Together with Mac OS X Screencasts we're giving away 5 free screencasts for this Hazel tutorial. To enter, tweet to @macstoriesdeals with the hashtag #macstorieshazeltutorial and we'll pick 5 winners later today! GOOD LUCK!
Automatically Save An OmniFocus Project As iThoughts Mind Map
After I posted about my OmniFocus > iThoughts mind-mapping workflow, several readers asked whether it'd be possible to only convert a specific section of OmniFocus to iThoughts format (as well as plain text and OPML). As Robin Trew, creator of the script, explains in the Help section:
Specify a sub-tree by the OmniFocus id of its root node. Defaults to None.
You can, in fact, slightly modify the script by adding an
-a switch and the ID of a particular project to restrict the query to that project and its subtree. This will work if you only want to export a specific Project to mind-map; Contexts have a different subtree structure in OmniFocus' database.
For instance, I only wanted to create a mind map for my MacStories project. To do so, I control-clicked on the project in the app's sidebar, and selected "Copy As Link"; this will give you an OmniFocus URL like
omnifocus:///task/oREye1BBxdg. The ID is the alphanumeric string after
Follow my tutorial, and add the -a switch as an additional filter:
python $HOME/ofoc_to_mindmap_018.py --output=$HOME/Dropbox/Maps/MacStories -m map.itm -c '0' --format=itmz -a oREye1BBxdg
Make sure to check out Robin's script, as it's much improved since the original release. You can also visit Robin's website (and follow him on Twitter) for several AppleScript-related custom scripts and resources.
Two days ago, Ben Brooks asked on App.net if anyone had come up with a way to share Safari Reading List items to Instapaper. His question made me realize that it would be a fun project to find out, so in my free time I put together a workflow that runs automatically and in the background on my Mac mini.
Please note, what follows is a raw experiment. I have tested it, and it works, but it's far from stable. It uses GUI scripting in AppleScript to mark Reading List items as read, and it heavily depends on iCloud, which, unfortunately, is far from reliable when it comes to bookmark syncing. Nothing should happen to your bookmarks (the script simply "reads" them), but backups are recommended, as usual. Read more
I like iPhoto on the Mac. The app’s interface sports Apple’s proverbial attention to polish and details, the Faces feature is nice, and I like the possibility to visualize photos on a map, just as I find Photo Stream very convenient for my blogging workflow. However, I realized that I don’t want to depend on iPhoto to store the photos that, twenty years from now, I’ll look back to as memories. I need my photos — moments captured as .jpeg files — to be photos, not a database. And at the same time, I need to be able to access them now from any device I have without having to worry about sync, apps, formats, and corrupted entries. I have decided to move all my photos from iPhoto to Dropbox.
This is something I have been thinking about for the past year. Do I want my photos to be stored inside someone else’s app? And if not, why not do the same for any other media I store on my computer? Should I also ditch Rdio and go back to neatly organized .mp3 files in the Finder?
I have come to the conclusion that photos are irreplaceable. Decades from now, I’ll probably be able to find a 2Pac record somewhere online or in a record store (will those still exist?). But not so with photos. If something — anything — happens to my photos, they’ll be gone forever. There won’t be anyone able to give me my memories back. Just as I do for text files — the words I write — I have chosen to store my photos — the things I experience — as .jpeg files, a format that should still be around for the foreseeable future. Read more
Back in October 2010, I posted a tutorial on how to add new tasks to OmniFocus or Things using Dropbox, AppleScript, and PlainText by Hog Bay Software. In June 2011, I wrote about more ways to add tasks to OmniFocus (my GTD app of choice), and noted how I had only "scratched the surface of what’s possible to do with OmniFocus and task creation".
I decided to slightly revisit my workflow now that several "quick Dropbox note-taking apps" like Scratch and Drafts have come out. These apps are already integrated in my daily routine, but the following method works with any text editor, and, obviously, using Dropbox is recommended if you want to be able to create tasks from anywhere. Read more