Blog

Jenkins Continuous Integration - Publishing New NPM Packages

This article provides an introduction to Jenkins continuous integration for publishing new NPM packages, including the …

· 2 min
Node.jsDeployment & Operations

Tools of the Year: 2020 Gear Review

A review of the essential hardware and software tools I added to my toolkit in 2020, featuring AirPods 2, ASUS …

· 4 min
Hardware

Third-Party Services Used by My Blog

An overview of third-party services powering my personal blog, with setup notes and brief impressions.

· 2 min
Personal Notes

Applying for a Wildcard Certificate

Apply a wildcard cert (e.g., *.1991421.cn) to cover many subdomains; notes on limits and Certbot steps.

· 3 min

Decrypting HTTPS with Surge

How to enable HTTPS decryption (MitM) in Surge on macOS and iOS, why it’s useful, and caveats.

· 3 min
Networking Tools

Frontend Basics — P2

Frontend fundamentals: MVC/MVP/MVVM, how browsers work, React Fiber, and how Redux triggers updates.

· 1 min
Frontend Development

Frontend Basics — P1

Notes from frontend interview questions to reinforce fundamentals: TCP handshake, number precision, storage, hoisting, …

· 4 min
Frontend Development

JSON vs XML Comparison

This article provides a comprehensive comparison between JSON and XML data formats, including their differences, use …

· 3 min
JSONXMLData Formats

What Are Git Snapshots

This article explains what Git snapshots are, how they are stored, and why they matter. These details help you …

· 3 min
Git

Encoding Pitfalls to Watch

Two web bugs traced to encoding: URL fragments in the URL API and window.btoa choking on non-ASCII.

· 1 min
JavaScript

How to Use Touch ID and Apple Watch for sudo Authorization in Terminal (Step-by-Step Guide)

This article introduces how to use Touch ID and Apple Watch for sudo authorization in terminal, including use cases, …

· 2 min
Mac

Web Performance: Reduce Re-Renders

Reducing unnecessary renders in SPA apps with React (and similar frameworks), including strategies, pitfalls, and …

· 2 min
React

JIT vs AOT

This article provides a comparison between JIT (Just-In-Time) and AOT (Ahead-Of-Time) compilation, including their …

· 2 min
JavaScriptCompilation

One-Click Audio Input/Output Device Switching on Mac with Alfred

This article introduces implementing one-click audio input/output device switching on Mac with Alfred, including …

· 1 min
MacProductivity Tools

Limitations of React's componentWillUnmount

This article discusses the limitations of React's componentWillUnmount lifecycle method, including its advantages, …

· 2 min
ReactJavaScript

Daily High-Frequency Alfred Workflows I Use and Recommend

This article introduces daily high-frequency Alfred workflows, including usage scenarios and implementation details to …

· 1 min
Efficiency Tools

TypeScript Enum vs. ES6 Symbol

Compares TypeScript enums and ES6 symbols so you know when to choose each for identifiers and constants.

· 3 min
JavaScriptTypeScript

rsync total size is 0 speedup is 0.00

Diagnoses rsync reporting “total size is 0 speedup is 0.00” during GitHub Actions deployments and traces it back to …

· 2 min
LinuxGit

Alfred Snippet VS Apple Text Replacement

Explore the differences and synergies between Alfred Snippet and Apple Text Replacement. Learn how to optimize text …

· 3 min
AlfredMacEfficiency

Implementing One-Click Airdrop with Alfred

This article introduces implementing one-click Airdrop with Alfred, including Airdrop advantages, implementation …

· 1 min
Productivity Tools

JavaScript Regular Expressions: Literal vs Constructor

This article explains the differences between JavaScript regular expression literals and constructors, including their …

· 1 min
JavaScript

Relearning Regular Expressions

Notes from a focused refresh on regular expressions: value, correct mental model (assertions, groups, greediness), and …

· 1 min
Reflections

One-Click Publishing from Hexo Markdown to Medium with Alfred

Shows how to build an Alfred workflow that publishes Hexo Markdown posts to Medium via its API.

· 2 min
Productivity

Buying Safari Online (O'Reilly) Membership via ACM

Walkthrough for accessing O'Reilly Safari Online through an ACM membership—registration steps, pricing, and login tips.

· 1 min
Learning

How to Set Up a Network Proxy in Terminal Shell

Learn how to set up a network proxy in terminal shell for OS X. This guide covers configuring shell files, applying …

· 2 min
iTerm2ShellTerminalProxy