Keyboard Maestro script for tweeting latest post

My blogging workflow generally involves:

  1. Posting a blog article with MarsEdit
  2. Reviewing the article in Safari
  3. Tweeting the article in Twitter

Step 3 required copying and pasting both the URL and the article title, separated by an em-dash, into the twitter client. I simplified this with the following Keyboard Maestro macro, which, in addition to forming the correct tweet text, also strips out the blog name from the title—for each of my two blogs Dafacto and Rantbox.

The Odyssey of getting my data into Amazon Glacier

For years, I’ve been accumulating an archive of files at home on an external drive connected to a Mac mini. These are files that I do not expect to need in the future, but at the same time wouldn’t really be happy about losing—for example, snapshots of filesystems of computers I’ve retired, some source media, etc. All in all, the drive contains some 300 GB of data.

Continue reading The Odyssey of getting my data into Amazon Glacier

Simpler method of getting message-linked todos into OmniFocus 2

A couple of days ago, I posted an article detailing how to use Keyboard Maestro to create todos in OmniFocus 2 that are linked to original messages in Mail.app. Security-conscious Ben Brooks thought the idea was neat, but couldn’t give it a try, as it relies on the use of the OmniSync Server.

That got me thinking, and I came up with a simpler way to achieve the same thing—directly, without having to generate and send messages to the OmniSync Server Mail Drop. Continue reading Simpler method of getting message-linked todos into OmniFocus 2

Using Keyboard Maestro to create todos in OmniFocus 2 that are linked to original messages in Mail

About a year ago, I switched from OmniFocus to Things, in part because of a dislike of the OmniFocus Mac app. Today, I’m switching back to OmniFocus for two reasons. Continue reading Using Keyboard Maestro to create todos in OmniFocus 2 that are linked to original messages in Mail

Junk mail mystery — Nearly every message in Mail.app is being marked as spam

As I wrote about in the past, I host my email on a Mac mini with OS X Server, and on which I run Mail.app and SpamSieve together to provide a server-side spam filtering and rules-processing solution. While this setup works great for remote spam filtering and management, it is somehow causing a separate, irritating and confusing problem. Continue reading Junk mail mystery — Nearly every message in Mail.app is being marked as spam

How to share confidential documents using Dropbox and Espionage for Mac

I have a MacBook Air, and my wife has an iMac. The challenge is to have shared access to our family’s documents, while securing those which are confidential. This article describes our solution.

Continue reading How to share confidential documents using Dropbox and Espionage for Mac

Keyboard Maestro macro to get URL to selected message in Mail.app

While waiting for version 4 to be released, I’ve had to temporarily uninstall the MailTags plug-in from Mail.app in OS X Mavericks. One of the most-used features of MailTags for me was its ability to copy the selected message’s URL to the clipboard.

A “message URL”? That’s correct. Mail supports URLs to individual messages, that when accessed open the particular message in Mail.app. This is what one looks like:

message://%[email protected]%3e

I often use message URLs to provide myself with reference to conversations, important decisions or tasks that are captured in emails.

Without MailTags installed, though, I’ve been really missing this feature. My friend, Stefan Seiz (@seiz), however, was kind enough to email me an AppleScript that provides this same functionality. From that, I created a Keyboard Maestro macro, and assigned it to a keystroke.

If you use Keyboard Maestro, feel free to download the macro here.

How to setup a roaming wifi network over ethernet with an Airport Extreme and Airport Express

In the past, all the devices in my home operated over a single wifi network—including four Macs, an AppleTV and several iOS devices. I’ve long suspected I was probably overtaxing the wifi, and listening to the recent “taming wifi” episode of the Technical Difficulties podcast inspired me to do something about it.

Continue reading How to setup a roaming wifi network over ethernet with an Airport Extreme and Airport Express

Fixed — Stopped the tccd process in Mac OS X Mavericks from consuming CPU and memory

For the past few days, the CPU on my 11″ MacBook Air, running OS X Mavericks 10.9.1 has looked like this:

Periodically—and frequently—a process called, “tccd”, would momentarily ramp up its CPU usage to around 50%. At the same time, the process’s memory would grow and grow. When I checked this morning, it had grown to 1.3GB.

