Sonos – suddenly unreliable

We’ve had our Sonos system, connected via wifi, for 5+ years and it’s been rock solid until late January. Suddenly, through no changes to our wifi (router, router firmware, or connected devices) or Sonos system, it started being completely unreliable. This seems to have coincided with the S2 v14 release on 2022-01-25 but that could have been coincidence.

Examples of problems:

  • Speakers would disappear from the controllers (macOS & Android apps).
  • Speakers would stop playing but show as playing in the controllers.
  • Speakers would be playing but show as stopped playing in the controllers.
  • Speakers would not respond to play/stop input from the controllers.
  • Different controllers would show different speakers available.

I did the usual things of restarting the wireless router & restarting the speakers. At the recommendation of Sonos support I changed the wireless channel on my router. All of these worked for 30 or so minutes and then things went sideways again.

Finally, fed up with it all, we plugged a speaker directly into the router instead of having it connect over the wireless thus forming its own separate wireless network. Everything has worked perfectly since then.

This isn’t exactly convenient given where the wireless router is, but our Sonos system is once again functional instead of being a collection of 6 very expensive paperweights.

Fixing HP Scanner “malware” warning on macOS

It’s tax season here in the US and yesterday I plugged in our HP OfficeJet J4500 to scan in some documents that were mailed to us. I don’t use it much but imagine my consternation when I received a malware message “HPScanner.app will damage your computer” from macOS Big Sur and the scanner refusing to work.

I spent a good 30 minutes Googling, uninstalling drivers, reinstalling drivers, with zero success. I went to rant to my husband and surprisingly his Big Sur laptop was working just fine! And while usually I’m the stubborn technologist in the relationship, he was the one who solved this one.

The solution is to download and install the HP 5.1.1 Printer Software Update from Apple, uninstall the printer, and reinstall it.

Why is that so incredibly hard to figure out? Because HP’s website is an incompetent mess. The usual problem resolution path of going to HP’s Driver Download website fails because they don’t have macOS 11 drivers for the OfficeJet J4500. If you click through far enough you’ll arrive on their My operating system is not listed on HP Software and Driver Downloads page which routes you to the Apple website linked above. So there is a driver for the printer it’s just difficult to find. You might need to download and run the “HP Uninstaller” first. I had already done this in my troubleshooting attempt so it’s unclear if this is a prerequisite or not.

Other things that I discovered during my attempt to fix this:

  • Downloading the HP Easy Scan software from the App Store. This doesn’t include the OS-level driver and without it the app can’t communicate with the scanner.
  • Using the Generic PCL driver. While the printer will happily print with the Generic PCL driver (courtesy of Gutenprint) it doesn’t include the drivers for scanning.
  • The reason this likely worked for my husband and not me is that he updated his printer drivers while still on Catalina after HP screwed the pooch and mistakingly revoked certificates for their printer drivers in Oct 2020. I very very seldom print or scan so it’s not surprising that my system was out of date.

Sonos, Plex, and “Unable to browse music” on artist search

It’s taken me several months to connect the dots, but I’ve finally figured out why sometimes Sonos is unable to browse music from Plex artist search results. And it’s all about having multiple libraries in Plex.

The problematic behavior is this scenario:

  1. In the Sonos app, search for an artist on Plex
  2. Sonos shows the results successfully
  3. Click on the artist
  4. Sonos returns “Unable to browse music”

If, instead, you search for an album you can click on the results, see the tracks, and play the music. Sometimes this seems to work, sometimes it doesn’t, and it’s taken me months to find the pattern.

The problem is that my Plex system has two libraries: mine and my husband’s. Overall Sonos handles this well and we can play whatever music from whatever library.

But while artist searches are scoped to all libraries in Plex, browsing artist results is only scoped to the current Plex library. If the current Plex library contains the artist you can browse the search results. If not, you get the “Unable to browse music”. If you change the Plex source to the library with the artist it will work again.

I’m not certain if this is a limitation in the API that Sonos is using to interact with Plex, or if this is a bug in how Sonos is using that API, but knowing what the problem and how to work around it is a start.

Upgrading from Pixel 1 to Pixel 4a

