Category Archives: Technical

General technical stuff

MacOS Monterey 12.6.2 – Failed to prepare the software update – A solution

Failed to prepare the software update. Please try again. An error occurred while downloading the selected updates. Please check your internet connection and try again.
Failure Dialog

My work Intel-based MacBook Pro refused to complete the required MacOS Monterey 12.6.2 security update. We tried everything, including:

  • Attempting the update while in Safe Mode
  • Attempting to use Recovery Mode
  • Multiple wired and wireless connections, including the hotspot from my work phone
  • Resetting the NVRAM
  • Performing a dscacheutil -flushcache
  • Creating a new admin-level account and trying the update from there

And on and on. Nothing worked until we did the following:

  1. Followed these instructions to create a bootable copy of 12.6.2 on a USB drive
  2. Rebooted the Mac into recovery mode (Option+Command+R during startup)
  3. From the menu, opened Startup Security Utility and set Secure Boot to “Medium Security”, and Allowed Boot Media to “Allow booting from external or removable media” (remember what your original setting were!)
  4. Rebooted the Mac, holding down the Control key so I could select the boot media. Selected the USB drive 12.6.2 installer created in step 1
  5. After it was complete, rebooted the Mac in recovery mode again
  6. Went back into the Startup Security Utility.  Changed Allowed Boot Media and Secure Boot back to their original settings.  You have to change them in this order because when you change the Secure Boot setting, it will want you to select your startup disk and will want to reboot right then

This look a lot of back-and -forth and several days to figure out, so I’m posting this here for the next person who runs into this. Hopefully this helps you out!

Some Channels in Spanish on Samsung TV with Comcast/xfinity

Recently my mother-in-law had an issue where some sports broadcasts were only in Spanish. She couldn’t figure it out, and Comcast/xfinity couldn’t either. I found multiple discussions online about the issue, but most people were equally stumped. We finally resolved it, so I wanted to post the answer here for the next person dealing with this.

First off, it’s not a Samsung issue. I think it just gets associated with Samsung because so many TVs are made by them. The technician from xfinity was sure it wasn’t the cable box.

It was the cable box.

Step 1 – Go to the channel that is broadcasting in Spanish. Hit the “OK” button on the remote. This will display a menu on the bottom of the screen with a bunch of options including pause, fast-forward, and rewind:

Hit the “OK” button on the xfinity remote

Step 2 – Hit the left button until the circle marked “SAP” is highlighted:

Highlight “SAP” under Audio Options

Step 3 – Hit the “OK” button again. This will bring up the language selection. Select “English” and hit “OK”:

Select “English” from the language selection

That should do it!

What happened is – somehow – the channel got set to play the secondary audio programming. In other words, some broadcasts include multiple audio/language tracks, and you can choose to listen to either the primary or secondary language.

So if you’re ever in this situation, look for the SAP settings for that channel.


Here is how to configure MySQL so you can load data without getting the following error:

Loading local data is disabled; this must be enabled on both the client and server sides

In my example, I’m running MySQL 8 in a Docker Swarm and connecting using the command-line client.

On the server side, you need to set local-infile to ON.

Here is what the MySQL section of the compose file looks like. Note the setting has been added to the command: section.

  image: mysql:8.0.22
  command: --default-authentication-plugin=mysql_native_password --local-infile=ON
  hostname: mysql
    - "3306:3306"
    - mysql_data:/var/lib/mysql
    MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_password
    - mysql_password

On the client side, you have to set local-infile=1. This can be done directly in the call to the client

mysql --local-infile=1 

or you can set it in the configuration file

mysql --defaults-extra-file=./mysql.conf 

with the configuration file (ex: mysql.conf) set something like this:

host = <your hostname>
user = <your username>
password = <your password>

With these two settings, you should be good to go!

Fixing Ubuntu VFS: Can’t find ext4 filesystem error on reboot

TL;DR: When you mount drives in your /etc/fstab, don’t use the drive designations (/dev/sda, /dev/sdb, etc.) because they can change upon reboot. You should label the drives instead and use those labels in /etc/fstab.