In this post on the Apple Support Communities forum, a user reports high memory usage of the tccd process, but there are no solutions proposed.

In another post someone mentions that the tccd process manages which applications have access to your contacts. That appears to be correct—after I deleted the TCC.db database, the OS started popping up lots of dialogs asking permission if this app or another could have access to my contacts.

But resetting the TCC.db database unfortunately didn’t solve my problem with the tccd process using lots of CPU and memory.

Watching the Activity Monitor for a while, I noticed that Hazel’s “hazelworker” process sometimes ramped up around the same time as the tccd process—you can see this in the screenshot above, in fact—so I started poking around there.

What I found is that several of my Hazel rules involved moving files to a folder which no longer existed (I had moved it a few days ago). After fixing those rules, to my amazement, the problem with the tccd process completely disappeared.

So, somehow, the root of my tccd problem was the existence of broken Hazel rules.

How to keep your data safe with Espionage for Mac OS X

If someone stole my MacBook Air, the computer’s data should be fairly safe, due to my use of Apple’s FileVault 2 whole-disk encryption. But what if someone got access to my computer while I’m still logged in? Or what if someone got hold of my login password?

Certain data, like website passwords, are already encrypted via applications like Apple’s Keychain and AgileBits’s 1Password. But how can we secure non-encrypted documents like bank statements, contracts, etc.?

In the past, I considered using applications like Knox, which make it slightly less cumbersome to deal with encrypted disk images than dealing with them directly. But, unfortunately, Knox didn’t go far enough in the area of usability—it basically makes you deal with Finder-mounted volumes—to convince me to use it.

Recently, though, I discovered a product that did — and it’s called, Espionage.

Continue reading How to keep your data safe with Espionage for Mac OS X

Disable iCloud Keychain to fix icbaccountsd problems

Update 2014-03-12: OS X 10.9.2 seems to have fixed this. A few days ago, I re-enabled iCloud Keychain on my Mac, and since haven’t experienced these issues any longer.

Original problem…

For a while now, the CPU profile on my MacBook Air (running OS X 10.9.1) has looked like this—quiet, with periodic high-load bursts from a process called, ‘icbaccountsd’:

Looking in the Console.app, I found my logs flooded with messages from this process:

  • icbaccountsd: [ICBLocalDictionary getIdMapping:] Mapping Error detected
  • icbaccountsd: [ICBLocalDictionary discoverLocalIAAccounts:] Unknown high level account
  • icbaccountsd: [ICBSyncOperation mergeLocalChanges:] Account not found
  • icbaccountsd: [ICBSyncOperation mergeLocalChanges:] Looking for UUID: (null) from remote key

This article on the Apple Support Communities pointed to another article which hinted that the root problem is related to iCloud Keychain.

I disabled iCloud Keychain on the Mac, restarted, and have seen no further logged messages from icbaccountsd. A pity—as iCloud Keychain is a concept I’d found very useful.

iCloud syncing of Mail.app rules and Smart Mailboxes

Setting the context

I run Mail.app on an internet-hosted Mac mini, in order to provide server-side spam filtering and to pre-process my email based on an extensive set of rules.

Many of those rules involve the application of tags to messages, via the wonderful MailTags plugin.

On the MacBook Air that I use at home and at work, I have a simple set of four rules that apply account-specific colors to incoming messages. On the other hand, that MBA does contain an extensive set of Smart Mailboxes, most of which search for messages containing certain tags.

Problems archiving and deleting inbox messages

I’ve been having awful problems recently with Mail.app’s ability to delete and archive messages in my inbox. I’ll archive a message, only to see it return 10 minutes later. I’ll archive it again, and it’ll again return sometime later.

If I then view my inbox on an iPad, however, I’ll see four copies of that message in the inbox! If I then delete them all from the iPad, the pesky original message will then be removed from the inbox on the Mail.app.

This has been driving me crazy!

An aside—Why am I seeing four copies?

Mail.app on OS X has an annoying behavior of only showing you one copy of duplicate messages; so in fact, there are four copies of the message in the inbox, but Mail.app is only showing me one.

That’s how four messages somehow get created. The first time I archive the message, a second copy gets created. The second time I try to archive, two additional copies get created.

