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).

Today’s Apple Feedback:Enormous Netflix Controls

I bought a new Mac Mini in February of 2016 because my old 2010 Mac Mini had various growing issues with streaming video, like Netflix and Amazon Prime. Everything streams much more smoothly now, but there’s one minor annoyance with streaming Netflix content. The controls are so large that they effectively obscure up to half of the window and certain elements run off the top of the reasonably sized window.  Hence, today’s Apple feedback:

Netflix controls do not render correctly in Safari in Mac OS X 10.11.3

Netflix controls displayed during playback do not render properly. They are so big, that they extend past the top of the window. Firefox does not do this on the same computer (a brand new Mac Mini purchased 2/2016).

Background: I used migration assistant from a 2010 Mac Mini maxed out at 10.7.5. I had to re-install the OS when the ethernet port stopped working (case ID 1057375939). I have the resolution set at 720p (in order to increase the size of the text on the screen) using a brand new Magnavox LCD TV connected directly using HDMI. I also have the size of the cursor increased. Changing text size in Safari has no effect. Screen caps:

Volume control off top of window:

volofftop

Preview Image off top of window:

progbarimageofftop

I googled this issue for hours this morning and I cannot find anyone having the same issue.  Perhaps people aren’t hooking their Macs up to newer TV’s?  Perhaps this is an issue from using migration assistant?  If anyone knows how to fix this issue with Safari’s rendering of Netflix controls, please comment!

Today’s Apple Feedback: Bad Soft-Wrap of Tabbed Lines in rtfd Files [TextEdit.app]

Finally, I figured it out!  For as far back as I can remember, I’ve had issues with pasting tab-delimited lines into .rtfd files I use for project notes. I like .rtfd format because it allows you to intersperse images & text. The problem is that even short lines with a couple tabs get wrapped way before the end of the window. Other files of mine don’t have this issue and I could not figure out the pattern. Well, today I was annoyed enough to figure it out. I don’t have a fix, but since I figured out the behavior such that the issue can be reproduced, hopefully that will be enough for Apple to issue a fix, given Today’s Apple Feedback:

I use .rtfd format in TextEdit.app so that I have images with my notes. I have the prefs set to wrap to window and I’ve had a problem w/ lines w/ tabs wrapping before the end of the window for a long time. It annoyed me enough today to figure it out. After you drag an image into the file (creating a .rtfd file), every line of a certain length (containing tabs) gets wrapped such that the apparent 1st character on the next line is the wrapped tab. This screen-cap is of some lines of text w/ a couple tabs that was originally a .rtf file. I dragged an image in and then pasted the same text below it. Look at how the soft-wrap is different above an below the image:

textedit_erroneous_wrap_at_tab_in_rtfd_files

Apparently, after you’ve added an image to a rtfd file in TextEdit.app, every tab-delimited line that’s pasted in (anywhere in the file) gets prematurely soft-wrapped. Tabbed lines pasted in before the image was inserted remain correctly wrapped.

So if you’ve had this same problem, here’s a way to work around it. Just create a new .rtf file and paste all your text (with formatting) into it.  Then, insert all your images. It’s kind of a lame work-around, so if this issue is important to you, you might be better off using another text editor. For me however, I really like all the subtle features of TextEdit.app and will endure minor eccentricities such as this one.

Today’s Apple Feedback: More Rules for Smart Playlists’ Playlists

The other day, when I was preparing my DJ set for a Swing Dance, I went to tweak one of my smart playlists that I maintain to help me keep from re-DJ’ing a song that I’ve recently DJ’d.  The smart playlist is called “Last Few Playlists”, and it contains all the songs from playlists that I’ve recently DJ’d.  It is populated using a series of  “Playlist is…” rules.  When I sit down to prepare my set, I update that smart playlist to be sure it contains about the last 4 sets I have recently DJ’d.  Then I have a series of smart playlists I use to create the set which include a rule to ensure that any song is not in the “Last Few Playlists” playlist.

Well, while I was editing the “Last Few Playlists” playlist, I accidentally started the new rule off with “Name…” instead of “Playlist…” and I didn’t realize the mistake and looked at the next select list which contained things like “matches/contains/etc” and I was like “Wow! a new feature! Now I don’t need to manually maintain this smart playlist anymore!”  But then I noticed my mistake and discovered that the playlist rule only includes “is” and “is not”.  So, that prompted Today’s Apple Feedback about iTunes’ smart playlists:

