Thursday, November 13, 2025

Payless Car Rental - The Sequel

In my last blog post, I wrote about a bad experience that I had with a car rental from Payless. It turns out that there was a sequel to the saga which I discovered when I received the following letter via US mail:

I was being charged $727.41 for “glass damage” that I did not incur. In fact, I have photographic evidence that all the windows on the Hyundai IONIQ 5 were intact when the tow truck driver took possession of the vehicle:

I called 1-888-728-5377 as instructed on the letter from Payless. When speaking to an agent, I was told that the number is only for Avis and Budget rentals, and I was instructed to call 1-800-729-5377 instead. To be honest, I was not surprised that Payless put the wrong phone number on the letter. Annoyed, yes. Surprised, no.

Anyway, I called the correct number and gave the Payless agent my rental number and stated that I did not damage any glass and I had photos to prove it. I wanted to first ask what glass was allegedly damaged, and I was ready to ask how they wanted me to provide the photos of the Hyundai IONIQ 5 with all the windows intact. She placed me on hold for a few minutes and then told me that my charges would be dismissed because the charge was invalid. I was relieved to hear that, but I was also curious to understand why the charge was invalid. She stated that whoever brought the charge against me did not provide any photos or evidence when reporting the damage. I was also told that I would receive an email confirmation within 4 hours of the dismissal of charges, and she confirmed my email address. I asked for a case number in case something happened, and she provided that information to me. It’s been more than 12 hours, and I have not received an email confirmation from Payless either in my inbox or spam folder. Again, I’m not surprised. I’m glad that I asked for the case number, although I hope that this saga is over and that I will not have to use it.

I still don’t know exactly what led to the generation of the “glass damage” charge. It is possible that the entire thing was a mistake, or perhaps glass was damaged during or after towing. In any case, there are 2 takeaways from this experience. First, I am glad that I took photos of the rental car when the towing company took possession of it. I don’t know if I will routinely photograph every rental car that I return, but for special circumstances such as the sequence of events that transpired with this rental, it made sense for me to take photos, and I’m happy that I did. Second, I will never rent from Payless again.

Monday, November 10, 2025

Payless Car Rental - Epic Fail

I travel regularly and have rented cars from many agencies in many cities. For my last visit to Indianapolis, I rented a car from Payless. I booked the rental through Expedia like I normally do, and an electric vehicle (EV) from Payless was the least expensive option, so I went with that. I have rented EVs before, as I am comfortable driving and charging them. We have a Tesla Model Y at home, so EVs are familiar to me.

At the rental counter, the agent confirmed that I was OK with a Hyundai IONIQ 5, and I said yes. She emphasized that I must return the vehicle with at least 70% battery life to avoid a fee, and I acknowledged. When I started the car, I noticed that the battery was at 25% with an estimated range of 60 miles. I mentioned this to the gate attendant who checked my paperwork and driver license, and I asked him to document that the battery level was 25%. He declined to document this. I stated that the lady at the rental counter made a big deal about me incurring fees if I don’t return it at 70%, and I didn’t think it was fair for me (or rather, my company) to have to pay for miles that I didn’t use. Again, he declined to document the battery level and said, “It’s not even worth it to document” and told me to just return the car at 25% and I would not get charged. I felt that this exposed me to unnecessary risk, so I took a photo of the dashboard with the battery level, making sure to also capture the clock to note the time and portions of the car rental facility to provide evidence that the 25% battery level was taken before I drove the car off the lot.

I drove 30 miles to my destination, by which time the battery level fell to 13% with an estimated range of 30 miles, so I had used half of the remaining charge to drive to my destination.

I often stay at a corporate apartment where I plug in EVs to charge them overnight. However, there was a second problem with this rental from Payless. The car did not come with a charging cable like it normally does. I searched the entire car, and the only trace of a charging cable was an empty bag in the trunk where I think the charging cable would normally have been stored.

