Building Driver-Hub: A Feishu Web App for GitLab Project Management

Overview This article introduces Driver-Hub, a Feishu (Lark) Web Application I built to connect with our internal GitLab server. The app allows searching projects, browsing branches, viewing commits, and downloading code archives directly from Feishu’s workplace UI. The implementation is purely web-based. Traditional bot features were removed — users open Driver-Hub in Feishu, interact with form controls, and the app communicates with GitLab APIs through FastAPI. 1. Feishu Developer Platform Setup Before writing any code, configure a Feishu developer app to host the Driver-Hub UI. ...

November 10, 2025
Doom Emacs running perfectly in Windows Terminal

Fixing Doom Emacs Icon Garbling in Windows Terminal (MSYS2 + Mingw64)

When running Doom Emacs under Mingw64 inside Windows Terminal, you may find the UI symbols (like those from Nerd Font) showing up as random blocks or question marks. This issue is almost always caused by Windows console encoding not using UTF-8, even though your Emacs and fonts are already configured correctly. This article explains why it happens and how to fix it completely — including installing Nerd Fonts via Scoop, adjusting Windows Terminal profiles, and ensuring UTF-8 consistency across all layers. ...

November 9, 2025

Rebuilding My Windows 10 Development Environment

A reproducible Windows 10 Pro 22H2 workstation setup for cross-platform development: zsh, PowerShell, Doom Emacs, MicroPython, Windows Terminal, and proxy-friendly package mirrors.

November 6, 2025

Golden Week Runs: From River Breeze to Endless Laps

1. Along the River, Starting from Wanguo Stadium Golden Week turns Shanghai into a softer city. Traffic thins, the air cools, and the river path near Wanguo Stadium feels like it belongs to the runners again. On the first morning of the holiday I slipped onto the trail, followed the water south until the path ran out of concrete, then traced the same route home. ...

October 7, 2025

Chili Pepper Stir-Fried Pork: A Spicy Symphony

Growing up in Sichuan means measuring seasons by the peppers in the market. At home, the wok was rarely quiet, and a handful of chilies was the quickest way to pull everyone into the kitchen. My wife and kid used to protest, waving chopsticks like white flags, so I dialed down the heat until they got hooked. These days they request this stir-fry by name. The dish is officially Hunan, but in practice it’s a friendly handshake between Sichuan’s smoky depth and Hunan’s clean heat. The heart of it is simple: bright fire, fragrant oil, and a flash of sweetness from good pork. ...

September 27, 2025

11.11 km on the Corporate Treadmill

Weekdays lately feel like a sprint between meetings, so the only way to keep training is to embrace the office treadmill. Surprisingly, I don’t mind it. I leave the headphones in my locker and listen to the belt hum in rhythm with my footsteps. It’s a stripped-down kind of focus. On September 25, the console flashed 11.11 km in 55:31, roughly 689 kcal at an even 5'00’’/km. Because treadmills can feel forgiving, I nudged the incline up a notch to mimic pavement. ...

September 25, 2025
A table with classic Chinese spices and condiments

Essential Knowledge of Chinese Cooking

Essential Knowledge of Chinese Cooking Chinese cooking is a language of flame and patience. Recipes are useful, but the real fluency comes from understanding heat, timing, and balance—the grammar behind every stir-fry, braise, or steamed dish. The notes below are my crib sheet when I need to reset my instincts. The Magic of Beer in Braised Dishes When a chef tips beer into red-braised pork, it’s not a whim. Beer plays three roles at once: ...

September 24, 2025

ROM Packaging with --just-symbols

“Premature optimization is the root of all evil.” — Donald Knuth Overview Goal: Package low-level firmware as a ROM image plus symbol export. The application imports that symbol table during its own link stage, so it can call into ROM code without ever touching the original sources. ROM stays frozen and reusable; the APP continues to evolve. Key techniques: ld --just-symbols to reuse symbol addresses Exporting stable symbols __weak rewriting for patches Shared RAM segments Interface consistency constraints Equivalent implementation in Keil using --symdefs I. ROM Packaging with gcc --just-symbols Gather ROM code into a dedicated section Tag the reusable functions with __attribute__((section(".rom"))) so the object files collect them neatly. ...

September 24, 2025

A 21K Morning Run Around Shanghai

Sometimes the best tour guide is a pair of running shoes. Before 6 a.m. on a September Saturday, I stepped out for a 21.34 km half-marathon loop through central Shanghai and let the city unfold in silence. I started near Zhongshan Park and slipped onto the Suzhou Creek path. The city was still yawning awake: museum facades mirrored in the water, Jing’an’s skyline stretching its shadows. Around the 6 km mark the Oriental Pearl Tower appeared, its pink spheres glowing softly through the haze like lanterns waiting for dusk. ...

September 20, 2025

Running Along the Baltic in Palanga

10.20 kilometers. 51 minutes and 29 seconds. Average pace 5'03"/km. Calories: 625. Those are the facts from a morning run in Palanga, a seaside town on Lithuania’s Baltic coast. The watch keeps the numbers; the trail keeps the memories. From Amber to Adrenaline I set off near the Amber Museum, letting the path pull me south. The forest smells like pine needles rinsed in salt water, and the run began as a quiet conversation between footsteps and the Baltic breeze. ...

July 19, 2025