I recently upgraded from a Pixel (the original 1st Gen) to a Pixel 4a. The Pixel 4a is a perfect successor to the Pixel 1 if you like the Pixel and just need a newer phone.

In 2016 I bought an original Pixel when they came out to replace my beloved Moto X (1st Gen). It’s been a great phone for the past 4 years but in the last few months the battery life has deteriorated to the point where the phone was almost unusable, often turning itself off while reporting 35% battery remaining. This despite it almost never leaving my house with a strong wireless and WiFi signal because of the pandemic.

The Pixel did everything I wanted it to do and had all the features that I wanted — including a headphone jack — and none of the ones that I didn’t. Despite some recent consternation with Google I still think the Pixel phones are the way to go when buying an Android phone. But the Pixel 4 and 5 are physically huge and expensive. And of course no headphone jack.

Enter the Pixel 4a. Physically it’s identical to the Pixel in size with a much larger screen thanks to the almost-bezel-less design. It still has the headphone jack (yay!). And because they took out all the expensive Pixel 4/5 stuff I don’t care about (wireless charging, Active Edge, Face Unlock, waterproof) it’s much cheaper than the Pixel 4 or 5.

The Pixel 4a is a nice step up in camera, newer generation CPU, and the battery life is truly amazing, although it’s hard to objectively compare with my dying 4-year-old Pixel. Full hardware spec details available at phoneArena.

After using my Pixel 4a for two weeks now, I couldn’t be happier with it as a successor to the Pixel 1.

Plex and Sonos

With the death of Google Play Music I needed another way of managing my music library and playing it through our Sonos system. We opted to go with Plex and in general it has been a good experience.

Plex

We have a Mac Mini hooked up to our TV for those times we want to watch something on YouTube or some other service that our not-very-smart TV doesn’t support. This was clearly the logical choice for the Plex server as it is always on and has worked really well.

I keep a copy of my music on my main laptop. Despite not using Music (formerly iTunes) to play music, I use it to manage my music on the filesystem. When I purchase music (now from Bandcamp or Amazon if I can’t find it there), I import it into Music and then run an rsync script to refresh the copy on the Mac Mini. Plex automatically picks up the changes and my music is ready for playing.

After some work I was able to import my playlists from Google Play Music (GPM) into Plex as well. See my GPM playlist reconstructor and Plex playlist importer gists for some python code to help get you going in the right direction.

Now I can access music, including all of my playlists, from my phone and any web browser.

Sonos

Being able to play my music through our Sonos system is one of my primary use cases and one of the reasons why YouTube Music is such a poor substitute for Google Play Music. Plex integrates nicely with Sonos without requiring a Plex Pass.

When I first got Plex and Sonos connected two months ago everything worked perfectly. Then a few weeks ago Sonos stopped reliably finding my music which was incredibly frustrating. When the Sonos couldn’t see the Plex library I was still able to access the library from the Plex mobile app and the web interface. Indeed, everything except Sonos seemed happy to talk to the library.

We did all of the usual things like rebooting the devices. I followed the Plex and Sonos troubleshooting docs both from Plex and from Sonos. I even tried upgrading the Sonos system from S1 to S2 to no avail.

Eventually I found this Plex on Sonos forum post which goes into a lot of details about the nuances of how the two devices connect. We had a 9-year-old Netgear WNDR4500 wireless router that in theory supported UPnP but it didn’t seem to be working to allow Sonos to reliably access the Plex library. I set up a manual port forward which seemed to make things slightly more reliable but didn’t fix the problem.

Eventually out of frustration I bought a brand new TP-Link AX1800 wireless router to replace the Netgear and suddenly everything just started working and has been rock-solid for a week now. No special configuration & no fuss.

So if you’re having trouble getting your Sonos to talk to your Plex library and are using an old wireless router, consider upgrading it.

Accessibility of Unicode as styled text

Facebook, Twitter, Instagram, and other internet sites often lack the ability to style text, like making it bold or italics. Some “clever” people have discovered ways of abusing Unicode to make the appearance of styled text with these sites. Unfortunately doing so renders the text completely inaccessible by users of assistive technology.

You might have run across an Instagram profile, Facebook post, or tweet that includes styled text and wondered how the person did that. They probably used a site like YayText [which I’m loath to reference at the risk of encouraging its use]. These sites take a string of text as input and present the user with what visually is the same text but styled in a variety of ways. How does this work? To explain that, we need a brief primer on Unicode.

