Posts

Showing posts with the label Bug Fix

A New Collection of Thoughtful Learning Apps — Now Available on iOS & Android

Image
I’m excited to share a set of mobile apps I’ve recently completed and published on both the Google Play Store and the Apple App Store. These apps are designed with a simple goal in mind: to make meaningful, structured content more accessible, whether you’re studying theology or improving your English vocabulary. 📱 Now Available on Both Platforms All apps are live and available for download: Google Play Developer Page: https://play.google.com/store/apps/dev?id=5835943159853189043 Apple App Store Developer Page: https://apps.apple.com/ca/developer/q-z-l-corp/id1888794100 📖 Theology & Confession Study Apps For those interested in Reformed theology and classical Christian teachings, I’ve developed a series of apps that present foundational texts in a clean, focused reading format: The Belgic Confession Canons of Dort Heidelberg Catechism Westminster Shorter Catechism Each app is designed to provide a distraction-free experience, making it easier to read, reflect, and revisit these im...

Three More Real-World Auto-Fill Bugs We Found While Building a Chrome Extension

Image
  Three More Real-World Auto-Fill Bugs We Found While Building a Chrome Extension Yesterday we fixed an issue where our auto-fill engine was targeting invisible input elements instead of the actual visible fields. After deploying that fix, we continued testing across multiple vendor websites and discovered three additional issues. None of them were particularly complicated, but all three caused auto-fill failures in real-world scenarios. This is a good reminder that browser automation is often less about complex algorithms and more about handling the countless variations of web forms. Background We are building a Chrome extension that automatically fills customer information such as: First Name Last Name Email Address Phone Number Address Province Postal Code The extension works across multiple vendor websites, each built with different technologies and UI frameworks. During testing, we discovered the following issues. Issue #1: document.querySelector Only Returns the First Match I...

Why My Chrome Extension Filled Input Values but Nothing Appeared on Screen

Image
Extension auto-fill works on most vendor sites, but fails on Angular-based page (ng-pristine vs ng-dirty issue) Problem Background We are building a browser extension that auto-fills customer information (first name, last name, email, phone number, address, etc.) into different vendor websites. Each vendor site has different page structures, and our content script is responsible for detecting input fields and filling data automatically. Issue Symptom Most vendor sites work correctly. However, on one specific vendor site, auto-fill does not work: Our logs show values are being filled No visible changes appear in the UI Input fields remain empty from user perspective Filling input: firstName = John Filling input: email = test@example.com But UI still shows no updated values. Environment Extension: Chrome Extension (content script) Language: JavaScript Target site: Vendor web application Framework (discovered later): Angular Debugging Process W...

React Native TTS iOS 问题全解析:修复 BOOL 错误与事件监听失效(2026 实战指南)

Image
React Native TTS iOS 问题全解析:修复 BOOL 错误与事件监听失效(2026 实战指南) 在 React Native 中使用文本转语音(TTS)本来很简单,但在 iOS 上却可能踩坑。 本文总结了两个非常常见但又很隐蔽的问题,并提供经过验证的解决方案。 🧨 问题一:Objective-C type BOOL is unsupported 错误信息 TextToSpeech.setDefaultRate(): Error while converting JavaScript argument to Objective C type BOOL convert javascript argument to object C type Bool object C type bool is unsupported 🔍 根本原因 这 不是你的代码问题 。 这是由于 iOS 原生桥接层(Objective-C)类型定义错误导致的,尤其在 React Native 新架构(Fabric / TurboModules)下更容易触发。 部分版本的 react-native-tts 错误地使用了: (BOOL *)onWordBoundary ❌ 错误 而 React Native bridge 不支持 BOOL 指针类型 ,只支持: BOOL NSNumber * ✅ 解决方案 https://github.com/ak1394/react-native-tts/issues/291 使用已修复的 fork 版本: @iternio/react-native-tts npm install @iternio/react-native-tts 该版本已修复 iOS 类型问题,可以正常运行。 ⚠️ 问题二:事件监听器未注册 警告信息 Sending `tts-start` with no listeners registered. 即使你已经写了监听: Tts.addEventListener('tts-start', () => { setIsSpeaking(true); }); 🔍 根本原因 问题在于: ...

Fix “Value Too Long for Column” Error: UTF-8 String Truncation by Bytes in Java

Image
Fix “Value Too Long for Column” Error: UTF-8 String Truncation by Bytes in Java If you've ever encountered the "value too long for column" database error, especially in a Java backend, the root cause may not be obvious. In this post, we’ll walk through a real production issue caused by UTF-8 encoding , explain why string length is not equal to byte length , and show how to correctly truncate strings by bytes without breaking multibyte characters. The Production Issue We hit a production error during a database insert: value too long for column Database column limit: 50 bytes Input string length: 53 characters Code already truncated to 50 characters At first glance, everything looked correct—but the insert still failed. Root Cause: UTF-8 Encoding The issue comes down to this: 50 characters does NOT equal 50 bytes in UTF-8 In UTF-8 encoding: ASCII characters → 1 byte Chinese characters → 3 bytes Emoji → 4 bytes This mean...