List your drives:

fdisk --list | more

Give each drive you need to mount a label using tune2fs. For example:

tune2fs -L EXAMPLE_LABEL /dev/sdb

Change /etc/fstab to use the labels. From:

/dev/sdb  /my_disk ext4 defaults 0 0


LABEL=EXAMPLE_LABEL /my_disk ext4 defaults 0 0


OK, now to the blah, blah, blah part:

Today I learned that the drives can get detected in a different order on each reboot, so the designations (/dev/sdb, /dev/sdc, etc.) could change. I’m not sure how I’ve worked with Linux all these years and not clued into that, but here we are.

I have a desktop system running Pop!_OS 20.10, which is based on Ubuntu 20.10. My system has three internal drives and one external USB. Along with root (/), one internal drive is mounted as /data, and the other as /reference. Yes, they are both one big partition each.

A few weeks ago when I updated the system from 20.04 to 20.10 and rebooted, I was hosed. The system said it couldn’t find the ext4 file system. After a lot of googling, casting about, and fixing things that were a problem without being the problem, I noticed that the mounts for the internal drives were all screwed up. My /data drive was there, but it contained the contents of /reference. The /reference drive was gone. Fortunately I still had my root drive.

Looking at /etc/fstab and comparing it to the output from fdisk –list, it was all screwed up. Somehow the mount points were pointing to the wrong devices. I fixed them, rebooted, and I was on my way. Turns out I didn’t really fix it, I just got lucky on that reboot.

Today I had several workspaces going and performance started to get weird. I figured I’d just stop where I was and reboot.

…and got the same issue again. Couldn’t find the ext4 file system. The contents of /etc/fstab looked wrong compared to fdisk –list again. I wondered why fstab kept getting reverted or something, I fixed it, rebooted, and… got the error again!

Looking at the fdisk –list output again, I noticed that the disks has moved around. What was /dev/sdc on last boot was now /dev/sdd. The prior /dev/sdb was now /dev/sdc. That’s when I learned that this was apparently a thing, and I should be using the disk UUID or a label in /etc/fstab.

I figured labeling would be easier. I looked at the output from fdisk –list again and figured out which device was the data drive and which was reference. I then labeled them:

tune2fs -L DATA_DISK /dev/sdd
tune2fs -L REF_DISK /dev/sdc

I then changed /etc/fstab to use the labels:

LABEL=DATA_DISK /reference ext4 defaults 0 0
LABEL=REF_DISK /reference ext4 defaults 0 0

Rebooted, and I’m back!

Flashing an iDatalink Maestro RR using 64 Bit Windows 10

I recently purchased an iDatalink Maestro RR, and was surprised when I read the system requirements for the Weblink UpdaterWindows 7 now supported? Internet Explorer 7.0 or greater [Excluding 64 bit version]? 

Also, when I downloaded and ran the program, it told me it needed .NET framework 2.0.

I have a 64 Bit Windows 10 computer with .NET framework 4.x installed, but that’s not backward compatible with framework 2.0 apparently. Now what?

After some searching, I was able to flash the module on my computer. Here is how:

  1. You need to enable the .NET framework 2.0+ 3.5. It’s an option on Windows 10, you just need to enable it.
    1. In the search box type “Windows feature” to bring up the Windows Feature control.

      Turn Windows features on or off

      Turn Windows features on or off

    2. Check the .NET framework 3.5 (includes .NET 2.0 and 3.0).

      Windows Feature Control Panel

      Windows Feature Control Panel


    3. Windows will download the additional files it needs and request to reboot your computer.
  2. You also need a 32 bit version of Internet Explorer. Fortunately, that is also included on Windows 10.
    1. Open Internet Explorer.
    2. Go to Internet Options (upper right gear icon on the browser).

      Internet Options Menu

      Internet Options Menu

    3. Go to the Advanced tab and check “Enable Enhanced Protected Mode.”

      Enhanced Protection

      Enhanced Protection Mode

    4. On the Security tab, verify that Enable Protected Mode is checked. It should be. If not, check it.

      Enable Protected Mode

      Enable Protected Mode

  3. In the search box, type “user account control”.
  4. Select “Change User Account Control Settings”.
  5. Verify that the slider is not set to “Never notify.”

    User Account Control

    User Account Control

  6. You will need to reboot again.
  7. Install the Weblink Updater.
  8. Login to iDatalink.
  9. Plug your Maestro RR into a USB port.
  10. Try flashing your module. If you get a prompts at the bottom of the browser asking for permission to run the “adsService.service”, select yes.

