Blog

Once Handling in EventEmitter

EventEmitter Initial Version

· 1 min
Node.jsTechnical Learning

Loading node_modules Resources in VSC WebView

A guide on properly loading and configuring node_modules resources in VSCode WebView extensions, including setup and …

· 2 min
vscodevscWebViewnode_modules

VSCode Extension Internationalization Support

A comprehensive guide on implementing internationalization in VSCode extensions, covering both menu and extension …

· 2 min
vscextensioni18n

The Host Field in HTTP Request Headers

Recently came across a frontend question: “Is the Host field necessary when sending HTTP request headers?” I hadn’t …

· 1 min

How to Use Stripe (Step-by-Step Guide)

Medium’s MPP and GitHub Sponsors both use Stripe for payouts and payments. Here are a few Stripe notes and fixes I’ve …

· 1 min
Screen Studio Guide: The Best Screen Recording Tool for Mac

Screen Studio Guide: The Best Screen Recording Tool for Mac

Screen Studio is a powerful screen recording tool exclusively for macOS. It helps users easily record on-screen …

· 5 min
Screen StudioScreen Recording

node-sass Discontinued Maintenance

Recently while looking at dependency package upgrades for an old project, I noticed that node-sass has been …

· 1 min

Cloudflare Security Check

Recently, a friend in our group chat encountered an error while filling out a waitlist form on manus and thought it was …

· 2 min
Network Security

How to Use Firecrawl MCP in Cursor (Step-by-Step Guide)

A comprehensive guide on integrating and using Firecrawl MCP within Cursor IDE, covering its features, configuration, …

· 1 min
AICrawlerCursorFirecrawl

CNCB Offline Mortgage Prepayment

I’ve always used CNCB’s app to book mortgage prepayments. The rule there is: no pending prepayment and a 30‑day advance …

· 2 min

Screen Time in Apple Systems

Today a friend asked me what the gray bar chart in Apple’s Screen Time statistics means. I actually wasn’t too sure …

· 1 min
Apple EcosystemiOS

GitLink for VSCode: Seamless Cross-Platform Code Sharing Experience

I frequently use the GitLink plugin in JetBrains IDEs to copy Git web URLs for files with one click, which …

· 1 min
GitLinkVSCodeJetBrainsExtension

Animated PNGs

A quick look at the APNG format and how it compares to WebP for animated images.

· 1 min

How to Use Cursor (Step-by-Step Guide)

Cursor is an AI-powered code editor. This guide covers subscription options, settings synchronization, tool calling, …

· 2 min
CursorAIToolsIDE

Getting the Mac mini M4

I recently picked up a Mac mini M4. After using it for a few weeks, I’m really happy with it, so I’m jotting down my …

· 1 min
MacApple EcosystemAnnual Summary

Building Real-time Web Page Ranking Monitoring with GitHub Action

Recently, I had a requirement to monitor the ranking situation of a certain entry in a competition. Unfortunately, the …

· 2 min
GitDevOps

Web Dev — Show Search Button on iOS Keyboard

How to display a Search action on the software keyboard across iOS and Android and handle the resulting events.

· 1 min
Frontend DevelopmentHardware

How to Use ESLint (Step-by-Step Guide)

Common Plugins

· 1 min
Code QualityJavaScript

Refresh Rate Explained (Simple Guide)

I’ve been looking into frontend animation jank, which is related to refresh rate. I looked up some basics about refresh …

· 2 min

Webpack Plugin to Auto-Rename Variables

I previously built a webpack loader called domain-replace-loader to replace domains in frontend JS, e.g., swapping to a …

· 1 min
Build ToolsFrontend Development

My Medium Earnings in 2024

In 2024, I resolved the issue with using Stripe for payments on Medium, so I subscribed to Medium membership at the …

· 2 min

npm Cache

When developing with npm, you may notice that if you delete the node_modules folder and then reinstall dependencies, …

· 1 min
Node.js

Ways to Access DeepSeek Reliably

Since DeepSeek exploded in popularity around Lunar New Year, the web UI and APIs have been unreliable. Here are a few …

· 1 min
AI

How to Use OpenResty (Step-by-Step Guide)

A guide to using OpenResty for web server configuration, focusing on GZIP settings and basic operations.

· 1 min
Deployment & Operations

Handling Browser Compatibility in Vite

Use the official Vite legacy plugin to target older browsers without managing Browserslist/Core-JS manually.

· 1 min
Build Tools