From c15d37458ec9fd84b3c19493879b46a1a1044d4e Mon Sep 17 00:00:00 2001 From: eric Date: Thu, 22 Jan 2026 01:50:14 +0000 Subject: [PATCH] deploy: fe6bf91f8c09f06860cd508a530b7e684819577b --- 404.html | 2 +- about/index.html | 2 +- authors/index.html | 2 +- categories/index.html | 2 +- index.html | 8 +++--- index.xml | 3 ++- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- posts/index.html | 8 +++--- posts/index.xml | 3 ++- posts/jellyfin-sso-with-authentik/index.html | 2 +- .../index.html | 2 +- posts/open-webui-openai-websearch/index.html | 2 +- .../index.html | 2 +- posts/page/2/index.html | 8 +++--- posts/page/3/index.html | 5 ++-- posts/ppo-for-language-models/index.html | 2 +- posts/quantization-in-llms/index.html | 2 +- .../index.html | 27 +++++++++++++++++++ .../index.html | 2 +- .../index.html | 2 +- posts/supabase-deep-dive/index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- posts/transformer-s-core-mechanics/index.html | 2 +- .../index.html | 2 +- posts/useful/index.html | 2 +- posts/vattention/index.html | 2 +- series/index.html | 2 +- sitemap.xml | 2 +- tags/index.html | 2 +- 36 files changed, 75 insertions(+), 45 deletions(-) create mode 100644 posts/reverse-engineering-antigravity-ide/index.html diff --git a/404.html b/404.html index e3cb8a0..619bf87 100644 --- a/404.html +++ b/404.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/about/index.html b/about/index.html index 864e4d4..4858f12 100644 --- a/about/index.html +++ b/about/index.html @@ -13,4 +13,4 @@ My work focuses on Infrastructure Performance and Customer Engineering, specific 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/authors/index.html b/authors/index.html index 2747df5..b9b0875 100644 --- a/authors/index.html +++ b/authors/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 174cf5d..503cd89 100644 --- a/categories/index.html +++ b/categories/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/index.html b/index.html index ecc43e1..902a41e 100644 --- a/index.html +++ b/index.html @@ -1,8 +1,8 @@ -Eric X. Liu's Personal Page
avatar

Eric X. Liu

  • +
\ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/index.xml b/index.xml index 155e751..a264231 100644 --- a/index.xml +++ b/index.xml @@ -1,4 +1,5 @@ -Eric X. Liu's Personal Pagehttps://ericxliu.me/Recent content on Eric X. Liu's Personal PageHugoenSat, 10 Jan 2026 20:10:48 +0000Why I Downgraded Magisk to Root My Pixel 2 XLhttps://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/Wed, 07 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/<p>For the past few weeks, I&rsquo;ve been stuck in a stalemate with my EcoFlow Bluetooth Protocol Reverse Engineering Project. I have the hci snoop logs, I have the decompiled APK, and I have a strong suspicion about where the authentication logic is hiding. But suspicion isn&rsquo;t proof.</p> +Eric X. Liu's Personal Pagehttps://ericxliu.me/Recent content on Eric X. Liu's Personal PageHugoenThu, 22 Jan 2026 01:49:53 +0000How I Built a Blog Agent that Writes About Itselfhttps://ericxliu.me/posts/reverse-engineering-antigravity-ide/Fri, 16 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/reverse-engineering-antigravity-ide/<p>I&rsquo;ve been spending a lot of time &ldquo;vibe coding&rdquo; in the Antigravity IDE lately. It&rsquo;s an incredible flow state—intense, iterative, and fast. But it has a major flaw: the context is ephemeral. Once the session is over, that rich history of decisions, wrong turns, and &ldquo;aha!&rdquo; moments is locked away in an opaque, internal format.</p> +<p>I wanted to capture that value. I wanted a system that could take my chaotic coding sessions and distill them into structured, technical blog posts (like the one you&rsquo;re reading right now).</p>Why I Downgraded Magisk to Root My Pixel 2 XLhttps://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/Wed, 07 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/<p>For the past few weeks, I&rsquo;ve been stuck in a stalemate with my EcoFlow Bluetooth Protocol Reverse Engineering Project. I have the hci snoop logs, I have the decompiled APK, and I have a strong suspicion about where the authentication logic is hiding. But suspicion isn&rsquo;t proof.</p> <p>Static analysis has its limits. I found the &ldquo;smoking gun&rdquo; function—a native method responsible for encrypting the login payload—but understanding <em>how</em> it constructs that payload within a strict 13-byte limit purely from assembly (ARM64) was proving to be a headache.</p>Why Your "Resilient" Homelab is Slower Than a Raspberry Pihttps://ericxliu.me/posts/debugging-authentik-performance/Fri, 02 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/debugging-authentik-performance/<p>In the world of self-hosting, there are many metrics for success: 99.9% uptime, sub-second latency, or a perfect GitOps pipeline. But for those of us running &ldquo;production&rdquo; at home, there is only one metric that truly matters: <strong>The Wife Acceptance Factor (WAF)</strong>.</p> <p>My detailed Grafana dashboards said everything was fine. But my wife said the SSO login was &ldquo;slow sometimes.&rdquo; She was right. Debugging it took me down a rabbit hole of connection pooling, misplaced assumptions, and the harsh reality of running databases on distributed storage.</p>How I Got Open WebUI Talking to OpenAI Web Searchhttps://ericxliu.me/posts/open-webui-openai-websearch/Mon, 29 Dec 2025 00:00:00 +0000https://ericxliu.me/posts/open-webui-openai-websearch/<p>OpenAI promised native web search in GPT‑5, but LiteLLM proxy deployments (and by extension Open WebUI) still choke on it—issue <a href="https://github.com/BerriAI/litellm/issues/13042" class="external-link" target="_blank" rel="noopener">#13042</a> tracks the fallout. I needed grounded answers inside Open WebUI anyway, so I built a workaround: route GPT‑5 traffic through the Responses API and mask every <code>web_search_call</code> before the UI ever sees it.</p> <p>This post documents the final setup, the hotfix script that keeps LiteLLM honest, and the tests that prove Open WebUI now streams cited answers without trying to execute the tool itself.</p>From Gemini-3-Flash to T5-Gemma-2: A Journey in Distilling a Family Finance LLMhttps://ericxliu.me/posts/technical-deep-dive-llm-categorization/Sat, 27 Dec 2025 00:00:00 +0000https://ericxliu.me/posts/technical-deep-dive-llm-categorization/<p>Running a family finance system is surprisingly complex. What starts as a simple spreadsheet often evolves into a web of rules, exceptions, and &ldquo;wait, was this dinner or <em>vacation</em> dinner?&rdquo; questions.</p> diff --git a/posts/benchmarking-llms-on-jetson-orin-nano/index.html b/posts/benchmarking-llms-on-jetson-orin-nano/index.html index cb3d6fd..825885a 100644 --- a/posts/benchmarking-llms-on-jetson-orin-nano/index.html +++ b/posts/benchmarking-llms-on-jetson-orin-nano/index.html @@ -62,4 +62,4 @@ After running 66 inference tests across seven different language models ranging 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/breville-barista-pro-maintenance/index.html b/posts/breville-barista-pro-maintenance/index.html index 9a26ae6..34dbb47 100644 --- a/posts/breville-barista-pro-maintenance/index.html +++ b/posts/breville-barista-pro-maintenance/index.html @@ -25,4 +25,4 @@ Understanding the Two Primary Maintenance Cycles Link to heading The Breville Ba 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/debugging-authentik-performance/index.html b/posts/debugging-authentik-performance/index.html index f348a8d..a3af189 100644 --- a/posts/debugging-authentik-performance/index.html +++ b/posts/debugging-authentik-performance/index.html @@ -44,4 +44,4 @@ My detailed Grafana dashboards said everything was fine. But my wife said the SS 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html b/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html index 36870ac..4ecc886 100644 --- a/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html +++ b/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html @@ -20,4 +20,4 @@ Our overarching philosophy is simple: isolate and change only one variable at a 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html b/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html index 8a55431..37150cb 100644 --- a/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html +++ b/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html @@ -168,4 +168,4 @@ Flashing NVIDIA Jetson devices remotely presents unique challenges when the host 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/how-rvq-teaches-llms-to-see-and-hear/index.html b/posts/how-rvq-teaches-llms-to-see-and-hear/index.html index b92e04d..8e16e68 100644 --- a/posts/how-rvq-teaches-llms-to-see-and-hear/index.html +++ b/posts/how-rvq-teaches-llms-to-see-and-hear/index.html @@ -18,4 +18,4 @@ The answer lies in creating a universal language—a bridge between the continuo 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/index.html b/posts/index.html index 6a4849c..901d913 100644 --- a/posts/index.html +++ b/posts/index.html @@ -1,6 +1,7 @@ Posts · Eric X. Liu's Personal Page
\ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/index.xml b/posts/index.xml index 4efa262..7e2fef1 100644 --- a/posts/index.xml +++ b/posts/index.xml @@ -1,4 +1,5 @@ -Posts on Eric X. Liu's Personal Pagehttps://ericxliu.me/posts/Recent content in Posts on Eric X. Liu's Personal PageHugoenSat, 10 Jan 2026 20:10:48 +0000Why I Downgraded Magisk to Root My Pixel 2 XLhttps://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/Wed, 07 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/<p>For the past few weeks, I&rsquo;ve been stuck in a stalemate with my EcoFlow Bluetooth Protocol Reverse Engineering Project. I have the hci snoop logs, I have the decompiled APK, and I have a strong suspicion about where the authentication logic is hiding. But suspicion isn&rsquo;t proof.</p> +Posts on Eric X. Liu's Personal Pagehttps://ericxliu.me/posts/Recent content in Posts on Eric X. Liu's Personal PageHugoenThu, 22 Jan 2026 01:49:53 +0000How I Built a Blog Agent that Writes About Itselfhttps://ericxliu.me/posts/reverse-engineering-antigravity-ide/Fri, 16 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/reverse-engineering-antigravity-ide/<p>I&rsquo;ve been spending a lot of time &ldquo;vibe coding&rdquo; in the Antigravity IDE lately. It&rsquo;s an incredible flow state—intense, iterative, and fast. But it has a major flaw: the context is ephemeral. Once the session is over, that rich history of decisions, wrong turns, and &ldquo;aha!&rdquo; moments is locked away in an opaque, internal format.</p> +<p>I wanted to capture that value. I wanted a system that could take my chaotic coding sessions and distill them into structured, technical blog posts (like the one you&rsquo;re reading right now).</p>Why I Downgraded Magisk to Root My Pixel 2 XLhttps://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/Wed, 07 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/<p>For the past few weeks, I&rsquo;ve been stuck in a stalemate with my EcoFlow Bluetooth Protocol Reverse Engineering Project. I have the hci snoop logs, I have the decompiled APK, and I have a strong suspicion about where the authentication logic is hiding. But suspicion isn&rsquo;t proof.</p> <p>Static analysis has its limits. I found the &ldquo;smoking gun&rdquo; function—a native method responsible for encrypting the login payload—but understanding <em>how</em> it constructs that payload within a strict 13-byte limit purely from assembly (ARM64) was proving to be a headache.</p>Why Your "Resilient" Homelab is Slower Than a Raspberry Pihttps://ericxliu.me/posts/debugging-authentik-performance/Fri, 02 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/debugging-authentik-performance/<p>In the world of self-hosting, there are many metrics for success: 99.9% uptime, sub-second latency, or a perfect GitOps pipeline. But for those of us running &ldquo;production&rdquo; at home, there is only one metric that truly matters: <strong>The Wife Acceptance Factor (WAF)</strong>.</p> <p>My detailed Grafana dashboards said everything was fine. But my wife said the SSO login was &ldquo;slow sometimes.&rdquo; She was right. Debugging it took me down a rabbit hole of connection pooling, misplaced assumptions, and the harsh reality of running databases on distributed storage.</p>How I Got Open WebUI Talking to OpenAI Web Searchhttps://ericxliu.me/posts/open-webui-openai-websearch/Mon, 29 Dec 2025 00:00:00 +0000https://ericxliu.me/posts/open-webui-openai-websearch/<p>OpenAI promised native web search in GPT‑5, but LiteLLM proxy deployments (and by extension Open WebUI) still choke on it—issue <a href="https://github.com/BerriAI/litellm/issues/13042" class="external-link" target="_blank" rel="noopener">#13042</a> tracks the fallout. I needed grounded answers inside Open WebUI anyway, so I built a workaround: route GPT‑5 traffic through the Responses API and mask every <code>web_search_call</code> before the UI ever sees it.</p> <p>This post documents the final setup, the hotfix script that keeps LiteLLM honest, and the tests that prove Open WebUI now streams cited answers without trying to execute the tool itself.</p>From Gemini-3-Flash to T5-Gemma-2: A Journey in Distilling a Family Finance LLMhttps://ericxliu.me/posts/technical-deep-dive-llm-categorization/Sat, 27 Dec 2025 00:00:00 +0000https://ericxliu.me/posts/technical-deep-dive-llm-categorization/<p>Running a family finance system is surprisingly complex. What starts as a simple spreadsheet often evolves into a web of rules, exceptions, and &ldquo;wait, was this dinner or <em>vacation</em> dinner?&rdquo; questions.</p> diff --git a/posts/jellyfin-sso-with-authentik/index.html b/posts/jellyfin-sso-with-authentik/index.html index eb7cc02..6c9b12a 100644 --- a/posts/jellyfin-sso-with-authentik/index.html +++ b/posts/jellyfin-sso-with-authentik/index.html @@ -71,4 +71,4 @@ Do not rely on header forwarding magic. Force the scheme in the plugin configura 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html b/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html index 5a09f3b..7eddac4 100644 --- a/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html +++ b/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html @@ -44,4 +44,4 @@ The Top-K routing mechanism, as illustrated in the provided ima 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/open-webui-openai-websearch/index.html b/posts/open-webui-openai-websearch/index.html index d45072b..fb12ea7 100644 --- a/posts/open-webui-openai-websearch/index.html +++ b/posts/open-webui-openai-websearch/index.html @@ -86,4 +86,4 @@ This post documents the final setup, the hotfix script that keeps LiteLLM honest 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html b/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html index 727dd68..765913e 100644 --- a/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html +++ b/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html @@ -98,4 +98,4 @@ When using WireGuard together with MWAN3 on OpenWrt, the tunnel can fail to esta 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/page/2/index.html b/posts/page/2/index.html index 5749877..9be0777 100644 --- a/posts/page/2/index.html +++ b/posts/page/2/index.html @@ -1,6 +1,7 @@ Posts · Eric X. Liu's Personal Page
\ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/page/3/index.html b/posts/page/3/index.html index 0ff2d6c..49a10ea 100644 --- a/posts/page/3/index.html +++ b/posts/page/3/index.html @@ -1,9 +1,10 @@ Posts · Eric X. Liu's Personal Page
\ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/ppo-for-language-models/index.html b/posts/ppo-for-language-models/index.html index 96fd3cc..bed9d1a 100644 --- a/posts/ppo-for-language-models/index.html +++ b/posts/ppo-for-language-models/index.html @@ -25,4 +25,4 @@ where δ_t = r_t + γV(s_{t+1}) - V(s_t)

  • γ (gam 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/quantization-in-llms/index.html b/posts/quantization-in-llms/index.html index 7be95ac..83b5714 100644 --- a/posts/quantization-in-llms/index.html +++ b/posts/quantization-in-llms/index.html @@ -7,4 +7,4 @@ 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/reverse-engineering-antigravity-ide/index.html b/posts/reverse-engineering-antigravity-ide/index.html new file mode 100644 index 0000000..688ba36 --- /dev/null +++ b/posts/reverse-engineering-antigravity-ide/index.html @@ -0,0 +1,27 @@ +How I Built a Blog Agent that Writes About Itself · Eric X. Liu's Personal Page

    How I Built a Blog Agent that Writes About Itself

    I’ve been spending a lot of time “vibe coding” in the Antigravity IDE lately. It’s an incredible flow state—intense, iterative, and fast. But it has a major flaw: the context is ephemeral. Once the session is over, that rich history of decisions, wrong turns, and “aha!” moments is locked away in an opaque, internal format.

    I wanted to capture that value. I wanted a system that could take my chaotic coding sessions and distill them into structured, technical blog posts (like the one you’re reading right now).

    But getting the data out turned into a much deeper rabbit hole than I expected.

    The Challenge: Check the Database? + +Link to heading

    My first instinct was simple: It’s an Electron app, so there’s probably a SQLite database.

    I found it easily enough at ~/Library/Application Support/Antigravity/User/globalStorage/state.vscdb. But when I opened it up, I hit a wall. The data wasn’t plain text; it was stored in the ItemTable under keys like antigravityUnifiedStateSync.trajectorySummaries as Base64-encoded strings.

    Decoding them revealed raw Protobuf wire formats, not JSON.

    The “Wire-Walking” Dead End + +Link to heading

    I spent a few hours writing a Python script to “wire-walk” the Protobuf data without a schema. I managed to extract some human-readable strings, but it was a mess:

    1. Missing Context: I got fragments of text, but the user prompts and cohesive flow were gone.
    2. Encryption: The actual conversation files (ending in .pb) in ~/.gemini/antigravity/conversations/ were encrypted.

    It turns out Antigravity uses Electron’s safeStorage API, which interfaces directly with the macOS Keychain. Without the app’s private key (which is hardware-bound), that data is effectively random noise. I even tried using Frida to hook safeStorage.decryptString(), but macOS SIP (System Integrity Protection) and code signing shut that down immediately.

    I was stuck. I couldn’t decrypt the local files, and I couldn’t parse the database effectively.

    The Breakthrough: Living Off the Land + +Link to heading

    When you can’t break the front door, look for the side entrance. I realized I wasn’t the only one trying to read this state—the official extensions had to do it too.

    I started poking around the source code of the vscode-antigravity-cockpit extension, specifically a file named local_auth_importer.ts. That’s where I found the golden ticket.

    The extension doesn’t decrypt the local files. Instead, it reads a specific key from the SQLite database: jetskiStateSync.agentManagerInitState.

    When I decoded field #6 of this Protobuf structure, I found an OAuthTokenInfo message. It contained the user’s active accessToken and refreshToken.

    Shifting Strategy: Don’t Crack it, Join it + +Link to heading

    This changed everything. I didn’t need to reverse-engineer the local storage encryption; I just needed to impersonate the IDE.

    By “piggybacking” on this existing auth mechanism, I could extract a valid OAuth token directly from the local state. But I still needed the endpoints.

    Instead of guessing, I opened the Developer Tools inside Antigravity itself (it is Electron, after all). By enabling the Chrome network tracing tools and triggering an export manually, I caught the request in the act.

    I saw the exact call to exa.language_server_pb.LanguageServerService/ConvertTrajectoryToMarkdown.

    It was perfect. By sending a gRPC-over-HTTP request to this endpoint using the stolen token, the server—which does have access to the unencrypted history—returned a perfectly formatted Markdown document of my entire coding session.

    The Architecture: The Blog-Agent + +Link to heading

    Once I had the data extraction solved, building the rest of the “blog-agent” was straightforward. I built a Node.js stack to automate the pipeline:

    • Backend: An Express server handles the routing, session imports, and post generation.
    • Frontend: A clean EJS interface to list sessions, view summaries, and “publish” them to the filesystem.
    • Storage: A local SQLite database (data/sessions.sqlite) acts as a cache. (I learned my lesson: always cache your LLM inputs).
    • The Brain: I use the OpenAI SDK (pointing to a LiteLLM proxy) to interface with gemini-3-flash. I wrote a map-reduce style prompt that first extracts technical decisions from the raw conversation log, then synthesizes them into a narrative.
    • Persistence: The final posts are saved with YAML front matter into a generated_posts/ directory.

    Key Insights + +Link to heading

    • Don’t Fight the OS: Trying to break macOS Keychain/SIP encryption is a losing battle for a weekend project.
    • Follow the Tokens: Applications often store auth tokens in less-secure places (like plain SQLite or weaker encryption) than the user content itself.
    • Extensions are Open Books: If an app has extensions, their source code is often the best documentation for the internal API.

    In a satisfying detailed loop, this very article was generated by the blog-agent itself, analyzing the “vibe coding” session where I built it.

    References + +Link to heading

    • server.js: The Express server and API implementation.
    • services/antigravity.js: The client for the Antigravity gRPC-over-HTTP API.
    • vscode-antigravity-cockpit: The extension that leaked the auth logic.
    \ No newline at end of file diff --git a/posts/rooting-pixel-2-xl-for-reverse-engineering/index.html b/posts/rooting-pixel-2-xl-for-reverse-engineering/index.html index 1f5a8de..06d2bea 100644 --- a/posts/rooting-pixel-2-xl-for-reverse-engineering/index.html +++ b/posts/rooting-pixel-2-xl-for-reverse-engineering/index.html @@ -35,4 +35,4 @@ I used Magisk v30.6 (the latest as of writing). The patch proce 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html b/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html index 609db0e..4a9ff70 100644 --- a/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html +++ b/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html @@ -59,4 +59,4 @@ nvidia-smi failed to communicate with the NVIDIA driver modprobe nvidia → “K 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/supabase-deep-dive/index.html b/posts/supabase-deep-dive/index.html index c986776..d9121dc 100644 --- a/posts/supabase-deep-dive/index.html +++ b/posts/supabase-deep-dive/index.html @@ -90,4 +90,4 @@ Supabase enters this space with a radically different philosophy: transparency. 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html b/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html index 6641371..3fc0f5a 100644 --- a/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html +++ b/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html @@ -30,4 +30,4 @@ But to truly understand the field, we must look at the pivotal models that explo 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/technical-deep-dive-llm-categorization/index.html b/posts/technical-deep-dive-llm-categorization/index.html index 0ea393e..df923b7 100644 --- a/posts/technical-deep-dive-llm-categorization/index.html +++ b/posts/technical-deep-dive-llm-categorization/index.html @@ -73,4 +73,4 @@ It turned out to be a syntax error in my arguments passed to the Trainer[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/the-convergence-of-fast-weights-linear-attention-and-state-space-models/index.html b/posts/the-convergence-of-fast-weights-linear-attention-and-state-space-models/index.html index 32794c2..780e599 100644 --- a/posts/the-convergence-of-fast-weights-linear-attention-and-state-space-models/index.html +++ b/posts/the-convergence-of-fast-weights-linear-attention-and-state-space-models/index.html @@ -26,4 +26,4 @@ This article explores the mathematical equivalence between Hinton’s concept of 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/transformer-s-core-mechanics/index.html b/posts/transformer-s-core-mechanics/index.html index 4891d76..69b40a0 100644 --- a/posts/transformer-s-core-mechanics/index.html +++ b/posts/transformer-s-core-mechanics/index.html @@ -36,4 +36,4 @@ In deep learning, a “channel” can be thought of as a feature dimensi 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/unifi-vlan-migration-to-zone-based-architecture/index.html b/posts/unifi-vlan-migration-to-zone-based-architecture/index.html index 57508d3..c936ae1 100644 --- a/posts/unifi-vlan-migration-to-zone-based-architecture/index.html +++ b/posts/unifi-vlan-migration-to-zone-based-architecture/index.html @@ -28,4 +28,4 @@ This article documents that journey. It details the pitfalls encountered, the co 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/useful/index.html b/posts/useful/index.html index c0d7de4..2c4a627 100644 --- a/posts/useful/index.html +++ b/posts/useful/index.html @@ -9,4 +9,4 @@ One-minute read
    • [13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/posts/vattention/index.html b/posts/vattention/index.html index a0e702a..f82a844 100644 --- a/posts/vattention/index.html +++ b/posts/vattention/index.html @@ -31,4 +31,4 @@ The GPU TLB hierarchy is sensitive to page sizes.

      • 4KB Pages:< 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/series/index.html b/series/index.html index 93436ab..8b42156 100644 --- a/series/index.html +++ b/series/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 7c0a64b..8aef8af 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://ericxliu.me/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/2026-01-08T06:02:38+00:00weekly0.5https://ericxliu.me/posts/debugging-authentik-performance/2026-01-03T06:57:12+00:00weekly0.5https://ericxliu.me/posts/open-webui-openai-websearch/2025-12-29T07:15:58+00:00weekly0.5https://ericxliu.me/posts/technical-deep-dive-llm-categorization/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/about/2025-12-20T09:52:07-08:00weekly0.5https://ericxliu.me/posts/the-convergence-of-fast-weights-linear-attention-and-state-space-models/2025-12-19T21:21:55+00:00weekly0.5https://ericxliu.me/posts/vattention/2025-12-19T21:21:55+00:00weekly0.5https://ericxliu.me/posts/jellyfin-sso-with-authentik/2025-12-28T21:21:42+00:00weekly0.5https://ericxliu.me/posts/benchmarking-llms-on-jetson-orin-nano/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/flashing-jetson-orin-nano-in-virtualized-environments/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/openwrt-mwan3-wireguard-endpoint-exclusion/2025-10-02T08:34:05+00:00weekly0.5https://ericxliu.me/posts/unifi-vlan-migration-to-zone-based-architecture/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/quantization-in-llms/2025-08-20T06:02:35+00:00weekly0.5https://ericxliu.me/posts/breville-barista-pro-maintenance/2025-08-20T06:04:36+00:00weekly0.5https://ericxliu.me/posts/secure-boot-dkms-and-mok-on-proxmox-debian/2025-08-14T06:50:22+00:00weekly0.5https://ericxliu.me/posts/how-rvq-teaches-llms-to-see-and-hear/2025-08-08T17:36:52+00:00weekly0.5https://ericxliu.me/posts/supabase-deep-dive/2025-08-04T03:59:37+00:00weekly0.5https://ericxliu.me/posts/ppo-for-language-models/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/2025-08-03T06:02:48+00:00weekly0.5https://ericxliu.me/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/2025-08-03T03:41:10+00:00weekly0.5https://ericxliu.me/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/2025-08-03T04:20:20+00:00weekly0.5https://ericxliu.me/posts/transformer-s-core-mechanics/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/useful/2025-08-03T08:37:28-07:00weekly0.5https://ericxliu.me/authors/weekly0.5https://ericxliu.me/categories/weekly0.5https://ericxliu.me/series/weekly0.5https://ericxliu.me/tags/weekly0.5 \ No newline at end of file +https://ericxliu.me/2026-01-22T01:49:53+00:00weekly0.5https://ericxliu.me/posts/reverse-engineering-antigravity-ide/2026-01-22T01:49:53+00:00weekly0.5https://ericxliu.me/posts/2026-01-22T01:49:53+00:00weekly0.5https://ericxliu.me/posts/rooting-pixel-2-xl-for-reverse-engineering/2026-01-08T06:02:38+00:00weekly0.5https://ericxliu.me/posts/debugging-authentik-performance/2026-01-03T06:57:12+00:00weekly0.5https://ericxliu.me/posts/open-webui-openai-websearch/2025-12-29T07:15:58+00:00weekly0.5https://ericxliu.me/posts/technical-deep-dive-llm-categorization/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/about/2025-12-20T09:52:07-08:00weekly0.5https://ericxliu.me/posts/the-convergence-of-fast-weights-linear-attention-and-state-space-models/2025-12-19T21:21:55+00:00weekly0.5https://ericxliu.me/posts/vattention/2025-12-19T21:21:55+00:00weekly0.5https://ericxliu.me/posts/jellyfin-sso-with-authentik/2025-12-28T21:21:42+00:00weekly0.5https://ericxliu.me/posts/benchmarking-llms-on-jetson-orin-nano/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/flashing-jetson-orin-nano-in-virtualized-environments/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/openwrt-mwan3-wireguard-endpoint-exclusion/2025-10-02T08:34:05+00:00weekly0.5https://ericxliu.me/posts/unifi-vlan-migration-to-zone-based-architecture/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/quantization-in-llms/2025-08-20T06:02:35+00:00weekly0.5https://ericxliu.me/posts/breville-barista-pro-maintenance/2025-08-20T06:04:36+00:00weekly0.5https://ericxliu.me/posts/secure-boot-dkms-and-mok-on-proxmox-debian/2025-08-14T06:50:22+00:00weekly0.5https://ericxliu.me/posts/how-rvq-teaches-llms-to-see-and-hear/2025-08-08T17:36:52+00:00weekly0.5https://ericxliu.me/posts/supabase-deep-dive/2025-08-04T03:59:37+00:00weekly0.5https://ericxliu.me/posts/ppo-for-language-models/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/2025-08-03T06:02:48+00:00weekly0.5https://ericxliu.me/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/2025-08-03T03:41:10+00:00weekly0.5https://ericxliu.me/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/2025-08-03T04:20:20+00:00weekly0.5https://ericxliu.me/posts/transformer-s-core-mechanics/2026-01-10T20:10:48+00:00weekly0.5https://ericxliu.me/posts/useful/2025-08-03T08:37:28-07:00weekly0.5https://ericxliu.me/authors/weekly0.5https://ericxliu.me/categories/weekly0.5https://ericxliu.me/series/weekly0.5https://ericxliu.me/tags/weekly0.5 \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 0a34861..993bd13 100644 --- a/tags/index.html +++ b/tags/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[13abf57] \ No newline at end of file +[fe6bf91] \ No newline at end of file