Archive
161 writings
Two columns get cramped on a narrow screen — one column reads better
Tags
TzxpWZrd+hEWoyDundDh3SeaoG6s8JkhkEZuTJOoaea8gJA1hD5h3eH6OGZDMW++MT1dX1OiJY3AtppUluh34KoHu/FngAcEcBi6C6ZU4ERE4Hb8pr/kLiSYu4lXXkCYbumCTi2ZHs2IY69Ui73EADFAcHss++K424bVL5KRq9Tn2VGZeTAVUmU1xo7XftYzLtpdFGTbJla0Ol3LenzbQGJ6LssjnsekUlgdg6AeieP3mfv9comInXmr4CjSaJbjMGjnU7EuBPxUbrEdk+sipx4m5l8RsxdkF3Nptx1dUJLUk4EWqF+u4G2dZfyiH6ykWjZAc468puWrqRUpPrc0lGvv/ISzQM5zAf9u1SFhCSkJNtg6SzsT885Q0FlRYAKIKChqayz572AXKr7mcRBC4DUivNny3cdhZ4/DkCI9Dzy1YCA/yTmGlAwOQVYBXoNm90rkpljZuvuSC4uNgaY3bswBKU1LHwyaGTAxCTzObVvbwD65iNspqMzdX9TaPrgzZDa85Gedbo+P8bC7I87lE0eycSmXdHw2LRuL9/AqMT5Ilii7pCeYTmKrq9bnDbU8xnXbwtfo9DjC5xPdhxuFjsr7WeA5PQF9OzDgI/CDbcqH4jF7/3Ypy9orIEPxRjpZQ6XrWPFINQjt8Ik1GfHqmNK+Hl9C7/JYN0d9ahOsz5947mPIVhXIOe812IjMF/2PRXjGl+rMSteaV36dedcPMh7qYlHeDVQb8HayaQcd7+PobQR3baUar8wdTS5lsa0mVBu5Rm2dcZucWldZdvUfnFPrY/OA1A+1hGhojwtRVCyL0DO1lrUerfL9zElQgGohNytWc70PlhZIGeDnq08Dn9o3M6mWY70H4ZtMmMgee1AfXnjRAJvJiE3wSFvfw6O/61i8XrJ1oV8Hyo1RDj7rScvkaIqcMjOcDY3P4eLfOgRrt9poE+thpAWbZZr5kLzTD+dNQ9pFDMXkRkwKCQ94dvx3x/obLzWaGfaOSJluBhNUn//H7JYmaWw7WfIy47VB+MleWtv4rCdqhNebBr/MNGEDqZ8iRAPwF+Px93jh2susyZhXQMK9FV6/3QIaj5+L01sKXcuMdtNe5/YYRkYpZHVfk6a/1GXIEBaYedsAeNVRVARutQXyGdq7J3MkQ+kRI1OJjJpeaZf6Qp57O4zFMO7YXR1+IQdBwfT0fK7oaYieN0Rig1xQBkzdF2Pt5duyNC7wy65/McWEfuVQU/VdTXMVkevBa22X9EXd6o5L
- 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.
- 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.
- 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.
- 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.
- Notes From Qingcheng Back MountainA hike through Qingcheng Back Mountain with classmates, covering the ride, the trail, and the small scenes along the way.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- ColophonHow this site is made: writing workflow, design principles, typography and color, and the build-and-deploy stack.
- 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.
- 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.
- 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.
- Adding Hot Reload to HexoA lightweight script that makes the Hexo dev server auto-refresh the browser whenever you save a post.
- Spring Day at the Chengdu Botanical GardenNotes from an afternoon at the Chengdu Botanical Garden, right after my mid-term defense on April 1st.
- Death Stranding 2 NotesPost-100% musings: Latin naming easter eggs, character writing, and music picks
- 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.
- 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.
- Langya Terrace Travel NotesStanding alone and prominent above all other hills, with a circumference of over twenty li at its base, overlooking the great sea
- Use Gum in Nushell Scripts for Better UIUXAdding interactive TUI components to shell scripts with Gum, and caveats when using it in Nushell.
- Sea World & Panda BaseFebruary 28 at Qingdao Underwater World, then March 5 at Chengdu Research Base of Giant Panda Breeding.
- 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.
- Zhushan Xiugu Travel Notes: A Famous Mountain by the SeaWith my mother, from Zhushan Xiugu to Stone Gate Temple
- 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.
- Write Your Components With Custom Elements APIMarkdown plugins are overkill for simple interactive components. Custom elements give you interactivity without the development friction.
- 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.
- 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.
- 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.
- Exploring Progressive Image Loading TechniquesA deep dive into LQIP, BlurHash, ThumbHash, and other progressive image loading strategies for the web.
- 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.
- HTML Table Overflow IssuesA simple CSS technique to keep HTML tables within their containers by controlling table layout and text wrapping.
- Fix Clickable Hyperlinks in Tmux With GhosttyLearn how to fix clickable hyperlinks not working when using tmux in the Ghostty terminal emulator.
- 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.
- Blog Changes in 2025A running review of 2025 blog changes, covering Markdown rendering, images, themes, fonts, responsive design, and performance work.
- Web Log. 2026Just a running log of 2026.
- 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.
- Streamline Package Development With Bun LinkUse bun link to debug local libraries and blog themes without repeatedly publishing and reinstalling packages.
- 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.
- 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.
- 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.
- Fix Markdown Footnote Jump Overlap With CSS Scroll-Margin-TopFix the common problem where fixed top navbars hide jump targets using scroll-margin-top rule
- Enable Autocompletion for Lua API With Stub FilesConfigure IDEs to recognize Sketchybar module types for Lua autocompletion in VS Code, Neovim, and JetBrains IDEs.
- 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.
- Nushell - Cross-PlatformEncapsulating cross-platform functions and isolating OS-specific configs using Nushell.
- 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.
- Tmux Floating Panes: Temporary Tasks Without Context SwitchingTmux Popup Display/Menu & Floax Plugin
- VSCode Status Bar RicingCustomize the VS Code status bar with custom CSS, fonts, item ordering, Vim mode colors, and replacement problem icons.
- 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.
- NuShell FFMpeg UtilsBatch-compressing media files with Nushell to free up OneDrive space.
- 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.
- Shiki Code Highlighting TestHow Shiki renders inline code, code blocks, and transformer markers in my Hexo blog, for checking styles and layout edge cases.
- 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.
- 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.
- 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.
- 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.
- IO MultiplexingA brief walkthrough of how select, poll, and epoll are implemented.
- Jinji Lake, SuzhouNotes from an evening stroll at Jinji Lake on July 1st
- Lingering Garden, SuzhouAfter picking up lychees, an afternoon photo walk through the Lingering Garden
- 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.
- VSCode VIM Part I - EasyMotionLearn how to enhance VSCode text navigation by setting up EasyMotion with the VSCode Vim extension and LazyVim-like keybindings.
- 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.
- Network IO ModelsA walkthrough of the five I/O models on Linux, with C and Java implementations.
- 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.
- GoWallConvert wallpapers to specific color schemes such as Catppuccin or Nord with GoWall, and wrap the common command in a small script.
- Decorator @Cached_propertyStudy Python's cached_property decorator, how it stores computed values on instances, and where it fits in Django-style code.
- 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.
- Linux File System Architecture IntroductionExplore Linux file system architecture through VFS, ext4/XFS, disk structures, kernel tables, inodes, and file descriptors.
- Set Git ProxySet up a proxy for Git operations, both for HTTP/HTTPS and SSH connections.
- 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.
- Programming Languages Cheat SheetA quick reference for data structures, basic syntax, and essential APIs in Lua, JavaScript, Go, Python, and Java.
- Night Tour of the Master of the Nets Garden, SuzhouMay 18th
- 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!
- 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.
- 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.
- Tiger HillVisiting Tiger Hill on May 2nd
- 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.
- Python Data Structures Cheat SheetA quick reference for Python data structures and their common operations, from lists and dicts to queues and stacks.
- Installing FastFetch on Ubuntu 18Compile and install FastFetch on Ubuntu 18.04 manually, including the steps needed to resolve an outdated CMake version.
- 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.
- 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.
- 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.
- 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 Box
- Dotfile Manager - DotbotA tool that bootstraps your dotfiles ⚡️
- VS Code DevContainerUse VS Code Dev Containers to develop inside Docker, reusing an existing Dockerfile while keeping dependencies isolated and reproducible.
- UESTC to MomentaDecember 21, 2024: a travel day from Chengdu to Shanghai and Suzhou before reporting to Momenta.
- VSCode RicingCustomize VS Code with Custom CSS and Animations, including themes, fonts, status bar styling, borders, and command palette layout.
- Internet ChecksumNotes from designing an Internet checksum lab, covering parallel summation and incremental checksum updates.
- Decorators Pattern in PythonUnderstand Python decorators as a design pattern, including first-class functions, simple wrappers, chained decorators, and common uses.
- Music Player for Windows and AndroidNotes on local music players, MP3 tag editing, lyric matching, and syncing a music library across Windows and Android.
- Theory Notes on Generic ProgrammingIntroduce Variance in Generic Types, Type Erasure, and Related Concepts
- 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.
- 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.
- 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.
- 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.
- Web Authentication & AuthorizationFrom cookies to JWT: how the web works around HTTP's statelessness, and the trade-offs each step inherits.
- Java Priority QueueAn introduction to Java's PriorityQueue, its API, custom comparators, and the binary min-heap that powers it.
- Personalization for Mobile PhonesNotes on phone home-screen personalization, including color palettes, icon packs, widgets, fonts, and Samsung Theme Park.
- Blog Performance Optimization NotesOptimizations adopted while maintaining this site, from image compression to lazy loading and CDN.
- Configuring a Clash Proxy for OneDrive BusinessFix OneDrive Business login stalls and download throttling under Clash by configuring bypass domains and Mixin routing rules.
- Black Myth: WukongNine nines return to truth; the trials are complete, and the work is done.
- 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.
- A Visit to Qingdao's New Zhanqiao and Deep Blue LightJuly 29, 2024, Qingdao's new Zhanqiao and Deep Blue Light.
- 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.
- 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.
- Http ProtocolHTTP is an application-layer protocol for transferring hypermedia documents such as HTML. This post covers request and response messages.
- Apache MyBatisMyBatis notes from the Heima Programmer Java Web course, covering core concepts and a Spring Boot CRUD demo.
- Apache MavenMaven, the project management tool for Java. Covers basic usage including dependency management, the build lifecycle, and multi-module design.
- 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.
- Tang Duo Ling: Reeds Fill the River IsletI wanted to buy cassia flowers and bring wine aboard, but it is no longer like youth.
- Handscroll of the Humble AbodeA sound sleep, quiet and dreamless
- 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.
- Death Stranding GalleryKeep on, keeping on👍👍👍👍👍
- Unix/Linux OS IntroductionAn introduction to the Linux operating system, file operations, and permission management
- Scoop HandbookScoop is a command-line installer for Windows. This note covers directory structure, installation, common commands, updates, cleanup, and buckets.
- Move WSL to Another DriveMove an installed WSL distribution to another drive by exporting, unregistering, importing, and restoring the default user.
- File SystemFile system basics, directory management with FCBs and inodes, file sharing via hard and symbolic links, physical file structures, and free space management.
- I/O SystemI/O controllers, channels, and control modes (polling, interrupt, DMA); device data structures; disk scheduling (FCFS, SSTF, SCAN, CSCAN); buffering.
- 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.
- 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.
- 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.
- 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.
- The Dead LockCauses and necessary conditions of deadlock, plus prevention, avoidance, detection, and recovery, including the Banker's Algorithm.
- The Processor SchedulingLevels of processor scheduling, scheduling queue models and criteria, scheduling algorithms, and real-time scheduling.
- Process Scheduling in OSNotes on process scheduling triggers, evaluation metrics, and common algorithms such as FCFS, SJF, RR, MLFQ, EDF, and LLF.
- 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.
- 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.
- ThreadThreads as the basic unit of scheduling, thread control, synchronization with mutexes, condition variables, and semaphores, and ULT vs KLT.
- Inter Process CommunicationTypes of IPC: shared memory, pipes, message-passing systems, mailboxes, and client-server mechanisms like sockets and RPC.
- Concurrency & Parallelism Etc.Notes on concurrency, parallelism, CPU cores, hardware threads, processes, and threads in operating systems.
- Linux CommandsNotes on common Linux commands, shortcuts, and plugins, plus recommended terminals and shells.
- ProcessSyncProcess synchronization in operating systems, covering critical sections, semaphores, hardware synchronization, and classic synchronization problems.
- Ch2 - the Relational Model of DatabasesRelational model, relation tables, primary keys, foreign keys, compound keys, entity integrity, and referential integrity.
- Git for AndroidUse MGit as a Git client on Android, including installation, cloning, local repositories, URL formats, and SSH key setup.
- Process Description and ControlOS process management: precedence graphs and program execution, process description, and process control.
- Process & ThreadAn introduction to processes and threads
- Introduction to Operating SystemsAn overview of operating systems, their definition, goals and roles, history, basic characteristics, main functions, and structural design.
- Glossary for DatabaseA database glossary covering structured, unstructured, and semi-structured data, plus relational and NoSQL data models.
- Java StreamAn introduction to the Stream API introduced in Java 8
- Functional InterfaceSingle Abstract Method Interfaces are Java functional interfaces. This post explains how to create and use them with lambdas and references.
- 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.
- 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.
- 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.
- Music Easter Eggs in Cyberpunk 2077An incomplete collection of music references hidden in Cyberpunk 2077 mission names, covering both Chinese and English song references.
- Database Basics — Functions & ConstraintsDatabase study notes. This post covers SQL functions and constraints.
- Using tasks.jsonA brief note on using VS Code tasks.json to compile, run, package, and automate common project tasks.
- Six Poems Written Passing Songyuan While Cooking Breakfast at Qigong InnDo not say descending a ridge is easy; it tricks travelers into misplaced joy.
- Database Basics_Core Concepts & SQL SyntaxDatabase study notes covering core database concepts and basic SQL syntax, including DDL, DML, DQL, and DCL statements.
- VS Code ExtensionsA personal list of VS Code extensions for editing, Markdown, formatting, Git, web development, utilities, and drawing.
- Letter From Olgierd Von EverecScenes From a Marriage-Iris
- 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.
- 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.
- Java SE GenericsStudy notes on Java Generics, covering wildcards, PECS, type inference, and how to design generic classes, interfaces, and methods.
- Lab: Ratex PreviewThis page verifies Ratex rendering for inline formulas, displayed equations, matrices, cases, and integrals.
- Lab: Flavoured Markdown & HTML Element PreviewTest Flavoured Markdown Content & HTML Elements with style
- Lab: Custom Components PreviewPreview the custom Markdown components used by this blog theme, with usage notes and source examples.
- Lab: Markdown PreviewTest various Markdown features including color schemes, math, task lists, callouts, and code blocks.
- ChangeLogTracking the changes of this blog theme