Adding “Open With ►” Functionality to a Folder

If you right-click a file in the Finder, you are presented with a contextual menu, and the top 2 items are to “Open” the file or “Open With ►” with opens another sub menu off to the side with selections for different apps that the Finder thinks can handle that sort of file.

openwith.png

Folders are a little different.  They are the Finder’s bread & butter, yet the Finder only presents you with a single way to open it (in the Finder).

openfolder4.png

There are some apps which can open folders and do things with them, so it would be nice to be able to open a folder from the Finder in the app of our choice, just like we can do with files.

Well, there is a way we can do that, albeit with a little more movement of the cursor.  To do this, we’ll take advantage of a Finder feature known as services. Continue reading

Today’s Apple Feedback: Mission Control Doesn’t Handle its Most Frequent Use Case

Mission Control has vastly improved since 10.7, but it still lacks support for the most frequent use-case that was supported back in the days of 10.6.8 – the case where each desktop (space) was a separate project, whose work involved multiple windows from the same set of apps. The recent updates of macOS have consolidated much of the functionality and handled some of the complaints, such as allowing users to un-group application windows (which probably saved Mission Control from the trash bin). It’s actually very nice to have desktop selection and window selection in the same consolidated screen, but if you have multiple windows open in multiple apps and want to switch between say, a selection of 5 TextEdit windows and you have 5 Terminal windows, a few Preview windows, and image editor, a few browser windows, Messages, Slack, etc., and each of 6 desktops has pretty much the same layout, your options are:

  1. Choose among a sea of 30+ windows from all apps on the current desktop
  2. Choose among a sea of 30+ TextEdit windows from all desktops
  3. Hit command-backtick or shift-command-backtick an unknown number of times

You may deride the habit of working on a desktop with so many windows like this, but in my line of work, I find it quite necessary.  Let me walk you through a few examples.

Text Files: I’m a computational biologist.  I work with lots of sources of data, (usually ascii text), and switch back and forth frequently.  Seeing the format of the data is much faster and easier in terms of quickly identifying it than identifying it by filename, which is usually based off a root filename, thus all look very similar.  Thus efficient switching between data sources is much easier by having them open as separate windows.  Besides, TextEdit doesn’t have a tabbed interface.  Some text editors do, but I’ve tried many of them and they usually don’t support one of the many features of TextEdit I frequently use.  But I’m going off on a tangent here…

Terminal Windows: I’m usually running pipeline analyses, installing tools, testing commands, etc concurrently.  While Terminal does have a tabbed interface, again, it’s more efficient to see in an instant what is done and what’s not, to keep one history of commands in one context short (for reference later), to call up documentation to head/tail/cat huge files without forcing pipeline steps off the window buffer, or to test out commands without littering the history with stuff that errors out. I know colleagues who extol the virtues of screen and other utilities that break up a terminal window, but I don’t like those methods of window management because you cannot search the window buffer with a multi-line search, which I do frequently (I don’t see how other people get along without that ability, honestly).  And other terminal apps don’t support features like option-arrow and multi-line search.

Preview Windows: Since many of my projects involve code development, I’m frequently taking screen-caps and screen-recordings of bugs and using image editors to mockup proposed interfaces.  This inherently leads to multiple windows.

Even with these 3 apps and a smattering of other 1-window apps (Messages, Slack, a browser window or 2 – though I tend to average around 5, and a smattering of finder windows), switching between windows is a task that could be much more efficient if Mission Control’s “Application Windows” feature simply allowed you to limit the array of windows to only those on the current desktop (e.g. 5 windows) instead of dragging all windows from all desktops and also throwing recently open files to boot, resulting in 30+ open and recently opened windows from 6 projects.

Thus, “Application Windows” is pretty much a useless feature to me.  Aggregating all those windows, even those that aren’t even open, is a huge mess.  Thus, I’ve gotten used to switching between windows of the same app by using command-backtick or shift-command-backtick.  Mission Control is usually useless in this regard too, with the app windows being mixed among other app windows.  As such, I usually use Mission Control almost exclusively to change desktops/projects, yet in the most recent version of macOS (Sierra 10.12), the default Mission Control view minimizes the desktop thumbnails.  So the first thing I always have to do is hover to reveal the desktop thumbs, and additional step that was pointlessly added.  At the very least, give us a setting to always show the thumbnails!

