Swift, build, run, LMP?

For future reference, when building a Swift package, use Terminal and move into the directory of the Swift project. In Terminal, type:

swift build

The build should finish with “Build complete!”

For the hcitool project, I then tried to run it with:

.build/x86_64-apple-macosx/debug/hcitool ibeacon

A prerequisite for this stunt is to have Xcode installed if you’re on a Mac. Eventually I want to find out my Mac’s Bluetooth LMP with instructions on this site by using this command:

sudo hcitool info 9C:65:B0:A0:1E:BD

I’m hoping I find an LMP of 8. Maybe I’ll get another chance if this issue is resolved.

Bypass Monterey Install Error on mid-2015 15-inch MacBook Pro

My above-referenced machine has a third party SSD inside of it, which when updating to Monterey through up this error message:

To get around this, I happened to have an original Apple SSD that came with another MacBook Pro. I opened the MacBook Pro, removed the 3rd party SSD, inserted the original Apple SSD, and then put the 3rd party SSD in a USB enclosure.

Next, boot the MacBook Pro while holding the option key down. Then, choose the “macOS Install” disk, which was created when the error message shown above was thrown.

Your Mac will probably restart at least 3 times all on its own, this is ok. After the restarts are done, you’ll be booted to the desktop of your 3rd party SSD that is now in the USB enclosure. Re-launch the Monterey Installer and you’ll now be able to install the 3rd party SSD in your USB enclosure. When the installation is finish (about an hour), shut the machine down and move the 3rd party SSD back inside your MacBook Pro. Press the power button to boot and be sure to hold the option key down to choose your internal 3rd party SSD.

Kind of a hassle, but it works.

Ballcock and Toto Aquia II CST416M

Our 15-year-old Toto Aquia II CST416M toilet had been making a hissing noise at the Dual-Max flushing system valve, seem to allow water to leak past it. Just turn the water supply off, lift off the green plastic cover to access the ballcock cap – I cleaned it, but the hissing continued after it was reassembled and the water supply turned back on.

Ballcock cap is listed as THU302 “Diaphragm Cap – Lavelle” in an older parts list from 2008, but it appears removed from Toto’s 2017 parts list – go figure. Park Supply of America sold me a Lavelle Industry Inc. Korky R528 Ballcock Cap Assembly replacement (UPC 749306528039) that was easy to install and immediately corrected the issue. Thanks, PSA and LII!

How to upgrade node with brew on macOS

I needed to upgrade a wemo Homebridge plug-in on my Mac mini, but before I could node had to upgraded from its current version v14.15.2 to v14.16.1. To find out the current version the mini was running, fire up Terminal.app type the following and press the “enter” key:

node --version

To find out which node versions brew has already installed:

brew search node

My mini had node@10, node@12, and node@14 installed, so I just typed in the following to go to the next version:

brew install node@15

It seemed to install fine, but I found the same output when executing the following command:

brew search node

And, I see what I did wrong, I upgraded to node v15.14.0 based on the following command:

node –version

I’m not sure why brew doesn’t show “node@15” when I search for installed versions of node, but I’ll let it go for now. Also, I should probably start to uninstall some older versions of node, but for now they can stay.

** Update 5-19-2023 **
I don’t remember how I resolved the situation above, but today my Mac mini was running node 16.18.1 and it upgraded to 16.20.0 using the following command:

brew upgrade node@16

After the upgrade, the following command showed 16.20.0 had installed and was running:

node -v

Bluetooth PAN and Big Sur

Back on High Sierra when I wanted to tether my MacBook Pro to my iPhone and save some battery power, I used Bluetooth and chose “Connect to Network” through the Bluetooth icon up in the menu bar. In Big Sur, that changed: when you go to the Bluetooth menu and choose your iPhone, it briefly connects and then disconnects.

I found that the “Connect to Network” option is now buried. Assuming you’ve already paired your iPhone via Bluetooth to your Mac, you can enable Bluetooth PAN using the following:

1. On your Mac, open “System Preferences”.
2. Click “Bluetooth”.
3. Right-click on the name of your iPhone and choose “Connect to Network”.

You’ll now be tethered to your iPhone via Bluetooth PAN. I only do this when I have low bandwidth needs and plan to stay tethered for a long time on battery power. In limited tests with speedtest.net and a tethered Bluetooth connection on Total Wireless, my macbookpro12,1 gets about 0.75 Mbps up and down. When tethering via wifi, the bandwidth jumps to about 40 Mbps down and 7 Mbps up. Finally, tethering via USB was nearly the same as the wifi-tether, although via USB the ping time dropped by 10 ms. This is with crude testing of one sample run for each connection type.

