Archives / Search ›

A list of macOS, tvOS and iOS bugs I encountered while helping my family over the holidays

These are just functionality/correctness bugs. If I covered UI bugs, I’d miss my flight home.

macOS 10.13 High Sierra

  • The installer nukes user accounts that have been around for years to replace them with new user accounts without warning (in this case, _assetcache replaced the intermapper user).
  • Users (with >500 UIDs) can “disappear” until reboot; e.g. id returns nothing for the user.
  • Domain name resolution (for a device on a local subnet, with one nameserver configured) fails until I use the increasingly-baroque and undocumented method of clearing the DNS cache, or reboot, of course.
  • Changes to file sharing are a mess.
    • Neither SMB or AFP came up cleanly the first time, requiring I toggle them off and back on from System Preferences.
    • There is no UI to indicate that sharing via AFP does not work at all on APFS.
    • Finder ignores the username you pass in a SMB sharing URL (e.g. smb://username@host/….).
    • SMB — the only documented option on APFS which provides reasonable security, unless I want to set up Kerberized NFS — is horrendously unreliable. When stressed, it either produces a massive number of errors, requiring I try a particular copying process 4 times before it completes successfully, or just deadlocks client processes entirely. In the latter case, you can’t even cd into the share without the shell hanging; GUI apps beachball and if you try to kill them, get stuck exiting (the STAT column in ps reads ?E).
  • I tried moving from iPhoto to Photos. Since I can’t copy files across the network to synchronize photos with other family members (an incredibly common workflow which Apple still hasn’t supported in any way), I tried using iCloud Photo Sharing for the purpose. This does downsample both photos and videos, but short of Thunderbolt Target Mode or NFS, I couldn’t see another way to do this short of copying the entire photo library from one computer to another before trying to copy across individual photos.
    • Copying photos to shared albums sometimes just fails (it’s all or nothing), without any detail in the error message indicating which of the hundreds to thousands of photos you may have selected caused the problem.
    • Notifications generated during population of a shared album include a number of photos which often doesn’t match reality. I think it’s cumulative, so if you delete photos, the number can be greater than the total number of photos in the album.
    • When selecting photos in a shared album, sometimes Select All doesn’t select all the photos.
    • When selecting photos in a shared album and right-clicking on them to open a contextual menu, sometimes some of the photos get deselected and you have to try again.
    • Even after the shared album has theoretically synchronized, the number of photos displayed across multiple Macs can differ. In one case, there were hundreds of photos displayed on one Mac and zero on the other.

tvOS 11

  • Search — one of the marquee features of the device — broke one day. The Search app displays a spinner forever, and voice search claims that Up Next is somehow misbehaving. Restarting does nothing. Logging into and out of various accounts does nothing. Reinstalling the Apple TV helped for a while, but the problem came back.
  • Moving apps on the home screen is horrendously buggy. The OS will get confused about which app is which; sometimes there will be no way to launch an app except by voice because it “loses” an app; sometimes it’ll leave “holes” in the layout where an app should be. Restarting was the only remedy I could find.
  • Trying to view the Bloomberg app in the App Store caused it to hang repeatedly, requiring a restart. (I could view other apps in the App Store after force quitting it, prior to restart.)

iOS 11

  • The iPad Dock included a “stuck” partially animated app icon (same as the one next to it).
  • The number of unread items in the unified Inbox in Mail didn’t appear correctly.

The comparative length and severity of bugs on the above lists speaks for itself.

Workaround for Dragon Medical Practice Edition on high-DPI displays

In my last blog post, I pointed to a Nuance support article which indicated that there was no support for high-DPI displays in DMPE. This does remain the case in 2.3, as launching it out-of-the-box causes the text to be scaled and blurry, and icons/windows incorrectly placed relative to the insertion point. No useful workarounds are provided in the article.

I was working on something else today, when I remembered “hey, doesn’t Windows have compatibility options for this?” Of course it does! Find natspeak.exe and check the following box in Compatibility Properties:

Fixing high DPI display.png

This makes DMPE look better and no longer have issues with window placement. DMPE complains once during launch that it doesn’t want to be in compatibility mode, but it doesn’t stop you.

Dragon Medical updates

Dragon Medical Practice Edition (DMPE) 2.3 was released as a free update at the end of June — which I didn’t notice until last week, since I had the automatic updater disabled because it was so bad, and had assumed that there were going to be no further updates before another paid upgrade.

The reality turned out to be good in the short term but potentially concerning in the long term.

Dragon Medical Practice Edition 2.3

DMPE 2.3 (the version in the About box is actually 12.53.350.033) does add partial compatibility with Windows 10, Internet Explorer 11 and supposedly Office 2016 — I am still using 2013 on the Windows side. It does not support current versions of any modern browser (Firefox, Chrome or Edge). It also fixes a very irritating and long-standing issue described in the release notes as “Too many internal messages overwhelm the system and cause Dragon to appear frozen.” These freezes would last for many seconds and happen seemingly at random, but often manifested when trying to turn dictation on and off. Now toggling dictation is a reliably sub-second operation — I have not noticed a single such freeze since upgrading to 2.3, which is incredibly gratifying.

My dictation buffer setup

I continue to iterate on my dictation buffer setup. Since my most recent post on the subject about a year ago, I have fixed some pesky bugs and worked on further virtual machine automation. This has involved such diverse things as performance profiling that helped me partially work around the above freezes, and editing the Windows registry to prevent the Dragon Word addin from getting automatically disabled. I am currently hard-coding my profile path as this is necessary to fully automate dictation startup with a roaming profile, which you’ll need to change if you want to try it yourself.

Macro performance

I had been automating some basic formatting tasks with the built-in Dragon “Advanced Scripting”, as it’ll work on the hospital’s Dragon 360 environment as well as my home/laptop DMPE setup. Unfortunately, Advanced Scripting simulates keystrokes extremely slowly (and apparently slower still on Windows 10). I recently discovered that the older Dragon NaturallySpeaking macro language is still supported; you just need to import an old command, and you can duplicate it. The old language appears to be at least an order of magnitude faster even on Windows 7, so I’ll be using it in future.

Windows 10 and high-DPI support

In addition to my virtual machine Windows 7 environments, I have recently installed DMPE on Windows 10 in Boot Camp on my 13ʺ Retina MacBook Pro, to see if I can do some of my work without a dictation buffer at all. This has been frustrated by DMPE’s lack of support for high-DPI displays (which persists in 2.3). So instead of using high-DPI, I set the display magnification to 100%, try to use font size adjustments where available to make text readable, and squint or use Magnifier where such adjustments are not available. (I found a better workaround later.) Despite several years and Windows versions, high DPI support in Windows is still inconsistent and buggy. OS X looks amazing by comparison.

Another issue with Windows 10 in Boot Camp, unrelated to DMPE, is Boot Camp’s keyboard and trackpad drivers. Unlike on OS X, remapping Caps Lock to Control does not eliminate the accidental-activation delay, and while a kind soul has reverse engineered the appropriate HID commands to remove the delay, I will need to port the code to Windows before I can make use of it. The trackpad is even worse with no workaround of which I’m aware — simple trackpad activities such as clicking and right clicking are completely reliable when booted into OS X but inconsistent on Windows.

The future

The future contains many potential pitfalls.

If Apple switches to ARM-based Macs, running Windows in virtualization will become untenable and I will likely need to start using a non-Mac as my primary machine, or attempt to make do with a Mac version of Dragon Medical.

EMC, in their great wisdom, laid off the entire team developing VMware Fusion for OS X. There has been a single patch release of VMware Fusion since then, which didn’t seem to break anything too horribly, but i don’t have high hopes for the future of the software. The only other option for high-performance virtualization on the Mac, Parallels, is well-known for their shady business practices, would be more expensive, require more frequent upgrades, and from what I can read, also has poorer quality audio driver support.

Currently, DMPE is still based on Dragon 12, which is two major versions behind the current non-medical version. Nuance has publicly stated that there will be no further major releases of DMPE, and that its future is Internet-connected, subscription software which would end up costing about 5-10× as much ($135/month) in my usage model. In addition, automation choices appear to be substantially reduced or eliminated in this future version, which would likely mean I would have to rewrite or completely abandon my dictation buffer software.

The good news is that with Windows 10 and Office 2016 support, and a relatively new laptop, I’ve got a few years to persevere with my current setup before I am forced to make any changes.

I continue to hope that speech recognition’s entry into the mainstream will eventually penetrate the medical market, finally dragging medical speech recognition out of its expensive, flaky, buggy backwater into the 21st century. In the meantime, I will be thankful for small victories, such as that I didn’t experience any freezing while I dictated this blog post.

The Dash: 2.0 updates

This is turning into The Dash blog recently. Hopefully after my current 1-2 month crunch I’ll be able to get back to posting about other things!

In any case, The Dash firmware 2.0 (now “Bragi OS 2.0”), which I wrote about in my most recent post, is now released. Full release notes are here. The major version number increment is definitely deserved, as it adds a lot of features, not all of which I’ve had a chance to evaluate. The timing of these changes does seem to correlate with more general availability for the earphones.

The pairing procedure for both the Bluetooth and Bluetooth Low Energy sides have been overhauled. Both now require pairing codes which theoretically prevent spoofing. More usefully day-to-day, you no longer need to explicitly pair the Bluetooth Low Energy side every time you want to use it. Instead, just inserting it in your ear is enough for it to show up in the app. Both audio and visual prompts during pairing are very well done. Given the design of the Bragi app, I’m pretty sure this pairing procedure was intended all along.

While not commented on in the release notes, the touch sensitivity seems less sensitive to hair brushing against it.

Microphone (hence Siri) quality is once again somewhat improved but it still sounds like you’re talking inside a tin can. The iPhone’s internal microphone is a lot better if you’re able to use it instead.

My trick to give the left and right Dash different names still works, and unfortunately you still need to rename the device twice to get it to stick.

I’ll be trying out cadence detection for cycling tomorrow; I’m not much of a swimmer.

There’s still a lot more to come — including, eventually, a SDK…

The Dash: disconnecting from the Dash side

Back in April, I noted “You can't initiate a disconnection or pairing from the right Dash once it's connected.” This is still technically true in the current firmware (1.5.1) — but I just discovered a convenient workaround, at least on iOS. Typically, I find this an issue when the Dash is connected to a device across the room (or inside my bag when I'm on my bike) and I want to pair it with something else closer to me.

Here’s how to do it:

  • Tap and hold on the right Dash until you hear the tone.
  • Wait another second or so until you hear the “Siri is listening” tone.
  • Say “turn off Bluetooth.” The iOS device does just this, severing its connection to your Dash.
  • You can then connect/pair the right Dash to another device.

The Dash firmware 2.0 is now in private beta testing. Unfortunately I didn't respond quickly enough to the call for testers on Facebook to get in the pool. The advertised list of upcoming features is pretty enticing:

  • Enhancements to activity tracking, especially for swimming and cycling
  • Changes to the feedback of metrics during activities; metrics are also logged in the Bragi App
  • Calibration of The Dash sensors to improve accuracy
  • Major enhancement to the speech quality during phone calls
  • Changes to audio playback to improve clarity and quality, as well as significantly boosting the maximum volume level
  • Improvement to the Bluetooth & BLE connectivity with other devices and apps, as well as implementing security during BT pairing and bonding to ensure data privacy
  • Implement more remote data channels with the Bragi app

The Dash is getting a lot of competitors in the cord-free Bluetooth headset market. I hope Bragi is able to keep up and realize more of their vision, while fixing practical issues such as those related to pairing and Bluetooth range.

Older Posts ›