Things I like this week, volume 16.

Hours Time Tracking
Things have been well, crazy lately, in the best way possible. I have a ton of new responsibilities that I’m trying to balance, and Hours has been absolutely instrumental in keeping things straight and accounting for my days lately.

It’s an iPhone app with Apple Watch integration that tracks your time in a really attractive and flexible way. It’s highly customizable and has a ton of options, and there’s even more on the way. Tapity is working on extending the app to the Mac and including team functionality, which is going to be huge.

The app is (as of today) free for a limited time as the company prepares to expand it. If you have any reason to want to track time, whether for work or personal reasons, it’s definitely worth checking out. And Tapity is throwing its full weight behind it going forward, so you can trust that it’s going to continue to be great for a while.

Hours Time Tracking

Things I like this week, volume 15.

I first purchased Byword years ago and was pleased with its clean and elegant UI. I’ve bounced between Markdown writing apps quite a bit since then, but recently downloaded it again on all my devices (iOS and OS X) just to play around. Not too much seems to have changed at first glance, but significant iOS 9 changes have made it a great option again, with additions like Spotlight integration and multitasking/split screen support.

It won’t do all the things an app like Editorial can do, but it’s great at what it does. It’s decidedly simple, but that’s not a bad thing at all. I’ve been using it for certain types of personal writing (still using Drafts with custom actions for blogging) and I’ve been delighted with the updates.

iOS / Mac

Aimee Mann’s ‘Bachelor No. 2‘.

Right around the time she did the Magnolia soundtrack, I fell hard for Aimee Mann’s solo career. Something about the place I found myself in my life combined with the smart and scathing songwriting she’s so great at just broke my brain in the best way and I was infatuated. Ever since, I’ve studied her successive albums and pored over every note, every chord change, every sardonic and heartfelt lyric. Her music’s changed the way I think about songwriting in a way that few other influences can claim.

Bachelor No. 2 (Or, the Last Remains of the Dodo) is quite possibly the canonical collection of songs that exemplifies the best parts of her craft. There are a ton of songs among the albums that followed that absolutely crush me, but the set that appears on Bachelor is so perfectly organized that it defies understanding. From start to finish, it swings poppy hooks tempered with the gravity of lyrics that paint pictures from the cheeky to the utterly melancholy. The vocal tracks are layered in such exquisite ways and the songs move along at a perfect pace, carrying you to the end of the album without even realizing how you got there.

She’s an incredible artist, and continues to release fantastic work. But Bachelor is the album I return to time and time again to wallow in a perfect sadness, surrounded by brilliant song structure and melodies. I was listening to it again today for the millionth time and wanted to put some thoughts down on it. If you appreciate great songwriting, it’s worth your time.

Clipboard automation with Slack, Automator, and AppleScript.

Several weeks ago I wrote about using a personal Slack team for notifications and other personal info. Since then, I’ve continued to experiment with adding channels and connecting services, trying to find the right mix of utility and centralized information gathering for me.

One of the things I really love is using a #clipboard channel, which allows me to instantly synchronize anything between my Mac and iOS devices. Some people use Slackbot for this, and yes, you could also use AirDrop or any of the myriad clipboard syncing apps, but I’ve tried almost all of them, and they all disappoint in some way. Nothing beats Slack for sheer speed and reliability in this arena, believe it or not.

Given that I’m always looking for ways to waste time streamline workflows for maximum productivity power ups, I was curious to know if I could make the copying of text (my main use case) faster within this process. I asked the following question:

and was met with a chasm of silence. And a few people who wanted me to let them know if I figured out a way to do it.

Slack’s Mac app is essentially a web wrapper for the site itself. Which isn’t a horrible thing, but does make for some less-than-stellar integration points. It’s actually easier to automate this kind of thing on iOS, believe it or not, due to the extension system provided to developers beginning with iOS 8. But I had a little time this weekend and was determined to figure it out, so I decided to get my hands dirty with Automator like any other rational person. I was able to get highlighted input text copied to the clipboard and sent to the right channel on the web easily, but that meant I needed to open a web page every time and wait for it to load… like an animal. So I began thinking about UI scripting and decided to try it with the Mac app using AppleScript.

