Panama City: Transit, Wireless Data, and Canal Info

We had a wonderful week in Panamá, including Panama City and Bocas del Toro/Bastimentos Island. I just wanted to spew some info and links here for others who may be visiting and want to know how to get around by bus/rail from PTY and how to get wireless data service going using a local carrier on an eSim.

Transit
After landing at PTY, get yourself a Bus Card and charge it with a few dollars to get around for your trip. At PTY’s baggage claim area and to the left of the doors to go outside, you’ll see at least one staffed booth. I approached it and a woman inside selling SIM cards offered to sell me a Bus Card. It was $5 for the card, which includes $3 of value already on the card and you’re spending $2 to obtain the card. I tried asking her for a RapiPass, but she didn’t seem to know what I was talking about, most likely my muy mal español. After I bought the card for $5, I told her I wanted to put another couple bucks on it, so she walked me to a red automated kiosk adjoining her booth and helped me put another couple billete on the Bus Card.

From the Terminal, I had planned to walk us 3 blocks to catch an S480, which would have taken us all the way downtown without transfers, but it was pouring rain. Instead, we walked across the first two lanes of traffic and started walking to the left down the pedestrian sidewalk and the buses. At this point, we had several cab drivers following us trying to pitch their services, but I love mass transit and refused. Sadly, it had been a long flight and before I could get us on a different bus that left from the covered/dry area attached to the airport my lovely bride had reached her end and desired a cab. We overpaid $30 including tip to go to the old town, but it was probably worth it.

I wanted to catch a Diablo Rojo while we were there, and I can report they are still operating as of this post, but we never rode one – came so close though! None of them seem to be labeled and I don’t know their routes, so we opted to stick with official buses and trains (Linea 1 y 2) as we were packing a lot into a couple days in Panama City.

Riding the bus… For getting a smaller local bus or a Diablo Rojo, you may need to wave them down. For most of the bigger Metro buses, they seem to just stop if you’re at a marked bus stop, but you can even wave them down if they’re in a slow area (we did this once coming back from Panama Canal). We used one Bus Card card for the 4 of us – as we boarded the bus, the first person touches the card to the yellow scanner body, pushes through the turnstile, and hands the card back to the next rider. For getting off the bus, you just need to scan the card once and then we each walked through the turnstile. For riding the trains, entrance is the same as buses, but to leave a train station you each must scan once and hand it off to the person behind you, we moved to a quieter turnstile and found hand-offs easy.

For getting to Panama Canal, it was pouring and we got on the wrong bus. Fortunately, a lovely local Panamanian woman noticed our error, took us off the wrong bus, and walked us to Estacion Cinco de Mayo – we thanked her before she walked off in the pouring rain to probably catch the next bus. She was so kind and this should help you understand how warm and welcoming Panamanians are. Once again, thank you rojo-hooded señora!

After she guided us to Cinco de Mayo Estacion, we took Linea 1 to Albrook. At Albrook station, we scanned our Bus Card to exit and walked up to the bridge to walk over the buses to the transit terminal. From the transit terminal, we picked up a RapiPass card, because I incorrectly assumed we needed one – note, RapiPass cards have the advantage of working on buses, trains, and turnstiles inside the Albrook Bus Terminal for accessing long range buses, but for accessing local buses you do not need the RapiPass.

Upon reaching the ground-level floor at the Albrook bus terminal, we walked to the far right and out to the doors to the left to board C810 on our way to Panama Canal. This is a local bus and you can board for a $0.25 tarifa using either a Bus Card or a RapiPass. For getting to Albrook Airport a day later, we took C820 from Albrook Mall/Transit Hub, which is the bus directly in front of the C810. The C820 doesn’t stop right at Albrook Airport, but it’s only a 4-block walk.

We always recharged our Bus Card and RapiPass at Albrook or PTY at standalone automated kiosks, but there’s suppose to be ways to recharge via the web and here, but we never got this to work – I got as far as entering how much I wanted put on the Bus Card and entered my credit card info, but the website always reported incorrect “BIN”. Maybe I should’ve tried a debit card instead of a credit card?

For useful apps, I trialed PTYCards for free for a week and found it the most useful for checking card balances and uses; it can look up values for RapiPass and Bus Cards. If you want a similar app with no trials, get Saldo Panamá which does the same thing but seems to time-out once in a while for me. For finding bus times and routes, I relied on Google Maps (transit option) and Moovit. I also had MiBus Maps Panamá, but found myself not using it while we were there. Finally, I also tried Metro Panamá, but found it to be the least useful; it offers info about stations, but it was unable to top-up any of my cards despite bragging this as a feature and it has a button for directions that only redirects to Google Maps.

Wireless Data

