Today’s Apple Feedback: Group Emails Send to All Email Addresses of Each Contact on iOS

I used to use Groups in the Contacts app a lot, sending a weekly newsletter to over a thousand people each week.  Yes, I know that’s a silly way to do it, but it was a long event email that was mostly automatically generated (via a perl script I wrote) and I had a cron job that emailed me the automatically generated portion each week.  Plus, this was something I’d set up over a decade ago, before MailChimp was really a thing.  All I had to do was add my little blurb and type in the name of the group, and I’d be done in under 5 minutes. It worked very well for me. Eventually, when Mobile Me got sunsetted and iCloud took over, Smart Groups were no longer supported, which was rather annoying, so I ended up maintaining 2 copies of the group: the smart group on one computer, and a static copy of the group that I occasionally refreshed that I could use on any iCloud-synced computer. Ever since then, bugs pop up all the time relating to Contacts and I’ve reported each one. Most of them have to do with Siri’s usage of Contacts, but they also often have to do with the propagation of duplicate Contact Cards.  This new bug however, has to do with how the Apple iOS Mail app handles contact Cards in a static group.  Here was my feedback to Apple today after a chat session with a Senior Apple Support Advisor:

I created a group in my iCloud contacts called “Settlers of Catan”, which includes my wife, for whom I have 4 email addresses. When I type “Catan” into the “To:” field of an email in Apple’s iOS Mail app and select the group from the list of options in the drop-down, it adds all 4 of her email addresses, which I hadn’t noticed until she complained that I was sending her 4 copies of each email to the group. This does not happen when I do the same thing on my MacBook Air (the Apple Mail.app on the computer only adds the first email). It does also happen on my iPhone 6s. I chatted with a Senior Support Advisor from Apple and it turns out he has the same problem and was unable to resolve the issue. He submitted this same feedback as well. Please fix this.

The advisor I chatted with had had me try a number of things, including creating a new group, etc.  I even upgraded my version of iOS to the latest (11.0).  He was unable to fix the issue. All he could do was suggest I create a duplicate contact card for my wife that only had one of her email addresses.  I told him I’d rather manually edit the email’s “To” field after selecting the group, but thanks.  So he suggested I submit the feedback above.

I took a screenshot which shows that by selecting the group, it would add 4 email addresses for my wife (Zoë) even though the group had only 1 Contact Card for her in it:

IMG_0146.PNG

While chatting with the specialist, I mentioned another Contact-related issue and the advisor believed that it was related (because it had to do with determining what to do when dealing with ambiguous situations and clarifying what the user wants). And it had to do with how Siri responds when instructed “Tell my _____…”, such as: “Tell my mom I’m running late”. This is an instruction that relies on relationships stored in my Contact card to link it with other contact cards, such as my mom “Jane Doe”.  Often times, Siri’s response is something like this: “Which Jane Doe? Tap the one you want”, and it gives me a list containing 2 names: my mom’s name and my own name.

Here’s what I think is happening here… Siri is supposed to clear up ambiguities if she doesn’t have enough information. If I said “Tell John…” and I have multiple contacts named John, Siri should ask me which John she’s supposed to send the message to. Likewise, if I happened to accidentally add another mom relationship to my card, Siri should ask me which mom I want.  Or if I try to message mom, but she has 2 mobile numbers listed, Siri should ask me which number to use. However, I think that in the case of relationships, Siri is blindly searching for occurrences of the name I specify in my contact cards and it’s finding them in my contact card because it’s there as a relationship. So when I instruct Siri to tell my mom…, she finds the card for Jane Doe because the name matches and she finds my card because her name is entered in my card as a relationship!

I have a number of relationships saved, like my mom, dad, sister, wife, doctor, dentist, etc..  I even have a few relationships I created for an IFTTT phone number.  I added these contacts so that I could ask Siri to send commands via text to IFTTT using hashtags. I have one named “Groceries” that appends text I send it to a groceries.txt file I have on Dropbox that I share with my wife. I have 2 others: “Air Conditioners” to control my AC window units via WeMo and “Mac Mini” to send text to my computer hooked up to my entertainment center so I can enter searches on Netflix without using a keyboard (very handy!). I used to instruct Siri to send messages to these contacts just using their “names”, however Apple eventually tried to make Siri too smart and so when she heard “Tell Groceries bread hashtag add”, she started searching google instead of texting my contact named “Groceries”.  I got around this erroneous behavior by adding the “Groceries” contact as a relationship of type “groceries”. So now I just tell Siri “Tell my Groceries bread hashtag add”.  And that used to work well until this latest issue popped up where Siri asks me now “Which Groceries? Tap the one you want”, listing Groceries and me as the two options to choose from.

The advisor believed that both issues are related, and have to do with how Apple’s software is handling ambiguity.  I’m not so sure.  Yes, they both have to do with ambiguity, but Siri’s logic happens on a remote Siri server and Apple’s Mail app (I believe) is not accessing a remote server to decide which of my wife’s emails to include when composing an email to a group.

Other issues which have also popped up in the paste couple years have been: Siri’s inability to distinguish “in-laws” from my own parents/siblings and Siri’s ability to send text messages to contacts with short phone numbers, like those used to check when the next NJ Transit bus will arrive at my bus stop.  I used to be able to instruct Siri to “Tell NJ Transit 22222” and she would send “22222” (a bus stop code) to the 5-digit NJ Transit phone number.  Eventually Siri started interpreting this command as “Tell NJ Transit to 2222”, which I got around by adding a “to” to my command: “Tell NJ Transit to 22222”.  (That’s not my bus stop number, but it obviously does start with a 2.)  And then of course, Siri just started wholly refusing to send any messages to NJ Transit at all, and I believe it was because the phone number is only 5 digits.

I believe that Apple is trying to make Siri too smart and they are just getting in my way.  I have seen however that Siri does learn some things.  If I keep trying multiple times to get Siri to for example, send a text to “Groceries”, first she does a web search a couple times. Then I tell Siri simple “Send a text message” When I respond to the question asking who I want to send it to with “Groceries”, it works, and then after doing that a few times, she will respond correctly the next time I ask her to “Tell Groceries…”.  Now I’m at the point where as I said, I have to say “Tell my Groceries…”.  And after having used that work-around for awhile, now Siri can’t distinguish between my own card and the one for groceries (or my mom).  When I complained to Apple about the in-laws issue, the advisor I ended up speaking to confirmed the bug on their end by reproducing it and they actually fixed it!  I insisted to them that it used to work, because I frequently used the feature to text my mother-in-law, who was helping me with a house I was selling remotely.

Apple keeps trying to make Siri smarter, and if you ask me, they keep doing it rather sloppily.  They frequently seem to overlook how their various features will behave.  The in-laws issue was a prime example. Someone obviously wrote some code to always parse out “mother” and connect it to a contact whose relationship is “mother”, regardless of whether a contact exists whose relationship was “mother-in-law”.  The existence of that possibility didn’t occur to some programmer out there.  It used to work and Siri even interpreted what I said by typing it out as “mother-in-law”, but would send a text to my mom starting with “In-law…”.

I can’t help but think that this sloppiness started appearing in Apple’s development environment after Steve Jobs died.  They’ve been removing OS features and mucking up functionality ever since.

Advertisements

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.