Let’s move on to the inconsistencies of app switching.  Safari’s feature to reveal a downloaded file results in a Finder window can only live on 1 desktop.  And revealing a file when that window is not on the current desktop results in a disorienting behavior of switching to the Finder and the downloads folder is nowhere to be seen.

Switching to an app with no window on the current desktop results in different behavior depending on whether another desktop has a window open from that app, despite setting the system preference to not switch desktops when switching apps.  Take Safari for example.  If Safari doesn’t have any windows open anywhere, clicking Safari in the dock opens a new browser window.  Clicking Safari when there is no Safari window on the current desktop (but one exists on another desktop) does not open a new Safari window. Clicking Safari in the dock a second time switches to a random Safari window on another desktop (i.e. project – which I never want to do when clicking the dock).  Even clicking Safari once in the dock when Safari is currently the foremost app changes to a random desktop with a Safari window.  The point here is that Apple has trained us to click the Safari Dock icon to get a new window when none are currently open, and this goes against the desire to separate projects by desktop.  It’s very disruptive to swoop your project away when you accidentally click a dock icon whose app is already in front.  The Finder is the worst at this.  If you want to open a new Finder window when none are currently open, it’s way too easy to accidentally click the Finder icon in the dock when the Finder is already the foremost app and get your desktop pulled out from under you.  It’s gotten so I try to leave a little corner of the desktop visible all the time so I can switch to the Finder by clicking on it and seeing if there are current windows by typing command-backtick.  Command-tab is another workaround, but is less convenient when you have to hit tab 7 times to select the Finder. Besides, clicking the dock icon is the most convenient way to bring all of an app’s windows to the front.  Command-tab doesn’t do that and command-backtick only does it one-by-one.  The only other way to do it is switching apps any other way than the dock and then selecting Window->Bring all to front.

And speaking of switching apps & desktops, is it counter-intuitive to anyone else to change the foremost app when switching desktops via control-arrow? I frequently will get an email relating to a different project and bring up the finder to find a file related to the email, then realize I should switch to that project’s desktop, but when I do and hit command-n to get a new Finder window, I end up with a new sticky, or a new browser window, or whatever random app happened to be foremost the last time I was on that desktop the previous day (I usually work on one or two projects a day).  I would much prefer to not switch apps when I switch desktops.  That interrupts the workflow.

Another thing about using the same apps on multiple desktops is that when you restart your computer, it groups all those windows from the same app and multiple projects all on the same desktop.  If Apple would just restore my desktops the way I had arranged them, I might actually shut my computer down more often.  It’s a hassle to have to layout all the open windows across (on average) 6 active projects, including all the Stickies I keep with project names in a large font to identify project desktops in Mission Control.

Speaking of which… Mission Control doesn’t allow you to name your desktops, which would be a huge convenience.  Sure, you could change the desktop picture to identify them, perhaps include the name in the image, but that’s a clunky workaround that doesn’t work when the image is covered up by windows.  The only trick I have to getting around this limitation is to hide a sticky under the dock with a huge font that names the desktop for the project it represents.

There’s so much here that it’s hard to distill this into a concise piece of Apple Feedback, so I chose the most easy and simple fixes that could really improve the multiple desktop experience in the feedback I sent to Apple today:

Improve Mission Control to better handle the use case where every desktop is a project consisting of windows from the same set of apps

Mission control would be much more efficient & useful to me if it had settings that existed to handle my use case where each desktop is a project that uses the same set of apps (e.g. TextEdit, Safari, Preview…). Here are improvements that would accommodate that case: 1. Allow desktops to be named (i.e. project name) so I don’t have to have a possibly covered-up sticky whose text is large enough to be read in MC. 2. Create a setting to always show the desktops immediately when launching (as switching projects is more frequent an occurrence in MC than switching windows) which you can do readily without MC). 3. Allow “application windows” to only show windows from the current desktop (since I always want to pick 1 of 5 windows, as opposed to 1 of 30 that are open in all 6 open projects).