Disappearing Smart Mailboxes & Rules

In an attempt to fix this irritating behavior, I uninstalled the MailTags plugin, which is currently in a beta version for OS X Mavericks. Most probably MailTags has nothing to do with it, but since it’s beta software, I thought I’d give it a try.

After uninstalling MailTags on my MacBook Air and launching Mail.app, I observed my entire list of Smart Mailboxes simply disappear—replaced by a single Smart Mailbox, “Today”. Re-installing MailTags, all my Smart Mailboxes returned.

After uninstalling MailTags on the mini and launching Mail.app, I opened the preferences to find all my rules gone, and replaced with the four simple rules I have on my MacBook Air!

So, obviously there’s some syncing going on, and obviously MailTags is somehow involved as well.

What’s going on here?

I emailed the folks at MailTags, and learned that MailTags keeps its own local database of Smart Mailboxes and Rules, so that if you launch Mail without MailTags installed, no rules or Smart Mailboxes will get created that contain tag-related rules.

Ok, that explains why things change when MailTags is uninstalled.

What’s strange, though, is that before uninstalling MailTags, I’d removed all the tag-related criteria in my various Smart Folders, and still they all disappeared after uninstalling MailTags. So, evidently, once a Smart Mailbox (or rule) makes its way into the MT local database (because of tag-related criteria), it’s not moved to the local Apple database if you later remove those tag-related criteria.

iCloud’s role in the mess

How is syncing entering the picture?

I did some research and learned that if you have Documents & Data enabled in iCloud, any Mail.app rules and Smart Mailboxes you create will get synchronized across all your Macs.

That’s terribly undesirable behavior for someone like me, who specifically needs different sets of rules and Smart Folders running in Mail.app on each of my Macs. And according to this article the only way to stop this behavior is to disable Documents & Data in iCloud.

I was going to do just that, when I saw 1Password in the list of apps using Documents & Data—and that’s the one app that I need to sync data across all my apps. So unless I’m willing to move 1Password syncing back to Dropbox, it looks like I’ll be stuck with syncing of Mail rules and Smart Mailboxes.

Unless… I keep MailTags installed. Remember, when MailTags is running, Mail.app’s Smart Mailboxes and rules are created from MailTags local database, which is not synced.

But with MailTags running, I’ll not be able to figure out whether it’s playing a role in my inability to delete/archive certain messages from my inbox—which is where this all began. So I’m kinda stuck.

Pausing the Cloud

We have three Macs at home, which run an assortment of cloud-backup and synchronization apps—including Dropbox, CrashPlan, BitTorrent Sync and Arq.

Whenever any one, or combination of, these apps saturates the ADSL upload bandwidth, downloading then becomes very difficult. And that presents a big problem when trying to do things like watch content on iTunes, or have a conversation over Skype.

These apps all try to address the problem, but in collectively (and sometimes individually) ineffective ways:

  • They all provide for bandwidth limitation through configuration. That doesn’t help, though, when you have multiple apps trying to upload at once. And who really wants to limit upload bandwidth during the 95% of the day when it wouldn’t matter anyway, just to address the 5% of the time when it’s needed?
  • Some provide for automatic bandwidth reduction when detecting that the network—on the given computer—is busy. But this doesn’t help when you have the apps running on multiple machines on the network.
  • All provide for manual pausing. Only Arq provides a means of pausing through scripting (or via a command-line interface); the rest require manually clicking their menu-bar icons. Only Arq and CrashPlan allow you to specify the amount of time to pause; for the others, you have to remember to unpause them. And BitTorrent Sync’s menubar icon doesn’t even have a “paused” state (like Dropbox’s), which nearly ensures that an unfortunate event—like realizing the file you’re working on isn’t up to date—will be the thing that reminds you that it’s not running.

Although I’d love to find a single-interface, elegant solution to the problem, life right now would be much easier if:

  1. All such apps provided a means of scripted pausing. That way, using my iPhone while sitting on the couch, I could connect to Keyboard Maestro and run a macro that would pause every app on every machine on the network.
  2. All such apps provided timed pauses. That way, I wouldn’t have to remember to unpause them. And for those that don’t provide timed pauses, for goodness sake, at least provide a paused state of your menu-bar icon.