I kept my existing Total Wireless (now “Total By Verizon”) SIM installed inside my iPhone XS Max and added a prepaid data-only local eSIM through Airalo. Airalo offers several options, a country-specific local eSIM (what I selected), a region-specific eSIM (might be useful for folks on a cruise visiting a few nearby countries), and a global eSIM; these eSIMs increase in price. A Panamá-specific 3GB eSIM that is good for up to 30 days cost me $18. I bought the eSIM within the app and installed it before we left – it doesn’t actually activate until you start using data in the country it is activated for. The Panamá-specific eSIM allowed tethering by sharing its wireless data to my laptop and to my kids iOS devices.

Upon arriving in Panamá, the local eSIM didn’t seem to immediately pass data and I got concerned. Then I went into the SIM settings and enabled “Roaming” and data started working. While in Panamá, the eSIM mostly offered access through the provider Tigo, but on occasion I found it connected to Movistar. Tigo connectivity was good through most of Panama City; however, it only mustered a couple bars in the airplane at PTY, several miles south of the city. Later on the trip, we flew to Panamá’s gulf side to visit Bocas del Toro where Tigo’s connectivity was also good, but it was lacking soon after arriving at Red Frog on Bastimentos Island – note, Bastimentos is well off the beaten track lacking infrastructure like city streets. If I ever make it back to Red Frog/Bastimentos, I might try to improve connectivity by going into my phone’s SIM card settings and change the carrier from automatic to choosing a specific carrier – I didn’t bother to attempt this change until we were back in PTY and on our way home. On our Panamá-specific local eSIM plan, we only used 2 GB over an 8 day trip. Even if we had exceeded our 3GB cap, Airalo offers top-up packages through the Airalo iOS app. Overall, I think you’ll be happy with Airalo and I plan to look it up for our next international venture. Oh, and if you want to price shop for a low-cost eSIM for a specific country, I found the iOS app eSIMs to be useful. DENT Wireless seems to have even better pricing, but Airalo’s excellent integration made it worth an extra $5 for me.

Canal Info

Related to finding Panamax ships moving through the Panamá Canal download MarineTraffic. And as mentioned above, take the C810 bus from Albrook, it brings you right to the steps leading up to the Panama Canal’s visitor center at the Miraflores lock.

DeltaWifi.com and Gogo update

It’s been a few years since I first wrote about passing an hour of free TMO Gogo inflight to a Mac. We are on our way from Panama City to LAX (7 hour flight) and boarded an old Boeing 757-200ER that still rocks the old Gogo internet – woohoo! If you’re on a Delta jet with the new Ku wireless system, the instructions below likely do not work for you.

1. Open/switch to Safari and verify the “Develop” menu is present, between Bookmarks and Window menu options, in the menu bar at the top of your screen. If not, enable it with these instructions – and for those who cached my page before going taking flight, go to the menu bar and choose Safari->Preferences, click the Advanced tab, and check the box for “Show Develop menu in menu bar” – these instructions still work in macOS Monterey.
2. From Safari’s Debug menu open a new browser window/tab, preferably in incognito mode (command shift N), and choose Develop->User Agent->”Safari – iOS 14.0 – iPhone” (iOS version number doesn’t matter).
3. Go to the airport menu in the menubar on your Mac and join “DeltaWiFi.com”.
4. A new Safari window will probably pop up on it’s own, quickly go to Develop->User Agent and make sure there’s a check mark next to “Safari – iOS 14.0 – iPhone” or similar and, if not checked, select it to re-select it.
5. On the DeltaWiFi.com page that loads, you should be able to scroll down to see the pink TMO option. If the graphics and text are too large, command and “-” to make it fit in your window better. If you don’t see the TMO pink banner, try opening a new window/tab in incognito mode and make sure you completed step 3:

6. Enter a TMO phone number. Each time you request a free hour it must be the first time you tried with a specific TMO phone number for that flight.

7. You should now be online if you have a green bar near the top like the screenshot, below.

Bonus: the MacBook Pro/Gogo wifi internet connection can be shared to a tethered iOS device. For whatever reason, Bluetooth PAN is broken on my Mac running Monterey, but connecting an iPad to a Mac with a USB cable and setting the mac’s System Preferences…->Sharing window gives the iPad internet access:

Sharing_iPad_USB

Double Bonus: spoof-mac, as described here (or you could also try macchanger), allows more than an hour on the same Mac (if you have multiple active/valid TMO lines). While installing spoof-mac, my Mac was stuck on “brew update –preinstall” for a few minutes and spent another 20 minutes(!) downloading files, so make sure you install spoof-mac well before your first free hour is about to end – and if you don’t get spoof-mac installed in time, there’s one more item you can try near the end of this post.

My mac’s MAC address went from c4:b3:01:bb:0f:09 to 00:05:69:4D:C6:48; however, when I tried this, instead of seeing the green bar as in step 7, a red bar popped up saying that only one device is allowed per number per day. This was odd and we figured browser cookies were also behind this nonsense, so we brought up a new tab in incognito mode and this allowed another hour on the same Mac.