I will admit this right now: I’ve never really used AppleScript before, and I’ve used Automator only peripherally over the years, so the result of this little experiment is a bit of a dumpster fire. But it actually does what I want it to, which is kind of cool.

First, I needed to understand at least basic AS stuff. I did a little reading and managed to get a handle on it fairly quickly. It’s quite a bit of fun, and I’m actually sorry I waited this long to play with it. Once I felt comfortable, I put together as much as I could in Automator to get the app focused and ready. Then I began assembling the script. In order to really win, once Automator launched the app, it needed to do the following:

  • from whatever team I last left the app in, switch to my personal team (Cmd-1)
  • activate the quick launch dialogue (Cmd-K)
  • enter “cl” to highlight my #clipboard channel
  • simulate a press of the return/enter key
  • paste the text into the field (Cmd-V)
  • simulate another press of the return/enter key
  • switch back to the app I was working in (Cmd-Tab)

All of this is totally possible, and not even that hard in AS. I found this awesome app that displays the key codes and other info for keys as you press them, so I was able to keep the script a little bit tidier. The tricky part–the part that drove me nuts and took me the longest to figure out because it wasn’t instantly apparent–was that I needed to build tiny delays into the script to allow the Slack app to catch up to the simulated inputs. I added a few tenths of a second between the steps in the script, and the result was that the app looked like I was just typing super fast, pasting, and tabbing back to the previous app, as opposed to just farting out the failed alert sound your computer makes when you do a thing it doesn’t want you to (which happened a lot as I was tripping through figuring this out). The finished result looks like this (seasoned AS users, avert your gaze; don’t look upon this atrocity):

tell application "System Events"
key code 18 using command down
delay 0.3
key code 40 using command down
delay 0.5
keystroke "cl"
delay 0.3
key code 36
delay 0.3
key code 9 using command down
delay 0.3
key code 36
end tell

Like I said, not the prettiest piece of work. A second smaller AS block just handles the Cmd-Tab after this is done. But it works, and I’m pleased as punch that it does. I mapped a keyboard shortcut to the Services menu entry in System Preferences, so now I can highlight text with my right hand, and with my left, hit a key combo and instantly run the action, returning to the current app in about 3 seconds. And the pasted snippet is available on all my devices, instantly.

So yeah. There you go. Waste of time? Probably. Useful? Actually, yeah, very. And I learned a little something. So let’s just move on.

iCloud Drive, Finder, and missing folders.

09-23-2015, 1:55 PM
For about the past two months, I’ve been exploring iCloud Drive as a single destination for my working data. I’ve realized that support for it within apps is coming along quite nicely, and I’m already paying for the storage (photos) so why not give it a shot? Since paring back what I keep online in favor of storing at home on my Synology, the total set of data I’d want access to is minimal. Add in iOS 9’s iCloud Drive app and I’d probably be able to get by just fine.

Let’s get something out of the way right now. Many of you are pulling your hair out now, screaming “JUST USE DROPBOX” at your screens. I have been a paying Dropbox customer for seven years now. It’s an amazing tool and has changed the way I use computers. But for the purposes of this experiment, it was an extra point of friction. The goal was to have things be as “normal” and seamless as possible between devices, as a typical user of Apple products and services might experience. And the truth of the matter is that for weeks, it’s been a seamless, enjoyable process, to my great delight and surprise.

I was using iCloud Drive between my 2014 MacBook Pro, my iPhone 6 Plus, and my iPad Air 2. All updated to latest software releases, and all talking to one another consistently. I had built a few new workflows to account for the quirky ways iCloud Drive handles and sequesters certain files in app-based folders, and was pleased with the results.