Unicode is a technology standard that allows computers to encode and represent hundreds of thousands of characters, letters, and symbols used in over 100 world languages. It allows computers to differentiate between the English letter K (U+004B) and the Greek letter Κ (kappa, U+039A) because while they are visually similar — at least in many fonts — they are two very different letters and mean two very different things.

But Unicode supports more than just languages, it also supports mathematical symbols including a whole slew of alphanumeric ones. These mathematical symbols are intended to be used for math texts and are semantically different than their Latin counterparts. Said another way: just because the 𝐴 looks like an italic A doesn’t mean it is one.

Why is this important? Is this just a language nerd getting uppity about incorrect use of Unicode? It matters because beyond being semantically incorrect, using Unicode in this way renders the text completely unintelligible to assistive technology like screen readers.

When a screen reader encounters 𝐴 (U+1D434), it will read it as “mathematical italic capital a” because that’s what it is. It isn’t the English letter A (U+0041) that is italic. Which means that the string “apples 𝐴𝑁𝐷 bananas” will be read to the user as:

apples mathematical italic capital a mathematical italic capital n mathematical italic capital d bananas

The video in this tweet by @kentcdodds does an excellent job of demonstrating just how horrible this is for people with screen readers.

While I can certainly sympathize with the desire to add style and emphasis to help convey emotion in written form, let’s not do so at the exclusion of others.

Thank you to this StackExchange question & answer for confirming my suspicions and providing the video link when I was investigating this back in July.

YouTube Music is a poor replacement for Google Play Music

Google is replacing Google Play Music (GPM) with YouTube Music (YTM) starting this month and shutting down GPM entirely in December 2020. Google is touting YTM as a great replacement for GPM but are conveniently not revealing that YTM does not have feature parity without a YouTube Music Premium subscription.

With GPM I can listen to my music in the background on my Pixel. But with YTM you need a monthly subscription to do that.

With GPM I can listen to my music on my Sonos. But with YTM you need a monthly subscription to do that. Ars Technica reports that Google Home users will need a YTM subscription too, just in case you forked out money for Google-branded smart speakers.

And it doesn’t matter if this is music that you’ve uploaded or that you’ve purchased from Google. That’s the real kicker for me. I’ve been buying music from Google since 2013 — 669 songs to date, some of them via albums and some of them as individual songs. It’s hard to know exactly how much money I’ve paid to Google for music over the past 7 years, but at $1/song that would be just under ~$100/year. 

I don’t subscribe to music; I still purchase music. More over I’m not going to pay $12/month for YouTube Music Premium to be able to access the music I’ve already purchased. If I wanted a subscription service I would pay $10/month to Spotify. I realize that I am no longer Google’s target audience.

Instead I’ve downloaded my purchased music from Google and am trying out a Plex server. I can listen to music on my phone and Sonos without a subscription of any kind. So far it’s working out well.

Now I just need to figure out who to purchase music from that isn’t Amazon or Apple.

Managing passwords with LastPass

It’s abundantly clear from the numerous recent data breaches that the most secure password for a website is one that isn’t used anywhere else. And while there are mnemonics for making memorable, unique passwords, the best way I’ve found is to use a password manager like LastPass.

Before LastPass I used the common, but very insecure, method of having different “levels” of passwords. One password was throw-away and used on sites that I didn’t care about. My medium-security password was used more rarely and only on sites that were important but did not hold financial or medical data. My high-security password was only used on financial and medical sites. Periodically the high-security password sites would be changed and the password demoted to medium password sites, etc. That’s a pretty dumb way of doing it, because all it takes is for one financial company to get hacked for that password to be at risk1 and open the door to all your financial and medical accounts.

The most secure way is for every site to have its own password. That way if a site is hacked, the only place that password can be used is the already-hacked website, not your bank account2. Memorizing a unique, secure password for every website you visit is impossible for mere mortals however.

Enter a password management tool like LastPass.

