Experience Logs

A collection of technical challenges and solutions I've encountered during development. These experience logs are shared to help others facing similar situations find solutions and learn from real-world problem-solving.

Popular tags:

Motor & Flyback diode

In Progress

有次幫個frd upgrade 個工業吹風機,佢想install 個motor controller 可以調motor 大力同細力,上網用左個好simple 既solution based on 我地sutdio有既料試整左個由mosfet + potentioneter 10k,結果冇咩效果,後尾test個mosfet 就好似燒壞左,原因係大功率DC moter 會gen 個magnetic field 開同關果時會沖爆mosfet 個gate

Learning
#IoT#Motor#Diode
Created: 2026-01-07T03:46:04.057Z

expo Android/IOS nfc reader

Resolved

using expo framework for creating android/ios app to read specific supported nfc card to retrieve data. Using the react-native nfc manager package, the same function to read nfc IOS wont able test the nfc reading using the expo dev

Learning
#expo#nfc
Created: 2026-01-02T02:45:24.512Z

4N35

Closed

a eletric componets for connecting 2 different circuits which got different voltage

Learning
#IoT
Created: 2025-12-02T04:28:57.206Z

Apache Velocity PDF QR Layout issue

Resolved

For Java generate QR code a html ready code for the template com.google.zxing.qrcode.QRCodeWriter generate the qr sizing issue code exmaple: String urlQrCodeBase64 = qrCodeService.generateQRCodePngBase64("context", 150); <img src=\"data:image/png;base64," + urlQrCodeBase64 + "\" style=\"width: 150px; height: 150px;\" /> butthe context leght is more the size will be shrink

Bug
#Java Template QR code Generate
Created: 2025-12-02T04:20:15.980ZResolved: 2025-12-02T04:33:59.486Z

Expo android build Success but socket connection error

Resolved

After using expo local development build and install into android, after opening the application will show unable to connect to the local debug console with socket connection exception

Bug
#expo android
Created: 2025-10-23T04:06:17.568ZResolved: 2025-12-01T07:43:39.458Z

Expo Application Build Success but Crashed immdiately

Resolved