I DJ at swing dances a lot & I don’t want to repeat a song that I’ve played in the past month or so, so I have some smart playlists to help me with this. 1 of those playlists is called “Last Few Playlists” which contains rules that I manually maintain, like “Playlist is swingdance1”, “Playlist is swingdance2”, … I realized that I wouldn’t need to remember to manually maintain this list if you add a few new rule abilities for playlists, which I will give you some examples of:

Playlist name matches/contains ____ limited to __#__ selected by (e.g.) most recently created
Playlist created on/before/after/between ____ limited to __#__ selected by (e.g.) most recently created

If you added these abilities, I would not need to tweak any smart playlists whenever I am preparing my DJ set.

If Apple adds this feature, I could make my “Last Few Playlists” playlist always contain, for example, the last 4 swing dance playlists I have created.  I’m geeking out at the possibilities.  I love automation!

Turn your Computer into an iBeacon and Make it Trigger Reminders, Part 2

I’m one of those that does not normally restart my computer, however lately, the power in my office has been going out on a somewhat regular basis, which got me looking into finally automating the starting up of my iBeacon broadcasting.  I had initially created a very quick automator app long ago by recording the 3 clicks it took to start the app, clcik the broadcast button, and then hide the window, but I found that, while it worked when I manually ran it, it always failed upon login (when set as a login item) with this error:

I was able to reproduce this error simply by messing around with (clicking) the mouse as the workflow ran, so I figured that had to have been the problem.  Usually when I log in, I get asked for passwords and such and am rearranging windows on desktop spaces they’d been pulled from as a result of the logout.  I sent a complaint via apple feedback regarding this issue:

Automator won’t run properly as a Login Item

I created an Automator “app” called “Toggle iBeacon Broadcasting”. I created it using the record feature. All it does is click on the BeaconOSX app in my dock, click the “startBroadcasting” Button, and finally, clicks the yellow hide button of the window. I put it as a Login Item so that my Mac would always be broadcasting an iBeacon signal. However, every time I log in, I get this uninformative error: [The action “Watch Me Do (Toggle iBeacon Broadcasting)” encountered an error. Check the actionʼs properties and try running the workflow again.] And every time I run it there-after, it runs fine. However, I was able to reproduce the error by clicking the mouse while it ran, so perhaps automator should detect stuff like that and pause with a dialog asking if it should proceed? Just a thought.

So since the recorded automator workflow had problems with mouse interference, I decided to try an applescript. The first problem I encountered was obtaining the app interface (and you’ll see this ends up being a recurring issue on multiple fronts).  I have a handy applescript called getAppInterface that elucidates an app’s “accessibility” features, and the applescript language necessary to get to them, but I got an error from the system saying that Fastscripts (the menu-bar app I use to run scripts) didn’t have “assistive access” (despite it being in there already):

Error Number:System Events got an error: FastScripts is not allowed assistive access.
-25211

I’ve encountered this issue before.  Apparently, if you edit a script or an app you’re developing, assistive access must be refreshed.  So you have to remove and re-add it from the security preferences pane.  More on enabling assistive access below, however something about Fastscripts must be changing, and I didn’t want to get into it.  Running the script from applescript however worked and I was able to get the handles I needed to write the applescript that will start up the app, start broadcasting, and hide the window.  It’s a pretty simple script:

tell application “BeaconOSX” to activate

tell application “System Events”

tell application process “BeaconOSX”

try

click button “Start Broadcasting iBeacon” of window “BeaconOSX”

on error

try

click button “startAdvertising” of window “BeaconOSX”

end try

end try

click button 3 of window “BeaconOSX”

end tell

end tell

Note that the BeaconOSX app, as written, sometimes changes the button text of the start broadcasting button, so we try both if the first attempt does not work.  If the button text is “Stop Advertising”, nothing will happen.

I added the applescript directly to my login items, but upon testing, I eventually concluded that the script was either not running or quietly failing.  Regardless, I suspected that the accessibility security features could be again interfering with the functioning of the script and that perhaps Apple just had not built in a way to allow individual scripts assistive access.  I didn’t want to deal directly with that, so I sent Apple another piece of feedback:

Too many hoops for login item scripts to get it to work

I had an automator-created recording that was not working (for unrelated reasons), so I wrote an applescript to start an app called BeaconOSX & click it’s broadcast button. The script runs fine manually, but adding it to my login items results in it quietly failing, after which the BeaconOSX window weirdly disappears. (Sometimes I can glimpse it in Mission Control by right-clicking the app in the dock & selecting show All Windows, but it promptly disappears for good once I select it.) Then I tried running it embedded in an automator app set as a login item. Finally I got asked to grant the app access in the security prefs upon login, after which, it worked, albeit very slowly (perhaps 20 seconds after login). The applescript should have worked without the automator wrapper.

Note, the feedback mentions another oddity: the disappearing of the iBeacon window.  I do not believe this had anything to do with iBeacon itself, but rather the windowing system losing track of the window – perhaps because of the assistive access issue.  Again, I didn’t want to deal with it – I just wanted something that would allow me to start up the broadcast reliably.

To get around this, as I alluded to in the feedback, I returned to Automator to embed the script in an app for which I could enable assistive access.  Here’s how to do it:

Create a new automator application (not the default workflow) and drag the “Run Applescript” action from the main library to the pane on the right side and in between the “on run” / “end run” lines, replace whatever’s there with the above applescript.  Save that as “StartiBeacon.app” and then add the app to your login items (System Preferences -> Users & Groups -> Current User (left pane) -> Login Items (tab)) by dragging it into the list of login items.

Then go to System Preferences -> Security & Privacy -> Privacy (tab) -> Accessibility (left pane)and add your app there as well.  If you do not perform this step, the next time you log in, you will get the following error/notification combo:

Clicking the “Open System Preferences” button will bring you to this preference pane:

All you have to do is check the checkbox next to the StartiBeacon app listed there. Though you may need to unlock the preferences pane by clicking the lock icon in the lower lefthand corner.  If you do that, you’ll be asked for your password:

After doing this, the next time you log in, your beacon should start broadcasting automatically, though I noted that it didn’t run for me until about 10-20 seconds after logging in.

This post is more of a description of what I went through to get this all to work.  if there is a desire for a simple step-by-step how-to, please request it in the comments.  I still have not managed to figure out how to tweak the iBeacon settings to get notifications at the expected distance, though I will say that one thing I’ve learned that is non-intuitive is that the higher you set the power, the better the accuracy of the distance measure.  I believe, if I recall correctly, there’s a default distance that’s pretty short, though I’m still very vague on the details.  That’ll be part 3 if I ever get it refined to go off just as I get into my office.

Today’s Apple Feedback: Command-triple-click in Terminal.app deselects a word

I know I’m in the minority here, but I love Terminal.app. It’s my favorite terminal to work in for a variety of reasons – most of them being features that other terminal apps lack, such as the ability to search like you can in a browser window – including multi-line searches. I cannot live without that functionality. There’s also option-clicking to move the cursor and option-click-drag to select text vertically. I could write a whole blog entry that details all the reasons I like Terminal.app, but right now, I’m going to make note of a minor, yet extremely common annoyance I endure when working in Terminal. It’s a somewhat recent bug, perhaps it came about with 10.9, but I’m not sure.

As I work, I keep notes on what I’ve done. (Terminal saves your history, even through restarts, but having a file of just the significant steps and descriptions of what I was trying to do is invaluable later on.) I frequently triple-click to select an entire command-line, hover up a few lines, and then command-triple-click to additionally select another line. I also do this a lot on Text Edit.app, but the two apps behave differently, making slightly different selections.  Text Edit behaves as you would expect, resulting in multiple full lines selected, but Terminal deselects the word you were hovering over, when you select subsequent lines using command-triple-click!:

bloggif_5501b77a1e186

As you can see in the example moving gif above, the letters “cmd” get deselected. I usually work around this issue by pausing a second, and then double-clicking the deselected word to re-select it.

I am in between projects today and just had to do this work-around quite a bit, so I thought I would submit some quick feedback to Apple:

This bug didn’t used to exist, but has been around for at least a year now. When you command-triple-click a line of text in Terminal.app, the line gets selected, but the word that your mouse was over gets deselected. This behavior is inconsistent with what happens in Text Edit.app, where doing the same thing selects the entire line including the word you were hovering over. I created a screen-recording to document this annoying bug, demonstrating it in both a Terminal window and a Text Edit window (attached).

