Blog

Frontend Performance Optimization Opportunities for the 12306 Homepage

While the core complexity of 12306 lies in backend ticket searching and booking, the frontend performance can still be …

· 2 min

window.opener

A practical intro to window.opener: what it is, when it exists, how noopener affects process isolation, and trade-offs.

· 2 min
ChromeJavaScript

Maximum call stack size exceeded in JS

This post explains the 'Maximum call stack size exceeded' error in JS, including stack basics, limits, and debugging …

· 2 min
JavaScriptChrome

A Visit to the 306 Hospital

I recently experienced facial pain and had to visit the hospital. The process turned out to be quite an ordeal, so I'm …

· 3 min

Percentage margin-top

This post explains how percentage values for margin-top work, including implementation details and references.

· 2 min
CSS

Mind Mapping Tool Selection

This article introduces mind mapping tool selection, including usage scenarios and implementation details, to improve …

· 2 min
Software RecommendationsHardware Equipment

Get Mac System Info Quickly with Alfred

Build an Alfred workflow to quickly retrieve macOS version, memory, and other system info, with AppleScript and Shell.

· 1 min
Mac效率工具

How to Use Surge to Switch Proxy Modes Based on Wi-Fi (Step-by-Step Guide)

Shows how to trigger Surge scripts when Wi-Fi changes so proxy mode flips automatically between DIRECT and RULE.

· 1 min
Network Tools

Choosing Between HashRouter and BrowserRouter on the Web

A comparison of HashRouter and BrowserRouter in SPA apps, including URL forms, server configuration, anchor behavior, …

· 1 min
WebShell

Managing Compatibility with Browserslist

This article introduces managing compatibility with Browserslist, including its advantages, implementation details, and …

· 3 min

Contributing to GitHub Projects

A practical workflow for contributing to open-source repositories: fork, clone, submit PRs, and keep your fork in sync.

· 2 min
Git

Improve Frontend Code Quality with Tools — SonarQube

Using SonarQube alongside ESLint to improve frontend code quality: differences, setup, and CI integration.

· 1 min

Apply for JetBrains License Using Open-Source Projects

Guide to obtaining a free JetBrains License for open source projects, covering eligibility, application process, and …

· 3 min
JetBrainsGitHubFree LicenseLicense

JavaScript Array Undefined Items

This article discusses undefined items in JavaScript arrays, explaining the differences between explicitly undefined …

· 1 min
JavaScript

Inline JavaScript Event Binding

How to bind events with inline JavaScript, how it differs from React’s model, and practical tips for native usage.

· 1 min
JavaScript

MySQL Left Join Query Record Count

Clarifying a common misunderstanding about MySQL LEFT JOIN: why the result count isn't always the same as the left …

· 2 min
Database

Instant telegram notification if GitHub is Stared

Receive instant Telegram notifications when your GitHub project gets starred. Learn how to set up GitHub Actions for …

· 2 min
GitHubGitHub ActionsTelegramTelegram Bot

Share Surge Proxy Across the LAN

Two ways to let devices like smart TVs or Switch use your Surge proxy—manual Wi-Fi proxy and macOS DHCP gateway.

· 2 min
Network Tools

Nintendo Switch Game Purchase Strategy

This post summarizes my Nintendo Switch game purchase strategy and tips for saving money across regions.

· 2 min

Optimize Table Performance in Frontend

Using virtualized tables for large datasets (hundreds of rows), with notes on DOM complexity and profiling.

· 2 min
前端开发

2020 Year-End Review

Reflecting on 2021: Systematic fitness habits, milestones in open-source development, professional CI/CD improvements, …

· 3 min
Year Review

Difference Between yield and yield*

What yield and yield* do in generators, how they differ, and when to use each, with examples.

· 2 min
JavaScriptReact

Extend AxiosRequestConfig in TypeScript

Use declaration merging to add custom properties (e.g., loading flags) to AxiosRequestConfig without sacrificing type …

· 1 min
TypeScript

Frontend Storage Options

Browser storage choices (cookie, sessionStorage, localStorage, IndexedDB), differences, and when to use which.

· 2 min
Frontend Development

Implementing GIF Search with Alfred

This article introduces implementing GIF search with Alfred, including advantages of GIF search, implementation details, …

· 2 min
Productivity Tools