I called Payless to ask them to document that the battery level was 25% upon pickup, which they did. I also asked them send a charging cable to me or allow me to drive to a nearby rental facility to pick up a charging cable, but they said my only option was to drive back to the airport to get a charging cable or replace the vehicle. I said that I wasn’t sure if I could make it all the way back to the airport without the battery dying. They gave me 2 options: call roadside assistance to have the car towed, or go to a local Avis or Budget car rental facility, as they are sister companies with Payless. I preferred to try Avis or Budget because it seemed like such a waste to have the car towed when there was absolutely nothing wrong with it. The local Avis and Budget rental facilities which were just a few miles away, and I decided to call them in the morning because it was after hours and those facilities were already closed.

Meanwhile, I tried to resolve the battery charging issue on my own and decided to look for charging stations in the area. Public charging stations have charging cables tethered to them, so my lack of a charging cable would be a non-issue when using public EV charging stations. I found a free charging station next to the corporate apartment, but there was only 1 charger and it was taken. I returned an hour later, and the same car was still using the charger. I then located another charging station, only to find that the entire facility was out of order and sectioned off with “do not cross” tape. I found a third charging station with 2 charging stalls, both unoccupied. But when I tried to charge the vehicle, it refused to let me do a 1-time charge with a credit card. Instead, it required that I download their app, set up an account, and upload my credit card information to the app. By this time, it was past 11 PM, and I had completely run out of patience and decided to go back to the apartment to get some sleep rather than set up the account and sit there while waiting for the car to charge.

First thing the next morning, I called the local Avis and Budget car rental facilities. Unfortunately one of them stated that they had no charging cables or available cars, and the other one stated that their computer systems were not capable of handling rentals from Payless despite them being sister companies. So my last option was to get the car towed. I called Payless Emergency Roadside Assistance and summarized my situation. The dispatcher initially said that I needed to hop in the tow truck and accompany the EV back to the airport, exchange the car, and drive back to my origin. I politely reminded him that Payless made 2 errors by giving me a rental car with 25% battery and omitting a charging cable, and because I spent almost my entire evening and part of my morning trying to rectify their mistakes, and making more than 20 phone calls, half of which were a result of me being disconnected, I asked that they send the replacement vehicle to the office where I work, and they obliged. The dispatcher asked me if I had a preference for a vehicle, and I said that any sedan was fine, even an EV, as long as it was properly charged and came with a charging cable. They said that my replacement vehicle would be “same, similar, or better”.

So Payless Emergency Roadside Assistance towed my replacement vehicle, a Toyota Tundra, 30 miles from the airport to my office, swapped vehicles, and then towed a perfectly working Hyundai IONIQ 5 another 30 miles back to the airport, all because it was not in their standard operating procedures to send me a charging cable. And of course, I thought it was fitting that they gave me a monster of a car as a replacement. The Tundra barely fit in the garage, and its gas mileage is poor as compared with sedans. But at least I had a vehicle to drive and no longer felt stranded.

The moral of the story is that if you rent an EV, make sure you have a way to charge it before you drive it off the lot. If you plan to charge it using standard electrical outlets, make sure the EV comes with a charging cable and recognize that it will trickle charge, perhaps adding a few miles of range for every hour of charging. If you plan to charge it using public charging stations (which charge the vehicle more quickly), make sure you are aware of the charging infrastructure and either have your accounts properly configured or be prepared to create new accounts along the way.

Friday, November 7, 2025

Final Cut Pro Video Exports

I recently made a video to commemorate my daughter’s 16th birthday, and I wanted the video to be of the highest possible quality, so I decided to use 4K (technically UHD, 3840x2160) resolution. The videos from my daughter’s first few years were recorded in 720p or 1080p, so I researched methods to upscale videos for the purpose of getting higher quality videos from Final Cut Pro (FCP). Bottom line: while FCP can upscale videos, you’re better off with a third party video upscaling application like Topaz Video AI. What I also found out was that all these years I’ve been exporting videos from FCP the wrong way.