iPad is Disabled

A few weeks ago, as I reported here on the blog I opened my iPad mini and saw, “iPad is disabled”.

In this state, the iPad can’t be used until it’s connected and sync’d with iTunes on its rightful owner’s Mac; a major pain if you happen to be traveling with nothing but the iPad! But this behavior is a safety measure by design, as “disabled” is the mode into which an iPad goes after one too many incorrect unlock PIN codes have been entered.

Wondering what could cause this, my suspicion was that somehow my iPad was getting frequently switched on and off while being transported in my bag. Why did I suspect that? Well, I’ve also recently noticed that while running with my iPhone in a fanny pack, I’ll sometimes hear what appears to be telephone dialing coming through the headphones over the music. When that happens and I take the phone out of my pack, I’ll find it displaying the “emergency call” screen. So somehow, just the friction of the fanny pack material against the face of the iPhone, while running, causes the iPhone to switch on.

But what could cause the iPad in my bag to switch on in a similar way?

I’ve noticed that if you twist the Smart Cover of an iPad mini in the same plane as the device, you can hear it switching on and off. So it’s not only separation of the cover from the device that activates it; but also disalignment of the cover against the device as well. (I suppose there’s a magnet in the cover whose specific position relative to the device is monitoried.)

My iPad has a Smart Cover, and when transported I slide the whole thing into a neoprene ACME MADE iPad mini sleeve. So my suspicion was that somehow, the device inside the neoprene sleeve, while being transported in my admittely tightly-packed Tom Bihn Ristretto bag was causing the Smart Cover to twist just enough to repeatedly activate and deactive the device until the “iPad is Disabled” state was engaged.

But around the same time as this was happening, something else frequently happened as well. I’d sometimes open the iPad and find the brightness control enabled, and pulsing up and down as if the light sensor had gone mad. I thought that, with a bit of imagination, that might also be related to whatever was causing the disabled mode.

I decided to go see Apple, and they seemed convinced it was a hardware problem and immediately replaced the device.

I thought the problem was resolved…until yesterday, when I pulled my iPad mini out of its bag and sleeve, opened the cover to once again find, “iPad is disabled”.

So now I’m back to the theory that this is being caused by twisting action on the Smart Cover, somehow happening when my iPad is being transported in its sleeve and bag.

I could try disabling the Auto-Lock feature. Having to manually press the button to turn it on wouldn’t be to bad. What’s bad, though, is the muscle-memory I have related to the action of just closing the cover to switch the device off. I’m pretty sure if I disabled Auto-Lock, I’d often close the cover, and then return later to find the battery completely depleted.

And that’s where are today—still a mystery. Hopefully somebody with a solution will stumble across this article!

Fixed — Daylite can’t connect to server after Mavericks upgrade

I run Daylite Server on an internet-connect Mac mini, and after upgrading to Mavericks (and OS X Mavericks Server) neither Daylite (running on my MacBook Air) nor Daylite Touch (running on my iOS devices) could connect to the server.

I noticed that if I disabled the firewall on the server, Daylite could then successfully connect. I inspected the server’s Firewall Options, and saw “Allow Incoming Connections” green on the Daylite Server Admin app, as well as the handful of Daylite-related server daemons.

I tried deleting those entries from the firewall and restarting the Daylite Server—hoping to see the familiar “Do you want to allow incoming connections?…” dialogs. But after restarting the Daylite Server those dialogs didn’t appear, and I still couldn’t connect.

As a last resort, I tried restarting the mini itself. Upon restart (and upon reconnecting via Screen Sharing), I finally saw the handful of Daylite daemon-related “Do you want to allow incoming connections?…” dialogs, and I confirmed them all. After that, Daylite could then successfully connect.

So my suspicion is that the first time the mini started after the Mavericks update, those dialogs appeared, but since I wasn’t connected to confirm them, they were declined by the OS. Which, if true, is strange, because there’s an option in the firewall that’s enabled, which should automatically allow incoming connections from “signed” apps. Could it be that Daylite Server, or some of its daemons are unsigned?

Anyway, problem now results, and I just wanted to post these notes for the benefit of anybody else that runs into this.