If your computer doesn’t recognize the Maestro, try unplugging it from the computer, logging out of iDatalink, refreshing the iDatalink page, logging back in, and plugging the model back in.

It took me a couple of tries to get the module to flash completely. The first time the progress bar made it all the way to the end and then froze. The second time it worked, and the status of the module showed the correct firmware installed. I installed it in my car and it works great!

Good luck!

Removing Objects in a Photo with Gimp

This ended up being a couple of extra steps beyond just Googling, so I wanted to put it out there for the next person.

I found these instructions on using the Gimp plugin Synthesizer to remove objects to be pretty useful, though it looks like some of the menu options have moved around in Gimp 2.8.

Getting the Synthesizer plugin installed correctly on Ubuntu took a couple of tries. Here are great instructions for adding a PPA to your config so you can just use a couple of apt-get commands to install Gimp and many useful plugins, including Synthesizer. It came down to this:

sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt-get update
sudo apt-get install gimp
sudo apt-get install gimp-plugin-registry

Good luck!

iPhone Group Messaging on Android with ChompSMS

Group messaging with a couple of iPhone usersHere is another quick hint I wanted to get out there.

If you are a user of ChompSMS and you want to participate in iPhone Group Messages, there are a couple of options you need to enable.

From the main screen hit the menu overflow item in the top right corner (the three dots).  Select Settings and then SMS & MMS Settings.



MMS Settings


Under the MMS section, check the box next to Use MMS for Group Messages. Also make sure Your Mobile Number is set.

If you are in the middle of a group chat it will not fix past messages, but all future ones will appear as a separate list with all participants in it as shown above.

Oracle 11g Flashback Data Archive (FDA) query not returning results for some users

Once upon a time, we were seeing inconsistent results when using Flashback Data Archive (FDA) on an Oracle 11g R2 database.   We had created an FDA and enabled it for a few tables.  User A owned the tables. User B had SELECT and FLASHBACK privileges to the tables in schema A. We inserted a row into table A.X with FDA enabled.

When user A performed SELECT * FROM X AS OF TIMESTAMP SYSTIMESTAMP  they would see the row.

When user B performed  SELECT * FROM A.X AS OF TIMESTAMP SYSTIMESTAMP the query returned 0 rows.

If we remove the “as of” clause and had user B perform SELECT * FROM A.X they saw the rows.

Both users had the same timezone settings. While trying to diagnose the problem with user B, we created user C, also with SELECT and FLASHBACK privs on A.X. The query for user C returned rows.

Thinking something was wrong with user B, we re-created user B. When we first tested it, the query for user B worked! After a couple of minutes, the query stopped returning rows again. Also, running the query for user A (the table owner) also returned 0 rows after a while. The query for user C still returned rows.   WTF?

Here was the solution:

When we examined the SYS.SMON_SCN_TIME table, we found several records where the TIME_DP values were far in the future (the year 2030). At one point a system administrator set the system clock incorrectly, and corrected it several minutes later.

We disabled FDA on the tables, and dropped the FDA and it’s tablespace. We then deleted all records from the SYS.SMON_SCN_TIME table. We created the FDA again and re-enabled it for the tables.

The FDA behaved as expected.

A post about the fix that made this post possible

The first issue I ran into after re-installing WordPress  and attempting to create a post was that the edit field would not accept input.  It appeared to be disabled.

You know, that’s the thing I’m typing in now, so it’s kinda important.

After a bunch of digging, it turns out the solution is to modify the wp-config.php and add the following right above where it tells you to stop editing:

define('CONCATENATE_SCRIPTS', false);

Just wanted to pass that along.