Normally I’d export my FCP projects using the H.264 codec. I learned that it’s better to export from FCP using one of the Apple ProRes codecs (Apple ProRes 422 offers a good balance between quality and file size) and then use Compressor to convert the ProRes video to the H.264 codec. FCP uses Apple’s internal H.264 encoding engine which is optimized for speed, but it doesn’t always use the most efficient compression passes or bit allocation strategies. It may use a single-pass variable bitrate encode with conservative parameters which results in a quick export but can produce larger file sizes and may be associated with some quality loss. On the other hand, exporting in Apple ProRes is an intra-frame codec that yields a high-quality master, and feeding that master to Compressor has quality advantages. Using the Social Platforms > 4K preset, Compressor uses multi-pass encoding and performs better motion analysis and bitrate distribution, giving more bits to complex scenes and fewer to static ones. Here are the file sizes for each workflow:

1-STEP WORKFLOW
FCP export with H.264 codec: 8.44 GB

2-STEP WORKFLOW
FCP export with Apple ProRes 422 codec: 72.34 GB
…followed by Compressor conversion to H.264 codec: 5.15 GB

In full screen mode on a 32-inch UHD 3840x2160 monitor, I cannot see any difference in quality between the two H.264 files. In reality, there are some technical advantages with the 2-step workflow. FCP’s built-in exporter prioritizes speed over compression precision, which can lead to slight quality loss. The 2-step workflow is superior because Compressor encodes from a pristine, uncompressed ProRes master using more advanced multi-pass analysis and smarter bitrate allocation, producing a cleaner, more efficient H.264 file. It’s like the difference between working with an original photo vs. a photocopy. Perhaps a more discerning set of eyes could tell the difference in quality, but I’ll just conclude that the 2-step workflow yields a file whose visual quality is at least as good as or possibly better than the 1-step workflow.

So in summary, the 1-step export from FCP to H.264 is faster but comes at the expense of larger file sizes and possibly some slight degradation in quality, whereas the 2-step process involving FCP export to ProRes, followed by Compressor conversion to H.264 takes longer but results in smaller file sizes and equally good if not slightly better quality. I don’t mind waiting a few minutes for Compressor to convert videos, so unless I’m feeling particularly impatient, I plan to use the 2-step workflow from now on.

For more on this topic, see this article. Happy video encoding!

Friday, October 24, 2025

Ultra-Think Mode for LLMs

I use large language models (LLMs) almost every day to ask a variety of questions ranging from simple to complex. By default, LLMs generally provide concise answers. Did you know that you can alter the default prompting style? You can shape how LLMs respond through a set of instructions. For example, try using the following as your next prompt (copy and paste in its entirety):

From now on, use Ultra-Think Mode. That means:
• Analyze problems step-by-step before giving conclusions
• Explain reasoning clearly and in plain English
• Consider alternative explanations or perspectives
• End with a short summary or takeaway
If I say “Ultra-Think off”, go back to your normal concise style.

For both ChatGPT and Google Gemini, I’ve found that Ultra-Think Mode results in a structured response that follows a logical flow. Responses are slightly longer, but they remain topically relevant. I have not tried Ultra-Think Mode for other LLMs, so results may vary.

When I asked ChatGPT to tell me about Ultra-Think Mode, it emphasized that it is not an official ChatGPT feature name or setting. Rather, it is a behavioral configuration achieved through prompting. With some additional inquiries, it said that the following are all appropriate terms to describe Ultra-Think Mode:

  • Prompting style: The most accurate everyday term. It’s a way of shaping how the model responds through instructions.
  • Cognitive scaffolding prompt: A more technical term sometimes used in AI alignment and education research — it means a prompt that guides structured reasoning (like step-by-step analysis).
  • Metacognitive framework: In human reasoning terms, it’s a way of prompting the model to think about how it thinks — examining assumptions, alternatives, and reasoning clarity.
  • Response protocol: A practical phrasing for users who treat it as a repeatable, standardized mode of communication.
  • Instructional schema: In prompt engineering, “schema” refers to a reusable instruction set that defines structure, tone, and reasoning process. Ultra-Think Mode fits that definition well.