FX Photo Studio has neither auto-enhance nor good customer support

In my search for a lightweight app to satisfy my basic photo enhancement needs, I stumbled across FX Photo Studio in the Mac App Store, I wrote the developer—”MacPhun”—to confirm whether the app does the two things I need:

  1. Cropping
  2. Auto-enhancing

A reply soon came in from “Kyle”:

Hi Matt, FX Photo Studio is an app with a very large collection of high quality photo effects created in cooperation with pro photographers and graphic designers. It has both Cropping and Auto-enhancing features in it. There is a trial version if you are still hesitating [url].

Regards, Kyle. Stay awesome! MacPhun Software Support Team

I always find it irritating to receive boilerplate text—I didn’t ask about their cooperation with “pro photographers and graphic designers”—but hey, we’re looking good; he confirms it does cropping and auto-enhancing.

So I downloaded the trial version he linked to and launched it. Uh oh—there’s no way to get past the activation screen. Evidently he sent me the wrong version.

I was going to email Kyle about that, but thinking that the app’s only $9.99 in the App Store and since he did confirm it does what I need, I went ahead and bought it…

…only to discover that I can’t find any auto-enhance functionality. Time for another email to Kyle:

Hi Kyle. I downloaded the trial version, but couldn’t get past the activation screen. Being in kind of a hurry, I just purchased FX Photo Studio from the App Store. I’ve found cropping, but I can’t find auto-enhance. Could you please perhaps let me know where that can be found? Thanks so much!

…to which Kyle replied…

Unfortunately, you may only do this manually in your version of FX Photo Studio.

FX Photo Studio and FX Photo Studio PRO versions have different number of options FX Photo Studio lets you manually adjust Exposure, Brightness, Saturation, Contrast and Hue FX Photo Studio PRO includes the following adjustable parameters Brightness and Color Tab open a sub-category to adjust Exposure, Brightness, Saturation, Contrast, Temperature, Hue and Color Balance (Red, Green, Blue) Levels Tool allows moving and stretching the brightness levels of an image histogram. It has the power to adjust brightness, contrast, and tonal range by specifying the location of complete black, complete white, and mid-tones in a histogram. Sharpen and Denoise tools. Sharpen increases contrast along edges to increase apparent sharpness of the image and Denoise tool is used to eliminate the noise from the pictures. Shadows and Highlights adjusters help to fix pictures, taken in low light.

Regards, Kyle. Stay awesome! MacPhun Software Support Team

Sigh. What does he mean by “my version”—maybe that auto-enhance is only available in the “PRO” version of his app? If so, why doesn’t he just say that. And why the boilerplate bomb!

So I wrote back…

Hi Kyle. Rather than copying and pasting some text (I didn’t ask for a full list of manually adjustable parameters), can you just clarify which version of your software contains an “auto” enhance feature, i.e. which automatically enhances the images without having to manually adjust anything? Thanks, Matt

…to which I got the almost expected reply:

Hi Matt, Sorry for the inconvenience! I might have got your question wrong. Right now “Auto-enhance” feature is not available. We plan to add it in the future releases.

Regards, Kyle. Stay awesome! MacPhun Software Support Team

So he claims to have misunderstood what I meant by “auto-enhance”, although it is something he’s got planned for a future release. Thanks—you “stay awesome” too, Kyle.

So now it’s off to the Mac App Store, to figure out how to request a refund.

Receiving email for virtual users in OS X Server 10.8

I receive my own email on a Mac running OS X Server 10.8, and just resolved a problem related to the creation of a second email user on that machine.

Let’s call the domain on which I receive mail on that machine, mydomain.com, which is completely different than the machine’s host name, which we’ll call, mymac.com. (The machine knows to receive email on mydomain.com since I added that domain in the Mail settings using the Server.app.)

This afternoon, I wanted to move my wife’s email to that machine as well.

Using Server.app, I created a new “services only” user, user2, and then setup her Mail.app with a new IMAP account pointing to [email protected]. That worked fine; Mail.app could login, and successfully manage IMAP folders.

The problem — The problem I ran into is that the Mac would not receive email on the address, [email protected]; it rejected all incoming messages with the error, “User unknown in virtual alias table”.

