The Engineer's Alpha
blog / 中文 /
2026
  • Safety Gates in Claude Code Skills: From Auditing 35 Skills to a Three-Layer Protection Model
    I assumed writing 'Use AskUserQuestion' in a Skill was a hard constraint. After auditing 35 Skills, reading the official docs, and digging through GitHub Issues, I found out: the model uses the same mechanism to decide whether to obey your CHECKPOINT and whether to invoke your tool. There's only one gate that's truly 100%.
  • Git as an External Brain for Claude Code: Beyond MEMORY.md
    MEMORY.md isn't the end of the road for AI Agent memory. When project scale exceeds what a context window can hold, Git becomes the truly scalable external memory. This post breaks down the three layers of memory, Git's role among them, and which practices have research backing vs. which are just my own experiments.
  • The Truth About 26%: Mem0's Paper, Benchmark Wars, and the Promise vs Reality of Graph Memory
    How was Mem0's 26% accuracy boost actually calculated? Why does Zep accuse Mem0 of cheating? Is Graph Memory really better than pure Vector? This article dissects the arXiv paper layer by layer, reveals the truth behind the benchmark controversy, and gives you real production selection criteria.
  • 2026 AI Agent Memory Wars: Three Architectures, Three Philosophies
    AI Agent memory finally has serious solutions. Graph-based, OS-inspired, Observational—three architectural schools are going head-to-head. This article breaks down their design philosophies, technical trade-offs, and when to use which.
  • Cursor's $29B Secret: The Deleted Shadow Workspace, Reverse-Engineered
    A deep dive into Cursor's Shadow Workspace architecture—the core innovation that once gave Cursor a massive edge over Copilot, why it quietly disappeared from settings, and what you can learn from it.
  • Android 16 & AVF: The Game of Thrones at EL2
    How Google is reclaiming mobile security control from ARM, Qualcomm, and Samsung through AVF and pKVM—the deepest power struggle in the mobile ecosystem.
2024
  • Add AAR file into build.gradle.kts
    Add AAR file into build.gradle.kts
  • Stanford CoreNLP Introduction
    Stanford CoreNLP Introduction
  • How to install multiple APKs on Android
    ### A Comprehensive Guide to Manually Installing Split APKs with ADB
2022
  • Android Moshi and Polymorphism
    Android Moshi and Polymorphism
  • Start your Application after system boots
    Start your Application after system boots
  • Use AWS CodeArtifact in your project
    ##### Why CodeArtifact
  • Something related to the System App
    #### Something related to the System Application
  • Import Android Framework Jar
    #### Import AOSP framework jar file
  • Gradle dependency management
    ### Gradle Dependency Management
  • Setup Gerrit Server for AOSP
    Setup Gerrit Server for AOSP
  • Jetpack Compose - Customize your layout
    Jetpack Compose - Customize your layout
2021
  • VOD Introduction
    VOD Introduction
  • How to build AOSP on M1
    How to build AOSP on M1
  • Android Emulator on Apple M1
    Android Emulator on Apple M1