Based on these explanations, I would expect Ultra-Think Mode to work similarly across many LLMs. Regardless of how you’d classify Ultra-Think Mode, let me know if you think it is useful. And if you have found other prompting styles that are useful for certain inquiries, leave a comment!

Wednesday, October 8, 2025

Bartering for a Phone

I sell a variety of items on Craigslist, and I am accustomed to receiving lowball offers and scams. I recently received a different kind of inquiry that I thought was too funny not to share.

I don’t know if the buyer was serious, as I simply did not respond.

Wednesday, October 1, 2025

Retrieval of Apple Card & Savings PDF Statements

I have accounts with both Apple Card and Apple Card Savings. At the end of each month, I receive an email for each account that tells me my statements are ready for viewing.


I prefer to download my statements so I can view them on my laptop or desktop computer. Apple Support provides guidance on how to view and download Apple Card statements and Apple Card Savings statements. There are lots of steps involved, and here’s what I have to do to retrieve my statements through the Wallet app on my iPhone.

Apple Card

  1. Open the Wallet app
  2. Tap Apple Card
  3. Tap Card Balance
  4. Under Statements, tap the monthly statement you want to view
  5. Tap Download PDF Statement
  6. When your PDF statement appears, tap the Share icon
  7. Tap AirDrop
  8. Tap the device that will receive the PDF file
  9. Tap the X to close AirDrop
  10. Tap anywhere other than the Share window to close the Share options
  11. Tap the X to close the PDF statement
  12. Tap the < to return to return to your statements
  13. Tap the < to return to Apple Card

Apple Card Savings

  1. Open the Wallet app
  2. Tap Apple Card
  3. Tap Savings Account
  4. Tap the 3 dots
  5. Tap Documents
  6. Tap Statements
  7. Under Statements, tap the monthly statement you want to view
  8. Tap View PDF Statement
  9. When your PDF statement appears, tap the Share icon
  10. Tap AirDrop
  11. Tap the device that will receive the PDF file
  12. Tap the X to close AirDrop
  13. Tap anywhere other than the Share window to close the Share options
  14. Tap the X to close the PDF statement
  15. Tap the < to return to return to your statements
  16. Tap the < to return to return to your documents
  17. Tap the < to return to return to Apple Savings
  18. Tap the < to return to Apple Card

Note that Apple Card statements can also be downloaded via laptop or desktop:

  1. Launch a web browser
  2. Go to https://card.apple.com
  3. Click Sign In
  4. Authenticate (e.g., with Touch ID)
  5. Click Statements
  6. Click the download icon next to the monthly statement you want to view

Although there are fewer steps required to download the Apple Card statement on a browser, there is currently no option to download Apple Card Savings statements on a browser. Therefore, I prefer to download and AirDrop both statements from my iPhone. It would be nice if (1) there was a way to also download Savings statements from the Apple Card website and/or (2) the process for downloading statements through the iOS Wallet app required fewer steps. Are you aware of a more efficient process to retrieve your statements?

Saturday, September 27, 2025

Detecting AI-Authored Content

I came across an article called “What Counts As Cheating With Ai?”. Ironically, when I read the first sentence, I suspected that it was written using a large language model (LLM; a kind of artificial intelligence or “AI” application). To confirm my hypothesis, I consulted with my favorite LLM, ChatGPT. Check out my full conversation for details.

In summary, ChatGPT drew its own conclusions and also consulted various external sources, with the ultimate conclusion that there is an 85-95% probability that the article was AI-written. Based on ChatGPT’s assessment, the reasons it provided include:

  1. Odd word choices / nonnative phrasing
  2. Inconsistent tense / mismatch / weird connectors
  3. Repetitive structure, formulaic transitions
  4. Errors not typical of human edits
  5. Lack of smooth coherence in some parts
  6. Metadata / site context
  7. References / linking style