I know that my style of work (using windows instead of tabs and using the same apps on multiple desktops) isn’t how other people might choose to work, but isn’t the Mac experience supposed to be personal? I feel like ever since Steve Jobs died, Apple has been slowly eroding and streamlining features to gear it toward the lowest common denominator of user and is leaving the professional Mac user out in the cold.  This is just one category of complaints in a long litany of dropped features and support that demonstrates how Apple’s focus abandons the professionals that utilize their products. Ever since 10.6, I’ve noted so many dropped features, I started keeping a list. The rate of growth of that list has been slowing down in the latest major updates, but still, the features that keep going by the wayside tend to be from those that power users use to achieve high productivity.

Arctic Blast Ice-Jam Warning System

Last winter, a house that I rent out sustained 11 thousand dollars worth of water damage because an ice jam formed above the gutters.  I learned a lot about how this happens during the ordeal.  Heat from the house melts the bottom layer of ice & snow on the roof.  The water from the melting trickles down the roof, but once it gets to the eaves (away from the heat because the eaves are not enclosed and extend away from the house), it freezes and forms a dam.  Since the water has nowhere to go, it backs up from the eaves between the roof and the ice above it and gets under the slates/shingles.

My tenants didn’t notice the water coming in in the dining room through the ceiling and walls until the damage had started showing on the first floor.  Once I was alerted, I hired a company to come and remove the ice dam above the gutters.

The conditions needed for an ice dam/jam to form on the roof are 4 or 5 days where the temperature never gets above freezing and ice or snow has accumulated on the roof.  Dealing with the ice jam was such an ordeal that this year, I wanted to figure out a way (or ways) to get an early warning that an ice jam could be forming.

I had an idea to use a moisture sensor in the windows that would sound an alarm if water made contact with the sensor.  There was one window in particular where the water built up the most, so I bought this cheap moisture sensor (only $12) and installed it between the window and the storm window:

moisturesensor

However, by the time it goes off, a good bit of damage will have occurred already.  That makes it a good backup, but I needed something predictive.  Long ago, I had tried looking into the possibility of getting weather alerts when the temperature stays below freezing for multiple days, however after installing tons of apps and even looking into IFTTT‘s weather channel, the best alerts I could find were when the temperature went below freezing on a single day.  So today I finally sat down and rolled my own way to get an alert after 4 or more days of freezing temperatures in a row.

The basic idea was, I wanted to use IFTTT‘s weather channel to add tomorrow’s high temperature from the forecast to a google spreadsheet every day.  I then would create a google script attached to the spreadsheet to email me when the last 4 entries in the spreadsheet all had values below 33 degrees (F).  The script can be set to be triggered whenever a new row is added.

The first hurdle I faced was that IFTTT only lets you set 1 location for weather alerts and I already have my location set to where I live (not where the house I rent out is) and I already have weather recipes that rely on my location (e.g. when the pollen count gets high, turn on my air filter).  If I was to change the location, all my recipes would use the new location, which made no sense.  So I posted to the reddit IFTTT board and found out from the suggestions there that you can create multiple IFTTT accounts connected to the same gmail address by using gmail’s magical “+” feature.  So if your gmail address is johndoe@gmail.com, you can register an alternate IFTTT account using johndoe+ifttt1@gmail.com.  Note, after you create the account, you’ll need to go into your account settings and change your default username from “johndoe+ifttt1” to something like “johndoeifttt1” because IFTTT complains about the plus sign.

Next, you must create an IFTTT recipe (now called an “Applet”).  The trigger will be the weather channel’s “tomorrow’s forecast” trigger and the action will be to add a row to a google drive spreadsheet.  The settings when you’re done should look like this:

temptospreadsheet.png

Note, you might need to add the Google Drive and WU Weather channels (now called “Services”) to your IFTTT account.  Make sure to go into the weather channel’s settings to ensure it’s set to the correct location and that you’ve given IFTTT‘s google drive channel permission to access your google drive.