if trying to run the application in web will appears below: node_modules\expo-router\assets\modal.module.css: Cannot find module '../lightningcss.win32-x64-msvc.node' Require stack: - C:\Project\ty-fanclub-expo\node_modules\lightningcss\node\index.js - C:\Project\ty-fanclub-expo\node_modules\@expo\metro-config\build\transform-worker\css-modules.js - C:\Project\ty-fanclub-expo\node_modules\@expo\metro-config\build\transform-worker\transform-worker.js - C:\Project\ty-fanclub-expo\node_modules\metro\src\DeltaBundler\Worker.flow.js - C:\Project\ty-fanclub-expo\node_modules\metro\src\DeltaBundler\Worker.js - C:\Project\ty-fanclub-expo\node_modules\jest-worker\build\workers\processChild.js if try to running on android at the logcat will appears: Failed to execute the transaction: tId:217979912 ClientTransaction{ tId:217979912 transactionItems=[ tId:217979912 LaunchActivityItem{activityToken=android.os.BinderProxy@331312d,intent=Intent { flg=0x10018000 xflg=0x4 cmp=com.cimptech.tyfanclub/expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity },ident=77877083,info=ActivityInfo{5ebb899 expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity},curConfig={1.0 454mcc12mnc [zh_HK,zh_TW_#Hant] ldltr sw411dp w411dp h914dp 420dpi nrml long compactNeeded hdr widecg port night finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 1080, 2400) mAppBounds=Rect(0, 0 - 1080, 2400) mMaxBounds=Rect(0, 0 - 1080, 2400) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.12874 fontWeightAdjustment=0},overrideConfig={1.0 454mcc12mnc [zh_HK,zh_TW_#Hant] ldltr sw411dp w411dp h914dp 420dpi nrml long compactNeeded hdr widecg port night finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 1080, 2400) mAppBounds=Rect(0, 0 - 1080, 2400) mMaxBounds=Rect(0, 0 - 1080, 2400) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mActivityType=standard mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2 fontWeightAdjustment=0},deviceId=0,referrer=com.cimptech.tyfanclub,procState=2,state=null,persistentState=null,pendingResults=null,pendingNewIntents=null,sceneTransitionInfo=null,profilerInfo=null,assistToken=android.os.BinderProxy@80a9c12,shareableActivityToken=android.os.BinderProxy@ffe1fe3,activityWindowInfo=ActivityWindowInfo{isEmbedded=false, taskBounds=Rect(0, 0 - 1080, 2400), taskFragmentBounds=Rect(0, 0 - 1080, 2400)}} tId:217979912 ResumeActivityItem{mActivityToken=android.os.BinderProxy@331312d,procState=-1,isForward=true,shouldSendCompatFakeFocus=false} tId:217979912 Target activity: expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity tId:217979912 ] tId:217979912 } 2025-10-20 23:49:10.176 14316-14316 AndroidRuntime com.cimptech.tyfanclub D Shutting down VM 2025-10-20 23:49:10.178 14316-14316 AndroidRuntime com.cimptech.tyfanclub E FATAL EXCEPTION: main Process: com.cimptech.tyfanclub, PID: 14316 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cimptech.tyfanclub/expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity} at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4318) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4504) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2830) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.dispatchMessage(Looper.java:315) at android.os.Looper.loopOnce(Looper.java:251) at android.os.Looper.loop(Looper.java:349) at android.app.ActivityThread.main(ActivityThread.java:9041) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at androidx.lifecycle.viewmodel.internal.JvmViewModelProviders.createViewModel(JvmViewModelProviders.kt:38) at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.android.kt:185) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.android.kt:309) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.android.kt:291) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.android.kt:265) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.android.kt:142) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.android.kt:112) at androidx.lifecycle.viewmodel.ViewModelProviderImpl_androidKt.createViewModel(ViewModelProviderImpl.android.kt:34) at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release(ViewModelProviderImpl.kt:60) at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release$default(ViewModelProviderImpl.kt:43) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.android.kt:92) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:52) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:35) at expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity.getViewModel(DevLauncherErrorActivity.kt:17) at expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity.onCreate(DevLauncherErrorActivity.kt:39) at android.app.Activity.performCreate(Activity.java:9244) at android.app.Activity.performCreate(Activity.java:9222) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1524) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4302) ... 14 more Caused by: java.lang.NullPointerException: null cannot be cast to non-null type expo.modules.devlauncher.DevLauncherController at expo.modules.devlauncher.compose.models.ErrorViewModel.<init>(ErrorViewModel.kt:62) ... 35 more 2025-10-20 23:49:10.179 14316-14316 DevLauncher com.cimptech.tyfanclub E DevLauncher tries to handle uncaught exception. java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cimptech.tyfanclub/expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity} at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4318) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4504) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2830) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.dispatchMessage(Looper.java:315) at android.os.Looper.loopOnce(Looper.java:251) at android.os.Looper.loop(Looper.java:349) at android.app.ActivityThread.main(ActivityThread.java:9041) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at androidx.lifecycle.viewmodel.internal.JvmViewModelProviders.createViewModel(JvmViewModelProviders.kt:38) at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.android.kt:185) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.android.kt:309) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.android.kt:291) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.android.kt:265) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.android.kt:142) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.android.kt:112) at androidx.lifecycle.viewmodel.ViewModelProviderImpl_androidKt.createViewModel(ViewModelProviderImpl.android.kt:34) at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release(ViewModelProviderImpl.kt:60) at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release$default(ViewModelProviderImpl.kt:43) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.android.kt:92) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:52) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:35) at expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity.getViewModel(DevLauncherErrorActivity.kt:17) at expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity.onCreate(DevLauncherErrorActivity.kt:39) at android.app.Activity.performCreate(Activity.java:9244) at android.app.Activity.performCreate(Activity.java:9222) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1524) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4302) ... 14 more Caused by: java.lang.NullPointerException: null cannot be cast to non-null type expo.modules.devlauncher.DevLauncherController at expo.modules.devlauncher.compose.models.ErrorViewModel.<init>(ErrorViewModel.kt:62) ... 35 more 2025-10-20 23:49:10.185 14316-14316 ptech.tyfanclub com.cimptech.tyfanclub E hiddenapi: Accessing hidden method Ljava/lang/StackTraceElement;-><init>()V (runtime_flags=0, domain=core-platform, api=blocked) from Lcom/google/gson/internal/ConstructorConstructor; (domain=app) using reflection: denied

Bug
#expo android
Created: 2025-10-20T16:18:45.815ZResolved: 2025-10-23T04:04:19.009Z