Those 7 reasons are based on the article that I referenced above, and there are many other criteria that can be used in general to detect AI-authored content. ChatGPT also also compared the text from the article against published criteria from major AI detectors, and it stated:

  • GPTZero: Looks at perplexity (predictability of text) and burstiness (variation between sentences). AI text tends to have low burstiness and oddly consistent perplexity. The uniform style and repeated sentence shapes here match GPTZero’s “likely AI” profile.
  • CrossPlag AI Detector: Notes that AI often creates unnatural collocations and semantic drift. Examples: “analyzable and confusing” or “students will ne’er ace open” are exactly that.
  • Sapling AI Detector: Flags AI when there’s “inflated use of rare words not fitting context”. Words like “erstwhile” and “conscionable” fit this.

In conclusion, if you need help detecting AI-authored content, consider asking AI for help. I found ChatGPT’s reasoning to make a lot of sense, and the AI detectors listed above also seem to have valid criteria for identifying AI-authored content.

Sunday, September 21, 2025

Reclaiming Storage Space on Yahoo Mail

In follow-up to my post about Yahoo Mail reducing its free storage limit, you might be thinking about cleaning up your old emails to free up space. Here are some of my recommendations. Keep in mind that these instructions are based on the current capabilities of Yahoo Mail on desktop browsers. There may or may not be similar functions on the mobile app.

Yahoo Mail Search Presets

Click the “Storage” icon at the lower left of the browser window to be taken to https://mail.yahoo.com/n/manage_storage. The preset search options include some common searches that may be a useful starting point to free up the greatest amount of storage space with the least effort:

Advanced Search

You can also enter specific parameters using the Advanced Search options:

This enables you to find emails within a certain date range, emails with attachments or photos, etc. Notice that after clicking on options in the Advanced Search, you’ll see the “command line equivalents” in the search bar. For example:

  • Emails containing media: containattachmenttypes:image,video,audio
  • Emails containing documents: containattachmenttypes:document
  • Emails with attachments older than 10 years: before:"yyyy-mm-dd" (where yyyy-mm-dd is 10 years ago)

You can also mix and match criteria to refine your search.

Delete Emails from a Sender

You’ve likely subscribed to emails from multiple companies and may have accumulated years’ worth of archived messages. Think about the companies that have sent you the most emails and the ones with the most/largest embedded graphics, as deleting them will free up space. To do this, open one of the emails and find the sender’s domain. For example, I’ve subscribed to Costco emails for years and have simply archived them without deleting them, but now it’s time to delete them for good. Mousing over the “Costco Wholesale” sender name reveals the sender’s email address as costco@digital.costco.com.

Use that address to search for the sender in the search bar. Note that searching for just the domain (@digital.costco.com) could potentially capture more emails than the full address (costco@digital.costco.com) because sometimes companies use different sender addresses on the same domain. From there, you will be presented with the first 25 messages. When you click the checkbox to select all 25 messages, you will be presented with an option to select all messages that meet your criteria (truly a “select all” option), after which you can delete all those messages.

Conclusions

As an individual user who wants a mail service to send and receive personal emails, if you want to stay on the free tier for Yahoo Mail, it is simple in most cases to perform routine maintenance on your emails to stay under the new quota. However, it does require a small amount of effort and a plan to reduce clutter. I hope you find these recommendations to be helpful, and if you have any other tips for efficiently reclaiming storage space, leave a comment below.

Yahoo Mail Free Storage Reduction

I’ve used Yahoo Mail for decades, and even though I find Gmail to be more user friendly (especially when comparing the iOS apps), I have continued to use both mail services. The main advantage that Yahoo Mail had over other email services is that its free tier offered 1 TB of storage. However, I received an announcement on July 28, 2025 that its free storage offering was being reduced to 20 GB effective immediately. Fortunately I was just barely below the 20 GB limit, and for those who were over the new 20 GB limit, this article provides additional information about its 1-month “grace period” as Yahoo Mail transitioned into full enforcement of its new quota.

