Monday, June 30, 2025

Android Battery Percentage Fail

I inherited a Samsung Galaxy A32 5G phone. According to Wikipedia, it was released in January 2021, which makes it about 4.5 years old. It was dormant for an unknown period of time, and the battery was completely dead when I first took possession of it. After plugging in a USB-C cable to charge the phone, I noticed that the battery did not charge past 9%, even after paying close attention to the battery indicator for more than an hour.

My intent was to sell the phone, and if the battery was near the end of its life, I would have reduced the asking price. That’s when I asked ChatGPT for advice. It responded by saying that while the battery could be degraded, there were other reasons why the phone would not charge past 9%, including:

  • Faulty or dirty charging port
  • Defective charging cable or adapter
  • Software-related issue causing the system to report incorrect battery percentage
  • Hardware issue on the motherboard or charging circuitry

It recommended the following steps to troubleshoot:

  1. Try another cable and charger
  2. Clean the charing port carefully
  3. Force restart the phone
  4. Check battery usage and health
  5. Try charging in safe mode

I tried #1-3 but to no avail—the phone was still stuck on 9%. I could not perform #4 because I could not download a battery checking app without signing in, and I could not run existing T-Mobile diagnostic apps without signing in either. So I skipped to #5 and booted into Safe Mode by (1) holding the power button, (2) long-pressing the “Power off” option, and (3) tapping the “Safe mode” icon. After booting into Safe Mode, the phone indicated that the battery was at 85%, and with further charging it eventually reached 100%. I then proceeded to install a flurry of operating system updates, with each update displaying what appeared to be the correct battery percentage.

Safe Mode saved the day for 2 reasons. First, it allowed me to display the correct battery level. Second, I was unable to update the operating system because the phone required me to charge the phone to at least 30% before installing a software update. Safe Mode allowed me to break out of the infinite loop and get the phone in working order. Perhaps it will help you too.

Thursday, June 19, 2025

Credit Card Fraud Detection Fail

Like many Costco members, my wife and I have Citi Costco Anywhere Visa cards. Before our recent trip to Japan, I logged in to my account to set travel notifications for both of our credit cards, specifying our departure and return dates. I received a confirmation email that acknowledged our travel itinerary, and it contained two travel notification reference numbers, one for each card.

We had planned to heavily rely on Suica, a prepaid rechargeable contactless smart card and electronic money system, while in Japan. Suica can be used to pay for public transportation systems (e.g., subways, buses, taxis) and general purchases (e.g., restaurants, gift shops, convenience stores). In addition to physical cards, one can simply add Suica to Apple Wallet and add funds electronically at any time.

The day before we departed for Japan, I successfully added Suica to my Apple Wallet and deposited 3,000 yen using my Citi Costco Anywhere Visa card via Apple Pay. The balance was updated within 10 seconds of adding funds, so I was fairly confident that I could recharge my Suica card on demand if I ever wanted to spend more than the remaining balance on my Suica card (foreshadowing).

During my first day in Japan, the Suica card worked flawlessly on a shuttle bus and the Tokyo subway system. For public transportation, it is not even necessary to open the Suica card or turn on one’s iPhone. Simply placing the iPhone in proximity of the scanner is sufficient, and the Suica card in Apple Wallet acknowledges the payment amount on the phone screen. So convenient!

On day 2, I successfully recharged my Suica card with a few thousand yen, again using my Citi Costco Anywhere Visa card. After several unanticipated purchases, I needed to recharge again later that same day, and this time I received payment failure notifications when attempting to use my Citi Costco Anywhere Visa card. After repeated failed attempts, I resorted to using my Apple Card via Apple Pay which worked flawlessly, so I assumed that my multiple purchases had triggered Citi’s fraud detection algorithm, despite me issuing a travel notification to prevent this sort of thing from happening. I then started to worry about completely losing access to my Citi Costco Anywhere Visa card, as that would have made things much more difficult while traveling abroad. Fortunately I had other credit cards that I could fall back on.

I had not received any email notifications (yes, I looked in my spam folder), text messages, or phone calls about fraud alerts. In retrospect, I did receive a text message and voice message from Citi alerting me to potential fraud, but I was unable to retrieve them until after I returned to the United States because I had purchased data-only eSIM plans while in Japan—this precluded me from using voice or SMS text. The voice message stated:

