From 293f0bfa7770ccf6443c5b449cbc66b5bc618ba7 Mon Sep 17 00:00:00 2001 From: eric Date: Thu, 22 Jan 2026 05:11:15 +0000 Subject: [PATCH] deploy: c112e1eb44430c39698e1f993f2be0c54f12f73b --- 404.html | 2 +- about/index.html | 2 +- authors/index.html | 2 +- categories/index.html | 2 +- index.html | 6 ++-- 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 | 2 +- .../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 +- posts/vibe-coding-from-the-jeep/index.html | 35 +++++++++++++++++++ series/index.html | 2 +- sitemap.xml | 2 +- tags/index.html | 2 +- 37 files changed, 83 insertions(+), 45 deletions(-) create mode 100644 posts/vibe-coding-from-the-jeep/index.html diff --git a/404.html b/404.html index 619bf87..4436b9a 100644 --- a/404.html +++ b/404.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/about/index.html b/about/index.html index 4858f12..e17c822 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/authors/index.html b/authors/index.html index b9b0875..290b0e6 100644 --- a/authors/index.html +++ b/authors/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 503cd89..f61f0c6 100644 --- a/categories/index.html +++ b/categories/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/index.html b/index.html index 902a41e..de22bc8 100644 --- a/index.html +++ b/index.html @@ -1,8 +1,8 @@ Eric X. Liu's Personal Page
avatar

Eric X. Liu

  • -
© +
avatar

Eric X. Liu

  • +
\ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/index.xml b/index.xml index a264231..12ef939 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 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> +Eric X. Liu's Personal Pagehttps://ericxliu.me/Recent content on Eric X. Liu's Personal PageHugoenThu, 22 Jan 2026 05:10:58 +0000Hacking a Chinese Car Stereo to fulfill my Knight Rider dreamshttps://ericxliu.me/posts/vibe-coding-from-the-jeep/Wed, 21 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/vibe-coding-from-the-jeep/<p>&ldquo;Vibe coding&rdquo; has become my latest obsession. It&rsquo;s that flow state where the tools disappear, and you&rsquo;re just manipulating logic at the speed of thought. Usually, this happens in a high-end IDE like Antigravity. But lately, I&rsquo;ve been trying to answer a childhood dream.</p> +<p>Growing up in China before the internet age, my window to the outside world was CCTV-6. Along with <em>Baywatch</em>, one of the first American TV shows I ever watched was <em>Knight Rider</em>. I don&rsquo;t remember the exact plot lines, but the core concept stuck with me forever: KITT. A car that could talk, think, and do things for you.</p>How 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> diff --git a/posts/benchmarking-llms-on-jetson-orin-nano/index.html b/posts/benchmarking-llms-on-jetson-orin-nano/index.html index 825885a..b2b8ed2 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 34dbb47..1e6c8f2 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/debugging-authentik-performance/index.html b/posts/debugging-authentik-performance/index.html index a3af189..b87e473 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 4ecc886..6e95781 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 37150cb..5a8c0cf 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 8e16e68..a76c6c9 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/index.html b/posts/index.html index 901d913..998d278 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 +[c112e1e] \ No newline at end of file diff --git a/posts/index.xml b/posts/index.xml index 7e2fef1..9e4232a 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 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> +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 05:10:58 +0000Hacking a Chinese Car Stereo to fulfill my Knight Rider dreamshttps://ericxliu.me/posts/vibe-coding-from-the-jeep/Wed, 21 Jan 2026 00:00:00 +0000https://ericxliu.me/posts/vibe-coding-from-the-jeep/<p>&ldquo;Vibe coding&rdquo; has become my latest obsession. It&rsquo;s that flow state where the tools disappear, and you&rsquo;re just manipulating logic at the speed of thought. Usually, this happens in a high-end IDE like Antigravity. But lately, I&rsquo;ve been trying to answer a childhood dream.</p> +<p>Growing up in China before the internet age, my window to the outside world was CCTV-6. Along with <em>Baywatch</em>, one of the first American TV shows I ever watched was <em>Knight Rider</em>. I don&rsquo;t remember the exact plot lines, but the core concept stuck with me forever: KITT. A car that could talk, think, and do things for you.</p>How 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> diff --git a/posts/jellyfin-sso-with-authentik/index.html b/posts/jellyfin-sso-with-authentik/index.html index 6c9b12a..32a712b 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 7eddac4..1ab76ba 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 fb12ea7..ebf6615 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 765913e..bfc887e 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/page/2/index.html b/posts/page/2/index.html index 9be0777..e0a0998 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 +[c112e1e] \ No newline at end of file diff --git a/posts/page/3/index.html b/posts/page/3/index.html index 49a10ea..7d73c51 100644 --- a/posts/page/3/index.html +++ b/posts/page/3/index.html @@ -1,10 +1,11 @@ Posts · Eric X. Liu's Personal Page
\ No newline at end of file +[c112e1e] \ 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 bed9d1a..a0e27aa 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/quantization-in-llms/index.html b/posts/quantization-in-llms/index.html index 83b5714..bb5d798 100644 --- a/posts/quantization-in-llms/index.html +++ b/posts/quantization-in-llms/index.html @@ -7,4 +7,4 @@ 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/reverse-engineering-antigravity-ide/index.html b/posts/reverse-engineering-antigravity-ide/index.html index 688ba36..97fe2c6 100644 --- a/posts/reverse-engineering-antigravity-ide/index.html +++ b/posts/reverse-engineering-antigravity-ide/index.html @@ -24,4 +24,4 @@ I wanted to capture that value. I wanted a system that could take my chaotic cod 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 06d2bea..2bb95a2 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 4a9ff70..e3862d6 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/supabase-deep-dive/index.html b/posts/supabase-deep-dive/index.html index d9121dc..63f4a89 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 3fc0f5a..138462b 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 df923b7..cc2b8bb 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[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 780e599..31685d8 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 69b40a0..4a34d40 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ 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 c936ae1..73d6253 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/useful/index.html b/posts/useful/index.html index 2c4a627..5eae152 100644 --- a/posts/useful/index.html +++ b/posts/useful/index.html @@ -9,4 +9,4 @@ One-minute read
    • [fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/vattention/index.html b/posts/vattention/index.html index f82a844..a4fcd44 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 -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/posts/vibe-coding-from-the-jeep/index.html b/posts/vibe-coding-from-the-jeep/index.html new file mode 100644 index 0000000..3429113 --- /dev/null +++ b/posts/vibe-coding-from-the-jeep/index.html @@ -0,0 +1,35 @@ +Hacking a Chinese Car Stereo to fulfill my Knight Rider dreams · Eric X. Liu's Personal Page

        Hacking a Chinese Car Stereo to fulfill my Knight Rider dreams

        “Vibe coding” has become my latest obsession. It’s that flow state where the tools disappear, and you’re just manipulating logic at the speed of thought. Usually, this happens in a high-end IDE like Antigravity. But lately, I’ve been trying to answer a childhood dream.

        Growing up in China before the internet age, my window to the outside world was CCTV-6. Along with Baywatch, one of the first American TV shows I ever watched was Knight Rider. I don’t remember the exact plot lines, but the core concept stuck with me forever: KITT. A car that could talk, think, and do things for you.

        Decades later, I’m sitting in my Jeep, wondering: Can I build my own KITT? Can I take the vibe on the road?

        I already updated the head unit in my Jeep to an aftermarket unit. It features a K706 (UIS7862S) chipset with an 8-core CPU and 8GB of RAM, essentially making it a reasonably powerful Android tablet hardwired into the dashboard.

        The Objective + +Link to heading

        Turn this car accessory into a legitimate dev environment. I wanted a physical keyboard, a real terminal, and access to my AI coding assistants. I wanted to push code while parked on a trail.

        The Hardware Blocker: Getting Input + +Link to heading

        The first hurdle was mundane but blocking: My Bluetooth keyboard wouldn’t pair. The head unit could see other devices, but refused to connect to my keyboard.

        Attempt 1: The USB Dongle Bypass + +Link to heading

        My first instinct was to blame the cheap Chinese head unit hardware. I grabbed a spare TP-Link USB Bluetooth dongle and plugged it in, hoping to bypass the internal stack entirely.

        The device showed up in lsusb, but it remained inert. A quick check of the kernel config via zcat /proc/config.gz revealed the bad news:

        # CONFIG_BT is not set
        +

        The kernel was compiled without generic Bluetooth driver support (btusb). Even with root access, I couldn’t load the drivers because they simply didn’t exist in the firmware. I was stuck with the internal hardware.

        Attempt 2: The “Dual Bluetooth” Fix + +Link to heading

        Forced back to the built-in Bluetooth, I tried to diagnose why it was ignoring my keyboard. Standard debugging tools painted a grim picture:

        ❯ hciconfig -a
        +# (Empty output - no standard HCI interface found)
        +
        +❯ ps -A | grep -iE "goc|ivt|syu"
        +u0_a50 3456 ... com.goc.sdk  # Accessing the proprietary BT chip
        +

        The diagnosis was clear: The internal Bluetooth chip is acting in Slave Mode (Client), managed by a proprietary com.goc.sdk service instead of the standard Android Bluetooth stack. It’s designed to be a speaker for your phone, not to host a keyboard.

        The Fix: Hidden deep in the Factory Settings (password 8888), there’s a toggle called “Dual Bluetooth”. Enabling this flips the proprietary stack to expose a standard Host interface. Enable that, and suddenly my mechanical keyboard connected instantly.

        The Software: Termux + Claude + +Link to heading

        With input sorted, the software setup was surprisingly straightforward. Termux was the obvious choice for a terminal.

        I discovered that Claude Code works on Termux with zero hassle.

        The setup was shockingly simple:

        pkg install nodejs git ripgrep
        +npm install -g @anthropic-ai/claude-code
        +

        Authentication via claude login worked out of the box. Now, I have a fully capable coding agent running directly on my dashboard. I can pull a repo, ask Claude to refactor a module, and push the changes—all without opening a laptop.

        Key Insights + +Link to heading

        • Head Units are just Weird Tablets: They have quirks (like Slave-only Bluetooth), but they are standard Android under the hood. adb root is your best friend for diagnosing them.
        • Check the Kernel Config: Before buying hardware peripherals for embedded Android devices, always check /proc/config.gz. If the support isn’t compiled in, you’re dead in the water.
        • The Vibe is Portable: With tools like Termux and Claude Code, the “dev environment” is no longer a heavy laptop. It’s anywhere you have a terminal.

        References + +Link to heading

        1. Reddit: Claude Code on Termux
        \ No newline at end of file diff --git a/series/index.html b/series/index.html index 8b42156..7d0c833 100644 --- a/series/index.html +++ b/series/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 8aef8af..b6b1438 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -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 +https://ericxliu.me/2026-01-22T05:10:58+00:00weekly0.5https://ericxliu.me/posts/vibe-coding-from-the-jeep/2026-01-22T05:10:58+00:00weekly0.5https://ericxliu.me/posts/2026-01-22T05:10:58+00:00weekly0.5https://ericxliu.me/posts/reverse-engineering-antigravity-ide/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 993bd13..26032a0 100644 --- a/tags/index.html +++ b/tags/index.html @@ -4,4 +4,4 @@ 2016 - 2026 Eric X. Liu -[fe6bf91] \ No newline at end of file +[c112e1e] \ No newline at end of file