Its current storage plans include 20 GB in the free tier, 100 GB for $1.99/month, and 1 TB for $9.99/month.

As a side note, it was ironic that Yahoo Mail’s own AI-generated summary of a follow-up email on August 25 completely misinterprets the reduction in storage as an increase to 20 GB. I guess we could chalk that up to overly positive spin by the Yahoo marketing team.

Anyway, this reduction in free storage space reminded me of the day when I found out that Google Photos discontinued its free unlimited storage. As the saying goes, all good things must come to an end.

Thursday, September 18, 2025

Airplane Emergency Exit Row Seats

I typically fly at least once a month for work, and with my level of status on American Airlines, I’m usually able to get a free upgrade to an emergency exit row seat. When checking in to my flights on the American Airlines app, it presents me with the exit row seat criteria and requires me to accept the criteria as pictured below.

During the boarding process when I scan my boarding pass QR code at the gate, I usually tell the gate agent that “I am ready, willing, and able to assist in the event of an emergency.” A vast majority of the time the gate agent says “thank you” in appreciation for me doing my little part to expedite the boarding process. In rare occurrences, the gate agent says that they have to be the one asking me the question, and I have to respond affirmatively, so even after I tell them that I’m ready, willing, and able to assist in the event of an emergency, they will ask me if I’m ready, willing, and able to assist in the event of an emergency, and I say “Yes.” Sometimes the gate agent will even get visibly frustrated with me, presumably for having the audacity to do their jobs for them.

This prompted me to research the Code of Federal Regulations, and the relevant language seems to be in 14 CFR § 121.585 Exit seating. In short, the airline (“certificate holder”) must determine the suitability of persons occupying exit row seats. However, it does not explicitly say how that determination must be made, in terms of the exact words used or whether the airline representative must ask or if the passenger is allowed to volunteer this information.

Because I could not find publicly available information about American Airlines policies, I asked ChatGPT to help. Here are excerpts of what ChatGPT told me.

What American Airlines says publicly (and what’s visible)

American’s agent/agency materials and SalesLink references (AA internal/partner pages) explicitly list the same exit-seat criteria (able to operate the exit, age, etc.) and discuss that customers should be pre-qualified before placing in an exit seat. Those materials imply the airline expects staff (or travel partners) to confirm eligibility when assigning exit seats. However, the SalesLink pages are internal/partner resources (not a public passenger policy) so they don’t show a single public script or a prohibition against passengers volunteering their readiness.

Source: https://saleslink.aa.com/en-US/resources/html/emergency-exit.html

What AA crew training / operations indicate

American’s training materials reference exit-row briefings and exit-row procedures for crew, which is consistent with FAA practice that flight attendants must brief and obtain an affirmative confirmation from exit-row occupants once on board. Those crew/training references are internal (FAPortal) and not public in full, but they show AA treats exit-row verification as a formal, trained step.

Source: https://faportal.aa.com/html/Training/PDFs/CQ2025-2026_WhatToExpect10SEP25.pdf

Practical conclusion (why you see variation)

Because the FAA leaves the method of “determination” to the airline’s approved procedures, airlines set their own internal SOPs. American appears to have internal guidance (SalesLink / training) about exit-row criteria and verification — but I could not find any public AA policy that (a) requires gate agents to ask a fixed scripted question at the gate, or (b) forbids accepting a passenger’s proactive statement.

The on-the-ground inconsistency you see (most agents accepting your preemptive statement, others saying “I have to ask”) is therefore entirely plausible: some agents follow a practical, customer-friendly approach; others follow a conservative reading of company procedure or habit (or their system/booking workflow prompts them to require a specific confirmation). Forums and crew posts back up that gate behavior varies. 

Source: https://saleslink.aa.com/en-US/resources/html/emergency-exit.html