“This is the City Costco card fraud department with an important message for Victor Lee. We need to verify some recent activity on our Costco Anywhere Visa card by Citi ending in ####. Please call us back toll free at 844-612-6834 or TTY 711. Activity may be limited until we hear from you. If you wish to remove this phone number from further notifications, you may contact us at the number we left in this message. Goodbye.”

The text message included a link to login to my Citi account, and upon doing so it provided me with a list of charges that were flagged as unusual activity.

Fortunately I was able to recharge my Suica card with my Citi Costco Anywhere Visa card on day 3, and my physical credit card was also working. My wife also received payment failure notifications when recharging her Suica card more than once in the same day with her Citi Costco Anywhere Visa card, and she too was able to use her credit card with other merchants.

As a side note, I attempted to issue travel notifications for my Chase Visa card, but Chase no longer accepts travel notices, stating that “advanced technology like EMV chips and contactless credit cards help protect your credit card information during both everyday life and international travels.” The same is true for Apple Card Mastercard and American Express.

In summary, despite me issuing a travel notification to Citi, I was unable to avoid payment failures. A lesson learned is that it is a good idea to carry multiple credit cards to be prepared for situations like this when traveling internationally. Also, it would have been nice if Citi had sent me an email notification because data-only eSIM plans are commonly used by international travelers, and I would have been able to view the fraud notifications and confirm the flagged purchases sooner.

Sunday, June 8, 2025

SpaceX Starlink at 36,000 Feet


While on board an international flight, Hawaiian Airlines offered free internet with Starlink, a subsidiary of SpaceX. Starlink provides satellite internet for hard-to-reach areas, and I think the Pacific Ocean falls within that category. Download and upload speeds surpass my expectations. I’m flying and surfing at the same time!

Friday, June 6, 2025

Safari Distraction Control

One of my favorite new features of Safari is Distraction Control. Although I usually don’t mind the presence of ads on web pages while browsing, I sometimes want to hide ads or other web page elements when saving a web page to PDF. To do this, click the Page Menu button and then click the “Hide Distracting Items” option as pictured above.

Equally important to know is that Safari remembers the items you’ve asked it to hide, so the next time you visit the same page, those distracting items will remain hidden. Additionally, if other pages on the same web site display the same items in the same way, those items will be hidden too. I learned this the hard way because after hiding distracting items on a certain page, they were hidden site-wide, and I thought that Safari had some kind of browser incompatibility with the web site.

To show hidden items, click the Page Menu button and then click the “Show Hidden Items” option. You can also un-hide distracting items across all web pages. On a Mac, go to Safari > Clear History… and then select the timeframe that you’d like to clear. On an iPhone or iPad, go to Settings > Apps > Safari > Clear History and Website Data and then select the timeframe you’d like to clear.

Thursday, May 22, 2025

Hard Drive Euthanasia

I euthanized a Western Digital My Passport 1 TB external hard drive (Model WD10JMVW-11S5XS1). It belonged to a relative who passed away, and I was hoping to retrieve important information from it (namely bank account information, a will, and/or an estate plan). The drive failed to mount, but I was able to extract files from it using Disk Drill.



Following data recovery, I attempted to format the drive, but attempts to do so using Disk Utility and Terminal commands were unsuccessful. Therefore, I decided to destroy the hard drive to ensure that data could not be recovered.

Curious to see the inside of the hard drive, I disassembled it by popping off the plastic casing and removing the Torx screws. When I finally uncovered the platter, I bent the read/write head and arm so it could no longer function. I then grabbed the platter with pliers, and to my surprise, it shattered to pieces. I had assumed that the platters were magnetic media similar to floppy disks but apparently modern hard drives have platters that are made of glass or glass-ceramic base materials which are then coated with a thin layer of magnetic material where the data are stored.


I was not wearing protective eyewear, and fortunately I did not sustain any injuries other than a small superficial scratch on my finger. If you ever decide to disassemble a hard drive, be careful! Next time I euthanize a hard drive, rather than taking it apart I might smash it with a hammer instead.

Monday, April 28, 2025

Image Compression: ImageOptim vs. Google Photos

When compressing images such as .jpg or .png files, I usually use ImageOptim which is available as a macOS application as well as an online interface that works with any operating system.

However, did you know that you can accomplish the same thing with Google Photos? As long as you store your photos using Storage Saver mode (which compresses your images, as opposed to original quality which does not compress your photos), you can download them in their compressed state.

I decided to compare file sizes and image quality for these two techniques. For ImageOptim, I enabled all compression methods, opted to strip JPG metadata, and enable lossy minification with JPG quality set to 80%. In all fairness, I do not know if these settings are equivalent to the compression algorithms used by Google Photos, but I believe these were more or less the default settings that were present when I installed ImageOptim.

 

