Archive
161 writings
Tags
Most used
All Posts161Essay28OS22Linux18Blog17Web14Java13CSS12VSCode12Hexo10Shell10Workflow10Catppuccin9Cities
ChengDu9QingDao6SuZhou6AnShun1ShangHai1All topics
Agent2AI2Algorithm3Android3Apache3Asynchronous1Atomicity1Authentication2Authorization2Book1Browser4Bun1C3Carapace2CDN2CICD1Clash1CLI3Collection1Concurrency4Cpp1CyberPunk2DataBase7Decorator2Django1Docker2Dotfiles2Entertainment1fd2ffmpeg1File2Font2FOSS1FrontEnd2Games6Generics2Ghostty1GIL1Git5GitHub1Glossary1Go1HTML3HTTP1HTTPS2Icarus3Image4Internet3IO2JavaScript4Just1JWT1Lab1LCP2Literature4Live2d1LQIP1LSP1Lua2macOS3Makefile1Markdown6Maven1Microsoft3Music5MyBatis1Neovim2Network7Nushell9Onedrive2OneUI1OSS1Parallelism2Performance8Pjax1Process6Productivity6Programming1Proxy1Python7Queue1Reflection2Responsive2Ricing7Ruff1Rust1Security1Shiki4Sketchybar1Skill1Socket2Spicetify1Spotify1Spring1SQL2srcset2SSH2SVC1Swup1TCP2Terminal8Theme1Thread5Tmux3Tomcat1TUI3Typst1Ubuntu2UIUX6UNIX1UV1Vim3VSIX1Wallpaper1Windows7WSL1oFC7Wlwu125c4O3zVJM7U59M2LW9+UVvn0EMrc1SCaUS+3luTGV68LnxIInOhqiZf7/xJkJSxQPBuDtXBdEvwrn4rQeZ72PQ7Qvwr7dLVsvaeQANtfF35cizPBDjs2pe/4XJxUudAMnt3IWgCPNYSdT401iXtVeAHYJXVrQXMCHiZUOdeSgwV/N5vL+MsXkTtceaw1aZCeRNojXaWK7YSlzlY0fIbLPhjTnkMs5QzrXg0Ec9A5XG/61mgJZFnRXiPbP6H3M4xGzg68STx8Zq4QUfE9QvPUflwQyiM1aunxuV++BlcbAnLDrLfXlHy74KLHjAKuBetuXTpXbs/t40dCT0C/qvKb0dyaZIGnKm7b2Kpjhj/txZqK+54w4ClJ2FfHrpEndSujnM8QFZ8TLJKwIpXvsETB4gV4up12Fsn2qKFbEvPhYbxPE4yrh3ivw8Qw+9q9EnNh4axqmIX5vzd8K/p9EpQ21xaFroQXM7JHkqTZv3EMeBXbmo8O2w4mmiyb5pakcRbY3t5JBhufI8/aECZVvgKZVuuGedr1UFKs4AKaOy6/Nyl2ZNXxO7NHp3Mn9vljNO9oEakVxS7s2A9owBGx8lcvAGpVTVvevwYY/lEGaKUJHR52Pb4FJGHwpx4gm03cE5Izjk5Ry8APAQXmtkMCiGQHnFxpbb7nQMYjrzNfhmqxPoxlVhjh/9azqhlvwao3wbzefKlHvqcx0r2Xbl6uhjdPCiWamBGz2RFD9wcM8QfgMSO+UTixZII5k0agmGDtcfweVmfqEltIwO5x07OXA3PC8wXKQCY2u9Y+2MXo6vzFtVcHSU0i+egzFCVf6YQYSz5BPzQozEpl/skRi1a/+ty8jCcShrq2aLuitIRs5z3nSOAg2jurzjwaMbXj6ysb+I4RE4g5Dm97b2O+JlJEuolqjWL7m3m40o5cRvoj80UHwDP2IBenXXtfey2x/cv6cGT5E2bxEN2erG0RelvWA5gF2Y0n/hPYiOkVEbeCYB83qE2plTjvXA4JpExWgga+M26UBUp368zqLPyC4X7iaWhzScgojSKVxyTK1X9RDKSidpim5V7hMK0c6FphMhWOWFDfsTJq057U//YbOvWGHQ00h0KnEMsvT5BXSRCM6dLTqey6PmHl6wnydzUdSw8LtXjVNntsiPktuTx8xIF40XihdLBNVDsvn/Fr5x63OTLrrsJ5wLS/q4agFqAngQfyp43/jhTmno/vfMn0BwfWVlxkY/9kJGWqU9
autumn/02
- Deep Time: From Fish to Human — Notes After the ExhibitionNotes after Shanghai’s From Fish to Human exhibition: notochords, jaws, fins, our ties to fish, and the discovery of a living coelacanth in 1938.EssayShangHai12 min
- Shanghai Natural History MuseumShanghai Natural History Museum on National Day: giant rhinos, a curious lion, familiar experiments, and fossils I only understood after reading more.8 min
summer/10
- Two Days in Anshun: Huangguoshu and LonggongFour of us traveled from Gui'an to Anshun on a weekend break from training, exploring Huangguoshu's waterfalls and the caves of Longgong, the Dragon Palace.EssayAnShun19 min
- Evaluation Timing of Set Comprehensions vs. Generator Expressions in PythonPython set comprehensions evaluate immediately; generator expressions are lazy and bind only the outer iterator. Examples show why results diverge after the list changes.Python3 min
- Notes From Qingcheng Back MountainA hike through Qingcheng Back Mountain with classmates, covering the ride, the trail, and the small scenes along the way.EssayChengDu19 min
- Wangjiang Pavilion, RememberedI toured Wangjiang Pavilion on June 12, but the write-up dragged; weeks later I scraped together what details I could recall and set them down for later.EssayChengDu16 min
- From Qingyang Palace to Baihuatan, Part 2: Inside the ParkFollowing Lu You's old route from Qingyang Palace to Baihuatan, through birdsong, lotus flowers, Sichuan opera, and a legend behind the park's name.EssayChengDu8 min
- From Qingyang Palace to Baihuatan, Part 1: A Chengdu Riverside Afternoon and Local LoreA walk from Qingyang Palace to Baihuatan, with a tabby cat, bird perches, sluice gates, Canglang Bridge, and old stories of Du Fu, Li Bai, and Chengdu.EssayChengDu15 min
- Huanhua Creek Notes: Sichuan Museum and Du Fu Thatched CottageA late Chengdu afternoon from Sichuan Museum to Huanhua Creek and Du Fu Thatched Cottage, tying a loose walk to Du Fu's brief peace in the city.EssayChengDu20 min
- Let Carapace Handle Nushell External CompletionsMove Nushell external completions to Carapace, use choices and user specs to fix missing brew services completions, and keep Fish bridging out of config.ShellNushellCarapace5 min
- Migrating From instant.page to the Speculation Rules APIMigrating from instant.page to the browser-native Speculation Rules API, with notes on prefetch, prerender, side effects, and Swup/PJAX conflicts.HexoPerformanceWebSwup8 min
- Two Days at Dujiangyan and Mount QingchengA northwest Chengdu trip through missed tickets, scenic buses, Anlan Bridge, Feishayan, Baopingkou, Guanxian Ancient City, and sleepless Mount Qingcheng.EssayChengDu16 min
spring/13
- Notes on Adding I18n to a Hexo BlogDesign notes on Hexo i18n — filename conventions for language detection, a permalink filter for path-prefix routing, per-language generators, hreflang, and a language switcher.Hexo5 min
- ColophonHow this site is made: writing workflow, design principles, typography and color, and the build-and-deploy stack.Blog5 min
- Way to Minimalism, Part 1: Meta BarA blog minimalism experiment starting from the article meta bar, tucking fonts, line height, post info, and comments into lighter UI for a quieter page.UIUX5 min
- Writing a UESTC Graduation Thesis in Typst: Feasibility Check and PitfallsI didn't want to fight Word again for my thesis. Typst looked like an elegant alternative. Here's how I verified the submission rules, used the template, set up VS Code, and struggled with PDF-to-DOCX conversion.AITypst11 min
- Troubleshooting EdgeOne Pages 404s on Chinese Paths and Migrating Around ThemA practical log of diagnosing EdgeOne Pages 404s on Chinese paths, migrating URLs, adding redirects, and preserving wiki links and comments.Blog6 min
- Adding Hot Reload to HexoA lightweight script that makes the Hexo dev server auto-refresh the browser whenever you save a post.BlogHexoJavaScriptWorkflow5 min
- Spring Day at the Chengdu Botanical GardenNotes from an afternoon at the Chengdu Botanical Garden, right after my mid-term defense on April 1st.EssayChengDu12 min
- Death Stranding 2 NotesPost-100% musings: Latin naming easter eggs, character writing, and music picksGames7 min
- Chengdu Natural History MuseumAn excellent natural history museum with rich dinosaur fossils and mammal specimens, thoughtful exhibit design and animal mounts — well worth a visit.EssayChengDu9 min
- Use Symlinks to Keep LLM Configuration Files in SyncCoding agents use different project memory files like AGENTS.md, CLAUDE.md, and GEMINI.md. Symlinks let them share one source of truth.OSAgent6 min
- Langya Terrace Travel NotesStanding alone and prominent above all other hills, with a circumference of over twenty li at its base, overlooking the great seaEssayQingDao11 min
- Use Gum in Nushell Scripts for Better UIUXAdding interactive TUI components to shell scripts with Gum, and caveats when using it in Nushell.ShellUIUXNushellTUI8 min
- Sea World & Panda BaseFebruary 28 at Qingdao Underwater World, then March 5 at Chengdu Research Base of Giant Panda Breeding.EssayChengDuQingDao3 min
winter/16
- Beneath the WheelReading notes on Hermann Hesse's Beneath the Wheel, and how Hans's story mirrors my own years of exam-driven schooling and burnout.EssayBook11 min
- Zhushan Xiugu Travel Notes: A Famous Mountain by the SeaWith my mother, from Zhushan Xiugu to Stone Gate TempleEssayQingDao10 min
- Karabiner Breakage on macOS 26.4 Beta 1 and a Temporary WorkaroundAfter macOS 26.4 beta tightened HID permissions, Karabiner-Elements keyboard remapping broke. hidutil plus LaunchAgent is a temporary workaround.macOS3 min
- Write Your Components With Custom Elements APIMarkdown plugins are overkill for simple interactive components. Custom elements give you interactivity without the development friction.HTMLFrontEnd7 min
- Type Less With Code SnippetsDevelopers often face repetitive coding patterns, ranging from standard if/for structures to Go's error handling or HTML boilerplates. This redundancy is inefficient and error-prone. Snippets offer the optimal solution. When you type a short prefix (e.g., if, for), your IDE suggests a completion item that can be expanded into a predefined code template.VSCodeWorkflowMarkdownNeovim3 min
- UI/UX TerminologyWhy is it called a Radio Button, a Breadcrumb, a Toast? These UI terms trace back to car radios, Grimm's fairy tales, and toasters — metaphors early GUI designers borrowed from the real world.WebUIUX17 min
- Consolidate Your Project Commands With JustConsolidate scattered project commands into a single justfile. Learn how Just simplifies multi-language development workflows with better reusability & documentation.TmuxWorkflowMakefileJust8 min
- Exploring Progressive Image Loading TechniquesA deep dive into LQIP, BlurHash, ThumbHash, and other progressive image loading strategies for the web.ImageWebUIUXLQIP5 min
- Job Control in NushellThe Job Control chapter of Effective Shell covers task control in Bash. This post shows how the same ideas work in Nushell.ShellWorkflowNushellAsynchronous5 min
- HTML Table Overflow IssuesA simple CSS technique to keep HTML tables within their containers by controlling table layout and text wrapping.CSSJavaScriptUIUX4 min
- Fix Clickable Hyperlinks in Tmux With GhosttyLearn how to fix clickable hyperlinks not working when using tmux in the Ghostty terminal emulator.TerminalTmuxGhostty4 min
- A Practical Guide to OpenCodeOpenCode is an open-source AI coding tool with free models like MiniMax 2.1, GLM 4.7, and Grok Code Fast 1. Here are the lessons from my own daily use.AgentSkillAI8 min
- Blog Changes in 2025A running review of 2025 blog changes, covering Markdown rendering, images, themes, fonts, responsive design, and performance work.EssayBlog3 min
- Web Log. 2026Just a running log of 2026.Essay4 min
- PostBuild With ESBuild & Minify-HTMLAdd a PostBuild step to your static site CI for image compression and CSS/JS minification. This post covers writing a PostBuild script with ESBuild & minify-html.PerformanceFrontEndCICD10 min
- Streamline Package Development With Bun LinkUse bun link to debug local libraries and blog themes without repeatedly publishing and reinstalling packages.Bun1 min
autumn/12
- Optimize Shiki's HTML Output With styleToClass TransformerUse Shiki's styleToClass transformer to move inline styles into reusable CSS classes and reduce highlighted HTML size.PerformanceCSSCatppuccinShiki4 min
- Inline Code Highlighting With Markdown-It & ShikiI built markdown-it-inline-code on Nov 20–21, 2025 to highlight inline code. This post covers a preview, usage, and the development story.BlogHexoShikiMarkdown5 min
- Multi-Theme Blog Design in Hexo: Theme Switching With CSS Variables and the :Where SelectorHow to manage multiple blog themes with CSS variables and the :where selector, including Shiki syntax highlighting theme switching and a FOUC fix.BlogHexoCSSWebRicingCatppuccinJavaScriptShikiTheme7 min
- Fix Markdown Footnote Jump Overlap With CSS Scroll-Margin-TopFix the common problem where fixed top navbars hide jump targets using scroll-margin-top ruleBlogCSSWebUIUX2 min
- Enable Autocompletion for Lua API With Stub FilesConfigure IDEs to recognize Sketchybar module types for Lua autocompletion in VS Code, Neovim, and JetBrains IDEs.VSCodeLuaSketchybarLSPNeovim2 min
- Configuring Music Player Daemon (MPD) and Clients on macOSThis article introduces Music Player Daemon (MPD) and its clients MPC and RMPC for a lightweight, customizable music playback experience on UNIX.MusicRicingCatppuccinDotfilesFOSSRustUNIX4 min
- Nushell - Cross-PlatformEncapsulating cross-platform functions and isolating OS-specific configs using Nushell.OSLinuxShellWindowsNushellmacOS4 min
- Hexo Site Performance Optimization NotesLast September I wrote up my Hexo blog performance work. Recently I tackled the remaining issues with another round of optimizations, recorded here as a follow-up.BlogHexoPerformanceImageHTMLCSSFontCDN7 min
- Tmux Floating Panes: Temporary Tasks Without Context SwitchingTmux Popup Display/Menu & Floax PluginTerminalProductivityRicingCatppuccinTmuxWorkflowTUI4 min
- VSCode Status Bar RicingCustomize the VS Code status bar with custom CSS, fonts, item ordering, Vim mode colors, and replacement problem icons.CSSVSCodeRicingCatppuccinVim4 min
- Blog & OSS CDN Traffic Splitting Between Mainland China and OverseasICP filing approved. A quick record of setting up split CDN routing for domestic and international visitors.BlogPerformanceCDNNetworkWebInternetHTTPS7 min
- NuShell FFMpeg UtilsBatch-compressing media files with Nushell to free up OneDrive space.TerminalShellPerformanceWorkflowNushellffmpegOnedrive10 min
summer/17
- Shell Inline Editing & Vim/Emacs KeybindingsA deep dive into inline editing in the terminal — configuring Vi and Emacs keybindings and using an external line editor to speed up your workflow.ShellWorkflowNushellVim3 min
- Shiki Code Highlighting TestHow Shiki renders inline code, code blocks, and transformer markers in my Hexo blog, for checking styles and layout edge cases.CSSShikiMarkdown4 min
- Set System Env-Vars in UNIXHow to set true system-wide environment variables on macOS with a simple Launch Agent and shell script, so GUI apps and every shell see them.OSTerminalLinuxShellNushellmacOS6 min
- Understanding HTTPS: Encryption, Certificates, and TLSHow HTTPS secures web traffic, covering symmetric and asymmetric encryption, digital signatures, CA certificates and chain validation, and the TLS handshake.NetworkWebInternetHTTPSTCPSecurity9 min
- Understanding Responsive Images: From Pixels to DPR🤖 From physical pixels and CSS pixels to PPI and device pixel ratio, then on to responsive images with rendered vs. intrinsic size and srcset descriptors.ImageHTMLWebBrowserResponsivesrcsetLCP5 min
- I Switched From Fzf to Television: Declarative Channels for Cross-Shell Fuzzy FindingA cross-shell fuzzy finder that replaces manual file navigation with intelligent shortcuts. Here's how it works and why it might replace your current setup.TerminalShellProductivityWorkflowTUI8 min
- IO MultiplexingA brief walkthrough of how select, poll, and epoll are implemented.OSLinuxNetworkIOFileSocket6 min
- Jinji Lake, SuzhouNotes from an evening stroll at Jinji Lake on July 1stEssaySuZhou2 min
- Lingering Garden, SuzhouAfter picking up lychees, an afternoon photo walk through the Lingering GardenEssaySuZhou3 min
- Making Web Fast —— LCP Optimization🤖 Optimize LCP with preload, fetchpriority, responsive images and srcset. Covers Sharp image processing, CI/CD automation, and preload hints for better Core Web Vitals.BlogHexoPerformanceWebBrowserIcarusResponsivesrcsetLCP9 min
- VSCode VIM Part I - EasyMotionLearn how to enhance VSCode text navigation by setting up EasyMotion with the VSCode Vim extension and LazyVim-like keybindings.VSCodeCatppuccinVim3 min
- Clean Disk Space in UbuntuFix apt install errors caused by no free space in /var/cache/apt/archives by locating the full partition and using a temporary cache path.OSLinuxUbuntu3 min
- Network IO ModelsA walkthrough of the five I/O models on Linux, with C and Java implementations.OSLinuxNetworkCfdIOFileSocket13 min
- Understanding Python's GIL: The Problems It Solves and the Limits It ImposesThe GIL is not just why Python threads can't use multiple cores. It is CPython's engineering trade-off among refcounting, the object model, and C extensions.ThreadConcurrencyPythonGILAtomicity9 min
- GoWallConvert wallpapers to specific color schemes such as Catppuccin or Nord with GoWall, and wrap the common command in a small script.CLIRicingCatppuccinWallpaper3 min
- Decorator @Cached_propertyStudy Python's cached_property decorator, how it stores computed values on instances, and where it fits in Django-style code.PythonDjangoDecorator3 min
- Fixing the 403 Forbidden Error From Keycloak's UserInfo Endpoint🤖 Keycloak's UserInfo endpoint returns 403 Forbidden when the Access Token lacks the `openid` scope. Notes on debugging the error through mozilla_django_oidc logs and fixing it by requesting the token with the right scope.JWTAuthorizationAuthentication4 min
spring/13
- Linux File System Architecture IntroductionExplore Linux file system architecture through VFS, ext4/XFS, disk structures, kernel tables, inodes, and file descriptors.Linuxfd4 min
- Set Git ProxySet up a proxy for Git operations, both for HTTP/HTTPS and SSH connections.OSGitSSH2 min
- Learn Git Data Structure DesignA look at Git's data structures — objects, references, and branches. These concepts are the foundation for understanding how Git actually works.LinuxGitSVC8 min
- Programming Languages Cheat SheetA quick reference for data structures, basic syntax, and essential APIs in Lua, JavaScript, Go, Python, and Java.PythonJavaJavaScriptLuaGo27 min
- Night Tour of the Master of the Nets Garden, SuzhouMay 18thEssaySuZhou2 min
- Spotify Ricing(Spicetify)🤖 Transform your Spotify client with custom themes and extensions using Spicetify. This guide walks you through installing Spicetify CLI and Marketplace on Windows, Linux, and MacOS, helping you personalize your music streaming experience with beautiful themes and powerful add-ons. Elevate your desktop aesthetics with minimal effort!CSSRicingCatppuccinSpotifySpicetify12 min
- Edge for Android Workspace Sync & Ad BlockingCompare Edge, Chrome, and Vivaldi on Android, then configure Edge ad blocking, workspace sync, and useful flags for mobile browsing.Browser3 min
- Humble Administrator's GardenThus I observe the measure of contentment, forsaking ambitions like drifting clouds, building a house and planting trees, free and self-possessed. The ponds suffice for fishing, the harvested grain for farming. Watering the garden and selling vegetables provides for daily meals; tending sheep and brewing cheese awaits the seasons' needs. Filial in devotion, brotherly in bonds — this too is the governance of the unskilled.EssaySuZhou3 min
- Tiger HillVisiting Tiger Hill on May 2ndEssaySuZhou5 min
- Use Docker and SSH to Work Around Old Ubuntu Dev Environment Compatibility IssuesUbuntu 18.04's glibc is too old for newer VS Code Remote SSH Server and some Node.js binaries. Run the dev environment in Docker and SSH into it.LinuxVSCodeDockerSSH8 min
- Python Data Structures Cheat SheetA quick reference for Python data structures and their common operations, from lists and dicts to queues and stacks.PythonAlgorithm8 min
- Installing FastFetch on Ubuntu 18Compile and install FastFetch on Ubuntu 18.04 manually, including the steps needed to resolve an outdated CMake version.TerminalLinuxUbuntu3 min
- How to Install VSCode Extensions Offline: Downloading and Installing VSIX FilesA practical guide to installing VS Code extensions offline: downloading VSIX files through the official API, installing language packs, handling SSH remote development, and choosing platform-specific packages.VSCodeVSIX4 min
winter/09
- Use Medium-Zoom in Hexo BlogIntegrate medium-zoom into a Hexo blog to replace image-link jumps with an in-page zoom interaction, including Icarus and PJAX notes.BlogHexoWebIcarusPjax3 min
- Nushell Command Completion GuideConfigure Nushell command completion with Carapace and Fish for tools like Git and Docker, and choose a completer per command to speed up terminal work.ShellWorkflowNushellCarapace4 min
- Xiaohongshu Spring Festival Temple Fair - Yiyi Ruyi New Year's EveXiaohongshu temple fair; collect Spring Festival Shu stickers and redeem a Spring Festival Little Red BoxEssay1 min
- Dotfile Manager - DotbotA tool that bootstraps your dotfiles ⚡️CLIProductivityWindowsDotfiles2 min
- VS Code DevContainerUse VS Code Dev Containers to develop inside Docker, reusing an existing Dockerfile while keeping dependencies isolated and reproducible.LinuxVSCodeDocker3 min
- UESTC to MomentaDecember 21, 2024: a travel day from Chengdu to Shanghai and Suzhou before reporting to Momenta.EssaySuZhou5 min
- VSCode RicingCustomize VS Code with Custom CSS and Animations, including themes, fonts, status bar styling, borders, and command palette layout.CSSFontVSCodeRicingCatppuccin2 min
- Internet ChecksumNotes from designing an Internet checksum lab, covering parallel summation and incremental checksum updates.LinuxNetworkC6 min
- Decorators Pattern in PythonUnderstand Python decorators as a design pattern, including first-class functions, simple wrappers, chained decorators, and common uses.PythonDecorator3 min
autumn/12
- Music Player for Windows and AndroidNotes on local music players, MP3 tag editing, lyric matching, and syncing a music library across Windows and Android.AndroidMusicWindowsCyberPunkEntertainment4 min
- Theory Notes on Generic ProgrammingIntroduce Variance in Generic Types, Type Erasure, and Related ConceptsJavaGenerics7 min
- Windows 11 Start Menu Widgets (Phone Link)Enable Windows 11 Start menu widgets for Phone Link, including ViveTool setup, requirements, and a proxy-related connection fix.MicrosoftWindows2 min
- Python Dev Environment and Toolchain: VSCode, UV, RuffBuild a modern Python workflow from interpreter, virtual env, and dependency management to editor setup and Ruff, with the trade-offs behind each step.PythonVSCodeRuffUV10 min
- The Proxy Pattern in JavaThe proxy pattern lets one object stand in for another, controlling access to it and adding features like logging, access control, lazy loading, or monitoring without touching the target's core logic.JavaReflectionSpring12 min
- Personalization for Terminal, Shell & PromptGood tools make good work. My personal setup for terminal, shell, and prompt, plus a list of handy CLI and TUI tools, for reference.TerminalProductivityWindowsWorkflowNushell5 min
- Web Authentication & AuthorizationFrom cookies to JWT: how the web works around HTTP's statelessness, and the trade-offs each step inherits.WebAuthorizationAuthentication14 min
- Java Priority QueueAn introduction to Java's PriorityQueue, its API, custom comparators, and the binary min-heap that powers it.JavaAlgorithmQueue7 min
- Personalization for Mobile PhonesNotes on phone home-screen personalization, including color palettes, icon packs, widgets, fonts, and Samsung Theme Park.OSAndroidOneUI2 min
- Blog Performance Optimization NotesOptimizations adopted while maintaining this site, from image compression to lazy loading and CDN.BlogHexoPerformanceWeb4 min
- Configuring a Clash Proxy for OneDrive BusinessFix OneDrive Business login stalls and download throttling under Clash by configuring bypass domains and Mixin routing rules.NetworkMicrosoftOnedriveClashProxy3 min
- Black Myth: WukongNine nines return to truth; the trials are complete, and the work is done.Games1 min
summer/13
- Tangdao Bay & May Fourth SquareA travel note from Tangdao Bay and May Fourth Square in Qingdao, with stops at Yumingzui Village, the Olympic Sailing Center, and Zhanqiao.EssayQingDao4 min
- A Visit to Qingdao's New Zhanqiao and Deep Blue LightJuly 29, 2024, Qingdao's new Zhanqiao and Deep Blue Light.EssayQingDao3 min
- Add Diana/Ava Live2D Models to Hexo IcarusAdd Live2D models to a Hexo Icarus blog, either by loading CDN scripts directly or deploying local model assets with optional webp optimization.BlogHexoIcarusLive2d2 min
- TomcatApache Tomcat is an open-source, lightweight web application server that implements the Java Servlet and JavaServer Pages (JSP) specs and part of Java EE.JavaApacheWebTomcat6 min
- Http ProtocolHTTP is an application-layer protocol for transferring hypermedia documents such as HTML. This post covers request and response messages.NetworkWebInternetBrowserHTTPTCP3 min
- Apache MyBatisMyBatis notes from the Heima Programmer Java Web course, covering core concepts and a Spring Boot CRUD demo.JavaApacheMyBatis7 min
- Apache MavenMaven, the project management tool for Java. Covers basic usage including dependency management, the build lifecycle, and multi-module design.JavaMavenApache13 min
- Linux Network NamespaceHands-on with Linux network namespaces, from ip link, ARP, and route basics to connecting namespaces with veth pairs and a Linux bridge.Linux14 min
- Tang Duo Ling: Reeds Fill the River IsletI wanted to buy cassia flowers and bring wine aboard, but it is no longer like youth.Literature2 min
- Handscroll of the Humble AbodeA sound sleep, quiet and dreamlessLiterature1 min
- Shell ProgrammingShell startup and features, command forms, I/O redirection and pipes, shell variables and quoting, writing and running shell scripts, plus a brief intro to sed and awk.LinuxShell5 min
- Death Stranding GalleryKeep on, keeping on👍👍👍👍👍Games1 min
- Unix/Linux OS IntroductionAn introduction to the Linux operating system, file operations, and permission managementOSLinux7 min
spring/22
- Scoop HandbookScoop is a command-line installer for Windows. This note covers directory structure, installation, common commands, updates, cleanup, and buckets.ProductivityMicrosoftWindows4 min
- Move WSL to Another DriveMove an installed WSL distribution to another drive by exporting, unregistering, importing, and restoring the default user.OSLinuxWSL2 min
- File SystemFile system basics, directory management with FCBs and inodes, file sharing via hard and symbolic links, physical file structures, and free space management.OS33 min
- I/O SystemI/O controllers, channels, and control modes (polling, interrupt, DMA); device data structures; disk scheduling (FCFS, SSTF, SCAN, CSCAN); buffering.OS29 min
- Understanding Git Reset and RevertLearn how git reset and git revert undo commits, move HEAD, affect the staging area and working tree, and preserve or rewrite history.Git5 min
- ChⅥ Database Application ProgrammingNotes on database application programming; ODBC/JDBC connectivity, the Java Web persistence layer, PL/pgSQL functions and stored procedures, triggers, and cursors.DataBase13 min
- Git Rebase, Squash, and HistoryMerge, edit, and clean up commit history with git rebase -i, plus a look at the experimental git history command added in Git 2.54.Git6 min
- Ch4 - Database Design and ImplementationDatabase design process and strategies, E-R model elements, entity relationship types, weak entities, CDM/LDM/PDM design, functional dependencies, normal forms, denormalization, and SQL implementation with Power Designer.DataBase11 min
- The Dead LockCauses and necessary conditions of deadlock, plus prevention, avoidance, detection, and recovery, including the Banker's Algorithm.OS16 min
- The Processor SchedulingLevels of processor scheduling, scheduling queue models and criteria, scheduling algorithms, and real-time scheduling.OSProcess8 min
- Process Scheduling in OSNotes on process scheduling triggers, evaluation metrics, and common algorithms such as FCFS, SJF, RR, MLFQ, EDF, and LLF.OSProcessThreadConcurrencyParallelism4 min
- Ch3 - Database Operations With SQLSQL statement types and data types; DDL for databases, tables, and indexes; DML for insert, update, delete; DQL with sorting, grouping, subqueries, joins; and views.DataBase6 min
- Reflection in JavaHow Java reflection works, how to obtain Class objects, create instances, invoke methods, and read annotations at runtime, plus its performance trade-offs.JavaReflection7 min
- ThreadThreads as the basic unit of scheduling, thread control, synchronization with mutexes, condition variables, and semaphores, and ULT vs KLT.OSThreadConcurrency8 min
- Inter Process CommunicationTypes of IPC: shared memory, pipes, message-passing systems, mailboxes, and client-server mechanisms like sockets and RPC.OSProcess12 min
- Concurrency & Parallelism Etc.Notes on concurrency, parallelism, CPU cores, hardware threads, processes, and threads in operating systems.OSProcessThreadConcurrencyParallelism2 min
- Linux CommandsNotes on common Linux commands, shortcuts, and plugins, plus recommended terminals and shells.Linux7 min
- ProcessSyncProcess synchronization in operating systems, covering critical sections, semaphores, hardware synchronization, and classic synchronization problems.OSProcess22 min
- Ch2 - the Relational Model of DatabasesRelational model, relation tables, primary keys, foreign keys, compound keys, entity integrity, and referential integrity.DataBase5 min
- Git for AndroidUse MGit as a Git client on Android, including installation, cloning, local repositories, URL formats, and SSH key setup.GitAndroidGitHub2 min
- Process Description and ControlOS process management: precedence graphs and program execution, process description, and process control.OS11 min
- Process & ThreadAn introduction to processes and threadsOSProcessThreadLinux12 min
winter/16
- Introduction to Operating SystemsAn overview of operating systems, their definition, goals and roles, history, basic characteristics, main functions, and structural design.OSCLITerminal9 min
- Glossary for DatabaseA database glossary covering structured, unstructured, and semi-structured data, plus relational and NoSQL data models.DataBaseGlossary4 min
- Java StreamAn introduction to the Stream API introduced in Java 8Java10 min
- Functional InterfaceSingle Abstract Method Interfaces are Java functional interfaces. This post explains how to create and use them with lambdas and references.Java3 min
- Two Poems From the Book of Songs, Airs of Bei"The New Terrace" mocks Duke Xuan of Wei for seizing his son's bride; "Two Sons Board the Boat" mourns brothers who died for each other.Literature7 min
- Evaluation Strategies in Programming LanguagesJava is neither pure pass-by-value nor pass-by-reference. The answer hides in a term most discussions miss: call-by-sharing.JavaProgramming7 min
- Java HashtableA hash table looks up data in O(1) time. This post walks through hash tables in the Java ecosystem: the data structure, the put process, and thread safety.JavaAlgorithmCollection8 min
- Music Easter Eggs in Cyberpunk 2077An incomplete collection of music references hidden in Cyberpunk 2077 mission names, covering both Chinese and English song references.GamesMusicCyberPunk4 min
- Database Basics — Functions & ConstraintsDatabase study notes. This post covers SQL functions and constraints.DataBaseSQL7 min
- Using tasks.jsonA brief note on using VS Code tasks.json to compile, run, package, and automate common project tasks.ProductivityVSCode3 min
- Six Poems Written Passing Songyuan While Cooking Breakfast at Qigong InnDo not say descending a ridge is easy; it tricks travelers into misplaced joy.Literature4 min
- Database Basics_Core Concepts & SQL SyntaxDatabase study notes covering core database concepts and basic SQL syntax, including DDL, DML, DQL, and DCL statements.DataBaseSQL14 min
- VS Code ExtensionsA personal list of VS Code extensions for editing, Markdown, formatting, Git, web development, utilities, and drawing.VSCode2 min
- Letter From Olgierd Von EverecScenes From a Marriage-IrisGamesMusic2 min
- Setting Up a C/C++ Debug Environment in VSCodeHow to set up a C/C++ debug environment in VSCode, with a walkthrough of `task.json` and `launch.json` and sample configurations.LinuxCWindowsVSCodeCpp6 min
- Configuring a GitHub Image Bed With PicGo (Typora & vs Code)Configure PicGo with a GitHub-backed image bed, then use it from Typora and VS Code with custom URLs and upload formats.ImageOSS2 min
autumn/04
- Java SE GenericsStudy notes on Java Generics, covering wildcards, PECS, type inference, and how to design generic classes, interfaces, and methods.JavaGenerics12 min
- Lab: Ratex PreviewThis page verifies Ratex rendering for inline formulas, displayed equations, matrices, cases, and integrals.Lab1 min
- Lab: Flavoured Markdown & HTML Element PreviewTest Flavoured Markdown Content & HTML Elements with styleBlogCSSMarkdown1 min
- Lab: Custom Components PreviewPreview the custom Markdown components used by this blog theme, with usage notes and source examples.BlogCSSMarkdown10 min
summer/02
- Lab: Markdown PreviewTest various Markdown features including color schemes, math, task lists, callouts, and code blocks.BlogCSSMarkdown2 min
- ChangeLogTracking the changes of this blog themeBlog