Browser storage choices (cookie, sessionStorage, localStorage, IndexedDB), differences, and when to use which.
This article introduces implementing GIF search with Alfred, including advantages of GIF search, implementation details, …
This article provides an introduction to Jenkins continuous integration for publishing new NPM packages, including the …
A review of the essential hardware and software tools I added to my toolkit in 2020, featuring AirPods 2, ASUS …
An overview of third-party services powering my personal blog, with setup notes and brief impressions.
Apply a wildcard cert (e.g., *.1991421.cn) to cover many subdomains; notes on limits and Certbot steps.
How to enable HTTPS decryption (MitM) in Surge on macOS and iOS, why it’s useful, and caveats.
Frontend fundamentals: MVC/MVP/MVVM, how browsers work, React Fiber, and how Redux triggers updates.
Notes from frontend interview questions to reinforce fundamentals: TCP handshake, number precision, storage, hoisting, …
This article provides a comprehensive comparison between JSON and XML data formats, including their differences, use …
This article explains what Git snapshots are, how they are stored, and why they matter. These details help you …
Two web bugs traced to encoding: URL fragments in the URL API and window.btoa choking on non-ASCII.
This article introduces how to use Touch ID and Apple Watch for sudo authorization in terminal, including use cases, …
Reducing unnecessary renders in SPA apps with React (and similar frameworks), including strategies, pitfalls, and …
This article provides a comparison between JIT (Just-In-Time) and AOT (Ahead-Of-Time) compilation, including their …
This article introduces implementing one-click audio input/output device switching on Mac with Alfred, including …
This article discusses the limitations of React's componentWillUnmount lifecycle method, including its advantages, …
This article introduces daily high-frequency Alfred workflows, including usage scenarios and implementation details to …
Compares TypeScript enums and ES6 symbols so you know when to choose each for identifiers and constants.
Diagnoses rsync reporting “total size is 0 speedup is 0.00” during GitHub Actions deployments and traces it back to …
Explore the differences and synergies between Alfred Snippet and Apple Text Replacement. Learn how to optimize text …
This article introduces implementing one-click Airdrop with Alfred, including Airdrop advantages, implementation …
This article explains the differences between JavaScript regular expression literals and constructors, including their …
Notes from a focused refresh on regular expressions: value, correct mental model (assertions, groups, greediness), and …
Shows how to build an Alfred workflow that publishes Hexo Markdown posts to Medium via its API.