Yesterday, I restored my former 2013 MacBook Air to a clean Yosemite install and signed in to iCloud. And some of my folders were missing in iCloud Drive. Folders that had been specifically created by apps (Drafts, Scanbot). Every other folder that I created myself and to which I uploaded files was there, and their contents accounted for. Only app-created folders were missing from this machine. So I began testing.

  • I tried restarting, to kick the iCloud Drive sync services again, multiple times. No joy.
  • I tried relaunching Finder via the Force Quit menu, multiple times. No joy.
  • I tried signing out and back into iCloud. No joy.
  • I tried adding files to those folders via my other Mac to perhaps nudge them into existence. No joy.
  • I tried adding files via the connected iOS apps, same rationale. No joy.
  • I thought that it might be that there were no OS X counterparts to those apps (Pixelmator, for example, showed up fine), but this didn’t seem reasonable, as they’re working on another Mac anyway.
  • I tried deleting the folder and the iOS app, reinstalling and recreating the folder, to see if this was tied to the actual creation event. Worked on the MBP, not on the MBA. No joy.
  • I tried creating a folder on the affected system with the same name, wondering if it might “find” the missing folder. No joy. Now I had two “Scanbot” folders.
  • I added a completely new, previously unconnected iCloud-based app (iA Writer Pro) to see if a new folder would be generated. Worked instantly on the MBP, nothing on the MBA. No joy.
  • I tried physically connecting my iPhone, thinking this might have something to do with the “Trust this computer?” dialogue. No joy.
  • I tried syncing my iPhone through iTunes. No joy.

At this point, having read plenty of discussion threads and FAQs on Apple’s site, I’m giving up. The files appear correctly on iOS (iCloud Drive app), on the web at, and on my MacBook Pro, as it’s the computer I’ve been using. These app-based folders remain missing on the MacBook Air. The problem isn’t iCloud Drive – it’s doing exactly what I expect it to (surprisingly well and quickly, I might add). The problem is with the Finder integration… on certain Macs.

I noticed the same issue on my Mac mini, which made me wonder if this could be related to older hardware. This seemed unlikely to me, but it’s the only thing I can think of that would set these machines apart. The only difference I can see across these three computers is their age.

So what about them is causing them to not be able to see these folders? I’m at a loss, and in the process of moving some files back to Dropbox because I need access on OS X and can’t seem to get it. I would genuinely appreciate any assistance, tips, or otherwise constructive ideas. iCloud, for all its improvements, remains a black box. My experience with it has been better than most, and I’ve truly enjoyed its ubiquity the past few weeks. But I need it to work everywhere for it to work at all, so I’m stuck.

09-23-2015, 2:43 PM
I shit you not, the Drafts folder just appeared. Scanbot is MIA.

09-23-2015, 3:00 PM
Scanbot is back.

I don’t know how to feel about this. iCloud is like a variation on ‘the Aristocrats’.

09-26-2015, 8:21 AM
So I’m pretty sure that the missing folders issue is a byproduct of massive network activity during background processes related to iCloud Photo Library. This was suggested to me by my friend Sam as he mentioned noticing some similar weirdness. I was monitoring iCloud Photo Library activity as it was ongoing, but there are perhaps some processes that (like everything else with iCloud) are fairly obfuscated to the user, sucking up network connections and saturating them even after things seem complete.

It makes sense, but it’s still kind of weird to me that file operations wouldn’t be prioritized over photo operations. Some of them seemed to be, since 95% of my iCloud Drive content showed up quickly, but something held up those iOS-related folders for some reason. I guess the takeaway from this exercise is to ensure all your iCloud Drive content shows up first, and then enable iCloud Photo Library if you’re using it. Next time I set up a Mac, I’ll be sure to do it in this order, and hopefully the arcane incantations I performed this past week will be a distant memory.

The whole purpose of going all-in on Apple apps and services is because I’m trying to use these devices as a normal user would, deriving the integration benefits and ease of use Apple offers. But being the kind of person I am, it’s tough to shake the need to debug a problem like this. Had I just waited, evidently everything would have sorted itself out. Perhaps there’s a lesson in here for me somewhere beyond the setup order I’ll use in the future.