LastPass is a browser plugin for all major browsers on all major platforms. You have one master password to log into LastPass and it then keeps track of all of your usernames and passwords in a vault, automatically filling in those form values when you visit the website again. LastPass uses your master password to encrypt/decrypt your vault and only sends the encrypted vault to its servers, so your data is never accessible outside of your computer.

You can have LastPass installed on multiple computers and devices, including your mobile device, and have access to all your usernames and passwords whenever you are using a hardware device that you trust.3 The only password you have to remember is the master password to your LastPass vault. Accordingly, that password should be both strong and memorable.

You can share individual username/password entries to other LastPass users for them to use. This is perfect for giving multiple people in a household access to a single resource — like utility company website credentials — without duplicating that information when the web site requires you to change the password every 6 months.

Also, just because you use LastPass doesn’t mean that all of your passwords have to be an unintelligible mishmash of characters and symbols you can’t remember. While I let LastPass create such completely-unmemorable passwords for most sites, I still create strong but memorable passwords for a few accounts that I want quick, direct access to. LastPass will happily remember those passwords just as easily has ones it creates, so don’t let that dissuade you from using it.

I’ve found LastPass useful for other things as well. For instance, within LastPass you can use secure notes. These are great for putting information like your frequent flyer numbers, known-traveler numbers, passport information, private key passphrases, and other data that you want to have secure and generally available.

If you aren’t using unique passwords everywhere, I strongly encourage you to do so. A password manager like LastPass is a great tool for easily moving to that paradigm and I highly recommend it after using it for 2 years.


1 For some definition of “at risk”. See also hash strength, salting, and rainbow tables.

2 In the biz we call that isolating the failure domain.

3 It’s important that you trust the device you are accessing LastPass from. Untrusted devices can be using keyloggers and other technology to swipe your passwords. Never type in a password on a device you do not trust.

Your tech resume needs help

After slogging through yet another dozen resumes for my two open SDET positions, it’s clear techies need help writing better resumes that convey their expertise and differentiate them from others.

Tweaking a resume

One of my resume tips for folks applying for SDET jobs was to make friends with a technical writer and offer to take them out to lunch in exchange for looking over your resume.1 Having a wordsmith look over your resume with a critical eye is great for tightening up wording, ensuring consistency in tone and verb tenses, and just making sure that the whole thing is coherent to another technically-inclined individual who isn’t you. That advice is just as true now as it was 6 months ago.

But while technical writers are miracle workers when it comes to translating obtuse technical details into prose for the masses, it’s unreasonable to ask one to essentially rewrite your resume from scratch in exchange for lunch. And based on many of the resumes that I’ve been seeing over the past four months, many techie resumes need a rewrite, not just a tweak.

Resume rewrites

In cases where you need more help than just some tweaks, I encourage you to hire a professional resume writer. A resume writer will sit down with you to learn about your technical expertise and accomplishments, then help convey that information on your resume. They can often help strengthen your LinkedIn profile as well, something that I and other hiring managers often look at.

Good resume writers aren’t cheap. It costs anywhere from $500 to $1000 to work with a resume writer, but depending on the state of your resume that could be money very well spent. Given that tech salaries easily run into six digits a year, spending <1% of one year’s salary on an investment in your career should be a no-brainer.

IT Resume Service

Frustrated with the quality of the resumes I’ve been getting as a hiring manager, I did some research to see if there were resume writers specifically for techies. Surely someone was capitalizing on this fertile field of poor tech resumes. And there are!

After reviewing several websites I ran across Jennifer Hay‘s IT Resume Service. I was impressed with her overall approach, list of sample resumes, and articles. After a few emails and a phone conversation with her I feel very comfortable recommending her services.2 We’re even discussing possible future collaborations on articles and other collateral to help tech folks write better resumes.

Contact her to discuss leveling-up your resume.

Even if you don’t use Jennifer, I strongly encourage you to take an honest look at your resume and consider if it could benefit from the expertise of a professional resume writer.

Do it for yourself, but also do it for me and every other hiring manager out there.


1 I also said that technical writers are amazing people and knowing them will enrich your career and your life. That’s still true. I’m good friends with 6 tech writers, or former tech writers, and you simply can’t find better people. Some of them even agree with me on the Oxford comma.

2 I’m not getting any financial compensation from her whatsoever. I just selfishly want to start getting better resumes.