Sideload apps on iPad 4

Riding in the Nemo’s brand new Canyonero was outstanding and I told Liam and Ella all about it. Inspired by the vehicle’s high-tech gadgetry, Liam and I talked about upgrading our New Beetle with a flat panel display. I told him about Adam Bell’s Ignition and mentioned the idea of repurposing our old iPad 4 to the Beetle’s dash. He seemed to be game, so we looked more into it.

By installing a semi-tethered jailbreak and ReProvision, we could keep everything signed on the jailbroken iPad. Unfortunately, our iPad 4 has been upgraded to iOS 10.3.3 and Ignition is only compatible with iOS 8.1, 8.2, and 8.3; while it’s possible to downgrade the iPad’s iOS, we can only get back down to 8.4.1 and Ignition doesn’t run there.

Not easily giving up, we found CarPlay iOS, available through Cydia for $4/license and ventured on. Next step: jailbreak the iPad.

The iPad 4 is 32-bit and Big Sur and Xcode 12.3 only sideload to 64-bit devices. We have a Mac mini still rocking High Sierra and after reviewing this guide we grabbed a 32-bit compatible version of Xcode to side load the iPad 4 jailbreak using these instructions:

  1. Get access to a Mac running High Sierra
  2. Install Xcode 8.3 from here: https://developer.apple.com/download/more/
  3. Launch Xcode 8.3 and tap Agree on the License Agreement
  4. Connect your iPad to your Mac and, if asked, tap “Trust” on the iPad
  5. In Xcode, choose your iPad as a Build Target, go to Product->Destination->Devices->(choose your device), quit Xcode, and then open Xcode again
  6. Create a new application (File->New->Project…), choose Single View Application, and give it a name (e.g. break) and an identifier (e.g. jail)
  7. Xcode will then ask where you want to save the project, choose the desktop for simplicity
  8. Go to the Xcode menu and choose Preferences…
  9. Click the Accounts button, in the left hand pane click the “+” sign, and add a profile by logging in with your Apple ID (you do not need an Apple Developer account, an iCloud account works fine)
  10. In the right hand pane, you should now see your name followed by “(Personal Team)” with the role “User”
  11. Next, grab the file h3lix-RC6.ipa from here: https://h3lix.tihmstar.net
  12. Move the downloaded .ipa to your desktop
  13. Next, download this script (or read about patch here)
  14. Move the script to the desktop
  15. In Terminal.app, make the script executable with this command: “chmod +x patch.sh”
  16. Run the command by typing (without quotes) “./patch.sh h3lix-RC6.ipa” and then press enter
  17. Download iOS App Signer, unzip it, and launch iOS App Signer
  18. Drag the .ipa file modified by patch.sh and drop it on to iOS App Signer’s “Input File” field or click Browse and navigate to the .ipa on your desktop
  19. In iOS App Signer, go to the dropdown menu for Signing Certificate, choose the Apple Development certificate with your name, click “Start”, and iOS App Signer should produce another modified .ipa on your desktop
  20. In Xcode, go to the menubar and click on Window->Devices
  21. Locate your connected device in the list and click the + sign
  22. Choose the file iOS App Signer just created for you
  23. Moving to your iPad, notice an .ipa will appear on your device home screen, but don’t launch it yet
  24. Tap Settings->General->Device Management
  25. Find and tap the new profile
  26. Tap “Trust” and the .ipa you installed can now be tapped

To keep the jailbreak intact, we also installed ReProvision through Cydia. Fire up Cydia.app, go to Sources->Edit->Add, enter “http://repo.incendo.ws”, and tap “Add Source”. In Sources, tap Matchstic->System->ReProvision->Install. From the home screen of your iPad, tap “ReProvision” and on the right hand side of the screen and “h3lix” as an app to sign and then tap “Sign”. It will take a minute or so, but eventually ReProvision will sign the app and then continue to sign the app when it is within 2 days of expiring.

macOS Server and Wildcard Certificates

In a bid to bring automatic wildcard renewal of SSL letsencrypt certificates to my Mac mini running macOS Server, I used Eric’s instructions and only tweaked one line in the section “Creating the certificate” by changing this line:

sudo certbot certonly –standalone -d server.internal.company.ca

to this line:

sudo certbot certonly –manual –preferred-challenges=dns –email admin@company.ca –server https://acme-v02.api.letsencrypt.org/directory –agree-tos -d *.company.ca

When –preferred-challenges=dns is used, I had to create a TXT record with my registrar, but after you doing this once for each domain it shouldn’t be necessary again. I’ll report back when I know the rest of Eric’s scripts are working.

** Update 1-28-2022 **