Please fix this so that Temrinal.app’s text selection behaves the way Text Edit.app’s text selection does. It will greatly help me when trying to keep notes on my work.

Today’s Apple Feedback: Siri’s clumsy podcast handling

The best place to podcast, in my opinion, is while you’re driving on a long trip. Podcasts keep me awake and alert when I am traveling between radio station coverage areas. But tapping through the podcast app is a no-no while driving. I recently was on a solitary road trip.  I didn’t have my wife there to play the podcasts as she usually does, so in steps Siri to help me control my podcasts. Here are some of the frustrating difficulties I ran into along the way. This is Today’s Apple Feedback:

I was listening to podcasts during a drive…

1. Siri forgot I have the latest podcast app installed after having paused playback:
noappheresapp

2. Siri hears me say “Play the Radio Lab podcast” and then tells me she can’t find a podcast named “Lab”. I must say “Play podcast quote radio lab end quote” to get it to work.
3. If you ask Siri to play a podcast that is unsubscribed or has a red ‘e’ on the only listed episodes, Siri says “Playing podcast…” and never plays anything without catching the error.
4. If I play a podcast, it goes through aux, but after using BT, podcasts end up on the headset and can only switch back by replugging aux wire.

1. As you can see in my feedback, I was happily listening to podcasts which Siri was kind enough to start for me. But at some point, I had asked Siri to pause playback, and the next time I asked Siri to resume, or play the podcast again, Siri informed me that I don’t have the latest podcast app installed! I thought, “Wow, they issued a required update in the past 15 minutes since I last got Siri to play a podcast?!”, so I looked on the app store update page and there was no update there for the podcast app.  I then searched for the podcast app, and it showed that it was installed and up to date!  I don’t know what Siri was complaining about, so I just had to resort to initiating podcasts via touch.

2. Apparently, the word “Radio” is, what we call in the programming profession, a “reserved word”. Siri assumes that “Radio” is not a part of the title of a podcast. I tried numerous times to get Siri to play the Radio Lab podcast before attempting the quote-trick.  She had correctly heard me say “Radio Lab”, but refuse to search for a podcast named anything other than “Lab”.

3. Usually, when we’re on a trip, we use my wife’s iPhone to play podcasts, so a number of my subscribed podcasts had gone stale and stopped updating.  Some had an orange circular badge with a white exclamation point in the upper right corner of the podcast icon. Other podcasts’ old episodes had little red squares on them with a white ‘E’:

photo

It seems that because of one or both of these issues, the podcasts would not play without manually touching the cloud/download icon.  However, Siri happily said “Playing podcast…” without informing me of any error.  At first, I thought that it was an issue of the audio being routed through the wrong device (headset versus headphones port), but upon asking, Siri informed me that no podcast was currently playing. I did note that using the download button and then tapping an episode to play it would initiate a buffering period, perhaps even a minute long, but I ruled out that as what was happening when using Siri to play an episode by waiting several minutes for an episode to start playing.

Ideally, Siri would see that a podcast had been unsubscribed or that none of the current episodes could be played and either inform me of a problem, or offer to re-subscribe to the podcast and retrieve the most recent episode.

4. I was having other issues with Siri-controlled podcasts. Numerous times, I somehow ended up with podcasts being routed through my bluetooth headset.  They had started out by default going through the wire plugged into the headphones port even though I had the BT headset on and paired.  When the audio unexpectedly switched, I could turn the headset off and audio would go back to the headphones port, but as soon as I turned the headset back on, it would default back to the headset. Eventually, I figured out that I just needed to unplug & replug the audio wire in the headphones port.  It seems that there should be a way to tell the podcast app which audio to use.  In fact, telling the phone which audio to use should be a feature universal to all audio apps (& Siri).  I’m all the time switching the audio for Siri and other apps because the defaults tend to be not what I want.  I even try to tell Siri that I want to send the audio to my headset or through the headphones, but Siri doesn’t know how to handle that request.  We need more control over the audio and its defaults.

If anyone else has had any of these issues, I’d be curious to know how you’ve surmounted them?  I’m still on iOS 7, so I’d also be interested to know if Siri and/or the podcast app have improved in iOS 8.