2020
  • Tips for Android Canvas.drawText Function
    #### Why?
  • Introduction of the Chrome Custom Tabs
    ## Introduction of the Chrome Custom Tabs
  • Lost state issue of using `Navigation` on the Android platform
    #### What's the problem?
  • How to pair multiple airpods on your Mac?
    #### Why?
  • API Gateway ? Service Mesh ?
    API Gateway ? Service Mesh ?
  • Introduction of API Gateway
    An API gateway is a crucial component for web service that provides several functionalities to enhance our web service. Let's see what it is and what use cases it provides.
  • '[LeetCode] Two Sum'
    **Question:**
  • '[LeetCode] Logger Rate Limiter'
    **Question:**
  • New JDK14 enhancement for NullPointException
    #### JEP 358: Helpful NullPointerExceptions
  • 關於申請商業卡那檔事
    #### 身份問題
  • '[AMEX] AmericanExpress Centurion Card (Black Card)'
    '[AMEX] AmericanExpress Centurion Card (Black Card)'
  • '[LeetCode] Integer to English Words'
    **Question:** Convert a non-negative integer to its English words representation. Given input is guaranteed to be less than 2^31 - 1.
  • '[LeetCode] Shortest Word Distance III'
    **Question:** Given a list of words and two words *word1* and *word2*, return the shortest distance between these two words in the list.
  • '[LeetCode] Word Shortest Distance II'
    **Question:** Design a class which receives a list of words in the constructor, and implements a method that takes two words *word1* and *word2* and return the shortest distance between these two word
  • '[LeetCode] Shortest Word Distance'
    **Question:** Given a list of words and two words word1 and word2, return the shortest distance between these two words in the list.
  • 'MVC, MVP, and MVVM design patterns on Android'
    #### MVC design pattern
  • Shelter in place for COVID-19 in San Francisco
    #### 就地避難 (Shelter in place)
  • 'Android Coroutines - Suspend, Resume, and Dispatch'
    In the [Introduction](https://personaldevblog.firebaseapp.com/2019/12/27/Android-Coroutines-Introduction) section, we already have a big picture of the `Coroutines` feature, including what it is, how
  • 'Dagger Series: Something amazing about constructor injection'
    In Dagger, it provides another way to inject/provide resources by using `constructor injection.` The typical case is that we use `constructor injection` in a class to inject needed resources as class
2019
  • Android Coroutines - Introduction
    I recently read the source code of `Coroutines.` It's pretty fun, and I've learned a lot from the source code. I am going to share some I learned here. I would break the learning into several parts. I
  • Android Thread Model
    #### Process v.s Thread
  • 'Dagger Series: Elegantly handle your Activities and Fragments by AndroidInjector'
    #### The story
  • 'Dagger Series: How do you use it in your Modularization?'
    #### Story
  • Generic Programming in Golang
    In many programming languages such as `Java,` `Kotlin,` `Objective-C,` and `Swift,` they support the [Generic programming](https://en.wikipedia.org/w/index.php?title=Generic_programming&gettingStarted
  • Personal Blog by Golang
    #### Why
  • Github CI setting plus issue tracking system on YouTrack
    This note is for anyone who wants to set up the continuous integration environment on `Github.` The note includes adding a commit template when you send a PR (Pull Request) and also wants to combine t
  • Kotlin tricks
    Here are some interesting tips when you are using Kotlin. Let's take a look at something about `object,` `invoke operator,` and `destructuring.`
  • Cron Job on TypeScript
    Cron is a classic utility found on Linux and UNIX systems for running tasks at pre-determined times or intervals. These tasks are referred to as **Cron tasks** or **Cron jobs**. Use Cron to schedule a
  • Composition over the inheritance
    #### The Story
  • System loading test by using Artillery
    There are so many choices for doing a system loading test on backend side. Let's see the list below:
  • The difference between import from and import require in TypeScript
    You might sometimes see `import * from library` in the third-party library or some project, and in the meantime, you can also see this code `import something = require('library').` Would you wonder wh
  • Import path in TypeScript
    In the recent project, we've mentioned about one question:
  • Use ESLint and Prettier to format your code in TypeScript
    ## Use ESLint and Prettier to format your code in TypeScript
  • Moving in the U.S - the check list
    這篇主要是用來提醒自己, 在美國搬家要注意的相關事項. 畢竟還尚未成為美國公民之前, 在美國國內的搬家相關係法律還是需要遵守, 像是 [告知義務](https://www.uscis.gov/addresschange)
  • EQUIFAX Data Breach
    剛來美國信用記錄非常重要, 我還記得剛過來的時候, 因為沒有任何信用紀錄, 所以在申請信用卡的時候基本上都是被打槍, 只有極少數幾家不需要 SSN 不需要考慮你的信用紀錄的發卡行有提供申請的服務, 但會不會過還是不知道.
  • Introduction of Spinnaker
    #### Why Spinnaker?
  • Apple Park Visiting
    趁著老婆生日的機會, 全家往南邊跑, 除了慶生之外, 也順便去看看傳說中的 Apple Park. 不看不知道一看嚇一跳. Apple Park 真的有夠大, 超級大, 世界無敵大. 不禁感嘆: Apple 真有錢 QQ. 先來一點介紹跟比較圖.
  • AMEX 信用卡 Tips - 開卡馬上拿到卡號
    AMEX 是我覺得相當不錯的一家信用卡發行公司, 當申請某張信用卡通過的時候, 有機會可以快速拿到當下申請的信用卡卡號 (Instant Card Number). 根據很多網路上大大提供的資料, 是有可能在 instantly approved 的時候出現這個畫面.
  • Android Dynamic Feature Module (DFM)
    #### What's a DFM?
  • Quickly update App content without reinstall
    #### How does it work?
  • Convert a video clip to a Gif file
    I recently run into a problem that I would like to convert a video clip to a gif file cause I did the screen recording from my laptop, but the file size is too large (> 100MB) to upload to my blog. So
  • Pokemon Go Example by using Google Maps
    I was wondering how to do the map display just like Pokemon Go! Game does. Let's check how it looks from the below screenshot.
  • Android Studio Gradle Plugin 3.4.1 update
    The new Android Gradle plugin comes to a minor change and some updates for the version code to 3.4.1. Here are some behavior changes you should know.
  • 說好不再流淚
    ## 說好不再流淚
  • Dear Mom ...
    ## 自由自在的飛翔吧 ...
  • How Picasso gets the Context without parameter passing
    ## How Picasso gets the Context without parameter passing
  • San Mateo DMV Road Test (路考)
    5/1 勞動節在台灣的朋友放假的同時, 我終於迎來人生最重要的考驗之一 (是嗎?) - DMV 路考 (behine-the-wheel drive test). 話說本來在考完 筆試 (written test) 之後, 一直想找時間把所有的路考的東西整理一下. 本來我是不打算約 5/1 這麼近的時間, 剛考完筆試想要休息一下, 加上工作繁忙 ... blah blah (我是不會承認我拖延症復
  • Japan Town - The Northern California Cherry Blossom Festival
    ## 日本城櫻花節 (Japan Town - The Northern California Cherry Blossom Festival)
  • 美國汽車保險
    #### Why leasing/buying a car?
  • Android Hopping Animation
    ## Android Hopping Animation
2017
  • How to precisely jump to a specific time in AVPlayer
    When using [AVPlayer](https://developer.apple.com/reference/avfoundation/avplayer?language=objc) method - SeekToTime, I found there's an issue that I don't understand: the position of pointed time is
  • Android StrictMode for Debugging
    ## Android StrictMode for debugging
  • UIAlertViewController Text Alignment
    UIAlertViewController Text Alignment
  • MySQL - Error 1045 (28000)
    #### What happened?
  • DP-Pixel conversion on Android
    DP-Pixel conversion on Android
© 2026 • The Engineer's Alpha 🔬
Press Esc or click anywhere to close