I switched to using Bernard Teo’s Webmon, OpenVPN, and letsencrypt and I couldn’t be happier. I’ll do a follow-up post/review on my experience soon.

Curt 18085 and Workaround for Potential Frame Rub

I have yet to bring our fat bikes anywhere by car with a new Curt 18085 bike rack we picked up for two reasons:

1. We need to pick up the tensioning strap that takes some bounce out of the rack
2. The rack has padded arms that hold the frame and I’m concerned about potential frame rub

To fix #1, I’ll pick up Curt’s recommended 18050 strap. For #2, the cheapest workaround may be to identify what part on the bike frame will contact the rack’s padded arm, clean the bike frame’s identified area, and then place a frame sticker/piece of packing tape on the identified frame area before loading it into the rack. Fortunately, I’ve got a bunch of large frame stickers that I picked up cheap on eBay that I can burn for this task. I’ll report back on how it works in the wild.

** Update 7-21-2021 ** The frame stickers work great and this rack has been outstanding. Even better, this rack accommodates my Surly Big Dummy, a double-bonus I hadn’t anticipated!

Surly Big Dummy, Yokozuna, and Rohloff Speedhub

After using a tandem cable kit set that wasn’t quite long enough, Merry Sales’ Jim Porter kindly helped identify Rohloff Shifter Cable Set 63640 (UPC 0899430044112) to get my Rohloff twist shifter mated with a Speedhub 500/14 on my XL frame Big Dummy, which requires a bit extra length.

Prior to this post, my Dummy had Rohloff shift housing and cables installed, which are adequate, but after enjoying Yokozuna’s strong Reaction brake housing and cables I knew I had to try their shift housing and cables. On the Big Dummy’s long cable run, the compressionless brake housing brings responsiveness I haven’t seen in other housings and I’m hoping for something similar with Yokozuna’s shift housing and cables.

Installation goes just like any other cable and I used Rohloff’s how-to video for installing the cables to the twist shifter and supplementary video for an external mech setup.

First thing I noticed after pulling the Yokozuna Shifter Cable Set from the packaging is that the housing has a smaller diameter than Rohloff’s cables, so much that I had to measure the difference: Rohloff housing has a 4.8 mm diameter and Yokozuna has a svelte 4.1 mm diameter. I didn’t weigh the two, but I’d expect a difference.

To fit the cable housing to the Dummy, I ended up cutting 50 mm of housing from the lengths provided by Yokozuna, I aimed for twin 2250 mm housing lengths and this proved useful, as I later had to switch the cable positions around and cut off another centimeter.

After getting the cables on the Dummy in my shop and running through the gears, I can already say I’ve never felt my Rohloff shift through gears this smoothly. I’ll verify this with the Dummy out on the road tomorrow and come back with an update, but I’m already tickled to now have Yokozuna on my front brake and shifter. Note, a future post might be when I’m able to return Yokozuna to the rear brake, which is where the most noticeable benefit is seen on this bike – I expect to do this when I replace the rear caliper after this winter.

I’ll pass this back to Merry Sales, but the set includes cable caps and these are superfluous to Rohloff internal and external mechs.

** Update 12-4-2020 **
I’ve ridden the Dummy a few times now and will re-state how smooth and easy shifting is with Yokozuna shift housing and cables. I’m hoping this holds up!

OpenCore 0.6.3 and macpro5,1

My son has been using Catalina on his 2009 Mac Pro (macpro4,1), firmware upgraded to a macpro5,1 over a year ago. Catalina and OpenCore 0.58 along with his RX580 4GB have been excellent. He can select any of his 4 disks at boot time through a graphical user interface and OpenCore helps with system updates by tricking Apple’s software into believing your Mac is no different than a natively supported machine.

With Big Sur now available and OpenCore at 0.63, he was ready to upgrade his Mac. We backed up his data and proceeded to follow these instructions, everything through Part I seems to be running fine. Will report back after we update through Parts II and III. Also, unless things have changed with the instructions above, this video found from this forum shows how to modify the EFI so that Big Sur can be updated – note, the instructions in this video should be reversed when you are done with Apple’s updates and you want to optimize speed of your Mac Pro. Also note, we were spared from having to mess with Clover to enable the onboard ethernet through the Intel Mausi Kext, I believe the config.plist file linked within the instructions above helps to enable this for Mac Pro hardware.

Last note for now: we find that Clover Configurator works well for mounting the EFI and also, the drive in the SATA bay seems to contain the EFI that needs editing, not the EFI on the NVMe SSD. If we had removed the SATA drive from the Mac Pro, the NVMe’s EFI would probably be the main drive initiating OpenCore at boot time.