As a passenger in an emergency exit row seat, do you proactively state to gate agents that you are ready, willing, and able to assist in the event of an emergency, and have you experienced similar variation? Or are you an airline agent, and can you comment on what your airline's policies are on this matter?

Saturday, August 30, 2025

Another Credit Card Fraud Detection Fail

I recently wrote about challenges with using my Citi Costco Anywhere Visa card while in Japan. Shortly thereafter, we visited Singapore, Indonesia, and Thailand, and given my previous experience in Japan, I was ready to use my data-only eSIM to login to my Citi account to approve purchases if they had tripped the credit card fraud detection.

Moments after landing in Singapore and retrieving luggage, I was ready to use the Grab app to request a ride to our hotel. I was feeling confident about using Grab, as I had set up my account while in the United States, and it had even placed a $1 charge on my Citi Costco Anywhere Visa card to verify my credit card during the account setup process. After selecting my destination and choosing the kind of car I wanted to ride, I expected the payment process to occur smoothly (foreshadowing). However, I was taken to a Visa verification screen and was given the option to verify my identity via phone or SMS text, neither of which I had access to with my data-only eSIM card. Even though I was unable to verify my identity, I was still allowed to request the ride and pay the driver with cash.

Interestingly, after being forced to pay with cash for our first Grab ride in Singapore, I was able to pay with my Visa card on a subsequent ride without the additional verification step. After landing in Indonesia, I was also successful with paying for a ride on Grab with my Visa card, but in Thailand my first Grab ride was intercepted again by Visa, so we took a taxi instead (we had not yet exchanged currency so were unable to pay in cash). Because the identity verification was not initiated by my Citi Costco Anywhere Visa card but rather by Visa itself, I was unable to approve the usage of the card by logging in to my Citi account. As prepared as I thought I was, it turns out that I did not anticipate this particular hurdle.

After returning home and doing some research, it appears that the additional verification was likely due to the Verified by Visa program which was later rebranded as Visa Secure or EMV 3-D Secure. EMV stands for Europay, Mastercard, and Visa — the three companies that originally created the global standard for secure chip-based payment cards. They claim that their fraud detection is user friendly.

In my personal experience, the Visa fraud detection algorithm has the greatest chance of triggering a verification event when users are purchasing things online or when traveling internationally. For international travelers, I think they really need to provide an email verification option in addition to phone and SMS text. The lack of this option makes this feature very user un-friendly in my opinion. I fully understand a credit card company’s need to minimize fraud, but the experience for law-abiding customers has room for improvement.

Meanwhile, although I have not fully validated this approach, a possible way to avoid these problems when traveling abroad while using a data-only eSIM plan is to use a Google Voice number as your main contact number for your credit cards. Google Voice will route voice and SMS text to your Google Voice app using data, so in theory you should be able to authenticate through this method.

Saturday, July 19, 2025

3D Modeling Streets and Terrain

I previously wrote about a couple of websites that allow you to create STL models of Earth’s surface: Terrain2STL and TouchTerrain. I recently discovered another website that allows you to create 3D models of both terrain and streets: Map2Model.

While Terrain2STL and TouchTerrain focus on generating 3D models of terrain, Map2Model is focused on generating 3D models of “typical” map features such as roads, buildings, water, and other features.

Start by searching for an address or a named location, then zoom in/out and center the map where you’d like to generate your 3D model. Choose a shape for your model: rectangle, square, circle, etc. Then position and size your shape on the map and press the “3D Preview” button to view, zoom, and rotate your 3D model. If happy with your model, export it in either 3MF or STL format.


For roads, water, grass, buildings, sand, and piers, there are settings that allow you to modify colors, model height, and other options which are useful if exporting in 3MF (but will not be represented in STL files because those file represent only geometry data). There are experimental features such as adding topography (similar to the terrain-focused 3D modeling websites) which in my experience with a few locations works pretty well.

Resultant models can be used for personal use, but for commercial use you’ll need to obtain a commercial license. Many thanks to Smoggy3D for developing such a nifty application!

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.