The solution — Thanks to this artice, I discovered that to setup a new mail account in OS X Server, it’s not enough to just create the user account, user2. You also have to right-click on the user name in the Users panel, and access the Advanced Options… where you’ll find an Aliases field, in which you have to enter the specific email address(es) on which you want that user to receive email. In my case, this was [email protected].

With that in place, the Mac then successfully began receiving mail.

Weekend at the computer—Dropbox, BitTorrent Sync and unencryptable drives

The recent news about the NSA’s access to the data hosted with cloud providers got me re-thinking how I store and access my sensitive documents—and not only from the point of view of privacy, but also in terms of convenience.

Continue reading Weekend at the computer—Dropbox, BitTorrent Sync and unencryptable drives

How to move folders that are synced with BitTorrent Sync

BitTorrent Sync is an app/technology that allows multiple computers and devices to share synchronized folders.

On my computer, I setup a folder called BTFamily, and synced that to my wife’s and kids’s computers. It worked so well, that I later added a folder shared between just my wife and myself, called BTMain.

At this point, the home directory on my Mac contained:

  • BTFamily
  • BTMain

Thinking that I might end up with quite a few synced folders, I was hoping to move those two folders into a single top-level folder called BTSync.

  • BTSync
    • BTFamily
    • BTMain

This article in the BitTorrent forums explains how to do this:

  1. Copy the folder’s “Secret”
  2. Remove the folder from SyncApp
  3. Copy/move the entire folder contents to a new location
  4. Re-add the folder’s new location to SyncApp, using the secret you copied in Step 1

SyncApp will still re-index the folder, but it will then carry on sync’ing with the folders on the other devices you’d previously given the same key to. You won’t have to re-issue a new key to your 10 other people!

Looking for a simple, menubar-based todo list

At the end of each day, I go through my open tasks and identify the handful of todos that I plan to work on the next day. In addition, I also note any scheduled activities or appointments I have on the calendar.

I use Things as the central repository for all my tasks, and am very happy with it, but I’d love to find a menubar-based super simple task list to maintain this “daily list”.

It doesn’t need a hierarchy, it doesn’t need to sync with anything and it doesn’t need alerts. In fact, I’d prefer it not have any of that. It just needs to provide super-efficient editing of a list, the ability to open instantly with a keystroke, and the ability to display checked off items in strike-through (all, hopefully, in an elegant looking interface).

If such a utility existed, then each evening I’d update it with the next day’s tasks and appointments, and then I’d frequently refer to it throughout the day, without having to leaving the current app in which I’m working.

Update:

Looks like I’ve found a good candidate, Taskdeck.

Switched to Parallels and then back to VMWare

Update: Since publishing this article, VMWare reached out and resolved the situation in a way that made me very happy. Be sure to see the details about that at the end of the article.

In March of this year (2013), some colleagues of mine in Berlin called to ask if I could purchase a copy of VMWare Fusion for Mac for them, because the VMWare website would not allow them to purchase the software. Each time they’d try to make the purchase, they’d get an “authorization failed” error.

Continue reading Switched to Parallels and then back to VMWare

Discovered and fixed a huge CrashPlan log file

A couple of days ago, I discovered that my CrashPlan log (in /Library/Logs/CrashPlan/engine_output.log) had gotten huge—over 60GB. Googling, I found this article that describes how to increase CrashPlan’s memory. In cases where you have CrashPlan backing up millions of files, it can be necessary. After increasing the app’s memory, and deleting the log file, it has since remained at a more reasonable 1.5GB.

Here are the steps:

  1. Launch a terminal window

  2. Shutdown the crash plan daemon. You will be asked for your admin password. Go ahead and enter it here.

    sudo launchctl unload /library/launchdaemons/com.crashplan.engine.plist

  3. Edit the plist file with BBEdit:

    bbedit /library/launchdaemons/com.crashplan.engine.plist

  4. Find Xmx512m and change it to Xmx1024m. This will allocate 1024mb of memory instead of the default 512mb

  5. Save the file and quit BBEdit

  6. Relaunch the Crashplan daemon (corrected Apr 19th 2012)

    sudo launchctl load /library/launchdaemons/com.crashplan.engine.plist