Next, you’ll need to create a google drive folder named “IFTTT” (or whatever you entered in the recipe above).  In there, create a spreadsheet with the name you used for the IFTTT recipe.

You then need to add a script to the spreadsheet.  In the google docs tool bar, select “Tools->Script Editor…”.  Replace the code there with the following code, but be sure to enter your email address you want to receive the ice jam warnings.  Click the image to access copyable code on pastebin:

freezingmonitor.png

Save the script, click the “Select function” drop-down list, select the “createSpreadsheetChangeTrigger”, and click the play button.

You can now close the script editor window and test out your spreadsheet by entering temperatures in the first column.  I entered “22”, 4 times to test it out.  2 things should happen upon entering the 4th value:

  1. You receive the email alert
  2. Column 3 gets the value “ICE JAM WARNING!”

Now, when IFTTT adds a row, if it’s the fourth or more day in a row of freezing temperatures, you’ll get an email warning that maybe you should check for an ice jam!

Today’s Apple Feedback: Recalcitrant Shared Calendar Notifications

There seems to be no end to the efforts to quell unwanted event notifications on the iPhone. Don’t get me wrong, I love well timed (and desired) notifications, but Apple has fallen far short of the mark when it comes to taming notifications, especially those from shared calendars. This bug I’ve found is particularly insidious. My wife shares her calendar with me and despite having it set to “Ignore alerts”:

ignore-alerts

I still get notifications about her events on my iPhone:

alert-on-phone

Incidentally, there’s no way to set “Ignore alerts” on the iPhone.  You have to do it on a computer or perhaps on the iCloud website.

The kicker here is that I don’t think I’m actually getting notifications that she has explicitly set and I am not getting these notifications on my computer:

no-imac-notif.png

The event in question, i.e. the notification which finally pushed me over the edge to look into what the heck was going on here is one my wife has on her calendar for tomorrow.  Note also here that my computer shows that the event has no notification/alert set:

imac-calendar-event-no-notif

And the event is on her calendar that is shared with me, as seen both in my phone’s calendar settings:

cal-shared-with-me

and in the google calendar sync settings:

gcal-sync

And even though my computer shows that the event has no alert set, unbelievably, the same event on my iPhone does show an alert:

def-alert-added

I couldn’t figure out why my iPhone had an alert set for the same event for which my calendar on my computer showed that there was no alert set, until I realized that the time of the alert was the default time I’d set on my iPhone:

def-alert-setting

So what this means is that if I sync a google calendar shared with me on my iPhone, even if I set the calendar to “Ignore alerts”, and as long as I have a default alert setting for my calendars on my iPhone, I will get my default alert from those shared calendars’ newly created events.  Phew! That’s a very specific loophole in calendars in iOS, hence Today’s Apple Feedback:

My default alerts are being added to events created by others on my synced version of their calendars shared with me

I could not figure out why I was getting alerts on my iPhone for events on calendars shared with me and I think I figured it out. The default alert setting on my iPhone is adding alerts to events created by the sharer ONLY ON MY IPHONE’S SYNCED COPY of their calendar. My computers show that the event has no alert set, but my phone shows my default alert for newly created events on that event and the alert goes off despite “ignore alerts” being checked for that calendar. I have catalogued all the evidence of this in a series of screenshots from both the iPhone and my iMac. The event for which I got the latest notification was “Jeffrey will call”, which is an event my wife created on HER calendar. See linked images.

I’m still running iOS 9.3.4 on my iPhone, so I hope that my next update will address this issue, but somehow I doubt it. I will post an update after the iOS update. I’ve been holding off on the next iOS update because I was given a very specific and lengthy set of instructions from Applecare on performing the next update to address a slew of other issues I’ve had since I buying my new iPhone 6S early this year (2016), mainly the fact that Siri initially doesn’t work after plugging in a pair of headphones (an extant problem right out of the box), but that’s a whole other blog post. Note, my version of OS X in the screenshots is OS X 10.12.1 (Sierra).