Here are the Terminal.app commands we used to install spoof-mac with brew (takes over 20 minutes on Gogo) and then spoof your mac’s AirPort MAC to get another free hour.

1. Open Terminal.app on your Mac and enter the following commands one at a time:
brew install spoof-mac
2. Go into System Preferences…->Network->AirPort->Advanced… and select the Hardware tab. At the “Configure” contextual menu, change from Automatically to Manually. Click OK, then Apply, and close out of the Network preference pane.
3. Return to Terminal.app on your Mac and enter the following commands one at a time:
spoof-mac list
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z
sudo spoof-mac randomize en0
spoof-mac list

3. The last command in the above step is optional if you want to see what your new MAC address is.
4. Return to step 2 near the top of this blog post to request another hour of Gogo through TMO.

Alternatively, if you were unable to install spoof-mac it may be possible to spoof your AirPort card’s MAC address at en0 by executing the following Terminal.app command:

sudo ifconfig en0 lladdr 00:bb:cc:dd:ee:ff

(change “00:bb:cc:dd:ee:ff” to whatever you want your MAC address to be)

Open Core Legacy Patch and macbook6,1

I decided to bring an old MacBook back to life by installing an extra 1TB SSD and macOS Monterey. Aside from needing to erase and format the SSD with another Mac (the MacBook couldn’t seem to do it from the Monterey installer). Anyway, the process was easy enough with Open Core Legacy Patcher. I may end up helping others do this and figured I’d leave myself and others a cheatsheet:

Everything went fine and I’d definitely try this on another machine if the opportunity arises. Our macbook6,1 only has 8 GB of RAM and so far things seem to be running fine.

Adata XPG SX8200 Pro, Samsung 970 Evo Plus, and Sintech

In early September 2021, I popped a brand new 2TB Adata XPG SX8200 Pro into a Sintech adapter and the pair into my mid 2015 15-inch MacBook Pro (MacBookPro11,4). The tandem worked beautifully until February 25 when the Adata drive’s GUID partition became so corrupted that the drive wasn’t viewable to macOS or readable at all. Fortunately my Time Capsule had a backup less than 8 hours old.

In an interesting twist, I used the power-cycle method on the Adata SSD and was able to get it working again. My data couldn’t be recovered from the Adata SSD, but I was able to erase and re-format it as an APFS drive again. Even though Adata provided an RMA under warranty if I want to send it in, I flashed my data back to it and am using the Adata drive as-is in the Sintech adapter again. I will follow up with Adata to see if they still want to see this drive as something caused it to fail; it may be the drive is failing, the Sintech adapter is dying, or maybe even the MacBook Pro sent some unkind juice?

While the Adata SSD was briefly out of action, I popped a Samsung 970 Evo Plus 2TB into the Sintech adapter. The Samsung SSD seemed to work for about 12 hours, but the next morning the MacBook Pro was booting to the desktop and then automatically restarting on its own. The Samsung SSD was manufactured September 2021 and I tried to patch it with Samsung’s latest firmware “Samsung_SSD_970_EVO_Plus_4B2QEXM7.iso”, but this file said the Samsung’s SSD was already current. Despite this ad saying that the Samsung 970 Evo Plus 2TB is compatible if running the current firmware, I didn’t find this to be true. I also tried the Samsung SSD with another Sintech adapter I have (the stubby one for MacBook Air devices), but it didn’t work. After all this happened, I decided to return the Samsung SSD as I seemed to have the Adata device back up and running again.

Below are Blackmagic numbers with the Adata drive and this Sintech adapter. I’m pleased with the pair when they keep my data intact:

Windows and Re-connecting to Network Drives

Sometimes my work machine running Windows 10 loses it’s VPN connection, but when the VPN connection is re-established I’m finding the network drives no longer want to connect.

Click the Start button, then type in “cmd” and enter to bring up a command prompt. Then insert the following text:

net use p:

Which then spews out the following if you’re lucky:

Local name p:
Remote name \\yourcompanydomainname.com\projects
Resource type Disk
The command completed successfully.

After returning to navigate folders in Windows indeed the network file paths are working again – woohoo! I think in the old days Windows I occasionally had to re-run a .bat script to re-establish network file path connectivity, but this seems to be a bit easier.

DRAT and macOS Monterey

Earlier this week, a third party NVMe SSD failed as the boot drive inside my MacBookPro11,4. The drive had been backed up less than 8 hours from the disaster, but I was hoping to fiddle with the failed drive a bit more to recover files on the desktop that were saved within the last 8 hours.