From a recent photo shoot, I edited 93 photos in Adobe Lightroom Classic and exported them in JPG at 90% quality. These 93 JPG photos occupied 530.9 MB. After uploading them to Google Photos and downloading all 93 photos, the collection was compressed to 172.1 MB (32.4% of the original size). After compressing them with ImageOptim, the 93 photos were reduced to 159.7 MB (30.1% of the original size).

In terms of image quality, I cannot see any noticeable degradation in quality when displaying the photos in full screen mode on my 32-inch monitor. It is possible that if I enlarged all photos to 100% magnification I would see artifacts in the compressed images, but for all practical purposes, the compressed images with both Google Photos and ImageOptim look no different to me than the original uncompressed images.

In summary, I observed a minor advantage in file size when compressing JPG images with ImageOptim as compared with Google Photos, but this may simply be due to my ImageOptim compression settings. I think the one advantage of ImageOptim is that you can choose your JPG compression quality, whereas compression with Google Photos is limited to their default settings. Another advantage of ImageOptim is that image compression is quick, whereas compression with Google Photos requires uploading and downloading images so is limited by internet bandwidth. Overall, I find both compression methods to be perfectly suitable for my needs, but I’m sticking with ImageOptim for macOS because of its convenience.

Friday, April 11, 2025

Apple iPhone Battery Replacement

I purchased my iPhone 12 Pro Max in November 2020. After using it for 4.5 years, its ability to hold a charge has decreased noticeably, and the iOS Battery Health & Charging setting displayed a “Service” indicator (as pictured above) with a maximum capacity of 78% (as pictured below). Because I am happy with the features of my existing iPhone, I decided to replace the battery and hold off on upgrading for at least a couple of years.

There are 2 Apple stores in my area, and both are situated in crowded malls. I initially dreaded hunting and paying for a parking space and battling crowds just to visit the Apple Store, but I discovered from the iPhone Battery Replacement website that my local Best Buy was an Apple Authorized Service Provider, so I scheduled an appointment there. My local Best Buy is less than a mile away, there is plenty of parking, and it’s usually not very crowded. There were also more appointment slots available, and I was able to find a time that matched my schedule the next day.

Upon walking into the Best Buy for my appointment, I discovered that the service was performed by Geek Squad. Nothing wrong with that, just an observation. Despite me scheduling an appointment through the iPhone Battery Replacement website and specifying that I wanted my iPhone 12 Pro Max battery replaced, the Geek Squad staff did not receive that information. After telling my service technician that I had an iPhone 12 Pro Max, he checked their inventory and said that I was lucky because they had 1 battery left. I think Apple could provide more seamless services by notifying their Apple Authorized Service Providers about the details of the service. Had they run out of iPhone 12 Pro Max batteries, I would have had to reschedule my appointment. If I ever use an Apple Authorized Service Provider again, I will know to call ahead of time and inquire about parts inventory. Anyway, the service technician ran diagnostics on my phone and confirmed that the battery needed replacement. I paid $89 + tax and was told to return in about 3 hours to pick up the phone. After picking up my phone, I verified that the Battery Health & Charging “Service” indicator went away and the maximum capacity was back at 100%.

I’ve only been using the new battery for 2 days, but I’ve felt that its ability to hold a charge is only slightly improved, whereas I expected a dramatic improvement. Following my non-scientific observations, I speculated whether they might have accidentally installed an iPhone 12 battery in my iPhone 12 Pro Max, and I had a brief conversation with ChatGPT, It stated that it’s possible that an incorrect battery was installed and that an iPhone 12 Pro Max battery should have a capacity of ~3,687 mAh. It said that I could check my battery capacity with coconutBattery and so I did. It confirmed that my battery had a full charge capacity of 3839 mAh and a design capacity of 3666 mAh, so the numbers are compatible with an iPhone 12 Pro Max battery.

 

ChatGPT also stated “Let it go through 2–3 full charge cycles to see if calibration improves performance.” There is an Apple Support article about recalibration of battery health. Note that recalibration in this context does not refer to fully discharging the battery to 0% and fully charging it to 100%. Instead, recalibration happens automatically with normal use of the phone. Although my phone does not state that it is recalibrating the battery, I will wait a couple weeks to see if maybe my perceptions of battery life change and/or recalibration results in more accurate reporting of remaining battery life.