Automatically create iOS reminders based on events added to a subscribed google calendar

My wife just got a new job which has an irregular schedule and long hours.  Unfortunately, I’d gotten accustomed to the fact that she always took care of feeding the cat and scooping her litter before I ever even thought about it.  Now, a few weeks into this new job, I’m getting myself in trouble when I forget to feed the cat or scoop the litter.  I imagine I’ll eventually get used to it, but until I do, I devised a clever way to get automatic reminders without me having to ask my wife her schedule every week and manually create the reminders, which means I’ll be less likely to forget.  Hopefully, I’ll start to get used to the routine and I’ll be able to delete this reminder scheme, but until then, here’s how I managed to do it.

Continue reading

Dictate iPhone to Mac

iphonetomac.png

As you may know if you’ve read through this blog, I use a Mac Mini as a part of my entertainment system.  I mostly control it using a Logitech MX Air mouse (think Wii remote for your mac).  Even though I have both a wired and wireless keyboard close by, most times, I’m content to just start up the virtual keyboard to enter short searches into Netflix or Amazon Prime.  Lazy?  Perhaps.  But they didn’t make couches for pro-active & efficient go-getters.

I’d seen those commercials for things like Apple TV and other such devices where you can just speak into your remote and ask to search for specific movies & TV shows.  I’ve also played around with dictation on my laptop, but to my dismay, I discovered that my Mac Mini doesn’t have a built-in microphone.  So I started looking online for either a wireless microphone or an app that would allow me to dictate through my iPhone.  I ended up discovering that wireless mics are bulky & expensive, and the one iPhone app that did what I wanted (Air Dictate) was no longer available on the App Store, so I set out to create a cheap hacky alternative.

I realized that I already had the tools at my disposal to make this happen, and it consists of these components:

  1. IFTTT‘s SMS & Dropbox channels
  2. A Dropbox folder
  3. An iPhone/iPad with Siri (or the Messages iPhone app)
  4. A Folder Action
  5. A Contact named something like “Mac Mini” with IFTTT’s SMS number

I will describe what I did here so you can do this too.  The end result will allow you to activate Siri on your phone and say something like:

Tell my Mac Mini Breaking Bad hashtag paste

and “Breaking Bad” will be pasted wherever the cursor currently is on your screen.

Continue reading

Today’s Apple Feedback: Siri on the iPhone 6S is an Unreliable Mess

My old iPhone 4S had some issues, but for the most part, Siri was fairly reliable, aside from occasional mitigable issues and somewhat common misinterpretations of what I’d said.  I’m one of those who holds onto a phone longer than the typical Apple fanatic (and yes, I’m still an Apple consumer, albeit these days, grudgingly). It came time this year for me to do my usual “every second model” upgrade to the iPhone 6S. I’ve had a number of months to run it through it’s paces, and I must say, Siri on my old iPhone 4S was way more reliable, especially when it comes to making calls – by a long shot. I’ve googled multiple issues and been on a bunch of Apple Support calls to rectify as-yet unrectified issues that are a constant daily nuisance. This morning, after having spent time talking with Apple support yesterday evening, I finally organized all the issues I’ve had going on in one place. I submitted the worst of these issues in Today’s Apple Feedback form:

Multiple issues: Apple, how did you mess Siri up so badly on the iPhone 6s (iOS 9.3.4)?

I’ve called support multiple times about these frequent/constant issues:

1. Randomly cannot initiate Siri when headphones connected.
2. Reproducibly cannot activate Siri via Apple Headphones (tried 2 pairs, 1 new) or the home button when the phone is in a pocket of my bag against my leather wallet. Holding the wallet away from the phone allows Siri to be initiated. Then:
3. Upon removing phone from bag, Siri will initiate but cannot hear me. Unplugging & replugging headphones is a workaround. Then:
4. Siri frequently responds to “Call my mom, home” with “Which phone number for [me]” the 1st 2 times I try – third time calls my mom.
5. Siri frequently initiates (multiple times per day) from a fraction of a second home button press.

I never had these issues with my 4S.

And that’s not even all the issues…

Continue reading