Jivan Pal and others have developed DRAT for macOS and linux to work with APFS drives that might have some sort of corruption (I’m assuming this is extremely rare). Immediately after the failure, the SSD drive wasn’t visible in Finder or Disk Utility and obviously wouldn’t mount. After employing the power cycle method using an USB enclosure the NVMe was suddenly viewable in Disk Utility, but still couldn’t be mounted.

And that’s when I came across Jivan Pal talking about his open-source software, DRAT. My NVMe SSD is throwing error messages that mention the Space Manager is invalid. I’m not sure DRAT will help with this issue, but I figured it was worth a shot before I sent the SSD away on warranty for a replacement.

To install DRAT, you’ll need to visit this site, find the highest number for the latest version, click the triangle next to “Assets”, and if you’re on a Mac click on the file name “drat-0.1.3-darwin-amd64” or whatever the number is that corresponds to the version you’re seeing when reading this.

When the file is downloaded place it in the /Applications/Utilities folder, then open Terminal.app to execute these two lines of code:

cd /Applications/Utilities
chmod +x drat-0.1.3-darwin-amd64
./drat-0.1.3-darwin-amd64

When you execute the code with the last line of code, move back to Finder and offer access to this app in your Security settings, Apple logo->System Preferences…/Security & Privacy->General tab, and click “Allow Anyway”.

As suspected, the NVMe SSD is too far gone as back in Terminal.app and a request for DRAT to inspect the drive yields the following output:

sudo ./drat-0.1.3-darwin-amd64 inspect /dev/disk3s1
Password:
Opening file at `/dev/disk3s1` in read-only mode ... OK.
Simulating a mount of the APFS container.
Reading container superblock at address 0x0, assuming default block size of 4096 bytes ... FAILED: read_blocks: An unknown error occurred whilst reading from the stream.
ABORT: Failed to successfully read block 0x0.

I wasn’t able to recover any files with DRAT, but I think I was close. I ended up using the trial version of Disk Drill to view a single file I was curious about and stopped my recovery effort there – my other backup was good enough. Should I return to DRAT, the online instructions were helpful.

Spectre Automatic Firmware Upgrade and Permissions

I’m working on a project with an Advantech router (SR305 v3) that needs infrequent firmware security updates. It has the ability to pull the firmware updates from a third party web server on a specified schedule. To do this, the web server (Apache running on macOS Monterey Sonoma) needs read access to the directory and files the firmware is saved in.

Advantech’s latest firmware is usually posted here. After downloading the firmware files and saving them in the web server directory “Spectre_firmware”, proper file and directory permissions are enabled on the web server by opening Terminal.app and running the following command:

sudo chown -Rv _www /Library/WebServer/Documents/Default/brad/images/Spectre_firmware

This information is for later reference if we decide to script the update process.

Reset Homebridge Authentication Credentials

I had to restore my iPhone from a backup and in the process wiped out my Authenticator/two factor information, which disabled Homebridge authentication. No sweat, from Terminal.app:

sudo hb-service stop

Navigator to your home folder and Homebridge settings:

cd ~/.homebridge

Now rename auth.json:

mv auth.json auth_old.json

Restart homebridge:

sudo hb-service start

And with a browser navigate to you’ll be able to authenticate with admin/admin through Homebridge’s web user interface. In the upper righthand corner of your web browser’s tap the 3 dots, tap “User Accounts”, and finally tap “ENABLE 2FA” to re-enable two factor authentication.

Installing Mojave in VirtualBox

I have some 32-bit apps I wanted to retain access to, so it was time to virtualize Mojave under Monterey. I found these excellent instructions, hopefully they help you too:

https://www.whatroute.net/installerapp2iso.html

Of course I installed VirtualBox Extensions in the middle of this and somehow needed to follow advice at these links:

https://stackoverflow.com/questions/65149373/kernel-driver-not-installed-rc-1908-getting-errors-in-macos-big-sur-11-0-1

https://stackoverflow.com/questions/41691803/how-to-install-guest-addition-in-mac-os-as-guest-and-windows-machine-as-host

And note to self and others who arrive here, as of today I do not recommend instructions in the following two links as they did not work for my set up:

https://appletoolbox.com/need-to-run-32-bit-apps-on-macos-catalina-use-a-mojave-virtual-machine/

https://forums.virtualbox.org/viewtopic.php?t=95049

So far things are working well. If all of this virtualization should later fail and I’m unable to continue on with my previous work in the app Addresses & Labels, I vow to follow others’ advice and give this app a shot or maybe even consider gLabels through macports.

Also, for those coming here for the first time, maybe consider skipping all the steps above and try this instead.

ABSPATH and WordPress

My blog was displaying a funky error message at the top of every page:

ABSPATH already defined in /Library/WebServer/Documents/Default/wp-config.php on line 25

After looking at line 25:

define('ABSPATH', dirname(__FILE__).'/');

I added one line above it:

if ( !defined('ABSPATH') )

And now the funky error message is gone.